import argparse
import warnings
import sys
from pysisyphus.config import p_DEFAULT, T_DEFAULT
from pysisyphus.thermo import (
can_thermoanalysis,
get_thermoanalysis_from_hess_h5,
print_thermoanalysis,
)
[docs]
def parse_args(args):
parser = argparse.ArgumentParser()
parser.add_argument("hess_h5", help="HDF5 Hessian file from pysisyphus.")
parser.add_argument("-T", default=T_DEFAULT, type=float, help="Temperature")
parser.add_argument("-p", default=p_DEFAULT, type=float, help="Pressure")
parser.add_argument("--pg", default="c1", help="Point group.")
parser.add_argument(
"--calorie",
action="store_true",
help="Output in kcal mol⁻¹ instead of kJ mol⁻¹.",
)
return parser.parse_args(args)
[docs]
def run_thermo():
if not can_thermoanalysis:
warnings.warn(
"'thermoanalysis' package not found!\nPlease install it from "
"https://github.com/eljost/thermoanalysis, e.g. via\n\n\t"
"python -m pip install git+https://github.com/eljost/thermoanalysis\n\n"
"Exiting!"
)
return
args = parse_args(sys.argv[1:])
hess_h5 = args.hess_h5
T = args.T
p = args.p
point_group = args.pg
unit = "calorie" if args.calorie else "joule"
thermo = get_thermoanalysis_from_hess_h5(hess_h5, T=T, p=p, point_group=point_group)
print_thermoanalysis(thermo, unit=unit)