friendzone.nwx2qcengine.call_qcengine
Functions
|
Wraps calling a program through the QCEngine API. |
Module Contents
- friendzone.nwx2qcengine.call_qcengine.call_qcengine(driver, mol, program, runtime, **kwargs)
Wraps calling a program through the QCEngine API.
Note
QCEngine only supports high-level modularity (modularity roughly at the granularity of a call to an electronic structure package). We thus have assumed that the molecular system will always be an input to whatever QCEngine call we are running.
This function is the main API for calling QCEngine from NWChemEx. The idea is to more or less feed the inputs from a
run_as
call directly into this function and then have this function convert the NWChemEx objects to their QCElemental equivalents. Right now those mappings include:ChemicalSystem -> qcel.models.Molecule
RuntimeView -> qcng.TaskConfig
While not supported at the moment, similar conversions for the AO basis set are possible.
Because of the difference in philosophy between QCEngine and NWChemEx, there are some inputs which can not easily be mapped automatically, for example the electronic structure method (in NWChemEx methods correspond to module instances, whereas QCEngine requires strings). It is the responsibility of the module wrapping the call to
call_qcengine
to pass these additional inputs in as kwargs that can be forwarded to a QCElemental.models.AtomicInput object via themodel
keyword.- Parameters:
pt (pluginplay.PropertyType) – The property type we are computing.
mol (chemist.ChemicalSystem) – The molecular system we are computing the properties of.
program (str) – Which electronic structure package is being used as the backend?
kwargs – Key-value pairs which will be forwarded to QCElemental’s
AtomicInput
class as kwargs.
- Returns:
A dictionary containing the requested property and any other property of potential interest.
- Return type:
Varies depending on the requested property