Commit 7fd449a0 authored by Berk Onat's avatar Berk Onat

Initial commit for NAMD parser

parents
# NAMD Parser
[NOMAD Laboratory CoE](http://nomad-coe.eu) parser for [NAMD](http://www.ks.uiuc.edu/Research/namd/)
## Version 0.0.1
This is the parser for NAMD Molecular Dynamics (namd2) in [NAMD](http://www.ks.uiuc.edu/Research/namd/).
The official version lives at:
git@gitlab.mpcdf.mpg.de:nomad-lab/parser-namd.git
You can browse it at:
https://gitlab.rzg.mpg.de/nomad-lab/parser-namd
It relies on having the nomad-meta-info and the python-common repositories one level higher.
The simplest way to have this is to check out nomad-lab-base recursively:
git clone --recursive git@gitlab.mpcdf.mpg.de:nomad-lab/nomad-lab-base.git
This parser will be in the directory parsers/namd of this repository.
## Running and Testing the Parser
### Requirements
The required python packages can be installed with (see [python-common](https://gitlab.rzg.mpg.de/nomad-lab/python-common)):
pip install -r nomad-lab-base/python-common/requirements.txt
### Usage
NAMD md (namd2 executable) log output files can be parsed with:
python NAMDParser.py [path/toFile]
### Test Files
Example log output files of NAMD can be found in the directory test/examples.
More details about the calculations and files will be explained in this README file.
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6.1 virtualenv at /labEnv3" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/parser-amber.iml" filepath="$PROJECT_DIR$/.idea/parser-amber.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TestRunnerService">
<option name="projectConfiguration" value="Nosetests" />
<option name="PROJECT_TEST_RUNNER" value="Nosetests" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="7426a5df-0b63-4709-ab28-0c6e68476f74" name="Default" comment="" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
</component>
<component name="ProjectFrameBounds">
<option name="x" value="303" />
<option name="y" value="66" />
<option name="width" value="1602" />
<option name="height" value="1164" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scratches" />
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="parser-amber" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="parser-amber" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration default="true" type="PythonConfigurationType" factoryName="Python">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="parser-amber" />
<option name="SCRIPT_NAME" value="" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<method />
</configuration>
<configuration default="true" type="Tox" factoryName="Tox">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="parser-amber" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Doctests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="parser-amber" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Nosetests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="parser-amber" />
<option name="_new_regexPattern" value="&quot;&quot;" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;.&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
<method />
</configuration>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="7426a5df-0b63-4709-ab28-0c6e68476f74" name="Default" comment="" />
<created>1497006387415</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1497006387415</updated>
</task>
<servers />
</component>
<component name="ToolWindowManager">
<frame x="303" y="66" width="1602" height="1164" extended-state="0" />
<layout>
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2496879" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32968035" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="VcsManagerConfiguration">
<ignored-roots>
<path value="$PROJECT_DIR$/../.." />
</ignored-roots>
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/AMBERParser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/AMBERParser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15">
<caret line="42" column="61" lean-forward="false" selection-start-line="42" selection-start-column="61" selection-end-line="42" selection-end-column="61" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>
\ No newline at end of file
import logging
import os
PARSERNAME = "NAMD"
PROGRAMNAME = "namd"
PARSERVERSION = "0.0.1"
PARSERMETANAME = PARSERNAME.lower()
PARSERTAG = 'x_' + PARSERMETANAME
PARSER_INFO_DEFAULT = {
'name' : PARSERMETANAME+'-parser',
'version': PARSERVERSION
}
META_INFO_PATH = os.path.normpath(os.path.join(
os.path.dirname(os.path.abspath(__file__)),
"../../../../nomad-meta-info/meta_info/nomad_meta_info/"+PARSERMETANAME+".nomadmetainfo.json"))
LOGGER = logging.getLogger("nomad."+PROGRAMNAME+"Parser")
def set_excludeList(self):
"""Sets the exclude list for x_
Returns:
the list of names
"""
excludelist = [
PARSERTAG+'_mdin_verbatim_writeout',
PARSERTAG+'_dumm_text',
PARSERTAG+'_dummy',
PARSERTAG+'_mdin_wt'
]
excludelist.extend([PARSERTAG+'_mdin_file_%s' % fileNL.lower() for fileNL in self.fileDict.keys()])
excludelist.extend([PARSERTAG+'_mdin_%s' % cntrlNL.lower() for cntrlNL in self.cntrlDict.keys()])
excludelist.extend([PARSERTAG+'_mdin_%s' % ewaldNL.lower() for ewaldNL in self.ewaldDict.keys()])
excludelist.extend([PARSERTAG+'_mdin_%s' % qmmmNL.lower() for qmmmNL in self.qmmmDict.keys()])
return excludelist
def set_includeList():
"""Sets the include list for x_
Returns:
the list of names
"""
includelist = []
return includelist
import setup_paths
import numpy as np
from NAMDCommon import PARSERNAME, PROGRAMNAME, PARSERTAG
from nomadcore.smart_parser.SmartParserDictionary import metaNameConverter, metaNameConverter_UnderscoreSpaceDash
from nomadcore.smart_parser.SmartParserDictionary import MetaInfoMap, FileInfoMap, MapDictionary
from nomadcore.smart_parser.SmartParserDictionary import getDict_MetaStrInDict, getList_MetaStrInDict, get_unitDict
import nomadcore.md_data_access.MDDataAccess as MDData
def get_fileListDict():
"""Loads dictionary for file namelists.
Returns:
the list of defaults file namelists
"""
startpage = {
'nameTranslate' : metaNameConverter,
'metaHeader' : PARSERTAG,
'metaNameTag' : 'inout_file',
'metaInfoType' : 'C',
'activeMetaNames' : [],
'activeSections' : [PARSERTAG+'_section_input_output_files']
}
namelist = {
'structure' : FileInfoMap(startpage, fileFormat=['.psf'], activeInfo=True,
infoPurpose=['topology', 'unitcell']),
'traj_coord' : FileInfoMap(startpage, fileFormat=['.dcd'], activeInfo=True,
infoPurpose=['trajectory', 'unitcell']),
'traj_vel' : FileInfoMap(startpage, fileFormat=['.dcd'], activeInfo=True,
infoPurpose=['velocities']),
'traj_force' : FileInfoMap(startpage, fileFormat=['.dcd'], activeInfo=True,
infoPurpose=['forces']),
'output_coord' : FileInfoMap(startpage, fileFormat=['.namdbin'], activeInfo=False,
infoPurpose=['outputcoordinates', 'unitcell']),
'output_vel' : FileInfoMap(startpage, fileFormat=['.namdbin'], activeInfo=False,
infoPurpose=['outputvelocities']),
'output_force' : FileInfoMap(startpage, fileFormat=['.namdbin'], activeInfo=False,
infoPurpose=['outputforces']),
'input_coord' : FileInfoMap(startpage, fileFormat=['.pdb'],
infoPurpose=['inputcoordinates', 'inputunitcell']),
'input_vel' : FileInfoMap(startpage, fileFormat=['.pdb'],
infoPurpose=['inputvelocities']),
'restart_coord' : FileInfoMap(startpage, fileFormat=['.cpt'],
infoPurpose=['inputcoordinates', 'inputunitcell']),
'restart_vel' : FileInfoMap(startpage, fileFormat=['.cpt'],
infoPurpose=['inputvelocities']),
'fftw_datafile' : FileInfoMap(startpage, fileFormat=['.txt'], infoPurpose=['fftwdata']),
'mdlog' : FileInfoMap(startpage),
}
return MapDictionary(namelist)
def get_nameListDict(deflist):
"""Loads control in data of NAMD.
Args:
deflist: name list definition (cntrl/parm).
matchWith parameters:
EOL = End of line
PL = Match with previous line
PW = Previous word
NW = Next word (until space, comma) (DEFAULT)
UD = until delimeter (can be any string/character)
The text matched inside apostrophe or qoutation is extracted
Returns:
the list of namelists
"""
startpage = {
'nameTranslate' : metaNameConverter_UnderscoreSpaceDash,
'metaHeader' : PARSERTAG,
'metaNameTag' : 'inout_control',
'metaInfoType' : 'C',
'activeMetaNames' : [],
'activeSections' : [PARSERTAG+'_section_control_parameters'],
}
cntrllist = {
'Info: TIMESTEP' : MetaInfoMap(startpage, defaultValue=1,
replaceTag='TIMESTEP'),
'NUMBER OF STEPS' : MetaInfoMap(startpage, defaultValue=0),
'STEPS PER CYCLE' : MetaInfoMap(startpage, defaultValue=1),
'PERIODIC CELL BASIS 1' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL'),
'PERIODIC CELL BASIS 2' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL'),
'PERIODIC CELL BASIS 3' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL'),
'PERIODIC CELL CENTER' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL'),
'LOAD BALANCER' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL'),
'LOAD BALANCING STRATEGY' : MetaInfoMap(startpage, defaultValue="New Load Balancers", matchWith='EOL'),
'LDB PERIOD' : MetaInfoMap(startpage, defaultValue=None),
'FIRST LDB TIMESTEP' : MetaInfoMap(startpage, defaultValue=None),
'LAST LDB TIMESTEP' : MetaInfoMap(startpage, defaultValue=None),
'LDB BACKGROUND SCALING' : MetaInfoMap(startpage, defaultValue=None),
'HOM BACKGROUND SCALING' : MetaInfoMap(startpage, defaultValue=None),
'PME BACKGROUND SCALING' : MetaInfoMap(startpage, defaultValue=None),
'MIN ATOMS PER PATCH' : MetaInfoMap(startpage, defaultValue=None),
'INITIAL TEMPERATURE' : MetaInfoMap(startpage, defaultValue=None),
'CENTER OF MASS MOVING INITIALLY?' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='CENTER OF MASS MOVING INITIALLY'),
'DIELECTRIC' : MetaInfoMap(startpage, defaultValue=None),
'EXCLUDE' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL'),
'1-4 ELECTROSTATICS SCALED BY' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='1-4 ELECTROSTATICS SCALE'),
'Info: DCD FILENAME' : MetaInfoMap(startpage, defaultValue=None),
#replaceTag='DCD FILENAME'),
'Info: DCD FREQUENCY' : MetaInfoMap(startpage, defaultValue=None),
#replaceTag='DCD FREQUENCY'),
'Info: DCD FIRST STEP' : MetaInfoMap(startpage, defaultValue=None),
#replaceTag='DCD FIRST STEP'),
'VELOCITY DCD FILENAME' : MetaInfoMap(startpage, defaultValue=None),
'VELOCITY DCD FREQUENCY' : MetaInfoMap(startpage, defaultValue=None),
'VELOCITY DCD FIRST STEP' : MetaInfoMap(startpage, defaultValue=None),
'FORCE DCD FILENAME' : MetaInfoMap(startpage, defaultValue=None),
'FORCE DCD FREQUENCY' : MetaInfoMap(startpage, defaultValue=None),
'FORCE DCD FIRST STEP' : MetaInfoMap(startpage, defaultValue=None),
'OUTPUT FILENAME' : MetaInfoMap(startpage, defaultValue=None),
'BINARY OUTPUT' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL'),
'RESTART FILENAME' : MetaInfoMap(startpage, defaultValue=None),
'RESTART FREQUENCY' : MetaInfoMap(startpage, defaultValue=None),
'BINARY RESTART' : MetaInfoMap(startpage, defaultValue=None),
'SWITCHING ACT' : MetaInfoMap(startpage, defaultValue='Active',
replaceTag='SWITCHING'),
'SWITCHING ON' : MetaInfoMap(startpage, defaultValue=None),
'SWITCHING OFF' : MetaInfoMap(startpage, defaultValue=None),
'PAIRLIST DISTANCE' : MetaInfoMap(startpage, defaultValue=None),
'PAIRLIST SHRINK RATE' : MetaInfoMap(startpage, defaultValue=None),
'PAIRLIST GROW RATE' : MetaInfoMap(startpage, defaultValue=None),
'PAIRLIST TRIGGER' : MetaInfoMap(startpage, defaultValue=None),
'PAIRLISTS PER CYCLE' : MetaInfoMap(startpage, defaultValue=None),
'PAIRLISTS EN' : MetaInfoMap(startpage, defaultValue='ENABLED',
replaceTag='PAIRLISTS'),
'MARGIN' : MetaInfoMap(startpage, defaultValue=None),
'HYDROGEN GROUP CUTOFF' : MetaInfoMap(startpage, defaultValue=None),
'PATCH DIMENSION' : MetaInfoMap(startpage, defaultValue=None),
'ENERGY OUTPUT STEPS' : MetaInfoMap(startpage, defaultValue=None),
'CROSSTERM ENERGY' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL'),
'TIMING OUTPUT STEPS' : MetaInfoMap(startpage, defaultValue=None),
'VELOCITY RESCALE FREQ' : MetaInfoMap(startpage, defaultValue=None),
'VELOCITY RESCALE TEMP' : MetaInfoMap(startpage, defaultValue=None),
'VELOCITY REASSIGNMENT FREQ' : MetaInfoMap(startpage, defaultValue=None),
'VELOCITY REASSIGNMENT TEMP' : MetaInfoMap(startpage, defaultValue=None),
'VELOCITY REASSIGNMENT INCR' : MetaInfoMap(startpage, defaultValue=None),
'VELOCITY REASSIGNMENT HOLD' : MetaInfoMap(startpage, defaultValue=None),
'LOWE-ANDERSEN DYNAMICS' : MetaInfoMap(startpage, defaultValue=None),
'LOWE-ANDERSEN TEMPERATURE' : MetaInfoMap(startpage, defaultValue=None),
'LOWE-ANDERSEN RATE' : MetaInfoMap(startpage, defaultValue=None),
'LOWE-ANDERSEN CUTOFF' : MetaInfoMap(startpage, defaultValue=None),
'LANGEVIN DYNAMICS' : MetaInfoMap(startpage, defaultValue=None),
'LANGEVIN TEMPERATURE' : MetaInfoMap(startpage, defaultValue=None),
'LANGEVIN USING' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='LANGEVIN INTEGRATOR'),
'LANGEVIN DAMPING FILE IS' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='LANGEVIN DAMPING FILE'),
'LANGEVIN DAMPING COLUMN:' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='LANGEVIN DAMPING COLUMN'),
'LANGEVIN DAMPING COEFFICIENT IS' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='LANGEVIN DAMPING COEFFICIENT UNIT'),
'LANGEVIN DYNAMICS NOT APPLIED TO' : MetaInfoMap(startpage, defaultValue=None),
'TEMPERATURE COUPLING' : MetaInfoMap(startpage, defaultValue=None),
'COUPLING TEMPERATURE' : MetaInfoMap(startpage, defaultValue=None),
'BERENDSEN PRESSURE COUPLING' : MetaInfoMap(startpage, defaultValue=None),
'COMPRESSIBILITY ESTIMATE IS' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='BERENDSEN COMPRESSIBILITY ESTIMATE'),
'RELAXATION TIME IS' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='BERENDSEN RELAXATION TIME'),
'APPLIED EVERY' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='BERENDSEN COUPLING FREQUENCY'),
'LANGEVIN PISTON PRESSURE CONTROL' : MetaInfoMap(startpage, defaultValue=None),
'TARGET PRESSURE IS' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='TARGET PRESSURE'),
'OSCILLATION PERIOD IS' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='LANGEVIN OSCILLATION PERIOD'),
'DECAY TIME IS' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='LANGEVIN DECAY TIME'),
'PISTON TEMPERATURE IS' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='LANGEVIN PISTON TEMPERATURE'),
'PRESSURE CONTROL IS' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='PRESSURE CONTROL'),
'INITIAL STRAIN RATE IS' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL',
replaceTag='INITIAL STRAIN RATE'),
'CELL FLUCTUATION IS' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='CELL FLUCTUATION'),
'PARTICLE MESH EWALD \(PME\)' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='PME'),
'PME TOLERANCE' : MetaInfoMap(startpage, defaultValue=None),
'PME EWALD COEFFICIENT' : MetaInfoMap(startpage, defaultValue=None),
'PME INTERPOLATION ORDER' : MetaInfoMap(startpage, defaultValue=None),
'PME GRID DIMENSIONS' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL'),
'PME MAXIMUM GRID SPACING' : MetaInfoMap(startpage, defaultValue=None),
'Writing FFTW data to' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='FFTW data file'),
'FULL ELECTROSTATIC EVALUATION FREQUENCY' : MetaInfoMap(startpage, defaultValue=None),
'MINIMIZATION' : MetaInfoMap(startpage, defaultValue=None),
'VELOCITY QUENCHING' : MetaInfoMap(startpage, defaultValue=None),
'USING VERLET I \(r-RESPA\)' : MetaInfoMap(startpage, defaultValue='r-RESPA',
replaceTag='VERLET INTEGRATOR', subFunc=lambda x: 'r-RESPA' if x is not None else None),
'RANDOM NUMBER SEED' : MetaInfoMap(startpage, defaultValue=None),
'USE HYDROGEN BONDS?' : MetaInfoMap(startpage, defaultValue=None,
replaceTag='USE HYDROGEN BONDS'),
'COORDINATE PDB' : MetaInfoMap(startpage, defaultValue=None),
'STRUCTURE FILE' : MetaInfoMap(startpage, defaultValue=None),
'PARAMETER file' : MetaInfoMap(startpage, defaultValue=None, matchWith='EOL'),
'Info: PARAMETERS' : MetaInfoMap(startpage, defaultValue=None, addAsList=True,
replaceTag='PARAMETERS'),
}
startpage.update({
'metaNameTag' : 'mdout',
'activeSections' : ['section_single_configuration_calculation']
})
mddatalist = {
'WRITING COORDINATES TO DCD FILE' : MetaInfoMap(startpage,
replaceTag='DCDSTEP', subFunc=lambda x: x.split()[-1].replace('\n','').strip()),
'WRITING VELOCITIES TO DCD FILE AT STEP' : MetaInfoMap(startpage,
replaceTag='VELSTEP', subFunc=lambda x: x.replace('\n','').strip()),
'WRITING FORCES TO DCD FILE AT STEP' : MetaInfoMap(startpage,
replaceTag='FORCESTEP', subFunc=lambda x: x.replace('\n','').strip()),
'TS' : MetaInfoMap(startpage),
'BOND' : MetaInfoMap(startpage),
'ANGLE' : MetaInfoMap(startpage),
'DIHED' : MetaInfoMap(startpage),
'IMPRP' : MetaInfoMap(startpage),
'ELECT' : MetaInfoMap(startpage),
'VDW' : MetaInfoMap(startpage),
'BOUNDARY' : MetaInfoMap(startpage),
'MISC' : MetaInfoMap(startpage),
'KINETIC' : MetaInfoMap(startpage),
'TOTAL' : MetaInfoMap(startpage),
'TEMP' : MetaInfoMap(startpage),
'POTENTIAL' : MetaInfoMap(startpage),
'TOTAL2' : MetaInfoMap(startpage),
'TOTAL3' : MetaInfoMap(startpage),
'TEMPAVG' : MetaInfoMap(startpage),
'PRESSURE' : MetaInfoMap(startpage),
'GPRESSURE' : MetaInfoMap(startpage),
'VOLUME' : MetaInfoMap(startpage),
'PRESSAVG' : MetaInfoMap(startpage),
'GPRESSAVG' : MetaInfoMap(startpage),
'Virial-Tensor' : MetaInfoMap(startpage),
'Pressure-Tensor' : MetaInfoMap(startpage),
'TIME' : MetaInfoMap(startpage),
}
startpage.update({