diff --git a/parser/parser-wien2k/#wien2k_parser_struct.py# b/parser/parser-wien2k/#wien2k_parser_struct.py# deleted file mode 100644 index 72e24285e05c2253a67d579993315f26c621d098..0000000000000000000000000000000000000000 --- a/parser/parser-wien2k/#wien2k_parser_struct.py# +++ /dev/null @@ -1,71 +0,0 @@ -from builtins import object -import setup_paths -from nomadcore.simple_parser import mainFunction, CachingLevel -from nomadcore.simple_parser import SimpleMatcher as SM -from nomadcore.local_meta_info import loadJsonFile, InfoKindEl -import os, sys, json - -class Wien2kStructContext(object): - """context for wien2k struct parser""" - - def __init__(self): - self.parser = None - - def initialize_values(self): - """allows to reset values if the same superContext is used to parse different files""" - pass - - def startedParsing(self, path, parser): - """called when parsing starts""" - self.parser = parser - # allows to reset values if the same superContext is used to parse different files - self.initialize_values() - - -# description of the input -def buildStructureMatchers(): - return SM( - name = 'root', - weak = True, - startReStr = "", - sections = ["section_run", "section_system"], - subMatchers = [ - SM(name = 'systemName', - startReStr = r"(?P<x_wien2k_system_nameIn>.*)"), - SM(r"\w+\s*LATTICE,NONEQUIV\.ATOMS.\s*(?P<x_wien2k_nonequiv_atoms>[0-9]+)"), - SM(r"(?P<x_wien2k_calc_mode>.*)"), - # SM(r"\s*(?P<x_wien2k_unit_cell_param_a>[-+0-9.eEdD]+)\s*(?P<x_wien2k_unit_cell_param_b>[-+0-9.eEdD]+)\s*(?P<x_wien2k_unit_cell_param_c>[-+0-9.eEdD]+)\s*(?P<x_wien2k_angle_between_unit_axis_alfa>[-+0-9.eEdD]{9})\s*(?P<x_wien2k_angle_between_unit_axis_beta>[-+0-9.eEdD]{9})\s*(?P<x_wien2k_angle_between_unit_axis_gamma>[-+0-9.eEdD]+)"), - SM(r"\s*(?P<x_wien2k_unit_cell_param_a>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_b>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_c>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_alfa>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_beta>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_gamma>[-+]?[0-9]*\.\d*)"), - SM(r"\s*ATOM\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)", - repeats=True, - sections=["x_wien2k_section_equiv_atoms"], - subMatchers=[ - SM(r"\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)", - repeats=True - ), - # SM(r"\s*(?P<atom>.{10})\s*NPT=\s*(?P<NPT>[0-9]+)\s*R0=(?P<r0>[0-9.]+)\s*RMT=\s*(?P<rmt>[0-9.]+)\s*Z:\s*(?P<z>[0-9.]+)",) - SM(r"\s*(?P<x_wien2k_atom_name>^.+)\s*NPT=\s*(?P<x_wien2k_NPT>[0-9]+)\s*R0=(?P<x_wien2k_R0>[0-9.]+)\s*RMT=\s*(?P<x_wien2k_RMT>[0-9.]+)\s*Z:\s*(?P<x_wien2k_atomic_number_Z>[0-9.]+)",) - ] - ) - ]) - -def get_cachingLevelForMetaName(metaInfoEnv, CachingLvl): - """Sets the caching level for the metadata. - - Args: - metaInfoEnv: metadata which is an object of the class InfoKindEnv in nomadcore.local_meta_info.py. - CachingLvl: Sets the CachingLevel for the sections k_band, run, and single_configuration_calculation. - This allows to run the parser without opening new sections. - - Returns: - Dictionary with metaname as key and caching level as value. - """ - # manually adjust caching of metadata - cachingLevelForMetaName = { - 'section_run': CachingLvl, - 'section_system': CachingLvl - } - cachingLevelForMetaName["x_wien2k_system_nameIn"] = CachingLevel.ForwardAndCache - return cachingLevelForMetaName - -# loading metadata from nomad-meta-info/meta_info/nomad_meta_info/fhi_aims.nomadmetainfo.json diff --git a/parser/parser-wien2k/wien2k_parser_in0.py b/parser/parser-wien2k/wien2k_parser_in0.py index 1e0492c7b33d300e7ee9b8d72572539b3aef3da1..b602d6a2a3988845a08125bb9882f9d868de6b13 100644 --- a/parser/parser-wien2k/wien2k_parser_in0.py +++ b/parser/parser-wien2k/wien2k_parser_in0.py @@ -28,25 +28,24 @@ def buildIn0Matchers(): name = 'root', weak = True, startReStr = "", - sections = ["section_run", "section_system"], + sections = ["section_run", "section_method"], subMatchers = [ - SM(name = 'systemName', - startReStr = r"(?P<x_wien2k_system_nameIn>.*)"), - SM(r"\w+\s*LATTICE,NONEQUIV\.ATOMS.\s*(?P<x_wien2k_nonequiv_atoms>[0-9]+)"), - SM(r"(?P<x_wien2k_calc_mode>.*)"), - # SM(r"\s*(?P<x_wien2k_unit_cell_param_a>[-+0-9.eEdD]+)\s*(?P<x_wien2k_unit_cell_param_b>[-+0-9.eEdD]+)\s*(?P<x_wien2k_unit_cell_param_c>[-+0-9.eEdD]+)\s*(?P<x_wien2k_angle_between_unit_axis_alfa>[-+0-9.eEdD]{9})\s*(?P<x_wien2k_angle_between_unit_axis_beta>[-+0-9.eEdD]{9})\s*(?P<x_wien2k_angle_between_unit_axis_gamma>[-+0-9.eEdD]+)"), - SM(r"\s*(?P<x_wien2k_unit_cell_param_a>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_b>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_c>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_alfa>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_beta>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_gamma>[-+]?[0-9]*\.\d*)"), - SM(r"\s*ATOM\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)", - repeats=True, - sections=["x_wien2k_section_equiv_atoms"], - subMatchers=[ - SM(r"\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)", - repeats=True - ), - # SM(r"\s*(?P<atom>.{10})\s*NPT=\s*(?P<NPT>[0-9]+)\s*R0=(?P<r0>[0-9.]+)\s*RMT=\s*(?P<rmt>[0-9.]+)\s*Z:\s*(?P<z>[0-9.]+)",) - SM(r"\s*(?P<x_wien2k_atom_name>^.+)\s*NPT=\s*(?P<x_wien2k_NPT>[0-9]+)\s*R0=(?P<x_wien2k_R0>[0-9.]+)\s*RMT=\s*(?P<x_wien2k_RMT>[0-9.]+)\s*Z:\s*(?P<x_wien2k_atomic_number_Z>[0-9.]+)",) - ] - ) +# SM(name = 'systemName', +# startReStr = r"(?P<x_wien2k_system_nameIn>.*)"), + SM(r"(?P<x_wien2k_switch>\w*)\s*(?P<x_wien2k_indxc>[0-9]+)\s*.*"), + SM(r"\s*(?P<x_wien2k_ifft_x>[0-9]+)\s*(?P<x_wien2k_ifft_y>[0-9]+)\s*(?P<x_wien2k_ifft_z>[0-9]+)\s*(?P<x_wien2k_ifft_factor>[0-9.]+)\s*(?P<x_wien2k_iprint>[0-9]+).*") +# SM(r"(?P<x_wien2k_calc_mode>.*)"), +# SM(r"\s*(?P<x_wien2k_unit_cell_param_a>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_b>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_unit_cell_param_c>[-+0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_alfa>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_beta>[-+]?[0-9]*\.\d{0,6}){0,10}\s*(?P<x_wien2k_angle_between_unit_axis_gamma>[-+]?[0-9]*\.\d*)"), +# SM(r"\s*ATOM\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)", +# repeats=True, +# sections=["x_wien2k_section_equiv_atoms"], +# subMatchers=[ +# SM(r"\s*[-0-9]+:\s*X=(?P<x_wien2k_atom_pos_x>[-+0-9.eEdD]+)\s*Y=(?P<x_wien2k_atom_pos_y>[-+0-9.eEdD]+)\s*Z=(?P<x_wien2k_atom_pos_z>[-+0-9.eEdD]+)", +# repeats=True +# ), +# SM(r"\s*(?P<x_wien2k_atom_name>^.+)\s*NPT=\s*(?P<x_wien2k_NPT>[0-9]+)\s*R0=(?P<x_wien2k_R0>[0-9.]+)\s*RMT=\s*(?P<x_wien2k_RMT>[0-9.]+)\s*Z:\s*(?P<x_wien2k_atomic_number_Z>[0-9.]+)",) +# ] +# ) ]) def get_cachingLevelForMetaName(metaInfoEnv, CachingLvl): @@ -63,9 +62,8 @@ def get_cachingLevelForMetaName(metaInfoEnv, CachingLvl): # manually adjust caching of metadata cachingLevelForMetaName = { 'section_run': CachingLvl, - 'section_system': CachingLvl + 'section_method': CachingLvl } - cachingLevelForMetaName["x_wien2k_system_nameIn"] = CachingLevel.ForwardAndCache return cachingLevelForMetaName # loading metadata from nomad-meta-info/meta_info/nomad_meta_info/fhi_aims.nomadmetainfo.json diff --git a/src/main/scala/eu/nomad_lab/parsers/Wien2kParser.scala b/src/main/scala/eu/nomad_lab/parsers/Wien2kParser.scala index ad314e254be5be879a8661be5d720686ae309198..781f0a2f5e011e3e1300fd3333ce9f4e6ede08eb 100644 --- a/src/main/scala/eu/nomad_lab/parsers/Wien2kParser.scala +++ b/src/main/scala/eu/nomad_lab/parsers/Wien2kParser.scala @@ -27,6 +27,7 @@ object Wien2kParser extends SimpleExternalParserGenerator( "--uri", "${mainFileUri}", "${mainFilePath}"), resList = Seq( "parser-wien2k/wien2k_parser.py", + "parser-wien2k/wien2k_parser_in0.py", "parser-wien2k/wien2k_parser_struct.py", "parser-wien2k/setup_paths.py", "nomad_meta_info/public.nomadmetainfo.json",