Q-Chem is a comprehensive ab initio quantum chemistry package for accurate predictions of molecular structures, reactivities, and vibrational, electronic and NMR spectra.


You first need to install a working copy of Q-Chem for ASE to call; follow the instructions on the Q-Chem website.

The default command that ASE will use to start Q-Chem is qchem PREFIX.inp PREFIX.out.


An simple example of running a geometry optimization using the QChem calculator in the python interface:

from ase.build import molecule
from ase.calculators.qchem import QChem
from ase.optimize import LBFGS

mol = molecule('C2H6')
calc = QChem(label='calc/ethane',
mol.calc = calc
opt = LBFGS(mol)

See the source code link below for further details.

class ase.calculators.qchem.QChem(restart=None, ignore_bad_restart_file=<object object>, label='qchem', scratch=None, np=1, nt=1, pbs=False, basisfile=None, ecpfile=None, atoms=None, **kwargs)[source]

QChem calculator

The scratch directory, number of processor and threads as well as a few other command line options can be set using the arguments explained below. The remaining kwargs are copied as options to the input file. The calculator will convert these options to upper case (Q-Chem standard) when writing the input file.

scratch: str

path of the scratch directory

np: int

number of processors for the -np command line flag

nt: int

number of threads for the -nt command line flag

pbs: boolean

command line flag for pbs scheduler (see Q-Chem manual)

basisfile: str

path to file containing the basis. Use in combination with basis=’gen’ keyword argument.

ecpfile: str

path to file containing the effective core potential. Use in combination with ecp=’gen’ keyword argument.