quantum chemistry common driver and databases

9
9
Python

Status GHA build Codecov coverage LGTM analysis
Communication docs latest dev chat on slack
Foundation license platforms python

Example

A simple example of QCDB’s capabilities is as follows:

>>> import qcdb

>>> mol = qcdb.set_molecule("""
O
H 1 0.96
H 1 0.96 2 104.5
""")

>>> qcdb.set_keywords({
    "freeze_core": True,
})

These input specifications plus a model chemistry can be executed with energy(), gradient(), or hessian() API functions along with a program specifier:

>>> ene = qcdb.energy("c4-mp2/cc-pvdz")
>>> ene
-76.22847548367803
>>> print(qcdb.print_variables())

  Variable Map:
  ----------------------------------------------------------------------------
  "CURRENT CORRELATION ENERGY"           =>      -0.201821821791 [Eh]
  "CURRENT ENERGY"                       =>     -76.228475483678 [Eh]
  "CURRENT REFERENCE ENERGY"             =>     -76.026653661887 [Eh]
  "HF TOTAL ENERGY"                      =>     -76.026653661887 [Eh]
  "MP2 CORRELATION ENERGY"               =>      -0.201821821791 [Eh]
  "MP2 DOUBLES ENERGY"                   =>      -0.201821821791 [Eh]
  "MP2 OPPOSITE-SPIN CORRELATION ENERGY" =>      -0.151079672317 [Eh]
  "MP2 SAME-SPIN CORRELATION ENERGY"     =>      -0.050742149474 [Eh]
  "MP2 SINGLES ENERGY"                   =>       0.000000000000 [Eh]
  "MP2 TOTAL ENERGY"                     =>     -76.228475483678 [Eh]
  "N ALPHA ELECTRONS"                    =>       5.000000000000 []
  "N ATOMS"                              =>       3.000000000000 [Eh]
  "N BASIS FUNCTIONS"                    =>      24.000000000000 []
  "N BETA ELECTRONS"                     =>       5.000000000000 []
  "N MOLECULAR ORBITALS"                 =>      24.000000000000 []
  "NUCLEAR REPULSION ENERGY"             =>       9.168193296400 [Eh]
  "SCS(N)-MP2 CORRELATION ENERGY"        =>      -0.089306183074 [Eh]
  "SCS(N)-MP2 TOTAL ENERGY"              =>     -76.115959844961 [Eh]
  "SCS-MP2 CORRELATION ENERGY"           =>      -0.198209656605 [Eh]
  "SCS-MP2 TOTAL ENERGY"                 =>     -76.224863318492 [Eh]

For a fuller record of the computation, request the AtomicResult-like return

>>> ene, ret = qcdb.energy("c4-mp2/cc-pvdz", return_wfn=True)
>>> ret["return_result"]
-76.228475483678

>>> ret["properties"]["mp2_correlation_energy"]
-0.201821821791

>>> ret["provenance"]["cpu"]
'Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz'

The accustomed output (and generated input) are also accessible

>>> >>> pprint.pprint(ret["stdout"], width=200)
(' --invoking executable--\n'
 '/home/psilocaluser/gits/cfour-public/bin/xjoda\n'
 '\n'
 '\n'
 '   *************************************************************************\n'
 '         <<<     CCCCCC     CCCCCC   |||     CCCCCC     CCCCCC   >>>\n'
 '       <<<      CCC        CCC       |||    CCC        CCC         >>>\n'
 '      <<<      CCC        CCC        |||   CCC        CCC            >>>\n'
 '    <<<        CCC        CCC        |||   CCC        CCC              >>>\n'
 '      <<<      CCC        CCC        |||   CCC        CCC            >>>\n'
 '       <<<      CCC        CCC       |||    CCC        CCC         >>>\n'
 '         <<<     CCCCCC     CCCCCC   |||     CCCCCC     CCCCCC   >>>\n'
 '   *************************************************************************\n'
 '\n'
 '     ****************************************************************\n'
 '     * CFOUR Coupled-Cluster techniques for Computational Chemistry *\n'
 '     ****************************************************************\n'
 ' \n'
 '\n'
 '   Department of Chemistry                Institut fuer Physikalische Chemie\n'
 '   University of Florida                  Universitaet Mainz\n'
 '   Gainesville, FL 32611, USA             D-55099 Mainz, Germany\n'
 '\n'
 '   Department of Chemistry                Fakultaet fuer Chemie und Biowiss.\n'
 '   Johns Hopkins University               Karlsruher Institut fuer Technologie\n'
 '   Baltimore, MD 21218, USA               D-76131 Karlsruhe, Germany\n'
 '\n'
 '   Department of Chemistry                Department of Physical Chemistry\n'
 '   Southern Methodist University          Eotvos Lorand University\n'
 '   Dallas, TX 75275, USA                  H-1053 Budapest, Hungary\n'
 '\n'
 ' \n'
 '                       Version 2.1\n'
 ' \n'
 '                     psinet                                            \n'
 '                     Thu Sep  9 15:52:23 EDT 2021                      \n'
 '                     integer*8 version is running\n'
 ' \n'
 '********************************************************************************\n'
 '*                          Input from ZMAT file                                *\n'
 '********************************************************************************\n'
 'auto-generated by QCElemental from molecule H2O                                 \n'
 'O                     0.000000000000     0.000000000000    -0.124297814080      \n'
 'H                     0.000000000000    -1.434419274846     0.986348254917      \n'
 'H                     0.000000000000     1.434419274846     0.986348254917      \n'
 '                                                                                \n'
 '                                                                                \n'
 '*CFOUR(BASIS=SPECIAL                                                            \n'
 'CALC_LEVEL=MP2                                                                  \n'
 'CHARGE=0                                                                        \n'
 'COORDINATES=CARTESIAN                                                           \n'
 'DERIV_LEVEL=ZERO                                                                \n'
 'FROZEN_CORE=1                                                                   \n'
 'MEMORY_SIZE=2694957760                                                          \n'
 'MEM_UNIT=INTEGERWORDS                                                           \n'
 'MULTIPLICITY=1                                                                  \n'
 'SCF_DAMPING=0                                                                   \n'
 'SCF_MAXCYC=100                                                                  \n'
 'SPHERICAL=1                                                                     \n'
 'UNITS=BOHR)                                                                     \n'
 '                                                                                \n'
 'O:CD_1                                                                          \n'
 'H:CD_2                                                                          \n'
 'H:CD_3                                                                          \n'
 '                                                                                \n'
 '********************************************************************************\n'
 
 ...
 
 '********************************************************************************\n'
 '   The full molecular point group is C2v .\n'
 '   The largest Abelian subgroup of the full molecular point group is C2v .\n'
 '   The computational point group is C2v .\n'
 '********************************************************************************\n'
 '\n'
 '\n'
 ' ----------------------------------------------------------------\n'
 '         Coordinates used in calculation (QCOMP) \n'
 ' ----------------------------------------------------------------\n'
 ' Z-matrix   Atomic            Coordinates (in bohr)\n'
 '  Symbol    Number           X              Y              Z\n'
 ' ----------------------------------------------------------------\n'
 '     O         8         0.00000000     0.00000000    -0.12429781\n'
 '     H         1         0.00000000    -1.43441927     0.98634825\n'
 '     H         1         0.00000000     1.43441927     0.98634825\n'
 ' ----------------------------------------------------------------\n'
 ' \n'
 '   Interatomic distance matrix (Angstroms) \n'
 ' \n'
 '                 O             H             H    \n'
 '                [ 1]        [ 2]        [ 3]\n'
 '  O    [ 1]     0.00000\n'
 '  H    [ 2]     0.96000     0.00000\n'
 '  H    [ 3]     0.96000     1.51812     0.00000\n'
 ' rotcon2\n'
 '   Rotational constants (in cm-1): \n'
 '          9.4721706374            27.2629827680            14.5153365101\n'
 '   Rotational constants (in MHz): \n'
 '     283968.5715813829        817323.7761473177        435158.9020696688\n'
 '  ECPDATA file not present.   Using default ECPDATA. \n'
 '  There is   1 frozen-core orbital.\n'
 '  There are   24 basis functions.\n'
 
 ...
 
 ' --invoking executable--\n'
 '/home/psilocaluser/gits/cfour-public/bin/xvcc\n'
 ' @GETMEM-I,  Allocated   20560 MB of main memory.\n'
 '   MBPT(2) energy will be calculated.\n'
 '   The total correlation energy is -0.201821821791 a.u.\n'
 '  -----------------------------------------------------------\n'
 '       Correction         Increment           Cumulative\n'
 '  -----------------------------------------------------------\n'
 '        D-MBPT(2)       -0.201821821791     -76.228475483678\n'
 '  -----------------------------------------------------------\n'
 '  Total MBPT(2)       energy:     -76.228475483678 a.u.\n'
 ' @CHECKOUT-I, Total execution time (CPU/WALL):        0.00/       0.00 seconds.\n'
 '--executable xvcc finished with status     0 in        0.02 seconds (walltime).\n'
 '  The final electronic energy is       -76.228475483677684 a.u. \n'
 '  This computation required                            0.33 seconds (walltime).\n')

Some tutorial tests

Environment

A snapshot dev environment is available through conda create -n qcdbenv python=3.9 psi4 qcdb pytest-xdist -c psi4/label/qcdb -c psi4/label/dev -c defaults. QC programs besides Psi4 are bring-your-own. Testing through pytest --pyargs qcdb -n<nproc>