diff --git a/.gitignore b/.gitignore index a6cb8b615eb7a44af58c9563596ab6264ef6dbe6..bdaf518efd11b25bce719781906d500ddade8c55 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,5 @@ TAGS lib/ env/ + +*.egg-info \ No newline at end of file diff --git a/parser/parser-namd/NAMDCommon.py b/namdparser/NAMDCommon.py similarity index 100% rename from parser/parser-namd/NAMDCommon.py rename to namdparser/NAMDCommon.py diff --git a/parser/parser-namd/NAMDDictionary.py b/namdparser/NAMDDictionary.py similarity index 96% rename from parser/parser-namd/NAMDDictionary.py rename to namdparser/NAMDDictionary.py index 0e6613adec193d71c262bdadb47e80a87cb641b3..2a626d9dfe23837c0a2e252dde7afa843e5420da 100644 --- a/parser/parser-namd/NAMDDictionary.py +++ b/namdparser/NAMDDictionary.py @@ -1,22 +1,21 @@ # Copyright 2018-2018 Berk Onat, Fawzi Mohamed -# +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import setup_paths import numpy as np -from NAMDCommon import PARSERNAME, PROGRAMNAME, PARSERTAG +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 MetaInfoMap, FileInfoMap, MapDictionary from nomadcore.smart_parser.SmartParserDictionary import getDict_MetaStrInDict, getList_MetaStrInDict, get_unitDict import nomadcore.md_data_access.MDDataAccess as MDData @@ -26,7 +25,7 @@ def get_fileListDict(): Returns: the list of defaults file namelists """ - + startpage = { 'nameTranslate' : metaNameConverter, 'metaHeader' : PARSERTAG, @@ -36,19 +35,19 @@ def get_fileListDict(): 'activeSections' : [PARSERTAG+'_section_input_output_files'] } namelist = { - 'structure' : FileInfoMap(startpage, fileFormat=['.psf'], activeInfo=True, + 'structure' : FileInfoMap(startpage, fileFormat=['.psf'], activeInfo=True, infoPurpose=['topology', 'unitcell']), - 'traj_coord' : FileInfoMap(startpage, fileFormat=['.dcd'], activeInfo=True, + '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, + '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, + 'output_vel' : FileInfoMap(startpage, fileFormat=['.namdbin'], activeInfo=False, infoPurpose=['outputvelocities']), - 'output_force' : FileInfoMap(startpage, fileFormat=['.namdbin'], activeInfo=False, + 'output_force' : FileInfoMap(startpage, fileFormat=['.namdbin'], activeInfo=False, infoPurpose=['outputforces']), 'input_coord' : FileInfoMap(startpage, fileFormat=['.pdb'], infoPurpose=['inputcoordinates', 'inputunitcell']), @@ -71,11 +70,11 @@ def get_nameListDict(deflist): matchWith parameters: EOL = End of line - PL = Match with previous 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: @@ -224,11 +223,11 @@ def get_nameListDict(deflist): 'activeSections' : ['section_single_configuration_calculation'] }) mddatalist = { - 'WRITING COORDINATES TO DCD FILE' : MetaInfoMap(startpage, + '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, + '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, + 'WRITING FORCES TO DCD FILE AT STEP' : MetaInfoMap(startpage, replaceTag='FORCESTEP', subFunc=lambda x: x.replace('\n','').strip()), 'TS' : MetaInfoMap(startpage), 'BOND' : MetaInfoMap(startpage), @@ -299,7 +298,7 @@ def set_Dictionaries(self): self.stepcontrolDict = { 'logsteps' : None, 'nextlogsteps' : None, - 'trajsteps' : None, + 'trajsteps' : None, 'velsteps' : None, 'forcesteps' : None, 'steps' : None, @@ -313,12 +312,12 @@ def set_Dictionaries(self): 'mddata' : self.mddataDict, 'extra' : self.extraDict, } - self.sectionDict = { - 'section' : { - "metaNameTag" : ['input_output_files', - 'control_parameters'], - "listTypStr" : 'type_section', - "repeatingSection" : False, + self.sectionDict = { + 'section' : { + "metaNameTag" : ['input_output_files', + 'control_parameters'], + "listTypStr" : 'type_section', + "repeatingSection" : False, "supraNames" : ["section_run"] } } @@ -340,7 +339,7 @@ def get_updateDictionary(self, defname): if(st is not None and isinstance(st, str)): if("[" in st or "(" in st): val.append(list(storedtext)) - if val: + if val: return False, np.linalg.norm(np.asarray(val)), itemdict else: return False, itemdict["value"], itemdict @@ -355,27 +354,27 @@ def get_updateDictionary(self, defname): # --------------------------------------------------------------- # Definitions of meta data values for section_sampling_method # --------------------------------------------------------------- - sampling = { + sampling = { 'ensemble_type' : MetaInfoMap(startpage, activeInfo=True, depends=[ - {'test' : [['minimization', ' is None'], + {'test' : [['minimization', ' is None'], ['thermostat', ' in [\"tcouple\",' '\"rescale\",' '\"reassign\",' '\"andersen\",' - '\"langevin\"]'], + '\"langevin\"]'], ['barostat', ' in [\"berendsen\",' - '\"langevin\"]']], + '\"langevin\"]']], 'assign' : 'NPT'}, - {'test' : [['minimization', ' is None'], - ['thermostat', ' in [\"langevin\"]'], + {'test' : [['minimization', ' is None'], + ['thermostat', ' in [\"langevin\"]'], ['thermostat', ' not in [\"tcouple\",' '\"rescale\",' '\"reassign\",' '\"andersen\"]'], ['barostat', ' is None']], 'assign' : 'Langevin'}, - {'test' : [['minimization', ' is None'], + {'test' : [['minimization', ' is None'], ['thermostat', ' in [\"tcouple\",' '\"rescale\",' '\"reassign\",' @@ -384,16 +383,16 @@ def get_updateDictionary(self, defname): 'assign' : 'NVT'}, {'test' : [['minimization', ' is None'], ['thermostat', ' is None'], - ['barostat', ' is None']], + ['barostat', ' is None']], 'assign' : 'NVE'}, - {'test' : [['minimization', ' is not None']], + {'test' : [['minimization', ' is not None']], 'assign' : 'minimization'}, ], lookupdict=self.extraDict ), - 'sampling_method' : MetaInfoMap(startpage, activeInfo=True, + 'sampling_method' : MetaInfoMap(startpage, activeInfo=True, depends=[ - {'test' : [['minimization', ' is not None']], + {'test' : [['minimization', ' is not None']], 'assign' : 'geometry_optimization'}, {'test' : [['minimization', ' is None']], 'assign' : 'molecular_dynamics'} @@ -413,9 +412,9 @@ def get_updateDictionary(self, defname): # 'geometry_optimization_geometry_change' : MetaInfoMap(startpage), 'geometry_optimization_method' : MetaInfoMap(startpage, depends=[ - {'test' : [['minimization', ' == \"cg\"']], + {'test' : [['minimization', ' == \"cg\"']], 'assign' : 'CG'}, - {'test' : [['minimization', ' == \"quench\"']], + {'test' : [['minimization', ' == \"quench\"']], 'assign' : 'Velocity Quenching'}, ], lookupdict=self.extraDict, @@ -424,12 +423,12 @@ def get_updateDictionary(self, defname): # 'geometry_optimization_threshold_force' : MetaInfoMap(startpage), 'x_namd_barostat_type' : MetaInfoMap(startpage, depends=[ - {'test' : [['minimization', ' is None'], + {'test' : [['minimization', ' is None'], ['barostat', '== \"berendsen\"']], 'assign' : 'Berendsen'}, - {'test' : [['minimization', ' is None'], + {'test' : [['minimization', ' is None'], ['barostat', '== \"langevin\"']], - 'assign' : 'Nose-Hoover Langevin'} + 'assign' : 'Nose-Hoover Langevin'} ], lookupdict=self.extraDict, #autoSections=True, @@ -439,7 +438,7 @@ def get_updateDictionary(self, defname): 'x_namd_barostat_target_pressure' : MetaInfoMap(startpage, depends=[ {'test' : [['TARGET PRESSURE', ' is not None']], - 'value' : 'TARGET PRESSURE'} + 'value' : 'TARGET PRESSURE'} ], lookupdict=self.cntrlDict, valtype='float', @@ -452,9 +451,9 @@ def get_updateDictionary(self, defname): 'x_namd_barostat_tau' : MetaInfoMap(startpage, depends=[ {'test' : [['LANGEVIN OSCILLATION PERIOD', ' is not None']], - 'value' : 'LANGEVIN OSCILLATION PERIOD'}, + 'value' : 'LANGEVIN OSCILLATION PERIOD'}, {'test' : [['BERENDSEN RELAXATION TIME', ' is not None']], - 'value' : 'BERENDSEN RELAXATION TIME'} + 'value' : 'BERENDSEN RELAXATION TIME'} ], lookupdict=self.cntrlDict, valtype='float', @@ -467,7 +466,7 @@ def get_updateDictionary(self, defname): 'x_namd_integrator_type' : MetaInfoMap(startpage, depends=[ {'test' : [['integrator', ' is not None']], - 'value' : 'integrator'}, + 'value' : 'integrator'}, {'test' : [['thermostat', ' == \"langevin\"']], 'assign' : 'Langevin'} ], @@ -500,21 +499,21 @@ def get_updateDictionary(self, defname): ), 'x_namd_thermostat_type' : MetaInfoMap(startpage, depends=[ - {'test' : [['minimization', ' is None'], + {'test' : [['minimization', ' is None'], ['thermostat', ' == \"tcouple\"']], - 'assign' : 'Berendsen'}, - {'test' : [['minimization', ' is None'], + 'assign' : 'Berendsen'}, + {'test' : [['minimization', ' is None'], ['thermostat', ' == \"rescale\"']], - 'assign' : 'Velocity Rescaling'}, - {'test' : [['minimization', ' is None'], + 'assign' : 'Velocity Rescaling'}, + {'test' : [['minimization', ' is None'], ['thermostat', ' == \"reassign\"']], - 'assign' : 'Velocity Reassigning'}, - {'test' : [['minimization', ' is None'], + 'assign' : 'Velocity Reassigning'}, + {'test' : [['minimization', ' is None'], ['thermostat', ' == \"andersen\"']], - 'assign' : 'Andersen'}, - {'test' : [['minimization', ' is None'], - ['thermostat', ' == \"langevin\"']], - 'assign' : 'Nose-Hoover Langevin'}, + 'assign' : 'Andersen'}, + {'test' : [['minimization', ' is None'], + ['thermostat', ' == \"langevin\"']], + 'assign' : 'Nose-Hoover Langevin'}, ], lookupdict=self.extraDict, #autoSections=True, @@ -592,7 +591,7 @@ def get_updateDictionary(self, defname): # ------------------------------------------------------------ # Definitions for section_single_configuration_calculation # ------------------------------------------------------------ - singleconfcalc = { + singleconfcalc = { #'atom_forces_type' : MetaInfoMap(startpage, # depends=[{'assign' : 'Force Field'}], # lookupdict=self.mddataDict @@ -648,7 +647,7 @@ def get_updateDictionary(self, defname): 'time_single_configuration_calculation_wall_start' : MetaInfoMap(startpage), #'stress_tensor_kind' : MetaInfoMap(startpage, # depends=[ - # {'test' : [['minimization', ' is not None']], + # {'test' : [['minimization', ' is not None']], # 'assign' : 'geometry_optimization'}, # {'test' : [['minimization', ' is None']], # 'assign' : 'molecular_dynamics'} @@ -671,11 +670,11 @@ def get_updateDictionary(self, defname): activeSections=['section_energy_van_der_Waals'] ), } - + # ------------------------------------------ # Definitions for section_frame_sequence # ------------------------------------------ - frameseq = { + frameseq = { #'frame_sequence_conserved_quantity_frames' : MetaInfoMap(startpage, # depends=[{'store' : 'TS'}], # valtype='int', @@ -950,7 +949,7 @@ def get_updateDictionary(self, defname): #'previous_sequence_ref' : MetaInfoMap(startpage) } - frameseqend = { + frameseqend = { #'number_of_conserved_quantity_evaluations_in_sequence' : MetaInfoMap(startpage, # activeInfo=True, # value=(lambda x: np.array(x['val']).flatten().shape[0] if( @@ -1158,7 +1157,7 @@ def get_updateDictionary(self, defname): 'spacegroup_3D_wyckoff' : MetaInfoMap(startpage), 'symmorphic' : MetaInfoMap(startpage), 'system_name' : MetaInfoMap(startpage, - subfunction={ + subfunction={ 'function' : MDData.MDDataConverter.topology_system_name, 'supportDict' : self.topoDict, }, @@ -1285,7 +1284,7 @@ def get_updateDictionary(self, defname): 'number_of_atoms_per_molecule_interaction' : MetaInfoMap(startpage), 'number_of_molecule_interactions' : MetaInfoMap(startpage) } - + # section_atom_in_molecule of section_molecule_type atom_in_mol = { 'atom_in_molecule_charge' : MetaInfoMap(startpage), diff --git a/parser/parser-namd/NAMDParser.py b/namdparser/NAMDParser.py similarity index 90% rename from parser/parser-namd/NAMDParser.py rename to namdparser/NAMDParser.py index 5e091f62ea52cbc72ebbfcf223387d15c2f753cb..0ac4fef1e599c1c93a1baedde5195774636283e4 100644 --- a/parser/parser-namd/NAMDParser.py +++ b/namdparser/NAMDParser.py @@ -1,11 +1,11 @@ # Copyright 2018-2018 Berk Onat, Fawzi Mohamed -# +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -15,7 +15,6 @@ from builtins import map from builtins import range from builtins import object -import setup_paths import numpy as np import nomadcore.ActivateLogging from nomadcore.caching_backend import CachingLevel @@ -24,9 +23,9 @@ from nomadcore.smart_parser import SmartParserCommon as SmartParser from nomadcore.smart_parser.SmartParserCommon import get_metaInfo, conv_str, conv_int, conv_float, open_section from nomadcore.smart_parser.SmartParserDictionary import getList_MetaStrInDict, getDict_MetaStrInDict from nomadcore.smart_parser.SmartParserDictionary import isMetaStrInDict -from NAMDDictionary import get_updateDictionary, set_Dictionaries -from NAMDCommon import PARSERNAME, PROGRAMNAME, PARSERVERSION, PARSERTAG, LOGGER -from NAMDCommon import PARSER_INFO_DEFAULT, META_INFO_PATH, set_excludeList, set_includeList +from .NAMDDictionary import get_updateDictionary, set_Dictionaries +from .NAMDCommon import PARSERNAME, PROGRAMNAME, PARSERVERSION, PARSERTAG, LOGGER +from .NAMDCommon import PARSER_INFO_DEFAULT, META_INFO_PATH, set_excludeList, set_includeList from nomadcore.md_data_access import MDDataAccess as MDDA import argparse import logging @@ -61,7 +60,7 @@ class NAMDParser(SmartParser.ParserBase): } SmartParser.ParserBase.__init__( self, re_program_name=re.compile(r"\s*"+PROGRAMNAME+"$"), - parsertag=PARSERTAG, metainfopath=META_INFO_PATH, + parsertag=PARSERTAG, metainfopath=META_INFO_PATH, parserinfodef=PARSER_INFO_DEFAULT) set_Dictionaries(self) @@ -79,27 +78,27 @@ class NAMDParser(SmartParser.ParserBase): metaInfo = self.metaInfoEnv.infoKinds[name] if (name.startswith(PARSERTAG + '_mdin_') and metaInfo.kindStr == "type_document_content" and - (PARSERTAG + "_mdin_method" in metaInfo.superNames or - PARSERTAG + "_mdin_run" in metaInfo.superNames or + (PARSERTAG + "_mdin_method" in metaInfo.superNames or + PARSERTAG + "_mdin_run" in metaInfo.superNames or PARSERTAG + "_mdin_system" in metaInfo.superNames) or name.startswith(PARSERTAG + '_parm_') and metaInfo.kindStr == "type_document_content" and - (PARSERTAG + "_mdin_method" in metaInfo.superNames or + (PARSERTAG + "_mdin_method" in metaInfo.superNames or PARSERTAG + "_mdin_run" in metaInfo.superNames or PARSERTAG + "_mdin_system" in metaInfo.superNames) or #name.startswith(PARSERTAG + '_mdin_file_') and name.startswith(PARSERTAG + '_inout_file_') or #metaInfo.kindStr == "type_document_content" and - #(PARSERTAG + "_section_input_output_files" in metaInfo.superNames or + #(PARSERTAG + "_section_input_output_files" in metaInfo.superNames or # "section_run" in metaInfo.superNames) or name.startswith(PARSERTAG + '_inout_control_') or - #(PARSERTAG + "_section_control_parameters" in metaInfo.superNames) or + #(PARSERTAG + "_section_control_parameters" in metaInfo.superNames) or #name.startswith(PARSERTAG + '_mdin_') and #(PARSERTAG + "_section_control_parameters" in metaInfo.superNames) or name.startswith(PARSERTAG + '_mdout_') or name.startswith(PARSERTAG + '_mdout_') and #metaInfo.kindStr == "type_document_content" and - (PARSERTAG + "_mdout_method" in metaInfo.superNames or + (PARSERTAG + "_mdout_method" in metaInfo.superNames or PARSERTAG + "_mdout_system" in metaInfo.superNames or "section_run" in metaInfo.superNames or PARSERTAG + "_mdout_single_configuration_calculation" in metaInfo.superNames) @@ -197,8 +196,8 @@ class NAMDParser(SmartParser.ParserBase): def onClose_section_run(self, backend, gIndex, section): """Trigger called when section_run is closed. - Write the keywords from control parametres and - the NAMD output from the parsed log output, + Write the keywords from control parametres and + the NAMD output from the parsed log output, which belong to settings_run. Variables are reset to ensure clean start for new run. """ @@ -211,7 +210,7 @@ class NAMDParser(SmartParser.ParserBase): 'dictionary' : section_frameseq_Dict } self.metaStorage.update(updateFrameDict) - self.metaStorage.updateBackend(backend.superBackend, + self.metaStorage.updateBackend(backend.superBackend, startsection=['section_frame_sequence'], autoopenclose=False) backend.addValue("frame_sequence_to_sampling_ref", self.secSamplingGIndex) @@ -226,14 +225,14 @@ class NAMDParser(SmartParser.ParserBase): Determine whether topology, trajectory and input coordinate files are supplied to the parser - + Initiates topology and trajectory file handles. - Captures topology, atomic positions, atom labels, lattice vectors and - stores them before section_system and + Captures topology, atomic positions, atom labels, lattice vectors and + stores them before section_system and section_single_configuration_calculation are encountered. """ - # Checking whether topology, input + # Checking whether topology, input # coordinates and trajectory files exist atLeastOneFileExist = False working_dir_name = os.path.dirname(os.path.abspath(self.fName)) @@ -287,7 +286,7 @@ class NAMDParser(SmartParser.ParserBase): 'dictionary' : section_control_Dict } self.metaStorage.update(updateDict) - self.metaStorage.updateBackend(backend.superBackend, + self.metaStorage.updateBackend(backend.superBackend, startsection=[PARSERTAG+'_section_control_parameters'], autoopenclose=False) nparms = 0 @@ -298,7 +297,7 @@ class NAMDParser(SmartParser.ParserBase): if nparms>0: backend.superBackend.addValue(PARSERTAG+"_inout_control_number_of_parameters", int(nparms)) # NAMD prints the initial and final energies to the log file. - # The total number of MD steps in NAMD is nsteps irrelevant + # The total number of MD steps in NAMD is nsteps irrelevant # to the number of steps in log file of energy file (.edr) nsteps = 0 nlogsteps = 0 @@ -307,8 +306,8 @@ class NAMDParser(SmartParser.ParserBase): noutputstep = 0 nbinsteps = 0 ntrajsteps = 0 - nvelsteps = 0 - nforcesteps = 0 + nvelsteps = 0 + nforcesteps = 0 nstructKey = isMetaStrInDict("STRUCTURE FILE",self.cntrlDict) ninputKey = isMetaStrInDict("COORDINATE PDB",self.cntrlDict) noutputKey = isMetaStrInDict("OUTPUT FILENAME",self.cntrlDict) @@ -354,7 +353,7 @@ class NAMDParser(SmartParser.ParserBase): if nfoutKey is not None: if self.cntrlDict[nfoutKey].activeInfo: nforcesteps = conv_int(self.cntrlDict[nfoutKey].value, default=0) - + if nlogsteps>0: logsteps = [i for i in range(0, nsteps, nlogsteps)] logsteps.append(nsteps) @@ -442,11 +441,11 @@ class NAMDParser(SmartParser.ParserBase): 'dictionary' : section_sampling_Dict } self.metaStorage.update(updateDict) - self.metaStorage.updateBackend(backend.superBackend, + self.metaStorage.updateBackend(backend.superBackend, startsection=['section_run'], #startsection=['section_sampling_method'], autoopenclose=False) - + def onOpen_section_topology(self, backend, gIndex, section): # keep track of the latest topology description section if (gIndex is None or gIndex == -1 or gIndex == "-1"): @@ -465,7 +464,7 @@ class NAMDParser(SmartParser.ParserBase): 'dictionary' : section_topology_Dict } self.metaStorage.update(updateDict) - self.metaStorage.updateBackend(backend.superBackend, + self.metaStorage.updateBackend(backend.superBackend, startsection=['section_topology'], autoopenclose=False) self.topology_atom_type_and_interactions(backend, gIndex) @@ -491,7 +490,7 @@ class NAMDParser(SmartParser.ParserBase): SloppyBackend = backend.superBackend else: SloppyBackend = backend - + numatoms = None # NAMD default unit vectors. If all are zeros than the simulation cell is not periodic. @@ -515,10 +514,10 @@ class NAMDParser(SmartParser.ParserBase): if self.trajectory is not None: if self.trajectory.unitcell_vectors is None: self.trajectory.unitcell_vectors = unit_vectors - + if self.topology: if (self.secTopologyGIndex is None or - (self.secTopologyGIndex == -1 or + (self.secTopologyGIndex == -1 or self.secTopologyGIndex == "-1")): self.onOpen_section_topology(backend, None, None) self.onClose_section_topology(backend, None, None) @@ -529,7 +528,7 @@ class NAMDParser(SmartParser.ParserBase): if self.trajectory is not None: coordinates=self.trajectory positions=self.atompositions - elif(self.inputcoords is not None and + elif(self.inputcoords is not None and self.MDcurrentstep == steps[0]): coordinates=self.inputcoords positions=self.inputpositions @@ -557,9 +556,9 @@ class NAMDParser(SmartParser.ParserBase): SloppyBackend.addArrayValues('atom_positions', np.transpose(np.asarray( self.metaStorage.convertUnits(positions, "Angstrom", self.unitDict)))) if coordinates.velocities is not None: - # Velocities in PDB files are stored in A/ps units.(PDB files are read for input + # Velocities in PDB files are stored in A/ps units.(PDB files are read for input # coordinates, velocities, and forces) - # Velocities in NAMD binary/DCD files are stored in NAMD internal units and must be multiplied + # Velocities in NAMD binary/DCD files are stored in NAMD internal units and must be multiplied # by PDBVELFACTOR=20.45482706 to convert to A/ps. (These files are used for output trajectory) SloppyBackend.addArrayValues('atom_velocities', np.transpose(np.asarray( self.metaStorage.convertUnits( @@ -663,7 +662,7 @@ class NAMDParser(SmartParser.ParserBase): } self.secVDWGIndex = backend.superBackend.openSection("section_energy_van_der_Waals") self.metaStorage.update(updateDictVDW) - self.metaStorage.updateBackend(backend.superBackend, + self.metaStorage.updateBackend(backend.superBackend, startsection=['section_energy_van_der_Waals'], autoopenclose=False) backend.superBackend.closeSection("section_energy_van_der_Waals", self.secVDWGIndex) @@ -675,7 +674,7 @@ class NAMDParser(SmartParser.ParserBase): 'dictionary' : section_singlecalc_Dict } self.metaStorage.update(updateDict) - self.metaStorage.updateBackend(backend.superBackend, + self.metaStorage.updateBackend(backend.superBackend, startsection=['section_single_configuration_calculation'], autoopenclose=False) if self.MDcurrentstep in forcesteps: @@ -688,7 +687,7 @@ class NAMDParser(SmartParser.ParserBase): self.atompositions.velocities, "kcal/(mol*Angstrom)", self.unitDict)))) # need to transpose array since its shape is [number_of_atoms,3] in the metadata - if(self.MDcurrentstep in trajsteps or + if(self.MDcurrentstep in trajsteps or self.MDcurrentstep in velsteps): #print("PRINTING traj steps:",self.MDcurrentstep,trajsteps) self.onOpen_section_system(backend, None, None) @@ -696,12 +695,12 @@ class NAMDParser(SmartParser.ParserBase): backend.addValue('single_configuration_calculation_to_system_ref', self.secSystemGIndex) self.MDiter += 1 else: - if(self.MDcurrentstep in logsteps or + if(self.MDcurrentstep in logsteps or self.MDcurrentstep in forcesteps): self.MDiter += 1 - #if((self.MDcurrentstep in logsteps and - # self.MDiter+1 in steps) or - # (self.MDcurrentstep in forcesteps and + #if((self.MDcurrentstep in logsteps and + # self.MDiter+1 in steps) or + # (self.MDcurrentstep in forcesteps and # self.MDiter+1 in steps)): # self.MDiter += 1 #if self.MDiter<len(steps): @@ -735,7 +734,7 @@ class NAMDParser(SmartParser.ParserBase): if fname in k: return value+v return value - + def mdInfoTrans(self, fname, value): mdInfoDict = { "minimization" : [], @@ -792,7 +791,7 @@ class NAMDParser(SmartParser.ParserBase): else: return value return value - + def convertInt(self, fname, value): keyMapper = { "TS" : "MDcurrentstep", @@ -820,7 +819,7 @@ class NAMDParser(SmartParser.ParserBase): if fname in k: return float(value)*timestep return value - + def build_subMatchers(self): """Builds the sub matchers to parse the main output file. """ @@ -834,24 +833,24 @@ class NAMDParser(SmartParser.ParserBase): "waitlist" : None, "stopOnMatchStr" : r"(?:^\s*$|\s*ENERGY:\s*)", "quitOnMatchStr" : r"^====================================================", - "metaNameStart" : PARSERTAG + "_mdout_", + "metaNameStart" : PARSERTAG + "_mdout_", "matchNameList" : mddataNameList, "matchNameDict" : "mddataDict", "updateMatchDict" : True, "onlyCaseSensitive" : True, "stopOnFirstLine" : False, - "parserOptions" : { - "header" : True, - "headersave" : "mdoutHeaderDict", - "wrap" : False, - "tablelines" : 0, - "tablestartsat" : r"\s*ETITLE:\s*", - "tableendsat" : r"^\s*$", + "parserOptions" : { + "header" : True, + "headersave" : "mdoutHeaderDict", + "wrap" : False, + "tablelines" : 0, + "tablestartsat" : r"\s*ETITLE:\s*", + "tableendsat" : r"^\s*$", "lineFilter" : None, "movetostopline" : False, "parsercntrlattr" : "MDcurrentstep", "parsercntrlin" : "logsteps", - "lookupdict" : "stepcontrolDict" + "lookupdict" : "stepcontrolDict" } }, # timestep energy outputs Parser @@ -861,24 +860,24 @@ class NAMDParser(SmartParser.ParserBase): "waitlist" : None, "stopOnMatchStr" : r"(?:^\s*$|\s*ENERGY:\s*)", "quitOnMatchStr" : r"^====================================================", - "metaNameStart" : PARSERTAG + "_mdout_", + "metaNameStart" : PARSERTAG + "_mdout_", "matchNameList" : mddataNameList, "matchNameDict" : "mddataDict", "updateMatchDict" : True, "onlyCaseSensitive" : True, "stopOnFirstLine" : False, - "parserOptions" : { - "header" : False, - "headerList" : "mdoutHeaderDict", - "wrap" : False, - "tablelines" : 0, - "tablestartsat" : r"\s*ENERGY:\s*", - "tableendsat" : r"^\s*$", + "parserOptions" : { + "header" : False, + "headerList" : "mdoutHeaderDict", + "wrap" : False, + "tablelines" : 0, + "tablestartsat" : r"\s*ENERGY:\s*", + "tableendsat" : r"^\s*$", "lineFilter" : None, "movetostopline" : False, "parsercntrlattr" : "MDcurrentstep", "parsercntrlin" : "logsteps", - "lookupdict" : "stepcontrolDict" + "lookupdict" : "stepcontrolDict" } }, # trajectory Parser @@ -887,15 +886,15 @@ class NAMDParser(SmartParser.ParserBase): "parsername" : "dcd_parser", "stopOnMatchStr" : r"\s*(?:ENERGY|TIMING|FINISHED|OPENING|The last)\s*", "quitOnMatchStr" : r"\s*(?:ENERGY|TIMING|FINISHED|OPENING|The last)\s*", - "metaNameStart" : PARSERTAG + "_mdout_", + "metaNameStart" : PARSERTAG + "_mdout_", "matchNameList" : mddataNameList, "matchNameDict" : "mddataDict", "updateMatchDict" : False, "onlyCaseSensitive" : True, "stopOnFirstLine" : True, "parserOptions" : { - "controlsections" : ["section_single_configuration_calculation"], - "controlsave" : "sectioncontrol", + "controlsections" : ["section_single_configuration_calculation"], + "controlsave" : "sectioncontrol", "controldict" : "stepcontrolDict", } }, @@ -905,15 +904,15 @@ class NAMDParser(SmartParser.ParserBase): "parsername" : "veldcd_parser", "stopOnMatchStr" : r"\s*(?:ENERGY|TIMING|FINISHED|OPENING|The last)\s*", "quitOnMatchStr" : r"\s*(?:ENERGY|TIMING|FINISHED|OPENING|The last)\s*", - "metaNameStart" : PARSERTAG + "_mdout_", + "metaNameStart" : PARSERTAG + "_mdout_", "matchNameList" : mddataNameList, "matchNameDict" : "mddataDict", "updateMatchDict" : False, "onlyCaseSensitive" : True, "stopOnFirstLine" : True, "parserOptions" : { - "controlsections" : ["section_single_configuration_calculation"], - "controlsave" : "sectioncontrol", + "controlsections" : ["section_single_configuration_calculation"], + "controlsave" : "sectioncontrol", "controldict" : "stepcontrolDict", } }, @@ -923,15 +922,15 @@ class NAMDParser(SmartParser.ParserBase): "parsername" : "forcedcd_parser", "stopOnMatchStr" : r"\s*(?:ENERGY|TIMING|FINISHED|OPENING|The last)\s*", "quitOnMatchStr" : r"\s*(?:ENERGY|TIMING|FINISHED|OPENING|The last)\s*", - "metaNameStart" : PARSERTAG + "_mdout_", + "metaNameStart" : PARSERTAG + "_mdout_", "matchNameList" : mddataNameList, "matchNameDict" : "mddataDict", "updateMatchDict" : False, "onlyCaseSensitive" : True, "stopOnFirstLine" : True, "parserOptions" : { - "controlsections" : ["section_single_configuration_calculation"], - "controlsave" : "sectioncontrol", + "controlsections" : ["section_single_configuration_calculation"], + "controlsave" : "sectioncontrol", "controldict" : "stepcontrolDict", } }, @@ -942,31 +941,31 @@ class NAMDParser(SmartParser.ParserBase): "waitlist" : None, "stopOnMatchStr" : "AlwaysStop", "quitOnMatchStr" : "AlwaysStop", - "metaNameStart" : PARSERTAG + "_mdout_", + "metaNameStart" : PARSERTAG + "_mdout_", "matchNameList" : mddataNameList, "matchNameDict" : "mddataDict", "updateMatchDict" : True, "onlyCaseSensitive" : True, "stopOnFirstLine" : True, - "parserOptions" : { - "dictionary" : "stepcontrolDict", + "parserOptions" : { + "dictionary" : "stepcontrolDict", "dicttype" : "standard", # (standard or smartparser) - "readwritedict" : "write", + "readwritedict" : "write", "keyMapper" : {"TS" : "MDcurrentstep", "DCDSTEP" : "MDcurrentstep", "VELSTEP" : "MDcurrentstep", "FORCESTEP" : "MDcurrentstep"}, "updatefunc" : "max", "updateattrs" : ["MDcurrentstep"], - "controlsections" : ["section_single_configuration_calculation"], - "controlsave" : "sectioncontrol", + "controlsections" : ["section_single_configuration_calculation"], + "controlsave" : "sectioncontrol", "controldict" : "stepcontrolDict", "controlattrs" : ["MDcurrentstep"], "preprocess" : self.convertInt, "postprocess" : self.convertInt, #"parsercntrlattr" : "MDcurrentstep", #"parsercntrlin" : "steps", - #"lookupdict" : "stepcontrolDict" + #"lookupdict" : "stepcontrolDict" } }, # time save Parser @@ -976,16 +975,16 @@ class NAMDParser(SmartParser.ParserBase): "waitlist" : None, "stopOnMatchStr" : "AlwaysStop", "quitOnMatchStr" : "AlwaysStop", - "metaNameStart" : PARSERTAG + "_mdout_", + "metaNameStart" : PARSERTAG + "_mdout_", "matchNameList" : mddataNameList, "matchNameDict" : "mddataDict", "updateMatchDict" : True, "onlyCaseSensitive" : True, "stopOnFirstLine" : True, - "parserOptions" : { - "dictionary" : "mddataDict", + "parserOptions" : { + "dictionary" : "mddataDict", "dicttype" : "smartparser", # (standard or smartparser) - "readwritedict" : "read", + "readwritedict" : "read", "keyMapper" : {"TIME" : "TS"}, "preprocess" : self.convertInt, "postprocess" : self.updateTime, @@ -1007,16 +1006,16 @@ class NAMDParser(SmartParser.ParserBase): "updateMatchDict" : False, "onlyCaseSensitive" : True, "stopOnFirstLine" : True, - "parserOptions" : { - "sectionname" : "section_single_configuration_calculation", - "sectionopen" : True, - "sectionopenattr" : "MDcurrentstep", - "sectionopenin" : "steps", - "sectionclose" : True, - "sectioncloseattr" : "MDcurrentstep", - "sectionclosein" : "steps", - "activatesection" : "sectioncontrol", - "lookupdict" : "stepcontrolDict" + "parserOptions" : { + "sectionname" : "section_single_configuration_calculation", + "sectionopen" : True, + "sectionopenattr" : "MDcurrentstep", + "sectionopenin" : "steps", + "sectionclose" : True, + "sectioncloseattr" : "MDcurrentstep", + "sectionclosein" : "steps", + "activatesection" : "sectioncontrol", + "lookupdict" : "stepcontrolDict" } }, # Step Control Parser @@ -1032,18 +1031,18 @@ class NAMDParser(SmartParser.ParserBase): "updateMatchDict" : False, "onlyCaseSensitive" : True, "stopOnFirstLine" : True, - "parserOptions" : { + "parserOptions" : { "waitatlineStr" : r"\s*ENERGY:\s*", - "controlwait" : None, - #"controlwait" : "nextlogsteps", - "controlattr" : "MDcurrentstep", - "controlnextattr" : "MDnextstep", - "controllast" : -1, - "controlskip" : [], - "controlin" : "steps", - "controlcounter" : "targetstep", + "controlwait" : None, + #"controlwait" : "nextlogsteps", + "controlattr" : "MDcurrentstep", + "controlnextattr" : "MDnextstep", + "controllast" : -1, + "controlskip" : [], + "controlin" : "steps", + "controlcounter" : "targetstep", "controldict" : "stepcontrolDict", - "lookupdict" : "stepcontrolDict" + "lookupdict" : "stepcontrolDict" } } ] @@ -1060,7 +1059,7 @@ class NAMDParser(SmartParser.ParserBase): "stopOnMatchStr" : r"\s*Info:\s*(?:SUMMARY\s*OF\s*PARAMETERS:|" "STRUCTURE\s*SUMMARY:)", "quitOnMatchStr" : None, - "metaNameStart" : PARSERTAG + "_inout_control_", + "metaNameStart" : PARSERTAG + "_inout_control_", "matchNameList" : cntrlNameList, "matchNameDict" : "cntrlDict", "updateMatchDict" : True, @@ -1076,16 +1075,16 @@ class NAMDParser(SmartParser.ParserBase): "quitOnMatchStr" : None, "stopOnMatchStr" : "AlwaysStop", "quitOnMatchStr" : "AlwaysStop", - "metaNameStart" : PARSERTAG + "_mdin_method_", + "metaNameStart" : PARSERTAG + "_mdin_method_", "matchNameList" : extraNameList, "matchNameDict" : "extraDict", "updateMatchDict" : True, "onlyCaseSensitive" : True, "stopOnFirstLine" : True, - "parserOptions" : { - "dictionary" : "cntrlDict", + "parserOptions" : { + "dictionary" : "cntrlDict", "dicttype" : "smartparser", # (standard or smartparser) - "readwritedict" : "read", + "readwritedict" : "read", "keyMapper" : { "minimization" : "MINIMIZATION", "minimization" : "VELOCITY QUENCHING", @@ -1112,16 +1111,16 @@ class NAMDParser(SmartParser.ParserBase): "waitlist" : None, "stopOnMatchStr" : "AlwaysStop", "quitOnMatchStr" : "AlwaysStop", - "metaNameStart" : PARSERTAG + "_inout_file", + "metaNameStart" : PARSERTAG + "_inout_file", "matchNameList" : fileNameList, "matchNameDict" : "fileDict", "updateMatchDict" : True, "onlyCaseSensitive" : True, "stopOnFirstLine" : True, - "parserOptions" : { - "dictionary" : "cntrlDict", + "parserOptions" : { + "dictionary" : "cntrlDict", "dicttype" : "smartparser", # (standard or smartparser) - "readwritedict" : "read", + "readwritedict" : "read", "keyMapper" : { "structure" : "STRUCTURE FILE", "traj_coord" : "Info: DCD FILENAME", @@ -1151,31 +1150,31 @@ class NAMDParser(SmartParser.ParserBase): startReStr=r"\s*Info:\s*NAMD\s*" "(?P<program_version>[0-9.]+)\s*for\s*" "(?P<"+PARSERTAG+"_build_osarch>.+)\s*"), - SM(name='license', + SM(name='license', startReStr=r"\s*Info:\s*Please\s*visit\s*", - coverageIgnore=True, - adHoc=lambda p: - self.adHoc_read_store_text_stop_parsing(p, + coverageIgnore=True, + adHoc=lambda p: + self.adHoc_read_store_text_stop_parsing(p, stopOnMatchStr=r"\s*Info:\s*(?:Info:Based|" "Built|Running|Configuration)\s*", quitOnMatchStr=None, - metaNameStart=PARSERTAG+"_", - metaNameStore=PARSERTAG+"_program_citation", + metaNameStart=PARSERTAG+"_", + metaNameStore=PARSERTAG+"_program_citation", matchNameList=None, matchNameDict=None, onlyCaseSensitive=True, stopOnFirstLine=False, storeFirstLine=True, storeStopQuitLine=True, - onQuitRunFunction=lambda p: p.backend.addValue( - PARSERTAG+"_program_citation", + onQuitRunFunction=lambda p: p.backend.addValue( + PARSERTAG+"_program_citation", p.lastMatch[ PARSERTAG+"_program_citation" ].replace('\n', ' ').replace('Info:', ' ') ) ) ), - SM(name='loghostinfo', + SM(name='loghostinfo', startReStr=r"\s*Info:\s*Built\s*" "(?P<"+PARSERTAG+"_program_build_date>" "[a-zA-Z0-9:. ]+)\s*by"), @@ -1185,11 +1184,11 @@ class NAMDParser(SmartParser.ParserBase): "STRUCTURE\s*SUMMARY|Entering\s*startup)\s*", forwardMatch=True, sections=['section_sampling_method', PARSERTAG + '_section_control_parameters'], - adHoc=lambda p: + adHoc=lambda p: self.adHoc_takingover_parsing(p, stopOnMatchStr=r"\s*Info:\s*(?:SUMMARY\s*OF\s*PARAMETERS|" "STRUCTURE\s*SUMMARY|Entering\s*startup)", - quitOnMatchStr=None, + quitOnMatchStr=None, stopControl="stopControl", # if None or True, stop with quitMatch, else wait record=False, # if False or None, no record, no replay replay=0, # if 0 or None= no replay, if <0 infinite replay @@ -1201,8 +1200,8 @@ class NAMDParser(SmartParser.ParserBase): startReStr=r"\s*Info:\s*Finished\s*startup", forwardMatch=True, sections=[PARSERTAG+'_section_input_output_files'], - coverageIgnore=True, - adHoc=lambda p: + coverageIgnore=True, + adHoc=lambda p: self.adHoc_takingover_parsing(p, stopOnMatchStr=r"^\s*$", quitOnMatchStr=r"^\s*$", @@ -1232,7 +1231,7 @@ class NAMDParser(SmartParser.ParserBase): startReStr=r"\s*ETITLE:\s*TS\s*" "(?P<"+PARSERTAG+"_mdin_finline>.*)(?:'|\")?\s*,?", forwardMatch=True, - adHoc=lambda p: + adHoc=lambda p: self.adHoc_takingover_parsing(p, stopOnMatchStr=r"^====================================================", quitOnMatchStr=r"^====================================================", @@ -1252,12 +1251,35 @@ class NAMDParser(SmartParser.ParserBase): subMatchers=[ SM(r"^WallClock:\s*[0-9:.eEdD]+\s*CPUTime:\s*[0-9.:eEdD]+\s*Memory:\s*[0-9:.KMGTB ]+"), ]), # END Computation - SM(name='end_run', + SM(name='end_run', startReStr=r"\s*End\s*of\s*program\s*"), ]) # END NewRun ] +class NamdParserInterface(): + """ A proper class envolop for running this parser from within python. """ + def __init__(self, backend, **kwargs): + self.backend_factory = backend + + def parse(self, mainfile): + from unittest.mock import patch + logging.info('namd parser started') + logging.getLogger('nomadcore').setLevel(logging.WARNING) + backend = self.backend_factory("namd.nomadmetainfo.json") + parserInfo = {'name': 'namd-parser', 'version': '1.0'} + context = NAMDParser() + with patch.object(sys, 'argv', ['<exe>', '--uri', 'nmd://uri', mainfile]): + mainFunction( + mainFileDescription=context.mainFileDescription(), + metaInfoEnv=None, + parserInfo=parserInfo, + cachingLevelForMetaName=context.cachingLevelForMetaName, + superContext=context, + superBackend=backend) + return backend + + if __name__ == "__main__": parser = NAMDParser() parser.parse() diff --git a/namdparser/__init__.py b/namdparser/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..5aa590cecd582b44463b6fccbd7e0516572abd0f --- /dev/null +++ b/namdparser/__init__.py @@ -0,0 +1 @@ +from .NAMDParser import NamdParserInterface as NamdParser \ No newline at end of file diff --git a/namdparser/metainfo/__init__.py b/namdparser/metainfo/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..642e1b94c74757def3adce5eccffccafd1fb0e52 --- /dev/null +++ b/namdparser/metainfo/__init__.py @@ -0,0 +1,13 @@ +import sys +from nomad.metainfo import Environment +from nomad.metainfo.legacy import LegacyMetainfoEnvironment +import namdparser.metainfo.namd +import nomad.datamodel.metainfo.common +import nomad.datamodel.metainfo.public +import nomad.datamodel.metainfo.general + +m_env = LegacyMetainfoEnvironment() +m_env.m_add_sub_section(Environment.packages, sys.modules['namdparser.metainfo.namd'].m_package) # type: ignore +m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.common'].m_package) # type: ignore +m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.public'].m_package) # type: ignore +m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.general'].m_package) # type: ignore diff --git a/namdparser/metainfo/namd.py b/namdparser/metainfo/namd.py new file mode 100644 index 0000000000000000000000000000000000000000..e890535d157fa2f043cf9bd823e4b81e1e334ceb --- /dev/null +++ b/namdparser/metainfo/namd.py @@ -0,0 +1,2062 @@ +import numpy as np # pylint: disable=unused-import +import typing # pylint: disable=unused-import +from nomad.metainfo import ( # pylint: disable=unused-import + MSection, MCategory, Category, Package, Quantity, Section, SubSection, SectionProxy, + Reference +) +from nomad.metainfo.legacy import LegacyDefinition + +from nomad.datamodel.metainfo import public +from nomad.datamodel.metainfo import common + +m_package = Package( + name='namd_nomadmetainfo_json', + description='None', + a_legacy=LegacyDefinition(name='namd.nomadmetainfo.json')) + + +class x_namd_mdin_input_output_files(MCategory): + ''' + Parameters of mdin belonging to x_namd_section_control_parameters. + ''' + + m_def = Category( + a_legacy=LegacyDefinition(name='x_namd_mdin_input_output_files')) + + +class x_namd_mdin_control_parameters(MCategory): + ''' + Parameters of mdin belonging to x_namd_section_control_parameters. + ''' + + m_def = Category( + a_legacy=LegacyDefinition(name='x_namd_mdin_control_parameters')) + + +class x_namd_mdin_method(MCategory): + ''' + Parameters of mdin belonging to section method. + ''' + + m_def = Category( + a_legacy=LegacyDefinition(name='x_namd_mdin_method')) + + +class x_namd_mdout_single_configuration_calculation(MCategory): + ''' + Parameters of mdout belonging to section_single_configuration_calculation. + ''' + + m_def = Category( + a_legacy=LegacyDefinition(name='x_namd_mdout_single_configuration_calculation')) + + +class x_namd_mdout_method(MCategory): + ''' + Parameters of mdin belonging to section method. + ''' + + m_def = Category( + a_legacy=LegacyDefinition(name='x_namd_mdout_method')) + + +class x_namd_mdout_run(MCategory): + ''' + Parameters of mdin belonging to settings run. + ''' + + m_def = Category( + categories=[public.settings_run], + a_legacy=LegacyDefinition(name='x_namd_mdout_run')) + + +class x_namd_mdin_run(MCategory): + ''' + Parameters of mdin belonging to settings run. + ''' + + m_def = Category( + categories=[public.settings_run], + a_legacy=LegacyDefinition(name='x_namd_mdin_run')) + + +class x_namd_section_input_output_files(MSection): + ''' + Section to store input and output file names + ''' + + m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_namd_section_input_output_files')) + + x_namd_inout_file_structure = Quantity( + type=str, + shape=[], + description=''' + NAMD input topology file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_structure')) + + x_namd_inout_file_traj_coord = Quantity( + type=str, + shape=[], + description=''' + NAMD output trajectory file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_traj_coord')) + + x_namd_inout_file_traj_vel = Quantity( + type=str, + shape=[], + description=''' + NAMD output file for velocities in the trajectory. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_traj_vel')) + + x_namd_inout_file_traj_force = Quantity( + type=str, + shape=[], + description=''' + NAMD output file for forces in the trajectory. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_traj_force')) + + x_namd_inout_file_output_coord = Quantity( + type=str, + shape=[], + description=''' + NAMD output coordinates file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_output_coord')) + + x_namd_inout_file_output_vel = Quantity( + type=str, + shape=[], + description=''' + NAMD output velocities file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_output_vel')) + + x_namd_inout_file_output_force = Quantity( + type=str, + shape=[], + description=''' + NAMD output forces file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_output_force')) + + x_namd_inout_file_input_coord = Quantity( + type=str, + shape=[], + description=''' + NAMD input coordinates file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_input_coord')) + + x_namd_inout_file_input_vel = Quantity( + type=str, + shape=[], + description=''' + NAMD input velocities file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_input_vel')) + + x_namd_inout_file_restart_coord = Quantity( + type=str, + shape=[], + description=''' + NAMD restart coordinates file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_restart_coord')) + + x_namd_inout_file_restart_vel = Quantity( + type=str, + shape=[], + description=''' + NAMD restart velocities file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_restart_vel')) + + x_namd_inout_file_fftw_datafile = Quantity( + type=str, + shape=[], + description=''' + NAMD FFTW data file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_fftw_datafile')) + + x_namd_inout_file_mdlog = Quantity( + type=str, + shape=[], + description=''' + NAMD MD output log file. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_file_mdlog')) + + +class x_namd_section_control_parameters(MSection): + ''' + Section to store the input and output control parameters + ''' + + m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_namd_section_control_parameters')) + + x_namd_inout_control_timestep = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_timestep')) + + x_namd_inout_control_number_of_steps = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_number_of_steps')) + + x_namd_inout_control_steps_per_cycle = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_steps_per_cycle')) + + x_namd_inout_control_periodic_cell_basis_1 = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_periodic_cell_basis_1')) + + x_namd_inout_control_periodic_cell_basis_2 = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_periodic_cell_basis_2')) + + x_namd_inout_control_periodic_cell_basis_3 = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_periodic_cell_basis_3')) + + x_namd_inout_control_periodic_cell_center = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_periodic_cell_center')) + + x_namd_inout_control_load_balancer = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_load_balancer')) + + x_namd_inout_control_load_balancing_strategy = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_load_balancing_strategy')) + + x_namd_inout_control_ldb_period = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_ldb_period')) + + x_namd_inout_control_first_ldb_timestep = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_first_ldb_timestep')) + + x_namd_inout_control_last_ldb_timestep = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_last_ldb_timestep')) + + x_namd_inout_control_ldb_background_scaling = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_ldb_background_scaling')) + + x_namd_inout_control_hom_background_scaling = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_hom_background_scaling')) + + x_namd_inout_control_pme_background_scaling = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pme_background_scaling')) + + x_namd_inout_control_min_atoms_per_patch = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_min_atoms_per_patch')) + + x_namd_inout_control_initial_temperature = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_initial_temperature')) + + x_namd_inout_control_center_of_mass_moving_initially = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_center_of_mass_moving_initially')) + + x_namd_inout_control_dielectric = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_dielectric')) + + x_namd_inout_control_excluded_species_or_groups = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_excluded_species_or_groups')) + + x_namd_inout_control_1_4_electrostatics_scale = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_1_4_electrostatics_scale')) + + x_namd_inout_control_traj_dcd_filename = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_traj_dcd_filename')) + + x_namd_inout_control_traj_dcd_frequency = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_traj_dcd_frequency')) + + x_namd_inout_control_traj_dcd_first_step = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_traj_dcd_first_step')) + + x_namd_inout_control_velocity_dcd_filename = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_velocity_dcd_filename')) + + x_namd_inout_control_velocity_dcd_frequency = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_velocity_dcd_frequency')) + + x_namd_inout_control_velocity_dcd_first_step = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_velocity_dcd_first_step')) + + x_namd_inout_control_force_dcd_filename = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_force_dcd_filename')) + + x_namd_inout_control_force_dcd_frequency = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_force_dcd_frequency')) + + x_namd_inout_control_force_dcd_first_step = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_force_dcd_first_step')) + + x_namd_inout_control_output_filename = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_output_filename')) + + x_namd_inout_control_binary_output = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_binary_output')) + + x_namd_inout_control_restart_filename = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_restart_filename')) + + x_namd_inout_control_restart_frequency = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_restart_frequency')) + + x_namd_inout_control_binary_restart = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_binary_restart')) + + x_namd_inout_control_switching = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_switching')) + + x_namd_inout_control_switching_on = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_switching_on')) + + x_namd_inout_control_switching_off = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_switching_off')) + + x_namd_inout_control_pairlist_distance = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pairlist_distance')) + + x_namd_inout_control_pairlist_shrink_rate = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pairlist_shrink_rate')) + + x_namd_inout_control_pairlist_grow_rate = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pairlist_grow_rate')) + + x_namd_inout_control_pairlist_trigger = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pairlist_trigger')) + + x_namd_inout_control_pairlists_per_cycle = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pairlists_per_cycle')) + + x_namd_inout_control_pairlists = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pairlists')) + + x_namd_inout_control_margin = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_margin')) + + x_namd_inout_control_hydrogen_group_cutoff = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_hydrogen_group_cutoff')) + + x_namd_inout_control_patch_dimension = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_patch_dimension')) + + x_namd_inout_control_energy_output_steps = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_energy_output_steps')) + + x_namd_inout_control_crossterm_energy = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_crossterm_energy')) + + x_namd_inout_control_timing_output_steps = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_timing_output_steps')) + + x_namd_inout_control_velocity_rescale_freq = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_velocity_rescale_freq')) + + x_namd_inout_control_velocity_rescale_temp = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_velocity_rescale_temp')) + + x_namd_inout_control_velocity_reassignment_freq = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_velocity_reassignment_freq')) + + x_namd_inout_control_velocity_reassignment_temp = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_velocity_reassignment_temp')) + + x_namd_inout_control_velocity_reassignment_incr = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_velocity_reassignment_incr')) + + x_namd_inout_control_velocity_reassignment_hold = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_velocity_reassignment_hold')) + + x_namd_inout_control_lowe_andersen_dynamics = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_lowe_andersen_dynamics')) + + x_namd_inout_control_lowe_andersen_temperature = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_lowe_andersen_temperature')) + + x_namd_inout_control_lowe_andersen_rate = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_lowe_andersen_rate')) + + x_namd_inout_control_lowe_andersen_cutoff = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_lowe_andersen_cutoff')) + + x_namd_inout_control_langevin_dynamics = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_dynamics')) + + x_namd_inout_control_langevin_temperature = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_temperature')) + + x_namd_inout_control_langevin_integrator = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_integrator')) + + x_namd_inout_control_langevin_damping_file = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_damping_file')) + + x_namd_inout_control_langevin_damping_column = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_damping_column')) + + x_namd_inout_control_langevin_damping_coefficient_unit = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_damping_coefficient_unit')) + + x_namd_inout_control_langevin_dynamics_not_applied_to = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_dynamics_not_applied_to')) + + x_namd_inout_control_temperature_coupling = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_temperature_coupling')) + + x_namd_inout_control_coupling_temperature = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_coupling_temperature')) + + x_namd_inout_control_berendsen_pressure_coupling = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_berendsen_pressure_coupling')) + + x_namd_inout_control_berendsen_compressibility_estimate = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_berendsen_compressibility_estimate')) + + x_namd_inout_control_berendsen_relaxation_time = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_berendsen_relaxation_time')) + + x_namd_inout_control_berendsen_coupling_frequency = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_berendsen_coupling_frequency')) + + x_namd_inout_control_langevin_piston_pressure_control = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_piston_pressure_control')) + + x_namd_inout_control_target_pressure = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_target_pressure')) + + x_namd_inout_control_langevin_oscillation_period = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_oscillation_period')) + + x_namd_inout_control_langevin_decay_time = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_decay_time')) + + x_namd_inout_control_langevin_piston_temperature = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_langevin_piston_temperature')) + + x_namd_inout_control_pressure_control = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pressure_control')) + + x_namd_inout_control_initial_strain_rate = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_initial_strain_rate')) + + x_namd_inout_control_cell_fluctuation = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_cell_fluctuation')) + + x_namd_inout_control_particle_mesh_ewald = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_particle_mesh_ewald')) + + x_namd_inout_control_pme_tolerance = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pme_tolerance')) + + x_namd_inout_control_pme_ewald_coefficient = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pme_ewald_coefficient')) + + x_namd_inout_control_pme_interpolation_order = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pme_interpolation_order')) + + x_namd_inout_control_pme_grid_dimensions = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pme_grid_dimensions')) + + x_namd_inout_control_pme_maximum_grid_spacing = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_pme_maximum_grid_spacing')) + + x_namd_inout_control_fftw_data_file = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_fftw_data_file')) + + x_namd_inout_control_full_electrostatic_evaluation_frequency = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_full_electrostatic_evaluation_frequency')) + + x_namd_inout_control_minimization = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_minimization')) + + x_namd_inout_control_velocity_quenching = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_velocity_quenching')) + + x_namd_inout_control_verlet_integrator = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_verlet_integrator')) + + x_namd_inout_control_random_number_seed = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_random_number_seed')) + + x_namd_inout_control_use_hydrogen_bonds = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_use_hydrogen_bonds')) + + x_namd_inout_control_coordinate_pdb = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_coordinate_pdb')) + + x_namd_inout_control_structure_file = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_structure_file')) + + x_namd_inout_control_parameter_file = Quantity( + type=str, + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_parameter_file')) + + x_namd_inout_control_number_of_parameters = Quantity( + type=np.dtype(np.int32), + shape=[], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_number_of_parameters')) + + x_namd_inout_control_parameters = Quantity( + type=str, + shape=['x_namd_inout_control_number_of_parameters'], + description=''' + NAMD running environment and control parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_inout_control_parameters')) + + +class x_namd_section_atom_to_atom_type_ref(MSection): + ''' + Section to store atom label to atom type definition list + ''' + + m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_namd_section_atom_to_atom_type_ref')) + + x_namd_atom_to_atom_type_ref = Quantity( + type=np.dtype(np.int64), + shape=['number_of_atoms_per_type'], + description=''' + Reference to the atoms of each atom type. + ''', + a_legacy=LegacyDefinition(name='x_namd_atom_to_atom_type_ref')) + + +class x_namd_section_single_configuration_calculation(MSection): + ''' + section for gathering values for MD steps + ''' + + m_def = Section(validate=False, a_legacy=LegacyDefinition(name='x_namd_section_single_configuration_calculation')) + + +class section_system(public.section_system): + + m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_system')) + + x_namd_atom_positions_image_index = Quantity( + type=np.dtype(np.int32), + shape=['number_of_atoms', 3], + unit='dimensionless', + description=''' + PBC image flag index. + ''', + a_legacy=LegacyDefinition(name='x_namd_atom_positions_image_index')) + + x_namd_atom_positions_scaled = Quantity( + type=np.dtype(np.float64), + shape=['number_of_atoms', 3], + unit='dimensionless', + description=''' + Position of the atoms in a scaled format [0, 1]. + ''', + a_legacy=LegacyDefinition(name='x_namd_atom_positions_scaled')) + + x_namd_atom_positions_wrapped = Quantity( + type=np.dtype(np.float64), + shape=['number_of_atoms', 3], + unit='meter', + description=''' + Position of the atoms wrapped back to the periodic box. + ''', + a_legacy=LegacyDefinition(name='x_namd_atom_positions_wrapped')) + + x_namd_lattice_lengths = Quantity( + type=np.dtype(np.float64), + shape=[3], + description=''' + Lattice dimensions in a vector. Vector includes [a, b, c] lengths. + ''', + categories=[public.configuration_core], + a_legacy=LegacyDefinition(name='x_namd_lattice_lengths')) + + x_namd_lattice_angles = Quantity( + type=np.dtype(np.float64), + shape=[3], + description=''' + Angles of lattice vectors. Vector includes [alpha, beta, gamma] in degrees. + ''', + categories=[public.configuration_core], + a_legacy=LegacyDefinition(name='x_namd_lattice_angles')) + + x_namd_dummy = Quantity( + type=str, + shape=[], + description=''' + dummy + ''', + a_legacy=LegacyDefinition(name='x_namd_dummy')) + + x_namd_mdin_finline = Quantity( + type=str, + shape=[], + description=''' + finline in mdin + ''', + a_legacy=LegacyDefinition(name='x_namd_mdin_finline')) + + x_namd_traj_timestep_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_traj_timestep_store')) + + x_namd_traj_number_of_atoms_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_traj_number_of_atoms_store')) + + x_namd_traj_box_bound_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_traj_box_bound_store')) + + x_namd_traj_box_bounds_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_traj_box_bounds_store')) + + x_namd_traj_variables_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_traj_variables_store')) + + x_namd_traj_atoms_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_traj_atoms_store')) + + +class section_sampling_method(public.section_sampling_method): + + m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_sampling_method')) + + x_namd_barostat_target_pressure = Quantity( + type=np.dtype(np.float64), + shape=[], + unit='pascal', + description=''' + MD barostat target pressure. + ''', + categories=[public.settings_molecular_dynamics, public.settings_sampling, public.settings_barostat], + a_legacy=LegacyDefinition(name='x_namd_barostat_target_pressure')) + + x_namd_barostat_tau = Quantity( + type=np.dtype(np.float64), + shape=[], + unit='second', + description=''' + MD barostat relaxation time. + ''', + categories=[public.settings_molecular_dynamics, public.settings_sampling, public.settings_barostat], + a_legacy=LegacyDefinition(name='x_namd_barostat_tau')) + + x_namd_barostat_type = Quantity( + type=str, + shape=[], + description=''' + MD barostat type, valid values are defined in the barostat_type wiki page. + ''', + categories=[public.settings_molecular_dynamics, public.settings_sampling, public.settings_barostat], + a_legacy=LegacyDefinition(name='x_namd_barostat_type')) + + x_namd_integrator_dt = Quantity( + type=np.dtype(np.float64), + shape=[], + unit='second', + description=''' + MD integration time step. + ''', + categories=[public.settings_molecular_dynamics, public.settings_sampling, public.settings_integrator], + a_legacy=LegacyDefinition(name='x_namd_integrator_dt')) + + x_namd_integrator_type = Quantity( + type=str, + shape=[], + description=''' + MD integrator type, valid values are defined in the integrator_type wiki page. + ''', + categories=[public.settings_molecular_dynamics, public.settings_sampling, public.settings_integrator], + a_legacy=LegacyDefinition(name='x_namd_integrator_type')) + + x_namd_periodicity_type = Quantity( + type=str, + shape=[], + description=''' + Periodic boundary condition type in the sampling (non-PBC or PBC). + ''', + categories=[public.settings_molecular_dynamics, public.settings_sampling, public.settings_integrator], + a_legacy=LegacyDefinition(name='x_namd_periodicity_type')) + + x_namd_langevin_gamma = Quantity( + type=np.dtype(np.float64), + shape=[], + unit='second', + description=''' + Langevin thermostat damping factor. + ''', + categories=[public.settings_sampling, public.settings_molecular_dynamics, public.settings_thermostat], + a_legacy=LegacyDefinition(name='x_namd_langevin_gamma')) + + x_namd_number_of_steps_requested = Quantity( + type=np.dtype(np.float64), + shape=[], + description=''' + Number of requested MD integration time steps. + ''', + categories=[public.settings_molecular_dynamics, public.settings_sampling, public.settings_integrator], + a_legacy=LegacyDefinition(name='x_namd_number_of_steps_requested')) + + x_namd_thermostat_level = Quantity( + type=str, + shape=[], + description=''' + MD thermostat level (see wiki: single, multiple, regional). + ''', + categories=[public.settings_sampling, public.settings_molecular_dynamics, public.settings_thermostat], + a_legacy=LegacyDefinition(name='x_namd_thermostat_level')) + + x_namd_thermostat_target_temperature = Quantity( + type=np.dtype(np.float64), + shape=[], + unit='kelvin', + description=''' + MD thermostat target temperature. + ''', + categories=[public.settings_sampling, public.settings_molecular_dynamics, public.settings_thermostat], + a_legacy=LegacyDefinition(name='x_namd_thermostat_target_temperature')) + + x_namd_thermostat_tau = Quantity( + type=np.dtype(np.float64), + shape=[], + unit='second', + description=''' + MD thermostat relaxation time. + ''', + categories=[public.settings_sampling, public.settings_molecular_dynamics, public.settings_thermostat], + a_legacy=LegacyDefinition(name='x_namd_thermostat_tau')) + + x_namd_thermostat_type = Quantity( + type=str, + shape=[], + description=''' + MD thermostat type, valid values are defined in the thermostat_type wiki page. + ''', + categories=[public.settings_sampling, public.settings_molecular_dynamics, public.settings_thermostat], + a_legacy=LegacyDefinition(name='x_namd_thermostat_type')) + + +class section_atom_type(common.section_atom_type): + + m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_atom_type')) + + x_namd_atom_name = Quantity( + type=str, + shape=[], + description=''' + Atom name of an atom in topology definition. + ''', + a_legacy=LegacyDefinition(name='x_namd_atom_name')) + + x_namd_atom_type = Quantity( + type=str, + shape=[], + description=''' + Atom type of an atom in topology definition. + ''', + a_legacy=LegacyDefinition(name='x_namd_atom_type')) + + x_namd_atom_element = Quantity( + type=str, + shape=[], + description=''' + Atom type of an atom in topology definition. + ''', + a_legacy=LegacyDefinition(name='x_namd_atom_element')) + + x_namd_atom_type_element = Quantity( + type=str, + shape=[], + description=''' + Element symbol of an atom type. + ''', + a_legacy=LegacyDefinition(name='x_namd_atom_type_element')) + + x_namd_atom_type_radius = Quantity( + type=np.dtype(np.float64), + shape=[], + description=''' + van der Waals radius of an atom type. + ''', + a_legacy=LegacyDefinition(name='x_namd_atom_type_radius')) + + number_of_atoms_per_type = Quantity( + type=int, + shape=[], + description=''' + Number of atoms involved in this type. + ''', + a_legacy=LegacyDefinition(name='number_of_atoms_per_type')) + + +class section_interaction(common.section_interaction): + + m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_interaction')) + + x_namd_interaction_atom_to_atom_type_ref = Quantity( + type=common.section_atom_type, + shape=['number_of_atoms_per_interaction'], + description=''' + Reference to the atom type of each interaction atoms. + ''', + a_legacy=LegacyDefinition(name='x_namd_interaction_atom_to_atom_type_ref')) + + x_namd_number_of_defined_pair_interactions = Quantity( + type=np.dtype(np.int32), + shape=[], + description=''' + Number of defined pair interactions (L-J pairs). + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_defined_pair_interactions')) + + x_namd_pair_interaction_atom_type_ref = Quantity( + type=common.section_atom_type, + shape=['x_namd_number_of_defined_pair_interactions', 'number_of_atoms_per_interaction'], + description=''' + Reference to the atom type for pair interactions. + ''', + a_legacy=LegacyDefinition(name='x_namd_pair_interaction_atom_type_ref')) + + x_namd_pair_interaction_parameters = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_defined_pair_interactions', 2], + description=''' + Pair interactions parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_pair_interaction_parameters')) + + +class section_molecule_interaction(common.section_molecule_interaction): + + m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_molecule_interaction')) + + x_namd_molecule_interaction_atom_to_atom_type_ref = Quantity( + type=common.section_atom_type, + shape=['number_of_atoms_per_interaction'], + description=''' + Reference to the atom type of each molecule interaction atoms. + ''', + a_legacy=LegacyDefinition(name='x_namd_molecule_interaction_atom_to_atom_type_ref')) + + x_namd_number_of_defined_molecule_pair_interactions = Quantity( + type=np.dtype(np.int32), + shape=[], + description=''' + Number of defined pair interactions within a molecule (L-J pairs). + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_defined_molecule_pair_interactions')) + + x_namd_pair_molecule_interaction_parameters = Quantity( + type=np.dtype(np.float64), + shape=['number_of_defined_molecule_pair_interactions', 2], + description=''' + Molecule pair interactions parameters. + ''', + a_legacy=LegacyDefinition(name='x_namd_pair_molecule_interaction_parameters')) + + x_namd_pair_molecule_interaction_to_atom_type_ref = Quantity( + type=common.section_atom_type, + shape=['x_namd_number_of_defined_pair_interactions', 'number_of_atoms_per_interaction'], + description=''' + Reference to the atom type for pair interactions within a molecule. + ''', + a_legacy=LegacyDefinition(name='x_namd_pair_molecule_interaction_to_atom_type_ref')) + + +class section_run(public.section_run): + + m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_run')) + + x_namd_program_version_date = Quantity( + type=str, + shape=[], + description=''' + Program version date. + ''', + a_legacy=LegacyDefinition(name='x_namd_program_version_date')) + + x_namd_parallel_task_nr = Quantity( + type=np.dtype(np.float64), + shape=[], + description=''' + Program task no. + ''', + a_legacy=LegacyDefinition(name='x_namd_parallel_task_nr')) + + x_namd_build_osarch = Quantity( + type=str, + shape=[], + description=''' + Program Build OS/ARCH + ''', + a_legacy=LegacyDefinition(name='x_namd_build_osarch')) + + x_namd_program_build_date = Quantity( + type=str, + shape=[], + description=''' + Program Build date + ''', + a_legacy=LegacyDefinition(name='x_namd_program_build_date')) + + x_namd_program_citation = Quantity( + type=str, + shape=[], + description=''' + Program citations + ''', + a_legacy=LegacyDefinition(name='x_namd_program_citation')) + + x_namd_number_of_tasks = Quantity( + type=np.dtype(np.float64), + shape=[], + description=''' + Number of tasks in parallel program (MPI). + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_tasks')) + + x_namd_program_module_version = Quantity( + type=str, + shape=[], + description=''' + NAMD program module version. + ''', + a_legacy=LegacyDefinition(name='x_namd_program_module_version')) + + x_namd_program_license = Quantity( + type=str, + shape=[], + description=''' + NAMD program license. + ''', + a_legacy=LegacyDefinition(name='x_namd_program_license')) + + x_namd_xlo_xhi = Quantity( + type=str, + shape=[], + description=''' + test + ''', + a_legacy=LegacyDefinition(name='x_namd_xlo_xhi')) + + x_namd_data_file_store = Quantity( + type=str, + shape=[], + description=''' + Filename of data file + ''', + a_legacy=LegacyDefinition(name='x_namd_data_file_store')) + + x_namd_program_working_path = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_program_working_path')) + + x_namd_program_execution_host = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_program_execution_host')) + + x_namd_program_execution_path = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_program_execution_path')) + + x_namd_program_module = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_program_module')) + + x_namd_program_execution_date = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_program_execution_date')) + + x_namd_program_execution_time = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_program_execution_time')) + + x_namd_mdin_header = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_mdin_header')) + + x_namd_mdin_wt = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_mdin_wt')) + + x_namd_section_input_output_files = SubSection( + sub_section=SectionProxy('x_namd_section_input_output_files'), + repeats=True, + a_legacy=LegacyDefinition(name='x_namd_section_input_output_files')) + + x_namd_section_control_parameters = SubSection( + sub_section=SectionProxy('x_namd_section_control_parameters'), + repeats=True, + a_legacy=LegacyDefinition(name='x_namd_section_control_parameters')) + + +class section_topology(common.section_topology): + + m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_topology')) + + x_namd_input_units_store = Quantity( + type=str, + shape=[], + description=''' + It determines the units of all quantities specified in the input script and data + file, as well as quantities output to the screen, log file, and dump files. + ''', + a_legacy=LegacyDefinition(name='x_namd_input_units_store')) + + x_namd_data_bond_types_store = Quantity( + type=np.dtype(np.int32), + shape=[], + description=''' + store temporarly + ''', + a_legacy=LegacyDefinition(name='x_namd_data_bond_types_store')) + + x_namd_data_bond_count_store = Quantity( + type=np.dtype(np.int32), + shape=[], + description=''' + store temporarly + ''', + a_legacy=LegacyDefinition(name='x_namd_data_bond_count_store')) + + x_namd_data_angle_count_store = Quantity( + type=np.dtype(np.int32), + shape=[], + description=''' + store temporarly + ''', + a_legacy=LegacyDefinition(name='x_namd_data_angle_count_store')) + + x_namd_data_atom_types_store = Quantity( + type=np.dtype(np.int32), + shape=[], + description=''' + store temporarly + ''', + a_legacy=LegacyDefinition(name='x_namd_data_atom_types_store')) + + x_namd_data_dihedral_count_store = Quantity( + type=np.dtype(np.int32), + shape=[], + description=''' + store temporarly + ''', + a_legacy=LegacyDefinition(name='x_namd_data_dihedral_count_store')) + + x_namd_data_angles_store = Quantity( + type=str, + shape=[], + description=''' + store temporarly + ''', + a_legacy=LegacyDefinition(name='x_namd_data_angles_store')) + + x_namd_data_angle_list_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_data_angle_list_store')) + + x_namd_data_bond_list_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_data_bond_list_store')) + + x_namd_data_dihedral_list_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_data_dihedral_list_store')) + + x_namd_data_dihedral_coeff_list_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_data_dihedral_coeff_list_store')) + + x_namd_masses_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_masses_store')) + + x_namd_data_topo_list_store = Quantity( + type=str, + shape=[], + description=''' + tmp + ''', + a_legacy=LegacyDefinition(name='x_namd_data_topo_list_store')) + + x_namd_section_atom_to_atom_type_ref = SubSection( + sub_section=SectionProxy('x_namd_section_atom_to_atom_type_ref'), + repeats=True, + a_legacy=LegacyDefinition(name='x_namd_section_atom_to_atom_type_ref')) + + +class section_frame_sequence(public.section_frame_sequence): + + m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_frame_sequence')) + + x_namd_number_of_volumes_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of volumes in this sequence of frames, see + x_namd_frame_sequence_volume. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_volumes_in_sequence')) + + x_namd_number_of_densities_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of densities in this sequence of frames, see + x_namd_frame_sequence_density. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_densities_in_sequence')) + + x_namd_number_of_bond_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of bond_energies in this sequence of frames, see + x_namd_frame_sequence_bond_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_bond_energies_in_sequence')) + + x_namd_number_of_angle_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of angle_energies in this sequence of frames, see + x_namd_frame_sequence_angle_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_angle_energies_in_sequence')) + + x_namd_number_of_proper_dihedral_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of proper_dihedral_energies in this sequence of frames, see + x_namd_frame_sequence_proper_dihedral_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_proper_dihedral_energies_in_sequence')) + + x_namd_number_of_improper_dihedral_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of improper_dihedral_energies in this sequence of frames, see + x_namd_frame_sequence_improper_dihedral_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_improper_dihedral_energies_in_sequence')) + + x_namd_number_of_cmap_dihedral_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of cmap_dihedral_energies in this sequence of frames, see + x_namd_frame_sequence_cmap_dihedral_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_cmap_dihedral_energies_in_sequence')) + + x_namd_number_of_vdw_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of vdw_energies in this sequence of frames, see + x_namd_frame_sequence_vdw_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_vdw_energies_in_sequence')) + + x_namd_number_of_boundary_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of boundary_energies in this sequence of frames, see + x_namd_frame_sequence_boundary_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_boundary_energies_in_sequence')) + + x_namd_number_of_electrostatic_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of electrostatic_energies in this sequence of frames, see + x_namd_frame_sequence_electrostatic_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_electrostatic_energies_in_sequence')) + + x_namd_number_of_total2_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of total2_energies in this sequence of frames, see + x_namd_frame_sequence_total2_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_total2_energies_in_sequence')) + + x_namd_number_of_total3_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of total3_energies in this sequence of frames, see + x_namd_frame_sequence_total3_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_total3_energies_in_sequence')) + + x_namd_number_of_misc_energies_in_sequence = Quantity( + type=int, + shape=[], + description=''' + Gives the number of misc_energies in this sequence of frames, see + x_namd_frame_sequence_misc_energy. + ''', + a_legacy=LegacyDefinition(name='x_namd_number_of_misc_energies_in_sequence')) + + x_namd_frame_sequence_density_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_densities_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_densities values refers to. If not given it defaults to the + trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_density_frames')) + + x_namd_frame_sequence_density = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_densities_in_sequence'], + description=''' + Array containing the values of the density along this sequence of frames (i.e., a + trajectory, a frame is one section_single_configuration_calculation). If not all + frames have a value the indices of the frames that have a value are stored in + frame_sequence_density_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_density')) + + x_namd_frame_sequence_cmap_dihedral_energy_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_cmap_dihedral_energy_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_cmap_dihedral_energy values refers to. If not given it + defaults to the trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_cmap_dihedral_energy_frames')) + + x_namd_frame_sequence_cmap_dihedral_energy = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_cmap_dihedral_energy_in_sequence'], + description=''' + Array containing the values of the cmap_dihedral_energy along this sequence of + frames (i.e., a trajectory, a frame is one + section_single_configuration_calculation). If not all frames have a value the + indices of the frames that have a value are stored in + frame_sequence_cmap_dihedral_energy_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_cmap_dihedral_energy')) + + x_namd_frame_sequence_improper_dihedral_energy_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_improper_dihedral_energy_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_improper_dihedral_energy values refers to. If not given it + defaults to the trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_improper_dihedral_energy_frames')) + + x_namd_frame_sequence_improper_dihedral_energy = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_improper_dihedral_energy_in_sequence'], + description=''' + Array containing the values of the improper_dihedral_energy along this sequence of + frames (i.e., a trajectory, a frame is one + section_single_configuration_calculation). If not all frames have a value the + indices of the frames that have a value are stored in + frame_sequence_improper_dihedral_energy_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_improper_dihedral_energy')) + + x_namd_frame_sequence_proper_dihedral_energy_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_proper_dihedral_energy_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_proper_dihedral_energy values refers to. If not given it + defaults to the trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_proper_dihedral_energy_frames')) + + x_namd_frame_sequence_proper_dihedral_energy = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_proper_dihedral_energy_in_sequence'], + description=''' + Array containing the values of the proper_dihedral_energy along this sequence of + frames (i.e., a trajectory, a frame is one + section_single_configuration_calculation). If not all frames have a value the + indices of the frames that have a value are stored in + frame_sequence_proper_dihedral_energy_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_proper_dihedral_energy')) + + x_namd_frame_sequence_bond_energy_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_bond_energies_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_bond_energy values refers to. If not given it defaults to + the trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_bond_energy_frames')) + + x_namd_frame_sequence_bond_energy = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_bond_energies_in_sequence'], + description=''' + Array containing the values of the bond_energy along this sequence of frames + (i.e., a trajectory, a frame is one section_single_configuration_calculation). If + not all frames have a value the indices of the frames that have a value are stored + in frame_sequence_bond_energy_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_bond_energy')) + + x_namd_frame_sequence_boundary_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_boundary_energies_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_boundary values refers to. If not given it defaults to the + trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_boundary_frames')) + + x_namd_frame_sequence_boundary = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_boundary_energies_in_sequence'], + description=''' + Array containing the values of the boundary along this sequence of frames (i.e., a + trajectory, a frame is one section_single_configuration_calculation). If not all + frames have a value the indices of the frames that have a value are stored in + frame_sequence_boundary_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_boundary')) + + x_namd_frame_sequence_angle_energy_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_angle_energies_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_angle_energy values refers to. If not given it defaults to + the trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_angle_energy_frames')) + + x_namd_frame_sequence_angle_energy = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_angle_energies_in_sequence'], + description=''' + Array containing the values of the angle_energy along this sequence of frames + (i.e., a trajectory, a frame is one section_single_configuration_calculation). If + not all frames have a value the indices of the frames that have a value are stored + in frame_sequence_angle_energy_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_angle_energy')) + + x_namd_frame_sequence_vdw_energy_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_vdw_energies_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_vdw_energy values refers to. If not given it defaults to the + trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_vdw_energy_frames')) + + x_namd_frame_sequence_vdw_energy = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_vdw_energies_in_sequence'], + description=''' + Array containing the values of the vdw_energy along this sequence of frames (i.e., + a trajectory, a frame is one section_single_configuration_calculation). If not all + frames have a value the indices of the frames that have a value are stored in + frame_sequence_vdw_energy_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_vdw_energy')) + + x_namd_frame_sequence_electrostatic_energy_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_electrostatic_energies_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_electrostatic_energy values refers to. If not given it + defaults to the trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_electrostatic_energy_frames')) + + x_namd_frame_sequence_electrostatic_energy = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_electrostatic_energies_in_sequence'], + description=''' + Array containing the values of the electrostatic_energy along this sequence of + frames (i.e., a trajectory, a frame is one + section_single_configuration_calculation). If not all frames have a value the + indices of the frames that have a value are stored in + frame_sequence_electrostatic_energy_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_electrostatic_energy')) + + x_namd_frame_sequence_total2_energy_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_total2_energies_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_total2_energy values refers to. If not given it defaults to + the trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_total2_energy_frames')) + + x_namd_frame_sequence_total2_energy = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_total2_energies_in_sequence'], + description=''' + Array containing the values of the total2_energy along this sequence of frames + (i.e., a trajectory, a frame is one section_single_configuration_calculation). If + not all frames have a value the indices of the frames that have a value are stored + in frame_sequence_total2_energy_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_total2_energy')) + + x_namd_frame_sequence_total3_energy_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_total3_energies_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_total3_energy values refers to. If not given it defaults to + the trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_total3_energy_frames')) + + x_namd_frame_sequence_total3_energy = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_total3_energies_in_sequence'], + description=''' + Array containing the values of the total3_energy along this sequence of frames + (i.e., a trajectory, a frame is one section_single_configuration_calculation). If + not all frames have a value the indices of the frames that have a value are stored + in frame_sequence_total3_energy_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_total3_energy')) + + x_namd_frame_sequence_misc_energy_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_misc_energies_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_misc_energy values refers to. If not given it defaults to + the trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_misc_energy_frames')) + + x_namd_frame_sequence_misc_energy = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_misc_energies_in_sequence'], + description=''' + Array containing the values of the misc_energy along this sequence of frames + (i.e., a trajectory, a frame is one section_single_configuration_calculation). If + not all frames have a value the indices of the frames that have a value are stored + in frame_sequence_misc_energy_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_misc_energy')) + + x_namd_frame_sequence_volume_frames = Quantity( + type=np.dtype(np.int32), + shape=['x_namd_number_of_volumes_in_sequence'], + description=''' + Array containing the strictly increasing indices of the frames the + x_namd_frame_sequence_volume values refers to. If not given it defaults to the + trivial mapping 0,1,... + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_volume_frames')) + + x_namd_frame_sequence_volume = Quantity( + type=np.dtype(np.float64), + shape=['x_namd_number_of_volumes_in_sequence'], + description=''' + Array containing the values of the volume along this sequence of frames (i.e., a + trajectory, a frame is one section_single_configuration_calculation). If not all + frames have a value the indices of the frames that have a value are stored in + frame_sequence_volume_frames. + ''', + a_legacy=LegacyDefinition(name='x_namd_frame_sequence_volume')) + + +class section_single_configuration_calculation(public.section_single_configuration_calculation): + + m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_single_configuration_calculation')) + + x_namd_section_single_configuration_calculation = SubSection( + sub_section=SectionProxy('x_namd_section_single_configuration_calculation'), + repeats=True, + a_legacy=LegacyDefinition(name='x_namd_section_single_configuration_calculation')) + + +m_package.__init_metainfo__() diff --git a/parser/parser-namd/setup_paths.py b/setup.py similarity index 55% rename from parser/parser-namd/setup_paths.py rename to setup.py index f13f57280e68c2733a9b291d81fdd080dd19f9a7..2e7df3a996c6280b15d52599cbf6d21ec0c8e996 100644 --- a/parser/parser-namd/setup_paths.py +++ b/setup.py @@ -1,22 +1,34 @@ -# Copyright 2018-2018 Berk Onat, Fawzi Mohamed -# +# Copyright 2015-2018 Berk Onat +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import sys -import os -import os.path -basedir = os.path.dirname(os.path.abspath(__file__)) -commondir = os.path.normpath(os.path.join(basedir,"../../../../python-common/common/python")) +from setuptools import setup, find_packages -if not commondir in sys.path: - sys.path.insert(0, commondir) + +def main(): + setup( + name='namdparser', + version='0.1', + description='NOMAD parser implementation for Namd.', + license='APACHE 2.0', + package_dir={'': './'}, + packages=find_packages(), + install_requires=[ + 'nomadcore', + 'nomad' + ], + ) + + +if __name__ == '__main__': + main() diff --git a/src/main/scala/eu/nomad_lab/parsers/NAMDParser.scala b/src/main/scala/eu/nomad_lab/parsers/NAMDParser.scala deleted file mode 100644 index 59d9dc6c281b44c5bec8d34ce56b81d64d8a11cc..0000000000000000000000000000000000000000 --- a/src/main/scala/eu/nomad_lab/parsers/NAMDParser.scala +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2018-2018 Berk Onat, Fawzi Mohamed - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package eu.nomad_lab.parsers - -import eu.nomad_lab -import eu.nomad_lab.DefaultPythonInterpreter -import org.{ json4s => jn } -import eu.{ nomad_lab => lab } -import scala.collection.breakOut - -object NamdParser extends SimpleExternalParserGenerator( - name = "NamdParser", - parserInfo = jn.JObject( - ("name" -> jn.JString("NamdParser")) :: - ("parserId" -> jn.JString("NamdParser" + lab.NamdVersionInfo.version)) :: - ("versionInfo" -> jn.JObject( - ("nomadCoreVersion" -> jn.JObject(lab.NomadCoreVersionInfo.toMap.map { - case (k, v) => k -> jn.JString(v.toString) - }(breakOut): List[(String, jn.JString)])) :: - (lab.NamdVersionInfo.toMap.map { - case (key, value) => - (key -> jn.JString(value.toString)) - }(breakOut): List[(String, jn.JString)]) - )) :: Nil - ), - mainFileTypes = Seq("text/.*"), - mainFileRe = """\s*Info:\s*NAMD\s*[0-9.]+\s*for\s*""".r, - cmd = Seq(DefaultPythonInterpreter.pythonExe(), "${envDir}/parsers/namd/parser/parser-namd/NAMDParser.py", - "${mainFilePath}"), - resList = Seq( - "parser-namd/NAMDParser.py", - "parser-namd/NAMDDictionary.py", - "parser-namd/NAMDCommon.py", - "parser-namd/setup_paths.py", - "nomad_meta_info/public.nomadmetainfo.json", - "nomad_meta_info/common.nomadmetainfo.json", - "nomad_meta_info/meta_types.nomadmetainfo.json", - "nomad_meta_info/namd.nomadmetainfo.json" - ) ++ DefaultPythonInterpreter.commonFiles(), - dirMap = Map( - "parser-namd" -> "parsers/namd/parser/parser-namd", - "nomad_meta_info" -> "nomad-meta-info/meta_info/nomad_meta_info", - "python" -> "python-common/common/python/nomadcore" - ) ++ DefaultPythonInterpreter.commonDirMapping(), - metaInfoEnv = Some(lab.meta.KnownMetaInfoEnvs.namd) -) - diff --git a/src/test/scala/eu/nomad_lab/parsers/NAMDParserSpec.scala b/src/test/scala/eu/nomad_lab/parsers/NAMDParserSpec.scala deleted file mode 100644 index d38d2a15218f60b45b2d72972bc83ab383ed9739..0000000000000000000000000000000000000000 --- a/src/test/scala/eu/nomad_lab/parsers/NAMDParserSpec.scala +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2018-2018 Berk Onat, Fawzi Mohamed - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package eu.nomad_lab.parsers - -import org.specs2.mutable.Specification - -object NamdParserTests extends Specification { - "NAMDParserTest" >> { - "[tiny with 507 atoms] test with json-events" >> { - ParserRun.parse(NamdParser, "parsers/namd/test/examples/tiny/tiny.log", "json-events") must_== ParseResult.ParseSuccess - } - "[tiny with 507 atoms] test with json" >> { - ParserRun.parse(NamdParser, "parsers/namd/test/examples/tiny/tiny.log", "json") must_== ParseResult.ParseSuccess - } - "[apoa1-trajectory with 92224 atoms] test with json-events" >> { - ParserRun.parse(NamdParser, "parsers/namd/test/examples/apoa1-trajectory/apoa1.log", "json-events") must_== ParseResult.ParseSuccess - } - "[apoa1-trajectory with 92224 atoms] test with json" >> { - ParserRun.parse(NamdParser, "parsers/namd/test/examples/apoa1-trajectory/apoa1.log", "json") must_== ParseResult.ParseSuccess - } - } -}