***** PySCF ***** .. py:class:: PySCF This interface supports energy and gradient evaluations with the `PySCF `_ electronic structure package A PySCF :ref:`Theory ` object can be specified as follows:: my_frag = Fragment(...) my_theory = PySCF(frag=my_frag, method="hf", basis='3-21g' ...) or for DFT:: from pyscf.dft import DFT my_frag = Fragment(...) my_theory = PySCF(frag=my_frag, method="dft", basis='3-21g' ...) Alternatively, ChemShell supports passing pyscf methods directly:: from pyscf.scf import RHF my_frag = Fragment(...) my_theory = PySCF(frag=my_frag, method=RHF, basis='3-21g' ...) or for DFT:: from pyscf.dft import DFT my_frag = Fragment(...) my_theory = PySCF(frag=my_frag, method=DFT, basis='3-21g' ...) which would then be called as ``theory=my_theory`` in subsequent tasks. Method options ============== .. py:attribute:: gridsize (default: ``5``) DFT integration grid size [0 (very sparse) -9 (very dense)] (See `PySCF's dft user manual `_ for more details) .. py:attribute:: fcidump (default: ``False``) Boolean flag determining if an FCIDUMP file should be written. Basis set options ================= .. py:attribute:: basis Input basis set to use in PySCF SCF options =========== .. py:attribute:: convergence (default: ``1e-8``) Convergence criteria for SCF procedure. .. py:attribute:: scftype (default: ``"rhf"``) Determines which scftype to use (supported: ``"rhf"``, ``"uhf"``, ``"rohf"``). If ``method`` is set explicitly as a pyscf class (i.e. ``method=pyscf.scf.RHF``) then this option is ignored. Interacting with PySCF directly =============================== The user can interact directly with PySCF in chemshell via the ``method_pyscf`` attribute (e.g):: from chemsh import * water = Fragment(coords="water.cjson") pyscf = PySCF(frag=water, method="dft", functional="blyp", basis="3-21g") # We can now change the initial guess as described in the pyscf user documentation pyscf.method_pyscf.init_guess = "huckel" sp = SP(theory=pyscf) sp.run() ecalc = sp.result.energy .. note:: As the ``method_pyscf`` allows the user fine-grained control of PySCF in ChemShell, users should take care as not all interactions between PySCF and ChemShell have been tested.