Source code for dpdata.psi4.input

import numpy as np

# Angston is used in Psi4 by default
template = """molecule {{
{atoms:s}
{charge:d} {multiplicity:d}
}}
set basis {basis:s}
set gradient_write on
G, wfn = gradient("WB97M-D3BJ", return_wfn=True)
wfn.energy()
wfn.gradient().print_out()
"""


[docs] def write_psi4_input( types: np.ndarray, coords: np.ndarray, method: str, basis: str, charge: int = 0, multiplicity: int = 1, ) -> str: """Write Psi4 input file. Parameters ---------- types : np.ndarray atomic symbols coords : np.ndarray atomic coordinates method : str computational method basis : str basis set; see https://psicode.org/psi4manual/master/basissets_tables.html charge : int, default=0 charge of system multiplicity : int, default=1 multiplicity of system Returns ------- str content of Psi4 input file """ return template.format( atoms="\n".join( [ "{:s} {:16.9f} {:16.9f} {:16.9f}".format(*ii) for ii in zip(types, *coords.T) ] ), charge=charge, multiplicity=multiplicity, method=method, basis=basis, )