From a65c7ae9448b0261259996e392670ef7d5594910 Mon Sep 17 00:00:00 2001 From: jrudz Date: Thu, 15 Aug 2024 16:43:24 +0200 Subject: [PATCH] created solutions file refs --- src/nomad_parser_vasp/parsers/xml_parser.py | 40 ------ .../parsers/xml_parser_all_solutions.py | 134 ++++++++++++++++++ .../schema_packages/vasp_schema.py | 80 ----------- .../vasp_schema_all_solutions.py | 80 +++++++++++ tests/test_parse.ipynb | 125 +++------------- tests/test_parse_all_solutions.pdf | Bin 0 -> 65121 bytes 6 files changed, 237 insertions(+), 222 deletions(-) create mode 100644 src/nomad_parser_vasp/parsers/xml_parser_all_solutions.py create mode 100644 src/nomad_parser_vasp/schema_packages/vasp_schema_all_solutions.py create mode 100644 tests/test_parse_all_solutions.pdf diff --git a/src/nomad_parser_vasp/parsers/xml_parser.py b/src/nomad_parser_vasp/parsers/xml_parser.py index 1c0192c..f1c9fb5 100644 --- a/src/nomad_parser_vasp/parsers/xml_parser.py +++ b/src/nomad_parser_vasp/parsers/xml_parser.py @@ -7,15 +7,8 @@ from nomad_simulations.schema_packages.general import Program, Simulation from nomad_simulations.schema_packages.model_method import DFT, XCFunctional from nomad_simulations.schema_packages.model_system import AtomicCell, ModelSystem -from nomad_simulations.schema_packages.outputs import Outputs from structlog.stdlib import BoundLogger -from nomad_parser_vasp.schema_packages.vasp_schema import ( - HartreeDCEnergy, - TotalEnergy, - XCdcEnergy, -) - configuration = config.get_plugin_entry_point( 'nomad_parser_vasp.parsers:xml_entry_point' ) @@ -99,36 +92,3 @@ def xml_get(path: str, slicer=slice(0, 1), fallback=None): hartreedc = hartreedc[0] * ureg.eV if hartreedc else None xcdc = xml_get("i[@name='XCdc']", slice(-2, -1)) xcdc = xcdc[0] * ureg.eV if xcdc else None - - #################################################### - # Create the outputs section, populate it with the # - # parsed energies, and add it to the archive # - #################################################### - output = Outputs() - archive.data.outputs.append(output) - output.total_energy.append(TotalEnergy(value=total_energy)) - output.total_energy[0].contributions.append(HartreeDCEnergy(value=hartreedc)) - output.total_energy[0].contributions.append(XCdcEnergy(value=xcdc)) - - ############################################################## - # Add a new contribution to the total energy that quantifies # - # its unknown contributions (3 ways, choose 1) # - ############################################################## - - # Case 1: Don't include UnknownEnergy in parsing - # Expected Results: UnknownEnergy is added to contribution list by the normalizer - - # Case 2: Add UnknownEnergy to contribution list in the parser but without a value - # from nomad_parser_vasp.schema_packages.vasp_schema import UnknownEnergy - - # output.total_energy[0].contributions.append(UnknownEnergy(value=None)) - # Expected Results: UnknownEnergy value is calculated by the normalizer and placed into this section - - # Case 3: Add UnknownEnergy to contribution list in the parser with a value - # from nomad_parser_vasp.schema_packages.vasp_schema import UnknownEnergy - - # output.total_energy[0].contributions.append( - # UnknownEnergy(value=(total_energy - 2 * hartreedc - xcdc)) - # ) - # Expected Results: normalizer does not change the value of UnknownEnergy - # (for testing purposes we subtract double the hartreedc value) diff --git a/src/nomad_parser_vasp/parsers/xml_parser_all_solutions.py b/src/nomad_parser_vasp/parsers/xml_parser_all_solutions.py new file mode 100644 index 0000000..222a0e3 --- /dev/null +++ b/src/nomad_parser_vasp/parsers/xml_parser_all_solutions.py @@ -0,0 +1,134 @@ +import numpy as np +from nomad.config import config +from nomad.datamodel.datamodel import EntryArchive +from nomad.parsing import MatchingParser +from nomad.parsing.file_parser.xml_parser import XMLParser +from nomad.units import ureg +from nomad_simulations.schema_packages.general import Program, Simulation +from nomad_simulations.schema_packages.model_method import DFT, XCFunctional +from nomad_simulations.schema_packages.model_system import AtomicCell, ModelSystem +from nomad_simulations.schema_packages.outputs import Outputs +from structlog.stdlib import BoundLogger + +from nomad_parser_vasp.schema_packages.vasp_schema import ( + HartreeDCEnergy, + TotalEnergy, + XCdcEnergy, +) + +configuration = config.get_plugin_entry_point( + 'nomad_parser_vasp.parsers:xml_entry_point' +) + + +class VasprunXMLParser(MatchingParser): + convert_xc: dict[str, str] = { + '--': 'GGA_XC_PBE', + 'PE': 'GGA_XC_PBE', + } + + def parse( + self, + mainfile: str, + archive: EntryArchive, + logger: BoundLogger, + child_archives: dict[str, EntryArchive] = None, + ) -> None: + logger.info('VasprunXMLParser.parse', parameter=configuration.parameter) + xml_reader = XMLParser(mainfile=mainfile) # XPath syntax + + def xml_get(path: str, slicer=slice(0, 1), fallback=None): + try: + return xml_reader.parse(path)._results[path][slicer] + except KeyError: + return fallback + + #################################################### + # Parse the basic program, method, and system data # + #################################################### + archive.data = Simulation( + program=Program( + name='VASP', + version=xml_get("//generator/i[@name='version']")[0], + ), + model_method=[ + DFT( + xc_functionals=[ + XCFunctional( + libxc_name=self.convert_xc.get( + xml_get( + "///separator[@name='electronic exchange-correlation']/i[@name='LSDA']" + ), + {}, + ) + .get( + xml_get( + "///separator[@name='electronic exchange-correlation']/i[@name='METAGGA']" + ), + {}, + ) + .get( + xml_get( + "///separator[@name='electronic exchange-correlation']/i[@name='GGA']" + ), + 'PE', + ), + ), + ], + ), + ], + ) + + if ( + positions := xml_get( + "structure[@name='finalpos']/./varray[@name='positions']/v", + slice(None), + fallback=np.array([]), + ) + ).any(): + archive.data.model_system.append( + ModelSystem(cell=[AtomicCell(positions=positions)]) + ) + + ##################################################### + # Get the energy data from the raw simulation files # + ##################################################### + total_energy = xml_get("i[@name='e_fr_energy']", slice(-2, -1)) + total_energy = total_energy[0] * ureg.eV if total_energy else None + hartreedc = xml_get("i[@name='hartreedc']", slice(-2, -1)) + hartreedc = hartreedc[0] * ureg.eV if hartreedc else None + xcdc = xml_get("i[@name='XCdc']", slice(-2, -1)) + xcdc = xcdc[0] * ureg.eV if xcdc else None + + #################################################### + # Create the outputs section, populate it with the # + # parsed energies, and add it to the archive # + #################################################### + output = Outputs() + archive.data.outputs.append(output) + output.total_energy.append(TotalEnergy(value=total_energy)) + output.total_energy[0].contributions.append(HartreeDCEnergy(value=hartreedc)) + output.total_energy[0].contributions.append(XCdcEnergy(value=xcdc)) + + ############################################################## + # Add a new contribution to the total energy that quantifies # + # its unknown contributions (3 ways, choose 1) # + ############################################################## + + # Case 1: Don't include UnknownEnergy in parsing + # Expected Results: UnknownEnergy is added to contribution list by the normalizer + + # # Case 2: Add UnknownEnergy to contribution list in the parser but without a value + # from nomad_parser_vasp.schema_packages.vasp_schema import UnknownEnergy + + # output.total_energy[0].contributions.append(UnknownEnergy(value=None)) + # # Expected Results: UnknownEnergy value is calculated by the normalizer and placed into this section + + # Case 3: Add UnknownEnergy to contribution list in the parser with a value + # from nomad_parser_vasp.schema_packages.vasp_schema import UnknownEnergy + + # output.total_energy[0].contributions.append( + # UnknownEnergy(value=(total_energy - 2 * hartreedc - xcdc)) + # ) + # Expected Results: normalizer does not change the value of UnknownEnergy + # (for testing purposes we subtract double the hartreedc value) diff --git a/src/nomad_parser_vasp/schema_packages/vasp_schema.py b/src/nomad_parser_vasp/schema_packages/vasp_schema.py index 339e35b..e69de29 100644 --- a/src/nomad_parser_vasp/schema_packages/vasp_schema.py +++ b/src/nomad_parser_vasp/schema_packages/vasp_schema.py @@ -1,80 +0,0 @@ -import nomad_simulations -from nomad.metainfo import MEnum, Quantity -from nomad_simulations.schema_packages.properties.energies import EnergyContribution - - -class DoubleCountingEnergy(EnergyContribution): - type = Quantity( - type=MEnum('double_counting'), - ) - - def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: - super().normalize(archive, logger) - - if not self.type: - self.type = 'double_counting' - - -class HartreeDCEnergy(DoubleCountingEnergy): - def __init__( - self, m_def: 'Section' = None, m_context: 'Context' = None, **kwargs - ) -> None: - super().__init__(m_def, m_context, **kwargs) - self.name = self.m_def.name - - def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: - super().normalize(archive, logger) - - -class XCdcEnergy(DoubleCountingEnergy): - def __init__( - self, m_def: 'Section' = None, m_context: 'Context' = None, **kwargs - ) -> None: - super().__init__(m_def, m_context, **kwargs) - self.name = self.m_def.name - - def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: - super().normalize(archive, logger) - - -class UnknownEnergy(EnergyContribution): - def __init__( - self, m_def: 'Section' = None, m_context: 'Context' = None, **kwargs - ) -> None: - super().__init__(m_def, m_context, **kwargs) - self.name = self.m_def.name - - def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: - super().normalize(archive, logger) - - -class TotalEnergy(nomad_simulations.schema_packages.properties.TotalEnergy): - def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: - super().normalize(archive, logger) - - if not self.value: - return - if not self.contributions: - return - - value = self.value - unknown_exists = False - unknown_has_value = False - i_unknown = None - for i_cont, contribution in enumerate(self.contributions): - if contribution.name == 'UnknownEnergy': - unknown_exists = True - i_unknown = i_cont - unknown_has_value = True if contribution.value else False - - if not contribution.value: - continue - - value -= contribution.value - - if unknown_exists: - if not unknown_has_value: - self.contributions[i_unknown].value = value - else: - self.contributions.append(UnknownEnergy(value=value)) - self.contributions[-1].normalize(archive, logger) diff --git a/src/nomad_parser_vasp/schema_packages/vasp_schema_all_solutions.py b/src/nomad_parser_vasp/schema_packages/vasp_schema_all_solutions.py new file mode 100644 index 0000000..339e35b --- /dev/null +++ b/src/nomad_parser_vasp/schema_packages/vasp_schema_all_solutions.py @@ -0,0 +1,80 @@ +import nomad_simulations +from nomad.metainfo import MEnum, Quantity +from nomad_simulations.schema_packages.properties.energies import EnergyContribution + + +class DoubleCountingEnergy(EnergyContribution): + type = Quantity( + type=MEnum('double_counting'), + ) + + def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: + super().normalize(archive, logger) + + if not self.type: + self.type = 'double_counting' + + +class HartreeDCEnergy(DoubleCountingEnergy): + def __init__( + self, m_def: 'Section' = None, m_context: 'Context' = None, **kwargs + ) -> None: + super().__init__(m_def, m_context, **kwargs) + self.name = self.m_def.name + + def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: + super().normalize(archive, logger) + + +class XCdcEnergy(DoubleCountingEnergy): + def __init__( + self, m_def: 'Section' = None, m_context: 'Context' = None, **kwargs + ) -> None: + super().__init__(m_def, m_context, **kwargs) + self.name = self.m_def.name + + def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: + super().normalize(archive, logger) + + +class UnknownEnergy(EnergyContribution): + def __init__( + self, m_def: 'Section' = None, m_context: 'Context' = None, **kwargs + ) -> None: + super().__init__(m_def, m_context, **kwargs) + self.name = self.m_def.name + + def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: + super().normalize(archive, logger) + + +class TotalEnergy(nomad_simulations.schema_packages.properties.TotalEnergy): + def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: + super().normalize(archive, logger) + + if not self.value: + return + if not self.contributions: + return + + value = self.value + unknown_exists = False + unknown_has_value = False + i_unknown = None + for i_cont, contribution in enumerate(self.contributions): + if contribution.name == 'UnknownEnergy': + unknown_exists = True + i_unknown = i_cont + unknown_has_value = True if contribution.value else False + + if not contribution.value: + continue + + value -= contribution.value + + if unknown_exists: + if not unknown_has_value: + self.contributions[i_unknown].value = value + else: + self.contributions.append(UnknownEnergy(value=value)) + self.contributions[-1].normalize(archive, logger) diff --git a/tests/test_parse.ipynb b/tests/test_parse.ipynb index 427f61a..5e2d951 100644 --- a/tests/test_parse.ipynb +++ b/tests/test_parse.ipynb @@ -32,10 +32,6 @@ "name": "stderr", "output_type": "stream", "text": [ - "The used property is not defined in the FAIRmat taxonomy (https://fairmat-nfdi.github.io/fairmat-taxonomy/). You can contribute there if you want to extend the list of available materials properties. ()\n", - "The used property is not defined in the FAIRmat taxonomy (https://fairmat-nfdi.github.io/fairmat-taxonomy/). You can contribute there if you want to extend the list of available materials properties. ()\n", - "The used property is not defined in the FAIRmat taxonomy (https://fairmat-nfdi.github.io/fairmat-taxonomy/). You can contribute there if you want to extend the list of available materials properties. ()\n", - "The used property is not defined in the FAIRmat taxonomy (https://fairmat-nfdi.github.io/fairmat-taxonomy/). You can contribute there if you want to extend the list of available materials properties. ()\n", "Length of `AtomicCell.positions` does not coincide with the length of the `AtomicCell.atoms_state`. (normalizer=MetainfoNormalizer)\n", "Could not extract the geometric space information from ASE Atoms object. (normalizer=MetainfoNormalizer)\n", "could not normalize section (normalizer=MetainfoNormalizer, section=DFT, exc_info=max() arg is an empty sequence)\n", @@ -56,120 +52,45 @@ "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TotalEnergy\n", - "-1.1442321664199474e-18 joule\n", - "[HartreeDCEnergy:HartreeDCEnergy(name, type, is_derived, variables, value), XCdcEnergy:XCdcEnergy(name, type, is_derived, variables, value), UnknownEnergy:UnknownEnergy(name, is_derived, value)]\n" - ] - } - ], - "source": [ - "total_energy = a.data.outputs[0].total_energy[0]\n", - "print(total_energy.name)\n", - "print(total_energy.value)\n", - "print(total_energy.contributions)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "HartreeDCEnergy\n", - "double_counting\n", - "-6.432015131607956e-17 joule\n" - ] - } - ], - "source": [ - "hartreedc = total_energy.contributions[0]\n", - "print(hartreedc.name)\n", - "print(hartreedc.type)\n", - "print(hartreedc.value)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "XCdcEnergy\n", - "double_counting\n", - "-7.660195079365588e-18 joule\n" - ] - } - ], - "source": [ - "xcdc = total_energy.contributions[1]\n", - "print(xcdc.name)\n", - "print(xcdc.type)\n", - "print(xcdc.value)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "UnknownEnergy\n", - "7.08361142290252e-17 joule\n" - ] - } - ], - "source": [ - "unknown = total_energy.contributions[2]\n", - "print(unknown.name)\n", - "print(unknown.value)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "7.08361142290252×10-17 joule" - ], - "text/latex": [ - "$7.08361142290252\\times 10^{-17}\\ \\mathrm{joule}$" - ], "text/plain": [ - "7.08361142290252e-17 " + "{'data': {'m_def': 'nomad_simulations.schema_packages.general.Simulation',\n", + " 'program': {'name': 'VASP', 'version': '5.3.2'},\n", + " 'model_system': [{'datetime': '2024-08-15T15:55:41.135408+00:00',\n", + " 'branch_depth': 0,\n", + " 'cell': [{'m_def': 'nomad_simulations.schema_packages.model_system.AtomicCell',\n", + " 'name': 'AtomicCell',\n", + " 'positions': [[0.0, 0.0, 0.0], [0.500001, 0.500001, 0.500001]],\n", + " 'periodic_boundary_conditions': [False, False, False]}]}],\n", + " 'model_method': [{'m_def': 'nomad_simulations.schema_packages.model_method.DFT',\n", + " 'xc_functionals': [{'libxc_name': 'PE'}]}]},\n", + " 'results': {'eln': {'sections': ['ModelSystem']}}}" ] }, - "execution_count": 7, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "total_energy.value - hartreedc.value - xcdc.value" + "a.m_to_dict()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { "display_name": "vasp-plugin", "language": "python", - "name": "python3" + "name": "vasp-plugin" }, "language_info": { "codemirror_mode": { @@ -181,9 +102,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.0" + "version": "3.9.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/tests/test_parse_all_solutions.pdf b/tests/test_parse_all_solutions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bb060f5514c1fe1ac6f8319c505f950d83a1a67f GIT binary patch literal 65121 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 R_XZNq4?~b~a7bN|{vT`s-TnXo literal 0 HcmV?d00001