From 80f4a7a4ba633abc5f9591d4bff7828c97d789c3 Mon Sep 17 00:00:00 2001 From: jrudz Date: Wed, 19 Jun 2024 15:52:00 +0200 Subject: [PATCH] energies --- atomisticparsers/h5md/parser.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/atomisticparsers/h5md/parser.py b/atomisticparsers/h5md/parser.py index 4b1823a..df11be5 100644 --- a/atomisticparsers/h5md/parser.py +++ b/atomisticparsers/h5md/parser.py @@ -536,11 +536,20 @@ def parse_calculation(self): if ( "energ" in observable_name ): # TODO check for energies or energy when matching name - if hasattr(Energy, observable_label): - data["energy"][observable_label] = dict(value=val) + # check for usage of energy/mole and convert to energy + if val.check("[energy]/[substance]") and "mole" in str(val.units): + val = val * MOL * ureg.mole + + if val.check("[energy]"): + if hasattr(Energy, observable_label): + data["energy"][observable_label] = dict(value=val) + else: + data_h5md["x_h5md_energy_contributions"].append( + EnergyEntry(kind=key, value=val) + ) else: - data_h5md["x_h5md_energy_contributions"].append( - EnergyEntry(kind=key, value=val) + self.logger.warning( + "Energy value not in energy units. Skipping entry." ) else: if hasattr(BaseCalculation, observable_label):