From 481fcbd233c5213db82ab062aee24c91a5aa2359 Mon Sep 17 00:00:00 2001 From: donerancl Date: Wed, 31 Jan 2024 17:05:12 -0500 Subject: [PATCH] squash --- arkane/ess/gaussian.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/arkane/ess/gaussian.py b/arkane/ess/gaussian.py index 2e84d6f2310..f00d9dd9e05 100644 --- a/arkane/ess/gaussian.py +++ b/arkane/ess/gaussian.py @@ -35,7 +35,7 @@ import logging import math import os.path - +import re import numpy as np import rmgpy.constants as constants @@ -309,9 +309,8 @@ def load_energy(self, zpe_scale_factor=1.): with open(self.path, 'r') as f: line = f.readline() while line != '': - if 'SCF Done:' in line: - e_elect = float(line.split()[4]) * constants.E_h * constants.Na + e_elect = float(re.findall(r"SCF Done: E\(.+\) \=\s+[^\s]+",line)[0].split()[-1])* constants.E_h * constants.Na elect_energy_source = 'SCF' elif ' E2(' in line and ' E(' in line: e_elect = float(line.split()[-1].replace('D', 'E')) * constants.E_h * constants.Na @@ -351,7 +350,7 @@ def load_energy(self, zpe_scale_factor=1.): # G4MP2 calculation without opt and freq calculation # Keyword in Gaussian G4MP2(SP), No zero-point or thermal energies are included. e_elect = float(line.split()[2]) * constants.E_h * constants.Na - + # Read the ZPE from the "E(ZPE)=" line, as this is the scaled version. # Gaussian defines the following as # E (0 K) = Elec + E(ZPE), @@ -376,6 +375,12 @@ def load_energy(self, zpe_scale_factor=1.): elect_energy_source = 'HF' except ValueError: pass + elif 'Energy=' in line: + # for xtb + e_elect = float(line.split()[1]) * constants.E_h * constants.Na + elif 'Energy=' in line: + # for xtb + e_elect = float(line.split()[1]) * constants.E_h * constants.Na # Read the next line in the file line = f.readline()