Skip to content

Commit 42dae00

Browse files
committed
got statmech running
1 parent 3cb793b commit 42dae00

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

arkane/modelchem.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,8 @@ def str_to_lot(s: str) -> Union[LevelOfTheory, CompositeLevelOfTheory]:
285285
'orca': ('orca',),
286286
'terachem': ('terachem',),
287287
'mopac': ('mopac',),
288-
'psi4': ('psi4',)
288+
'psi4': ('psi4',),
289+
'xtb': ('xtb',)
289290
}
290291
_software_ids = {_name: _id for _id, _names in _valid_software_names.items() for _name in _names}
291292

arkane/statmech.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757

5858
from arkane.common import ArkaneSpecies, symbol_by_number, get_principal_moments_of_inertia
5959
from arkane.encorr.corr import get_atom_correction, get_bac
60-
from arkane.ess import ESSAdapter, ess_factory, _registered_ess_adapters, GaussianLog, QChemLog
60+
from arkane.ess import ESSAdapter, ess_factory, _registered_ess_adapters, GaussianLog, QChemLog, XTBLog
6161
from arkane.encorr.isodesmic import ErrorCancelingSpecies, IsodesmicRingScheme
6262
from arkane.modelchem import LevelOfTheory, CompositeLevelOfTheory, standardize_name
6363
from arkane.output import prettify
@@ -505,11 +505,20 @@ def create_log(log_path, check_for_errors=True):
505505
'and Hessian of {0!r} are defined in the same coordinate system'.format(
506506
self.species.label))
507507

508-
logging.debug(' Reading molecular degrees of freedom...')
509-
conformer, unscaled_frequencies = statmech_log.load_conformer(symmetry=external_symmetry,
508+
if isinstance(statmech_log, XTBLog):
509+
conformer, unscaled_frequencies = geom_log.load_conformer(symmetry=external_symmetry,
510510
spin_multiplicity=spin_multiplicity,
511511
optical_isomers=optical_isomers,
512512
label=self.species.label)
513+
unscaled_frequencies = statmech_log._load_frequencies()
514+
if unscaled_frequencies:
515+
conformer.modes.append(HarmonicOscillator(frequencies=(unscaled_frequencies, "cm^-1")))
516+
else:
517+
518+
conformer, unscaled_frequencies = statmech_log.load_conformer(symmetry=external_symmetry,
519+
spin_multiplicity=spin_multiplicity,
520+
optical_isomers=optical_isomers,
521+
label=self.species.label)
513522

514523
for mode in conformer.modes:
515524
if isinstance(mode, (Translation, IdealGasTranslation)):
@@ -695,7 +704,10 @@ def create_log(log_path, check_for_errors=True):
695704

696705
# save supporting information for calculation
697706
self.supporting_info = [self.species.label]
698-
optical_isomers_read, symmetry_read, point_group_read = statmech_log.get_symmetry_properties()
707+
if isinstance(statmech_log, XTBLog):
708+
optical_isomers_read, symmetry_read, point_group_read = geom_log.get_symmetry_properties()
709+
else:
710+
optical_isomers_read, symmetry_read, point_group_read = statmech_log.get_symmetry_properties()
699711
self.supporting_info.append(external_symmetry if external_symmetry else symmetry_read)
700712
self.supporting_info.append(optical_isomers if optical_isomers else optical_isomers_read)
701713
self.supporting_info.append(point_group_read)

0 commit comments

Comments
 (0)