friendzone.nwx2qcengine.call_qcengine ===================================== .. py:module:: friendzone.nwx2qcengine.call_qcengine Functions --------- .. autoapisummary:: friendzone.nwx2qcengine.call_qcengine.call_qcengine Module Contents --------------- .. py:function:: 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 the ``model`` keyword. :param pt: The property type we are computing. :type pt: pluginplay.PropertyType :param mol: The molecular system we are computing the properties of. :type mol: chemist.ChemicalSystem :param program: Which electronic structure package is being used as the backend? :type program: str :param kwargs: Key-value pairs which will be forwarded to QCElemental's ``AtomicInput`` class as kwargs. :return: A dictionary containing the requested property and any other property of potential interest. :rtype: Varies depending on the requested property