diff -Nru qcengine-0.23.0/debian/changelog qcengine-0.26.0/debian/changelog --- qcengine-0.23.0/debian/changelog 2022-04-02 14:29:35.000000000 +0000 +++ qcengine-0.26.0/debian/changelog 2023-01-14 10:24:07.000000000 +0000 @@ -1,3 +1,13 @@ +qcengine (0.26.0-1) unstable; urgency=medium + + * New upstream release. + + [ Debian Janitor ] + * Remove constraints unnecessary since buster (oldstable): + + Build-Depends: Drop versioned constraint on python3-all. + + -- Michael Banck Sat, 14 Jan 2023 11:24:07 +0100 + qcengine (0.23.0-1) unstable; urgency=medium * New upstream release. diff -Nru qcengine-0.23.0/debian/control qcengine-0.26.0/debian/control --- qcengine-0.23.0/debian/control 2022-01-01 18:07:42.000000000 +0000 +++ qcengine-0.26.0/debian/control 2023-01-14 10:21:21.000000000 +0000 @@ -5,7 +5,7 @@ Uploaders: Michael Banck Build-Depends: debhelper (>= 12), dh-python, - python3-all (>= 3.6), + python3-all, python3-cpuinfo, python3-numpy, python3-setuptools, diff -Nru qcengine-0.23.0/devtools/conda-envs/docs-cf.yaml qcengine-0.26.0/devtools/conda-envs/docs-cf.yaml --- qcengine-0.23.0/devtools/conda-envs/docs-cf.yaml 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/devtools/conda-envs/docs-cf.yaml 2022-11-30 16:26:08.000000000 +0000 @@ -14,15 +14,16 @@ # docs - python-graphviz - - sphinx >=3.5 + - sphinx - sphinx-autodoc-typehints - sphinx-automodapi - sphinx_rtd_theme + - autodoc-pydantic # testing - pytest>=4.0.0 - pytest-cov - codecov - - pip: - - git+git://github.com/MolSSI/qcarchive-sphinx-theme#egg=qcarchive_sphinx_theme + #- pip: + # - git+https://github.com/MolSSI/qcarchive-sphinx-theme#egg=qcarchive_sphinx_theme diff -Nru qcengine-0.23.0/devtools/conda-envs/mrchem.yaml qcengine-0.26.0/devtools/conda-envs/mrchem.yaml --- qcengine-0.23.0/devtools/conda-envs/mrchem.yaml 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/devtools/conda-envs/mrchem.yaml 2022-11-30 16:26:08.000000000 +0000 @@ -2,7 +2,9 @@ channels: - conda-forge dependencies: - - mrchem=1=*openmpi*_1 + - mrchem >=1.1=*openmpi* + - geometric + - optking # Core - python @@ -17,3 +19,7 @@ - pytest - pytest-cov - codecov + + - pip + - pip: + - pyberny diff -Nru qcengine-0.23.0/devtools/conda-envs/opt-disp.yaml qcengine-0.26.0/devtools/conda-envs/opt-disp.yaml --- qcengine-0.23.0/devtools/conda-envs/opt-disp.yaml 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/devtools/conda-envs/opt-disp.yaml 2022-11-30 16:26:08.000000000 +0000 @@ -4,14 +4,15 @@ - conda-forge - defaults dependencies: - - psi4=1.5* + - psi4 - blas=*=mkl # not needed but an example of disuading solver from openblas and old psi #- intel-openmp!=2019.5 - rdkit + - mopac # Mixed Tests - dftd3 3.2.1 - - dftd4-python + - dftd4-python=3.3.0 - mp2d >=1.1 - gcp - geometric diff -Nru qcengine-0.23.0/devtools/conda-envs/psi.yaml qcengine-0.26.0/devtools/conda-envs/psi.yaml --- qcengine-0.23.0/devtools/conda-envs/psi.yaml 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/devtools/conda-envs/psi.yaml 2022-11-30 16:26:08.000000000 +0000 @@ -3,7 +3,8 @@ - psi4 - conda-forge dependencies: - - psi4=1.4 + - psi4=1.5 + - libint2=*=hc9558a2_9 - dftd3 - geometric - intel-openmp!=2019.5 diff -Nru qcengine-0.23.0/devtools/conda-envs/xtb.yaml qcengine-0.26.0/devtools/conda-envs/xtb.yaml --- qcengine-0.23.0/devtools/conda-envs/xtb.yaml 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/devtools/conda-envs/xtb.yaml 2022-11-30 16:26:08.000000000 +0000 @@ -15,6 +15,7 @@ # Extras - gcp-correction + - dftd3-python >=0.5.1 # Testing - pytest diff -Nru qcengine-0.23.0/docs/source/api.rst qcengine-0.26.0/docs/source/api.rst --- qcengine-0.23.0/docs/source/api.rst 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/docs/source/api.rst 2022-11-30 16:26:08.000000000 +0000 @@ -4,8 +4,6 @@ .. automodapi:: qcengine -.. automodapi:: qcengine.compute - .. automodapi:: qcengine.config .. automodapi:: qcengine.util diff -Nru qcengine-0.23.0/docs/source/changelog.rst qcengine-0.26.0/docs/source/changelog.rst --- qcengine-0.23.0/docs/source/changelog.rst 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/docs/source/changelog.rst 2022-11-30 16:26:08.000000000 +0000 @@ -16,6 +16,106 @@ .. Bug Fixes .. +++++++++ + +v0.26.0 / 2022-11-30 +-------------------- + +Breaking Changes +++++++++++++++++ + +- (:pr:`385`) Dispersion - the dispersion parameters resources file has been altered so that for D3 variants there's a + 2b set (e.g., d3bj2b) that is pure 2-body and doesn't accept s9 (effectively fixed at 0.0) and a atm set (e.g., + d3zeroatm) that does accept s9 (by default 1.0 but user-variable). Previous D3 levels are aliased to 2b. Only + downstreams that call the dispersion resources directly should be affected, and retrofits are in place for the known + victim/instigator (Psi4). @loriab + +New Features +++++++++++++ + +Enhancements +++++++++++++ +- (:pr:`380`) MRChem - added gradient and thus geometry optimizations support. @robertodr +- (:pr:`385`) dftd3 - the classic interface now accepts e.g., ``d3mbj2b`` as a level hint. @loriab +- (:pr:`385`) s-dftd3 - added keyword ``apply_qcengine_aliases`` that when True and ``level_hint`` present allows the + levels and aliases in the dispersion resources (e.g., ``d3``, ``d3atm``, ``d32b``) to be given as ``level_hint``. The + resource parameters are passed to s-dftd3 as param_tweaks. @loriab + +Bug Fixes ++++++++++ +- (:pr:`383`) yaml - uses safe loading. @mbanck, @loriab +- (:pr:`385`) dftd3 - the pairwise analysis requested through ``AtomicInput.keywords["pair_resolved"] = True`` and + returned in ``AtomicResult.extras["qcvars"]["2-BODY PAIRWISE DISPERSION CORRECTION ANALYSIS"]`` was elementwise too + large by a factor of 2. It now matches the ``s-dftd3`` harness and fulfills that the sum of the array equals the + 2-body dispersion energy. @loriab + + +v0.25.0 / 2022-11-11 +-------------------- + +Breaking Changes +++++++++++++++++ +- (:pr:`376`) GAMESS - slight breaking changes of (1) ROHF MP2 ZAPT quantities now stored in "ZAPT" variables, not "MP2" + variables; and (2) "HF TOTAL ENERGY" no longer stores DFT energy in DFT computation. @loriab +- (:pr:`376`) testing - reference quantities now indexed by "standard" or "semicanonical" orbitals since program defaults + differ (mostly in CCSD ROHF FC). Downstream projects using the stdsuite interface will need to add an extra argument to query + reference data. @loriab + +New Features +++++++++++++ + +Enhancements +++++++++++++ +- (:pr:`376`) Cfour - added parsing for BCCD and BCCD(T) methods. @loriab +- (:pr:`376`) NWChem - B2PLYP double-hybrid can now be run and parsed. Added CC2 parsing. @loriab +- (:pr:`376`) testing - added parsing contracts for ZAPT2, CEPA(1), CEPA(3), ACPF, AQCC, BCCD, BCCD(T), CC2, CC3, and DH-DFT. Added conventional references for most. @loriab +- (:pr:`378`) OpenFF - Support OpenFF Toolkit v0.11+. @Yoshanuikabundi + +Bug Fixes ++++++++++ + + +v0.24.1 / 2022-08-16 +-------------------- + +Enhancements +++++++++++++ +- (:pr:`375`) testing - in standard suite, add reference values for occ, a-ccsd(t), olccd grad, remp2, omp2, omp2.5, omp3, oremp2, density fitted ccsd, ccsd(t), a-ccsd(t). @loriab + + +v0.24.0 / 2022-07-08 +-------------------- + +Upcoming Breaking Changes ++++++++++++++++++++++++++ +- (:pr:`372`) QCSchema - changes are planned to schema layout and QCEngine API that will be outlined in an issue. These are not expected to involve detailed changes to the harnesses, and update helper functions will be provided. In preparation, QCEngine is pinned to a maximum compatible QCElemental v0.25.0 (current release). Projects using QCSchema through QCElemental are advised to pin to maximum v0.25.0 qcel and v0.24.0 to avert trouble, since this is our first experience with schema increments. @loriab + +New Features +++++++++++++ +- (:pr:`343`) DFT-D3 - added the ``SDFTD3Harness`` to handle DFT-D3 via a Python API. This has native QCSchema support and programmatic access to the parameter database. @awvwgk +- (:pr:`353`) TeraChem - added the ``TeraChemFrontEndHarness`` to handle file I/O in extension to the protocol buffer ``TeraChemPBSHarness`` interface. @coltonbh + +Enhancements +++++++++++++ +- (:pr:`350`) Rename the ``compute(..., local_options)`` argument to ``compute(..., task_config)``. Former still works and will for a while. @coltonbh +- (:pr:`361`) testing - in standard suite, add references for Hartree--Fock density-fitten Hessians. @loriab +- (:pr:`362`) docs - update setup with theme and fuller information on Pydantic models. @loriab +- (:pr:`363`) CFOUR - learned not to set ``DERIV_LEVEL`` when ``atomicinput.driver=properties``. Helps properties like DBOC. @loriab +- (:pr:`363`) Allow directory structure in ``execute(..., infiles)`` argument, not just flat-level files. @loriab +- (:pr:`364`) CFOUR - learned to harvest gradients when ghost atoms involved. Any CFOUR job with ghost atoms involves a hack that may go amiss when Xenon atoms in target molecule. @loriab +- (:pr:`364`) NWChem - learned to handle keyword ``geometry__autosym`` to tighten or loosen automatic symmetry detection. @loriab +- (:pr:`372`) testing - 2022 OpenMopac now actively tested in GHA. Note fields and output slightly different since 2019 harness. @awvwgk, @loriab + +Bug Fixes ++++++++++ +- (:pr:`301`, :pr:`367`) PyBerny - learned how to fail informatively when something goes wrong instead of assuming all is well and failing misleadingly while processing success. @coltonbh +- (:pr:`333`) NWChem - learned to skip writing the original ``atomicinput.molecule`` geometry to the input file only when both (1) the job is known to be part of a restart and (2) the job originates from the NWChem "driver" (that is, the optimizer). Previously, the geometry writing was skipped under (1) circumstances, so single-point e/g/h didn't have a geometry to work from. @WardLT +- (:pr:`349`) Turbomole - learned to correctly parse Hessian files when molecule contains more than 33 atoms. @eljost + +Misc. ++++++ +- (:pr:`354`, :pr:`356`, :pr:`361`, :pr:`366`, :pr:`368`) CI updates and fixes and changelog. @coltonbh, @loriab + + v0.23.0 / 2022-03-10 -------------------- diff -Nru qcengine-0.23.0/docs/source/conf.py qcengine-0.26.0/docs/source/conf.py --- qcengine-0.23.0/docs/source/conf.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/docs/source/conf.py 2022-11-30 16:26:08.000000000 +0000 @@ -47,22 +47,31 @@ # ones. extensions = [ 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', + 'sphinx.ext.intersphinx', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.mathjax', 'sphinx.ext.viewcode', - 'sphinx.ext.napoleon', - 'sphinx.ext.intersphinx', 'sphinx.ext.extlinks', + 'sphinx.ext.graphviz', + 'sphinx.ext.autosummary', + 'sphinx.ext.napoleon', 'sphinx_automodapi.automodapi', 'sphinx_automodapi.automodsumm', + 'sphinx_automodapi.smart_resolver', + "sphinx_autodoc_typehints", + "sphinxcontrib.autodoc_pydantic", ] -napoleon_google_docstring = False -napoleon_use_param = False -napoleon_use_ivar = True +autosummary_generate = True +automodapi_toctreedirnm = 'api' +autodoc_typehints = "description" +napoleon_use_param = True +napoleon_use_rtype = True +autodoc_pydantic_model_hide_paramlist = True +autodoc_pydantic_model_show_config_summary = False +autodoc_pydantic_field_swap_name_and_alias = True # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -97,11 +106,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -try: - import qcarchive_sphinx_theme - html_theme = 'qcarchive_sphinx_theme' -except ModuleNotFoundError: - html_theme = 'sphinx_rtd_theme' +html_theme = 'sphinx_rtd_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -192,11 +197,13 @@ # -- Options for intersphinx extension --------------------------------------- # Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {'python': ('https://docs.python.org/3.7', None), - 'numpy': ('https://docs.scipy.org/doc/numpy/', None), - 'scipy': ('https://docs.scipy.org/doc/scipy/reference/', None), - 'matplotlib': ('https://matplotlib.org/', None), - 'qcelemental': ('https://qcelemental.readthedocs.io/en/latest/', None) +intersphinx_mapping = {'python': ('https://docs.python.org/3.10', None), + "numpy": ("https://numpy.org/doc/stable/", None), + 'scipy': ('https://docs.scipy.org/doc/scipy/', None), + 'matplotlib': ('https://matplotlib.org/stable/', None), + "qcelemental": ("http://docs.qcarchive.molssi.org/projects/QCElemental/en/latest/", None), + "qcportal": ("http://docs.qcarchive.molssi.org/projects/QCPortal/en/latest/", None), + "qcfractal": ("http://docs.qcarchive.molssi.org/projects/QCFractal/en/latest/", None), } # -- Options for todo extension ---------------------------------------------- diff -Nru qcengine-0.23.0/docs/source/environment.rst qcengine-0.26.0/docs/source/environment.rst --- qcengine-0.23.0/docs/source/environment.rst 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/docs/source/environment.rst 2022-11-30 16:26:08.000000000 +0000 @@ -24,11 +24,11 @@ >>> qcng.get_config() - >>> qcng.get_config(local_options={"scratch_directory": "/tmp"}) + >>> qcng.get_config(task_config={"scratch_directory": "/tmp"}) >>> os.environ["SCRATCH"] = "/my_scratch" - >>> qcng.get_config(local_options={"scratch_directory": "$SCRATCH"}) + >>> qcng.get_config(task_config={"scratch_directory": "$SCRATCH"}) Global Environment @@ -70,7 +70,8 @@ The values are dictionaries that define configurations for different nodes, following the ``NodeDescription`` schema: -.. autoclass:: qcengine.config.NodeDescriptor +.. autopydantic_model:: qcengine.config.NodeDescriptor + :noindex: When running QCEngine, the proper configuration for a node is determined based on the hostname of the node and matching the ``hostname_pattern`` to each of the configurations defined in ``qcengine.yaml``. diff -Nru qcengine-0.23.0/docs/source/index.rst qcengine-0.26.0/docs/source/index.rst --- qcengine-0.23.0/docs/source/index.rst 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/docs/source/index.rst 2022-11-30 16:26:08.000000000 +0000 @@ -106,11 +106,11 @@ >>> qcng.get_config() - >>> qcng.get_config(local_options={"scratch_directory": "/tmp"}) + >>> qcng.get_config(task_config={"scratch_directory": "/tmp"}) >>> os.environ["SCRATCH"] = "/my_scratch" - >>> qcng.get_config(local_options={"scratch_directory": "$SCRATCH"}) + >>> qcng.get_config(task_config={"scratch_directory": "$SCRATCH"}) Program and Procedure Information diff -Nru qcengine-0.23.0/docs/source/program_overview.rst qcengine-0.26.0/docs/source/program_overview.rst --- qcengine-0.23.0/docs/source/program_overview.rst 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/docs/source/program_overview.rst 2022-11-30 16:26:08.000000000 +0000 @@ -18,7 +18,7 @@ +---------------+------------+---+---+---+------------+--------------+ | GAMESS | ✘ | ✓ | ✓ | ✘ | ✓ | ✘ | +---------------+------------+---+---+---+------------+--------------+ -| MRChem | ✓ | ✓ | ✘ | ✘ | ✓ | ✘ | +| MRChem | ✓ | ✓ | ✓ | ✘ | ✓ | ✘ | +---------------+------------+---+---+---+------------+--------------+ | Molpro | ✓ | ✓ | ✓ | ✘ | ✓ | ✘ | +---------------+------------+---+---+---+------------+--------------+ @@ -74,6 +74,8 @@ +============+============+===+===+===+============+ | DFTD3 | ✓ | ✓ | ✓ | ✘ | ✘ | +------------+------------+---+---+---+------------+ +| s-DFTD3 | ✓ | ✓ | ✓ | ✘ | ✘ | ++------------+------------+---+---+---+------------+ | DFTD4 | ✓ | ✓ | ✓ | ✘ | ✘ | +------------+------------+---+---+---+------------+ | gCP | ✘ | ✓ | ✓ | ✘ | ✘ | diff -Nru qcengine-0.23.0/docs/source/single_compute.rst qcengine-0.26.0/docs/source/single_compute.rst --- qcengine-0.23.0/docs/source/single_compute.rst 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/docs/source/single_compute.rst 2022-11-30 16:26:08.000000000 +0000 @@ -74,12 +74,14 @@ Input Fields ------------- -.. autoclass:: qcelemental.models.AtomicInput +.. autopydantic_model:: qcelemental.models.AtomicInput + :noindex: Returned Fields --------------- -.. autoclass:: qcelemental.models.AtomicResult +.. autopydantic_model:: qcelemental.models.AtomicResult + :noindex: FAQ --- @@ -87,7 +89,7 @@ #. Where is scratch so I can access the CMS code's files? The QCArchive philosophy is that you shouldn't go looking in scratch for CMS-code-written files since the scratch directory is deleted automatically by QCEngine and even if preserved may be subject to autodeletion if run from a cluster. Instead, QCEngine brings back the primary input and output and any ancillary files from which it can harvest results. Whether these are returned to the user in ``AtomicResult`` can be controlled through protocols in the input like ``atomicinput.protocols.stdout = True`` and eventually (https://github.com/MolSSI/QCElemental/pull/275) ``atomicinput.protocols.native_files = "all"``. - + Nevertheless, you can, of course, access the scratch directory and CMS-code-written files. Pass an existing directory to the compute command (this directory will be parent) and tell it to not delete after the run: ``qcng.compute(..., local_options={"scratch_directory": "/existing/parent/dir", "scratch_messy": True})``. - + #. sdfs diff -Nru qcengine-0.23.0/.github/workflows/CI.yml qcengine-0.26.0/.github/workflows/CI.yml --- qcengine-0.23.0/.github/workflows/CI.yml 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/.github/workflows/CI.yml 2022-11-30 16:26:08.000000000 +0000 @@ -18,22 +18,22 @@ matrix: cfg: - conda-env: psi - python-version: 3.6 + python-version: 3.7 label: Psi4-release runs-on: ubuntu-latest - conda-env: psi-nightly - python-version: 3.9 + python-version: "3.10" label: Psi4-nightly runs-on: ubuntu-latest - conda-env: torchani - python-version: 3.6 + python-version: 3.8 label: ANI runs-on: ubuntu-latest - conda-env: openmm - python-version: 3.6 + python-version: 3.8 label: OpenMM runs-on: ubuntu-latest @@ -54,7 +54,7 @@ # formerly NWChem v6.6 with python-version: 3.6 & runs-on: ubuntu-16.04 but ubuntu env retired by GH Sep 2021 - conda-env: mrchem - python-version: 3.6 + python-version: 3.8 label: MRChem runs-on: ubuntu-latest diff -Nru qcengine-0.23.0/qcengine/compute.py qcengine-0.26.0/qcengine/compute.py --- qcengine-0.23.0/qcengine/compute.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/compute.py 2022-11-30 16:26:08.000000000 +0000 @@ -1,9 +1,10 @@ """ Integrates the computes together """ +import warnings from typing import TYPE_CHECKING, Any, Dict, Optional, Union -from qcelemental.models import AtomicInput, AtomicResult, FailedOperation +from qcelemental.models import AtomicInput, AtomicResult, FailedOperation, OptimizationResult from .config import get_config from .exceptions import InputError, RandomError @@ -35,9 +36,10 @@ input_data: Union[Dict[str, Any], "AtomicInput"], program: str, raise_error: bool = False, + task_config: Optional[Dict[str, Any]] = None, local_options: Optional[Dict[str, Any]] = None, return_dict: bool = False, -) -> "AtomicResult": +) -> Union["AtomicResult", "FailedOperation", Dict[str, Any]]: """Executes a single CMS program given a QCSchema input. The full specification can be found at: @@ -53,15 +55,18 @@ Determines if compute should raise an error or not. retries : int, optional The number of random tries to retry for. + task_config + A dictionary of local configuration options corresponding to a TaskConfig object. local_options - A dictionary of local configuration options + Deprecated parameter, renamed to ``task_config`` return_dict Returns a dict instead of qcelemental.models.AtomicResult Returns ------- result - A computed AtomicResult object. + AtomicResult, FailedOperation, or Dict representation of either object type + A QCSchema representation of the requested output, type depends on return_dict key. """ output_data = input_data.copy() # lgtm [py/multiple-definition] @@ -73,14 +78,23 @@ # Build the model and validate input_data = model_wrapper(input_data, AtomicInput) - # Build out local options - if local_options is None: - local_options = {} + # Build out task_config + if task_config is None: + task_config = {} + + if local_options: + warnings.warn( + "Using the `local_options` keyword argument is deprecated in favor of using `task_config`, " + "in version 0.30.0 it will stop working.", + category=FutureWarning, + stacklevel=2, + ) + task_config = {**local_options, **task_config} input_engine_options = input_data.extras.pop("_qcengine_local_config", {}) - local_options = {**local_options, **input_engine_options} - config = get_config(local_options=local_options) + task_config = {**task_config, **input_engine_options} + config = get_config(task_config=task_config) # Set environment parameters and execute with environ_context(config=config): @@ -106,9 +120,10 @@ input_data: Union[Dict[str, Any], "BaseModel"], procedure: str, raise_error: bool = False, + task_config: Optional[Dict[str, str]] = None, local_options: Optional[Dict[str, str]] = None, return_dict: bool = False, -) -> "BaseModel": +) -> Union["OptimizationResult", "FailedOperation", Dict[str, Any]]: """Runs a procedure (a collection of the quantum chemistry executions) Parameters @@ -119,8 +134,10 @@ The name of the procedure to run raise_error : bool, option Determines if compute should raise an error or not. - local_options : dict, optional - A dictionary of local configuration options + task_config + A dictionary of local configuration options corresponding to a TaskConfig object. + local_options + Deprecated parameter, renamed to ``task_config`` return_dict : bool, optional, default True Returns a dict instead of qcelemental.models.AtomicInput @@ -129,6 +146,18 @@ dict, OptimizationResult, FailedOperation A QC Schema representation of the requested output, type depends on return_dict key. """ + # Build out task_config + if task_config is None: + task_config = {} + + if local_options: + warnings.warn( + "Using the `local_options` keyword argument is depreciated in favor of using `task_config`, " + "in version 0.30.0 it will stop working.", + category=FutureWarning, + stacklevel=2, + ) + task_config = {**local_options, **task_config} output_data = input_data.copy() # lgtm [py/multiple-definition] with compute_wrapper(capture_output=False, raise_error=raise_error) as metadata: @@ -136,7 +165,7 @@ # Grab the executor and build the input model executor = get_procedure(procedure) - config = get_config(local_options=local_options) + config = get_config(task_config=task_config) input_data = executor.build_input_model(input_data) # Create a base output data in case of errors diff -Nru qcengine-0.23.0/qcengine/config.py qcengine-0.26.0/qcengine/config.py --- qcengine-0.23.0/qcengine/config.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/config.py 2022-11-30 16:26:08.000000000 +0000 @@ -190,7 +190,7 @@ LOGGER.info("Found 'qcengine.yaml' at path: {}".format(load_path)) with open(load_path, "r") as stream: - user_config = yaml.load(stream) + user_config = yaml.load(stream, Loader=yaml.SafeLoader) for k, v in user_config.items(): NODE_DESCRIPTORS[k] = NodeDescriptor(name=k, **v) @@ -267,28 +267,28 @@ return ret -def get_config(*, hostname: Optional[str] = None, local_options: Dict[str, Any] = None) -> TaskConfig: +def get_config(*, hostname: Optional[str] = None, task_config: Dict[str, Any] = None) -> TaskConfig: """ Returns the configuration key for qcengine. """ - if local_options is None: - local_options = {} + if task_config is None: + task_config = {} - local_options = parse_environment(local_options) + task_config = parse_environment(task_config) config = {} # Node data node = get_node_descriptor(hostname) ncores = node.ncores or get_global("ncores") - config["scratch_directory"] = local_options.pop("scratch_directory", node.scratch_directory) - config["retries"] = local_options.pop("retries", node.retries) + config["scratch_directory"] = task_config.pop("scratch_directory", node.scratch_directory) + config["retries"] = task_config.pop("retries", node.retries) # Jobs per node - jobs_per_node = local_options.pop("jobs_per_node", None) or node.jobs_per_node + jobs_per_node = task_config.pop("jobs_per_node", None) or node.jobs_per_node # Handle memory - memory = local_options.pop("memory", None) + memory = task_config.pop("memory", None) if memory is None: memory = node.memory or get_global("memory") memory_coeff = 1 - node.memory_safety_factor / 100 @@ -297,21 +297,21 @@ config["memory"] = memory # Get the number of cores available to each task - ncores = local_options.pop("ncores", int(ncores / jobs_per_node)) + ncores = task_config.pop("ncores", int(ncores / jobs_per_node)) if ncores < 1: raise KeyError("Number of jobs per node exceeds the number of available cores.") config["ncores"] = ncores - config["nnodes"] = local_options.pop("nnodes", 1) + config["nnodes"] = task_config.pop("nnodes", 1) # Add in the MPI launch command template config["mpiexec_command"] = node.mpiexec_command config["use_mpiexec"] = node.is_batch_node or config["nnodes"] > 1 - config["cores_per_rank"] = local_options.get("cores_per_rank", 1) + config["cores_per_rank"] = task_config.get("cores_per_rank", 1) # Override any settings - if local_options is not None: - config.update(local_options) + if task_config is not None: + config.update(task_config) # Make sure mpirun command is defined if needed if config["use_mpiexec"] and config["mpiexec_command"] is None: diff -Nru qcengine-0.23.0/qcengine/procedures/base.py qcengine-0.26.0/qcengine/procedures/base.py --- qcengine-0.23.0/qcengine/procedures/base.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/procedures/base.py 2022-11-30 16:26:08.000000000 +0000 @@ -10,13 +10,14 @@ from .nwchem_opt import NWChemDriverProcedure from .optking import OptKingProcedure from .torsiondrive import TorsionDriveProcedure +from .model import ProcedureHarness __all__ = ["register_procedure", "get_procedure", "list_all_procedures", "list_available_procedures"] procedures = {} -def register_procedure(entry_point: "ProcedureHarness") -> None: +def register_procedure(entry_point: ProcedureHarness) -> None: """ Register a new ProcedureHarness with QCEngine """ @@ -28,7 +29,7 @@ procedures[name.lower()] = entry_point -def get_procedure(name: str) -> "ProcedureHarness": +def get_procedure(name: str) -> ProcedureHarness: """ Returns a procedures executor class """ diff -Nru qcengine-0.23.0/qcengine/procedures/berny.py qcengine-0.26.0/qcengine/procedures/berny.py --- qcengine-0.23.0/qcengine/procedures/berny.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/procedures/berny.py 2022-11-30 16:26:08.000000000 +0000 @@ -1,11 +1,12 @@ import logging +from qcengine.exceptions import UnknownError import sys import traceback from io import StringIO from typing import Any, Dict, Union import numpy as np -from qcelemental.models import OptimizationInput, OptimizationResult +from qcelemental.models import OptimizationInput, OptimizationResult, FailedOperation from qcelemental.util import which_import import qcengine @@ -28,7 +29,9 @@ def build_input_model(self, data: Union[Dict[str, Any], "OptimizationInput"]) -> "OptimizationInput": return self._build_model(data, OptimizationInput) - def compute(self, input_data: "OptimizationInput", config: "TaskConfig") -> "OptimizationResult": + def compute( + self, input_data: "OptimizationInput", config: "TaskConfig" + ) -> Union["OptimizationResult", "FailedOperation"]: try: import berny except ModuleNotFoundError: @@ -65,23 +68,28 @@ for geom_berny in opt: geom_qcng["geometry"] = np.stack(geom_berny.coords * berny.angstrom) ret = qcengine.compute(comput, program) - trajectory.append(ret.dict()) - opt.send((ret.properties.return_energy, ret.return_result)) + if ret.success: + trajectory.append(ret.dict()) + opt.send((ret.properties.return_energy, ret.return_result)) + else: + # qcengine.compute returned FailedOperation + raise UnknownError("Gradient computation failed") + + except UnknownError: + error = ret.error.dict() # ComputeError except Exception: - output_data["success"] = False - output_data["error"] = {"error_type": "unknown", "error_message": f"Berny error:\n{traceback.format_exc()}"} + error = {"error_type": "unknown", "error_message": f"Berny error:\n{traceback.format_exc()}"} else: output_data["success"] = True - output_data.update( - { - "schema_name": "qcschema_optimization_output", - "final_molecule": trajectory[-1]["molecule"], - "energies": [r["properties"]["return_energy"] for r in trajectory], - "trajectory": trajectory, - "provenance": {"creator": "Berny", "routine": "berny.Berny", "version": berny_version}, - "stdout": log_stream.getvalue(), # collect logged messages - } - ) - if output_data["success"]: - output_data = OptimizationResult(**output_data) - return output_data + output_data.update( + { + "schema_name": "qcschema_optimization_output", + "final_molecule": trajectory[-1]["molecule"], + "energies": [r["properties"]["return_energy"] for r in trajectory], + "trajectory": trajectory, + "provenance": {"creator": "Berny", "routine": "berny.Berny", "version": berny_version}, + "stdout": log_stream.getvalue(), # collect logged messages + } + ) + return OptimizationResult(**output_data) + return FailedOperation(input_data=input_data, error=error) diff -Nru qcengine-0.23.0/qcengine/procedures/nwchem_opt/__init__.py qcengine-0.26.0/qcengine/procedures/nwchem_opt/__init__.py --- qcengine-0.23.0/qcengine/procedures/nwchem_opt/__init__.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/procedures/nwchem_opt/__init__.py 2022-11-30 16:26:08.000000000 +0000 @@ -39,6 +39,10 @@ if keywords.get("program", "nwchem").lower() != "nwchem": raise InputError("NWChemDriver procedure only works with NWChem") + # Add a flag to the atomic input that tells the NWChemHarness we are calling it from driver + # This is needed for the NWCHarness to make some changes to the input file + input_data.input_specification.extras["is_driver"] = True + # Make an atomic input atomic_input = AtomicInput( molecule=input_data.initial_molecule, diff -Nru qcengine-0.23.0/qcengine/programs/base.py qcengine-0.26.0/qcengine/programs/base.py --- qcengine-0.23.0/qcengine/programs/base.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/base.py 2022-11-30 16:26:08.000000000 +0000 @@ -5,10 +5,11 @@ from typing import Set from ..exceptions import InputError, ResourceError +from .model import ProgramHarness from .adcc import AdccHarness from .cfour import CFOURHarness from .dftd3 import DFTD3Harness -from .dftd4 import DFTD4Harness +from .dftd_ng import DFTD4Harness, SDFTD3Harness from .gamess import GAMESSHarness from .gcp import GCPHarness, MCTCGCPHarness from .molpro import MolproHarness @@ -22,6 +23,7 @@ from .qcore import EntosHarness, QcoreHarness from .rdkit import RDKitHarness from .terachem import TeraChemHarness +from .terachem_frontend import TeraChemFrontEndHarness from .terachem_pbs import TeraChemPBSHarness from .torchani import TorchANIHarness from .turbomole import TurbomoleHarness @@ -32,7 +34,7 @@ programs = {} -def register_program(entry_point: "ProgramHarness") -> None: +def register_program(entry_point: ProgramHarness) -> None: """ Register a new ProgramHarness with QCEngine. """ @@ -54,7 +56,7 @@ raise KeyError(f"Program {name} is not registered with QCEngine") -def get_program(name: str, check: bool = True) -> "ProgramHarness": +def get_program(name: str, check: bool = True) -> ProgramHarness: """ Returns a program's executor class @@ -114,6 +116,7 @@ register_program(QcoreHarness()) register_program(TeraChemHarness()) register_program(TurbomoleHarness()) +register_program(TeraChemFrontEndHarness()) register_program(TeraChemPBSHarness()) # Semi-empirical @@ -130,6 +133,7 @@ # Analytical Corrections register_program(DFTD3Harness()) register_program(DFTD4Harness()) +register_program(SDFTD3Harness()) register_program(GCPHarness()) register_program(MCTCGCPHarness()) register_program(MP2DHarness()) diff -Nru qcengine-0.23.0/qcengine/programs/cfour/germinate.py qcengine-0.26.0/qcengine/programs/cfour/germinate.py --- qcengine-0.23.0/qcengine/programs/cfour/germinate.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/cfour/germinate.py 2022-11-30 16:26:08.000000000 +0000 @@ -3,23 +3,28 @@ from qcengine.exceptions import InputError -def muster_modelchem(method: str, derint: int) -> Dict[str, Any]: +def muster_modelchem(method: str, driver: "DriverEnum") -> Dict[str, Any]: """Converts the QC method into CFOUR keywords.""" method = method.lower() opts = {} - if derint == 0: - if method == "cfour": - pass # permit clean operation of sandwich mode - else: - opts["deriv_level"] = "zero" + if driver == "properties": + pass + else: + derint = driver.derivative_int() + + if derint == 0: + if method == "cfour": + pass # permit clean operation of sandwich mode + else: + opts["deriv_level"] = "zero" - elif derint == 1: - opts["deriv_level"] = "first" + elif derint == 1: + opts["deriv_level"] = "first" - elif derint == 2: - opts["vibration"] = "exact" + elif derint == 2: + opts["vibration"] = "exact" if method == "cfour": pass @@ -39,6 +44,9 @@ elif method == "mp4": opts["calc_level"] = "mp4" + elif method == "bccd": + opts["calc_level"] = "b-ccd" + elif method == "cc2": opts["calc_level"] = "cc2" @@ -52,6 +60,9 @@ # Can't use (T) b/c bug in xsymcor lops it off opts["calc_level"] = "ccsd[t]" + elif method == "bccd(t)": + opts["calc_level"] = "b-ccd(t)" + elif method == "ccsdt": opts["calc_level"] = "ccsdt" diff -Nru qcengine-0.23.0/qcengine/programs/cfour/harvester.py qcengine-0.26.0/qcengine/programs/cfour/harvester.py --- qcengine-0.23.0/qcengine/programs/cfour/harvester.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/cfour/harvester.py 2022-11-30 16:26:08.000000000 +0000 @@ -60,10 +60,8 @@ module = None error = "" - # TODO: BCC - # CI + # TODO: CI # other ROHF tests - # vcc/ecc NUMBER = r"(?x:" + regex.NUMBER + ")" DECIMAL = r"(?x:" + regex.DECIMAL + ")" @@ -117,7 +115,10 @@ mobj = re.search(r"^\s+" + r"(?:E\(SCF\)=)" + r"\s+" + NUMBER + r"\s+" + NUMBER + r"\s*$", outtext, re.MULTILINE) if mobj: logger.debug("matched scf2") - psivar["SCF TOTAL ENERGY"] = mobj.group(1) + mobj5 = re.search(r"BRUECKNER\s+IBRKNR\s+ON", outtext) + if not mobj5: + # interferes with ROHF BCCD + psivar["SCF TOTAL ENERGY"] = mobj.group(1) if "SCF TOTAL ENERGY" not in psivar: # can be too greedy and match across scf cycles @@ -457,7 +458,7 @@ psivar["QCISD(T) CORRELATION ENERGY"] = psivar["QCISD(T) TOTAL ENERGY"] - psivar["SCF TOTAL ENERGY"] # Process CC Iterations - mobj = re.search( + cciterations = re.compile( # fmt: off r'^\s+' + r'(?P(?PL?CC(?:\w+(?:-(?:1|1b|2|3))?))(?:\(T\))?)' + r'\s+(?:energy will be calculated.)\s*' + r'(?:.*?)' + @@ -465,15 +466,19 @@ r'^\s*(?:-+)\s*' + r'^\s*(?:A miracle (?Phas come|come) to pass. The CC iterations have converged.)\s*$', # fmt: on - outtext, - re.MULTILINE | re.DOTALL, + re.MULTILINE + | re.DOTALL, ) - if mobj: - logger.debug("matched cc with full %s iterating %s" % (mobj.group("fullCC"), mobj.group("iterCC"))) - module = {"has come": "vcc", "come": "ecc"}[mobj.group("ccprog")] + mobj_list = [m.groupdict() for m in cciterations.finditer(outtext)] + if mobj_list: + first_match = mobj_list[0] + last_match = mobj_list[-1] + + logger.debug("matched cc with full %s iterating %s" % (last_match["fullCC"], last_match["iterCC"])) + module = {"has come": "vcc", "come": "ecc"}[last_match["ccprog"]] mobj4 = re.search(r"CALCLEVEL\s+ICLLVL\s+CCSDT-1b", outtext) - mtd = mobj.group("iterCC").upper() + mtd = last_match["iterCC"].upper() if mtd == "CCSDT-1": if mobj4 and module == "vcc": mtd = "CCSDT-1B" @@ -481,12 +486,20 @@ mtd = "CCSDT-1A" elif mtd == "CCSDT-1b": mtd = "CCSDT-1B" - psivar[f"{mtd} CORRELATION ENERGY"] = mobj.group("corl") - psivar[f"{mtd} TOTAL ENERGY"] = mobj.group("tot") - mobj3 = re.search(r"SCF reference function: RHF", outtext) - if mobj3 and mtd not in ["CCSDT-1A", "CCSDT-1B", "CCSDT-2", "CCSDT-3", "CCSDT"]: - psivar[f"{mtd} DOUBLES ENERGY"] = mobj.group("corl") + mobj5 = re.search(r"BRUECKNER\s+IBRKNR\s+ON", outtext) + if mobj5 and mtd == "CCSD": + # BCCD corl = last Brueckner iter total E - first Brueckner iter HF E + psivar[f"BCCD CORRELATION ENERGY"] = Decimal(last_match["tot"]) - psivar["SCF TOTAL ENERGY"] + psivar[f"BCCD TOTAL ENERGY"] = last_match["tot"] + logger.debug("matched Brueckner iter") + else: + psivar[f"{mtd} CORRELATION ENERGY"] = last_match["corl"] + psivar[f"{mtd} TOTAL ENERGY"] = last_match["tot"] + + mobj3 = re.search(r"SCF reference function: RHF", outtext) + if mobj3 and mtd not in ["CCSDT-1A", "CCSDT-1B", "CCSDT-2", "CCSDT-3", "CCSDT"]: + psivar[f"{mtd} DOUBLES ENERGY"] = last_match["corl"] mobj = re.search( # fmt: off @@ -558,10 +571,12 @@ if mobj: logger.debug("matched ccsd(t) vcc") psivar["SCF TOTAL ENERGY"] = mobj.group(1) - psivar["CCSD TOTAL ENERGY"] = mobj.group(2) - psivar["(T) CORRECTION ENERGY"] = Decimal(mobj.group(3)) - Decimal(mobj.group(2)) - psivar["CCSD(T) CORRELATION ENERGY"] = Decimal(mobj.group(3)) - Decimal(mobj.group(1)) - psivar["CCSD(T) TOTAL ENERGY"] = mobj.group(3) + mobj5 = re.search(r"BRUECKNER\s+IBRKNR\s+ON", outtext) + if not mobj5: + psivar["CCSD TOTAL ENERGY"] = mobj.group(2) + psivar["(T) CORRECTION ENERGY"] = Decimal(mobj.group(3)) - Decimal(mobj.group(2)) + psivar["CCSD(T) CORRELATION ENERGY"] = Decimal(mobj.group(3)) - Decimal(mobj.group(1)) + psivar["CCSD(T) TOTAL ENERGY"] = mobj.group(3) module = "vcc" mobj = re.search( @@ -575,9 +590,15 @@ ) if mobj: logger.debug("matched ccsd(t) vcc v2") - psivar["CCSD TOTAL ENERGY"] = mobj.group(1) - psivar["(T) CORRECTION ENERGY"] = Decimal(mobj.group(2)) - Decimal(mobj.group(1)) - psivar["CCSD(T) TOTAL ENERGY"] = mobj.group(2) + mobj5 = re.search(r"BRUECKNER\s+IBRKNR\s+ON", outtext) + if mobj5: + psivar["B(T) CORRECTION ENERGY"] = Decimal(mobj.group(2)) - Decimal(mobj.group(1)) + psivar["BCCD(T) TOTAL ENERGY"] = mobj.group(2) + psivar["BCCD(T) CORRELATION ENERGY"] = psivar["BCCD CORRELATION ENERGY"] + psivar["B(T) CORRECTION ENERGY"] + else: + psivar["CCSD TOTAL ENERGY"] = mobj.group(1) + psivar["(T) CORRECTION ENERGY"] = Decimal(mobj.group(2)) - Decimal(mobj.group(1)) + psivar["CCSD(T) TOTAL ENERGY"] = mobj.group(2) module = "vcc" mobj = re.search( @@ -825,13 +846,15 @@ else: ss = Decimal(mobj.group(3)) + Decimal(mobj.group(4)) - if not ( - re.search(r"executable xvcc finished", outtext) - and re.search(r"The reference state is a ROHF wave function.", outtext) - ): - psivar["%s SAME-SPIN CORRELATION ENERGY" % (mobj.group("iterCC"))] = ss - psivar["%s OPPOSITE-SPIN CORRELATION ENERGY" % (mobj.group("iterCC"))] = mobj.group(5) - psivar["%s CORRELATION ENERGY" % (mobj.group("iterCC"))] = mobj.group(6) + mobj5 = re.search(r"BRUECKNER\s+IBRKNR\s+ON", outtext) + if not mobj5: + if not ( + re.search(r"executable xvcc finished", outtext) + and re.search(r"The reference state is a ROHF wave function.", outtext) + ): + psivar["%s SAME-SPIN CORRELATION ENERGY" % (mobj.group("iterCC"))] = ss + psivar["%s OPPOSITE-SPIN CORRELATION ENERGY" % (mobj.group("iterCC"))] = mobj.group(5) + psivar["%s CORRELATION ENERGY" % (mobj.group("iterCC"))] = mobj.group(6) mobj = re.search( # fmt: off @@ -1086,6 +1109,10 @@ psivar["CURRENT CORRELATION ENERGY"] = psivar["CCD CORRELATION ENERGY"] psivar["CURRENT ENERGY"] = psivar["CCD TOTAL ENERGY"] + if "BCCD TOTAL ENERGY" in psivar and "BCCD CORRELATION ENERGY" in psivar: + psivar["CURRENT CORRELATION ENERGY"] = psivar["BCCD CORRELATION ENERGY"] + psivar["CURRENT ENERGY"] = psivar["BCCD TOTAL ENERGY"] + if "CCSD TOTAL ENERGY" in psivar and "CCSD CORRELATION ENERGY" in psivar: psivar["CURRENT CORRELATION ENERGY"] = psivar["CCSD CORRELATION ENERGY"] psivar["CURRENT ENERGY"] = psivar["CCSD TOTAL ENERGY"] @@ -1102,6 +1129,10 @@ psivar["CURRENT CORRELATION ENERGY"] = psivar["A-CCSD(T) CORRELATION ENERGY"] psivar["CURRENT ENERGY"] = psivar["A-CCSD(T) TOTAL ENERGY"] + if "BCCD(T) TOTAL ENERGY" in psivar and "BCCD(T) CORRELATION ENERGY" in psivar: + psivar["CURRENT CORRELATION ENERGY"] = psivar["BCCD(T) CORRELATION ENERGY"] + psivar["CURRENT ENERGY"] = psivar["BCCD(T) TOTAL ENERGY"] + if "CC3 TOTAL ENERGY" in psivar and "CC3 CORRELATION ENERGY" in psivar: psivar["CURRENT CORRELATION ENERGY"] = psivar["CC3 CORRELATION ENERGY"] psivar["CURRENT ENERGY"] = psivar["CC3 TOTAL ENERGY"] @@ -1224,11 +1255,11 @@ if in_mol.fix_com and in_mol.fix_orientation: # Impose input frame if important as signalled by fix_*=T return_mol = in_mol - _, data = out_mol.align(in_mol, atoms_map=False, mols_align=True, verbose=0) + _, data = out_mol.align(in_mol, atoms_map=False, mols_align=True, generic_ghosts=True, verbose=0) mill = data["mill"] else: - return_mol, _ = in_mol.align(out_mol, atoms_map=False, mols_align=True, verbose=0) + return_mol, _ = in_mol.align(out_mol, atoms_map=False, mols_align=True, generic_ghosts=True, verbose=0) mill = qcel.molutil.compute_scramble( len(in_mol.symbols), do_resort=False, do_shift=False, do_rotate=False, do_mirror=False ) # identity AlignmentMill @@ -1330,7 +1361,9 @@ grad = [] for at in range(Nat): mline = grd[at + 1].split() - el = "GH" if int(float(mline[0])) == 0 else qcel.periodictable.to_E(int(float(mline[0]))) + + # "@Xe" is potentially dangerous bypass for ghosts + el = "@Xe" if int(float(mline[0])) == 0 else qcel.periodictable.to_E(int(float(mline[0]))) molxyz += "%s %16s %16s %16s\n" % (el, mline[-3], mline[-2], mline[-1]) lline = grd[at + 1 + Nat].split() grad.append([float(lline[-3]), float(lline[-2]), float(lline[-1])]) diff -Nru qcengine-0.23.0/qcengine/programs/cfour/runner.py qcengine-0.26.0/qcengine/programs/cfour/runner.py --- qcengine-0.23.0/qcengine/programs/cfour/runner.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/cfour/runner.py 2022-11-30 16:26:08.000000000 +0000 @@ -98,7 +98,7 @@ opts.update(moldata["keywords"]) # Handle calc type and quantum chemical method - mdcopts = muster_modelchem(input_model.model.method, input_model.driver.derivative_int()) + mdcopts = muster_modelchem(input_model.model.method, input_model.driver) opts.update(mdcopts) # Handle basis set diff -Nru qcengine-0.23.0/qcengine/programs/dftd3.py qcengine-0.26.0/qcengine/programs/dftd3.py --- qcengine-0.23.0/qcengine/programs/dftd3.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/dftd3.py 2022-11-30 16:26:08.000000000 +0000 @@ -201,7 +201,7 @@ atom1 = int(data[0]) - 1 atom2 = int(data[1]) - 1 Edisp = Decimal(data[-1]) - D3pairs[atom1, atom2] = Edisp / Decimal(Grimme_h2kcal) + D3pairs[atom1, atom2] = Decimal(0.5) * Edisp / Decimal(Grimme_h2kcal) D3pairs[atom2, atom1] = D3pairs[atom1, atom2] elif re.match(" normal termination of dftd3", ln): @@ -297,6 +297,9 @@ output_data["extras"]["local_keywords"] = input_model.extras["info"] output_data["extras"]["qcvars"] = calcinfo if input_model.keywords.get("pair_resolved", False): + assert ( + abs(D3pairs.sum() - float(retres)) < 1.0e-6 + ), f"pairwise sum {D3pairs.sum()} != energy {float(retres)}" output_data["extras"]["qcvars"]["2-BODY PAIRWISE DISPERSION CORRECTION ANALYSIS"] = D3pairs output_data["success"] = True @@ -315,6 +318,8 @@ d3mbj: s6 a1 s8 a2 alpha6=None version=6 atmgr: s6=1.0 sr6=None s8=None a2=None alpha6 version=3 (needs -abc, too) + 2-body variant here. that is, d3zero2b + Parameters ---------- dashlvl : {'d2', 'd3zero', d3bj', 'd3mzero', 'd3mbj', 'atmgr'} @@ -339,15 +344,15 @@ dashlvl = dashlvl.lower() if dashlvl == "d2": return dashformatter.format(dashcoeff["s6"], dashcoeff["sr6"], 0.0, 0.0, dashcoeff["alpha6"], 2) - elif dashlvl == "d3zero": + elif dashlvl == "d3zero2b": return dashformatter.format( dashcoeff["s6"], dashcoeff["sr6"], dashcoeff["s8"], dashcoeff["sr8"], dashcoeff["alpha6"], 3 ) - elif dashlvl == "d3bj": + elif dashlvl == "d3bj2b": return dashformatter.format(dashcoeff["s6"], dashcoeff["a1"], dashcoeff["s8"], dashcoeff["a2"], 0.0, 4) - elif dashlvl == "d3mzero": + elif dashlvl == "d3mzero2b": return dashformatter.format(dashcoeff["s6"], dashcoeff["sr6"], dashcoeff["s8"], dashcoeff["beta"], 14.0, 5) - elif dashlvl == "d3mbj": + elif dashlvl == "d3mbj2b": return dashformatter.format(dashcoeff["s6"], dashcoeff["a1"], dashcoeff["s8"], dashcoeff["a2"], 0.0, 6) elif dashlvl == "atmgr": # need to set first four parameters to something other than None, otherwise DFTD3 gets mad or a bit wrong diff -Nru qcengine-0.23.0/qcengine/programs/dftd4.py qcengine-0.26.0/qcengine/programs/dftd4.py --- qcengine-0.23.0/qcengine/programs/dftd4.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/dftd4.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,140 +0,0 @@ -""" -Harness for the DFT-D4 dispersion correction. -This implementation interfaces with the dftd4 Python-API, which provides -native support for QCSchema. - -Therefore, this harness only has to provide a thin wrapper to integrate dftd4. -""" - -from typing import Dict - -from qcelemental.models import AtomicInput, AtomicResult -from qcelemental.util import safe_version, which_import - -from ..config import TaskConfig -from ..exceptions import InputError -from .empirical_dispersion_resources import from_arrays, get_dispersion_aliases -from .model import ProgramHarness - - -class DFTD4Harness(ProgramHarness): - """Calculation harness for the DFT-D4 dispersion correction.""" - - _defaults = { - "name": "dftd4", - "scratch": False, - "thread_safe": True, - "thread_parallel": False, - "node_parallel": False, - "managed_memory": False, - } - version_cache: Dict[str, str] = {} - - class Config(ProgramHarness.Config): - pass - - @staticmethod - def found(raise_error: bool = False) -> bool: - """Check for the availability of the Python API of dftd4""" - - return which_import( - "dftd4", - return_bool=True, - raise_error=raise_error, - raise_msg="Please install via a dftd4 version with enabled Python API", - ) - - def get_version(self) -> str: - """Return the currently used version of dftd4""" - self.found(raise_error=True) - - which_prog = which_import("dftd4") - if which_prog not in self.version_cache: - import dftd4 - - self.version_cache[which_prog] = safe_version(dftd4.__version__) - - return self.version_cache[which_prog] - - def compute(self, input_model: AtomicInput, config: TaskConfig) -> AtomicResult: - """ - Actual interface to the dftd4 package. The compute function is just a thin - wrapper around the native QCSchema interface of the dftd4 Python-API. - """ - - self.found(raise_error=True) - - import dftd4 - from dftd4.qcschema import run_qcschema - - # strip engine hint - input_data = input_model.dict() - method = input_model.model.method - if method.startswith("d4-"): - method = method[3:] - input_data["model"]["method"] = method - qcvkey = method.upper() if method is not None else None - - # send `from_arrays` the dftd4 behavior of functional specification overrides explicit parameters specification - # * differs from dftd3 harness behavior where parameters extend or override functional - # * stash the resolved plan in extras or, if errored, leave it for the proper dftd4 api to reject - param_tweaks = None if method else input_model.keywords.get("params_tweaks", None) - try: - planinfo = from_arrays( - verbose=1, - name_hint=method, - level_hint=input_model.keywords.get("level_hint", None), - param_tweaks=param_tweaks, - dashcoeff_supplement=input_model.keywords.get("dashcoeff_supplement", None), - ) - except InputError: - pass - else: - input_data["extras"]["info"] = planinfo - - # strip dispersion level from method - for alias, d4 in get_dispersion_aliases().items(): - if d4 == "d4bjeeqatm" and method.lower().endswith(alias): - method = method[: -(len(alias) + 1)] - input_data["model"]["method"] = method - - # consolidate dispersion level aliases - level_hint = input_model.keywords.get("level_hint", None) - if level_hint and get_dispersion_aliases()[level_hint.lower()] == "d4bjeeqatm": - level_hint = "d4" - input_data["keywords"]["level_hint"] = level_hint - - input_model = AtomicInput(**input_data) - - # Run the Harness - output = run_qcschema(input_model) - - if "info" in output.extras: - qcvkey = output.extras["info"]["fctldash"].upper() - - calcinfo = {} - energy = output.properties.return_energy - calcinfo["CURRENT ENERGY"] = energy - calcinfo["DISPERSION CORRECTION ENERGY"] = energy - if qcvkey: - calcinfo[f"{qcvkey} DISPERSION CORRECTION ENERGY"] = energy - - if output.driver == "gradient": - gradient = output.return_result - calcinfo["CURRENT GRADIENT"] = gradient - calcinfo["DISPERSION CORRECTION GRADIENT"] = gradient - if qcvkey: - calcinfo[f"{qcvkey} DISPERSION CORRECTION GRADIENT"] = gradient - - if output.keywords.get("pair_resolved", False): - pw2 = output.extras["dftd4"]["additive pairwise energy"] - pw3 = output.extras["dftd4"]["non-additive pairwise energy"] - assert abs(pw2.sum() + pw3.sum() - energy) < 1.0e-8, f"{pw2.sum()} + {pw3.sum()} != {energy}" - calcinfo["2-BODY DISPERSION CORRECTION ENERGY"] = pw2.sum() - calcinfo["3-BODY DISPERSION CORRECTION ENERGY"] = pw3.sum() - calcinfo["2-BODY PAIRWISE DISPERSION CORRECTION ANALYSIS"] = pw2 - calcinfo["3-BODY PAIRWISE DISPERSION CORRECTION ANALYSIS"] = pw3 - - output.extras["qcvars"] = calcinfo - - return output diff -Nru qcengine-0.23.0/qcengine/programs/dftd_ng.py qcengine-0.26.0/qcengine/programs/dftd_ng.py --- qcengine-0.23.0/qcengine/programs/dftd_ng.py 1970-01-01 00:00:00.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/dftd_ng.py 2022-11-30 16:26:08.000000000 +0000 @@ -0,0 +1,313 @@ +""" +Harness for the DFT-D dispersion correction. +This implementation interfaces with the dftd3 and dftd4 Python-API, which provides +native support for QCSchema. + +Therefore, this harness only has to provide a thin wrapper to integrate the +respective dispersion correction. +""" + +from typing import Dict + +from qcelemental.models import AtomicInput, AtomicResult +from qcelemental.util import parse_version, safe_version, which_import + +from ..config import TaskConfig +from ..exceptions import InputError +from .empirical_dispersion_resources import from_arrays, get_dispersion_aliases +from .model import ProgramHarness + + +class DFTD4Harness(ProgramHarness): + """Calculation harness for the DFT-D4 dispersion correction.""" + + _defaults = { + "name": "dftd4", + "scratch": False, + "thread_safe": True, + "thread_parallel": True, + "node_parallel": False, + "managed_memory": False, + } + version_cache: Dict[str, str] = {} + + class Config(ProgramHarness.Config): + pass + + @staticmethod + def found(raise_error: bool = False) -> bool: + """Check for the availability of the Python API of dftd4""" + + return which_import( + "dftd4", + return_bool=True, + raise_error=raise_error, + raise_msg="Please install a dftd4 version with enabled Python API" + + " (e.g. conda install dftd4-python -c conda-forge)", + ) + + def get_version(self) -> str: + """Return the currently used version of dftd4""" + self.found(raise_error=True) + + which_prog = which_import("dftd4") + if which_prog not in self.version_cache: + import dftd4 + + self.version_cache[which_prog] = safe_version(dftd4.__version__) + + return self.version_cache[which_prog] + + def compute(self, input_model: AtomicInput, config: TaskConfig) -> AtomicResult: + """ + Actual interface to the dftd4 package. The compute function is just a thin + wrapper around the native QCSchema interface of the dftd4 Python-API. + """ + + self.found(raise_error=True) + + import dftd4 + from dftd4.qcschema import run_qcschema + + # strip engine hint + input_data = input_model.dict() + method = input_model.model.method + if method.startswith("d4-"): + method = method[3:] + input_data["model"]["method"] = method + qcvkey = method.upper() if method is not None else None + + # send `from_arrays` the dftd4 behavior of functional specification overrides explicit parameters specification + # * differs from dftd4 harness behavior where parameters extend or override functional + # * stash the resolved plan in extras or, if errored, leave it for the proper dftd4 api to reject + param_tweaks = None if method else input_model.keywords.get("params_tweaks", None) + try: + planinfo = from_arrays( + verbose=1, + name_hint=method, + level_hint=input_model.keywords.get("level_hint", None), + param_tweaks=param_tweaks, + dashcoeff_supplement=input_model.keywords.get("dashcoeff_supplement", None), + ) + except InputError: + pass + else: + input_data["extras"]["info"] = planinfo + + # strip dispersion level from method + for alias, d4 in get_dispersion_aliases().items(): + if d4 == "d4bjeeqatm" and method.lower().endswith(alias): + method = method[: -(len(alias) + 1)] + input_data["model"]["method"] = method + + # consolidate dispersion level aliases + level_hint = input_model.keywords.get("level_hint", None) + if level_hint and get_dispersion_aliases()[level_hint.lower()] == "d4bjeeqatm": + level_hint = "d4" + input_data["keywords"]["level_hint"] = level_hint + + input_model = AtomicInput(**input_data) + + # Run the Harness + output = run_qcschema(input_model) + + if "info" in output.extras: + qcvkey = output.extras["info"]["fctldash"].upper() + + calcinfo = {} + energy = output.properties.return_energy + calcinfo["CURRENT ENERGY"] = energy + calcinfo["DISPERSION CORRECTION ENERGY"] = energy + if qcvkey: + calcinfo[f"{qcvkey} DISPERSION CORRECTION ENERGY"] = energy + + if output.driver == "gradient": + gradient = output.return_result + calcinfo["CURRENT GRADIENT"] = gradient + calcinfo["DISPERSION CORRECTION GRADIENT"] = gradient + if qcvkey: + calcinfo[f"{qcvkey} DISPERSION CORRECTION GRADIENT"] = gradient + + if output.keywords.get("pair_resolved", False): + pw2 = output.extras["dftd4"]["additive pairwise energy"] + pw3 = output.extras["dftd4"]["non-additive pairwise energy"] + assert abs(pw2.sum() + pw3.sum() - energy) < 1.0e-8, f"{pw2.sum()} + {pw3.sum()} != {energy}" + calcinfo["2-BODY DISPERSION CORRECTION ENERGY"] = pw2.sum() + calcinfo["3-BODY DISPERSION CORRECTION ENERGY"] = pw3.sum() + calcinfo["2-BODY PAIRWISE DISPERSION CORRECTION ANALYSIS"] = pw2 + calcinfo["3-BODY PAIRWISE DISPERSION CORRECTION ANALYSIS"] = pw3 + + output.extras["qcvars"] = calcinfo + + return output + + +class SDFTD3Harness(ProgramHarness): + """ + Calculation harness for the DFT-D3 dispersion correction. + + This implementation of DFT-D3 supports the several damping functions, which + are selected via the *level_hint* keyword. Damping parameter can be specified + via the *param_tweaks* dictionary. If no *param_tweaks* are provided the + functional parameters are obtained from the internal database of the library. + + The following damping function are available via *level_hint*: + + - ``d3bj``: + Rational damping function for DFT-D3. The original scheme was proposed by + Becke and Johnson and implemented in a slightly adjusted form using only + the C8/C6 ratio in the critical radius for DFT-D3. + Requires at least three parameters: *s8*, *a1*, and *a2*. + The parameters *s6*, *s9*, and *alpha6* can be adjusted as well. + - ``d3zero``: + Original DFT-D3 damping function, based on a variant proposed by Chai and Head-Gordon. + Requires at least two parameters: *s8* and *sr6*. + The parameters *s6*, *s9*, *sr8*, and *alpha6* can be adjusted as well. + - ``d3mbj``: + Modified version of the rational damping parameters. The functional form of the + damping function is *unmodified* with respect to the original rational damping scheme. + However, for a number of functionals new parameters were introduced. + Requires at least three parameters: *s8*, *a1*, and *a2*. + The parameters *s6*, *s9*, and *alpha6* can be adjusted as well. + - ``d3mzero``: + Modified zero damping function for DFT-D3. This scheme adds an additional offset + parameter to the zero damping scheme of the original DFT-D3. + Requires at least three parameters: *s8*, *sr6*, and *beta*. + The parameters *s6*, *s9*, *sr8*, and *alpha6* can be adjusted as well. + - ``d3op``: + Optimized power version of the rational damping function for DFT-D3. + The functional form of the damping function is modified by adding an additional + zero-damping like power function. + Requires at least four parameters: *s8*, *a1*, *a2*, and *beta*. + The parameters *s6*, *s9*, and *alpha6* can be adjusted as well. + + All damping functions by default *include* the ATM three-body contributions, + it must be explicitly disabled by setting the *s9* value to zero. + """ + + _defaults = { + "name": "s-dftd3", + "scratch": False, + "thread_safe": True, + "thread_parallel": True, + "node_parallel": False, + "managed_memory": False, + } + version_cache: Dict[str, str] = {} + + class Config(ProgramHarness.Config): + pass + + @staticmethod + def found(raise_error: bool = False) -> bool: + """Check for the availability of the Python API of dftd3""" + + return which_import( + "dftd3", + return_bool=True, + raise_error=raise_error, + raise_msg="Please install a dftd3 version with enabled Python API" + + " (e.g. conda install dftd3-python -c conda-forge)", + ) + + def get_version(self) -> str: + """Return the currently used version of dftd3""" + self.found(raise_error=True) + + which_prog = which_import("dftd3") + if which_prog not in self.version_cache: + import dftd3 + + self.version_cache[which_prog] = safe_version(dftd3.__version__) + + return self.version_cache[which_prog] + + def compute(self, input_model: AtomicInput, config: TaskConfig) -> AtomicResult: + """ + Actual interface to the dftd3 package. The compute function is just a thin + wrapper around the native QCSchema interface of the dftd3 Python-API. + """ + self.found(raise_error=True) + if parse_version(self.get_version()) < parse_version("0.5.1"): + raise ResourceError("QCEngine's dftd3 wrapper requires version 0.5.1 or greater.") + + import dftd3 + from dftd3.qcschema import run_qcschema + + # strip engine hint + input_data = input_model.dict() + method = input_model.model.method + if method.startswith("d3-"): + method = method[3:] + input_data["model"]["method"] = method + qcvkey = method.upper() if method is not None else None + + # send `from_arrays` the s-dftd3 behavior of functional specification overrides explicit parameters specification + # * differs from dftd3 harness behavior where parameters extend or override functional + # * stash the resolved plan in extras or, if errored, leave it for the proper dftd3 api to reject + param_tweaks = None if method else input_model.keywords.get("params_tweaks", None) + try: + planinfo = from_arrays( + verbose=1, + name_hint=method, + level_hint=input_model.keywords.get("level_hint", None), + param_tweaks=param_tweaks, + dashcoeff_supplement=input_model.keywords.get("dashcoeff_supplement", None), + ) + except InputError: + pass + else: + input_data["extras"]["info"] = planinfo + + # strip dispersion level from method + for alias, d3 in get_dispersion_aliases().items(): + if d3.startswith("d3") and method.lower().endswith(alias): + method = method[: -(len(alias) + 1)] + input_data["model"]["method"] = method + + # consolidate dispersion level aliases + if input_model.keywords.pop("apply_qcengine_aliases", False): + level_hint = input_model.keywords.get("level_hint", None) + if level_hint: + level_hint = get_dispersion_aliases()[level_hint.lower()] + if level_hint.endswith("atm"): + level_hint = level_hint[:-3] + if level_hint.endswith("2b"): + level_hint = level_hint[:-2] + input_data["keywords"]["params_tweaks"] = {**planinfo["dashparams"], "s9": 0.0} + input_data["keywords"]["level_hint"] = level_hint + + input_model = AtomicInput(**input_data) + + # Run the Harness + output = run_qcschema(input_model) + + if "info" in output.extras: + qcvkey = output.extras["info"]["fctldash"].upper() + + calcinfo = {} + energy = output.properties.return_energy + calcinfo["CURRENT ENERGY"] = energy + calcinfo["DISPERSION CORRECTION ENERGY"] = energy + if qcvkey: + calcinfo[f"{qcvkey} DISPERSION CORRECTION ENERGY"] = energy + + if output.driver == "gradient": + gradient = output.return_result + calcinfo["CURRENT GRADIENT"] = gradient + calcinfo["DISPERSION CORRECTION GRADIENT"] = gradient + if qcvkey: + calcinfo[f"{qcvkey} DISPERSION CORRECTION GRADIENT"] = gradient + + if output.keywords.get("pair_resolved", False): + pw2 = output.extras["dftd3"]["additive pairwise energy"] + pw3 = output.extras["dftd3"]["non-additive pairwise energy"] + assert abs(pw2.sum() + pw3.sum() - energy) < 1.0e-8, f"{pw2.sum()} + {pw3.sum()} != {energy}" + calcinfo["2-BODY DISPERSION CORRECTION ENERGY"] = pw2.sum() + calcinfo["3-BODY DISPERSION CORRECTION ENERGY"] = pw3.sum() + calcinfo["2-BODY PAIRWISE DISPERSION CORRECTION ANALYSIS"] = pw2 + calcinfo["3-BODY PAIRWISE DISPERSION CORRECTION ANALYSIS"] = pw3 + + output.extras["qcvars"] = calcinfo + + return output diff -Nru qcengine-0.23.0/qcengine/programs/empirical_dispersion_resources.py qcengine-0.26.0/qcengine/programs/empirical_dispersion_resources.py --- qcengine-0.23.0/qcengine/programs/empirical_dispersion_resources.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/empirical_dispersion_resources.py 2022-11-30 16:26:08.000000000 +0000 @@ -2,6 +2,7 @@ import collections import copy +from typing import Dict, List, Optional, Union from ..exceptions import InputError @@ -44,9 +45,22 @@ "core-dsd-blyp": {"params": {"s6": 0.41, "alpha6": 60.0, "sr6": 1.1}}, }, }, - "d3zero": { + "d3zeroatm": { + "formal": "D3ATM", + "alias": [], + "description": " Grimme's -D3 (zero-damping) Dispersion Correction with ATM", + "citation": " Grimme S.; Antony J.; Ehrlich S.; Krieg H. (2010), J. Chem. Phys., 132: 154104\n", + "bibtex": "Grimme:2010:154104", + "default": collections.OrderedDict( + [("s6", 1.0), ("s8", 0.0), ("sr6", 1.0), ("alpha6", 14.0), ("sr8", 1.0), ("s9", 1.0)] + ), + "definitions": { + # D3 parameters loaded from d3zero2b and from authoritative source below and s9 parameter added + }, + }, + "d3zero2b": { "formal": "D3", - "alias": ["d3"], + "alias": ["d3", "d3zero", "d32b"], "description": " Grimme's -D3 (zero-damping) Dispersion Correction", "citation": " Grimme S.; Antony J.; Ehrlich S.; Krieg H. (2010), J. Chem. Phys., 132: 154104\n", "bibtex": "Grimme:2010:154104", @@ -348,9 +362,20 @@ "hf": {"params": {"s6": 1.0, "s8": 1.746, "sr6": 1.158, "alpha6": 14.0, "sr8": 1.000}}, }, }, - "d3bj": { - "formal": "D3(BJ)", + "d3bjatm": { + "formal": "D3(BJ)ATM", "alias": [], + "description": " Grimme's -D3 (BJ-damping) Dispersion Correction with ATM", + "citation": " Grimme S.; Ehrlich S.; Goerigk L. (2011), J. Comput. Chem., 32: 1456\n", + "bibtex": "Grimme:2011:1456", + "default": collections.OrderedDict([("s6", 1.0), ("s8", 1.0), ("a1", 0.0), ("a2", 1.0), ("s9", 1.0)]), + "definitions": { + # D3 parameters loaded from d3bj2b and from authoritative source below and s9 parameter added + }, + }, + "d3bj2b": { + "formal": "D3(BJ)", + "alias": ["d3bj"], "description": " Grimme's -D3 (BJ-damping) Dispersion Correction", "citation": " Grimme S.; Ehrlich S.; Goerigk L. (2011), J. Comput. Chem., 32: 1456\n", "bibtex": "Grimme:2011:1456", @@ -620,9 +645,21 @@ "core-dsd-blyp": {"params": {"s6": 0.500, "s8": 0.2130, "a1": 0.0000, "a2": 6.0519}}, }, }, - "d3mzero": { + "d3mzeroatm": { + "formal": "D3MATM", + "alias": [], + "description": " Grimme's -D3 (zero-damping, short-range refitted) Dispersion Correction with ATM", + "citation": " Grimme S.; Antony J.; Ehrlich S.; Krieg H. (2010), J. Chem. Phys., 132: 154104\n" + + " Smith, D. G. A.; Burns, L. A.; Patkowski, K.; Sherrill, C. D. (2016), J. Phys. Chem. Lett.; 7: 2197\n", + "bibtex": "Grimme:2010:154104", + "default": collections.OrderedDict([("s6", 1.0), ("s8", 1.0), ("sr6", 1.0), ("beta", 1.0), ("s9", 1.0)]), + "definitions": { + # D3 parameters loaded from d3mzero2b and from authoritative source below and s9 parameter added + }, + }, + "d3mzero2b": { "formal": "D3M", - "alias": ["d3m"], + "alias": ["d3m", "d3mzero", "d3m2b"], "description": " Grimme's -D3 (zero-damping, short-range refitted) Dispersion Correction", "citation": " Grimme S.; Antony J.; Ehrlich S.; Krieg H. (2010), J. Chem. Phys., 132: 154104\n" + " Smith, D. G. A.; Burns, L. A.; Patkowski, K.; Sherrill, C. D. (2016), J. Phys. Chem. Lett.; 7: 2197\n", @@ -641,9 +678,21 @@ "hf": {"params": {"s6": 1.000, "s8": 0.885517, "sr6": 1.383214, "beta": 0.075488}}, # JBS 01/2021 }, }, - "d3mbj": { - "formal": "D3M(BJ)", + "d3mbjatm": { + "formal": "D3M(BJ)ATM", "alias": [], + "description": " Grimme's -D3 (BJ-damping, short-range refitted) Dispersion Correction with ATM", + "citation": " Grimme S.; Ehrlich S.; Goerigk L. (2011), J. Comput. Chem., 32: 1456\n" + + " Smith, D. G. A.; Burns, L. A.; Patkowski, K.; Sherrill, C. D. (2016), J. Phys. Chem. Lett.; 7: 2197\n", + "bibtex": "Grimme:2011:1456", + "default": collections.OrderedDict([("s6", 1.0), ("s8", 1.0), ("a1", 1.0), ("a2", 1.0), ("s9", 1.0)]), + "definitions": { + # D3 parameters loaded from d3mbj2b and from authoritative source below and s9 parameter added + }, + }, + "d3mbj2b": { + "formal": "D3M(BJ)", + "alias": ["d3mbj"], "description": " Grimme's -D3 (BJ-damping, short-range refitted) Dispersion Correction", "citation": " Grimme S.; Ehrlich S.; Goerigk L. (2011), J. Comput. Chem., 32: 1456\n" + " Smith, D. G. A.; Burns, L. A.; Patkowski, K.; Sherrill, C. D. (2016), J. Phys. Chem. Lett.; 7: 2197\n", @@ -662,6 +711,35 @@ "hf": {"params": {"s6": 1.000, "s8": 0.713190, "a1": 0.079541, "a2": 3.627854}}, # JBS 01/2021 }, }, + "d3opatm": { + "formal": "D3(op)ATM", + "alias": [], + "description": " D3 dispersion correction with optimized power damping function with ATM. Based on rational damping function and additional zero-damping like power function.", + "citation": " S. Grimme, S. Ehrlich, and L. Goerigk., Comput. Chem., 32:1456–1465, 2011. doi:10.1002/jcc.21759.\n" + + " Jonathon Witte, Narbe Mardirossian, Jeffrey B Neaton, and Martin Head-Gordon., J. Chem. Theory Comput., 13(5):2043–2052, 2017. doi:10.1021/acs.jctc.7b00176.\n", + "bibtex": "Grimme:2011:1456", + "default": collections.OrderedDict( + [("s6", 1.0), ("s8", 1.0), ("a1", 1.0), ("a2", 1.0), ("beta", 0.0), ("s9", 1.0)] + ), + "definitions": { + # D3 parameters loaded from d3op2b and from authoritative source below and s9 parameter added + }, + }, + "d3op2b": { + "formal": "D3(op)", + "alias": ["d3op"], + "description": " D3 dispersion correction with optimized power damping function. Based on rational damping function and additional zero-damping like power function.", + "citation": " S. Grimme, S. Ehrlich, and L. Goerigk., Comput. Chem., 32:1456–1465, 2011. doi:10.1002/jcc.21759.\n" + + " Jonathon Witte, Narbe Mardirossian, Jeffrey B Neaton, and Martin Head-Gordon., J. Chem. Theory Comput., 13(5):2043–2052, 2017. doi:10.1021/acs.jctc.7b00176.\n", + "bibtex": "Grimme:2011:1456", + "default": collections.OrderedDict( + [("s6", 1.0), ("s8", 1.0), ("a1", 1.0), ("a2", 1.0), ("beta", 0.0)], + ), + "definitions": { + # will be loaded later + # From https://github.com/dftd3/simple-dftd3/blob/main/assets/parameters.toml + }, + }, "nl": { "formal": "NL", "alias": [], @@ -814,6 +892,15 @@ } +# for d3*atm, only skeleton entries with metadata defined above. below copies in parameters from d3*2b +for d in ["d3zero", "d3bj", "d3mzero", "d3mbj", "d3op"]: + for k, v in dashcoeff[d + "2b"]["definitions"].items(): + dashcoeff[d + "atm"]["definitions"][k] = copy.deepcopy(dashcoeff[d + "2b"]["definitions"][k]) + dashcoeff[d + "atm"]["definitions"][k]["params"][ + "s9" + ] = 1.0 # set twice: this one adds s9 to the params list for atm + + def _get_d4bj_definitions() -> dict: """DFTD4 provides access to damping parameters on per functional basis. But we want all of them. @@ -821,6 +908,8 @@ We let DFTD4 take care of finding and loading the parameter file, but to get all parameters, we implement the logic to read those parameters ourselves again. + + This method is upstreamed in dftd4 >3.3.0 and could be replaced in the future. """ try: @@ -880,6 +969,65 @@ dashcoeff["d4bjeeqatm"]["definitions"].update(_get_d4bj_definitions()) +try: + + def _get_d3_definitions(dashlevel: str) -> dict: + """ + Lucky for us dftd3 provides access to all damping parameters directly. + + However, we are not happy with the structure of the dict and + therefore do some restructuring. The below solution tries to bend + the data returned by dftd3 into the right shape to make qcng happy. + """ + + from dftd3.parameters import get_all_damping_params + + # The names here are the subset allowed by qcng with the names used in dftd3 + allowed = { + "bj": ["a1", "a2", "s6", "s8", "s9"], + "zero": ["rs6", "rs8", "alp", "s6", "s8", "s9"], + "mbj": ["a1", "a2", "s6", "s8", "s9"], + "mzero": ["rs6", "rs8", "alp", "s6", "s8", "bet", "s9"], + "op": ["a1", "a2", "s6", "s8", "bet", "s9"], + } + # mapping from dftd3 to qcng names, also, we have to reverse it later again + rename = { + "rs6": "sr6", + "rs8": "sr8", + "alp": "alpha6", + "bet": "beta", + } + + # FIXME: dict comprehension at its finest + # + # 1. insert an additional level each method + # 2. filter parameter names accepted by qcng + # 3. map from dftd3 to qcng names + # 4. return the whole mess + return { + key: { + "params": { + rename.get(param, param): value for param, value in params.items() if param in allowed[dashlevel] + } + } + for key, params in get_all_damping_params([dashlevel]).items() + } + + dashcoeff["d3bjatm"]["definitions"].update(_get_d3_definitions("bj")) + dashcoeff["d3zeroatm"]["definitions"].update(_get_d3_definitions("zero")) + dashcoeff["d3mbjatm"]["definitions"].update(_get_d3_definitions("mbj")) + dashcoeff["d3mzeroatm"]["definitions"].update(_get_d3_definitions("mzero")) + dashcoeff["d3opatm"]["definitions"].update(_get_d3_definitions("op")) + + for d in ["d3zero", "d3bj", "d3mzero", "d3mbj", "d3op"]: + for k, v in dashcoeff[d + "atm"]["definitions"].items(): + dashcoeff[d + "atm"]["definitions"][k]["params"][ + "s9" + ] = 1.0 # set twice: this one establishes 1.0 if upstream is still 0.0 (pre v0.7.0 simple-dftd3) + +except ModuleNotFoundError: + pass + def get_dispersion_aliases(): """Returns dict where keys are all (lowercased) strings that are @@ -897,7 +1045,13 @@ return alias -def from_arrays(name_hint=None, level_hint=None, param_tweaks=None, dashcoeff_supplement=None, verbose=1): +def from_arrays( + name_hint: Optional[str] = None, + level_hint: Optional[str] = None, + param_tweaks: Union[List[float], Dict[str, float]] = None, + dashcoeff_supplement: Optional[Dict[str, Dict]] = None, + verbose: int = 1, +): """Use the three paths of empirical dispersion parameter information (DFT functional, dispersion correction level, and particular parameters) to populate the parameter array and validate a @@ -905,27 +1059,27 @@ Parameters ---------- - name_hint : str, optional + name_hint Name of functional (func only, func & disp, or disp only) for which to compute dispersion (e.g., blyp, BLYP-D2, blyp-d3bj, blyp-d3(bj), hf+d). Any or all parameters initialized from `dashcoeff[dashlevel][functional-without-dashlevel]` or `dashcoeff_supplement[dashlevel][functional-with-dashlevel] can be overwritten via `param_tweaks`. - level_hint : str, optional + level_hint Name of dispersion correction to be applied (e.g., d, D2, d3(bj), das2010). Must be key in `dashcoeff` or "alias" or "formal" to one. - param_tweaks : list or dict, optional + param_tweaks Values for the same keys as `dashcoeff[dashlevel]['default']` (and same order if list) used to override any or all values initialized by `name_hint`. Extra parameters will error. - dashcoeff_supplement: dict, optional + dashcoeff_supplement Dictionary of the same structure as `dashcoeff` that contains in "definitions" field full functional names, rather than fctl less dashlvl. Used to validate dict_builder fctls with dispersion or identify disp level from just `name_hint`. - verbose : int, optional + verbose Amount of printing. Returns @@ -933,7 +1087,7 @@ dict Metadata defining dispersion calculation. - dashlevel : {'d1', 'd2', 'd3zero', 'd3bj', 'd3mzero', 'd3mbj', 'chg', 'das2009', 'das2010', 'nl', "d4bjeeqatm"} + dashlevel : {'d1', 'd2', 'd3zero2b', 'd3bj2b', 'd3mzero2b', 'd3mbj2b', 'd3op2b', 'd3zeroatm', 'd3bjatm', 'd3mzeroatm', 'd3mbjatm', 'd3opatm', 'chg', 'das2009', 'das2010', 'nl', "d4bjeeqatm"} Name (de-aliased, de-formalized, lowercase) of dispersion correction -- atom data, dispersion model, damping functional form -- to be applied. Resolved from `name_hint` and/or @@ -962,14 +1116,45 @@ * Function intended to be idempotent. """ + try: + # try/except block retrofits Psi4 for pre-2b/atm-split in dashcoeff + import psi4 + + if "d3bj" in psi4.procrouting.empirical_dispersion._engine_can_do["dftd3"]: + psi4.procrouting.empirical_dispersion._engine_can_do["dftd3"] = [ + "d2", + "d3zero2b", + "d3bj2b", + "d3mzero2b", + "d3mbj2b", + ] + for d in ["d3zero", "d3bj", "d3mzero", "d3mbj"]: + psi4.procrouting.empirical_dispersion._capable_engines_for_disp[ + d + "2b" + ] = psi4.procrouting.empirical_dispersion._capable_engines_for_disp.pop(d) + except ImportError: + pass + if verbose > 1: - print("dftd3.from_arrays HINTS:", name_hint, level_hint, param_tweaks, bool(dashcoeff_supplement)) + print( + "empirical_dispersion_resources.from_arrays HINTS:", + name_hint, + level_hint, + param_tweaks, + bool(dashcoeff_supplement), + ) # << 0 >> prep if dashcoeff_supplement is not None: supplement_dashlevel_lookup = {} - for disp, ddisp in dashcoeff_supplement.items(): + for disp, ddisp in dashcoeff_supplement.copy().items(): for func, params in ddisp["definitions"].items(): + try: + dashcoeff[disp] + except KeyError: + # try/except block accommodates dashcoeff_supplement from pre-2b/atm-split in dashcoeff + disp = get_dispersion_aliases()[disp] + dashcoeff_supplement[disp] = ddisp if params["params"].keys() != dashcoeff[disp]["default"].keys(): if verbose > 2: print( @@ -1142,7 +1327,7 @@ if verbose > 1: print( - f"dftd3.from_arrays RESOLVED: dashlevel={dashleveleff}, dashparams={disp_params}, fctldash={fctldasheff}, dashparams_citation={citeff}" + f"empirical_dispersion_resources.from_arrays RESOLVED: dashlevel={dashleveleff}, dashparams={disp_params}, fctldash={fctldasheff}, dashparams_citation={citeff}" ) return { diff -Nru qcengine-0.23.0/qcengine/programs/gamess/harvester.py qcengine-0.26.0/qcengine/programs/gamess/harvester.py --- qcengine-0.23.0/qcengine/programs/gamess/harvester.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/gamess/harvester.py 2022-11-30 16:26:08.000000000 +0000 @@ -248,8 +248,8 @@ ) if mobj: logger.debug("matched mp2 b") - qcvar["MP2 CORRELATION ENERGY"] = mobj.group(2) - qcvar["MP2 TOTAL ENERGY"] = mobj.group(3) + qcvar["ZAPT2 CORRELATION ENERGY"] = mobj.group(2) + qcvar["ZAPT2 TOTAL ENERGY"] = mobj.group(3) mobj = re.search( # fmt: off @@ -633,6 +633,10 @@ qcvar["CURRENT CORRELATION ENERGY"] = qcvar["MP2 CORRELATION ENERGY"] qcvar["CURRENT ENERGY"] = qcvar["MP2 TOTAL ENERGY"] + if "ZAPT2 TOTAL ENERGY" in qcvar and "ZAPT2 CORRELATION ENERGY" in qcvar: + qcvar["CURRENT CORRELATION ENERGY"] = qcvar["ZAPT2 CORRELATION ENERGY"] + qcvar["CURRENT ENERGY"] = qcvar["ZAPT2 TOTAL ENERGY"] + if "CISD TOTAL ENERGY" in qcvar and "CISD CORRELATION ENERGY" in qcvar: qcvar["CURRENT CORRELATION ENERGY"] = qcvar["CISD CORRELATION ENERGY"] qcvar["CURRENT ENERGY"] = qcvar["CISD TOTAL ENERGY"] @@ -664,6 +668,7 @@ if "DFT TOTAL ENERGY" in qcvar: qcvar["CURRENT REFERENCE ENERGY"] = qcvar["DFT TOTAL ENERGY"] qcvar["CURRENT ENERGY"] = qcvar["DFT TOTAL ENERGY"] + qcvar.pop("HF TOTAL ENERGY") if "FCI TOTAL ENERGY" in qcvar: # and 'FCI CORRELATION ENERGY' in qcvar: qcvar["CURRENT ENERGY"] = qcvar["FCI TOTAL ENERGY"] diff -Nru qcengine-0.23.0/qcengine/programs/model.py qcengine-0.26.0/qcengine/programs/model.py --- qcengine-0.23.0/qcengine/programs/model.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/model.py 2022-11-30 16:26:08.000000000 +0000 @@ -1,11 +1,12 @@ import abc import logging -from typing import Any, Dict, List, Optional, Tuple +from typing import Any, Dict, List, Optional, Tuple, Union from pydantic import BaseModel -from qcelemental.models import AtomicInput, AtomicResult +from qcelemental.models import AtomicInput, AtomicResult, FailedOperation from qcengine.exceptions import KnownErrorException +from qcengine.config import TaskConfig logger = logging.getLogger(__name__) @@ -29,7 +30,18 @@ super().__init__(**{**self._defaults, **kwargs}) @abc.abstractmethod - def compute(self, input_data: "AtomicInput", config: "TaskConfig") -> "AtomicResult": + def compute(self, input_data: AtomicInput, config: TaskConfig) -> Union[AtomicResult, FailedOperation]: + """Top-level compute method to be implemented for every ProgramHarness + + Note: + This method behave in any of the following ways: + 1. Return AtomicResult upon successful completion of a calculation + 2. Return FailedOperation object if an operation was unsuccessful or raised an exception. This is most + likely to occur if the underlying QC package has a QCSchema API that catches exceptions and + returns them as FailedOperation objects to end users. + 3. Raise an exception if a computation failed. The raised exception will be handled by the + qcng.compute() method and either raised or packaged as a FailedOperation object. + """ pass @staticmethod @@ -63,7 +75,7 @@ ## Computers def build_input( - self, input_model: "AtomicInput", config: "TaskConfig", template: Optional[str] = None + self, input_model: AtomicInput, config: TaskConfig, template: Optional[str] = None ) -> Dict[str, Any]: raise ValueError("build_input is not implemented for {}.", self.__class__) @@ -99,10 +111,10 @@ ``ErrorCorrectionProgramHarness`` and used to determine if/how to re-run the computation. """ - def _compute(self, input_data: AtomicInput, config: "TaskConfig") -> AtomicResult: + def _compute(self, input_data: AtomicInput, config: TaskConfig) -> AtomicResult: raise NotImplementedError() - def compute(self, input_data: AtomicInput, config: "TaskConfig") -> AtomicResult: + def compute(self, input_data: AtomicInput, config: TaskConfig) -> AtomicResult: # Get the error correction configuration error_policy = input_data.protocols.error_correction diff -Nru qcengine-0.23.0/qcengine/programs/mopac.py qcengine-0.26.0/qcengine/programs/mopac.py --- qcengine-0.23.0/qcengine/programs/mopac.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/mopac.py 2022-11-30 16:26:08.000000000 +0000 @@ -42,7 +42,10 @@ @staticmethod def found(raise_error: bool = False) -> bool: return which( - "mopac", return_bool=True, raise_error=raise_error, raise_msg="Please install via http://openmopac.net." + "mopac", + return_bool=True, + raise_error=raise_error, + raise_msg="Please install via `conda install -c conda-forge mopac`", ) def get_version(self) -> str: diff -Nru qcengine-0.23.0/qcengine/programs/mrchem.py qcengine-0.26.0/qcengine/programs/mrchem.py --- qcengine-0.23.0/qcengine/programs/mrchem.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/mrchem.py 2022-11-30 16:26:08.000000000 +0000 @@ -108,6 +108,7 @@ "model": input_model.model, "molecule": input_model.molecule, "driver": input_model.driver, + "extras": input_model.extras, } with temporary_directory(parent=parent, suffix="_mrchem_scratch") as tmpdir: @@ -155,16 +156,22 @@ # fill up extras: # * under "raw_output" the whole JSON output from MRChem # * under "properties" all the properties computed by MRChem - output_data["extras"] = { - "raw_output": mrchem_json, - "properties": { - f"{ks[1]}": {f"{ks[2]}": _nested_get(mrchem_output, ks)} for ks in computed_rsp_props - }, - } + output_data["extras"].update( + { + "raw_output": mrchem_json, + "properties": { + f"{ks[1]}": {f"{ks[2]}": _nested_get(mrchem_output, ks)} for ks in computed_rsp_props + }, + } + ) # fill up return_result if input_model.driver == "energy": output_data["return_result"] = mrchem_output["properties"]["scf_energy"]["E_tot"] + elif input_model.driver == "gradient": + output_data["return_result"] = mrchem_output["properties"]["geometric_derivative"]["geom-1"][ + "total" + ] elif input_model.driver == "properties": output_data["return_result"] = { f"{ks[1]}": {f"{ks[2]}": _nested_get(mrchem_output, ks)} for ks in computed_rsp_props @@ -213,6 +220,11 @@ opts["WaveFunction"]["method"] = input_model.model.method else: opts["WaveFunction"] = {"method": input_model.model.method} + + # The molecular gradient is just a first-order property for MRChem + if input_model.driver == "gradient": + opts.update({"Properties": {"geometric_derivative": True}}) + # Log the job settings as constructed from the input model logger.debug("JOB_OPTS from InputModel") logger.debug(pp.pformat(opts)) diff -Nru qcengine-0.23.0/qcengine/programs/nwchem/harvester.py qcengine-0.26.0/qcengine/programs/nwchem/harvester.py --- qcengine-0.23.0/qcengine/programs/nwchem/harvester.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/nwchem/harvester.py 2022-11-30 16:26:08.000000000 +0000 @@ -214,16 +214,17 @@ # fmt: off r'^\s+' + r'DFT energy' + r'\s+' + NUMBER + r'\s*' + r'^\s+' + r'Unscaled MP2 energy' + r'\s+' + NUMBER + r'\s*' + - r'^\s+' + r'Total DFT+MP2 energy' + r'\s+' + NUMBER + r'\s*$', + r'^\s+' + r'Total DFT\+MP2 energy' + r'\s+' + NUMBER + r'\s*$', # fmt: on outtext, re.MULTILINE, ) if mobj: logger.debug("matched dft-mp2") - psivar["DFT TOTAL ENERGY"] = mobj.group(1) - psivar["MP2 CORRELATION ENERGY"] = mobj.group(2) - psivar["MP2 TOTAL ENERGY"] = mobj.group(3) + psivar.pop("DFT TOTAL ENERGY") # remove previously defined DFT energy w/o DH contribution + psivar["DFT FUNCTIONAL TOTAL ENERGY"] = mobj.group(1) + psivar["CURRENT REFERENCE ENERGY"] = mobj.group(1) + psivar["DFT TOTAL ENERGY"] = mobj.group(3) # 3) MP2 with CCSD or CCSD(T) calculation (through CCSD(T) directive) mobj = re.search( @@ -1077,7 +1078,9 @@ psivar["CURRENT ENERGY"] = psivar["LCCSD TOTAL ENERGY"] if "DFT TOTAL ENERGY" in psivar: - psivar["CURRENT REFERENCE ENERGY"] = psivar["DFT TOTAL ENERGY"] + if "CURRENT REFERENCE ENERGY" not in psivar: + # already set for DH-DFT + psivar["CURRENT REFERENCE ENERGY"] = psivar["DFT TOTAL ENERGY"] psivar["CURRENT ENERGY"] = psivar["DFT TOTAL ENERGY"] # Process TCE CURRENT energies @@ -1092,6 +1095,10 @@ psivar["CURRENT CORRELATION ENERGY"] = psivar["CCD CORRELATION ENERGY"] psivar["CURRENT ENERGY"] = psivar["CCD TOTAL ENERGY"] + if "CC2 TOTAL ENERGY" in psivar and "CC2 CORRELATION ENERGY" in psivar: + psivar["CURRENT CORRELATION ENERGY"] = psivar["CC2 CORRELATION ENERGY"] + psivar["CURRENT ENERGY"] = psivar["CC2 TOTAL ENERGY"] + if "CCSD TOTAL ENERGY" in psivar and "CCSD CORRELATION ENERGY" in psivar: psivar["CURRENT CORRELATION ENERGY"] = psivar["CCSD CORRELATION ENERGY"] psivar["CURRENT ENERGY"] = psivar["CCSD TOTAL ENERGY"] @@ -1202,6 +1209,8 @@ # If present, align the gradients and hessian with the original molecular coordinates # NWChem rotates the coordinates of the input molecule. `calc_mol` contains the coordinates for the # rotated molecule, which we can use to determine how to rotate the gradients/hessian + # Beware the loose symmetrizer that can noticably change the input geometry. + # `geometry__autosym = 1d-4` tightens. return_mol = in_mol _, data = calc_mol.align(in_mol, atoms_map=True, verbose=0, mols_align=0.01) mill = data["mill"] diff -Nru qcengine-0.23.0/qcengine/programs/nwchem/runner.py qcengine-0.26.0/qcengine/programs/nwchem/runner.py --- qcengine-0.23.0/qcengine/programs/nwchem/runner.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/nwchem/runner.py 2022-11-30 16:26:08.000000000 +0000 @@ -2,10 +2,10 @@ Calls the NWChem executable. """ import copy +import hashlib import logging import pprint import re -import hashlib from decimal import Decimal from typing import Any, Dict, Optional, Tuple @@ -179,6 +179,10 @@ if opts.pop("geometry__noautoz", False): molcmd = re.sub(r"geometry ([^\n]*)", r"geometry \1 noautoz", molcmd) + # someday when minimum >=py38 `if val := opts.pop("geometry__autosym", False):` + if opts.get("geometry__autosym", False): + val = opts.pop("geometry__autosym") + molcmd = re.sub(r"geometry ([^\n]*)", rf"geometry \1 autosym {val}", molcmd) # Handle calc type and quantum chemical method mdccmd, mdcopts = muster_modelchem(input_model.model.method, input_model.driver, opts.pop("qc_module", False)) @@ -220,13 +224,14 @@ ) as tmpdir: restart = tmpdir.joinpath("nwchem.db").is_file() - # If computation is a restart, remove the input geometry - # It is not needed for restarts and restarts geometry optimization - # if you are using the NWChem Driver module - + # If computation is a restart and you are calling from the NWChem Driver module, remove the input geometry + # This will ensure the computation will pick up from the last geometry if restart: logger.info(f"Restarting from {tmpdir}") - nwchemrec["infiles"]["nwchem.nw"] = "echo\n" + optcmd + mdccmd + if input_model.extras.get("is_driver", False): + nwchemrec["infiles"]["nwchem.nw"] = "echo\n" + optcmd + mdccmd + else: + logger.warning(f"Existing files found in {tmpdir}. Your computation will restart") # For gradient methods, add a Python command to save the gradients in higher precision # Note: The Hessian is already stored in high precision in a file named "*.hess" diff -Nru qcengine-0.23.0/qcengine/programs/openmm.py qcengine-0.26.0/qcengine/programs/openmm.py --- qcengine-0.23.0/qcengine/programs/openmm.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/openmm.py 2022-11-30 16:26:08.000000000 +0000 @@ -297,7 +297,10 @@ context = openmm.Context(openmm_system, integrator, platform, properties) # Set positions from our Open Force Field `Molecule` - context.setPositions(off_mol.conformers[0]) + try: + context.setPositions(off_mol.conformers[0]) + except ValueError: + context.setPositions(off_mol.conformers[0].to_openmm()) # Compute the energy of the configuration state = context.getState(getEnergy=True) diff -Nru qcengine-0.23.0/qcengine/programs/psi4.py qcengine-0.26.0/qcengine/programs/psi4.py --- qcengine-0.23.0/qcengine/programs/psi4.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/psi4.py 2022-11-30 16:26:08.000000000 +0000 @@ -108,7 +108,7 @@ error_message = output_data["error"]["error_message"] error_type = output_data["error"].get("error_type", "unknown_error") else: - error_message = "Unknown error, error message is not found" + error_message = "Unknown error, error message is not found, possibly segfaulted" error_type = "internal_error" return error_message, error_type diff -Nru qcengine-0.23.0/qcengine/programs/terachem_frontend.py qcengine-0.26.0/qcengine/programs/terachem_frontend.py --- qcengine-0.23.0/qcengine/programs/terachem_frontend.py 1970-01-01 00:00:00.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/terachem_frontend.py 2022-11-30 16:26:08.000000000 +0000 @@ -0,0 +1,31 @@ +"""Harness for TeraChem Frontend""" +import logging +from os import getenv +from typing import Any, Dict + +from .terachem_pbs import TeraChemPBSHarness, _pbs_defaults + +logger = logging.getLogger(__name__) + +_fe_defaults = { + "name": "terachem_fe", +} + + +class TeraChemFrontEndHarness(TeraChemPBSHarness): + """QCEngine Harness for interfacing with the TeraChem Frontend (Protocol Buffer Server + file server)""" + + _defaults = {**_pbs_defaults, **_fe_defaults} + _tcpb_min_version = "0.9.0" + _tcpb_client = "TCFrontEndClient" + _env_vars: Dict[str, Any] = { + **TeraChemPBSHarness._env_vars, + **{ + "frontend_host": getenv("TERACHEM_FE_HOST", "127.0.0.1"), + "frontend_port": int(getenv("TERACHEM_FE_PORT", 80)), + "uploads_prefix": getenv("TERACHEM_FE_UPLOADS_PREFIX", "uploads"), + }, + } + _env_vars_external: str = ( + TeraChemPBSHarness._env_vars_external + " and/or TERACHEM_FE_HOST, TERACHEM_FE_PORT, TERACHEM_FE_UPLOADS_PREFIX" + ) diff -Nru qcengine-0.23.0/qcengine/programs/terachem_pbs.py qcengine-0.26.0/qcengine/programs/terachem_pbs.py --- qcengine-0.23.0/qcengine/programs/terachem_pbs.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/terachem_pbs.py 2022-11-30 16:26:08.000000000 +0000 @@ -2,10 +2,11 @@ Calls TeraChem in its "server mode" via a protobuf interface. """ import logging -import os -from typing import TYPE_CHECKING +from importlib import import_module +from os import getenv +from typing import TYPE_CHECKING, Any, Dict, Union -from qcelemental.models import AtomicResult +from qcelemental.models import AtomicResult, FailedOperation from qcelemental.util import which_import from .model import ProgramHarness @@ -17,23 +18,34 @@ logger = logging.getLogger(__name__) +_pbs_defaults = { + "name": "terachem_pbs", + "scratch": False, + "thread_safe": False, + "thread_parallel": False, + "node_parallel": False, + "managed_memory": True, +} + class TeraChemPBSHarness(ProgramHarness): + """QCEngine Harness for interfacing with the TeraChem running in Protocol Buffer Server Mode""" - _defaults = { - "name": "terachem_pbs", - "scratch": False, - "thread_safe": False, - "thread_parallel": False, - "node_parallel": False, - "managed_memory": True, + _defaults = _pbs_defaults + _tcpb_package: str = "tcpb" + _tcpb_min_version: str = "0.7.0" + _tcpb_client: str = "TCProtobufClient" + _env_vars: Dict[str, Any] = { + "host": getenv("TERACHEM_PBS_HOST", "127.0.0.1"), + "port": int(getenv("TERACHEM_PBS_PORT", 11111)), } + _env_vars_external: str = "TERACHEM_PBS_HOST, TERACHEM_PBS_PORT" class Config(ProgramHarness.Config): pass - @staticmethod - def found(raise_error: bool = False) -> bool: + @classmethod + def found(cls, raise_error: bool = False) -> bool: """Whether TeraChemPBS harness is ready for operation. Parameters ---------- @@ -47,32 +59,23 @@ If raise_error is True and tcpb package missing and/or server us unavailable, the error message is raised. """ tcpb_pkg_available = which_import( - "tcpb", + cls._tcpb_package, return_bool=True, raise_error=raise_error, - raise_msg="TeraChem protobuf client package (tcpb) not found. Please install tcpb>=0.7.0.", + raise_msg=f"TeraChem protobuf client package (tcpb) not found. Please install tcpb>={cls._tcpb_min_version}.", ) if not tcpb_pkg_available: return False - from tcpb.exceptions import ServerError - from tcpb.tcpb import TCProtobufClient + tcpb = import_module(f"{cls._tcpb_package}") try: - with TCProtobufClient( - host=os.getenv("TERACHEM_PBS_HOST"), port=int(os.getenv("TERACHEM_PBS_PORT")) - ) as client: + with getattr(tcpb, cls._tcpb_client)(**cls._env_vars) as client: return client.is_available() - except TypeError as e: - # TERACHEM_PBS_HOST/PORT environment variables unset - msg = "Environment variables 'TERACHEM_PBS_HOST' and 'TERACHEM_PBS_PORT' must be set!" - logger.error(msg) - if raise_error: - raise ValueError(msg) from e - except ServerError as e: + except tcpb.exceptions.ServerError as e: msg = ( - f"Unable to connect to TeraChem server at " - f"{os.getenv('TERACHEM_PBS_HOST')}:{os.getenv('TERACHEM_PBS_PORT')}" + f"Unable to connect to TeraChem server at {cls._env_vars}. If you want to connect to a server elsewhere, consider " + f"setting environment variables {cls._env_vars_external}." ) logger.error(msg) if raise_error: @@ -82,7 +85,7 @@ def get_version(self) -> str: """Returns version of TeraChem Protocol Buffer Server""" try: - import tcpb + tcpb = import_module(self._tcpb_package) except ModuleNotFoundError: return None else: @@ -91,13 +94,15 @@ except AttributeError: return None - def compute(self, input_model: "AtomicInput", config: "TaskConfig" = None) -> "AtomicResult": + def compute( + self, input_model: "AtomicInput", config: "TaskConfig" = None + ) -> Union["AtomicResult", "FailedOperation"]: """ Submit AtomicInput to TeraChem running in "server mode" """ self.found(raise_error=True) - from tcpb.tcpb import TCProtobufClient + tcpb = import_module(self._tcpb_package) - with TCProtobufClient(host=os.getenv("TERACHEM_PBS_HOST"), port=int(os.getenv("TERACHEM_PBS_PORT"))) as client: + with getattr(tcpb, self._tcpb_client)(**self._env_vars) as client: return client.compute(input_model) diff -Nru qcengine-0.23.0/qcengine/programs/tests/standard_suite_contracts.py qcengine-0.26.0/qcengine/programs/tests/standard_suite_contracts.py --- qcengine-0.23.0/qcengine/programs/tests/standard_suite_contracts.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/standard_suite_contracts.py 2022-11-30 16:26:08.000000000 +0000 @@ -1,6 +1,57 @@ # This file consolidates the expectations of what properties/QCVariables # a method should produce and what in practice a QC program does produce. +__all__ = [ + "contractual_current", + "contractual_hf", + "contractual_mp2", + "contractual_mp2p5", + "contractual_mp3", + "contractual_mp4_prsdq_pr", + "contractual_mp4", + "contractual_zapt2", + "contractual_cisd", + "contractual_qcisd", + "contractual_qcisd_prt_pr", + "contractual_fci", + "contractual_remp2", + "contractual_lccd", + "contractual_lccsd", + "contractual_cepa_pr1_pr", + "contractual_cepa_pr3_pr", + "contractual_acpf", + "contractual_aqcc", + "contractual_ccd", + "contractual_bccd", + "contractual_cc2", + "contractual_ccsd", + "contractual_ccsdpt_prccsd_pr", + "contractual_ccsd_prt_pr", + "contractual_accsd_prt_pr", + "contractual_bccd_prt_pr", + "contractual_cc3", + "contractual_ccsdt", + "contractual_ccsdt1a", + "contractual_ccsdt1b", + "contractual_ccsdt2", + "contractual_ccsdt3", + "contractual_ccsdt_prq_pr", + "contractual_ccsdtq", + "contractual_omp2", + "contractual_omp2p5", + "contractual_omp3", + "contractual_oremp2", + "contractual_olccd", + "contractual_occd", + "contractual_occd_prt_pr", + "contractual_aoccd_prt_pr", + "contractual_dft_current", + "contractual_dhdft_current", + "query_qcvar", + "query_has_qcvar", +] + + from typing import Any, Tuple from qcengine.programs.qcvar_identities_resources import qcvars_to_atomicproperties @@ -80,7 +131,7 @@ def contractual_current( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Given the target method, returns the CURRENT QCVariables that should be produced. @@ -107,7 +158,7 @@ def contractual_hf( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal HF should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -132,7 +183,7 @@ def contractual_mp2( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal MP2 should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -187,14 +238,39 @@ qc_module == "psi4-occ" and reference == "rhf" and corl_type in ["df", "cd"] - and method in ["mp2", "mp2.5", "mp3", "lccd", "ccsd", "ccsd(t)"] + and method + in [ + "mp2", + "mp2.5", + "mp3", + "remp2", + "lccd", + "ccd", + "ccsd", + "ccsd(t)", + "a-ccsd(t)", + "omp2", + "omp2.5", + "omp3", + "oremp2", + "olccd", + "occd", + "occd(t)", + "a-occd(t)", + ] + ) + or ( + qc_module == "psi4-mrcc" + and reference in ["rhf", "uhf"] + and method + in ["ccsd", "ccsd(t)", "a-ccsd(t)", "cc3", "ccsdt-1a", "ccsdt-1b", "ccsdt-3", "ccsdt"] ) ) and pv in ["MP2 SAME-SPIN CORRELATION ENERGY", "MP2 OPPOSITE-SPIN CORRELATION ENERGY"] ) or ( ( - (qc_module == "psi4-detci" and method in ["mp2", "mp3"]) + (qc_module == "psi4-detci" and method in ["mp2", "mp3", "mp4"]) or ( qc_module == "qchem" and method == "mp2" ) # for structured -- can probably get these from parsing @@ -208,7 +284,14 @@ ] ) or ( - ((qc_module == "psi4-occ" and reference == "rohf" and method in ["olccd"])) + ( + ( + qc_module == "psi4-occ" + and reference == "rohf" + and corl_type == "conv" + and method in ["omp2", "omp2.5", "omp3", "oremp2", "olccd"] + ) + ) and pv in [ "MP2 CORRELATION ENERGY", @@ -218,18 +301,27 @@ ) or ( ( - (qc_module == "psi4-ccenergy" and reference == "rohf" and method == "ccsd") + (qc_module == "psi4-ccenergy" and reference == "rohf" and method == "ccsd" and sdsc == "sd") + # next two are an evasion as possibly collectable + or (qc_module == "cfour-vcc" and reference in ["rhf", "uhf"] and method == "bccd") + or (qc_module == "cfour-vcc" and reference in ["rhf"] and method == "bccd(t)") or ( qc_module == "nwchem-tce" - and method in ["qcisd", "lccd", "lccsd", "ccd", "ccsd", "ccsd+t(ccsd)", "ccsd(t)", "ccsdt"] + and method + in ["qcisd", "lccd", "lccsd", "ccd", "cc2", "ccsd", "ccsd+t(ccsd)", "ccsd(t)", "ccsdt"] ) or (qc_module == "gamess" and reference == "rohf" and method == "ccsd") or ( qc_module.startswith("cfour") and reference == "rohf" - and fcae == "fc" and method in ["lccsd", "ccd", "ccsd", "ccsd(t)", "ccsdt"] + and sdsc == "sd" ) # this is a cop out as c4 perfectly able to produce good rohf mp2 but not with same orbitals as ref definition on ccsd + or ( + qc_module == "psi4-mrcc" + and reference in ["rohf"] + and method in ["ccsd", "ccsd(t)", "a-ccsd(t)", "ccsdt"] + ) ) and pv in [ @@ -251,7 +343,7 @@ def contractual_mp2p5( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal MP2.5 should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -282,13 +374,22 @@ qc_module == "psi4-occ" and reference == "rhf" and corl_type in ["df", "cd"] - and method in ["mp2.5", "mp3"] + and method in ["mp2.5", "mp3", "omp2.5"] ) or (qc_module.startswith("nwchem") and method in ["mp3", "mp4"]) ) and pv in ["MP2.5 SAME-SPIN CORRELATION ENERGY", "MP2.5 OPPOSITE-SPIN CORRELATION ENERGY"] ) or ( - (qc_module == "psi4-detci" and method in ["mp3"]) + ( + (qc_module == "psi4-detci" and method in ["mp3", "mp4"]) + or ( + qc_module == "psi4-occ" + and reference == "rohf" + and corl_type in ["conv", "df", "cd"] + and method in ["omp2.5", "omp3"] + ) + ) + # Note SS/OS might be obtainable but no reference to verify and pv in [ "MP2.5 CORRELATION ENERGY", @@ -305,7 +406,7 @@ def contractual_mp3( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal MP3 should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -331,25 +432,48 @@ expected = True if ( ( - (qc_module.startswith("cfour") and method in ["mp3", "mp4(sdq)", "mp4"]) - or ( - qc_module == "psi4-occ" - and reference == "rhf" - and corl_type in ["df", "cd"] - and method in ["mp2.5", "mp3"] + ( + (qc_module.startswith("cfour") and method in ["mp3", "mp4(sdq)", "mp4"]) + or ( + qc_module == "psi4-occ" + and reference == "rhf" + and corl_type in ["df", "cd"] + and method in ["mp2.5", "mp3", "omp2.5", "omp3"] + ) + or (qc_module.startswith("nwchem") and method in ["mp3", "mp4"]) ) - or (qc_module.startswith("nwchem") and method in ["mp3", "mp4"]) + and pv in ["MP3 SAME-SPIN CORRELATION ENERGY", "MP3 OPPOSITE-SPIN CORRELATION ENERGY"] + ) + or ( + ((qc_module == "psi4-detci" and method in ["mp3", "mp4"])) + and pv + in [ + "MP3 SAME-SPIN CORRELATION ENERGY", + "MP3 OPPOSITE-SPIN CORRELATION ENERGY", + "MP3 SINGLES ENERGY", + "MP3 DOUBLES ENERGY", + ] + ) + or ( + ( + ( + qc_module == "psi4-occ" + and reference == "rohf" + and corl_type in ["conv", "df", "cd"] + and method in ["omp2.5", "omp3"] + ) + ) + # Note SS/OS might be obtainable but no reference to verify + and pv + in [ + "MP3 CORRELATION ENERGY", + "MP3 TOTAL ENERGY", + "MP3 SAME-SPIN CORRELATION ENERGY", + "MP3 SINGLES ENERGY", + "MP3 DOUBLES ENERGY", + "MP3 OPPOSITE-SPIN CORRELATION ENERGY", + ] ) - and pv in ["MP3 SAME-SPIN CORRELATION ENERGY", "MP3 OPPOSITE-SPIN CORRELATION ENERGY"] - ) or ( - ((qc_module == "psi4-detci" and method == "mp3")) - and pv - in [ - "MP3 SAME-SPIN CORRELATION ENERGY", - "MP3 OPPOSITE-SPIN CORRELATION ENERGY", - "MP3 SINGLES ENERGY", - "MP3 DOUBLES ENERGY", - ] ): expected = False @@ -357,7 +481,7 @@ def contractual_mp4_prsdq_pr( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal MP4(SDQ) should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -377,17 +501,17 @@ for pv in contractual_qcvars: expected = True - if (qc_module.startswith("nwchem") and method == "mp4") and pv in [ - "MP4(SDQ) TOTAL ENERGY", - "MP4(SDQ) CORRELATION ENERGY", - ]: + if ( + (qc_module.startswith("psi4-detci") and method == "mp4") + or (qc_module.startswith("nwchem") and method == "mp4") + ) and pv in ["MP4(SDQ) TOTAL ENERGY", "MP4(SDQ) CORRELATION ENERGY"]: expected = False yield (pv, pv, expected) def contractual_mp4( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal MP4 should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -409,14 +533,42 @@ for pv in contractual_qcvars: expected = True - if (qc_module.startswith("nwchem") and method == "mp4") and pv in ["MP4(T) CORRECTION ENERGY"]: + if ( + (qc_module.startswith("psi4-detci") and method == "mp4") + or (qc_module.startswith("nwchem") and method == "mp4") + ) and pv in ["MP4(T) CORRECTION ENERGY"]: expected = False yield (pv, pv, expected) +def contractual_zapt2( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + f"""Of the list of QCVariables an ideal ZAPT2 should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "ZAPT2 CORRELATION ENERGY", + "ZAPT2 TOTAL ENERGY", + ] + if driver == "gradient" and method == "zapt2": + contractual_qcvars.append("ZAPT2 TOTAL GRADIENT") + elif driver == "hessian" and method == "zapt2": + # contractual_qcvars.append("ZAPT2 TOTAL GRADIENT") + contractual_qcvars.append("ZAPT2 TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + + yield (pv, pv, expected) + + def contractual_cisd( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal CISD should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -441,7 +593,7 @@ def contractual_qcisd( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal QCISD should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -466,7 +618,7 @@ def contractual_qcisd_prt_pr( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal QCISD(T) should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -492,7 +644,7 @@ def contractual_fci( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal FCI should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -516,8 +668,58 @@ yield (pv, pv, expected) +def contractual_remp2( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + f"""Of the list of QCVariables an ideal REMP2 should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "REMP2 CORRELATION ENERGY", + "REMP2 TOTAL ENERGY", + "REMP2 SAME-SPIN CORRELATION ENERGY", + "REMP2 SINGLES ENERGY", + "REMP2 DOUBLES ENERGY", + "REMP2 OPPOSITE-SPIN CORRELATION ENERGY", + ] + if driver == "gradient" and method == "remp2": + contractual_qcvars.append("REMP2 TOTAL GRADIENT") + elif driver == "hessian" and method == "remp2": + # contractual_qcvars.append("REMP2 TOTAL GRADIENT") + contractual_qcvars.append("REMP2 TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if ( + ((qc_module == "psi4-occ" and reference == "rhf" and corl_type in ["df", "cd"] and method == "remp2")) + and pv in ["REMP2 SAME-SPIN CORRELATION ENERGY", "REMP2 OPPOSITE-SPIN CORRELATION ENERGY"] + ) or ( + ( + qc_module == "psi4-occ" + and reference in ["rhf", "uhf", "rohf"] + and corl_type in ["conv", "df", "cd"] + and method == "oremp2" + ) + and pv + in [ + "REMP2 CORRELATION ENERGY", + "REMP2 TOTAL ENERGY", + "REMP2 SAME-SPIN CORRELATION ENERGY", + "REMP2 SINGLES ENERGY", + "REMP2 DOUBLES ENERGY", + "REMP2 OPPOSITE-SPIN CORRELATION ENERGY", + ] + ): + expected = False + + yield (pv, pv, expected) + + def contractual_lccd( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal LCCD should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -543,21 +745,41 @@ expected = True if ( ( - (qc_module == "psi4-occ" and reference == "rhf" and corl_type in ["df", "cd"] and method == "lccd") - or (qc_module == "cfour-ncc" and reference in ["rhf"] and method == "lccd") - or (qc_module == "nwchem-tce" and reference in ["rhf", "uhf"] and method == "lccd") - or (qc_module == "gamess" and reference in ["rhf"] and method == "lccd") + ( + (qc_module == "psi4-occ" and reference == "rhf" and corl_type in ["df", "cd"] and method == "lccd") + or (qc_module == "cfour-ncc" and reference in ["rhf"] and method == "lccd") + or (qc_module == "nwchem-tce" and reference in ["rhf", "uhf"] and method == "lccd") + or (qc_module == "gamess" and reference in ["rhf"] and method == "lccd") + ) + and pv in ["LCCD SAME-SPIN CORRELATION ENERGY", "LCCD OPPOSITE-SPIN CORRELATION ENERGY"] + ) + or ( + (qc_module == "nwchem-tce" and reference in ["rohf"] and method in ["lccd"]) + and pv + in [ + "LCCD SAME-SPIN CORRELATION ENERGY", + "LCCD OPPOSITE-SPIN CORRELATION ENERGY", + "LCCD SINGLES ENERGY", + "LCCD DOUBLES ENERGY", + ] + ) + or ( + ( + qc_module == "psi4-occ" + and reference in ["rhf", "uhf", "rohf"] + and corl_type in ["conv", "df", "cd"] + and method == "olccd" + ) + and pv + in [ + "LCCD CORRELATION ENERGY", + "LCCD TOTAL ENERGY", + "LCCD SAME-SPIN CORRELATION ENERGY", + "LCCD SINGLES ENERGY", + "LCCD DOUBLES ENERGY", + "LCCD OPPOSITE-SPIN CORRELATION ENERGY", + ] ) - and pv in ["LCCD SAME-SPIN CORRELATION ENERGY", "LCCD OPPOSITE-SPIN CORRELATION ENERGY"] - ) or ( - (qc_module == "nwchem-tce" and reference in ["rohf"] and method in ["lccd"]) - and pv - in [ - "LCCD SAME-SPIN CORRELATION ENERGY", - "LCCD OPPOSITE-SPIN CORRELATION ENERGY", - "LCCD SINGLES ENERGY", - "LCCD DOUBLES ENERGY", - ] ): expected = False @@ -565,7 +787,7 @@ def contractual_lccsd( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal LCCSD should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -590,16 +812,164 @@ for pv in contractual_qcvars: expected = True if ( - (qc_module == "cfour-ncc" and reference in ["rhf"] and method == "lccsd") - or (qc_module == "nwchem-tce" and reference in ["rhf", "uhf"] and method == "lccsd") - ) and pv in ["LCCSD SAME-SPIN CORRELATION ENERGY", "LCCSD OPPOSITE-SPIN CORRELATION ENERGY"]: + ( + ( + (qc_module == "cfour-ncc" and reference in ["rhf"] and method == "lccsd") + or (qc_module == "nwchem-tce" and reference in ["rhf", "uhf"] and method == "lccsd") + ) + and pv in ["LCCSD SAME-SPIN CORRELATION ENERGY", "LCCSD OPPOSITE-SPIN CORRELATION ENERGY"] + ) + or ( + (qc_module == "cfour-vcc" and reference in ["rohf"] and method in ["lccsd"]) + and pv + in [ + "LCCSD SAME-SPIN CORRELATION ENERGY", + "LCCSD SINGLES ENERGY", + "LCCSD DOUBLES ENERGY", + ] + ) + or ( + (qc_module == "nwchem-tce" and reference in ["rohf"] and method in ["lccsd"]) + and pv + in [ + "LCCSD SAME-SPIN CORRELATION ENERGY", + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY", + "LCCSD SINGLES ENERGY", + "LCCSD DOUBLES ENERGY", + ] + ) + ): + expected = False + + yield (pv, pv, expected) + + +def contractual_cepa_pr1_pr( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + f"""Of the list of QCVariables an ideal CEPA(1) should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "CEPA(1) CORRELATION ENERGY", + "CEPA(1) TOTAL ENERGY", + "CEPA(1) SAME-SPIN CORRELATION ENERGY", + "CEPA(1) SINGLES ENERGY", + "CEPA(1) DOUBLES ENERGY", + "CEPA(1) OPPOSITE-SPIN CORRELATION ENERGY", + ] + if driver == "gradient" and method == "cepa(1)": + contractual_qcvars.append("CEPA(1) TOTAL GRADIENT") + elif driver == "hessian" and method == "cepa(1)": + # contractual_qcvars.append("CEPA(1) TOTAL GRADIENT") + contractual_qcvars.append("CEPA(1) TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if (False) and pv in ["CEPA(1) SAME-SPIN CORRELATION ENERGY", "CEPA(1) OPPOSITE-SPIN CORRELATION ENERGY"]: + expected = False + + yield (pv, pv, expected) + + +def contractual_cepa_pr3_pr( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + f"""Of the list of QCVariables an ideal CEPA(3) should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "CEPA(3) CORRELATION ENERGY", + "CEPA(3) TOTAL ENERGY", + "CEPA(3) SAME-SPIN CORRELATION ENERGY", + "CEPA(3) SINGLES ENERGY", + "CEPA(3) DOUBLES ENERGY", + "CEPA(3) OPPOSITE-SPIN CORRELATION ENERGY", + ] + if driver == "gradient" and method == "cepa(3)": + contractual_qcvars.append("CEPA(3) TOTAL GRADIENT") + elif driver == "hessian" and method == "cepa(3)": + # contractual_qcvars.append("CEPA(3) TOTAL GRADIENT") + contractual_qcvars.append("CEPA(3) TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if (False) and pv in ["CEPA(3) SAME-SPIN CORRELATION ENERGY", "CEPA(3) OPPOSITE-SPIN CORRELATION ENERGY"]: + expected = False + + yield (pv, pv, expected) + + +def contractual_acpf( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + f"""Of the list of QCVariables an ideal ACPF should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "ACPF CORRELATION ENERGY", + "ACPF TOTAL ENERGY", + "ACPF SAME-SPIN CORRELATION ENERGY", + "ACPF SINGLES ENERGY", + "ACPF DOUBLES ENERGY", + "ACPF OPPOSITE-SPIN CORRELATION ENERGY", + ] + if driver == "gradient" and method == "acpf": + contractual_qcvars.append("ACPF TOTAL GRADIENT") + elif driver == "hessian" and method == "acpf": + # contractual_qcvars.append("ACPF TOTAL GRADIENT") + contractual_qcvars.append("ACPF TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if (False) and pv in ["ACPF SAME-SPIN CORRELATION ENERGY", "ACPF OPPOSITE-SPIN CORRELATION ENERGY"]: + expected = False + + yield (pv, pv, expected) + + +def contractual_aqcc( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + f"""Of the list of QCVariables an ideal AQCC should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "AQCC CORRELATION ENERGY", + "AQCC TOTAL ENERGY", + "AQCC SAME-SPIN CORRELATION ENERGY", + "AQCC SINGLES ENERGY", + "AQCC DOUBLES ENERGY", + "AQCC OPPOSITE-SPIN CORRELATION ENERGY", + ] + if driver == "gradient" and method == "aqcc": + contractual_qcvars.append("AQCC TOTAL GRADIENT") + elif driver == "hessian" and method == "aqcc": + # contractual_qcvars.append("AQCC TOTAL GRADIENT") + contractual_qcvars.append("AQCC TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if (False) and pv in ["AQCC SAME-SPIN CORRELATION ENERGY", "AQCC OPPOSITE-SPIN CORRELATION ENERGY"]: expected = False yield (pv, pv, expected) def contractual_ccd( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal CCD should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -629,6 +999,7 @@ or (qc_module == "cfour-ncc" and reference in ["rhf"] and method == "ccd") or (qc_module == "nwchem-tce" and reference in ["rhf", "uhf"] and method == "ccd") or (qc_module == "gamess" and reference in ["rhf"] and method == "ccd") + or (qc_module == "psi4-occ" and reference in ["rhf", "uhf"] and method == "ccd") ) and pv in ["CCD SAME-SPIN CORRELATION ENERGY", "CCD OPPOSITE-SPIN CORRELATION ENERGY"] ) or ( @@ -649,8 +1020,60 @@ yield (pv, pv, expected) +def contractual_bccd( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal BCCD should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "BCCD CORRELATION ENERGY", + "BCCD TOTAL ENERGY", + ] + if driver == "gradient" and method == "bccd": + contractual_qcvars.append("BCCD TOTAL GRADIENT") + elif driver == "hessian" and method == "bccd": + # contractual_qcvars.append("BCCD TOTAL GRADIENT") + contractual_qcvars.append("BCCD TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if False: + expected = False + + yield (pv, pv, expected) + + +def contractual_cc2( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal CC2 should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "CC2 CORRELATION ENERGY", + "CC2 TOTAL ENERGY", + ] + if driver == "gradient" and method == "cc2": + contractual_qcvars.append("CC2 TOTAL GRADIENT") + elif driver == "hessian" and method == "cc2": + # contractual_qcvars.append("CC2 TOTAL GRADIENT") + contractual_qcvars.append("CC2 TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + + yield (pv, pv, expected) + + def contractual_ccsd( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal CCSD should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -690,11 +1113,16 @@ ) or ( qc_module == "psi4-occ" - and reference == "rhf" + and reference in ["rhf", "uhf"] and corl_type in ["df", "cd"] - and method in ["ccsd", "ccsd(t)"] + and method in ["ccsd", "ccsd(t)", "a-ccsd(t)"] ) or (qc_module in ["cfour-vcc"] and reference in ["rhf", "uhf"] and method in ["ccsd+t(ccsd)"]) + or ( + qc_module == "psi4-mrcc" + and reference in ["rhf", "uhf"] + and method in ["ccsd", "ccsd(t)", "a-ccsd(t)"] + ) ) and pv in ["CCSD SAME-SPIN CORRELATION ENERGY", "CCSD OPPOSITE-SPIN CORRELATION ENERGY"] ) @@ -720,6 +1148,11 @@ ( (qc_module == "gamess" and reference in ["rohf"] and method == "ccsd") or (qc_module == "nwchem-tce" and reference in ["rohf"] and method in ["ccsd", "ccsd(t)"]) + or ( + qc_module == "psi4-mrcc" + and reference in ["rohf"] + and method in ["ccsd", "ccsd(t)", "a-ccsd(t)"] + ) ) and pv in [ @@ -730,7 +1163,7 @@ ] ) or ( - (False) + ((qc_module == "cfour-vcc" and method in ["bccd", "bccd(t)"])) and pv in [ "CCSD CORRELATION ENERGY", @@ -750,7 +1183,7 @@ def contractual_ccsdpt_prccsd_pr( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal CCSD+T(CCSD) (aka CCSD[T]) should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -778,7 +1211,7 @@ def contractual_ccsd_prt_pr( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal CCSD(T) should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -800,14 +1233,20 @@ for pv in contractual_qcvars: # print("WW", qc_module, driver, reference, method, corl_type, fcae, pv) expected = True - if False: + if ( + (qc_module == "psi4-ccenergy" and method == "bccd(t)") or (qc_module == "cfour-vcc" and method == "bccd(t)") + ) and pv in [ + "(T) CORRECTION ENERGY", + "CCSD(T) CORRELATION ENERGY", + "CCSD(T) TOTAL ENERGY", + ]: expected = False yield (pv, pv, expected) def contractual_accsd_prt_pr( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal A-CCSD(T) (aka Lambda-CCSD(T), aka CCSD(aT) should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -834,8 +1273,61 @@ yield (pv, pv, expected) +def contractual_bccd_prt_pr( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal BCCD(T) should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "B(T) CORRECTION ENERGY", + "BCCD(T) CORRELATION ENERGY", + "BCCD(T) TOTAL ENERGY", + ] + if driver == "gradient" and method == "bccd(t)": + contractual_qcvars.append("BCCD(T) TOTAL GRADIENT") + elif driver == "hessian" and method == "bccd(t)": + # contractual_qcvars.append("BCCD(T) TOTAL GRADIENT") + contractual_qcvars.append("BCCD(T) TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if False: + expected = False + + yield (pv, pv, expected) + + +def contractual_cc3( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal CC3 should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "CC3 CORRELATION ENERGY", + "CC3 TOTAL ENERGY", + ] + if driver == "gradient" and method == "cc3": + contractual_qcvars.append("CC3 TOTAL GRADIENT") + elif driver == "hessian" and method == "cc3": + # contractual_qcvars.append("CC3 TOTAL GRADIENT") + contractual_qcvars.append("CC3 TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + + yield (pv, pv, expected) + + def contractual_ccsdt( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal CCSDT should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -860,7 +1352,7 @@ def contractual_ccsdt1a( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal CCSDT-1A should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -885,7 +1377,7 @@ def contractual_ccsdt1b( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal CCSDT-1B should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -910,7 +1402,7 @@ def contractual_ccsdt2( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal CCSDT-2 should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -935,7 +1427,7 @@ def contractual_ccsdt3( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: f"""Of the list of QCVariables an ideal CCSDT-3 should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -960,7 +1452,7 @@ def contractual_ccsdt_prq_pr( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal CCSDT(Q) should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -986,7 +1478,7 @@ def contractual_ccsdtq( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal CCSDTQ should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -1010,8 +1502,142 @@ yield (pv, pv, expected) +def contractual_omp2( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal OMP2 should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "OMP2 CORRELATION ENERGY", + "OMP2 TOTAL ENERGY", + "OMP2 REFERENCE CORRECTION ENERGY", + "OMP2 SAME-SPIN CORRELATION ENERGY", + "OMP2 OPPOSITE-SPIN CORRELATION ENERGY", + ] + if driver == "gradient" and method == "omp2": + contractual_qcvars.append("OMP2 TOTAL GRADIENT") + elif driver == "hessian" and method == "omp2": + # contractual_qcvars.append("OMP2 TOTAL GRADIENT") + contractual_qcvars.append("OMP2 TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if ( + (qc_module == "psi4-occ" and reference == "rhf" and corl_type in ["df", "cd"] and method == "omp2") + ) and pv in ["OMP2 SAME-SPIN CORRELATION ENERGY", "OMP2 OPPOSITE-SPIN CORRELATION ENERGY"]: + expected = False + + yield (pv, pv, expected) + + +def contractual_omp2p5( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal OMP2.5 should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "OMP2.5 CORRELATION ENERGY", + "OMP2.5 TOTAL ENERGY", + "OMP2.5 REFERENCE CORRECTION ENERGY", + "OMP2.5 SAME-SPIN CORRELATION ENERGY", + "OMP2.5 OPPOSITE-SPIN CORRELATION ENERGY", + ] + if driver == "gradient" and method == "omp2.5": + contractual_qcvars.append("OMP2.5 TOTAL GRADIENT") + elif driver == "hessian" and method == "omp2.5": + # contractual_qcvars.append("OMP2.5 TOTAL GRADIENT") + contractual_qcvars.append("OMP2.5 TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if ( + (qc_module == "psi4-occ" and reference == "rhf" and corl_type in ["df", "cd"] and method == "omp2.5") + ) and pv in ["OMP2.5 SAME-SPIN CORRELATION ENERGY", "OMP2.5 OPPOSITE-SPIN CORRELATION ENERGY"]: + expected = False + + yield (pv, pv, expected) + + +def contractual_omp3( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal OMP3 should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "OMP3 CORRELATION ENERGY", + "OMP3 TOTAL ENERGY", + "OMP3 REFERENCE CORRECTION ENERGY", + "OMP3 SAME-SPIN CORRELATION ENERGY", + "OMP3 OPPOSITE-SPIN CORRELATION ENERGY", + ] + if driver == "gradient" and method == "omp3": + contractual_qcvars.append("OMP3 TOTAL GRADIENT") + elif driver == "hessian" and method == "omp3": + # contractual_qcvars.append("OMP3 TOTAL GRADIENT") + contractual_qcvars.append("OMP3 TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if ( + (qc_module == "psi4-occ" and reference == "rhf" and corl_type in ["df", "cd"] and method == "omp3") + ) and pv in ["OMP3 SAME-SPIN CORRELATION ENERGY", "OMP3 OPPOSITE-SPIN CORRELATION ENERGY"]: + expected = False + + yield (pv, pv, expected) + + +def contractual_oremp2( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal OREMP2 should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "OREMP2 CORRELATION ENERGY", + "OREMP2 TOTAL ENERGY", + "OREMP2 REFERENCE CORRECTION ENERGY", + "OREMP2 SAME-SPIN CORRELATION ENERGY", + "OREMP2 OPPOSITE-SPIN CORRELATION ENERGY", + ] + if driver == "gradient" and method == "oremp2": + contractual_qcvars.append("OREMP2 TOTAL GRADIENT") + elif driver == "hessian" and method == "oremp2": + # contractual_qcvars.append("OREMP2 TOTAL GRADIENT") + contractual_qcvars.append("OREMP2 TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if ( + # usual for oo (qc_module == "psi4-occ" and reference == "rhf" and corl_type in ["df", "cd"] and method == "oremp2") + ( + qc_module == "psi4-occ" + and reference in ["rhf", "uhf", "rohf"] + and corl_type in ["df", "cd"] + and method == "oremp2" + ) + ) and pv in ["OREMP2 SAME-SPIN CORRELATION ENERGY", "OREMP2 OPPOSITE-SPIN CORRELATION ENERGY"]: + expected = False + + yield (pv, pv, expected) + + def contractual_olccd( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Of the list of QCVariables an ideal OLCCD should produce, returns whether or not each is expected, given the calculation circumstances (like QC program). @@ -1034,12 +1660,109 @@ for pv in contractual_qcvars: expected = True + if ( + (qc_module == "psi4-occ" and reference == "rhf" and corl_type in ["df", "cd"] and method == "olccd") + ) and pv in ["OLCCD SAME-SPIN CORRELATION ENERGY", "OLCCD OPPOSITE-SPIN CORRELATION ENERGY"]: + expected = False + + yield (pv, pv, expected) + + +def contractual_occd( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal OCCD should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "OCCD CORRELATION ENERGY", + "OCCD TOTAL ENERGY", + "OCCD REFERENCE CORRECTION ENERGY", + "OCCD SAME-SPIN CORRELATION ENERGY", + "OCCD OPPOSITE-SPIN CORRELATION ENERGY", + ] + if driver == "gradient" and method == "occd": + contractual_qcvars.append("OCCD TOTAL GRADIENT") + elif driver == "hessian" and method == "occd": + # contractual_qcvars.append("OCCD TOTAL GRADIENT") + contractual_qcvars.append("OCCD TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if ( + ( + qc_module == "psi4-occ" + and reference in ["rhf", "uhf", "rohf"] + and corl_type in ["df", "cd"] + and method in ["occd", "occd(t)", "a-occd(t)"] + ) + ) and pv in ["OCCD SAME-SPIN CORRELATION ENERGY", "OCCD OPPOSITE-SPIN CORRELATION ENERGY"]: + expected = False + + yield (pv, pv, expected) + + +def contractual_occd_prt_pr( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal OCCD(T) should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "O(T) CORRECTION ENERGY", + "OCCD(T) CORRELATION ENERGY", + "OCCD(T) TOTAL ENERGY", + ] + if driver == "gradient" and method == "occd(t)": + contractual_qcvars.append("OCCD(T) TOTAL GRADIENT") + elif driver == "hessian" and method == "occd(t)": + # contractual_qcvars.append("OCCD(T) TOTAL GRADIENT") + contractual_qcvars.append("OCCD(T) TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if False: + expected = False + + yield (pv, pv, expected) + + +def contractual_aoccd_prt_pr( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Of the list of QCVariables an ideal A-OCCD(T) (aka Lambda-OCCD(T), aka OCCD(aT) should produce, returns whether or + not each is expected, given the calculation circumstances (like QC program). + + {_contractual_docstring} + """ + contractual_qcvars = [ + "HF TOTAL ENERGY", + "A-O(T) CORRECTION ENERGY", + "A-OCCD(T) CORRELATION ENERGY", + "A-OCCD(T) TOTAL ENERGY", + ] + if driver == "gradient" and method == "a-occd(t)": + contractual_qcvars.append("A-OCCD(T) TOTAL GRADIENT") + elif driver == "hessian" and method == "a-occd(t)": + # contractual_qcvars.append("A-OCCD(T) TOTAL GRADIENT") + contractual_qcvars.append("A-OCCD(T) TOTAL HESSIAN") + + for pv in contractual_qcvars: + expected = True + if False: + expected = False yield (pv, pv, expected) def contractual_dft_current( - qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str ) -> Tuple[str, str, bool]: """Given the target DFT method, returns the CURRENT QCVariables that should be produced. @@ -1049,6 +1772,8 @@ (f"{method.upper()} TOTAL ENERGY", "DFT TOTAL ENERGY"), (f"{method.upper()} TOTAL ENERGY", "CURRENT REFERENCE ENERGY"), (f"{method.upper()} TOTAL ENERGY", "CURRENT ENERGY"), + # assert missing + ("HF TOTAL ENERGY", "HF TOTAL ENERGY"), ] if driver == "gradient": contractual_qcvars.append((f"{method.upper()} TOTAL GRADIENT", "CURRENT GRADIENT")) @@ -1058,7 +1783,51 @@ for rpv, pv in contractual_qcvars: expected = True - if method == "hf" and rpv == f"{method.upper()} CORRELATION ENERGY": + if True and rpv in [ # assert canonical wfn quantities missing in DFT + "HF TOTAL ENERGY", + ]: + expected = False + + yield (rpv, pv, expected) + + +def contractual_dhdft_current( + qc_module: str, driver: str, reference: str, method: str, corl_type: str, fcae: str, sdsc: str +) -> Tuple[str, str, bool]: + """Given the target DFT method, returns the CURRENT QCVariables that should be produced. + + {_contractual_docstring} + """ + contractual_qcvars = [ + (f"{method.upper()} TOTAL ENERGY", "DFT TOTAL ENERGY"), + (f"{method.upper()} FUNCTIONAL TOTAL ENERGY", "CURRENT REFERENCE ENERGY"), + (f"{method.upper()} TOTAL ENERGY", "CURRENT ENERGY"), + # assert missing + ("HF TOTAL ENERGY", "HF TOTAL ENERGY"), + ("MP2 CORRELATION ENERGY", "MP2 CORRELATION ENERGY"), + ("MP2 TOTAL ENERGY", "MP2 TOTAL ENERGY"), + ("MP2 SAME-SPIN CORRELATION ENERGY", "MP2 SAME-SPIN CORRELATION ENERGY"), + ("MP2 SINGLES ENERGY", "MP2 SINGLES ENERGY"), + ("MP2 DOUBLES ENERGY", "MP2 DOUBLES ENERGY"), + ("MP2 OPPOSITE-SPIN CORRELATION ENERGY", "MP2 OPPOSITE-SPIN CORRELATION ENERGY"), + ] + if driver == "gradient": + contractual_qcvars.append((f"{method.upper()} TOTAL GRADIENT", "CURRENT GRADIENT")) + elif driver == "hessian": + # contractual_qcvars.append((f"{method.upper()} TOTAL GRADIENT", "CURRENT GRADIENT")) + contractual_qcvars.append((f"{method.upper()} TOTAL HESSIAN", "CURRENT HESSIAN")) + + for rpv, pv in contractual_qcvars: + expected = True + if True and rpv in [ # assert canonical wfn quantities missing in DFT + "HF TOTAL ENERGY", + "MP2 CORRELATION ENERGY", + "MP2 TOTAL ENERGY", + "MP2 SAME-SPIN CORRELATION ENERGY", + "MP2 SINGLES ENERGY", + "MP2 DOUBLES ENERGY", + "MP2 OPPOSITE-SPIN CORRELATION ENERGY", + ]: expected = False yield (rpv, pv, expected) diff -Nru qcengine-0.23.0/qcengine/programs/tests/standard_suite_ref.py qcengine-0.26.0/qcengine/programs/tests/standard_suite_ref.py --- qcengine-0.23.0/qcengine/programs/tests/standard_suite_ref.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/standard_suite_ref.py 2022-11-30 16:26:08.000000000 +0000 @@ -201,9 +201,63 @@ 0., 0.0004083938, 0.0000454089, 0., -0.0002422847, 0.0000149119, 0., -0.4105717664, -0.0003391738, 0., 0.4104056572, 0.0002788531, 0., -0.0004886847, -0.0017974181, 0., -0.0001293422, -0.0000650246, 0., 0.0003391738, 0.0016587254, 0., 0.0002788531, 0.0002037173]).reshape((12, 12)) -_hess_scf_hf_dz_df_rhf = np.zeros(36).reshape((6, 6)) -_hess_scf_bh3p_dz_df_uhf = np.zeros(144).reshape((12, 12)) -_hess_scf_bh3p_dz_df_rohf = np.zeros(144).reshape((12, 12)) +_hess_scf_hf_dz_df_rhf = np.array([ + 0.011419589945, -0. , 0. , -0.011419589946, 0. , -0. , + -0. , 0.011419589946, -0. , 0. , -0.011419589946, 0. , + 0. , -0. , 0.637098996637, -0. , 0. , -0.637098996645, + -0.011419589946, 0. , -0. , 0.011419589947, -0. , 0. , + 0. , -0.011419589946, 0. , -0. , 0.011419589946, -0. , + -0. , 0. , -0.637098996645, 0. , -0. , 0.63709899664 ]).reshape((6, 6)) +_hess_scf_bh3p_dz_df_uhf = np.array([ + 0.005157358561, 0. , -0. , -0.005955101752, -0. , 0. , 0.000398871596, + -0. , -0. , 0.000398871596, 0. , 0. , + 0. , 0.005015888751, 0. , -0. , -0.005772282862, -0. , 0., + 0.000378197056, 0.000465416538, -0. , 0.000378197056, -0.000465416538, + -0. , 0. , 0.216295663219, 0. , -0. , -0.213040064004, -0., + 0.000185641893, -0.001627799608, 0. , -0.000185641893, -0.001627799609, + -0.005955101752, -0. , 0. , 0.006338370045, 0. , -0. , -0.000191634146, + 0. , 0. , -0.000191634146, -0. , -0. , + -0. , -0.005772282862, -0. , 0. , 0.006233942057, 0. , -0., + -0.000230829597, 0.000131807767, 0. , -0.000230829598, -0.000131807767, + 0. , -0. , -0.213040064004, -0. , 0. , 0.213165507196, 0., + 0.000042542535, -0.000062721596, -0. , -0.000042542535, -0.000062721596, + 0.000398871596, 0. , -0. , -0.000191634146, -0. , 0. , -0.003568868648, + 0. , 0. , 0.003361631199, -0. , -0. , + -0. , 0.000378197056, 0.000185641893, 0. , -0.000230829597, 0.000042542535, 0., + 0.410158196459, -0.000412704367, -0. , -0.410305563917, 0.000184519939, + -0. , 0.000465416538, -0.001627799608, 0. , 0.000131807767, -0.000062721596, 0., + -0.000412704367, -0.000072529233, -0. , -0.000184519939, 0.001763050438, + 0.000398871596, -0. , 0. , -0.000191634146, 0. , -0. , 0.003361631199, + -0. , -0. , -0.003568868648, 0. , 0. , + 0. , 0.000378197056, -0.000185641893, -0. , -0.000230829598, -0.000042542535, -0., + -0.410305563917, -0.000184519939, 0. , 0.410158196459, 0.000412704367, + 0. , -0.000465416538, -0.001627799609, -0. , -0.000131807767, -0.000062721596, -0., + 0.000184519939, 0.001763050438, 0. , 0.000412704367, -0.000072529233]).reshape((12, 12)) +_hess_scf_bh3p_dz_df_rohf = np.array([ + 0.006549722571, 0. , 0. , -0.007414731669, 0. , 0. , 0.000432504549, + 0. , 0. , 0.000432504549, 0. , 0. , + 0. , 0.006404685466, 0. , 0. , -0.007227207838, 0. , 0., + 0.000411261186, 0.000481228539, 0. , 0.000411261186, -0.000481228539, + 0. , 0. , 0.226368773958, 0. , 0. ,-0.222774139159, 0., + -0.000047153809, -0.001797317399, 0. , 0.000047153809, -0.001797317399, + -0.007414731669, 0. , 0. , 0.007821444417, 0. , 0. , -0.000203356374, + 0. , 0. , -0.000203356374, 0. , 0. , + 0. , -0.007227207838, 0. , 0. , 0.007714708106, 0. , 0., + -0.000243750134, 0.00013251408 , 0. , -0.000243750134, -0.00013251408 , + 0. , 0. , -0.222774139159, 0. , 0. , 0.222903015477, 0., + -0.000014309509, -0.000064438159, 0. , 0.000014309509, -0.000064438159, + 0.000432504549, 0. , 0. , -0.000203356374, 0. , 0. , -0.00346312684, + 0. , 0. , 0.003233978665, 0. , 0. , + 0. , 0.000411261186, -0.000047153809, 0. , -0.000243750134,-0.000014309509, 0., + 0.410395982746, -0.00027613965 , 0. , -0.410563493798, 0.000337602969, + 0. , 0.000481228539, -0.001797317399, 0. , 0.00013251408 ,-0.000064438159, 0., + -0.00027613965 , 0.000195370438, 0. , -0.000337602969, 0.00166638512 , + 0.000432504549, 0. , 0. , -0.000203356374, 0. , 0. , 0.003233978665, + 0. , 0. , -0.00346312684 , 0. , 0. , + 0. , 0.000411261186, 0.000047153809, 0. , -0.000243750134, 0.000014309509, 0., + -0.410563493798, -0.000337602969, 0. , 0.410395982746, 0.00027613965 , + 0. , -0.000481228539, -0.001797317399, 0. , -0.00013251408 ,-0.000064438159, 0., + 0.000337602969, 0.00166638512 , 0. , 0.00027613965 , 0.000195370438]).reshape((12, 12)) _hess_scf_hf_dz_cd_rhf = np.zeros(36).reshape((6, 6)) _hess_scf_bh3p_dz_cd_uhf = np.zeros(144).reshape((12, 12)) @@ -241,9 +295,63 @@ 0., -0.3025728127, -0.1756925779, 0., -0.0311125058, -0.0283529691, 0., 0.3336853184, 0.2040455471, 0., -0.2323985163, -0.2076204733, 0., 0.0283529691, 0.0144733724, 0., 0.2040455471, 0.1931471008]).reshape((9, 9)) -_hess_scf_h2o_qz2p_df_rhf = np.zeros(81).reshape((9, 9)) -_hess_scf_nh2_qz2p_df_uhf = np.zeros(81).reshape((9, 9)) -_hess_scf_nh2_qz2p_df_rohf = np.zeros(81).reshape((9, 9)) +_hess_scf_h2o_qz2p_df_rhf = np.array([ + 0.023869160976, 0. , 0. , -0.011934580488, -0. , 0. , -0.011934580489, + -0. , -0. , + 0. , 0.709278145474, -0.000000000002, -0. , -0.35463907274 , 0.265350165815, -0., + -0.354639072734, -0.265350165813, + 0. , -0.000000000002, 0.498586860727, 0. , 0.202756793814, -0.249293430373, -0., + -0.202756793806, -0.249293430373, + -0.011934580488, -0. , 0. , 0.010840285263, 0. , -0. , 0.001094295225, + 0. , 0. , + -0. , -0.35463907274 , 0.202756793814, 0. , 0.388608483063, -0.23405347982 , -0., + -0.033969410325, 0.031296685995, + 0. , 0.265350165815, -0.249293430373, -0. , -0.23405347982 , 0.232247735371, -0., + -0.031296685997, 0.01704569501 , + -0.011934580489, -0. , -0. , 0.001094295225, -0. , -0. , 0.010840285264, + 0. , 0. , + -0. , -0.354639072734, -0.202756793806, 0. , -0.033969410325, -0.031296685997, 0., + 0.38860848306 , 0.234053479815, + -0. , -0.265350165813, -0.249293430373, 0. , 0.031296685995, 0.01704569501 , 0., + 0.234053479815, 0.232247735369]).reshape((9, 9)) +_hess_scf_nh2_qz2p_df_uhf = np.array([ + -0.001321632112, 0. , 0. , 0.000660816056, 0. , -0. , 0.000660816056, + -0. , -0. , + 0. , 0.603376756297,-0.000000000003, 0. , -0.301688378153, 0.232000689906, -0., + -0.301688378145, -0.232000689902, + 0. , -0.000000000003, 0.413952361231, -0. , 0.17533315624 , -0.206976180617, -0., + -0.17533315624 , -0.206976180614, + 0.000660816056, 0. ,-0. , -0.000357558133, -0. , 0. , -0.000303257923, + 0. , 0. , + 0. , -0.301688378153, 0.17533315624 , -0. , 0.332733856055, -0.203666923072, -0., + -0.031045477904, 0.028333766831, + -0. , 0.232000689906,-0.206976180617, 0. , -0.203666923072, 0.192471131065, 0., + -0.028333766832, 0.014505049551, + 0.000660816056, -0. ,-0. , -0.000303257923, -0. , 0. , -0.000357558133, + 0. , 0. , + -0. , -0.301688378145,-0.17533315624 , 0. , -0.031045477904, -0.028333766832, 0., + 0.33273385605 , 0.203666923073, + -0. , -0.232000689902, -0.206976180614, 0. , 0.028333766831, 0.014505049551, 0., + 0.203666923073, 0.192471131063]).reshape((9, 9)) +_hess_scf_nh2_qz2p_df_rohf = np.array([ + -0.000573597702, 0. , 0. , 0.000286798851, 0. , 0. , 0.000286798851, + 0. , 0. , + 0. , 0.605105430726, 0. , 0. , -0.302552715363, 0.232376931706, 0., + -0.302552715363, -0.232376931706, + 0. , 0. , 0.415262555438, 0. , 0.175653363465, -0.207631277719, 0., + -0.175653363465, -0.207631277719, + 0.000286798851, 0. , 0. , 0.00003414546 , 0. , 0. , -0.000320944311, + 0. , 0. , + 0. , -0.302552715363, 0.175653363465, 0. , 0.333674638104, -0.204015147586, 0., + -0.03112192274 , 0.02836178412 , + 0. , 0.232376931706,-0.207631277719, 0. , -0.204015147586, 0.193147728967, 0., + -0.02836178412 , 0.014483548752, + 0.000286798851, 0. , 0. , -0.000320944311, 0. , 0. , 0.00003414546, + 0. , 0. , + 0. , -0.302552715363,-0.175653363465, 0. , -0.03112192274 , -0.02836178412 , 0., + 0.333674638104, 0.204015147586, + 0. , -0.232376931706,-0.207631277719, 0. , 0.02836178412 , 0.014483548752, 0., + 0.204015147586, 0.193147728967]).reshape((9, 9)) _hess_scf_h2o_qz2p_cd_rhf = np.zeros(81).reshape((9, 9)) _hess_scf_nh2_qz2p_cd_uhf = np.zeros(81).reshape((9, 9)) @@ -281,15 +389,120 @@ 0., -0.3133321336, -0.1853731231, 0., -0.0304517825, -0.028797846, 0., 0.3437839161, 0.2141709691, 0., -0.2429688151, -0.2114567853, 0., 0.028797846, 0.0137862303, 0., 0.2141709691, 0.1976705549]).reshape((9, 9)) -_hess_scf_h2o_adz_df_rhf = np.zeros(81).reshape((9, 9)) -_hess_scf_nh2_adz_df_uhf = np.zeros(81).reshape((9, 9)) -_hess_scf_nh2_adz_df_rohf = np.zeros(81).reshape((9, 9)) +_hess_scf_h2o_adz_df_rhf = np.array([ + 0.019310737009, -0. , -0. , -0.009655368505, -0. , 0. , -0.009655368503, + 0. , 0. , + -0. , 0.725875223511, 0.000000000003, -0. , -0.362937611655, 0.273540335334, 0., + -0.362937611676, -0.273540335273, + -0. , 0.000000000003, 0.507198979725, 0. , 0.210065178279, -0.253599489912, 0., + -0.210065178221, -0.253599489856, + -0.009655368505, -0. , 0. , 0.008759121798, 0. , -0. , 0.000896246713, + -0. , -0. , + -0. , -0.362937611655, 0.210065178279, 0. , 0.395481274657, -0.241802756803, 0., + -0.032543663037, 0.031737578554, + 0. , 0.273540335334, -0.253599489912, -0. , -0.241802756803, 0.236629960127, -0., + -0.031737578562, 0.016969529729, + -0.009655368503, 0. , 0. , 0.000896246713, 0. , -0. , 0.008759121792, + -0. , -0. , + 0. , -0.362937611676, -0.210065178221, -0. , -0.032543663037, -0.031737578562, -0., + 0.395481274584, 0.241802756768, + 0. , -0.273540335273, -0.253599489856, -0. , 0.031737578554, 0.016969529729, -0., + 0.241802756768, 0.236629960119]).reshape((9, 9)) +_hess_scf_nh2_adz_df_uhf = np.array([ + -0.007317259569, 0. , 0. , 0.00365862978 , 0. , -0. , 0.003658629786, + -0. , -0. , + 0. , 0.62484772987 , -0.000000000011, 0. , -0.312423864907, 0.242538620551, -0., + -0.312423864936, -0.242538620553, + 0. , -0.000000000011, 0.421394753004, -0. , 0.185083431455, -0.210697376525, -0., + -0.185083431454, -0.210697376488, + 0.00365862978 , 0. ,-0. , -0.003324468914, -0. , 0. , -0.000334160866, + 0. , 0. , + 0. , -0.312423864907, 0.185083431455, -0. , 0.342764539209, -0.21381102597 , -0., + -0.030340674329, 0.028727594562, + -0. , 0.242538620551,-0.210697376525, 0. , -0.21381102597 , 0.196906745018, 0., + -0.02872759456 , 0.013790631506, + 0.003658629786, -0. ,-0. , -0.000334160866, -0. , 0. , -0.003324468915, + 0. , 0. , + -0. , -0.312423864936,-0.185083431454, 0. , -0.030340674329, -0.02872759456 , 0., + 0.342764539113, 0.213811026012, + -0. , -0.242538620553,-0.210697376488, 0. , 0.028727594562, 0.013790631506, 0., + 0.213811026012, 0.196906744992]).reshape((9, 9)) +_hess_scf_nh2_adz_df_rohf = np.array([ + -0.006610027359, 0. , 0. , 0.003305013679, 0. , 0. , 0.003305013679, 0. , 0. , + 0. , 0.626646193304, 0. , 0. , -0.313323096652, 0.242957299808, 0., -0.313323096652, -0.242957299808, + 0. , 0. , 0.422913366944, 0. , 0.185333436236, -0.211456683472, 0., -0.185333436236, -0.211456683472, + 0.003305013679, 0. , 0. , -0.002928829428, 0. , 0. , -0.000376184252, 0. , 0. , + 0. , -0.313323096652, 0.185333436236, 0. , 0.343783148838, -0.214145368022, 0., -0.030460052185, 0.028811931786, + 0. , 0.242957299808, -0.211456683472, 0. , -0.214145368022, 0.197665865008, 0., -0.028811931786, 0.013790818464, + 0.003305013679, 0. , 0. , -0.000376184252, 0. , 0. , -0.002928829428, 0. , 0. , + 0. , -0.313323096652, -0.185333436236, 0. , -0.030460052185, -0.028811931786, 0., 0.343783148838, 0.214145368022, + 0. , -0.242957299808, -0.211456683472, 0. , 0.028811931786, 0.013790818464, 0., 0.214145368022, 0.197665865008]).reshape((9, 9)) _hess_scf_h2o_adz_cd_rhf = np.zeros(81).reshape((9, 9)) _hess_scf_nh2_adz_cd_uhf = np.zeros(81).reshape((9, 9)) _hess_scf_nh2_adz_cd_rohf = np.zeros(81).reshape((9, 9)) + + +# DFT FUNCTIONAL portion of B2PLYP from psi 99,590 +_b2plyp_hf_dz_pk_rhf = -100.3005792821600437 +_b2plyp_bh3p_dz_pk_uhf = -26.0528813461710449 +_b2plyp_bh3p_dz_pk_rohf = 0.0 + +_b2plyp_hf_dz_df_rhf = -100.3005907504988699 +_b2plyp_bh3p_dz_df_uhf = -26.0528839219733257 +_b2plyp_bh3p_dz_df_rohf = 0.0 + +_b2plyp_hf_dz_cd_rhf = -100.3006117916440019 +_b2plyp_bh3p_dz_cd_uhf = -26.0528827170103980 +_b2plyp_bh3p_dz_cd_rohf = 0.0 + + +_b2plyp_h2o_qz2p_pk_rhf = -76.3306993470827706 +_b2plyp_nh2_qz2p_pk_uhf = -55.7984427240855254 +_b2plyp_nh2_qz2p_pk_rohf = 0.0 + +_b2plyp_h2o_qz2p_df_rhf = -76.3307137247329877 +_b2plyp_nh2_qz2p_df_uhf = -55.7984551557867974 +_b2plyp_nh2_qz2p_df_rohf = 0.0 + +_b2plyp_h2o_qz2p_cd_rhf = -76.3307381934528735 +_b2plyp_nh2_qz2p_cd_uhf = -55.7984547742191594 +_b2plyp_nh2_qz2p_cd_rohf = 0.0 + + +_b2plyp_h2o_adz_pk_rhf = -76.3084021997237016 +_b2plyp_nh2_adz_pk_uhf = -55.7829154325298688 +_b2plyp_nh2_adz_pk_rohf = 0.0 + +_b2plyp_h2o_adz_df_rhf = -76.3084028180061580 +_b2plyp_nh2_adz_df_uhf = -55.7829186059061328 +_b2plyp_nh2_adz_df_rohf = 0.0 + +_b2plyp_h2o_adz_cd_rhf = -76.3083803442428916 +_b2plyp_nh2_adz_cd_uhf = -55.7828904397309557 +_b2plyp_nh2_adz_cd_rohf = 0.0 # fmt: on +# Rarely, reference values by conventional algorithms are _not_ available, while density-fitted or Cholesky-decomposed values _are_ available. +# This deprives DF/CD of a sanity check versus CONV values, so: +# (1) make every effort to hunt one down from other programs, reference implementations, etc. +# (2) if an inferior but ballpark value is available (e.g., 3-pt findif gradient or value with a small correction (<1e-4) missing), include it with notes on caveats. +# (3) if all else fails, add the QCVariable to _std_suite as `_knownmissing` +# (a) CONV-AE-CONV and CONV-FC-CONV blocks only +# (b) may have to adjust logic in compute_derived_qcvars +# (c) only use if it'll show up in checks (e.g., DF checks SAME-SPIN for uhf but not rhf, so CONV only needs _knownmissing for uhf) +# (4) revisit and add good CONV refs if opportunity arises. +# +# Current `_knownmissing`s: +# * "OLCCD SAME-SPIN CORRELATION ENERGY" in CONV-FC-CONV for uhf/rohf +# * "OLCCD TOTAL GRADIENT" in CONV-FC-CONV +# * "O(T) CORRECTION ENERGY in CONV-AE-CONV and CONV-FC-CONV +# * "A-O(T) CORRECTION ENERGY" in CONV-AE-CONV and CONV-FC-CONV +# * "OMP2/OMP2.5/OMP3/OREMP2 REFERENCE CORRECTION ENERGY" in CONV-FC-CONV for rhf/uhf/rohf +# * "OMP2/OMP2.5/OMP3/OREMP2 CORRELATION ENERGY" in CONV-FC-CONV for rhf/uhf/rohf +# * "OMP2/OMP2.5/OMP3/OREMP2 TOTAL GRADIENT" in CONV-FC-CONV for rhf/uhf/rohf +# * "OMP2/OMP2.5/OMP3/OREMP2 SAME-SPIN CORRELATION ENERGY" in CONV-FC-CONV for uhf/rohf +_knownmissing = "KnownMissing" _std_suite = [ # <<< CONV-AE-CONV >>> @@ -301,6 +514,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_pk_rhf, @@ -339,6 +553,9 @@ "QCISD CORRELATION ENERGY": -0.20892771089382, # vcc "QCISD(T) CORRECTION ENERGY": -0.00182210, # vcc "FCI CORRELATION ENERGY": -0.21117389325, # detci + "REMP2 CORRELATION ENERGY": -0.20840575987435, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.04954400816816, # occ, tight "LCCD CORRELATION ENERGY": -0.2099060277, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.048339903547, # fnocc @@ -346,6 +563,18 @@ "LCCSD CORRELATION ENERGY": -0.2107436391, # p4n "LCCSD SINGLES ENERGY": 0.0, "LCCSD SAME-SPIN CORRELATION ENERGY": -0.048460183760, # fnocc + "CEPA(1) CORRELATION ENERGY": -0.2083463452, # fnocc + "CEPA(1) SINGLES ENERGY": 0.0, + "CEPA(1) SAME-SPIN CORRELATION ENERGY": -0.0480716539, # fnocc + "CEPA(3) CORRELATION ENERGY": -0.2067017395, # fnocc + "CEPA(3) SINGLES ENERGY": 0.0, + "CEPA(3) SAME-SPIN CORRELATION ENERGY": -0.0477774156, # fnocc + "ACPF CORRELATION ENERGY": -0.2089157318, # fnocc + "ACPF SINGLES ENERGY": 0.0, + "ACPF SAME-SPIN CORRELATION ENERGY": -0.0481691534, # fnocc + "AQCC CORRELATION ENERGY": -0.2073512040, # fnocc + "AQCC SINGLES ENERGY": 0.0, + "AQCC SAME-SPIN CORRELATION ENERGY": -0.0479164828, # fnocc "CCD CORRELATION ENERGY": -0.20815176752849, # vcc "CCD SINGLES ENERGY": 0.0, "CCD SAME-SPIN CORRELATION ENERGY": -0.04851867, # vcc @@ -360,6 +589,11 @@ [0.00000000e00, 0.00000000e00, -6.40299636e-01, 0.00000000e00, 0.00000000e00, 6.40299636e-01], ] ), + "BCCD CORRELATION ENERGY": -0.20860360, # ccenergy + "CC2 CORRELATION ENERGY": -0.204522923018627, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.004123981053, 0.0, 0.0, -0.004123981053] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.208743643, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04857419039, @@ -403,6 +637,8 @@ [0.000000000000000, 0.000000000000000, -0.003071874425935], ] ), + "B(T) CORRECTION ENERGY": -0.00208496, # ccenergy + "CC3 CORRELATION ENERGY": -0.210769121626813, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.210768179766, # ecc "CCSDT-1A TOTAL GRADIENT": np.array( # ecc by psi fd STAR [[0.0, 0.0, 0.00316187041423], [0.0, 0.0, -0.00316187041423]] @@ -503,9 +739,87 @@ -0.003507320893113, ] ).reshape((-1, 3)), + "OMP2 REFERENCE CORRECTION ENERGY": 0.000704890964, # occ, tight + "OMP2 CORRELATION ENERGY": -0.204465719970, # occ, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.054616313597, # occ, tight + "OMP2 TOTAL GRADIENT": np.array( # occ, tight + [0.0, 0.0, 0.004107528173, 0.0, 0.0, -0.004107528173] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.000571728736, # occ, tight + "OMP2.5 CORRELATION ENERGY": -0.205686837008, # occ, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.052301161413, # occ, tight + "OMP2.5 TOTAL GRADIENT": np.array( # occ, tight + [0.0, 0.000000000000, 0.002017001118, 0.0, 0.000000000000, -0.002017001118] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000467222482, # occ, tight + "OMP3 CORRELATION ENERGY": -0.206935131375, # occ, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.050007707662, # occ, tight + "OMP3 TOTAL GRADIENT": np.array( # occ, tight + [0.0, 0.0, -0.000007413433, 0.0, 0.0, 0.000007413433] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.000553304064, # occ, tight + "OREMP2 CORRELATION ENERGY": -0.208942935871, # occ, tight + "OREMP2 SAME-SPIN CORRELATION ENERGY": -0.049683397802, # occ, tight + "OREMP2 TOTAL GRADIENT": np.array( # occ, tight + [0.0, 0.000000000000, 0.002830089047, 0.0, 0.000000000000, -0.002830089047] + ).reshape((-1, 3)), "OLCCD REFERENCE CORRECTION ENERGY": 0.0005522939, # p4n "OLCCD CORRELATION ENERGY": -0.2104417743, # p4n "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0484443079, # occ + "OLCCD TOTAL GRADIENT": np.array([0.0, 0.0, 0.00339205449, 0.0, 0.0, -0.00339205449]).reshape( # occ + (-1, 3) + ), + "OCCD REFERENCE CORRECTION ENERGY": 0.000511277, # qchem + "OCCD CORRELATION ENERGY": -0.208649453, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0.00000000, 0.00000000, 0.00184797, 0, 0, -0.00184797] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "SVWN TOTAL ENERGY": -99.97965143812243, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.019336350645, -0.0, 0.0, -0.019336301692] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590 + [ + -0.011155104942, + -0.0, + -0.0, + 0.011159037504, + -0.0, + -0.0, + -0.0, + -0.011155104942, + 0.0, + -0.0, + 0.011159037504, + -0.0, + -0.0, + 0.0, + 0.642252566624, + 0.0, + 0.0, + -0.64223885597, + 0.011159037504, + -0.0, + 0.0, + -0.011150492167, + -0.0, + -0.0, + -0.0, + 0.011159037504, + 0.0, + -0.0, + -0.01115049217, + -0.0, + -0.0, + -0.0, + -0.64223885597, + -0.0, + -0.0, + 0.642235796522, + ] + ).reshape((6, 6)), "PBE TOTAL ENERGY": -100.33517315116806, # psi 99,590 "PBE TOTAL GRADIENT": np.array([[0.0, 0.0, 0.020107103338], [0.0, 0.0, -0.020107128125]]), # psi 99,590 "B3LYP TOTAL ENERGY": -100.43544624005466, # psi 99,590 @@ -516,6 +830,12 @@ "B3LYP5 TOTAL GRADIENT": np.array( # psi 99,590 [[-6.94208991e-16, 1.87550833e-16, 1.16101107e-02], [3.49213371e-14, 3.53945060e-15, -1.16100020e-02]] ), + "WB97X TOTAL ENERGY": -100.41398805061500, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202, findif-5 + [0.0, 0.0, 0.006570841474, 0.0, 0.0, -0.006570658806] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_pk_rhf, + "B2PLYP TOTAL ENERGY": -100.364597842761, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -528,6 +848,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_pk_rhf, @@ -663,6 +984,9 @@ "CISD CORRELATION ENERGY": -0.21978965712829, # vcc "QCISD CORRELATION ENERGY": -0.22998871354660, # vcc "QCISD(T) CORRECTION ENERGY": -0.0048836279, # vcc + "REMP2 CORRELATION ENERGY": -0.229445317607, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.051382139941, # occ, tight "LCCD CORRELATION ENERGY": -0.2318870702, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.049937236558, # fnocc @@ -672,6 +996,18 @@ "LCCSD CORRELATION ENERGY": -0.2341051403, # p4n "LCCSD SINGLES ENERGY": 0.0, "LCCSD SAME-SPIN CORRELATION ENERGY": -0.050442387759, # fnocc + "CEPA(1) CORRELATION ENERGY": -0.2299219110, # fnocc + "CEPA(1) SINGLES ENERGY": 0.0, + "CEPA(1) SAME-SPIN CORRELATION ENERGY": -0.0497747018, # fnocc + "CEPA(3) CORRELATION ENERGY": -0.227111702, # fnocc + "CEPA(3) SINGLES ENERGY": 0.0, + "CEPA(3) SAME-SPIN CORRELATION ENERGY": -0.0492934875, # fnocc + "ACPF CORRELATION ENERGY": -0.2308608117, # fnocc + "ACPF SINGLES ENERGY": 0.0, + "ACPF SAME-SPIN CORRELATION ENERGY": -0.0499379269, # fnocc + "AQCC CORRELATION ENERGY": -0.2281621411, # fnocc + "AQCC SINGLES ENERGY": 0.0, + "AQCC SAME-SPIN CORRELATION ENERGY": -0.0495127294, # fnocc "CCD CORRELATION ENERGY": -0.22802083552559, # vcc "CCD SINGLES ENERGY": 0.0, "CCD SAME-SPIN CORRELATION ENERGY": -0.0499178, # vcc @@ -731,6 +1067,11 @@ ], ] ), + "BCCD CORRELATION ENERGY": -0.228985653284813, # ccenergy + "CC2 CORRELATION ENERGY": -0.224173737389996, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.011903811069, 0.0, 0.00673003665, -0.005951905535, 0.0, -0.00673003665, -0.005951905535] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.2294105794, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.050177977945205, @@ -970,6 +1311,8 @@ [0.000000000000000, -0.006023996226962, -0.005060442435251], ] ), + "B(T) CORRECTION ENERGY": -0.005680766924884, # ccenergy + "CC3 CORRELATION ENERGY": -0.235030687907142, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.23500915078065532, # mrcc "CCSDT-1A TOTAL GRADIENT": np.array( # ecc by psi fd STAR [ @@ -1307,9 +1650,162 @@ ] ).reshape((-1, 3)), "CCSDTQ CORRELATION ENERGY": -0.235338854850175, # ncc + "OMP2 REFERENCE CORRECTION ENERGY": 0.002352035679, # occ, tight + "OMP2 CORRELATION ENERGY": -0.224125328536, # occ, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.058141813805, # occ, tight + "OMP2 TOTAL GRADIENT": np.array( # occ, tight + [0.0, 0.0, 0.012093662469, 0.0, 0.006798848063, -0.006046831235, 0.0, -0.006798848063, -0.006046831235] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001534835679, # occ, tight + "OMP2.5 CORRELATION ENERGY": -0.225651726817, # occ, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.055105451161, # occ, tight + "OMP2.5 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.008280964210, + 0.0, + 0.004780030747, + -0.004140482105, + 0.0, + -0.004780030747, + -0.004140482105, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000953570304, # occ, tight + "OMP3 CORRELATION ENERGY": -0.227372086899, # occ, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.052239106558, # occ, tight + "OMP3 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.004803850255, + 0.0, + 0.002953922342, + -0.002401925128, + 0.0, + -0.002953922342, + -0.002401925128, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.00128167136578, # occ, tight + "OREMP2 CORRELATION ENERGY": -0.23069139385821, # occ, tight + "OREMP2 SAME-SPIN CORRELATION ENERGY": -0.05189818473696, # occ, tight + "OREMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + -0.000000000000, + 0.009103029917, + 0.0, + 0.005405690204, + -0.004551514958, + 0.0, + -0.005405690204, + -0.004551514958, + ] + ).reshape((-1, 3)), "OLCCD REFERENCE CORRECTION ENERGY": 0.0011895155, # p4n "OLCCD CORRELATION ENERGY": -0.2330452995, # p4n "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0503175223, # occ + "OLCCD TOTAL GRADIENT": np.array( # occ + [0.0, 0.0, 0.009755099696, -0.0, 0.005854889163, -0.004877549848, 0.0, -0.005854889163, -0.004877549848] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.001123344, # qchem + "OCCD CORRELATION ENERGY": -0.229118050, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0.0, 0.0, 0.00727331, 0.0, 0.00447444, -0.00363665, 0.0, -0.00447444, -0.00363665] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "SVWN TOTAL ENERGY": -76.07571659552373, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, -0.0, 0.01699540452, -0.0, 0.012801478421, -0.008497882106, 0.0, -0.012801478421, -0.008497882106] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590 + [ + -0.01527536, + 0.0, + -0.0, + 0.007667, + 0.0, + -0.0, + 0.007667, + -0.0, + -0.0, + 0.0, + 0.71417558, + 0.0, + -0.0, + -0.35709636, + 0.28242944, + 0.0, + -0.35709636, + -0.28242944, + -0.0, + 0.0, + 0.45653659, + 0.0, + 0.22322552, + -0.22827087, + 0.0, + -0.22322552, + -0.22827087, + 0.007667, + -0.0, + 0.0, + -0.00830423, + 0.0, + 0.0, + 0.0006383, + 0.0, + -0.0, + 0.0, + -0.35709636, + 0.22322552, + 0.0, + 0.38596972, + -0.25282844, + -0.0, + -0.02887102, + 0.02960182, + -0.0, + 0.28242944, + -0.22827087, + 0.0, + -0.25282844, + 0.21900566, + 0.0, + -0.02960182, + 0.00926715, + 0.007667, + 0.0, + 0.0, + 0.0006383, + -0.0, + 0.0, + -0.00830423, + 0.0, + -0.0, + -0.0, + -0.35709636, + -0.22322552, + 0.0, + -0.02887102, + -0.02960182, + 0.0, + 0.38596972, + 0.25282844, + -0.0, + -0.28242944, + -0.22827087, + -0.0, + 0.02960182, + 0.00926715, + -0.0, + 0.25282844, + 0.21900566, + ] + ).reshape((9, 9)), "PBE TOTAL ENERGY": -76.35896461348528, # psi 99,590 "PBE TOTAL GRADIENT": np.array( # psi 99,590 [ @@ -1334,6 +1830,12 @@ [1.93603325e-19, -6.32356448e-03, -3.87045600e-03], ] ), + "WB97X TOTAL ENERGY": -76.42162677735320, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202, findif-5 + [0.0, -0.0, 0.0028243495, -0.0, 0.002950472033, -0.001411682043, 0.0, -0.002950472033, -0.001411682043] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_pk_rhf, + "B2PLYP TOTAL ENERGY": -76.380406192274, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -1346,6 +1848,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_pk_rhf, @@ -1481,6 +1984,9 @@ "CISD CORRELATION ENERGY": -0.26425382513286, # vcc "QCISD CORRELATION ENERGY": -0.27614913924585, # vcc "QCISD(T) CORRECTION ENERGY": -0.00704158, # vcc + "REMP2 CORRELATION ENERGY": -0.276444865873, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.059323770883, # occ, tight "LCCD CORRELATION ENERGY": -0.2786913134, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.057792990490, # fnocc @@ -1490,6 +1996,18 @@ "LCCSD CORRELATION ENERGY": -0.2808517417, # p4n "LCCSD SINGLES ENERGY": 0.0, "LCCSD SAME-SPIN CORRELATION ENERGY": -0.058297242512, # fnocc + "CEPA(1) CORRELATION ENERGY": -0.27639235, # fnocc + "CEPA(1) SINGLES ENERGY": 0.0, + "CEPA(1) SAME-SPIN CORRELATION ENERGY": -0.05761465, # fnocc + "CEPA(3) CORRELATION ENERGY": -0.27334861, # fnocc + "CEPA(3) SINGLES ENERGY": 0.0, + "CEPA(3) SAME-SPIN CORRELATION ENERGY": -0.05710750, # fnocc + "ACPF CORRELATION ENERGY": -0.27709825, # fnocc + "ACPF SINGLES ENERGY": 0.0, + "ACPF SAME-SPIN CORRELATION ENERGY": -0.05773653, # fnocc + "AQCC CORRELATION ENERGY": -0.27396970, # fnocc + "AQCC SINGLES ENERGY": 0.0, + "AQCC SAME-SPIN CORRELATION ENERGY": -0.05725788, # fnocc "CCD CORRELATION ENERGY": -0.27417224324851, # vcc "CCD SINGLES ENERGY": 0.0, "CCD SAME-SPIN CORRELATION ENERGY": -0.05767874, # vcc @@ -1599,6 +2117,11 @@ ], ] ), + "BCCD CORRELATION ENERGY": -0.27532829, # ccenergy + "CC2 CORRELATION ENERGY": -0.272546060672979, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.001726445285, 0.0, 0.000194402307, -0.000863222642, 0.0, -0.000194402307, -0.000863222642] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.275705491773, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.058006927914493, @@ -1808,6 +2331,8 @@ [0.000000000000000, 0.000769830346953, 0.000131617690376], ] ), + "B(T) CORRECTION ENERGY": -0.00766044, # ccenergy + "CC3 CORRELATION ENERGY": -0.283326604729141, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.283301014194, # ecc "CCSDT-1A TOTAL GRADIENT": np.array( # ecc by psi fd STAR [ @@ -2295,9 +2820,172 @@ ] ).reshape((-1, 3)), "CCSDTQ CORRELATION ENERGY": -0.283376955140291, # ncc + "OMP2 REFERENCE CORRECTION ENERGY": 0.002513901693, # occ, tight + "OMP2 CORRELATION ENERGY": -0.272599646070, # occ, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.066843168345, # occ, tight + "OMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.001853244534, + 0.0, + 0.000249902550, + -0.000926622267, + 0.0, + -0.000249902550, + -0.000926622267, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001691543451, # occ, tight + "OMP2.5 CORRELATION ENERGY": -0.273211228305, # occ, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.063331759367, # occ, tight + "OMP2.5 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + -0.002291101232, + 0.0, + -0.001990147396, + 0.001145550616, + 0.0, + 0.001990147396, + 0.001145550616, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.001090059672, # occ, tight + "OMP3 CORRELATION ENERGY": -0.274015056808, # occ, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.059986220382, # occ, tight + "OMP3 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + -0.006148152213, + 0.0, + -0.004066707268, + 0.003074076107, + 0.0, + 0.004066707268, + 0.003074076107, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001444328268, # occ, tight + "OREMP2 CORRELATION ENERGY": -0.277848169449, # occ, tight + "OREMP2 SAME-SPIN CORRELATION ENERGY": -0.059932090515, # occ, tight + "OREMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + -0.001616411571, + 0.0, + -0.001508635375, + 0.000808205786, + 0.0, + 0.001508635375, + 0.000808205786, + ] + ).reshape((-1, 3)), "OLCCD REFERENCE CORRECTION ENERGY": 0.0013521561, # p4n "OLCCD CORRELATION ENERGY": -0.2800053174, # p4n "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0582676514, # occ + "OLCCD TOTAL GRADIENT": np.array( # occ + [0.0, 0.0, -0.001040099489, 0.0, -0.001127979233, 0.000520049745, -0.0, 0.001127979233, 0.000520049745] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.001279242, # qchem + "OCCD CORRELATION ENERGY": -0.275418269, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0, 0, -0.00363692, 0, -0.00246929, 0.00181846, 0, 0.00246929, 0.00181846] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "SVWN TOTAL ENERGY": -76.10229674046080, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.01116011934, -0.0, 0.009507405365, -0.005580350828, 0.0, -0.009507405365, -0.005580350828] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590 + [ + -0.01000736, + -0.0, + 0.0, + 0.00503531, + 0.0, + -0.0, + 0.00503531, + 0.0, + 0.0, + -0.0, + 0.69920603, + -0.0, + 0.0, + -0.34961451, + 0.27459931, + 0.0, + -0.34961451, + -0.27459931, + 0.0, + -0.0, + 0.4496319, + -0.0, + 0.21625396, + -0.22481826, + -0.0, + -0.21625396, + -0.22481826, + 0.00503531, + 0.0, + -0.0, + -0.0058381, + -0.0, + 0.0, + 0.00080331, + 0.0, + 0.0, + 0.0, + -0.34961451, + 0.21625396, + -0.0, + 0.37967873, + -0.24542967, + 0.0, + -0.03005974, + 0.02917238, + -0.0, + 0.27459931, + -0.22481826, + 0.0, + -0.24542967, + 0.21540024, + 0.0, + -0.02917238, + 0.00942102, + 0.00503531, + 0.0, + -0.0, + 0.00080331, + 0.0, + 0.0, + -0.0058381, + 0.0, + -0.0, + 0.0, + -0.34961451, + -0.21625396, + 0.0, + -0.03005974, + -0.02917238, + 0.0, + 0.37967873, + 0.24542967, + 0.0, + -0.27459931, + -0.22481826, + 0.0, + 0.02917238, + 0.00942102, + -0.0, + 0.24542967, + 0.21540024, + ] + ).reshape((9, 9)), "PBE TOTAL ENERGY": -76.38209089347507, # psi 99,590 "PBE TOTAL GRADIENT": np.array( # psi 99,590 [ @@ -2322,6 +3010,12 @@ [9.91741439e-20, -3.23927336e-03, -1.15353738e-03], ] ), + "WB97X TOTAL ENERGY": -76.44423395697297, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202, findif-5 + [0.0, 0.0, -0.002561607305, 0.0, -0.000034257733, 0.00128137288, -0.0, 0.000034257733, 0.00128137288] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_pk_rhf, + "B2PLYP TOTAL ENERGY": -76.416806713650, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -2334,6 +3028,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_uhf, @@ -2554,6 +3249,9 @@ "CISD CORRELATION ENERGY": -0.08014448073265, # vcc "QCISD CORRELATION ENERGY": -0.08218197897917, # vcc "QCISD(T) CORRECTION ENERGY": -0.00062359, # vcc only + "REMP2 CORRELATION ENERGY": -0.07803997531851, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.00233934205346, # occ, tight "LCCD CORRELATION ENERGY": -0.0834347185, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0024003297, # occ @@ -2759,6 +3457,24 @@ ], ] ), + "BCCD CORRELATION ENERGY": -0.08217317, # ccenergy + "CC2 CORRELATION ENERGY": -0.059830885446002, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [ + 0.0, + 0.0, + 0.012101218207, + 0.0, + 0.0, + -0.011694433668, + 0.0, + 0.010554775214, + -0.000203392269, + 0.0, + -0.010554775214, + -0.000203392269, + ] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.08217287869, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.002377557359, @@ -3132,80 +3848,367 @@ ], ] ), + "A-(T) CORRECTION ENERGY": -0.000609324, # mrcc only + "B(T) CORRECTION ENERGY": -0.00063370, # ccenergy + "CC3 CORRELATION ENERGY": -0.082800948490126, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.082798380297, # ecc "CCSDT-1B CORRELATION ENERGY": -0.082796300732, # ecc "CCSDT-2 CORRELATION ENERGY": -0.082795702684, # ecc "CCSDT-3 CORRELATION ENERGY": -0.08280038799307, # vcc "CCSDT CORRELATION ENERGY": -0.08311156413461, # vcc - "OLCCD REFERENCE CORRECTION ENERGY": 0.0014842084, # p4n - "OLCCD CORRELATION ENERGY": -0.0847413506, # p4n - "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0024486744, # occ - "PBE TOTAL ENERGY": -26.04681636799003, # psi 99,590 - "PBE TOTAL GRADIENT": np.array( # psi 99,590 + "OMP2 REFERENCE CORRECTION ENERGY": 0.000395359637, # occ, tight + "OMP2 CORRELATION ENERGY": -0.059864579866, # occ, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.001971155898, # occ, tight + "OMP2 TOTAL GRADIENT": np.array( # occ, tight [ - [-0.000000000000, -0.000000000000, -0.002915908298], - [0.000000000000, 0.000000000000, -0.000179663088], - [-0.000000000000, 0.026137498638, 0.001547791345], - [0.000000000000, -0.026137498638, 0.001547791345], + 0.0, + 0.000000000000, + 0.012017558262, + 0.0, + 0.000000000000, + -0.011623172725, + 0.0, + 0.010549443964, + -0.000197192768, + 0.0, + -0.010549443964, + -0.000197192768, ] - ), - "B3LYP TOTAL ENERGY": -26.1140057832643038, # psi 99,590 - "B3LYP TOTAL GRADIENT": np.array( # psi 99,590 + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.000564671059, # occ, tight + "OMP2.5 CORRELATION ENERGY": -0.067680196985, # occ, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.002198682496, # occ, tight + "OMP2.5 TOTAL GRADIENT": np.array( # occ, tight [ - [1.97215226e-31, 0.00000000e00, 3.32365409e-03], - [0.00000000e00, -1.05926147e-32, -5.83320285e-03], - [-5.87137508e-19, 1.91773664e-02, 1.25496529e-03], - [5.87137508e-19, -1.91773664e-02, 1.25496529e-03], + 0.0, + 0.000000000000, + 0.010260851431, + 0.0, + 0.000000000000, + -0.009981279417, + 0.0, + 0.011818192519, + -0.000139786007, + 0.0, + -0.011818192519, + -0.000139786007, ] - ), - "B3LYP5 TOTAL ENERGY": -26.0893142594464784, # psi 99,590 - "B3LYP5 TOTAL GRADIENT": np.array( # psi 99,590 + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000777674538, # occ, tight + "OMP3 CORRELATION ENERGY": -0.075531256945, # occ, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.002426022161, # occ, tight + "OMP3 TOTAL GRADIENT": np.array( # occ, tight [ - [0.00000000e00, 9.86076132e-31, 3.05278616e-03], - [1.23259516e-32, 0.00000000e00, -5.57401307e-03], - [-5.95843028e-19, 1.94617102e-02, 1.26080391e-03], - [5.95843028e-19, -1.94617102e-02, 1.26080391e-03], + 0.0, + 0.000000000000, + 0.008456348171, + 0.0, + 0.000000000000, + -0.008291902042, + 0.0, + 0.013097750811, + -0.000082223065, + 0.0, + -0.013097750811, + -0.000082223065, ] - ), - # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), - # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), - }, - }, - { - "meta": { - "system": "nh2", - "basis": "aug-cc-pvdz", - "scf_type": "pk", - "reference": "uhf", - "fcae": "ae", - "corl_type": "conv", - }, - "data": { - "HF TOTAL ENERGY": _scf_nh2_adz_pk_uhf, - "HF TOTAL GRADIENT": _grad_scf_nh2_adz_pk_uhf, - "HF TOTAL HESSIAN": _hess_scf_nh2_adz_pk_uhf, - "MP2 CORRELATION ENERGY": -0.15485993330517828, - "MP2 SINGLES ENERGY": 0.0, - "MP2 SAME-SPIN CORRELATION ENERGY": -0.03520162545964887, - "MP2 TOTAL GRADIENT": np.array( + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001061018532, # occ, tight + "OREMP2 CORRELATION ENERGY": -0.078996001732, # occ, tight + "OREMP2 SAME-SPIN CORRELATION ENERGY": -0.002398210306, # occ, tight + "OREMP2 TOTAL GRADIENT": np.array( # occ, tight [ 0.0, + 0.000000000000, + 0.005898073051, 0.0, - 0.025490652204, + 0.000000000000, + -0.005790147152, 0.0, - 0.013491755791, - -0.012745326102, + 0.014384641403, + -0.000053962950, 0.0, - -0.013491755791, - -0.012745326102, + -0.014384641403, + -0.000053962950, ] ).reshape((-1, 3)), - "MP2 TOTAL HESSIAN": np.array( # cfour + "OLCCD REFERENCE CORRECTION ENERGY": 0.0014842084, # p4n + "OLCCD CORRELATION ENERGY": -0.0847413506, # p4n + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0024486744, # occ + "OLCCD TOTAL GRADIENT": np.array( # occ [ - [-0.02198237, 0.0, 0.0, 0.01099118, 0.0, 0.0, 0.01099118, 0.0, 0.0], - [0.0, 0.62517441, 0.0, 0.0, -0.31258721, 0.24829043, 0.0, -0.31258721, -0.24829043], - [0.0, 0.0, 0.39893991, 0.0, 0.19093143, -0.19946995, 0.0, -0.19093143, -0.19946995], - [0.01099118, 0.0, 0.0, -0.00995947, 0.0, 0.0, -0.00103171, 0.0, 0.0], + 0.0, + 0.0, + 0.002952428656, + 0.0, + 0.0, + -0.002937832654, + -0.0, + 0.015746258127, + -0.000007298001, + 0.0, + -0.015746258127, + -0.000007298001, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.001165795, # qchem + "OCCD CORRELATION ENERGY": -0.082188930, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0, 0, 0.00520110, 0, 0, -0.00505850, 0.0, 0.01487527, -0.00007130, 0.0, -0.01487527, -0.00007130] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "SVWN TOTAL ENERGY": -25.88281835226915, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [ + 0.0, + -0.0, + -0.007517701008, + 0.0, + -0.0, + 0.00226814353, + -0.0, + 0.036127961709, + 0.002624776187, + 0.0, + -0.036127961709, + 0.002624776187, + ] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590, findif-5 + [ + -0.001865509938, + 0.0, + 0.0, + 0.002269947766, + 0.0, + 0.0, + -0.000202218914, + 0.0, + 0.0, + -0.000202218914, + 0.0, + 0.0, + 0.0, + -0.002096501204, + 0.0, + 0.0, + 0.002406884872, + 0.0, + 0.0, + -0.000155191834, + -0.000138790593, + 0.0, + -0.000155191834, + 0.000138790593, + 0.0, + 0.0, + 0.209856775843, + 0.0, + 0.0, + -0.211646788845, + 0.0, + 0.003612344032, + 0.000895006501, + 0.0, + -0.003612344032, + 0.000895006501, + 0.002269947766, + 0.0, + 0.0, + -0.001881222548, + 0.0, + 0.0, + -0.000194362609, + 0.0, + 0.0, + -0.000194362609, + 0.0, + 0.0, + 0.0, + 0.002406884872, + 0.0, + 0.0, + -0.00196262459, + 0.0, + 0.0, + -0.000222130141, + 0.000081041368, + 0.0, + -0.000222130141, + -0.000081041368, + 0.0, + 0.0, + -0.211646788845, + 0.0, + 0.0, + 0.211526661243, + 0.0, + 0.000036018441, + 0.000060063801, + 0.0, + -0.000036018441, + 0.000060063801, + -0.000202218914, + 0.0, + 0.0, + -0.000194362609, + 0.0, + 0.0, + -0.025533348395, + 0.0, + 0.0, + 0.025929929918, + 0.0, + 0.0, + 0.0, + -0.000155191834, + 0.003612344032, + 0.0, + -0.000222130141, + 0.000036018441, + 0.0, + 0.408474646099, + -0.001795306624, + 0.0, + -0.408097324124, + -0.001853055849, + 0.0, + -0.000138790593, + 0.000895006501, + 0.0, + 0.000081041368, + 0.000060063801, + 0.0, + -0.001795306624, + -0.026299434591, + 0.0, + 0.001853055849, + 0.025344364289, + -0.000202218914, + 0.0, + 0.0, + -0.000194362609, + 0.0, + 0.0, + 0.025929929918, + 0.0, + 0.0, + -0.025533348395, + 0.0, + 0.0, + 0.0, + -0.000155191834, + -0.003612344032, + 0.0, + -0.000222130141, + -0.000036018441, + 0.0, + -0.408097324124, + 0.001853055849, + 0.0, + 0.408474646099, + 0.001795306624, + 0.0, + 0.000138790593, + 0.000895006501, + 0.0, + -0.000081041368, + 0.000060063801, + 0.0, + -0.001853055849, + 0.025344364289, + 0.0, + 0.001795306624, + -0.026299434591, + ] + ).reshape((12, 12)), + "PBE TOTAL ENERGY": -26.04681636799003, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590 + [ + [-0.000000000000, -0.000000000000, -0.002915908298], + [0.000000000000, 0.000000000000, -0.000179663088], + [-0.000000000000, 0.026137498638, 0.001547791345], + [0.000000000000, -0.026137498638, 0.001547791345], + ] + ), + "B3LYP TOTAL ENERGY": -26.1140057832643038, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590 + [ + [1.97215226e-31, 0.00000000e00, 3.32365409e-03], + [0.00000000e00, -1.05926147e-32, -5.83320285e-03], + [-5.87137508e-19, 1.91773664e-02, 1.25496529e-03], + [5.87137508e-19, -1.91773664e-02, 1.25496529e-03], + ] + ), + "B3LYP5 TOTAL ENERGY": -26.0893142594464784, # psi 99,590 + "B3LYP5 TOTAL GRADIENT": np.array( # psi 99,590 + [ + [0.00000000e00, 9.86076132e-31, 3.05278616e-03], + [1.23259516e-32, 0.00000000e00, -5.57401307e-03], + [-5.95843028e-19, 1.94617102e-02, 1.26080391e-03], + [5.95843028e-19, -1.94617102e-02, 1.26080391e-03], + ] + ), + "WB97X TOTAL ENERGY": -26.09949538872584, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202, findif-5 + [ + 0.0, + 0.0, + 0.003387202757, + 0.0, + -0.0, + -0.006573452287, + -0.0, + 0.01815316913, + 0.001592986157, + 0.0, + -0.01815316913, + 0.001592986157, + ] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_pk_uhf, + "B2PLYP TOTAL ENERGY": -26.072947373723, # nwc 99,590 + # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), + }, + }, + { + "meta": { + "system": "nh2", + "basis": "aug-cc-pvdz", + "scf_type": "pk", + "reference": "uhf", + "fcae": "ae", + "corl_type": "conv", + "sdsc": "sd", + }, + "data": { + "HF TOTAL ENERGY": _scf_nh2_adz_pk_uhf, + "HF TOTAL GRADIENT": _grad_scf_nh2_adz_pk_uhf, + "HF TOTAL HESSIAN": _hess_scf_nh2_adz_pk_uhf, + "MP2 CORRELATION ENERGY": -0.15485993330517828, + "MP2 SINGLES ENERGY": 0.0, + "MP2 SAME-SPIN CORRELATION ENERGY": -0.03520162545964887, + "MP2 TOTAL GRADIENT": np.array( + [ + 0.0, + 0.0, + 0.025490652204, + 0.0, + 0.013491755791, + -0.012745326102, + 0.0, + -0.013491755791, + -0.012745326102, + ] + ).reshape((-1, 3)), + "MP2 TOTAL HESSIAN": np.array( # cfour + [ + [-0.02198237, 0.0, 0.0, 0.01099118, 0.0, 0.0, 0.01099118, 0.0, 0.0], + [0.0, 0.62517441, 0.0, 0.0, -0.31258721, 0.24829043, 0.0, -0.31258721, -0.24829043], + [0.0, 0.0, 0.39893991, 0.0, 0.19093143, -0.19946995, 0.0, -0.19093143, -0.19946995], + [0.01099118, 0.0, 0.0, -0.00995947, 0.0, 0.0, -0.00103171, 0.0, 0.0], [0.0, -0.31258721, 0.19093143, 0.0, 0.33968697, -0.21961093, 0.0, -0.02709976, 0.0286795], [0.0, 0.24829043, -0.19946995, 0.0, -0.21961093, 0.19053107, 0.0, -0.0286795, 0.00893888], [0.01099118, 0.0, 0.0, -0.00103171, 0.0, 0.0, -0.00995947, 0.0, 0.0], @@ -3224,6 +4227,9 @@ "CISD CORRELATION ENERGY": -0.16787805277043, # vcc "QCISD CORRELATION ENERGY": -0.17409647936869, # vcc "QCISD(T) CORRECTION ENERGY": -0.00371845, # vcc only + "REMP2 CORRELATION ENERGY": -0.172501515758, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.034548274152, # occ, tight "LCCD CORRELATION ENERGY": -0.1770086091, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0341268118, # occ @@ -3252,6 +4258,11 @@ [0.0, -0.2467696, -0.19931738, 0.0, 0.02838466, 0.01001413, 0.0, 0.21838493, 0.18930325], ] ), + "BCCD CORRELATION ENERGY": -0.173674381451717, # ccenergy + "CC2 CORRELATION ENERGY": -0.156061046320285, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.026664454971, 0.0, 0.014117073057, -0.013332227485, 0.0, -0.014117073057, -0.013332227485] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.17387203707017695, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.033935818857082, @@ -3363,7 +4374,9 @@ ], ] ), - "A-(T) CORRECTION ENERGY": -0.00376395919, # mrcc + "A-(T) CORRECTION ENERGY": -0.00376395919, # mrcc only + "B(T) CORRECTION ENERGY": -0.004031201058265, # ccenergy + "CC3 CORRELATION ENERGY": -0.177840345513789, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.17782828147829832, # mrcc "CCSDT-1A TOTAL GRADIENT": np.array( # mrcc [[0.0, 0.0, 0.0311852], [0.0, 0.01683584, -0.0155926], [0.0, -0.01683584, -0.0155926]] @@ -3378,9 +4391,182 @@ [[0.0, 0.0, 0.03102835], [0.0, 0.01674637, -0.01551417], [0.0, -0.01674637, -0.01551417]] ), "CCSDT CORRELATION ENERGY": -0.17817199774450, # vcc + "OMP2 REFERENCE CORRECTION ENERGY": 0.001367125249, # occ, tight + "OMP2 CORRELATION ENERGY": -0.156193539287, # occ, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.035974458829, # occ, tight + "OMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.026928654402, + 0.0, + 0.014250914503, + -0.013464327201, + 0.0, + -0.014250914503, + -0.013464327201, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001173901427, # occ, tight + "OMP2.5 CORRELATION ENERGY": -0.164044987798, # occ, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.035847752938, # occ, tight + "OMP2.5 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.027494393497, + 0.0, + 0.014585953475, + -0.013747196748, + 0.0, + -0.014585953475, + -0.013747196748, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.001024209316, # occ, tight + "OMP3 CORRELATION ENERGY": -0.171933638522, # occ, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.035747352644, # occ, tight + "OMP3 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.028120207496, + 0.0, + 0.014956911575, + -0.014060103748, + 0.0, + -0.014956911575, + -0.014060103748, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.00111233720168, # occ, tight + "OREMP2 CORRELATION ENERGY": -0.17359939909712, # occ, tight + "OREMP2 SAME-SPIN CORRELATION ENERGY": -0.03496212583967, # occ, tight + "OREMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.030225286483, + 0.0, + 0.016238459426, + -0.015112643242, + 0.0, + -0.016238459426, + -0.015112643242, + ] + ).reshape((-1, 3)), "OLCCD REFERENCE CORRECTION ENERGY": 0.0011118724, # p4n "OLCCD CORRELATION ENERGY": -0.1781057943, # p4n "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0344689234, # occ + "OLCCD TOTAL GRADIENT": np.array( # occ + [0.0, 0.0, 0.031877236853, -0.0, 0.017265501329, -0.015938618427, 0.0, -0.017265501329, -0.015938618427] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.000987794, # qchem + "OCCD CORRELATION ENERGY": -0.173720242, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0.0, 0.0, 0.02915872, 0.0, 0.01575094, -0.01457936, 0.0, -0.01575094, -0.01457936] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "SVWN TOTAL ENERGY": -55.57342920898311, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [ + 0.0, + -0.0, + 0.035459696882, + -0.0, + 0.020922069258, + -0.017729858581, + 0.0, + -0.020922069258, + -0.017729858581, + ] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590, findif-5 + [ + -0.030579382195, + 0.0, + 0.0, + 0.015289691097, + 0.0, + 0.0, + 0.015289691097, + 0.0, + 0.0, + 0.0, + 0.613663951137, + 0.0, + 0.0, + -0.306831975569, + 0.247172797408, + 0.0, + -0.306831975569, + -0.247172797408, + 0.0, + 0.0, + 0.378510939602, + 0.0, + 0.193986821538, + -0.189255469801, + 0.0, + -0.193986821538, + -0.189255469801, + 0.015289691097, + 0.0, + 0.0, + -0.014567116318, + 0.0, + 0.0, + -0.000722574779, + 0.0, + 0.0, + 0.0, + -0.306831975569, + 0.193986821538, + 0.0, + 0.332462439675, + -0.220579809473, + 0.0, + -0.025630464106, + 0.026592987935, + 0.0, + 0.247172797408, + -0.189255469801, + 0.0, + -0.220579809473, + 0.182536700314, + 0.0, + -0.026592987935, + 0.006718769487, + 0.015289691097, + 0.0, + 0.0, + -0.000722574779, + 0.0, + 0.0, + -0.014567116318, + 0.0, + 0.0, + 0.0, + -0.306831975569, + -0.193986821538, + 0.0, + -0.025630464106, + -0.026592987935, + 0.0, + 0.332462439675, + 0.220579809473, + 0.0, + -0.247172797408, + -0.189255469801, + 0.0, + 0.026592987935, + 0.006718769487, + 0.0, + 0.220579809473, + 0.182536700314, + ] + ).reshape((9, 9)), "PBE TOTAL ENERGY": -55.81473169701641, # psi 99,590 "PBE TOTAL GRADIENT": np.array( # psi 99,590 [ @@ -3405,6 +4591,12 @@ [4.63472198e-19, -1.51381508e-02, -1.35409990e-02], ] ), + "WB97X TOTAL ENERGY": -55.86921249027672, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202, findif-5 + [0.0, -0.0, 0.024476615666, -0.0, 0.01345957865, -0.012237852106, 0.0, -0.01345957865, -0.012237852106] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_pk_uhf, + "B2PLYP TOTAL ENERGY": -55.83362937, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -3417,6 +4609,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_uhf, @@ -3462,6 +4655,9 @@ "CISD CORRELATION ENERGY": -0.20576009250440, # vcc "QCISD CORRELATION ENERGY": -0.21351003301667, # vcc "QCISD(T) CORRECTION ENERGY": -0.00505349, # vcc only + "REMP2 CORRELATION ENERGY": -0.212452538490, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.040608279810, # occ, tight "LCCD CORRELATION ENERGY": -0.2167878305, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0401306050, # occ @@ -3490,6 +4686,11 @@ [0.0, -0.23106683, -0.19412514, 0.0, 0.02793601, 0.01055554, 0.0, 0.20313082, 0.1835696], ] ), + "BCCD CORRELATION ENERGY": -0.21309874, # ccenergy + "CC2 CORRELATION ENERGY": -0.196947901479342, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.015143356579, 0.0, 0.006071754877, -0.00757167829, 0.0, -0.006071754877, -0.00757167829] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.213298055172, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.039907245914335, @@ -3601,24 +4802,210 @@ ], ] ), + "A-(T) CORRECTION ENERGY": -0.0050643207, # mrcc only + "B(T) CORRECTION ENERGY": -0.00537543, # ccenergy + "CC3 CORRELATION ENERGY": -0.218616407232958, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.218598725534, # ecc "CCSDT-1B CORRELATION ENERGY": -0.218597572977, # ecc "CCSDT-2 CORRELATION ENERGY": -0.218253889761, # ecc "CCSDT-3 CORRELATION ENERGY": -0.21827269362849, # vcc "CCSDT CORRELATION ENERGY": -0.21884856037681, # vcc - "OLCCD REFERENCE CORRECTION ENERGY": 0.0012856903, # p4n - "OLCCD CORRELATION ENERGY": -0.2180560836, # p4n - "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0405122800, # occ - "PBE TOTAL ENERGY": -55.83097248811423, # psi 99,590 - "PBE TOTAL GRADIENT": np.array( # psi 99,590 + "OMP2 REFERENCE CORRECTION ENERGY": 0.001570623297, # occ, tight + "OMP2 CORRELATION ENERGY": -0.197071770029, # occ, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.042459313035, # occ, tight + "OMP2 TOTAL GRADIENT": np.array( # occ, tight [ - [0.000000000000, 0.000000000000, 0.029614373344], - [-0.000000000000, 0.015644026348, -0.014807315411], - [0.000000000000, -0.015644026348, -0.014807315411], + 0.0, + 0.000000000000, + 0.015314078302, + 0.0, + 0.006156840975, + -0.007657039151, + 0.0, + -0.006156840975, + -0.007657039151, ] - ), - "B3LYP TOTAL ENERGY": -55.9072559501566744, # psi 99,590 - "B3LYP TOTAL GRADIENT": np.array( # psi 99,590 + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001350812375, # occ, tight + "OMP2.5 CORRELATION ENERGY": -0.204522615491, # occ, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.042086148458, # occ, tight + "OMP2.5 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.015411835251, + 0.0, + 0.006162364663, + -0.007705917626, + 0.0, + -0.006162364663, + -0.007705917626, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.001177767799, # occ, tight + "OMP3 CORRELATION ENERGY": -0.212015174087, # occ, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.041743491888, # occ, tight + "OMP3 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.015569868835, + 0.0, + 0.006203313670, + -0.007784934417, + 0.0, + -0.006203313670, + -0.007784934417, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001287772670, # occ, tight + "OREMP2 CORRELATION ENERGY": -0.213723933328, # occ, tight + "OREMP2 SAME-SPIN CORRELATION ENERGY": -0.041063372010, # occ, tight + "OREMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.017901979677, + 0.0, + 0.007592988824, + -0.008950989839, + 0.0, + -0.007592988824, + -0.008950989839, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.0012856903, # p4n + "OLCCD CORRELATION ENERGY": -0.2180560836, # p4n + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0405122800, # occ + "OLCCD TOTAL GRADIENT": np.array( # occ + [ + -0.0, + 0.0, + 0.019472272298, + -0.0, + 0.008522161738, + -0.009736136149, + 0.0, + -0.008522161738, + -0.009736136149, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.001155093, # qchem + "OCCD CORRELATION ENERGY": -0.213139955, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0, 0, 0.01669862, 0, 0.00707632, -0.00834931, 0, -0.00707632, -0.00834931], + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "SVWN TOTAL ENERGY": -55.59258481155869, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [ + 0.0, + -0.0, + 0.028874430294, + -0.0, + 0.016569686304, + -0.014437276469, + 0.0, + -0.016569686304, + -0.014437276469, + ] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590, findif-5 + [ + -0.024900525225, + 0.0, + 0.0, + 0.012450262612, + 0.0, + 0.0, + 0.012450262612, + 0.0, + 0.0, + 0.0, + 0.593486612872, + 0.0, + 0.0, + -0.296743306436, + 0.237253020083, + 0.0, + -0.296743306436, + -0.237253020083, + 0.0, + 0.0, + 0.37094039592, + 0.0, + 0.185028837929, + -0.18547019796, + 0.0, + -0.185028837929, + -0.18547019796, + 0.012450262612, + 0.0, + 0.0, + -0.011707373731, + 0.0, + 0.0, + -0.000742888881, + 0.0, + 0.0, + 0.0, + -0.296743306436, + 0.185028837929, + 0.0, + 0.322753427832, + -0.211140929006, + 0.0, + -0.026010121396, + 0.026112091077, + 0.0, + 0.237253020083, + -0.18547019796, + 0.0, + -0.211140929006, + 0.178278351827, + 0.0, + -0.026112091077, + 0.007191846133, + 0.012450262612, + 0.0, + 0.0, + -0.000742888881, + 0.0, + 0.0, + -0.011707373731, + 0.0, + 0.0, + 0.0, + -0.296743306436, + -0.185028837929, + 0.0, + -0.026010121396, + -0.026112091077, + 0.0, + 0.322753427832, + 0.211140929006, + 0.0, + -0.237253020083, + -0.18547019796, + 0.0, + 0.026112091077, + 0.007191846133, + 0.0, + 0.211140929006, + 0.178278351827, + ] + ).reshape((9, 9)), + "PBE TOTAL ENERGY": -55.83097248811423, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590 + [ + [0.000000000000, 0.000000000000, 0.029614373344], + [-0.000000000000, 0.015644026348, -0.014807315411], + [0.000000000000, -0.015644026348, -0.014807315411], + ] + ), + "B3LYP TOTAL ENERGY": -55.9072559501566744, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590 [ [0.00000000e00, 3.15544362e-30, 1.99929859e-02], [-3.19390336e-19, 1.04320800e-02, -9.99655055e-03], @@ -3633,6 +5020,22 @@ [3.25473520e-19, -1.06307719e-02, -1.01358376e-02], ] ), + "WB97X TOTAL ENERGY": -55.88527882823288, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202, findif-5 + [ + 0.0, + -0.0, + 0.017275816568, + -0.0, + 0.008857017471, + -0.008637144304, + 0.0, + -0.008857017471, + -0.008637144304, + ] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_pk_uhf, + "B2PLYP TOTAL ENERGY": -55.861074179189, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -3645,6 +5048,49 @@ "reference": "rohf", "fcae": "ae", "corl_type": "conv", + "sdsc": "sd", + }, + "data": { + "HF TOTAL ENERGY": _scf_bh3p_dz_pk_rohf, + "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_pk_rohf, + "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_pk_rohf, + "CISD CORRELATION ENERGY": -0.08129169589155, # vcc, sd == sc + "LCCSD CORRELATION ENERGY": -0.08620498, # vcc nyi != p4n, sd == sc + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.08239000, # vcc nyi, sd == sc + "CCD CORRELATION ENERGY": -0.08115920440309, # vcc nyi == tce, sd == sc + "CCSD CORRELATION ENERGY": -0.08357160616, # sd == sc + "CCSD SINGLES ENERGY": -0.0011743271, # sd == sd + "CCSD SAME-SPIN CORRELATION ENERGY": -0.00244892164, # sd == sc + "CCSD TOTAL GRADIENT": np.array( # sd == sc + [ + 0.0, + 0.0, + 0.005568141758, + 0.0, + 0.0, + -0.005430974166, + 0.0, + 0.014884143028, + -0.000068583796, + 0.0, + -0.014884143028, + -0.000068583796, + ] + ).reshape((-1, 3)), + "CCSDT CORRELATION ENERGY": -0.08463562959121, # vcc, sd == sc + # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), + }, + }, + { + "meta": { + "system": "bh3p", + "basis": "cc-pvdz", + "scf_type": "pk", + "reference": "rohf", + "fcae": "ae", + "corl_type": "conv", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_rohf, @@ -3852,14 +5298,34 @@ [0.0, -0.012728956474, -0.000114109949], ] ), - "MP4(SDQ) CORRELATION ENERGY": -0.08034256, # vcc only - "MP4(T) CORRECTION ENERGY": -0.000301596734, # vcc only - "CISD CORRELATION ENERGY": -0.08129169589155, # vcc + "MP4(SDQ) CORRELATION ENERGY": -0.08034256, # vcc only, sc + "MP4(T) CORRECTION ENERGY": -0.000301596734, # vcc only, sc + "ZAPT2 CORRELATION ENERGY": -0.059970897396607, # detci (ZAPT uses special canonicalization but grouping here with sc) + "CISD CORRELATION ENERGY": -0.08129169589155, # vcc, sc # "CISD CORRELATION ENERGY": -0.08142433, # detci != vcc ??? - "LCCD CORRELATION ENERGY": -0.0834094914, # p4n - "LCCSD CORRELATION ENERGY": -0.0861427228, # p4n - # "LCCSD CORRELATION ENERGY": -0.08620498, # vcc != p4n - "CCD CORRELATION ENERGY": -0.08115920440309, # vcc nyi ??? + "LCCD CORRELATION ENERGY": -0.0834094914, # p4n (likely sd since tce matches but leaving here until detangled) + # "LCCSD CORRELATION ENERGY": -0.0861427228, # p4n (was uncommented) + "LCCSD CORRELATION ENERGY": -0.08620498, # vcc nyi != p4n + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.08239000, # vcc nyi + "CCD CORRELATION ENERGY": -0.08115920440309, # vcc nyi == tce, sd == sc + "BCCD CORRELATION ENERGY": -0.08369728, # ccenergy + "CC2 CORRELATION ENERGY": -0.061327748089029, # ccenergy only, sc + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [ + 0.0, + 0.0, + 0.012124989222, + 0.0, + 0.0, + -0.011720065418, + 0.0, + 0.010555684617, + -0.000202461902, + 0.0, + -0.010555684617, + -0.000202461902, + ] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.08357160616, "CCSD SINGLES ENERGY": -0.0011743271, "CCSD SAME-SPIN CORRELATION ENERGY": -0.00244892164, @@ -3888,10 +5354,125 @@ [0.00000000000000, -0.01496337127168, -0.00002655383929], ] ), + "A-(T) CORRECTION ENERGY": -0.000699810766, # mrcc only, sc + "B(T) CORRECTION ENERGY": -0.00063370, # ccenergy + "CC3 CORRELATION ENERGY": -0.084278230953036, # ccenergy only, sc "CCSDT CORRELATION ENERGY": -0.08463562959121, # vcc + "OMP2 REFERENCE CORRECTION ENERGY": -0.001128749117, # occ, tight + "OMP2 CORRELATION ENERGY": -0.061388690115, # occ, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.001971155774, # occ, tight + "OMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.012017560624, + 0.0, + 0.000000000000, + -0.011623175532, + 0.0, + 0.010549441086, + -0.000197192546, + 0.0, + -0.010549441086, + -0.000197192546, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.000959439798, # occ, tight + "OMP2.5 CORRELATION ENERGY": -0.069204306750, # occ, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.002198682531, # occ, tight + "OMP2.5 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.010260857036, + 0.0, + 0.000000000000, + -0.009981284641, + 0.0, + 0.011818192175, + -0.000139786197, + 0.0, + -0.011818192175, + -0.000139786197, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": -0.000746435584, # occ, tight + "OMP3 CORRELATION ENERGY": -0.077055367311, # occ, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.002426022153, # occ, tight + "OMP3 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.008456347254, + 0.0, + 0.000000000000, + -0.008291901023, + 0.0, + 0.013097750617, + -0.000082223115, + 0.0, + -0.013097750617, + -0.000082223115, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.000463092111, # occ, tight + "OREMP2 CORRELATION ENERGY": -0.080520111623, # occ, tight + "OREMP2 SAME-SPIN CORRELATION ENERGY": -0.002398210414, # occ, tight + "OREMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.005898074368, + 0.0, + 0.000000000000, + -0.005790150595, + 0.0, + 0.014384643442, + -0.000053961887, + 0.0, + -0.014384643442, + -0.000053961887, + ] + ).reshape((-1, 3)), "OLCCD REFERENCE CORRECTION ENERGY": -0.0000399018, # p4n "OLCCD CORRELATION ENERGY": -0.0862654609, # p4n "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0024486744, # occ + "OLCCD TOTAL GRADIENT": np.array( # occ + [ + -0.0, + 0.0, + 0.002952428137, + 0.0, + 0.0, + -0.002937832352, + -0.0, + 0.015746258328, + -0.000007297893, + 0.0, + -0.015746258328, + -0.000007297893, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.000358562, # qchem + "OCCD CORRELATION ENERGY": -0.083713042, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem 3-pt findif + [ + 0.0, + 0.0, + 5.200665059079133e-03, + 0.0, + 0.0, + -5.057359056039087e-03, + 0.0, + 1.487654179061328e-02, + -7.165259590676168e-05, + 0.0, + -1.487654176147304e-02, + -7.165259308673899e-05, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, "PBE TOTAL ENERGY": -26.046275584237, # nwc 99,590 "PBE TOTAL GRADIENT": np.array( # nwc 99,590 [ @@ -3931,6 +5512,46 @@ "reference": "rohf", "fcae": "ae", "corl_type": "conv", + "sdsc": "sd", + }, + "data": { + "HF TOTAL ENERGY": _scf_nh2_adz_pk_rohf, + "HF TOTAL GRADIENT": _grad_scf_nh2_adz_pk_rohf, + "HF TOTAL HESSIAN": _hess_scf_nh2_adz_pk_rohf, + "CISD CORRELATION ENERGY": -0.17186174301557, # vcc, sd == sc + "LCCSD CORRELATION ENERGY": -0.18308771, # vcc nyi != p4n, sd == sc + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.14511930, # vcc nyi, sd == sc + "CCD CORRELATION ENERGY": -0.17475513572639, # vcc nyi == tce, sd == sc + "CCSD CORRELATION ENERGY": -0.178236032911, # == sc + "CCSD SINGLES ENERGY": -0.00327524740575, # == sc + "CCSD SAME-SPIN CORRELATION ENERGY": -0.033982707798170, # == sc + "CCSD TOTAL GRADIENT": np.array( # == sc + [ + 0.0, + 0.0, + 0.029273628227, + 0.0, + 0.015808308241, + -0.014636814114, + 0.0, + -0.015808308241, + -0.014636814114, + ] + ).reshape((-1, 3)), + "CCSDT CORRELATION ENERGY": -0.18258437583017, # vcc, sd == sc + # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), + }, + }, + { + "meta": { + "system": "nh2", + "basis": "aug-cc-pvdz", + "scf_type": "pk", + "reference": "rohf", + "fcae": "ae", + "corl_type": "conv", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_rohf, @@ -3974,14 +5595,21 @@ [0.00000000000000, -0.01453084545981, -0.01365528117220], ] ), - "MP4(SDQ) CORRELATION ENERGY": -0.17767316, # vcc only - "MP4(T) CORRECTION ENERGY": -0.003373917694, # vcc only - "CISD CORRELATION ENERGY": -0.17186174301557, # vcc + "MP4(SDQ) CORRELATION ENERGY": -0.17767316, # vcc only, sc + "MP4(T) CORRECTION ENERGY": -0.003373917694, # vcc only, sc + "ZAPT2 CORRELATION ENERGY": -0.15875585, # gamess + "CISD CORRELATION ENERGY": -0.17186174301557, # vcc, sc # "CISD CORRELATION ENERGY": -0.1723668643052676, # detci != vcc ??? - "LCCD CORRELATION ENERGY": -0.1791714105, # p4n - "LCCSD CORRELATION ENERGY": -0.1830545845, # p4n - # "LCCSD CORRELATION ENERGY": -0.18308771, # vcc != p4n - "CCD CORRELATION ENERGY": -0.17475513572639, # vcc nyi ??? + "LCCD CORRELATION ENERGY": -0.1791714105, # p4n (likely sd since tce matches but leaving here until detangled) + # "LCCSD CORRELATION ENERGY": -0.1830545845, # p4n (was uncommented) + "LCCSD CORRELATION ENERGY": -0.18308771, # vcc nyi != p4n + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.14511930, # vcc nyi + "CCD CORRELATION ENERGY": -0.17475513572639, # vcc nyi == tce, sd=sc + "BCCD CORRELATION ENERGY": -0.178088085354507, # ccenergy + "CC2 CORRELATION ENERGY": -0.160653595161691, # ccenergy only, sc + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.026788245572, 0.0, 0.014198292126, -0.013394122786, 0.0, -0.014198292126, -0.013394122786] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.178236032911, "CCSD SINGLES ENERGY": -0.00327524740575, "CCSD SAME-SPIN CORRELATION ENERGY": -0.033982707798170, @@ -4007,9 +5635,106 @@ ] ), "CCSDT CORRELATION ENERGY": -0.18258437583017, # vcc + "A-(T) CORRECTION ENERGY": -0.003817334300, # mrcc only, sc + "B(T) CORRECTION ENERGY": -0.004031201058265, # ccenergy + "CC3 CORRELATION ENERGY": -0.182256450138473, # ccenergy only, sc + "OMP2 REFERENCE CORRECTION ENERGY": -0.003046592318, # occ, tight + "OMP2 CORRELATION ENERGY": -0.160607243189, # occ, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.035974454782, # occ, tight + "OMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.026928663612, + 0.0, + 0.014250907985, + -0.013464331806, + 0.0, + -0.014250907985, + -0.013464331806, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.003239801580, # occ, tight + "OMP2.5 CORRELATION ENERGY": -0.168458692138, # occ, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.035847753329, # occ, tight + "OMP2.5 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.027494386758, + 0.0, + 0.014585950370, + -0.013747193379, + 0.0, + -0.014585950370, + -0.013747193379, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": -0.003389494582, # occ, tight + "OMP3 CORRELATION ENERGY": -0.176347342433, # occ, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.035747352645, # occ, tight + "OMP3 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.028120207297, + 0.0, + 0.014956911348, + -0.014060103648, + 0.0, + -0.014956911348, + -0.014060103648, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.003301366872, # occ, tight + "OREMP2 CORRELATION ENERGY": -0.178013102573, # occ, tight + "OREMP2 SAME-SPIN CORRELATION ENERGY": -0.034962125667, # occ, tight + "OREMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.030225286965, + 0.0, + 0.016238460656, + -0.015112643483, + 0.0, + -0.016238460656, + -0.015112643483, + ] + ).reshape((-1, 3)), "OLCCD REFERENCE CORRECTION ENERGY": -0.0033018315, # p4n "OLCCD CORRELATION ENERGY": -0.1825194982, # p4n "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0344689234, # occ + "OLCCD TOTAL GRADIENT": np.array( # occ + [ + -0.0, + 0.0, + 0.031877236593, + -0.0, + 0.017265501452, + -0.015938618296, + 0.0, + -0.017265501452, + -0.015938618296, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.003426081, # qchem + "OCCD CORRELATION ENERGY": -0.178133946, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem 3-pt findif + [ + 0.0, + 2.629008122312371e-10, + 2.915992176610871e-02, + 0.0, + 1.575113356366842e-02, + -1.457995768916476e-02, + 0.0, + -1.575113354590485e-02, + -1.457995755771435e-02, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, "PBE TOTAL ENERGY": -55.813318056978, # nwc 99,590 "PBE TOTAL GRADIENT": np.array( # nwc 99,590 [ @@ -4046,22 +5771,62 @@ "reference": "rohf", "fcae": "ae", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_rohf, "HF TOTAL GRADIENT": _grad_scf_nh2_qz2p_pk_rohf, "HF TOTAL HESSIAN": _hess_scf_nh2_qz2p_pk_rohf, - "MP2 CORRELATION ENERGY": -0.2005395272, - "MP2 SINGLES ENERGY": -0.00298375, - "MP2 SAME-SPIN CORRELATION ENERGY": -0.04178535, - "MP2 TOTAL GRADIENT": np.array( + "CISD CORRELATION ENERGY": -0.20988111766307, # vcc, sd == sc + "LCCSD CORRELATION ENERGY": -0.22316121, # vcc nyi != p4n ???, sd == sc + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.17910640, # vcc nyi, sd == sc + "CCD CORRELATION ENERGY": -0.21415436056607, # vcc nyi == tce, sd == sc + "CCSD CORRELATION ENERGY": -0.217849506326, # sd == sc + "CCSD SINGLES ENERGY": -0.00338286103325, # sd == sc + "CCSD SAME-SPIN CORRELATION ENERGY": -0.039891470497466, # sd == sc + "CCSD TOTAL GRADIENT": np.array( # sd == sc [ 0.0, 0.0, - 0.0138883429, + 0.016833254665, 0.0, - 0.005389090661, - -0.00694417145, + 0.007144029475, + -0.008416627332, + 0.0, + -0.007144029475, + -0.008416627332, + ] + ).reshape((-1, 3)), + "CCSDT CORRELATION ENERGY": -0.22345631762464, # vcc, sd == sc + # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), + }, + }, + { + "meta": { + "system": "nh2", + "basis": "cfour-qz2p", + "scf_type": "pk", + "reference": "rohf", + "fcae": "ae", + "corl_type": "conv", + "sdsc": "sc", + }, + "data": { + "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_rohf, + "HF TOTAL GRADIENT": _grad_scf_nh2_qz2p_pk_rohf, + "HF TOTAL HESSIAN": _hess_scf_nh2_qz2p_pk_rohf, + "MP2 CORRELATION ENERGY": -0.2005395272, + "MP2 SINGLES ENERGY": -0.00298375, + "MP2 SAME-SPIN CORRELATION ENERGY": -0.04178535, + "MP2 TOTAL GRADIENT": np.array( + [ + 0.0, + 0.0, + 0.0138883429, + 0.0, + 0.005389090661, + -0.00694417145, 0.0, -0.005389090661, -0.00694417145, @@ -4089,14 +5854,21 @@ [0.0, -0.005743113908, -0.007334618759], ] ), - "MP4(SDQ) CORRELATION ENERGY": -0.21748938, # vcc only - "MP4(T) CORRECTION ENERGY": -0.004777946072, # vcc only + "MP4(SDQ) CORRELATION ENERGY": -0.21748938, # vcc only, sc + "MP4(T) CORRECTION ENERGY": -0.004777946072, # vcc only, sc + "ZAPT2 CORRELATION ENERGY": -0.19975428, # gamess "CISD CORRELATION ENERGY": -0.20988111766307, # vcc # "CISD CORRELATION ENERGY": -0.21038651, # detci != vcc ??? - "LCCD CORRELATION ENERGY": -0.2191039411, # p4n - "LCCSD CORRELATION ENERGY": -0.2231241199, # p4n - # "LCCSD CORRELATION ENERGY": -0.22316121, # vcc != p4n ??? - "CCD CORRELATION ENERGY": -0.21415436056607, # vcc nyi ??? + "LCCD CORRELATION ENERGY": -0.2191039411, # p4n (likely sd since tce matches but leaving here until detangled) + # "LCCSD CORRELATION ENERGY": -0.2231241199, # p4n (was uncommented) + "LCCSD CORRELATION ENERGY": -0.22316121, # vcc nyi != p4n ??? + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.17910640, # vcc nyi + "CCD CORRELATION ENERGY": -0.21415436056607, # vcc nyi == tce, sd == sc + "BCCD CORRELATION ENERGY": -0.21770845, # ccenergy + "CC2 CORRELATION ENERGY": -0.201748666827081, # ccenergy only, sc + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.015270065209, 0.0, 0.006152718989, -0.007635032604, 0.0, -0.006152718989, -0.007635032604] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.217849506326, "CCSD SINGLES ENERGY": -0.00338286103325, "CCSD SAME-SPIN CORRELATION ENERGY": -0.039891470497466, @@ -4121,10 +5893,97 @@ [0.00000000000000, -0.00825727647494, -0.00952898781024], ] ), + "A-(T) CORRECTION ENERGY": -0.005126584825, # mrcc only, sc + "B(T) CORRECTION ENERGY": -0.00537543, # ccenergy + "CC3 CORRELATION ENERGY": -0.223229153563849, # ccenergy only, sc "CCSDT CORRELATION ENERGY": -0.22345631762464, # vcc + "OMP2 REFERENCE CORRECTION ENERGY": -0.003039092557, # occ, tight + "OMP2 CORRELATION ENERGY": -0.201681478150, # occ, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.042459312118, # occ, tight + "OMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.015314087546, + 0.0, + 0.006156841239, + -0.007657043773, + 0.0, + -0.006156841239, + -0.007657043773, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.003258895747, # occ, tight + "OMP2.5 CORRELATION ENERGY": -0.209132323529, # occ, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.042086148395, # occ, tight + "OMP2.5 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.015411833442, + 0.0, + 0.006162364110, + -0.007705916721, + 0.0, + -0.006162364110, + -0.007705916721, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": -0.003431940343, # occ, tight + "OMP3 CORRELATION ENERGY": -0.216624882230, # occ, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.041743491868, # occ, tight + "OMP3 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.015569867435, + 0.0, + 0.006203313291, + -0.007784933717, + 0.0, + -0.006203313291, + -0.007784933717, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.003321935448, # occ, tight + "OREMP2 CORRELATION ENERGY": -0.218333639848, # occ, tight + "OREMP2 SAME-SPIN CORRELATION ENERGY": -0.041063372384, # occ, tight + "OREMP2 TOTAL GRADIENT": np.array( # occ, tight + [ + 0.0, + 0.000000000000, + 0.017901994172, + 0.0, + 0.007592995571, + -0.008950997086, + 0.0, + -0.007592995571, + -0.008950997086, + ] + ).reshape((-1, 3)), "OLCCD REFERENCE CORRECTION ENERGY": -0.0033240178, # p4n "OLCCD CORRELATION ENERGY": -0.2226657917, # p4n "OLCCD SAME-SPIN CORRELATION ENERGY": -0.0405122800, # occ + "OLCCD TOTAL GRADIENT": np.array( # occ + [0.0, 0.0, 0.019472272302, -0.0, 0.008522161726, -0.009736136151, 0.0, -0.008522161726, -0.009736136151] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.00345534, # qchem + "OCCD CORRELATION ENERGY": -0.217749658, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem 3-pt findif + [ + 0.0, + 2.948752353404416e-10, + 1.669883480914791e-02, + 0.0, + 7.076450128096212e-03, + -8.349414756025908e-03, + 0.0, + -7.076449627163584e-03, + -8.349414585495651e-03, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, "PBE TOTAL ENERGY": -55.829414170216, # nwc 99,590 "PBE TOTAL GRADIENT": np.array( # nwc 99,590 [ @@ -4162,6 +6021,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_pk_rhf, @@ -4200,6 +6060,9 @@ "QCISD CORRELATION ENERGY": -0.20699674383631, # vcc "QCISD(T) CORRECTION ENERGY": -0.00180789, # vcc "FCI CORRELATION ENERGY": -0.2092292951, # detci + "REMP2 CORRELATION ENERGY": -0.20642733451785, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.04882718129882, # occ, tight "LCCD CORRELATION ENERGY": -0.2079585027, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.047635656759, # fnocc @@ -4207,10 +6070,27 @@ "LCCSD CORRELATION ENERGY": -0.2087915976, # p4n "LCCSD SINGLES ENERGY": 0.0, "LCCSD SAME-SPIN CORRELATION ENERGY": -0.047754723454, # fnocc + "CEPA(1) CORRELATION ENERGY": -0.2064021969, # fnocc + "CEPA(1) SINGLES ENERGY": 0.0, + "CEPA(1) SAME-SPIN CORRELATION ENERGY": -0.0473671686, # fnocc + "CEPA(3) CORRELATION ENERGY": -0.2047660232, # fnocc + "CEPA(3) SINGLES ENERGY": 0.0, + "CEPA(3) SAME-SPIN CORRELATION ENERGY": -0.0470742732, # fnocc + "ACPF CORRELATION ENERGY": -0.2065398048, # fnocc + "ACPF SINGLES ENERGY": 0.0, + "ACPF SAME-SPIN CORRELATION ENERGY": -0.0473955636, # fnocc + "AQCC CORRELATION ENERGY": -0.2046960774, # fnocc + "AQCC SINGLES ENERGY": 0.0, + "AQCC SAME-SPIN CORRELATION ENERGY": -0.0470964567, # fnocc "CCD CORRELATION ENERGY": -0.20622552201818, # vcc "CCD SINGLES ENERGY": 0.0, "CCD SAME-SPIN CORRELATION ENERGY": -0.04781602, # vcc "CCD TOTAL GRADIENT": np.array([[0.0, 0.0, 0.0011776783], [0.0, 0.0, -0.0011776783]]), # vcc + "BCCD CORRELATION ENERGY": -0.20667693, # ccenergy only + "CC2 CORRELATION ENERGY": -0.2023633612, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.004483211, 0.0, 0.0, -0.004483211] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.2068152041, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.0478712079, @@ -4251,6 +6131,8 @@ "A-CCSD(T) TOTAL GRADIENT": np.array( # ccenergy fd [[0.00000000000, 0.00000000000, 0.00341625320310], [0.00000000000, 0.00000000000, -0.00341625320310]] ), + "B(T) CORRECTION ENERGY": -0.00206676, # ccenergy only + "CC3 CORRELATION ENERGY": -0.208823404506030, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.208822533905, # ecc "CCSDT-1A TOTAL GRADIENT": np.array( # ecc by psi fd STAR [[0.0, 0.0, 0.00350581687383], [0.0, 0.0, -0.00350581687383]] @@ -4311,6 +6193,30 @@ "[Q] CORRECTION ENERGY": -0.000379506649993, # ncc "(Q) CORRECTION ENERGY": -0.000413051703749, # ncc "CCSDTQ CORRELATION ENERGY": -0.209218171097884, # ncc + "OMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2 CORRELATION ENERGY": _knownmissing, + "OMP2 TOTAL GRADIENT": _knownmissing, + "OMP2.5 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2.5 CORRELATION ENERGY": _knownmissing, + "OMP2.5 TOTAL GRADIENT": _knownmissing, + "OMP3 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP3 CORRELATION ENERGY": _knownmissing, + "OMP3 TOTAL GRADIENT": _knownmissing, + "OREMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OREMP2 CORRELATION ENERGY": _knownmissing, + "OREMP2 TOTAL GRADIENT": _knownmissing, + "OLCCD REFERENCE CORRECTION ENERGY": 0.0005535161, # p4n (core-occ rotations neglected) + "OLCCD CORRELATION ENERGY": -0.2086206237, # p4n (core-occ rotations neglected) + "OLCCD TOTAL GRADIENT": _knownmissing, + "OCCD REFERENCE CORRECTION ENERGY": 0.000510311, # qchem + "OCCD CORRELATION ENERGY": -0.206722125, # qchem + "OCCD TOTAL GRADIENT": np.array([0, 0, 0.00227059, 0, 0, -0.00227059]).reshape( # qchem, rearranged + (-1, 3) + ), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_pk_rhf, + "B2PLYP TOTAL ENERGY": -100.363980302665, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -4323,6 +6229,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_pk_rhf, @@ -4458,6 +6365,9 @@ "CISD CORRELATION ENERGY": -0.21764746560900, # vcc "QCISD CORRELATION ENERGY": -0.22775040212176, # vcc "QCISD(T) CORRECTION ENERGY": -0.00485806, # vcc + "REMP2 CORRELATION ENERGY": -0.227138458433, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.050586597452, # occ, tight "LCCD CORRELATION ENERGY": -0.2296135965, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.049154543318, # fnocc @@ -4467,12 +6377,29 @@ "LCCSD CORRELATION ENERGY": -0.2318316308, # p4n "LCCSD SINGLES ENERGY": 0.0, "LCCSD SAME-SPIN CORRELATION ENERGY": -0.049659952324, # fnocc + "CEPA(1) CORRELATION ENERGY": -0.2276613849, # fnocc + "CEPA(1) SINGLES ENERGY": 0.0, + "CEPA(1) SAME-SPIN CORRELATION ENERGY": -0.0489936246, # fnocc + "CEPA(3) CORRELATION ENERGY": -0.2248646422, # fnocc + "CEPA(3) SINGLES ENERGY": 0.0, + "CEPA(3) SAME-SPIN CORRELATION ENERGY": -0.0485143833, # fnocc + "ACPF CORRELATION ENERGY": -0.2278506904, # fnocc + "ACPF SINGLES ENERGY": 0.0, + "ACPF SAME-SPIN CORRELATION ENERGY": -0.0490397538, # fnocc + "AQCC CORRELATION ENERGY": -0.2246992302, # fnocc + "AQCC SINGLES ENERGY": 0.0, + "AQCC SAME-SPIN CORRELATION ENERGY": -0.0485408970, # fnocc "CCD CORRELATION ENERGY": -0.22578168712640, # vcc "CCD SINGLES ENERGY": 0.0, "CCD SAME-SPIN CORRELATION ENERGY": -0.04913759, # vcc "CCD TOTAL GRADIENT": np.array( # vcc findif in psi [[0.0, 0.0, 0.00677294], [0.0, 0.00429381, -0.00338647], [0.0, -0.00429381, -0.00338647]] ), + "BCCD CORRELATION ENERGY": -0.226749124382525, # ccenergy only + "CC2 CORRELATION ENERGY": -0.2216835625, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.012528297777, 0.0, 0.007118519319, -0.006264148888, 0.0, -0.007118519319, -0.006264148888] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.22717334532791256, # mrcc "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.049398348010672, @@ -4612,6 +6539,8 @@ [0.00000000000000, -0.00639691786956, -0.00536154751917], ] ), + "B(T) CORRECTION ENERGY": -0.005653584466044, # ccenergy only + "CC3 CORRELATION ENERGY": -0.232764956682754, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.2327434892835214, # mrcc "CCSDT-1A TOTAL GRADIENT": np.array( # ecc by psi fd STAR [ @@ -4804,6 +6733,30 @@ "[Q] CORRECTION ENERGY": -0.000288788062660, # ncc "(Q) CORRECTION ENERGY": -0.000503838444143, # ncc "CCSDTQ CORRELATION ENERGY": -0.233074721244323, # ncc + "OMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2 CORRELATION ENERGY": _knownmissing, + "OMP2 TOTAL GRADIENT": _knownmissing, + "OMP2.5 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2.5 CORRELATION ENERGY": _knownmissing, + "OMP2.5 TOTAL GRADIENT": _knownmissing, + "OMP3 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP3 CORRELATION ENERGY": _knownmissing, + "OMP3 TOTAL GRADIENT": _knownmissing, + "OREMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OREMP2 CORRELATION ENERGY": _knownmissing, + "OREMP2 TOTAL GRADIENT": _knownmissing, + "OLCCD REFERENCE CORRECTION ENERGY": 0.0011942797, # p4n (core-occ rotations neglected) + "OLCCD CORRELATION ENERGY": -0.2309009256, # p4n (core-occ rotations neglected) + "OLCCD TOTAL GRADIENT": _knownmissing, + "OCCD REFERENCE CORRECTION ENERGY": 0.001125755, # qchem + "OCCD CORRELATION ENERGY": -0.226880992, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0, 0, 0.00797428, 0, 0.00488548, -0.00398714, 0, -0.00488548, -0.00398714] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_pk_rhf, + "B2PLYP TOTAL ENERGY": -76.379687335481, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -4816,6 +6769,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_pk_rhf, @@ -4951,6 +6905,9 @@ "CISD CORRELATION ENERGY": -0.24016600239402, # vcc "QCISD CORRELATION ENERGY": -0.25077731041751, # vcc "QCISD(T) CORRECTION ENERGY": -0.00687323, # vcc + "REMP2 CORRELATION ENERGY": -0.251018009939, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.055360085349, # occ, tight "LCCD CORRELATION ENERGY": -0.2531942099, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.053842594884, # fnocc @@ -4960,12 +6917,29 @@ "LCCSD CORRELATION ENERGY": -0.2553008820, # p4n "LCCSD SINGLES ENERGY": 0.0, "LCCSD SAME-SPIN CORRELATION ENERGY": -0.054321637599, # fnocc + "CEPA(1) CORRELATION ENERGY": -0.25091653, # fnocc + "CEPA(1) SINGLES ENERGY": 0.0, + "CEPA(1) SAME-SPIN CORRELATION ENERGY": -0.05365022, # fnocc + "CEPA(3) CORRELATION ENERGY": -0.24794377, # fnocc + "CEPA(3) SINGLES ENERGY": 0.0, + "CEPA(3) SAME-SPIN CORRELATION ENERGY": -0.05315570, # fnocc + "ACPF CORRELATION ENERGY": -0.25107948, # fnocc + "ACPF SINGLES ENERGY": 0.0, + "ACPF SAME-SPIN CORRELATION ENERGY": -0.05369031, # fnocc + "AQCC CORRELATION ENERGY": -0.24771962, # fnocc + "AQCC SINGLES ENERGY": 0.0, + "AQCC SAME-SPIN CORRELATION ENERGY": -0.05317473, # fnocc "CCD CORRELATION ENERGY": -0.24885097949989, # vcc "CCD SINGLES ENERGY": 0.0, "CCD SAME-SPIN CORRELATION ENERGY": -0.05375108, # vcc "CCD TOTAL GRADIENT": np.array( # vcc [[0.0, 0.0, -0.0038684502], [0.0, -0.0026251298, 0.0019342251], [0.0, 0.0026251298, 0.0019342251]] ), + "BCCD CORRELATION ENERGY": -0.24995280, # ccenergy only + "CC2 CORRELATION ENERGY": -0.247440256353710, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.002577148521, 0.0, 0.000581020448, -0.001288574261, 0.0, -0.000581020448, -0.001288574261] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.250330548844, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.054051928864870, @@ -5205,6 +7179,8 @@ [0.00000000000000, 0.00038770405767, -0.00028616541058], ] ), + "B(T) CORRECTION ENERGY": -0.00749264, # ccenergy only + "CC3 CORRELATION ENERGY": -0.257776704633084, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.257751267313, # ecc "CCSDT-1A TOTAL GRADIENT": np.array( # ecc by psi fd STAR [ @@ -5533,6 +7509,30 @@ "[Q] CORRECTION ENERGY": -0.000151213601440, # ncc "(Q) CORRECTION ENERGY": -0.000368016662584, # ncc "CCSDTQ CORRELATION ENERGY": -0.257824320323573, # ncc + "OMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2 CORRELATION ENERGY": _knownmissing, + "OMP2 TOTAL GRADIENT": _knownmissing, + "OMP2.5 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2.5 CORRELATION ENERGY": _knownmissing, + "OMP2.5 TOTAL GRADIENT": _knownmissing, + "OMP3 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP3 CORRELATION ENERGY": _knownmissing, + "OMP3 TOTAL GRADIENT": _knownmissing, + "OREMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OREMP2 CORRELATION ENERGY": _knownmissing, + "OREMP2 TOTAL GRADIENT": _knownmissing, + "OLCCD REFERENCE CORRECTION ENERGY": 0.0012982937, # p4n (core-occ rotations neglected) + "OLCCD CORRELATION ENERGY": -0.2544819317, # p4n (core-occ rotations neglected) + "OLCCD TOTAL GRADIENT": _knownmissing, + "OCCD REFERENCE CORRECTION ENERGY": 0.001225751, # qchem + "OCCD CORRELATION ENERGY": -0.250044802, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0, 0, -0.00269153, 0, -0.00204152, 0.00134576, 0, 0.00204152, 0.00134576] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_pk_rhf, + "B2PLYP TOTAL ENERGY": -76.409701597936, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -5545,6 +7545,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_uhf, @@ -5766,6 +7767,9 @@ "CISD CORRELATION ENERGY": -0.07917581082828, # vcc "QCISD CORRELATION ENERGY": -0.08117897504733, # vcc "QCISD(T) CORRECTION ENERGY": -0.00060269, # vcc only + "REMP2 CORRELATION ENERGY": -0.07701467620060, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.00219044944957, # occ. tight "LCCD CORRELATION ENERGY": -0.0824313452, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0022532590, # occ @@ -5799,6 +7803,24 @@ [0.0, -0.0144468804, -0.0001004954], ] ), + "BCCD CORRELATION ENERGY": -0.08117235, # ccenergy only + "CC2 CORRELATION ENERGY": -0.0587557596, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [ + 0.0, + 0.0, + 0.011903275003, + 0.0, + 0.0, + -0.011481983661, + 0.0, + 0.010549441714, + -0.000210645671, + 0.0, + -0.010549441714, + -0.000210645671, + ] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.08117105566, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.002231965267, @@ -6172,11 +8194,43 @@ ], ] ), + "A-(T) CORRECTION ENERGY": -0.000587873, # mrcc only + "B(T) CORRECTION ENERGY": -0.00061086, # ccenergy only + "CC3 CORRELATION ENERGY": -0.081776957269437, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.081774257938, # ecc "CCSDT-1B CORRELATION ENERGY": -0.081772270576, # ecc "CCSDT-2 CORRELATION ENERGY": -0.081772292290, # ecc "CCSDT-3 CORRELATION ENERGY": -0.08177701734273, # vcc "CCSDT CORRELATION ENERGY": -0.08208821205578, # vcc + "OMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2 CORRELATION ENERGY": _knownmissing, + "OMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2 TOTAL GRADIENT": _knownmissing, + "OMP2.5 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2.5 CORRELATION ENERGY": _knownmissing, + "OMP2.5 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2.5 TOTAL GRADIENT": _knownmissing, + "OMP3 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP3 CORRELATION ENERGY": _knownmissing, + "OMP3 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP3 TOTAL GRADIENT": _knownmissing, + "OREMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OREMP2 CORRELATION ENERGY": _knownmissing, + "OREMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OREMP2 TOTAL GRADIENT": _knownmissing, + "OLCCD REFERENCE CORRECTION ENERGY": 0.0014923056, # p4n (core-occ rotations neglected) + "OLCCD CORRELATION ENERGY": -0.0839163095, # p4n (core-occ rotations neglected) + "OLCCD SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OLCCD TOTAL GRADIENT": _knownmissing, + "OCCD REFERENCE CORRECTION ENERGY": 0.001154566, # qchem + "OCCD CORRELATION ENERGY": -0.081188108, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0, 0, 0.00494989, 0, 0, -0.00479521, 0, 0.01487079, -0.00007734, 0, -0.01487079, -0.00007734] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_pk_uhf, + "B2PLYP TOTAL ENERGY": -26.072618722961, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -6189,6 +8243,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_uhf, @@ -6234,6 +8289,9 @@ "CISD CORRELATION ENERGY": -0.16574719763576, # vcc "QCISD CORRELATION ENERGY": -0.17187325792329, # vcc "QCISD(T) CORRECTION ENERGY": -0.00368626, # vcc only + "REMP2 CORRELATION ENERGY": -0.170214503998, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.033849141454, # occ, tight "LCCD CORRELATION ENERGY": -0.1747537294, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0334378864, # occ @@ -6249,6 +8307,11 @@ "CCD TOTAL GRADIENT": np.array( # vcc by psi findif [[0.0, 0.0, 0.02892979], [0.0, 0.01570148, -0.01446489], [0.0, -0.01570148, -0.01446489]] ), + "BCCD CORRELATION ENERGY": -0.171452568164837, # ccenergy only + "CC2 CORRELATION ENERGY": -0.1536230809, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.027451749814, 0.0, 0.014623148752, -0.013725874907, 0.0, -0.014623148752, -0.013725874907] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.1716495276047496, # mrcc "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.033248190929062, @@ -6390,7 +8453,9 @@ ], ] ), - "A-(T) CORRECTION ENERGY": -0.00373191576, # mrcc + "A-(T) CORRECTION ENERGY": -0.00373191576, # mrcc only + "B(T) CORRECTION ENERGY": -0.003997866911315, # ccenergy only + "CC3 CORRELATION ENERGY": -0.175583616794047, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.1755715323437954, # mrcc "CCSDT-1A TOTAL GRADIENT": np.array( # mrcc [[0.0, 0.0, 0.03195915], [0.0, 0.01732744, -0.01597957], [0.0, -0.01732744, -0.01597957]] @@ -6405,6 +8470,35 @@ [[0.0, 0.0, 0.03180282], [0.0, 0.01723825, -0.01590141], [0.0, -0.01723825, -0.01590141]] ), "CCSDT CORRELATION ENERGY": -0.17591978591647, # vcc + "OMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2 CORRELATION ENERGY": _knownmissing, + "OMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2 TOTAL GRADIENT": _knownmissing, + "OMP2.5 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2.5 CORRELATION ENERGY": _knownmissing, + "OMP2.5 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2.5 TOTAL GRADIENT": _knownmissing, + "OMP3 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP3 CORRELATION ENERGY": _knownmissing, + "OMP3 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP3 TOTAL GRADIENT": _knownmissing, + "OREMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OREMP2 CORRELATION ENERGY": _knownmissing, + "OREMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OREMP2 TOTAL GRADIENT": _knownmissing, + "OLCCD REFERENCE CORRECTION ENERGY": 0.0011137749, # p4n (core-occ rotations neglected) + "OLCCD CORRELATION ENERGY": -0.1759973931, # p4n (core-occ rotations neglected) + "OLCCD SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OLCCD TOTAL GRADIENT": _knownmissing, + "OCCD REFERENCE CORRECTION ENERGY": 0.000986681, # qchem + "OCCD CORRELATION ENERGY": -0.171498252, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0, 0, 0.03004030, 0, 0.01627564, -0.01502015, 0, -0.01627564, -0.01502015] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_pk_uhf, + "B2PLYP TOTAL ENERGY": -55.832917564913, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -6417,6 +8511,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_uhf, @@ -6462,6 +8557,9 @@ "CISD CORRELATION ENERGY": -0.18202095532782, # vcc "QCISD CORRELATION ENERGY": -0.18852342173162, # vcc "QCISD(T) CORRECTION ENERGY": -0.00487511, # vcc only + "REMP2 CORRELATION ENERGY": -0.187474026696, # occ, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.037232180981, # occ, tight "LCCD CORRELATION ENERGY": -0.1917024115, # p4n "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0367596656, # occ @@ -6477,6 +8575,11 @@ "CCD TOTAL GRADIENT": np.array( # vcc [[0.0, 0.0, 0.0166234857], [0.0, 0.0069994421, -0.0083117428], [0.0, -0.0069994421, -0.0083117428]] ), + "BCCD CORRELATION ENERGY": -0.18812319, # ccenergy only + "CC2 CORRELATION ENERGY": -0.1725181374, # ccenergy + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.016128741574, 0.0, 0.006556602185, -0.008064370787, 0.0, -0.006556602185, -0.008064370787] + ).reshape((-1, 3)), "CCSD CORRELATION ENERGY": -0.188317222733, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.036526852874970, @@ -6588,11 +8691,43 @@ ], ] ), + "A-(T) CORRECTION ENERGY": -0.004882427, # mrcc only + "B(T) CORRECTION ENERGY": -0.00518450, # ccenergy only + "CC3 CORRELATION ENERGY": -0.193441818385715, # ccenergy "CCSDT-1A CORRELATION ENERGY": -0.193424330972, # ecc "CCSDT-1B CORRELATION ENERGY": -0.193423371134, # ecc "CCSDT-2 CORRELATION ENERGY": -0.193087540038, # vcc "CCSDT-3 CORRELATION ENERGY": -0.19310599643349, # vcc "CCSDT CORRELATION ENERGY": -0.19368177447948, # vcc + "OMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2 CORRELATION ENERGY": _knownmissing, + "OMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2 TOTAL GRADIENT": _knownmissing, + "OMP2.5 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2.5 CORRELATION ENERGY": _knownmissing, + "OMP2.5 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2.5 TOTAL GRADIENT": _knownmissing, + "OMP3 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP3 CORRELATION ENERGY": _knownmissing, + "OMP3 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP3 TOTAL GRADIENT": _knownmissing, + "OREMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OREMP2 CORRELATION ENERGY": _knownmissing, + "OREMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OREMP2 TOTAL GRADIENT": _knownmissing, + "OLCCD REFERENCE CORRECTION ENERGY": 0.0012186690, # p4n (core-occ rotations neglected) + "OLCCD CORRELATION ENERGY": -0.1929863522, # p4n (core-occ rotations neglected) + "OLCCD SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OLCCD TOTAL GRADIENT": _knownmissing, + "OCCD REFERENCE CORRECTION ENERGY": 0.001089195, # qchem + "OCCD CORRELATION ENERGY": -0.188164420, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem, rearranged + [0, 0, 0.01780351, 0, 0.00760260, -0.00890176, 0, -0.00760260, -0.00890176] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_pk_uhf, + "B2PLYP TOTAL ENERGY": -55.85411445881, # nwc 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -6605,6 +8740,50 @@ "reference": "rohf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sd", + }, + "data": { + "HF TOTAL ENERGY": _scf_bh3p_dz_pk_rohf, + "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_pk_rohf, + "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_pk_rohf, + "CISD CORRELATION ENERGY": -0.08032199708731, # vcc, sd + "LCCSD CORRELATION ENERGY": -0.08517989, # vcc != p4n + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.08151590, # vcc nyi + "CCD CORRELATION ENERGY": -0.08016689737891, # vcc nyi == tce, sd + "CCSD CORRELATION ENERGY": -0.08256719, + "CCSD SINGLES ENERGY": -0.00117001688, + "CCSD SAME-SPIN CORRELATION ENERGY": -0.00230304, + "CCSD TOTAL GRADIENT": np.array( + [ + 0.0, + 0.0, + 0.005323074361, + 0.0, + 0.0, + -0.005174249172, + 0.0, + 0.014881203442, + -0.000074412594, + 0.0, + -0.014881203442, + -0.000074412594, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00068823, # cfour only + "CCSDT CORRELATION ENERGY": -0.08361110233142, # vcc + # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), + }, + }, + { + "meta": { + "system": "bh3p", + "basis": "cc-pvdz", + "scf_type": "pk", + "reference": "rohf", + "fcae": "fc", + "corl_type": "conv", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_rohf, @@ -6812,34 +8991,115 @@ [0.0, -0.012725362696, -0.000120609126], ] ), - "MP4(SDQ) CORRELATION ENERGY": -0.07930873, # vcc only - "MP4(T) CORRECTION ENERGY": -0.000289639941, # vcc only - "CISD CORRELATION ENERGY": -0.08032199708731, # vcc - "LCCD CORRELATION ENERGY": -0.0824056198, # p4n - "LCCSD CORRELATION ENERGY": -0.0851177481, # p4n - # "LCCSD CORRELATION ENERGY": -0.08517989, # vcc != p4n - "CCD CORRELATION ENERGY": -0.08016689737891, # vcc nyi ??? - "CCSD CORRELATION ENERGY": -0.08256719, - "CCSD SINGLES ENERGY": -0.00117001688, - "CCSD SAME-SPIN CORRELATION ENERGY": -0.00230304, + "MP4(SDQ) CORRELATION ENERGY": -0.07930873, # vcc only, sc + "MP4(T) CORRECTION ENERGY": -0.000289639941, # vcc only, sc + "ZAPT2 CORRELATION ENERGY": -0.058899120423767, # detci (ZAPT uses special canonicalization but grouping here with sc) + "CISD CORRELATION ENERGY": -0.08031834747884, # vcc only, sc + "LCCD CORRELATION ENERGY": -0.0824056198, # p4n (likely sd since tce matches but leaving here until detangled) + # "LCCSD CORRELATION ENERGY": -0.0851177481, # p4n (was uncommented) + "LCCSD CORRELATION ENERGY": -0.08517509, # vcc nyi + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.08151150, # vcc nyi + "CCD CORRELATION ENERGY": -0.08016374258389, # vcc, sc + "BCCD CORRELATION ENERGY": -0.08269058, # ccenergy only + "CC2 CORRELATION ENERGY": -0.0602475799, # ccenergy only, sc + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [ + 0.0, + 0.0, + 0.011923571677, + 0.0, + 0.0, + -0.011504255786, + 0.0, + 0.010550478287, + -0.000209657945, + 0.0, + -0.010550478287, + -0.000209657945, + ] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.082563103526, # vcc + "CCSD SINGLES ENERGY": -0.001170121907, # vcc & ecc + "CCSD SAME-SPIN CORRELATION ENERGY": -0.0023025, # ecc "CCSD TOTAL GRADIENT": np.array( + # ccenergy findif-5 (to 1e-6 this sc == sd) [ 0.0, 0.0, - 0.005323074361, + 0.005324268016, 0.0, 0.0, - -0.005174249172, + -0.005175469821, 0.0, - 0.014881203442, - -0.000074412594, + 0.014881252049, + -0.000074399098, 0.0, - -0.014881203442, - -0.000074412594, + -0.014881252049, + -0.000074399098, ] ).reshape((-1, 3)), - "(T) CORRECTION ENERGY": -0.00068823, # cfour only - "CCSDT CORRELATION ENERGY": -0.08361110233142, # vcc + "(T) CORRECTION ENERGY": -0.000691982886, # vcc + "CCSD(T) TOTAL GRADIENT": np.array( + # ccenergy findif-5 (to 1e-6 this sc == sd) + [ + 0.0, + 0.0, + 0.004576121181, + 0.0, + 0.0, + -0.004510736115, + 0.0, + 0.01496004535, + -0.000032692533, + 0.0, + -0.01496004535, + -0.000032692533, + ] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.000678625130, # mrcc only, sc + "B(T) CORRECTION ENERGY": -0.00061088, # ccenergy only, sc + "CC3 CORRELATION ENERGY": -0.083247773021380, # ccenergy only, sc + "CCSDT CORRELATION ENERGY": -0.083606448205, # mrcc, sc + "OMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2 CORRELATION ENERGY": _knownmissing, + "OMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2 TOTAL GRADIENT": _knownmissing, + "OMP2.5 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2.5 CORRELATION ENERGY": _knownmissing, + "OMP2.5 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2.5 TOTAL GRADIENT": _knownmissing, + "OMP3 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP3 CORRELATION ENERGY": _knownmissing, + "OMP3 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP3 TOTAL GRADIENT": _knownmissing, + "OREMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OREMP2 CORRELATION ENERGY": _knownmissing, + "OREMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OREMP2 TOTAL GRADIENT": _knownmissing, + "OLCCD REFERENCE CORRECTION ENERGY": -0.0000318047, # p4n (core-occ rotations neglected) + "OLCCD CORRELATION ENERGY": -0.0854404197, # p4n (core-occ rotations neglected) + "OLCCD SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OLCCD TOTAL GRADIENT": _knownmissing, + "OCCD REFERENCE CORRECTION ENERGY": -0.000362931, # qchem + "OCCD CORRELATION ENERGY": -0.082712571, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem 3-pt findif + [ + 0.0, + 8.460068018933954e-12, + 4.950754755080671e-03, + 0.0, + -1.880015115318656e-12, + -4.795829218979597e-03, + 0.0, + 1.487359483495976e-02, + -7.746235397720769e-05, + 0.0, + -1.487359480111949e-02, + -7.746237653738908e-05, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -6852,14 +9112,55 @@ "reference": "rohf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sd", + }, + "data": { + "HF TOTAL ENERGY": _scf_nh2_adz_pk_rohf, + "HF TOTAL GRADIENT": _grad_scf_nh2_adz_pk_rohf, + "HF TOTAL HESSIAN": _hess_scf_nh2_adz_pk_rohf, + "CISD CORRELATION ENERGY": -0.16970933, # vcc, sd + "LCCSD CORRELATION ENERGY": -0.18080394, # vcc != p4n (was commented) + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.14354870, # vcc nyi only + "CCD CORRELATION ENERGY": -0.17252087862035, # vcc nyi == tce, sd + "CCSD CORRELATION ENERGY": -0.175988485854028, + "CCSD SINGLES ENERGY": -0.003256808469230, + "CCSD SAME-SPIN CORRELATION ENERGY": -0.033291143258924, + "CCSD TOTAL GRADIENT": np.array( + [ + 0.0, + 0.0, + 0.030051791297, + 0.0, + 0.016301545337, + -0.015025895649, + 0.0, + -0.016301545337, + -0.015025895649, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.003863167899, # vcc only + "CCSDT CORRELATION ENERGY": -0.18030677104047, # vcc + # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), + }, + }, + { + "meta": { + "system": "nh2", + "basis": "aug-cc-pvdz", + "scf_type": "pk", + "reference": "rohf", + "fcae": "fc", + "corl_type": "conv", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_rohf, "HF TOTAL GRADIENT": _grad_scf_nh2_adz_pk_rohf, "HF TOTAL HESSIAN": _hess_scf_nh2_adz_pk_rohf, - "MP2 CORRELATION ENERGY": -0.15702660833165538, - "MP2 SINGLES ENERGY": -0.0028059971624814647, - "MP2 SAME-SPIN CORRELATION ENERGY": -0.03466304269235235, + "MP2 CORRELATION ENERGY": -0.15702660833165538, # sd == sc + "MP2 SINGLES ENERGY": -0.0028059971624814647, # sd == sc + "MP2 SAME-SPIN CORRELATION ENERGY": -0.03466304269235235, # sd == sc "MP2 TOTAL GRADIENT": np.array( [ 0.0, @@ -6891,31 +9192,112 @@ "MP3 TOTAL GRADIENT": np.array( # vcc by fd psi [[0.0, 0.0, 0.0280810549], [0.0, 0.0150218165, -0.0140405275], [0.0, -0.0150218165, -0.0140405275]] ), - "MP4(SDQ) CORRELATION ENERGY": -0.17541828, # vcc only - "MP4(T) CORRECTION ENERGY": -0.00334215131, # vcc only - "CISD CORRELATION ENERGY": -0.16970933003145, # vcc - "LCCD CORRELATION ENERGY": -0.1769020687, # p4n - "LCCSD CORRELATION ENERGY": -0.1807707740, # p4n - # "LCCSD CORRELATION ENERGY": -0.18080394, # vcc != p4n - "CCD CORRELATION ENERGY": -0.17252087862035, # vcc nyi ??? - "CCSD CORRELATION ENERGY": -0.175988485854028, - "CCSD SINGLES ENERGY": -0.003256808469230, - "CCSD SAME-SPIN CORRELATION ENERGY": -0.033291143258924, + "MP4(SDQ) CORRELATION ENERGY": -0.17541828, # vcc only, sc + "MP4(T) CORRECTION ENERGY": -0.00334215131, # vcc only, sc + "ZAPT2 CORRELATION ENERGY": -0.156282101871335, # detci + "CISD CORRELATION ENERGY": -0.169713778760, # vcc (-0.16970933003145, # vcc longstanding) + "LCCD CORRELATION ENERGY": -0.1769020687, # p4n (likely sd since tce matches but leaving here until detangled) + # "LCCSD CORRELATION ENERGY": -0.1807707740, # p4n (was uncommented) + "LCCSD CORRELATION ENERGY": -0.18080894256088, # vcc != p4n, sc + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.14355320, # vcc nyi only + "CCD CORRELATION ENERGY": -0.17252609, # vcc + "BCCD CORRELATION ENERGY": -0.175845488255032, # ccenergy only + "CC2 CORRELATION ENERGY": -0.1581932061, # ccenergy only, sc + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.027576804444, 0.0, 0.014704262054, -0.013788402222, 0.0, -0.014704262054, -0.013788402222] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.175993216083, # vcc + "CCSD SINGLES ENERGY": -0.003256554797, # vcc & ecc + "CCSD SAME-SPIN CORRELATION ENERGY": -0.033292, # ecc + "CCSD TOTAL GRADIENT": np.array( + # ccenergy findif-5 (to 1e-6 this sc == sd) + [0.0, 0.0, 0.030052138921, 0.0, 0.016301704865, -0.015026069461, 0.0, -0.016301704865, -0.015026069461] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.003868160727, # vcc, sc + "CCSD(T) TOTAL GRADIENT": np.array( # ccenergy findif-5 + [0.0, 0.0, 0.031949750405, 0.0, 0.017311094784, -0.015974875203, 0.0, -0.017311094784, -0.015974875203] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.003784992966, # mrcc only, sc + "B(T) CORRECTION ENERGY": -0.003998082545023, # ccenergy only, sc + "CC3 CORRELATION ENERGY": -0.179979065555105, # ccenergy only, sc + "CCSDT CORRELATION ENERGY": -0.18031166502580, # vcc + "OMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2 CORRELATION ENERGY": _knownmissing, + "OMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2 TOTAL GRADIENT": _knownmissing, + "OMP2.5 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2.5 CORRELATION ENERGY": _knownmissing, + "OMP2.5 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2.5 TOTAL GRADIENT": _knownmissing, + "OMP3 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP3 CORRELATION ENERGY": _knownmissing, + "OMP3 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP3 TOTAL GRADIENT": _knownmissing, + "OREMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OREMP2 CORRELATION ENERGY": _knownmissing, + "OREMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OREMP2 TOTAL GRADIENT": _knownmissing, + "OLCCD REFERENCE CORRECTION ENERGY": -0.0032999290, # p4n (core-occ rotations neglected) + "OLCCD CORRELATION ENERGY": -0.1804110970, # p4n (core-occ rotations neglected) + "OLCCD SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OLCCD TOTAL GRADIENT": _knownmissing, + "OCCD REFERENCE CORRECTION ENERGY": -0.003402152, # qchem + "OCCD CORRELATION ENERGY": -0.175891240, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem 3-pt findif + [ + 0.0, + -2.131628207280301e-11, + 2.994042840143152e-02, + 0.0, + 1.624512323772365e-02, + -1.497021096596995e-02, + 0.0, + -1.624512344378104e-02, + -1.497021098018081e-02, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, + # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), + }, + }, + { + "meta": { + "system": "nh2", + "basis": "cfour-qz2p", + "scf_type": "pk", + "reference": "rohf", + "fcae": "fc", + "corl_type": "conv", + "sdsc": "sd", + }, + "data": { + "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_rohf, + "HF TOTAL GRADIENT": _grad_scf_nh2_qz2p_pk_rohf, + "HF TOTAL HESSIAN": _hess_scf_nh2_qz2p_pk_rohf, + "CISD CORRELATION ENERGY": -0.18613466061896, # vcc + "LCCSD CORRELATION ENERGY": -0.19795428, # vcc != p4n + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.15734510, # vcc nyi, sd + "CCD CORRELATION ENERGY": -0.18921914785643, # vcc nyi == tce, sd + "CCSD CORRELATION ENERGY": -0.19282621471297376, + "CCSD SINGLES ENERGY": -0.003354603508621, + "CCSD SAME-SPIN CORRELATION ENERGY": -0.036502859698546, "CCSD TOTAL GRADIENT": np.array( [ 0.0, 0.0, - 0.030051791297, + 0.017873897449, 0.0, - 0.016301545337, - -0.015025895649, + 0.007653541045, + -0.008936948724, 0.0, - -0.016301545337, - -0.015025895649, + -0.007653541045, + -0.008936948724, ] ).reshape((-1, 3)), - "(T) CORRECTION ENERGY": -0.003863167899, # cfour only - "CCSDT CORRELATION ENERGY": -0.18030677104047, # vcc (different orbs: -0.18031166502580) + "(T) CORRECTION ENERGY": -0.00504351, # cfour only + "CCSDT CORRELATION ENERGY": -0.19824510672649, # vcc # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -6928,6 +9310,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_rohf, @@ -6971,31 +9354,72 @@ [0.0, -0.006224027206, -0.007832241963], ] ), - "MP4(SDQ) CORRELATION ENERGY": -0.19243169, # vcc only - "MP4(T) CORRECTION ENERGY": -0.004597066465, # vcc only - "CISD CORRELATION ENERGY": -0.18613466061896, # vcc - "LCCD CORRELATION ENERGY": -0.1939920915, # p4n - "LCCSD CORRELATION ENERGY": -0.1979175937, # p4n - # "LCCSD CORRELATION ENERGY": -0.19795428, # vcc != p4n - "CCD CORRELATION ENERGY": -0.18921914785643, # vcc nyi ??? - "CCSD CORRELATION ENERGY": -0.19282621471297376, - "CCSD SINGLES ENERGY": -0.003354603508621, - "CCSD SAME-SPIN CORRELATION ENERGY": -0.036502859698546, + "MP4(SDQ) CORRELATION ENERGY": -0.19243169, # vcc only, sc + "MP4(T) CORRECTION ENERGY": -0.004597066465, # vcc only, sc + "ZAPT2 CORRELATION ENERGY": -0.17532659, # gamess + "CISD CORRELATION ENERGY": -0.186140372647, # vcc, sc + "LCCD CORRELATION ENERGY": -0.1939920915, # p4n (likely sd since tce matches but leaving here until detangled) + # "LCCSD CORRELATION ENERGY": -0.1979175937, # p4n (was uncommented) + "LCCSD CORRELATION ENERGY": -0.19796066, # vcc nyi, sc + "LCCSD OPPOSITE-SPIN CORRELATION ENERGY": -0.15734990, # vcc nyi, sc + "CCD CORRELATION ENERGY": -0.18922567778994, # vcc, sc + "BCCD CORRELATION ENERGY": -0.19269438, # ccenergy only + "CC2 CORRELATION ENERGY": -0.1772785627, # ccenergy only, sc + "CC2 TOTAL GRADIENT": np.array( # ccenergy, findif-5 + [0.0, 0.0, 0.016255578053, 0.0, 0.006637178638, -0.008127789026, 0.0, -0.006637178638, -0.008127789026] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.1928322825369395, # vcc + "CCSD SINGLES ENERGY": -0.00335427534294, # vcc & ecc + "CCSD SAME-SPIN CORRELATION ENERGY": -0.0365048, # ecc "CCSD TOTAL GRADIENT": np.array( - [ - 0.0, - 0.0, - 0.017873897449, - 0.0, - 0.007653541045, - -0.008936948724, + # ccenergy findif-5 (to 1e-6 this sc == sd) + [0.0, 0.0, 0.017874684927, 0.0, 0.007653820061, -0.008937342463, 0.0, -0.007653820061, -0.008937342463] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.005047880396, # vcc + "CCSD(T) TOTAL GRADIENT": np.array( # ccenergy findif-5 + [0.0, 0.0, 0.020046694566, 0.0, 0.008736311342, -0.010023347283, 0.0, -0.008736311342, -0.010023347283] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.004942680340, # mrcc only, sc + "B(T) CORRECTION ENERGY": -0.00518478, # ccenergy only, sc + "CC3 CORRELATION ENERGY": -0.198016086042130, # ccenergy only, sc + "CCSDT CORRELATION ENERGY": -0.19825144107785, # vcc + "OMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2 CORRELATION ENERGY": _knownmissing, + "OMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2 TOTAL GRADIENT": _knownmissing, + "OMP2.5 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP2.5 CORRELATION ENERGY": _knownmissing, + "OMP2.5 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP2.5 TOTAL GRADIENT": _knownmissing, + "OMP3 REFERENCE CORRECTION ENERGY": _knownmissing, + "OMP3 CORRELATION ENERGY": _knownmissing, + "OMP3 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OMP3 TOTAL GRADIENT": _knownmissing, + "OREMP2 REFERENCE CORRECTION ENERGY": _knownmissing, + "OREMP2 CORRELATION ENERGY": _knownmissing, + "OREMP2 SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OREMP2 TOTAL GRADIENT": _knownmissing, + "OLCCD REFERENCE CORRECTION ENERGY": -0.0033910391, # p4n (core-occ rotations neglected) + "OLCCD CORRELATION ENERGY": -0.1975960603, # p4n (core-occ rotations neglected) + "OLCCD SAME-SPIN CORRELATION ENERGY": _knownmissing, + "OLCCD TOTAL GRADIENT": _knownmissing, + "OCCD REFERENCE CORRECTION ENERGY": -0.003478949, # qchem + "OCCD CORRELATION ENERGY": -0.192732814, # qchem + "OCCD TOTAL GRADIENT": np.array( # qchem 3-pt findif + [ + 0.0, + 1.705302565824240e-10, + 1.774538645804569e-02, + 0.0, + 7.588575865469238e-03, + -8.872690465011601e-03, 0.0, - -0.007653541045, - -0.008936948724, + -7.588575776651396e-03, + -8.872690337113909e-03, ] ).reshape((-1, 3)), - "(T) CORRECTION ENERGY": -0.00504351, # cfour only - "CCSDT CORRELATION ENERGY": -0.19824510672649, # vcc + "O(T) CORRECTION ENERGY": _knownmissing, + "A-O(T) CORRECTION ENERGY": _knownmissing, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7009,6 +9433,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_pk_rhf, @@ -7020,9 +9445,11 @@ "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.20990784, # dfocc "LCCD SINGLES ENERGY": 0.0, - "CCSD CORRELATION ENERGY": -0.20874537, + "CCSD CORRELATION ENERGY": -0.20874537, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00193646, + "(T) CORRECTION ENERGY": -0.00193646, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00196115, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_pk_rhf, # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -7035,6 +9462,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_pk_rhf, @@ -7046,9 +9474,11 @@ "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.23188996, # dfocc "LCCD SINGLES ENERGY": 0.0, - "CCSD CORRELATION ENERGY": -0.22941330, + "CCSD CORRELATION ENERGY": -0.22941330, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00523874, + "(T) CORRECTION ENERGY": -0.00523874, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00523635, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_pk_rhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7061,6 +9491,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_pk_rhf, @@ -7072,9 +9503,11 @@ "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.27869144, # dfocc "LCCD SINGLES ENERGY": 0.0, - "CCSD CORRELATION ENERGY": -0.27570541, + "CCSD CORRELATION ENERGY": -0.27570541, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00726403, + "(T) CORRECTION ENERGY": -0.00726403, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00718185, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_pk_rhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7087,6 +9520,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_uhf, @@ -7101,6 +9535,11 @@ "LCCD CORRELATION ENERGY": -0.08343267, # dfocc "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.00240067, # dfocc + "CCSD CORRELATION ENERGY": -0.08217068, # dfocc + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00062618, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00060937, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_pk_uhf, # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -7113,6 +9552,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_uhf, @@ -7127,6 +9567,11 @@ "LCCD CORRELATION ENERGY": -0.17701281, # dfocc "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.03413088, # dfocc + "CCSD CORRELATION ENERGY": -0.17387591, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00384405, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00376422, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_pk_uhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7139,6 +9584,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_uhf, @@ -7153,6 +9599,11 @@ "LCCD CORRELATION ENERGY": -0.21678793, # dfocc "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.04013550, # dfocc + "CCSD CORRELATION ENERGY": -0.21329809, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00516691, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00506463, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_pk_uhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7165,6 +9616,7 @@ "reference": "rohf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_rohf, @@ -7185,6 +9637,7 @@ "reference": "rohf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_rohf, @@ -7205,6 +9658,7 @@ "reference": "rohf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_rohf, @@ -7226,6 +9680,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_pk_rhf, @@ -7237,9 +9692,11 @@ "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.20796060, # dfocc "LCCD SINGLES ENERGY": 0.0, - "CCSD CORRELATION ENERGY": -0.20681721, + "CCSD CORRELATION ENERGY": -0.20681721, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00192057, + "(T) CORRECTION ENERGY": -0.00192057, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00194429, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_pk_rhf, # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -7252,6 +9709,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_pk_rhf, @@ -7263,9 +9721,11 @@ "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.22961687, # dfocc "LCCD SINGLES ENERGY": 0.0, - "CCSD CORRELATION ENERGY": -0.22717646, + "CCSD CORRELATION ENERGY": -0.22717646, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00521255, + "(T) CORRECTION ENERGY": -0.00521255, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00520986, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_pk_rhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7278,6 +9738,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_pk_rhf, @@ -7289,9 +9750,11 @@ "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.25319438, # dfocc "LCCD SINGLES ENERGY": 0.0, - "CCSD CORRELATION ENERGY": -0.25033052, + "CCSD CORRELATION ENERGY": -0.25033052, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00709694, + "(T) CORRECTION ENERGY": -0.00709694, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00701833, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_pk_rhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7304,6 +9767,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_uhf, @@ -7318,6 +9782,11 @@ "LCCD CORRELATION ENERGY": -0.08242955, # dfocc "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.00225358, # dfocc + "CCSD CORRELATION ENERGY": -0.08116911, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00060405, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00058791, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_pk_uhf, # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -7330,6 +9799,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_uhf, @@ -7344,6 +9814,11 @@ "LCCD CORRELATION ENERGY": -0.17475833, # dfocc "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.03344184, # dfocc + "CCSD CORRELATION ENERGY": -0.17165381, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00381142, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00373217, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_pk_uhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7356,6 +9831,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_uhf, @@ -7370,6 +9846,11 @@ "LCCD CORRELATION ENERGY": -0.19170259, # dfocc "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.03676455, # dfocc + "CCSD CORRELATION ENERGY": -0.18831733, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00498297, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00488274, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_pk_uhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7382,6 +9863,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_rohf, @@ -7402,6 +9884,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_rohf, @@ -7422,6 +9905,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_rohf, @@ -7443,6 +9927,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_pk_rhf, @@ -7458,11 +9943,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 TOTAL GRADIENT": np.array([0.0, 0.0, -0.000926859678, 0.0, 0.0, 0.000926859678]).reshape((-1, 3)), "LCCD CORRELATION ENERGY": -0.2100497124, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD TOTAL GRADIENT": np.array([0.0, 0.0, 0.002190589954, 0.0, 0.0, -0.002190589954]).reshape((-1, 3)), - "CCSD CORRELATION ENERGY": -0.20888438, + "CCSD CORRELATION ENERGY": -0.20888438, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00193859, + "(T) CORRECTION ENERGY": -0.00193859, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00196333, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_pk_rhf, + "B2PLYP TOTAL ENERGY": -100.3645971549267983, # psi, 99,590 # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -7475,6 +9963,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_pk_rhf, @@ -7486,10 +9975,13 @@ "MP3 CORRELATION ENERGY": -0.22652962, # dfocc "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2320261414, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.22954333, + "LCCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.22954333, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00524393, + "(T) CORRECTION ENERGY": -0.00524393, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00524145, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_pk_rhf, + "B2PLYP TOTAL ENERGY": -76.3804039258306062, # psi, 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7502,6 +9994,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_pk_rhf, @@ -7513,10 +10006,13 @@ "MP3 CORRELATION ENERGY": -0.27294176, # dfocc "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2786878429, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.27570207, + "LCCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.27570207, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00726375, + "(T) CORRECTION ENERGY": -0.00726375, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00718158, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_pk_rhf, + "B2PLYP TOTAL ENERGY": -76.4168035769188378, # psi, 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7529,6 +10025,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_uhf, @@ -7541,8 +10038,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.00235854, # dfocc "LCCD CORRELATION ENERGY": -0.0835080983, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0024018298, # dfocc + "CCSD CORRELATION ENERGY": -0.08224363, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00062669, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00060985, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_pk_uhf, + "B2PLYP TOTAL ENERGY": -26.0729378891483954, # psi, 99,590 # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -7555,6 +10058,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_uhf, @@ -7567,8 +10071,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.03530465, # dfocc "LCCD CORRELATION ENERGY": -0.1771107929, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0340809591, # dfocc + "CCSD CORRELATION ENERGY": -0.17396848, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00384851, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00376850, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_pk_uhf, + "B2PLYP TOTAL ENERGY": -55.8336257642485307, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7581,6 +10091,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_uhf, @@ -7593,8 +10104,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.04130382, # dfocc "LCCD CORRELATION ENERGY": -0.2167841215, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0401306929, # dfocc + "CCSD CORRELATION ENERGY": -0.21329436, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00516666, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00506439, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_pk_uhf, + "B2PLYP TOTAL ENERGY": -55.8610710137206539, # psi, 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7607,6 +10124,7 @@ "reference": "rohf", "fcae": "ae", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_rohf, @@ -7628,6 +10146,7 @@ "reference": "rohf", "fcae": "ae", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_rohf, @@ -7649,6 +10168,7 @@ "reference": "rohf", "fcae": "ae", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_rohf, @@ -7671,6 +10191,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_pk_rhf, @@ -7685,10 +10206,13 @@ "MP3 CORRELATION ENERGY": -0.20463304, # dfocc "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2081020566, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.20695586, + "LCCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.20695586, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00192267, + "(T) CORRECTION ENERGY": -0.00192267, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00194643, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_pk_rhf, + "B2PLYP TOTAL ENERGY": -100.3639796418507899, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -7701,6 +10225,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_pk_rhf, @@ -7712,10 +10237,13 @@ "MP3 CORRELATION ENERGY": -0.22425409, # dfocc "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2297524911, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.22730597, + "LCCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.22730597, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00521769, + "(T) CORRECTION ENERGY": -0.00521769, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00521491, # dfocc, tight + "B2PLYP TOTAL ENERGY": -76.3796850854499780, # psi 55,590 + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_pk_rhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7728,6 +10256,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_pk_rhf, @@ -7739,10 +10268,13 @@ "MP3 CORRELATION ENERGY": -0.24747778, # dfocc "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2531939249, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.25033030, + "LCCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.25033030, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, - "(T) CORRECTION ENERGY": -0.00709666, + "(T) CORRECTION ENERGY": -0.00709666, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00701806, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_pk_rhf, + "B2PLYP TOTAL ENERGY": -76.4096994249378554, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7755,6 +10287,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_uhf, @@ -7767,8 +10300,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.00220548, # dfocc "LCCD CORRELATION ENERGY": -0.0825046579, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0022547041, # dfocc + "CCSD CORRELATION ENERGY": -0.08124172, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00060454, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00058837, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_pk_uhf, + "B2PLYP TOTAL ENERGY": -26.0726092204242192, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -7781,6 +10320,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_uhf, @@ -7793,8 +10333,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.03460729, # dfocc "LCCD CORRELATION ENERGY": -0.1748557523, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0333918420, # dfocc + "CCSD CORRELATION ENERGY": -0.17174585, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00381584, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00373642, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_pk_uhf, + "B2PLYP TOTAL ENERGY": -55.8329139653478279, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7807,6 +10353,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_uhf, @@ -7819,8 +10366,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.03792262, # dfocc "LCCD CORRELATION ENERGY": -0.1917015960, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0367596684, # dfocc + "CCSD CORRELATION ENERGY": -0.18831642, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00498272, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00488249, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_pk_uhf, + "B2PLYP TOTAL ENERGY": -55.8541121912572009, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7833,6 +10386,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_pk_rohf, @@ -7854,6 +10408,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_pk_rohf, @@ -7875,6 +10430,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_pk_rohf, @@ -7897,10 +10453,12 @@ "reference": "rhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_cd_rhf, "HF TOTAL GRADIENT": _grad_scf_hf_dz_cd_rhf, + # "HF TOTAL HESSIAN": _hess_scf_hf_dz_cd_rhf, "MP2 CORRELATION ENERGY": -0.20377328786815951, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.05427570, @@ -7910,12 +10468,78 @@ ).reshape((-1, 3)), "MP3 CORRELATION ENERGY": -0.20647618, # dfocc "MP3 SINGLES ENERGY": 0.0, + "MP3 TOTAL GRADIENT": np.array( + # dfocc findif-5 + [0.0, 0.0, -0.000926981449, 0.0, 0.0, 0.000926981449] + ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.208401248910, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.20990226, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.20873986012771106, + "LCCD SINGLES ENERGY": 0.0, + "LCCD TOTAL GRADIENT": np.array( + # dfocc findif-5 + [0.0, 0.0, 0.002193849073, 0.0, 0.0, -0.002193849073] + ).reshape((-1, 3)), + "CCD CORRELATION ENERGY": -0.2081480005, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( + # dfocc findif-5 tight + [0.0, 0.0, 0.000827082456, 0.0, 0.0, -0.000827082456] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.20873986003026, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04857381, - "(T) CORRECTION ENERGY": -0.0019363109218456449, + "CCSD TOTAL GRADIENT": np.array( + # dfocc findif-5 tight + [0.0, 0.0, 0.001979500372, 0.0, 0.0, -0.001979500372] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00193631092143, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight, findif-5 + [0.0, 0.0, 0.003075112296, 0.0, 0.0, -0.003075112296] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00196099396220, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.000704847713, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.204457056936, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [0.0, 0.0, 0.004099545733, 0.0, 0.0, -0.004099545733] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.000571702068, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.205680612213, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [0.0, 0.0, 0.002008491447, 0.0, 0.0, -0.002008491447] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000467209128, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.206931341471, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [0.0, 0.0, -0.000016455846, 0.0, 0.0, 0.000016455846] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.000553277131, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.208938401219, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [0.0, 0.0, 0.00282065206, 0.0, 0.0, -0.00282065206] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.000552265186, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.210437984945, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, findif-5, tight, sc + [0.0, 0.0, 0.003382226985, 0.0, 0.0, -0.003382226985] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.000511278480, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.208645666360, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.002062122653, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.002042124365, # dfocc, tight + "SVWN TOTAL ENERGY": -99.97974226710002, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.019330333461, 0.0, 0.0, -0.019330333461] + ).reshape((-1, 3)), + "PBE TOTAL ENERGY": -100.33526326, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [0.0, 0.0, 0.020101373239, 0.0, 0.0, -0.020101373239] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -100.43551459, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [0.0, 0.0, 0.01136685656, 0.0, 0.0, -0.01136685656] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_cd_rhf, # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -7928,6 +10552,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_cd_rhf, @@ -7951,12 +10576,44 @@ ).reshape((-1, 3)), "MP3 CORRELATION ENERGY": -0.22643303, # dfocc "MP3 SINGLES ENERGY": 0.0, + "REMP2 CORRELATION ENERGY": -0.229445833755, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.23188949, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.22941290, + "LCCD SINGLES ENERGY": 0.0, + "CCD CORRELATION ENERGY": -0.2280230001, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.22941289840818, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.05017955, - "(T) CORRECTION ENERGY": -0.00523867, + "(T) CORRECTION ENERGY": -0.00523866932915, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00523628844912, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.002352399946, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.224116136177, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001535058364, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.225648131745, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": 0.000953721118, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.227374133013, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": 0.00128180471179, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.23069205056701, # dfocc, right + "OLCCD REFERENCE CORRECTION ENERGY": 0.001189623873, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.233047836839, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": 0.001124461842, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.229120333540, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.005573969849, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005476248095, # dfocc, tight + "SVWN TOTAL ENERGY": -76.07573625160775, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.017008805687, 0.0, 0.012808822434, -0.008504402844, 0.0, -0.012808822434, -0.008504402844] + ).reshape((-1, 3)), + "PBE TOTAL ENERGY": -76.35898375776449, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [0.0, 0.0, 0.018083226924, 0.0, 0.011576350536, -0.009041613462, 0.0, -0.011576350536, -0.009041613462] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -76.44455249, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [0.0, 0.0, 0.007469575531, 0.0, 0.006128608861, -0.003734787766, 0.0, -0.006128608861, -0.003734787766] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_cd_rhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -7969,6 +10626,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_cd_rhf, @@ -7992,12 +10650,44 @@ ).reshape((-1, 3)), "MP3 CORRELATION ENERGY": -0.27294416, # dfocc "MP3 SINGLES ENERGY": 0.0, + "REMP2 CORRELATION ENERGY": -0.276442808601, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.27869015, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.27570421, + "LCCD SINGLES ENERGY": 0.0, + "CCD CORRELATION ENERGY": -0.2741709643, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.27570421327166, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.05801141, - "(T) CORRECTION ENERGY": -0.00726395, + "(T) CORRECTION ENERGY": -0.00726394807275, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00718177622315, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.002513733031, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.272591834175, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001691501139, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.273207190194, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": 0.001090092456, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.274014744975, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001444318022, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.277846110170, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": 0.001352168423, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.280004165823, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": 0.001279252698, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.275416999785, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.007572980491, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.007457755255, # dfocc, tight + "SVWN TOTAL ENERGY": -76.10234910181312, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.011171500733, 0.0, 0.009514061362, -0.005585750366, 0.0, -0.009514061362, -0.005585750366] + ).reshape((-1, 3)), + "PBE TOTAL ENERGY": -76.38214387, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [0.0, 0.0, 0.012782045518, 0.0, 0.008610884679, -0.006391022759, 0.0, -0.008610884679, -0.006391022759] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -76.46846507, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [0.0, 0.0, 0.00202921515, 0.0, 0.003048184166, -0.001014607575, 0.0, -0.003048184166, -0.001014607575] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_cd_rhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8010,10 +10700,12 @@ "reference": "uhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_cd_uhf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_cd_uhf, + # "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_cd_uhf, "MP2 CORRELATION ENERGY": -0.059476326350818454, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.0019188791023, @@ -8053,8 +10745,11 @@ -0.00011515114, ] ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.078034068730, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.002339588819, # dfocc, tight "LCCD CORRELATION ENERGY": -0.08343038, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.00240059, # dfocc "LCCD TOTAL GRADIENT": np.array( [ @@ -8072,6 +10767,213 @@ -0.000043034255, ] ).reshape((-1, 3)), + "CCD CORRELATION ENERGY": -0.08113343, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( + # dfocc findif-5 tight + [ + 0.0, + 0.0, + 0.0064041956, + 0.0, + 0.0, + -0.006210948996, + 0.0, + 0.014427521395, + -0.000096623302, + 0.0, + -0.014427521395, + -0.000096623302, + ] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.08216852322069, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "CCSD TOTAL GRADIENT": np.array( + # dfocc findif-5 tight + [ + 0.0, + 0.0, + 0.005208056118, + 0.0, + 0.0, + -0.005066275308, + 0.0, + 0.014858029899, + -0.000070890405, + 0.0, + -0.014858029899, + -0.000070890405, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00062616540400, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( + # dfocc findif-5 tight + [ + 0.0, + 0.0, + 0.004696859967, + 0.0, + 0.0, + -0.004638013918, + 0.0, + 0.014937987395, + -0.000029423024, + 0.0, + -0.014937987395, + -0.000029423024, + ] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00060935179141, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.000395339866, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.059851604202, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.001971334763, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.012014926118, + 0.0, + 0.0, + -0.011616714081, + 0.0, + 0.010556988797, + -0.000199106019, + 0.0, + -0.010556988797, + -0.000199106019, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.000564647007, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.067670676114, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.002198889579, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.010258655017, + 0.0, + 0.0, + -0.009975425021, + 0.0, + 0.011807301213, + -0.000141614998, + 0.0, + -0.011807301213, + -0.000141614998, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000777636403, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.075525183445, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.002426255771, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.008454603092, + 0.0, + 0.0, + -0.008286658589, + 0.0, + 0.013068349488, + -0.000083972251, + 0.0, + -0.013068349488, + -0.000083972251, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001061022340, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.078990084532, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.005896409683, + 0.0, + 0.0, + -0.005784924233, + 0.0, + 0.014365074414, + -0.000055742725, + 0.0, + -0.014365074414, + -0.000055742725, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001484257667, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.084737023607, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.002448903277, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, findif-5, tight, sc + [ + 0.0, + 0.0, + 0.002950898504, + 0.0, + 0.0, + -0.002932789842, + 0.0, + 0.015723337205, + -0.000009054331, + 0.0, + -0.015723337205, + -0.000009054331, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.001166023651, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.082184596469, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.000628150337, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.000605639575, # dfocc, tight + "SVWN TOTAL ENERGY": -25.88284516371439, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [ + 0.0, + 0.0, + -0.007521150796, + 0.0, + 0.0, + 0.002274281261, + 0.0, + 0.036134178605, + 0.002623434767, + 0.0, + -0.036134178605, + 0.002623434767, + ] + ).reshape((-1, 3)), + "PBE TOTAL ENERGY": -26.04684191, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [ + 0.0, + 0.0, + -0.002919057618, + 0.0, + 0.0, + -0.000173763979, + 0.0, + 0.02614258472, + 0.001546410798, + 0.0, + -0.02614258472, + 0.001546410798, + ] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -26.11402203, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [ + 0.0, + 0.0, + 0.003320289103, + 0.0, + 0.0, + -0.005826956801, + 0.0, + 0.019182511328, + 0.001253333849, + 0.0, + -0.019182511328, + 0.001253333849, + ] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_cd_uhf, # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -8084,6 +10986,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_cd_uhf, @@ -8107,9 +11010,49 @@ "MP3 CORRELATION ENERGY": -0.17091879, # dfocc "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.03533750, # dfocc + "REMP2 CORRELATION ENERGY": -0.172502759037, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.034552222422, # dfocc, tight "LCCD CORRELATION ENERGY": -0.17701192, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.03413070, # dfocc + "CCD CORRELATION ENERGY": -0.17274477, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.17387519037716, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00384402655927, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00376419871586, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.001367410529, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.156184908805, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.035978726948, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001174113090, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.164041684333, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.035851868032, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": 0.001024364167, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.171935686596, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.035751323781, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": 0.00111244830766, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.17360075617488, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": 0.001111961826, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.178109192111, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.034472712167, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": 0.000987767517, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.173723374782, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.003989459873, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.003889358031, # dfocc, tight + "SVWN TOTAL ENERGY": -55.57345144327663, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.035469689186, 0.0, 0.020928985861, -0.017734844593, 0.0, -0.020928985861, -0.017734844593] + ).reshape((-1, 3)), + "PBE TOTAL ENERGY": -55.81475332612209, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [0.0, 0.0, 0.035840315894, 0.0, 0.019756083894, -0.017920157947, 0.0, -0.019756083894, -0.017920157947] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -55.89009263, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [0.0, 0.0, 0.0268141821, 0.0, 0.01494743893, -0.01340709105, 0.0, -0.01494743893, -0.01340709105] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_cd_uhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8122,6 +11065,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_cd_uhf, @@ -8145,9 +11089,49 @@ "MP3 CORRELATION ENERGY": -0.21084618, # dfocc "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.04130830, # dfocc + "REMP2 CORRELATION ENERGY": -0.212450972170, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.040612908150, # dfocc, tight "LCCD CORRELATION ENERGY": -0.21678706, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.04013515, # dfocc + "CCD CORRELATION ENERGY": -0.21199584, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.21329730737718, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00516682217061, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00506455138393, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.001570622893, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.197065813141, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.042464346261, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001350861495, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.204519387255, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.042091026132, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": 0.001177850332, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.212014665319, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.041748214104, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001287828667, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.213722428382, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": 0.001285760689, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.218055380962, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.040516816950, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": 0.001155093018, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.213139214735, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.005339052936, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005215408128, # dfocc, tight + "SVWN TOTAL ENERGY": -55.59260769222509, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.028884098124, 0.0, 0.016574869248, -0.014442049062, 0.0, -0.016574869248, -0.014442049062] + ).reshape((-1, 3)), + "PBE TOTAL ENERGY": -55.83099556, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [0.0, 0.0, 0.02962368704, 0.0, 0.015649420616, -0.01481184352, 0.0, -0.015649420616, -0.01481184352] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -55.90727490, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590, findif-5 + [0.0, 0.0, 0.020000075259, 0.0, 0.010436428357, -0.01000003763, 0.0, -0.010436428357, -0.01000003763] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_cd_uhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8160,10 +11144,12 @@ "reference": "rohf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_cd_rohf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_cd_rohf, + # "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_cd_rohf, "MP2 CORRELATION ENERGY": -0.06046475293245379, "MP2 SINGLES ENERGY": -0.00069387098844, "MP2 SAME-SPIN CORRELATION ENERGY": -0.002005071400, @@ -8171,6 +11157,104 @@ # dfocc findif-5 ae cd+cd [0.0, 0.0, 0.01359215, 0.0, 0.0, -0.01312116, 0.0, 0.01031541, -0.0002355, 0.0, -0.01031541, -0.0002355] ).reshape((-1, 3)), + "OMP2 REFERENCE CORRECTION ENERGY": -0.001128324491, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.061375267646, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.001971334332, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.012014926118, + 0.0, + 0.0, + -0.011616714077, + 0.0, + 0.010556988794, + -0.00019910602, + 0.0, + -0.010556988794, + -0.00019910602, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.000959016912, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.069194339558, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.002198888868, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.010258655018, + 0.0, + 0.0, + -0.009975425018, + 0.0, + 0.011807301211, + -0.000141615, + 0.0, + -0.011807301211, + -0.000141615, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": -0.000746026622, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.077048846889, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.002426255644, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.008454603088, + 0.0, + 0.0, + -0.008286658586, + 0.0, + 0.013068349485, + -0.000083972251, + 0.0, + -0.013068349485, + -0.000083972251, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.000462639536, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.080513747976, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.00589640968, + 0.0, + 0.0, + -0.005784924229, + 0.0, + 0.014365074413, + -0.000055742725, + 0.0, + -0.014365074413, + -0.000055742725, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": -0.000039411002, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.086260687051, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.002448904007, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, findif-5, tight, sc + [ + 0.0, + 0.0, + 0.002950898507, + 0.0, + 0.0, + -0.002932789839, + 0.0, + 0.015723337202, + -0.000009054334, + 0.0, + -0.015723337202, + -0.000009054334, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.000357639780, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.083708259924, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.000628150338, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.000605639576, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -8183,6 +11267,7 @@ "reference": "rohf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_cd_rohf, @@ -8203,6 +11288,24 @@ -0.012794480501, ] ).reshape((-1, 3)), + "OMP2 REFERENCE CORRECTION ENERGY": -0.003046091958, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.160598409777, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.035978726618, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.003239390456, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.168455185305, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.035851867343, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": -0.003389139644, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.176349187568, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.035751323194, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": -0.003301052810, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.178014257147, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": -0.003301541633, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.182522693083, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.034472708888, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": -0.003425733446, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.178136875756, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.003989459878, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.003889358035, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8215,6 +11318,7 @@ "reference": "rohf", "fcae": "ae", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_cd_rohf, @@ -8235,6 +11339,24 @@ -0.006942026833, ] ).reshape((-1, 3)), + "OMP2 REFERENCE CORRECTION ENERGY": -0.003039111099, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.201675545798, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.042464346330, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.003258874587, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.209129119912, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.042091025938, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": -0.003431885897, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.216624397975, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.041748214168, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": -0.003321905366, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.218332161038, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": -0.003323981369, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.222665113625, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.040516826809, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": -0.003454639639, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.217748947404, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.005339052938, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005215408130, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8248,10 +11370,12 @@ "reference": "rhf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_cd_rhf, "HF TOTAL GRADIENT": _grad_scf_hf_dz_cd_rhf, + # "HF TOTAL HESSIAN": _hess_scf_hf_dz_cd_rhf, "MP2 CORRELATION ENERGY": -0.201619244596, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.05348825, @@ -8261,12 +11385,66 @@ ).reshape((-1, 3)), "MP3 CORRELATION ENERGY": -0.20453260, # dfocc "MP3 SINGLES ENERGY": 0.0, + "MP3 TOTAL GRADIENT": np.array( + # dfocc findif-5 fc cd+cd + [0.0, 0.0, -0.000588974421, 0.0, 0.0, 0.000588974421] + ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.206423120122, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.20795503, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.2068117080298787, + "LCCD SINGLES ENERGY": 0.0, + "LCCD TOTAL GRADIENT": np.array( + # dfocc findif-5 fc cd+cd + [0.0, 0.0, 0.002525704147, 0.0, 0.0, -0.002525704147] + ).reshape((-1, 3)), + "CCD CORRELATION ENERGY": -0.2062220430, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( + # dfocc findif-5 fc cd+cd tight + [0.0, 0.0, 0.001167911218, 0.0, 0.0, -0.001167911218] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.20681170792808, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04787083, - "(T) CORRECTION ENERGY": -0.0019204203743072874, + "CCSD TOTAL GRADIENT": np.array( + # dfocc findif-5 fc cd+cd tight + [0.0, 0.0, 0.002325504721, 0.0, 0.0, -0.002325504721] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00192042037371, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight, findif-5 + [0.0, 0.0, 0.003419339394, 0.0, 0.0, -0.003419339394] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00194413458399, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.000702500011, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.202330761197, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [0.0, 0.0, 0.004482045565, 0.0, 0.0, -0.004482045565] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.000571428855, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.203698037577, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [0.0, 0.0, 0.002413412285, 0.0, 0.0, -0.002413412285] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000468982166, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.205112639670, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [0.0, 0.0, 0.000419528739, 0.0, 0.0, -0.000419528739] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.000554016472, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.207066289816, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [0.0, 0.0, 0.003235950588, 0.0, 0.0, -0.003235950588] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.000553491444, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.208617145287, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [0.0, 0.0, 0.003803435612, 0.0, 0.0, -0.003803435612] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.000511777936, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.206827599221, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.002043157128, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.002023030659, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_cd_rhf, # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -8279,6 +11457,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_cd_rhf, @@ -8302,12 +11481,32 @@ ).reshape((-1, 3)), "MP3 CORRELATION ENERGY": -0.22415794, # dfocc "MP3 SINGLES ENERGY": 0.0, + "REMP2 CORRELATION ENERGY": -0.227139386881, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.22961642, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.22717607, + "LCCD SINGLES ENERGY": 0.0, + "CCD CORRELATION ENERGY": -0.2257842561, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.22717606848165, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04939986, - "(T) CORRECTION ENERGY": -0.00521248, + "(T) CORRECTION ENERGY": -0.00521247873234, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00520979601465, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.002351861704, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.221658768039, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001538083685, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.223336430535, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": 0.000960343766, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.225227488953, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": 0.00128588799768, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.22849477192663, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": 0.001194389384, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.230903883683, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": 0.001127721989, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.226990468428, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.005543695574, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005445988059, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_cd_rhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8320,6 +11519,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_cd_rhf, @@ -8343,12 +11543,32 @@ ).reshape((-1, 3)), "MP3 CORRELATION ENERGY": -0.24747710, # dfocc "MP3 SINGLES ENERGY": 0.0, + "REMP2 CORRELATION ENERGY": -0.251016068140, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.25319315, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.25032939, + "LCCD SINGLES ENERGY": 0.0, + "CCD CORRELATION ENERGY": -0.2488498077, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.25032938698805, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.05405638, - "(T) CORRECTION ENERGY": -0.00709686, + "(T) CORRECTION ENERGY": -0.00709685911318, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00701825978933, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.002435969540, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.247516285552, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001628337567, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.247905627376, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": 0.001042085727, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.248525576959, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001387317415, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.252381884524, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": 0.001298302400, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.254480886451, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": 0.001226900919, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.250063908572, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.007402343012, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.007289120982, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_cd_rhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8361,10 +11581,12 @@ "reference": "uhf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_cd_uhf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_cd_uhf, + # "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_cd_uhf, "MP2 CORRELATION ENERGY": -0.058410863785614, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.001767642489, @@ -8404,8 +11626,11 @@ -0.000121632922, ] ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.077009033372, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.002190684009, # dfocc, tight "LCCD CORRELATION ENERGY": -0.08242726, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.00225350, # dfocc "LCCD TOTAL GRADIENT": np.array( [ @@ -8423,62 +11648,248 @@ -0.000048867243, ] ).reshape((-1, 3)), - # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), - # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), - }, - }, - { - "meta": { - "system": "nh2", - "basis": "aug-cc-pvdz", - "scf_type": "cd", - "reference": "uhf", - "fcae": "fc", - "corl_type": "cd", - }, - "data": { - "HF TOTAL ENERGY": _scf_nh2_adz_cd_uhf, - "HF TOTAL GRADIENT": _grad_scf_nh2_adz_cd_uhf, - "MP2 CORRELATION ENERGY": -0.15241915, - "MP2 SINGLES ENERGY": 0.0, - "MP2 SAME-SPIN CORRELATION ENERGY": -0.03445770, - "MP2 TOTAL GRADIENT": np.array( - [ # dfocc findif-5 fc cd+cd + "CCD CORRELATION ENERGY": -0.08014246, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( + # dfocc findif-5 tight + [ 0.0, 0.0, - 0.026258239074, + 0.006157735197, 0.0, - 0.01404196652, - -0.013129119537, 0.0, - -0.01404196652, - -0.013129119537, + -0.005953159624, + 0.0, + 0.014424722031, + -0.000102287787, + 0.0, + -0.014424722031, + -0.000102287787, ] ).reshape((-1, 3)), - "MP3 CORRELATION ENERGY": -0.16863165, # dfocc - "MP3 SINGLES ENERGY": 0.0, - "MP3 SAME-SPIN CORRELATION ENERGY": -0.03464009, # dfocc - "LCCD CORRELATION ENERGY": -0.17475747, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, - "LCCD SAME-SPIN CORRELATION ENERGY": -0.0334416820, # dfocc - # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), - # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), - }, - }, - { - "meta": { - "system": "nh2", - "basis": "cfour-qz2p", - "scf_type": "cd", - "reference": "uhf", - "fcae": "fc", - "corl_type": "cd", - }, - "data": { - "HF TOTAL ENERGY": _scf_nh2_qz2p_cd_uhf, - "HF TOTAL GRADIENT": _grad_scf_nh2_qz2p_cd_uhf, - "MP2 CORRELATION ENERGY": -0.17117831, - "MP2 SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.08116696345172, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "CCSD TOTAL GRADIENT": np.array( + # dfocc findif-5 tight + [ + 0.0, + 0.0, + 0.004963224373, + 0.0, + 0.0, + -0.004809612915, + 0.0, + 0.014854893513, + -0.000076805729, + 0.0, + -0.014854893513, + -0.000076805729, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00060403476990, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( + # dfocc findif-5 tight + [ + 0.0, + 0.0, + 0.004461517471, + 0.0, + 0.0, + -0.004390206103, + 0.0, + 0.014934316994, + -0.000035655684, + 0.0, + -0.014934316994, + -0.000035655684, + ] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00058789584036, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.000393271089, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.058955062039, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.001822163929, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.011799994885, + 0.0, + 0.0, + -0.01138752044, + 0.0, + 0.010550315239, + -0.000206237223, + 0.0, + -0.010550315239, + -0.000206237223, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.000564442101, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.066788204166, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.002049209044, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.010034895199, + 0.0, + 0.0, + -0.009737937774, + 0.0, + 0.011801086788, + -0.000148478713, + 0.0, + -0.011801086788, + -0.000148478713, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000780607023, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.074661038269, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.002276029266, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.00821954564, + 0.0, + 0.0, + -0.008038362344, + 0.0, + 0.013062527819, + -0.000090591648, + 0.0, + -0.013062527819, + -0.000090591648, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001065407270, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.078143718483, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.005658577881, + 0.0, + 0.0, + -0.005534792789, + 0.0, + 0.014360022699, + -0.000061892546, + 0.0, + -0.014360022699, + -0.000061892546, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001492355224, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.083912298766, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.002307760137, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.002702310243, + 0.0, + 0.0, + -0.002672567295, + 0.0, + 0.015718809974, + -0.000014871474, + 0.0, + -0.015718809974, + -0.000014871474, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.001173585912, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.081366382141, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.000608522852, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.000586642668, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_cd_uhf, + # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), + }, + }, + { + "meta": { + "system": "nh2", + "basis": "aug-cc-pvdz", + "scf_type": "cd", + "reference": "uhf", + "fcae": "fc", + "corl_type": "cd", + "sdsc": "sd", + }, + "data": { + "HF TOTAL ENERGY": _scf_nh2_adz_cd_uhf, + "HF TOTAL GRADIENT": _grad_scf_nh2_adz_cd_uhf, + "MP2 CORRELATION ENERGY": -0.15241915, + "MP2 SINGLES ENERGY": 0.0, + "MP2 SAME-SPIN CORRELATION ENERGY": -0.03445770, + "MP2 TOTAL GRADIENT": np.array( + [ # dfocc findif-5 fc cd+cd + 0.0, + 0.0, + 0.026258239074, + 0.0, + 0.01404196652, + -0.013129119537, + 0.0, + -0.01404196652, + -0.013129119537, + ] + ).reshape((-1, 3)), + "MP3 CORRELATION ENERGY": -0.16863165, # dfocc + "MP3 SINGLES ENERGY": 0.0, + "MP3 SAME-SPIN CORRELATION ENERGY": -0.03464009, # dfocc + "REMP2 CORRELATION ENERGY": -0.170216188333, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.033852995535, # dfocc, tight + "LCCD CORRELATION ENERGY": -0.17475747, # dfocc + "LCCD SINGLES ENERGY": 0.0, + "LCCD SAME-SPIN CORRELATION ENERGY": -0.0334416820, # dfocc + "CCD CORRELATION ENERGY": -0.17052456, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.17165311633501, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00381139581323, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00373214885816, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.001360881782, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.153818916860, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.035194310016, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001172035292, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.161781119255, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.035088275618, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": 0.001026576887, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.169784888805, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.035012011899, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": 0.00111325834527, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.17144631168723, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": 0.001113861889, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.176001256953, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.033743742943, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": 0.000988643093, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.171635485628, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.003954325581, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.003854709089, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_cd_uhf, + # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), + }, + }, + { + "meta": { + "system": "nh2", + "basis": "cfour-qz2p", + "scf_type": "cd", + "reference": "uhf", + "fcae": "fc", + "corl_type": "cd", + "sdsc": "sd", + }, + "data": { + "HF TOTAL ENERGY": _scf_nh2_qz2p_cd_uhf, + "HF TOTAL GRADIENT": _grad_scf_nh2_qz2p_cd_uhf, + "MP2 CORRELATION ENERGY": -0.17117831, + "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.03822948, "MP2 TOTAL GRADIENT": np.array( [ # dfocc findif-5 fc cd+cd @@ -8496,9 +11907,37 @@ "MP3 CORRELATION ENERGY": -0.18575577, # dfocc "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.03792717, # dfocc + "REMP2 CORRELATION ENERGY": -0.187472566719, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.037236809266, # dfocc, tight "LCCD CORRELATION ENERGY": -0.19170174, # dfocc - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.03676422, # dfocc + "CCD CORRELATION ENERGY": -0.18708450, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.18831657592466, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00498288386522, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00488265656152, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.001480341549, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.172676727210, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.039024778995, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001273007276, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.179776978593, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.038629873581, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": 0.001112904383, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.186933561283, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.038275663827, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001217841569, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.188746049630, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": 0.001218721333, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.192985744725, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.037047752001, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": 0.001091119790, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.188236874643, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.005146215122, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005026054902, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_cd_uhf, # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8511,10 +11950,12 @@ "reference": "rohf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_cd_rohf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_cd_rohf, + # "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_cd_rohf, "MP2 CORRELATION ENERGY": -0.05939419492939635, "MP2 SINGLES ENERGY": -0.0006881934, "MP2 SAME-SPIN CORRELATION ENERGY": -0.0018520881544, @@ -8535,6 +11976,104 @@ -0.00024246, ] ).reshape((-1, 3)), + "OMP2 REFERENCE CORRECTION ENERGY": -0.001130393431, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.060478725483, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.001822163952, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.011799994879, + 0.0, + 0.0, + -0.011387520433, + 0.0, + 0.01055031524, + -0.000206237223, + 0.0, + -0.01055031524, + -0.000206237223, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.000959218077, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.068311867609, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.002049209005, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight, sc + [ + 0.0, + 0.0, + 0.010034895198, + 0.0, + 0.0, + -0.009737937769, + 0.0, + 0.011801086785, + -0.000148478714, + 0.0, + -0.011801086785, + -0.000148478714, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": -0.000743052999, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.076184701712, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.002276029277, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.008219545639, + 0.0, + 0.0, + -0.008038362341, + 0.0, + 0.013062527816, + -0.000090591649, + 0.0, + -0.013062527816, + -0.000090591649, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.000458253707, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.079667381927, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.005658577879, + 0.0, + 0.0, + -0.005534792785, + 0.0, + 0.014360022698, + -0.000061892547, + 0.0, + -0.014360022698, + -0.000061892547, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": -0.000031311396, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.085435962210, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.002307761175, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, findif-5, tight + [ + 0.0, + 0.0, + 0.002702310244, + 0.0, + 0.0, + -0.002672567292, + 0.0, + 0.015718809973, + -0.000014871476, + 0.0, + -0.015718809973, + -0.000014871476, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.000350077551, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.082890045477, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.000608522844, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.000586642661, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -8547,6 +12086,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_cd_rohf, @@ -8567,6 +12107,24 @@ -0.01318846179, ] ).reshape((-1, 3)), + "OMP2 REFERENCE CORRECTION ENERGY": -0.003052622179, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.158232417832, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.035194309944, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.003241471192, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.166194620227, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.035088275359, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": -0.003386926686, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.174198389777, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.035012012647, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": -0.00330024259293, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.17585981265919, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": -0.003299640039, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.180414757924, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.033743734902, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": -0.003424857817, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.176048986550, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.003954325599, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.003854709106, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8579,6 +12137,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "cd", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_cd_rohf, @@ -8599,6 +12158,24 @@ -0.007444881162, ] ).reshape((-1, 3)), + "OMP2 REFERENCE CORRECTION ENERGY": -0.003129397648, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.177286459867, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.039024777173, # dfocc, tight + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.003336731502, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.184386711249, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.038629874099, # dfocc, tight + "OMP3 REFERENCE CORRECTION ENERGY": -0.003496834047, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.191543293940, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.038275664440, # dfocc, tight + "OREMP2 REFERENCE CORRECTION ENERGY": -0.003391896462, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.193355782287, # dfocc, tight + "OLCCD REFERENCE CORRECTION ENERGY": -0.003391009701, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.197595477381, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.037047749578, # dfocc, tight + "OCCD REFERENCE CORRECTION ENERGY": -0.003518612862, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.192846607336, # dfocc, tight + "O(T) CORRECTION ENERGY": -0.005146215124, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005026054904, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8612,10 +12189,12 @@ "reference": "rhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_cd_rhf, "HF TOTAL GRADIENT": _grad_scf_hf_dz_cd_rhf, + # "HF TOTAL HESSIAN": _hess_scf_hf_dz_cd_rhf, "MP2 CORRELATION ENERGY": -0.2037748110768, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.054311870576, @@ -8627,12 +12206,15 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 TOTAL GRADIENT": np.array([0.0, 0.0, -0.000934631868, 0.0, 0.0, 0.000934631868]).reshape((-1, 3)), "LCCD CORRELATION ENERGY": -0.2100441271, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD TOTAL GRADIENT": np.array([0.0, 0.0, 0.00218256974, 0.0, 0.0, -0.00218256974]).reshape((-1, 3)), - "CCSD CORRELATION ENERGY": -0.20887885, + "CCSD CORRELATION ENERGY": -0.20887887, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04845784, - "(T) CORRECTION ENERGY": -0.00193844, + "(T) CORRECTION ENERGY": -0.00193844, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00196317, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_cd_rhf, + "B2PLYP TOTAL ENERGY": -100.3646277114083887, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -8645,6 +12227,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_cd_rhf, @@ -8655,11 +12238,14 @@ "MP3 CORRELATION ENERGY": -0.22652912, # dfocc "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2320256729, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.22954292, + "LCCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.22954292, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.05010092, - "(T) CORRECTION ENERGY": -0.00524386, + "(T) CORRECTION ENERGY": -0.00524386, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00524138, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_cd_rhf, + "B2PLYP TOTAL ENERGY": -76.3803817300909031, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8672,6 +12258,7 @@ "reference": "rhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_cd_rhf, @@ -8682,11 +12269,14 @@ "MP3 CORRELATION ENERGY": -0.27294050, # dfocc "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2786865554, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.27570087, + "LCCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.27570087, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.05800702, - "(T) CORRECTION ENERGY": -0.00726367, + "(T) CORRECTION ENERGY": -0.00726367, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00718150, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_cd_rhf, + "B2PLYP TOTAL ENERGY": -76.4168421953897052, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8699,10 +12289,12 @@ "reference": "uhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_cd_uhf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_cd_uhf, + # "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_cd_uhf, "MP2 CORRELATION ENERGY": -0.059456828193, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.00192025457659, @@ -8710,8 +12302,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.00235846, # dfocc "LCCD CORRELATION ENERGY": -0.0835057932, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0024017496, # dfocc + "CCSD CORRELATION ENERGY": -0.08224146, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00062667, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00060983, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_cd_uhf, + "B2PLYP TOTAL ENERGY": -26.0729387146540788, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -8724,6 +12322,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_cd_uhf, @@ -8735,8 +12334,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.03530448, # dfocc "LCCD CORRELATION ENERGY": -0.1771099018, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0340807883, # dfocc + "CCSD CORRELATION ENERGY": -0.17396776, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00384848, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00376848, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_cd_uhf, + "B2PLYP TOTAL ENERGY": -55.8336002883394400, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8749,6 +12354,7 @@ "reference": "uhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_cd_uhf, @@ -8760,8 +12366,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.04130347, # dfocc "LCCD CORRELATION ENERGY": -0.2167832515, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0401303480, # dfocc + "CCSD CORRELATION ENERGY": -0.21329358, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00516657, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00506430, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_cd_uhf, + "B2PLYP TOTAL ENERGY": -55.8610829799526698, # psi 55,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8774,10 +12386,12 @@ "reference": "rohf", "fcae": "ae", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_cd_rohf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_cd_rohf, + # "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_cd_rohf, "MP2 CORRELATION ENERGY": -0.06044431529, "MP2 SINGLES ENERGY": -0.00069387098844, "MP2 SAME-SPIN CORRELATION ENERGY": -0.0020066063, @@ -8794,6 +12408,7 @@ "reference": "rohf", "fcae": "ae", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_cd_rohf, @@ -8814,6 +12429,7 @@ "reference": "rohf", "fcae": "ae", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_cd_rohf, @@ -8835,10 +12451,12 @@ "reference": "rhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_cd_rhf, "HF TOTAL GRADIENT": _grad_scf_hf_dz_cd_rhf, + # "HF TOTAL HESSIAN": _hess_scf_hf_dz_cd_rhf, "MP2 CORRELATION ENERGY": -0.2016205147678, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.0535243575, @@ -8849,11 +12467,14 @@ "MP3 CORRELATION ENERGY": -0.20462784, # dfocc "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2080964757, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.20695033, + "LCCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.20695035, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04775464, - "(T) CORRECTION ENERGY": -0.00192252, + "(T) CORRECTION ENERGY": -0.00192252, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00194627, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_cd_rhf, + "B2PLYP TOTAL ENERGY": -100.3640101961093478, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -8866,6 +12487,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_cd_rhf, @@ -8876,11 +12498,14 @@ "MP3 CORRELATION ENERGY": -0.22425360, # dfocc "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2297520405, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.22730558, + "LCCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.22730551, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04932106, - "(T) CORRECTION ENERGY": -0.00521762, + "(T) CORRECTION ENERGY": -0.00521762, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00521484, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_cd_rhf, + "B2PLYP TOTAL ENERGY": -76.3796628907550996, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8893,6 +12518,7 @@ "reference": "rhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_cd_rhf, @@ -8903,11 +12529,14 @@ "MP3 CORRELATION ENERGY": -0.24747659, # dfocc "MP3 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2531926943, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "CCSD CORRELATION ENERGY": -0.25032917, + "LCCD SINGLES ENERGY": 0.0, + "CCSD CORRELATION ENERGY": -0.25032917, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.05405189, - "(T) CORRECTION ENERGY": -0.00709658, + "(T) CORRECTION ENERGY": -0.00709658, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00701799, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_cd_rhf, + "B2PLYP TOTAL ENERGY": -76.4097380606132361, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8920,10 +12549,12 @@ "reference": "uhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_cd_uhf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_cd_uhf, + # "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_cd_uhf, "MP2 CORRELATION ENERGY": -0.05839103061, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.00176895897, @@ -8931,8 +12562,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.00220541, # dfocc "LCCD CORRELATION ENERGY": -0.0825023638, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0022546311, # dfocc + "CCSD CORRELATION ENERGY": -0.08123956, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00060452, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00058836, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_cd_uhf, + "B2PLYP TOTAL ENERGY": -26.0726100467676396, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -8945,6 +12582,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_cd_uhf, @@ -8956,8 +12594,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.03460714, # dfocc "LCCD CORRELATION ENERGY": -0.1748548876, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0333916888, # dfocc + "CCSD CORRELATION ENERGY": -0.17174515, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00381581, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00373640, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_cd_uhf, + "B2PLYP TOTAL ENERGY": -55.8328884911895713, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8970,6 +12614,7 @@ "reference": "uhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_cd_uhf, @@ -8981,8 +12626,14 @@ "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.03792228, # dfocc "LCCD CORRELATION ENERGY": -0.1917007514, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0367593319, # dfocc + "CCSD CORRELATION ENERGY": -0.18831566, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "(T) CORRECTION ENERGY": -0.00498264, # dfocc, tight + "A-(T) CORRECTION ENERGY": -0.00488241, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_cd_uhf, + "B2PLYP TOTAL ENERGY": -55.8541241661683614, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -8995,10 +12646,12 @@ "reference": "rohf", "fcae": "fc", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_cd_rohf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_cd_rohf, + # "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_cd_rohf, "MP2 CORRELATION ENERGY": -0.05937342969795, "MP2 SINGLES ENERGY": -0.0006881934, "MP2 SAME-SPIN CORRELATION ENERGY": -0.001853561678, @@ -9015,6 +12668,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_cd_rohf, @@ -9035,6 +12689,7 @@ "reference": "rohf", "fcae": "fc", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_cd_rohf, @@ -9056,10 +12711,12 @@ "reference": "rhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_df_rhf, "HF TOTAL GRADIENT": _grad_scf_hf_dz_df_rhf, + "HF TOTAL HESSIAN": _hess_scf_hf_dz_df_rhf, "MP2 CORRELATION ENERGY": -0.2037649370559149, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.05430875283333263, @@ -9076,23 +12733,124 @@ "MP3 CORRELATION ENERGY": -0.20656153, # dfocc "MP3 SINGLES ENERGY": 0.0, "MP3 TOTAL GRADIENT": np.array([0.0, 0.0, -0.000933466293, 0.0, 0.0, 0.000933466293]).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.208504245426, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2100337333, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD TOTAL GRADIENT": np.array([0.0, 0.0, 0.002183232102, 0.0, 0.0, -0.002183232102]).reshape((-1, 3)), - "CCSD CORRELATION ENERGY": -0.20886884012911314, + "CCD CORRELATION ENERGY": -0.2082764592, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, 0.000818124849, -0.0, -0.0, -0.000818124849] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.20886881949604, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04845491, - "CCSD TOTAL GRADIENT": np.array( + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.0, + 0.001970518943, + 0.0, + 0.0, + -0.001970518943, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00193801686266, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, 0.003068357914, -0.0, -0.0, -0.003068357914] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00196274645521, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.000705416559, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.204449284608, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.000000000000, 0.004079891926, 0.0, -0.000000000000, -0.004079891926] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.000572277516, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.205719687105, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.000000000000, 0.001995568826, 0.0, -0.000000000000, -0.001995568826] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000467850505, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.207017324163, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.000000000000, -0.000022521780, 0.0, -0.000000000000, 0.000022521780] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.000553781427, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.209041900252, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.000000000000, 0.002809444261, 0.0, -0.000000000000, -0.002809444261] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.000552755815, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.210569944656, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [0.000000000000, 0.000000000000, 0.003371636637, -0.000000000000, -0.000000000000, -0.003371636637] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.00051171478318, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.20877455867384, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, 0.001829701353, 0.0, 0.0, -0.001829701353] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.002064008068, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.002043954736, # dfocc, tight + "SVWN TOTAL ENERGY": -99.97968868729104, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, -0.0, 0.019359029672, 0.0, 0.0, -0.019358980719] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590 [ + -0.011168131792, + -0.0, + 0.0, + 0.011172130726, + 0.0, + -0.0, + -0.0, + -0.011168131791, + -0.0, + -0.0, + 0.011172130726, + 0.0, + 0.0, + -0.0, + 0.642302311047, + -0.0, + 0.0, + -0.642288537528, + 0.011172130726, + -0.0, + -0.0, + -0.011163568945, + 0.0, + -0.0, 0.0, + 0.011172130726, 0.0, - 0.001970675302, 0.0, + -0.011163568946, + -0.0, + -0.0, 0.0, - -0.001970675302, + -0.642288537528, + -0.0, + -0.0, + 0.6422854146, ] + ).reshape((6, 6)), + "PBE TOTAL ENERGY": -100.33521027, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.020130499789, 0.0, -0.0, -0.020130524567] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -100.43547355, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, -0.0, 0.011392119703, 0.0, -0.0, -0.011392010986] + ).reshape((-1, 3)), + "WB97X TOTAL ENERGY": -100.41421085713486, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202, findif-5 + [0.0, -0.0, 0.006648755885, 0.0, -0.0, -0.006648573196] ).reshape((-1, 3)), - "(T) CORRECTION ENERGY": -0.0019380186429220421, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_df_rhf, + "B2PLYP TOTAL ENERGY": -100.3646058112210824, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -9105,10 +12863,12 @@ "reference": "rhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_df_rhf, "HF TOTAL GRADIENT": _grad_scf_h2o_adz_df_rhf, + "HF TOTAL HESSIAN": _hess_scf_h2o_adz_df_rhf, "MP2 CORRELATION ENERGY": -0.22187976, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.05674571, @@ -9130,48 +12890,256 @@ "MP3 TOTAL GRADIENT": np.array( [0.0, 0.0, 0.004009128141, 0.0, 0.002552803039, -0.00200456407, 0.0, -0.002552803039, -0.00200456407] ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.22954466014956, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2320149229, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD TOTAL GRADIENT": np.array( [0.0, 0.0, 0.008561006838, 0.0, 0.005236802973, -0.004280503419, 0.0, -0.005236802973, -0.004280503419] ).reshape((-1, 3)), - "CCSD CORRELATION ENERGY": -0.22953289, + "CCD CORRELATION ENERGY": -0.2281433856, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, -0.0, 0.006179417919, -0.0, 0.00392052373, -0.00308970896, 0.0, -0.003920523729, -0.003089708959] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.22953288030956, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.05009877, - "CCSD TOTAL GRADIENT": np.array( + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight [ 0.0, 0.0, - 0.007518759967, + 0.007518713989, 0.0, - 0.004613106602, - -0.003759379983, + 0.004612996204, + -0.003759356993, 0.0, - -0.004613106602, - -0.003759379983, + -0.004612996204, + -0.003759356995, ] ).reshape((-1, 3)), - "(T) CORRECTION ENERGY": -0.00524345, - # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), - # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), - }, - }, - { - "meta": { - "system": "h2o", - "basis": "cfour-qz2p", - "scf_type": "df", - "reference": "rhf", - "fcae": "ae", - "corl_type": "df", - }, - "data": { - "HF TOTAL ENERGY": _scf_h2o_qz2p_df_rhf, - "HF TOTAL GRADIENT": _grad_scf_h2o_qz2p_df_rhf, - "MP2 CORRELATION ENERGY": -0.27016105, - "MP2 SINGLES ENERGY": 0.0, - "MP2 SAME-SPIN CORRELATION ENERGY": -0.06529808, - "MP2 TOTAL GRADIENT": np.array( + "(T) CORRECTION ENERGY": -0.00524345048605, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, 0.010200006450, -0.0, 0.00604923838, -0.005100003223, -0.0, -0.00604923838, -0.005100003226] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00524100328791, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.002353213091, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.224108722336, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.012090520150, + 0.0, + 0.006792038487, + -0.006045260075, + 0.0, + -0.006792038487, + -0.006045260075, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001535554696, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.225687426127, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.008284981234, + 0.0, + 0.004775627693, + -0.004142490617, + 0.0, + -0.004775627693, + -0.004142490617, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000954089054, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.227460339651, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.004815233651, + 0.0, + 0.002952173310, + -0.002407616826, + 0.0, + -0.002952173310, + -0.002407616826, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001281722402, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.23079090375495, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.009108870642, + 0.0, + 0.005403366342, + -0.004554435321, + 0.0, + -0.005403366342, + -0.004554435321, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001189314489, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.233173062606, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.000000000000, + -0.000000000000, + 0.009761700492, + -0.000000000000, + 0.005853403252, + -0.004880850246, + -0.000000000000, + -0.005853403251, + -0.004880850246, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.0011241002379, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.22924045334096, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.007259063497, + -0.0, + 0.004473960460, + -0.003629531749, + -0.0, + -0.004473960460, + -0.003629531749, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.005578769043, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005480838164, # dfocc, tight + "SVWN TOTAL ENERGY": -76.07574048609808, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.017021972532, -0.0, 0.012817893242, -0.008511166112, 0.0, -0.012817893242, -0.008511166112] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590 + [ + -0.015299334632, + -0.0, + -0.000000000002, + 0.007678980381, + -0.0, + 0.0, + 0.007678980385, + 0.0, + 0.0, + -0.0, + 0.714101517289, + -0.000000000032, + -0.0, + -0.357059324641, + 0.282410047669, + 0.0, + -0.357059324634, + -0.282410047587, + -0.000000000002, + -0.000000000032, + 0.456490029157, + 0.0, + 0.22319113684, + -0.228247587643, + 0.0, + -0.223191136802, + -0.228247587644, + 0.007678980381, + -0.0, + 0.0, + -0.008315956845, + 0.0, + 0.0, + 0.00063803809, + -0.0, + -0.0, + -0.0, + -0.357059324641, + 0.22319113684, + 0.0, + 0.385931772222, + -0.252801553596, + 0.0, + -0.0288700995, + 0.029609316084, + 0.0, + 0.282410047669, + -0.228247587643, + 0.0, + -0.252801553596, + 0.218980782707, + -0.0, + -0.029609316078, + 0.009268752866, + 0.007678980385, + 0.0, + 0.0, + 0.00063803809, + 0.0, + -0.0, + -0.008315956847, + -0.0, + -0.0, + 0.0, + -0.357059324634, + -0.223191136802, + -0.0, + -0.0288700995, + -0.029609316078, + -0.0, + 0.385931772317, + 0.252801553661, + 0.0, + -0.282410047587, + -0.228247587644, + -0.0, + 0.029609316084, + 0.009268752866, + -0.0, + 0.252801553661, + 0.218980782752, + ] + ).reshape((9, 9)), + "PBE TOTAL ENERGY": -76.35898912990783, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.018097092596, -0.0, 0.011586123511, -0.009048894034, 0.0, -0.011586123511, -0.009048894034] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -76.44456455, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.007475949858, -0.0, 0.00613847913, -0.003738203973, 0.0, -0.00613847913, -0.003738203973] + ).reshape((-1, 3)), + "WB97X TOTAL ENERGY": -76.42164084415194, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202, findif-5 + [0.0, 0.0, 0.00284541, -0.0, 0.00296728, -0.00142221, 0.0, -0.00296728, -0.00142221] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_df_rhf, + "B2PLYP TOTAL ENERGY": -76.3804028015970857, # psi 99,590 + # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), + }, + }, + { + "meta": { + "system": "h2o", + "basis": "cfour-qz2p", + "scf_type": "df", + "reference": "rhf", + "fcae": "ae", + "corl_type": "df", + "sdsc": "sd", + }, + "data": { + "HF TOTAL ENERGY": _scf_h2o_qz2p_df_rhf, + "HF TOTAL GRADIENT": _grad_scf_h2o_qz2p_df_rhf, + "HF TOTAL HESSIAN": _hess_scf_h2o_qz2p_df_rhf, + "MP2 CORRELATION ENERGY": -0.27016105, + "MP2 SINGLES ENERGY": 0.0, + "MP2 SAME-SPIN CORRELATION ENERGY": -0.06529808, + "MP2 TOTAL GRADIENT": np.array( [ # dfmp2 findif-5 ae df+df 0.0, 0.0, @@ -9189,18 +13157,234 @@ "MP3 TOTAL GRADIENT": np.array( [0.0, 0.0, -0.007037747646, 0.0, -0.004494031919, 0.003518873823, 0.0, 0.004494031919, 0.003518873823] ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.276419945808, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2786671617, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD TOTAL GRADIENT": np.array( [0.0, 0.0, -0.002344345036, 0.0, -0.001783728285, 0.001172172518, 0.0, 0.001783728285, 0.001172172518] ).reshape((-1, 3)), - "CCSD CORRELATION ENERGY": -0.27568236, + "CCD CORRELATION ENERGY": -0.2741489819, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.0, + -0.004790202029, + -0.0, + -0.003048964224, + 0.002395101014, + -0.0, + 0.003048964224, + 0.002395101014, + ] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.27568224252782, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.05800380, - "CCSD TOTAL GRADIENT": np.array( - [0.0, 0.0, -0.003408844165, 0.0, -0.002343169064, 0.001704422083, 0.0, 0.002343169064, 0.001704422083] + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, -0.003408923965, 0.0, -0.002343243985, 0.001704461980, 0.0, 0.002343243985, 0.001704461985] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00726212675888, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, -0.000217412659, -0.0, -0.000742939442, 0.000108706327, 0.0, 0.000742939441, 0.000108706333] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00718000875661, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.002514012770, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.272569214076, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.001818176662, + 0.0, + 0.000241592175, + -0.000909088331, + 0.0, + -0.000241592175, + -0.000909088331, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001691695489, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.273184743555, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + -0.002325903973, + 0.0, + -0.001998665869, + 0.001162951987, + 0.0, + 0.001998665869, + 0.001162951987, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.001090223846, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.273992490969, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + -0.006182600264, + 0.0, + -0.004075383127, + 0.003091300132, + 0.0, + 0.004075383127, + 0.003091300132, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001444459285, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.277823416296, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + -0.001651592566, + 0.0, + -0.001517469318, + 0.000825796283, + 0.0, + 0.001517469318, + 0.000825796283, + ] ).reshape((-1, 3)), - "(T) CORRECTION ENERGY": -0.00726213, + "OLCCD REFERENCE CORRECTION ENERGY": 0.001352291360, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.279981325469, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.000000000000, + -0.000000000000, + -0.001075340549, + -0.000000000000, + -0.001136934323, + 0.000537670274, + 0.000000000000, + 0.001136934323, + 0.000537670274, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.00127938819983, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.27539517277894, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + -0.003670656144, + -0.0, + -0.002477953103, + 0.001835328072, + 0.0, + 0.002477953103, + 0.001835328072, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.007571167323, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.007455996809, # dfocc, tight + "SVWN TOTAL ENERGY": -76.10232964924052, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.011132147324, -0.0, 0.009489578319, -0.005566364846, 0.0, -0.009489578319, -0.005566364846] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590 + [ + -0.009982123608, + -0.000000000003, + 0.000000000001, + 0.005022694229, + -0.0, + -0.0, + 0.005022694229, + -0.0, + 0.0, + -0.000000000003, + 0.699083187256, + -0.000000000003, + -0.0, + -0.349553083271, + 0.274541978121, + 0.0, + -0.349553083268, + -0.274541978118, + 0.000000000001, + -0.000000000003, + 0.449571259443, + 0.0, + 0.216193555918, + -0.224787939359, + -0.0, + -0.216193555917, + -0.224787939349, + 0.005022694229, + -0.0, + 0.0, + -0.005825563758, + 0.0, + 0.0, + 0.000803395893, + 0.0, + 0.0, + -0.0, + -0.349553083271, + 0.216193555918, + 0.0, + 0.379628979061, + -0.245370803861, + -0.0, + -0.030071414048, + 0.029173919817, + -0.0, + 0.274541978121, + -0.224787939359, + 0.0, + -0.245370803861, + 0.21536910855, + 0.0, + -0.029173919811, + 0.009421830645, + 0.005022694229, + 0.0, + -0.0, + 0.000803395893, + -0.0, + 0.0, + -0.005825563757, + 0.0, + 0.0, + -0.0, + -0.349553083268, + -0.216193555917, + 0.0, + -0.030071414048, + -0.029173919811, + 0.0, + 0.379628979061, + 0.245370803855, + 0.0, + -0.274541978118, + -0.224787939349, + 0.0, + 0.029173919817, + 0.009421830645, + 0.0, + 0.245370803855, + 0.215369108539, + ] + ).reshape((9, 9)), + "PBE TOTAL ENERGY": -76.38213149, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.012739554295, -0.0, 0.008585626913, -0.006370169853, 0.0, -0.008585626913, -0.006370169853] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -76.46844827, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.001992158396, -0.0, 0.003027194556, -0.00099636428, 0.0, -0.003027194556, -0.00099636428] + ).reshape((-1, 3)), + "WB97X TOTAL ENERGY": -76.44427590906572, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202, findif-5 + [0.0, 0.0, -0.002582039801, 0.0, -0.000046718668, 0.001291589931, -0.0, 0.000046718668, 0.001291589931] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_df_rhf, + "B2PLYP TOTAL ENERGY": -76.4168144583403830, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -9213,10 +13397,12 @@ "reference": "uhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_df_uhf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_df_uhf, + "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_df_uhf, "MP2 CORRELATION ENERGY": -0.0594557966607590, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.001920220330437888, @@ -9243,81 +13429,699 @@ [ 0.0, 0.0, - 0.009311184271, + 0.009311184271, + 0.0, + 0.0, + -0.009082434632, + 0.0, + 0.012724190366, + -0.00011437482, + 0.0, + -0.012724190366, + -0.00011437482, + ] + ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.078090599375, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.002340709678, # dfocc, tight + "LCCD CORRELATION ENERGY": -0.0835030877, # p4n + "LCCD SINGLES ENERGY": 0.0, + "LCCD SAME-SPIN CORRELATION ENERGY": -0.0024016379, # dfocc + "LCCD TOTAL GRADIENT": np.array( + [ + 0.0, + 0.0, + 0.004636606273, + 0.0, + 0.0, + -0.004551154292, + 0.0, + 0.015266304532, + -0.00004272599, + 0.0, + -0.015266304532, + -0.00004272599, + ] + ).reshape((-1, 3)), + "CCD CORRELATION ENERGY": -0.08120235, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.0, + 0.006399006162, + -0.0, + -0.0, + -0.006206323117, + -0.0, + 0.014450800585, + -0.000096341522, + 0.0, + -0.014450800585, + -0.000096341522, + ] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.08223900985527, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.0, + 0.005201169988, + 0.0, + -0.0, + -0.005060084065, + -0.0, + 0.014882201275, + -0.000070542962, + 0.0, + -0.014882201275, + -0.000070542961, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00062655599464, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.0, + 0.004689654727, + 0.0, + -0.0, + -0.004631718438, + -0.0, + 0.014962374742, + -0.000028968145, + 0.0, + -0.014962374742, + -0.000028968144, + ] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00060971952519, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.000396459592, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.059832149673, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.001972801620, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.012031476427, + 0.0, + -0.000000000000, + -0.011634888026, + 0.0, + 0.010540730273, + -0.000198294201, + 0.0, + -0.010540730274, + -0.000198294201, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.000566397552, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.067689046439, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.002200309774, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.010263706524, + 0.0, + -0.000000000000, + -0.009982176653, + 0.0, + 0.011813660618, + -0.000140764936, + 0.0, + -0.011813660618, + -0.000140764936, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000780187024, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.075581499723, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.002427625806, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.008448066470, + 0.0, + -0.000000000000, + -0.008281866938, + 0.0, + 0.013097326629, + -0.000083099766, + 0.0, + -0.013097326629, + -0.000083099766, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001063189693, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.079048591655, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.005890513253, + 0.0, + -0.000000000000, + -0.005780178036, + 0.0, + 0.014386023476, + -0.000055167609, + 0.0, + -0.014386023476, + -0.000055167609, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001486131044, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.084811453110, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.002450103204, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.000000000000, + 0.000000000000, + 0.002942322545, + 0.000000000000, + -0.000000000000, + -0.002924986204, + -0.000000000000, + 0.015750409537, + -0.000008668171, + 0.000000000000, + -0.015750409537, + -0.000008668171, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.00116757931849, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.08225497590846, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.0, + 0.005192742269, + 0.0, + -0.0, + -0.005046526613, + -0.0, + 0.014877327584, + -0.000073107828, + 0.0, + -0.014877327584, + -0.000073107828, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.000628655467, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.000606118093, # dfocc, tight + "SVWN TOTAL ENERGY": -25.88283110277485, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [ + -0.0, + 0.0, + -0.007528180742, + 0.0, + 0.0, + 0.002278298181, + -0.0, + 0.036125770495, + 0.002624938728, + 0.0, + -0.036125770495, + 0.002624938728, + ] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590, findif-5 + [ + -0.001868632523, + 0.0, + 0.0, + 0.002273478054, + 0.0, + 0.0, + -0.000202422765, + 0.0, + 0.0, + -0.000202422765, + 0.0, + 0.0, + 0.0, + -0.002099514447, + 0.0, + 0.0, + 0.002410237082, + 0.0, + 0.0, + -0.000155361318, + -0.000139354921, + 0.0, + -0.000155361318, + 0.000139354921, + 0.0, + 0.0, + 0.209841529106, + 0.0, + 0.0, + -0.211634651715, + 0.0, + 0.003613009863, + 0.000896561305, + 0.0, + -0.003613009863, + 0.000896561305, + 0.002273478054, + 0.0, + 0.0, + -0.001884996935, + 0.0, + 0.0, + -0.000194240559, + 0.0, + 0.0, + -0.000194240559, + 0.0, + 0.0, + 0.0, + 0.002410237082, + 0.0, + 0.0, + -0.001966220902, + 0.0, + 0.0, + -0.00022200809, + 0.000081337758, + 0.0, + -0.00022200809, + -0.000081337758, + 0.0, + 0.0, + -0.211634651715, + 0.0, + 0.0, + 0.211515553657, + 0.0, + 0.000035537687, + 0.000059549029, + 0.0, + -0.000035537687, + 0.000059549029, + -0.000202422765, + 0.0, + 0.0, + -0.000194240559, + 0.0, + 0.0, + -0.025531746834, + 0.0, + 0.0, + 0.025928410159, + 0.0, + 0.0, + 0.0, + -0.000155361318, + 0.003613009863, + 0.0, + -0.00022200809, + 0.000035537687, + 0.0, + 0.40846028102, + -0.001795265194, + 0.0, + -0.408082911612, + -0.001853282357, + 0.0, + -0.000139354921, + 0.000896561305, + 0.0, + 0.000081337758, + 0.000059549029, + 0.0, + -0.001795265194, + -0.026298945203, + 0.0, + 0.001853282357, + 0.025342834869, + -0.000202422765, + 0.0, + 0.0, + -0.000194240559, + 0.0, + 0.0, + 0.025928410159, + 0.0, + 0.0, + -0.025531746834, + 0.0, + 0.0, + 0.0, + -0.000155361318, + -0.003613009863, + 0.0, + -0.00022200809, + -0.000035537687, + 0.0, + -0.408082911612, + 0.001853282357, + 0.0, + 0.40846028102, + 0.001795265194, + 0.0, + 0.000139354921, + 0.000896561305, + 0.0, + -0.000081337758, + 0.000059549029, + 0.0, + -0.001853282357, + 0.025342834869, + 0.0, + 0.001795265194, + -0.026298945203, + ] + ).reshape((12, 12)), + "PBE TOTAL ENERGY": -26.04682962, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590 + [ + -0.0, + -0.0, + -0.00292661285, + 0.0, + 0.0, + -0.000169218875, + -0.0, + 0.026134688736, + 0.001547921503, + 0.0, + -0.026134688736, + 0.001547921503, + ] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -26.11401525, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590 + [ + 0.0, + 0.0, + 0.003314065304, + 0.0, + 0.0, + -0.005823149531, + -0.0, + 0.019174183281, + 0.001254732996, + 0.0, + -0.019174183281, + 0.001254732996, + ] + ).reshape((-1, 3)), + "WB97X TOTAL ENERGY": -26.09949176460252, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202 findif-5 + [ + -0.0, + 0.0, + 0.003379717239, + -0.0, + 0.0, + -0.006574418407, + -0.0, + 0.018193361281, + 0.001597213407, + 0.0, + -0.018193361281, + 0.001597213407, + ] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_df_uhf, + "B2PLYP TOTAL ENERGY": -26.0729396999567840, # psi 99,590 + # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), + # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), + }, + }, + { + "meta": { + "system": "nh2", + "basis": "aug-cc-pvdz", + "scf_type": "df", + "reference": "uhf", + "fcae": "ae", + "corl_type": "df", + "sdsc": "sd", + }, + "data": { + "HF TOTAL ENERGY": _scf_nh2_adz_df_uhf, + "HF TOTAL GRADIENT": _grad_scf_nh2_adz_df_uhf, + "HF TOTAL HESSIAN": _hess_scf_nh2_adz_df_uhf, + "MP2 CORRELATION ENERGY": -0.15483909, + "MP2 SINGLES ENERGY": 0.0, + "MP2 SAME-SPIN CORRELATION ENERGY": -0.03523134, + "MP2 TOTAL GRADIENT": np.array( + [ # dfmp2 findif-5 ae df+df + 0.0, + 0.0, + 0.025476049585, + 0.0, + 0.013480567736, + -0.012738024793, + 0.0, + -0.013480567736, + -0.012738024793, + ] + ).reshape((-1, 3)), + "MP3 CORRELATION ENERGY": -0.17097347, # dfocc + "MP3 SINGLES ENERGY": 0.0, + "MP3 SAME-SPIN CORRELATION ENERGY": -0.03530244, # dfocc + "MP3 TOTAL GRADIENT": np.array( + [0.0, 0.0, 0.027082665714, 0.0, 0.014406579724, -0.013541332857, 0.0, -0.014406579724, -0.013541332857] + ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.17256998862940, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.03451443433327, # dfocc, tight + "LCCD CORRELATION ENERGY": -0.1770997033, # p4n + "LCCD SINGLES ENERGY": 0.0, + "LCCD SAME-SPIN CORRELATION ENERGY": -0.0340788149, # dfocc + "LCCD TOTAL GRADIENT": np.array( + [0.0, 0.0, 0.030686886723, 0.0, 0.016619966665, -0.015343443362, 0.0, -0.016619966665, -0.015343443362] + ).reshape((-1, 3)), + "CCD CORRELATION ENERGY": -0.17282784, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [-0.0, -0.0, 0.028141518582, 0.0, 0.01520232422, -0.014070759291, 0.0, -0.01520232422, -0.014070759291] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.17395818499234, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.0, + 0.029266386707, + 0.0, + 0.015807793582, + -0.014633193357, + -0.0, + -0.015807793582, + -0.014633193351, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00384810072338, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.0, + 0.031148775451, + 0.0, + 0.016805034066, + -0.015574387726, + -0.0, + -0.016805034066, + -0.015574387725, + ] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00376812221828, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.001367832301, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.156173452626, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.036004901480, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.026914388853, + 0.0, + 0.014240311996, + -0.013457194426, + 0.0, + -0.014240311996, + -0.013457194426, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001174470264, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.164063461670, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.035847923992, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.027483211370, + 0.0, + 0.014576999156, + -0.013741605685, + 0.0, + -0.014576999156, + -0.013741605685, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.001024687110, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.171990731878, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.035717311998, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.028112148199, + 0.0, + 0.014949633980, + -0.014056074099, + 0.0, + -0.014949633980, + -0.014056074099, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.0011125246764, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.17366812020990, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight) + [ + 0.0, + -0.000000000000, + 0.030213597936, + 0.0, + 0.016231443797, + -0.015106798968, + 0.0, + -0.016231443797, + -0.015106798968, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001111851483, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.178196933112, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.034422402711, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.000000000000, + -0.000000000000, + 0.031864432517, + 0.000000000000, + 0.017258987132, + -0.015932216258, + -0.000000000000, + -0.017258987132, + -0.015932216258, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.00098766230788, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.17380639841079, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [-0.0, -0.0, 0.029147626743, 0.0, 0.01574493194, -0.014573813372, -0.0, -0.01574493194, -0.014573813372] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.003993549226, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.003893263740, # dfocc, tight + "SVWN TOTAL ENERGY": -55.57344983107319, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [-0.0, 0.0, 0.035469475022, -0.0, 0.020928806811, -0.01773474765, 0.0, -0.020928806811, -0.01773474765] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590, findif-5 + [ + -0.030587815367, + 0.0, + 0.0, + 0.015293907684, + 0.0, 0.0, + 0.015293907684, 0.0, - -0.009082434632, 0.0, - 0.012724190366, - -0.00011437482, 0.0, - -0.012724190366, - -0.00011437482, - ] - ).reshape((-1, 3)), - "LCCD CORRELATION ENERGY": -0.0835030877, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "LCCD SAME-SPIN CORRELATION ENERGY": -0.0024016379, # dfocc - "LCCD TOTAL GRADIENT": np.array( - [ + 0.613620758584, 0.0, 0.0, - 0.004636606273, + -0.306810379292, + 0.247159475157, 0.0, + -0.306810379292, + -0.247159475157, 0.0, - -0.004551154292, 0.0, - 0.015266304532, - -0.00004272599, + 0.378480199957, 0.0, - -0.015266304532, - -0.00004272599, - ] - ).reshape((-1, 3)), - # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), - # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), - }, - }, - { - "meta": { - "system": "nh2", - "basis": "aug-cc-pvdz", - "scf_type": "df", - "reference": "uhf", - "fcae": "ae", - "corl_type": "df", - }, - "data": { - "HF TOTAL ENERGY": _scf_nh2_adz_df_uhf, - "HF TOTAL GRADIENT": _grad_scf_nh2_adz_df_uhf, - "MP2 CORRELATION ENERGY": -0.15483909, - "MP2 SINGLES ENERGY": 0.0, - "MP2 SAME-SPIN CORRELATION ENERGY": -0.03523134, - "MP2 TOTAL GRADIENT": np.array( - [ # dfmp2 findif-5 ae df+df + 0.193966522798, + -0.189240099979, 0.0, + -0.193966522798, + -0.189240099979, + 0.015293907684, 0.0, - 0.025476049585, 0.0, - 0.013480567736, - -0.012738024793, + -0.014571453885, 0.0, - -0.013480567736, - -0.012738024793, + 0.0, + -0.000722453798, + 0.0, + 0.0, + 0.0, + -0.306810379292, + 0.193966522798, + 0.0, + 0.332432750472, + -0.220562998977, + 0.0, + -0.02562237118, + 0.02659647618, + 0.0, + 0.247159475157, + -0.189240099979, + 0.0, + -0.220562998977, + 0.182521675397, + 0.0, + -0.02659647618, + 0.006718424581, + 0.015293907684, + 0.0, + 0.0, + -0.000722453798, + 0.0, + 0.0, + -0.014571453885, + 0.0, + 0.0, + 0.0, + -0.306810379292, + -0.193966522798, + 0.0, + -0.02562237118, + -0.02659647618, + 0.0, + 0.332432750472, + 0.220562998977, + 0.0, + -0.247159475157, + -0.189240099979, + 0.0, + 0.02659647618, + 0.006718424581, + 0.0, + 0.220562998977, + 0.182521675397, ] + ).reshape((9, 9)), + "PBE TOTAL ENERGY": -55.81475290212862, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590 + [-0.0, 0.0, 0.035840402792, -0.0, 0.01975585323, -0.017920287524, 0.0, -0.01975585323, -0.017920287524] ).reshape((-1, 3)), - "MP3 CORRELATION ENERGY": -0.17097347, # dfocc - "MP3 SINGLES ENERGY": 0.0, - "MP3 SAME-SPIN CORRELATION ENERGY": -0.03530244, # dfocc - "MP3 TOTAL GRADIENT": np.array( - [0.0, 0.0, 0.027082665714, 0.0, 0.014406579724, -0.013541332857, 0.0, -0.014406579724, -0.013541332857] + "B3LYP TOTAL ENERGY": -55.89010330, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590 + [0.0, 0.0, 0.026815461209, -0.0, 0.014944070844, -0.013407746678, 0.0, -0.014944070844, -0.013407746678] ).reshape((-1, 3)), - "LCCD CORRELATION ENERGY": -0.1770997033, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, - "LCCD SAME-SPIN CORRELATION ENERGY": -0.0340788149, # dfocc - "LCCD TOTAL GRADIENT": np.array( - [0.0, 0.0, 0.030686886723, 0.0, 0.016619966665, -0.015343443362, 0.0, -0.016619966665, -0.015343443362] + "WB97X TOTAL ENERGY": -55.86922972100922, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202 findif-5 + [0.0, 0.0, 0.02448296743, -0.0, 0.013468925278, -0.012241027965, 0.0, -0.013468925278, -0.012241027965] ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_df_uhf, + "B2PLYP TOTAL ENERGY": -55.8336273896870736, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -9330,10 +14134,12 @@ "reference": "uhf", "fcae": "ae", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_df_uhf, "HF TOTAL GRADIENT": _grad_scf_nh2_qz2p_df_uhf, + "HF TOTAL HESSIAN": _hess_scf_nh2_qz2p_df_uhf, "MP2 CORRELATION ENERGY": -0.19550726, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.04161470, @@ -9356,12 +14162,239 @@ "MP3 TOTAL GRADIENT": np.array( [0.0, 0.0, 0.014412459072, 0.0, 0.005610368822, -0.007206229536, 0.0, -0.005610368822, -0.007206229536] ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.212434650458, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.040606132872, # dfocc, tight "LCCD CORRELATION ENERGY": -0.2167706529, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0401283617, # dfocc "LCCD TOTAL GRADIENT": np.array( [0.0, 0.0, 0.018122428755, 0.0, 0.007810952273, -0.009061214377, 0.0, -0.007810952273, -0.009061214377] ).reshape((-1, 3)), + "CCD CORRELATION ENERGY": -0.21198023, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [-0.0, -0.0, 0.015551859519, -0.0, 0.006470515012, -0.00777592976, 0.0, -0.006470515012, -0.00777592976] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.21328159274710, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, -0.0, 0.016818391166, -0.0, 0.0071380193, -0.008409195584, 0.0, -0.0071380193, -0.008409195582] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00516563729772, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.0, + 0.019018581448, + -0.0, + 0.008236968052, + -0.009509290726, + 0.0, + -0.008236968052, + -0.009509290722, + ] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00506341197521, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.001570633341, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.197048695120, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.042457672915, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.015291382216, + 0.0, + 0.006145115573, + -0.007645691108, + 0.0, + -0.006145115573, + -0.007645691108, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001350847967, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.204503012944, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.042084276114, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.015388626332, + 0.0, + 0.006150433332, + -0.007694313166, + 0.0, + -0.006150433332, + -0.007694313166, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.001177820960, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.211999043568, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.041741379825, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.015546142750, + 0.0, + 0.006191167357, + -0.007773071375, + 0.0, + -0.006191167357, + -0.007773071375, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001287786460, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.213706080780, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.017877890596, + 0.0, + 0.007580722221, + -0.008938945298, + 0.0, + -0.007580722221, + -0.008938945298, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001285702841, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.218038927594, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.040510034508, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.000000000000, + -0.000000000000, + 0.019448090911, + -0.000000000000, + 0.008509858260, + -0.009724045456, + 0.000000000000, + -0.008509858260, + -0.009724045456, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.00115506325268, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.21312358096054, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, 0.016675154934, -0.0, 0.007064234315, -0.008337577467, 0.0, -0.007064234315, -0.008337577467] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.005337854371, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005214252989, # dfocc, tight + "SVWN TOTAL ENERGY": -55.59261213872637, # psi 99,590 + "SVWN TOTAL GRADIENT": np.array( # psi 99,590 + [ + -0.0, + 0.0, + 0.028854540696, + -0.0, + 0.016550659197, + -0.014427331687, + 0.0, + -0.016550659197, + -0.014427331687, + ] + ).reshape((-1, 3)), + "SVWN TOTAL HESSIAN": np.array( # psi 99,590, findif-5 + [ + -0.024883374093, + 0.0, + 0.0, + 0.012441687046, + 0.0, + 0.0, + 0.012441687046, + 0.0, + 0.0, + 0.0, + 0.593390763591, + 0.0, + 0.0, + -0.296695381795, + 0.237209665984, + 0.0, + -0.296695381795, + -0.237209665984, + 0.0, + 0.0, + 0.370911215894, + 0.0, + 0.184982972616, + -0.185455607947, + 0.0, + -0.184982972616, + -0.185455607947, + 0.012441687046, + 0.0, + 0.0, + -0.011696790889, + 0.0, + 0.0, + -0.000744896157, + 0.0, + 0.0, + 0.0, + -0.296695381795, + 0.184982972616, + 0.0, + 0.322707377502, + -0.2110963193, + 0.0, + -0.026011995706, + 0.026113346684, + 0.0, + 0.237209665984, + -0.185455607947, + 0.0, + -0.2110963193, + 0.178260718446, + 0.0, + -0.026113346684, + 0.007194889501, + 0.012441687046, + 0.0, + 0.0, + -0.000744896157, + 0.0, + 0.0, + -0.011696790889, + 0.0, + 0.0, + 0.0, + -0.296695381795, + -0.184982972616, + 0.0, + -0.026011995706, + -0.026113346684, + 0.0, + 0.322707377502, + 0.2110963193, + 0.0, + -0.237209665984, + -0.185455607947, + 0.0, + 0.026113346684, + 0.007194889501, + 0.0, + 0.2110963193, + 0.178260718446, + ] + ).reshape((9, 9)), + "PBE TOTAL ENERGY": -55.83100498, # psi 99,590 + "PBE TOTAL GRADIENT": np.array( # psi 99,590 + [-0.0, 0.0, 0.029591151947, -0.0, 0.015623483695, -0.01479570471, 0.0, -0.015623483695, -0.01479570471] + ).reshape((-1, 3)), + "B3LYP TOTAL ENERGY": -55.90728149, # psi 99,590 + "B3LYP TOTAL GRADIENT": np.array( # psi 99,590 + [-0.0, 0.0, 0.01997080535, -0.0, 0.010412948823, -0.009985460257, 0.0, -0.010412948823, -0.009985460257] + ).reshape((-1, 3)), + "WB97X TOTAL ENERGY": -55.88530822384336, # psi 500,1202 + "WB97X TOTAL GRADIENT": np.array( # psi 500,1202, findif-5 + [-0.0, 0.0, 0.01726863113, -0.0, 0.008837123397, -0.008633551557, 0.0, -0.008837123397, -0.008633551557] + ).reshape((-1, 3)), + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_df_uhf, + "B2PLYP TOTAL ENERGY": -55.8610813741572159, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -9374,10 +14407,12 @@ "reference": "rohf", "fcae": "ae", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_df_rohf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_df_rohf, + "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_df_rohf, "MP2 CORRELATION ENERGY": -0.0604436327328384, "MP2 SINGLES ENERGY": -0.0006940750313001934, "MP2 SAME-SPIN CORRELATION ENERGY": -0.0020065676314032863, @@ -9399,6 +14434,120 @@ ).reshape((-1, 3)), "LCCD CORRELATION ENERGY": -0.0834776542, # p4n "LCCD TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), + "OMP2 REFERENCE CORRECTION ENERGY": -0.001127578413, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.061356186762, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.001972801188, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.012031487574, + 0.0, + -0.000000000000, + -0.011634881724, + 0.0, + 0.010540719393, + -0.000198302925, + 0.0, + -0.010540719393, + -0.000198302925, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.000957639989, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.069213083529, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.002200309067, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.010263733632, + 0.0, + -0.000000000000, + -0.009982179290, + 0.0, + 0.011813639779, + -0.000140777171, + 0.0, + -0.011813639779, + -0.000140777171, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": -0.000743849641, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.077105536812, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.002427625679, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.008448077204, + 0.0, + -0.000000000000, + -0.008281875978, + 0.0, + 0.013097326563, + -0.000083100613, + 0.0, + -0.013097326563, + -0.000083100613, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.000460845361, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.080572628744, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.005890487280, + 0.0, + -0.000000000000, + -0.005780144920, + 0.0, + 0.014386015714, + -0.000055171180, + 0.0, + -0.014386015714, + -0.000055171180, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": -0.000037911160, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.086335490199, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.002450103939, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.000000000000, + 0.000000000000, + 0.002942353924, + 0.000000000000, + -0.000000000000, + -0.002925017923, + -0.000000000000, + 0.015750403382, + -0.000008668000, + 0.000000000000, + -0.015750403382, + -0.000008668000, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.00035645775738, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.08377901300913, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.000000000000, + 0.005192742183, + 0.0, + -0.000000000000, + -0.005046526527, + -0.0, + 0.014877327583, + -0.000073107828, + 0.0, + -0.014877327583, + -0.000073107828, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.000628655467, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.000606118094, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -9411,10 +14560,12 @@ "reference": "rohf", "fcae": "ae", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_df_rohf, "HF TOTAL GRADIENT": _grad_scf_nh2_adz_df_rohf, + "HF TOTAL HESSIAN": _hess_scf_nh2_adz_df_rohf, "MP2 CORRELATION ENERGY": -0.15947485, "MP2 SINGLES ENERGY": -0.00282982, "MP2 SAME-SPIN CORRELATION ENERGY": -0.03544639, @@ -9432,6 +14583,102 @@ ] ).reshape((-1, 3)), "LCCD CORRELATION ENERGY": -0.1792603912, # p4n + "OMP2 REFERENCE CORRECTION ENERGY": -0.003046129441, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.160587412835, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.036004901152, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.026914381459, + 0.0, + 0.014240313354, + -0.013457190729, + 0.0, + -0.014240313354, + -0.013457190729, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.003239492526, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.168477421879, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.035847923306, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.027483206969, + 0.0, + 0.014577000408, + -0.013741603485, + 0.0, + -0.014577000408, + -0.013741603485, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": -0.003389275946, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.176404692086, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.035717311411, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.028112143061, + 0.0, + 0.014949636932, + -0.014056071530, + 0.0, + -0.014949636932, + -0.014056071530, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.003301435451, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.178082080418, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.030213608364, + 0.0, + 0.016231443474, + -0.015106804182, + 0.0, + -0.016231443474, + -0.015106804182, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": -0.003302111181, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.182610893321, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.034422399491, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.000000000000, + -0.000000000000, + 0.031864462561, + 0.000000000000, + 0.017259000991, + -0.015932231281, + -0.000000000000, + -0.017259000990, + -0.015932231281, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.00342629789193, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.17822035862112, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + -0.000000000000, + 0.029147627070, + 0.0, + 0.015744932006, + -0.014573813535, + -0.0, + -0.015744932006, + -0.014573813535, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.003993549230, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.003893263743, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -9444,10 +14691,12 @@ "reference": "rohf", "fcae": "ae", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_df_rohf, "HF TOTAL GRADIENT": _grad_scf_nh2_qz2p_df_rohf, + "HF TOTAL HESSIAN": _hess_scf_nh2_qz2p_df_rohf, "MP2 CORRELATION ENERGY": -0.20051655, "MP2 SINGLES ENERGY": -0.00298400, "MP2 SAME-SPIN CORRELATION ENERGY": -0.04178365, @@ -9455,16 +14704,112 @@ [ # dfmp2 findif-5 ae df+df 0.0, 0.0, - 0.013865245912, + 0.013865245912, + 0.0, + 0.005377216253, + -0.006932622956, + 0.0, + -0.005377216253, + -0.006932622956, + ] + ).reshape((-1, 3)), + "LCCD CORRELATION ENERGY": -0.2190866990, # p4n + "OMP2 REFERENCE CORRECTION ENERGY": -0.003039409981, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.201658737065, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.042457672983, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.015291380391, + 0.0, + 0.006145126895, + -0.007645690196, + 0.0, + -0.006145126895, + -0.007645690196, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.003259197444, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.209113054889, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.042084275918, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.015388624199, 0.0, - 0.005377216253, - -0.006932622956, + 0.006150440601, + -0.007694312099, 0.0, - -0.005377216253, - -0.006932622956, + -0.006150440601, + -0.007694312099, ] ).reshape((-1, 3)), - "LCCD CORRELATION ENERGY": -0.2190866990, # p4n + "OMP3 REFERENCE CORRECTION ENERGY": -0.003432224601, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.216609085513, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.041741379888, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.015546139127, + 0.0, + 0.006191172928, + -0.007773069564, + 0.0, + -0.006191172928, + -0.007773069564, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.003322256873, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.218316122726, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.017877876813, + 0.0, + 0.007580722265, + -0.008938938407, + 0.0, + -0.007580722265, + -0.008938938407, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": -0.003324348494, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.222648969545, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.040510044397, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.000000000000, + -0.000000000000, + 0.019447884570, + -0.000000000000, + 0.008509802850, + -0.009723942285, + 0.000000000000, + -0.008509802849, + -0.009723942285, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.00345497869314, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.21773362291808, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.016675155033, + -0.0, + 0.007064234369, + -0.008337577516, + 0.0, + -0.007064234369, + -0.008337577516, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.005337854373, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005214252991, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -9478,10 +14823,12 @@ "reference": "rhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_df_rhf, "HF TOTAL GRADIENT": _grad_scf_hf_dz_df_rhf, + "HF TOTAL HESSIAN": _hess_scf_hf_dz_df_rhf, "MP2 CORRELATION ENERGY": -0.201610660387, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.0535212487451535, @@ -9498,23 +14845,68 @@ "MP3 CORRELATION ENERGY": -0.20461763, # dfocc "MP3 SINGLES ENERGY": 0.0, "MP3 TOTAL GRADIENT": np.array([0.0, 0.0, -0.000595617648, 0.0, 0.0, 0.000595617648]).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.206525739571, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2080860831, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD TOTAL GRADIENT": np.array([0.0, 0.0, 0.002514968877, 0.0, 0.0, -0.002514968877]).reshape((-1, 3)), - "CCSD CORRELATION ENERGY": -0.20694032546082639, + "CCD CORRELATION ENERGY": -0.2063501312, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, 0.001158833226, -0.0, -0.0, -0.001158833226] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.20694030442285, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04775171, - "CCSD TOTAL GRADIENT": np.array( + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight [ 0.0, 0.0, - 0.002316563628, + 0.002316407407, 0.0, 0.0, - -0.002316563628, + -0.002316407407, ] ).reshape((-1, 3)), - "(T) CORRECTION ENERGY": -0.001922093564526723, + "(T) CORRECTION ENERGY": -0.00192209183545, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, 0.003412477814, -0.0, -0.0, -0.003412477814] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00194585245550, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.000703072086, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.202322737562, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.000000000000, 0.004462211239, 0.0, -0.000000000000, -0.004462211239] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.000572012280, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.203736894925, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.000000000000, 0.002400349139, 0.0, -0.000000000000, -0.002400349139] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000469635507, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.205198445453, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.000000000000, 0.000413292087, 0.0, -0.000000000000, -0.000413292087] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.000554531047, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.207169559461, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.000000000000, 0.003224769580, 0.0, -0.000000000000, -0.003224769580] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.000553992712, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.208748872411, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [0.000000000000, 0.000000000000, 0.003792898685, -0.000000000000, -0.000000000000, -0.003792898685] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.00051222526754, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.20695630522582, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, 0.002245645626, -0.0, -0.0, -0.002245645626] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.002045023614, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.002024842553, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_df_rhf, + "B2PLYP TOTAL ENERGY": -100.3639883016977876, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -9527,10 +14919,12 @@ "reference": "rhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_adz_df_rhf, "HF TOTAL GRADIENT": _grad_scf_h2o_adz_df_rhf, + "HF TOTAL HESSIAN": _hess_scf_h2o_adz_df_rhf, "MP2 CORRELATION ENERGY": -0.21939028, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.05587974, @@ -9552,28 +14946,153 @@ "MP3 TOTAL GRADIENT": np.array( [0.0, 0.0, 0.004605219936, 0.0, 0.002923029606, -0.002302609968, 0.0, -0.002923029606, -0.002302609968] ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.22723769214209, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2297412879, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD TOTAL GRADIENT": np.array( [0.0, 0.0, 0.009150916979, 0.0, 0.005603501036, -0.00457545849, 0.0, -0.005603501036, -0.00457545849] ).reshape((-1, 3)), - "CCSD CORRELATION ENERGY": -0.22729554, + "CCD CORRELATION ENERGY": -0.2259041334, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.0, + 0.006780363587, + -0.0, + 0.004293361962, + -0.003390181794, + 0.0, + -0.004293361962, + -0.003390181793, + ] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.22729553766998, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04931891, - "CCSD TOTAL GRADIENT": np.array( + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.0, + 0.008124306221, + 0.0, + 0.004987568157, + -0.004062153110, + 0.0, + -0.004987568157, + -0.004062153111, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00521721307613, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.0, + 0.010801208563, + -0.0, + 0.006421774051, + -0.005400604280, + -0.0, + -0.006421774051, + -0.005400604283, + ] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00521446434812, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.002352666762, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.221650942141, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.012771605048, + 0.0, + 0.007190306206, + -0.006385802524, + 0.0, + -0.007190306205, + -0.006385802524, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001538577646, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.223375325491, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.008996184043, + 0.0, + 0.005183828520, + -0.004498092021, + 0.0, + -0.005183828519, + -0.004498092021, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000960712694, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.225313300040, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.005564092786, + 0.0, + 0.003375822885, + -0.002782046393, + 0.0, + -0.003375822885, + -0.002782046393, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001285806012, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.228593144538, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight [ 0.0, + 0.000000000000, + 0.009830485254, 0.0, - 0.008124347934, + 0.005814222254, + -0.004915242627, 0.0, - 0.004987676555, - -0.004062173967, + -0.005814222254, + -0.004915242627, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001194079264, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.231028592985, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.000000000000, + 0.000000000000, + 0.010488609074, + -0.000000000000, + 0.006266448803, + -0.005244304537, + -0.000000000000, + -0.006266448803, + -0.005244304537, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.00112736114914, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.22711013815896, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ 0.0, - -0.004987676555, - -0.004062173967, + -0.000000000000, + 0.007977310114, + -0.0, + 0.004884098446, + -0.003988655057, + -0.0, + -0.004884098446, + -0.003988655057, ] ).reshape((-1, 3)), - "(T) CORRECTION ENERGY": -0.00521721, + "O(T) CORRECTION ENERGY": -0.005548457534, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005450541943, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_adz_df_rhf, + "B2PLYP TOTAL ENERGY": -76.3796839677439721, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -9586,10 +15105,12 @@ "reference": "rhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_h2o_qz2p_df_rhf, "HF TOTAL GRADIENT": _grad_scf_h2o_qz2p_df_rhf, + "HF TOTAL HESSIAN": _hess_scf_h2o_qz2p_df_rhf, "MP2 CORRELATION ENERGY": -0.24512893, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.06126089, @@ -9611,28 +15132,143 @@ "MP3 TOTAL GRADIENT": np.array( [0.0, 0.0, -0.006198368687, 0.0, -0.004115138427, 0.003099184344, 0.0, 0.004115138427, 0.003099184344] ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.251000783874, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, "LCCD CORRELATION ENERGY": -0.2531777549, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD TOTAL GRADIENT": np.array( [0.0, 0.0, -0.001506644114, 0.0, -0.001400658245, 0.000753322057, 0.0, 0.001400658245, 0.000753322057] ).reshape((-1, 3)), - "CCSD CORRELATION ENERGY": -0.25031508, + "CCD CORRELATION ENERGY": -0.2488353928, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.0, + -0.003903171069, + -0.0, + -0.002634101054, + 0.001951585534, + -0.0, + 0.002634101055, + 0.001951585534, + ] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.25031496729288, # dfocc, tight "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.05404876, - "CCSD TOTAL GRADIENT": np.array( + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.0, + -0.002520998723, + 0.0, + -0.001932209248, + 0.001260499359, + 0.0, + 0.001932209248, + 0.001260499363, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00709505459495, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [0.0, 0.0, 0.000617506530, -0.0, -0.000361314051, -0.000308753267, 0.0, 0.000361314051, -0.000308753262] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00701650721029, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.002436225037, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.247501148905, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.002625578291, + 0.0, + 0.000602919468, + -0.001312789146, + 0.0, + -0.000602919468, + -0.001312789146, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001628506731, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.247890696918, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + -0.001471303306, + 0.0, + -0.001622363348, + 0.000735651653, + 0.0, + 0.001622363348, + 0.000735651653, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.001042188755, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.248510869843, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + -0.005274771244, + 0.0, + -0.003679381392, + 0.002637385622, + 0.0, + 0.003679381392, + 0.002637385622, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001387432536, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.252366737687, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight [ 0.0, + 0.000000000000, + -0.000767533552, + 0.0, + -0.001128632785, + 0.000383766776, 0.0, - -0.002520920562, + 0.001128632785, + 0.000383766776, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001298398813, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.254465606264, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.000000000000, + -0.000000000000, + -0.000178270779, + -0.000000000000, + -0.000741462346, + 0.000089135390, + 0.000000000000, + 0.000741462346, + 0.000089135390, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.00122701106154, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.25004962087804, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ 0.0, - -0.001932133533, - 0.001260460281, + -0.000000000000, + -0.002738846535, + -0.0, + -0.002056141369, + 0.001369423268, 0.0, - 0.001932133533, - 0.001260460281, + 0.002056141369, + 0.001369423268, ] ).reshape((-1, 3)), - "(T) CORRECTION ENERGY": -0.00709505, + "O(T) CORRECTION ENERGY": -0.007400543965, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.007287376322, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_h2o_qz2p_df_rhf, + "B2PLYP TOTAL ENERGY": -76.4097108446835733, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -9645,10 +15281,12 @@ "reference": "uhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_df_uhf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_df_uhf, + "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_df_uhf, "MP2 CORRELATION ENERGY": -0.058390006825, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.001768919072594215, @@ -9687,8 +15325,11 @@ -0.000120861314, ] ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.077065229797, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.002191757201, # dfocc, tight "LCCD CORRELATION ENERGY": -0.0824996438, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0022545103, # dfocc "LCCD TOTAL GRADIENT": np.array( [ @@ -9706,6 +15347,176 @@ -0.000048563431, ] ).reshape((-1, 3)), + "CCD CORRELATION ENERGY": -0.08021106, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.0, + 0.006152061332, + -0.0, + -0.0, + -0.005948040465, + -0.0, + 0.014448001505, + -0.000102010434, + 0.0, + -0.014448001505, + -0.000102010434, + ] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.08123709133288, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.0, + 0.004955877488, + 0.0, + -0.0, + -0.004802960939, + -0.0, + 0.014879065297, + -0.000076458275, + 0.0, + -0.014879065297, + -0.000076458275, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00060440612636, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.0, + 0.004453849339, + 0.0, + -0.0, + -0.004383447765, + -0.0, + 0.014958703713, + -0.000035200787, + 0.0, + -0.014958703713, + -0.000035200787, + ] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00058824527447, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.000394385396, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.058935159355, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.001823537679, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.011816043382, + 0.0, + -0.000000000000, + -0.011405170159, + 0.0, + 0.010534044966, + -0.000205436611, + 0.0, + -0.010534044966, + -0.000205436611, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.000566186305, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.066806131554, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.002050540370, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.010039510728, + 0.0, + -0.000000000000, + -0.009744203205, + 0.0, + 0.011807411335, + -0.000147653762, + 0.0, + -0.011807411335, + -0.000147653762, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.000783155015, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.074716931449, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.002277314389, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.008212538414, + 0.0, + -0.000000000000, + -0.008033077982, + 0.0, + 0.013091494156, + -0.000089730216, + 0.0, + -0.013091494156, + -0.000089730216, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001067566021, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.078201861999, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.005652301943, + 0.0, + -0.000000000000, + -0.005529627660, + 0.0, + 0.014380946092, + -0.000061337141, + 0.0, + -0.014380946092, + -0.000061337141, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001494223667, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.083986395282, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.002308873939, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.000000000000, + 0.000000000000, + 0.002693251383, + 0.000000000000, + -0.000000000000, + -0.002664270590, + -0.000000000000, + 0.015745905068, + -0.000014490396, + 0.000000000000, + -0.015745905068, + -0.000014490396, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.00117513618887, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.08143642271488, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.000000000000, + 0.004941329452, + 0.0, + -0.000000000000, + -0.004783766728, + -0.0, + 0.014873123435, + -0.000078781362, + 0.0, + -0.014873123435, + -0.000078781362, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.000609013952, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.000587107823, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_bh3p_dz_df_uhf, + "B2PLYP TOTAL ENERGY": -26.0726110365712387, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -9718,10 +15529,12 @@ "reference": "uhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_df_uhf, "HF TOTAL GRADIENT": _grad_scf_nh2_adz_df_uhf, + "HF TOTAL HESSIAN": _hess_scf_nh2_adz_df_uhf, "MP2 CORRELATION ENERGY": -0.15240678, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.03448325, @@ -9744,12 +15557,158 @@ "MP3 TOTAL GRADIENT": np.array( [0.0, 0.0, 0.027853586058, 0.0, 0.014898421791, -0.013926793029, 0.0, -0.014898421791, -0.013926793029] ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.17028287893561, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.03381515362353, # dfocc, tight "LCCD CORRELATION ENERGY": -0.1748446809, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0333897039, # dfocc "LCCD TOTAL GRADIENT": np.array( [0.0, 0.0, 0.031455324295, 0.0, 0.017108389967, -0.015727662148, 0.0, -0.017108389967, -0.015727662148] ).reshape((-1, 3)), + "CCD CORRELATION ENERGY": -0.17060710, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + -0.0, + 0.028917529759, + 0.0, + 0.015695181131, + -0.014458764879, + 0.0, + -0.015695181131, + -0.014458764879, + ] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.17173557387375, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.0, + 0.030043575132, + 0.0, + 0.016300990267, + -0.015021787567, + -0.0, + -0.016300990267, + -0.015021787565, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00381543842966, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.0, + 0.031923074308, + 0.0, + 0.017296807836, + -0.015961537154, + -0.0, + -0.017296807836, + -0.015961537154, + ] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00373604126252, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.001361296352, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.153806958505, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.035220509485, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.027773187697, + 0.0, + 0.014760469702, + -0.013886593849, + 0.0, + -0.014760469702, + -0.013886593849, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001172388039, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.161802412521, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.035084385482, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.028357272969, + 0.0, + 0.015100442421, + -0.014178636485, + 0.0, + -0.015100442421, + -0.014178636485, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.001026896343, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.169839459643, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.034978089725, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.029002023504, + 0.0, + 0.015477270320, + -0.014501011752, + 0.0, + -0.015477270319, + -0.014501011752, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001113332083, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.171513122196, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.031096217899, + 0.0, + 0.016756071833, + -0.015548108949, + 0.0, + -0.016756071832, + -0.015548108949, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001113749802, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.176088417240, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.033693410677, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.000000000000, + -0.000000000000, + 0.032749728621, + 0.000000000000, + 0.017783947932, + -0.016374864311, + -0.000000000000, + -0.017783947932, + -0.016374864310, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.00098853594635, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.17171797869288, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + -0.000000000000, + 0.030027361324, + 0.0, + 0.016268352543, + -0.015013680662, + -0.0, + -0.016268352543, + -0.015013680662, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.003958389693, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.003858590576, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_adz_df_uhf, + "B2PLYP TOTAL ENERGY": -55.8329155987089578, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -9762,10 +15721,12 @@ "reference": "uhf", "fcae": "fc", "corl_type": "df", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_df_uhf, "HF TOTAL GRADIENT": _grad_scf_nh2_qz2p_df_uhf, + "HF TOTAL HESSIAN": _hess_scf_nh2_qz2p_df_uhf, "MP2 CORRELATION ENERGY": -0.17116675, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.03822296, @@ -9788,12 +15749,158 @@ "MP3 TOTAL GRADIENT": np.array( [0.0, 0.0, 0.015407701186, 0.0, 0.006091123422, -0.007703850593, 0.0, -0.006091123422, -0.007703850593] ).reshape((-1, 3)), + "REMP2 CORRELATION ENERGY": -0.187461784316, # dfocc, tight + "REMP2 SINGLES ENERGY": 0.0, + "REMP2 SAME-SPIN CORRELATION ENERGY": -0.037230047131, # dfocc, tight "LCCD CORRELATION ENERGY": -0.1916908596, # p4n - "LCCD SINGLES ENERGY": 0.0000000000, + "LCCD SINGLES ENERGY": 0.0, "LCCD SAME-SPIN CORRELATION ENERGY": -0.0367574293, "LCCD TOTAL GRADIENT": np.array( [0.0, 0.0, 0.019127907852, 0.0, 0.00829827557, -0.009563953926, 0.0, -0.00829827557, -0.009563953926] ).reshape((-1, 3)), + "CCD CORRELATION ENERGY": -0.18707439, # dfocc, tight + "CCD SINGLES ENERGY": 0.0, + "CCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + -0.0, + 0.016599541828, + -0.0, + 0.006987201946, + -0.008299770914, + 0.0, + -0.006987201946, + -0.008299770914, + ] + ).reshape((-1, 3)), + "CCSD CORRELATION ENERGY": -0.18830636267506, # dfocc, tight + "CCSD SINGLES ENERGY": 0.0, + "CCSD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.0, + 0.017859476803, + -0.0, + 0.007647663282, + -0.008929738402, + 0.0, + -0.007647663282, + -0.008929738401, + ] + ).reshape((-1, 3)), + "(T) CORRECTION ENERGY": -0.00498171470106, # dfocc, tight + "CCSD(T) TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.0, + 0.020007178737, + -0.0, + 0.008716203188, + -0.010003589371, + 0.0, + -0.008716203188, + -0.010003589367, + ] + ).reshape((-1, 3)), + "A-(T) CORRECTION ENERGY": -0.00488153123480, # dfocc, tight + "OMP2 REFERENCE CORRECTION ENERGY": 0.001480332224, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.172665177005, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.039018138633, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.016299386418, + 0.0, + 0.006629699700, + -0.008149693209, + 0.0, + -0.006629699700, + -0.008149693209, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": 0.001272971815, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.179766145094, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.038623138099, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.016424137432, + 0.0, + 0.006638678143, + -0.008212068716, + 0.0, + -0.006638678143, + -0.008212068716, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": 0.001112851260, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.186923452541, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.038268824767, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.016608938328, + 0.0, + 0.006684117862, + -0.008304469164, + 0.0, + -0.006684117862, + -0.008304469164, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": 0.001217776401, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.188735219689, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.018940660731, + 0.0, + 0.008076822926, + -0.009470330365, + 0.0, + -0.008076822926, + -0.009470330365, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": 0.001218640112, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.192974799277, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.037040961442, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.000000000000, + 0.000000000000, + 0.020520978467, + -0.000000000000, + 0.009009472752, + -0.010260489234, + 0.000000000000, + -0.009009472752, + -0.010260489234, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": 0.0010910673835, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.18822673037030, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.017781686076, + -0.0, + 0.007590501254, + -0.008890843038, + 0.0, + -0.007590501254, + -0.008890843038, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.005145029771, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005024912480, # dfocc, tight + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_nh2_qz2p_df_uhf, + "B2PLYP TOTAL ENERGY": -55.8541228738473166, # psi 99,590 # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -9806,10 +15913,12 @@ "reference": "rohf", "fcae": "fc", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_bh3p_dz_df_rohf, "HF TOTAL GRADIENT": _grad_scf_bh3p_dz_df_rohf, + "HF TOTAL HESSIAN": _hess_scf_bh3p_dz_df_rohf, "MP2 CORRELATION ENERGY": -0.059372748391, "MP2 SINGLES ENERGY": -0.000688391888527046, "MP2 SAME-SPIN CORRELATION ENERGY": -0.0018535174789756292, @@ -9830,6 +15939,120 @@ ] ).reshape((-1, 3)), "LCCD CORRELATION ENERGY": -0.0824737155, # p4n + "OMP2 REFERENCE CORRECTION ENERGY": -0.001129652787, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.060459196444, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.001823537706, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.011816050823, + 0.0, + -0.000000000000, + -0.011405176978, + 0.0, + 0.010534044979, + -0.000205436923, + 0.0, + -0.010534044979, + -0.000205436923, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.000957847537, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.068330168643, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.002050540345, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.010039462838, + 0.0, + -0.000000000000, + -0.009744167884, + 0.0, + 0.011807418804, + -0.000147647477, + 0.0, + -0.011807418804, + -0.000147647477, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": -0.000740878651, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.076240968538, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.002277314395, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.008212498711, + 0.0, + -0.000000000000, + -0.008033043130, + 0.0, + 0.013091495437, + -0.000089727790, + 0.0, + -0.013091495437, + -0.000089727790, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.000456469124, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.079725899088, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.005652293263, + 0.0, + -0.000000000000, + -0.005529605660, + 0.0, + 0.014380930007, + -0.000061343802, + 0.0, + -0.014380930007, + -0.000061343802, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": -0.000029817721, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.085510432371, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.002308874960, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.000000000000, + 0.000000000000, + 0.002693270150, + 0.000000000000, + -0.000000000000, + -0.002664286871, + -0.000000000000, + 0.015745889183, + -0.000014491640, + 0.000000000000, + -0.015745889183, + -0.000014491640, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.00034890091894, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.08296045969717, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + 0.000000000000, + 0.004941329268, + 0.0, + -0.000000000000, + -0.004783766592, + -0.0, + 0.014873123401, + -0.000078781338, + 0.0, + -0.014873123401, + -0.000078781338, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.000609013944, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.000587107816, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(12).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(144).reshape((12, 12)), }, @@ -9842,10 +16065,12 @@ "reference": "rohf", "fcae": "fc", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_adz_df_rohf, "HF TOTAL GRADIENT": _grad_scf_nh2_adz_df_rohf, + "HF TOTAL HESSIAN": _grad_scf_nh2_adz_df_rohf, "MP2 CORRELATION ENERGY": -0.15700408, "MP2 SINGLES ENERGY": -0.00280619, "MP2 SAME-SPIN CORRELATION ENERGY": -0.03469227, @@ -9863,6 +16088,102 @@ ] ).reshape((-1, 3)), "LCCD CORRELATION ENERGY": -0.1769909051, # p4n + "OMP2 REFERENCE CORRECTION ENERGY": -0.003052666882, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.158220918714, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.035220509402, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.027773186774, + 0.0, + 0.014760475104, + -0.013886593387, + 0.0, + -0.014760475103, + -0.013886593387, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.003241577707, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.166216372729, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.035084385218, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.028357346855, + 0.0, + 0.015100453507, + -0.014178673427, + 0.0, + -0.015100453507, + -0.014178673427, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": -0.003387066455, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.174253419851, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.034978090484, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.029002032180, + 0.0, + 0.015477263061, + -0.014501016090, + 0.0, + -0.015477263061, + -0.014501016090, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.003300628093, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.175927082404, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.031096218276, + 0.0, + 0.016756071943, + -0.015548109138, + 0.0, + -0.016756071943, + -0.015548109138, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": -0.003300211378, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.180502377447, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.033693402688, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.000000000000, + -0.000000000000, + 0.032749671199, + 0.000000000000, + 0.017783936393, + -0.016374835600, + -0.000000000000, + -0.017783936393, + -0.016374835600, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.00342542420012, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.17613193885178, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + -0.0, + -0.000000000000, + 0.030027364470, + 0.0, + 0.016268353265, + -0.015013682235, + -0.0, + -0.016268353265, + -0.015013682235, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.003958389711, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.003858590593, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, @@ -9875,10 +16196,12 @@ "reference": "rohf", "fcae": "fc", "corl_type": "df", + "sdsc": "sc", }, "data": { "HF TOTAL ENERGY": _scf_nh2_qz2p_df_rohf, "HF TOTAL GRADIENT": _grad_scf_nh2_qz2p_df_rohf, + "HF TOTAL HESSIAN": _hess_scf_nh2_qz2p_df_rohf, "MP2 CORRELATION ENERGY": -0.17609909, "MP2 SINGLES ENERGY": -0.00294363, "MP2 SAME-SPIN CORRELATION ENERGY": -0.03837317, @@ -9896,11 +16219,108 @@ ] ).reshape((-1, 3)), "LCCD CORRELATION ENERGY": -0.1939804718, # p4n + "OMP2 REFERENCE CORRECTION ENERGY": -0.003129716190, # dfocc, tight + "OMP2 CORRELATION ENERGY": -0.177275218950, # dfocc, tight + "OMP2 SAME-SPIN CORRELATION ENERGY": -0.039018136779, # dfocc, tight + "OMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.016299403030, + 0.0, + 0.006629703904, + -0.008149701515, + 0.0, + -0.006629703904, + -0.008149701515, + ] + ).reshape((-1, 3)), + "OMP2.5 REFERENCE CORRECTION ENERGY": -0.003337076220, # dfocc, tight + "OMP2.5 CORRELATION ENERGY": -0.184376187039, # dfocc, tight + "OMP2.5 SAME-SPIN CORRELATION ENERGY": -0.038623138676, # dfocc, tight + "OMP2.5 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + -0.000000000000, + 0.016424136331, + 0.0, + 0.006638670952, + -0.008212068165, + 0.0, + -0.006638670952, + -0.008212068165, + ] + ).reshape((-1, 3)), + "OMP3 REFERENCE CORRECTION ENERGY": -0.003497196377, # dfocc, tight + "OMP3 CORRELATION ENERGY": -0.191533494486, # dfocc, tight + "OMP3 SAME-SPIN CORRELATION ENERGY": -0.038268825438, # dfocc, tight + "OMP3 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.016608946514, + 0.0, + 0.006684114421, + -0.008304473257, + 0.0, + -0.006684114421, + -0.008304473257, + ] + ).reshape((-1, 3)), + "OREMP2 REFERENCE CORRECTION ENERGY": -0.003392270931, # dfocc, tight + "OREMP2 CORRELATION ENERGY": -0.193345261634, # dfocc, tight + "OREMP2 TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.018940651737, + 0.0, + 0.008076829692, + -0.009470325868, + 0.0, + -0.008076829692, + -0.009470325868, + ] + ).reshape((-1, 3)), + "OLCCD REFERENCE CORRECTION ENERGY": -0.003391400191, # dfocc, tight + "OLCCD CORRELATION ENERGY": -0.197584841222, # dfocc, tight + "OLCCD SAME-SPIN CORRELATION ENERGY": -0.037040959020, # dfocc, tight + "OLCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.000000000000, + 0.000000000000, + 0.020521012807, + -0.000000000000, + 0.009009479704, + -0.010260506404, + 0.000000000000, + -0.009009479704, + -0.010260506404, + ] + ).reshape((-1, 3)), + "OCCD REFERENCE CORRECTION ENERGY": -0.00351897455648, # dfocc, tight + "OCCD CORRELATION ENERGY": -0.19283677235185, # dfocc, tight + "OCCD TOTAL GRADIENT": np.array( # dfocc, tight + [ + 0.0, + 0.000000000000, + 0.017781687051, + -0.0, + 0.007590501825, + -0.008890843526, + 0.0, + -0.007590501825, + -0.008890843526, + ] + ).reshape((-1, 3)), + "O(T) CORRECTION ENERGY": -0.005145029773, # dfocc, tight + "A-O(T) CORRECTION ENERGY": -0.005024912482, # dfocc, tight # "XXX TOTAL GRADIENT": np.zeros(9).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(81).reshape((9, 9)), }, }, # <<< lopsided SCF/CORL algorithms >>> + # <<< lopsided DF-FC-CONV >>> { "meta": { "system": "hf", @@ -9909,10 +16329,12 @@ "reference": "rhf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_df_rhf, "HF TOTAL GRADIENT": _grad_scf_hf_dz_df_rhf, + "HF TOTAL HESSIAN": _hess_scf_hf_dz_df_rhf, "MP2 CORRELATION ENERGY": -0.201612517228, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.05348507322421174, @@ -9922,10 +16344,12 @@ "MP3 CORRELATION ENERGY": -0.20452073, "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.04918306, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_df_rhf, # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, }, + # <<< lopsided CD-FC-CONV >>> { "meta": { "system": "hf", @@ -9934,10 +16358,12 @@ "reference": "rhf", "fcae": "fc", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_cd_rhf, "HF TOTAL GRADIENT": _grad_scf_hf_dz_cd_rhf, + # "HF TOTAL HESSIAN": _hess_scf_hf_dz_cd_rhf, "MP2 CORRELATION ENERGY": -0.20162236483, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.053488165399, @@ -9947,6 +16373,7 @@ "MP3 CORRELATION ENERGY": -0.20453091, "MP3 SINGLES ENERGY": 0.0, "MP3 SAME-SPIN CORRELATION ENERGY": -0.04918609, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_cd_rhf, # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -9959,6 +16386,7 @@ # "reference": "rhf", # "fcae": "fc", # "corl_type": "cd", + # "sdsc": "sd", # }, # "data": { # "HF TOTAL ENERGY": _scf_hf_dz_df_rhf, @@ -9976,6 +16404,7 @@ # "reference": "uhf", # "fcae": "fc", # "corl_type": "conv", + # "sdsc": "sd", # }, # "data": { # "HF TOTAL ENERGY": _scf_bh3p_dz_df_uhf, @@ -9993,6 +16422,7 @@ # "reference": "uhf", # "fcae": "fc", # "corl_type": "cd", + # "sdsc": "sd", # }, # "data": { # "HF TOTAL ENERGY": _scf_bh3p_dz_df_uhf, @@ -10010,6 +16440,7 @@ # "reference": "rohf", # "fcae": "fc", # "corl_type": "conv", + # "sdsc": "sc", # }, # "data": { # "HF TOTAL ENERGY": _scf_bh3p_dz_df_rohf, @@ -10027,6 +16458,7 @@ # "reference": "rohf", # "fcae": "fc", # "corl_type": "cd", + # "sdsc": "sc", # }, # "data": { # "HF TOTAL ENERGY": _scf_bh3p_dz_df_rohf, @@ -10036,6 +16468,7 @@ # "MP2 SAME-SPIN CORRELATION ENERGY": -1.3, # }, # }, + # <<< lopsided DF-AE-CONV >>> { "meta": { "system": "hf", @@ -10044,10 +16477,12 @@ "reference": "rhf", "fcae": "ae", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_df_rhf, "HF TOTAL GRADIENT": _grad_scf_hf_dz_df_rhf, + "HF TOTAL HESSIAN": _hess_scf_hf_dz_df_rhf, "MP2 CORRELATION ENERGY": -0.2037668844651997, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.05427252944164894, @@ -10068,10 +16503,12 @@ "CCSD CORRELATION ENERGY": -0.20872812, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04857038, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_df_rhf, # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, }, + # <<< lopsided CD-AE-CONV >>> { "meta": { "system": "hf", @@ -10080,10 +16517,12 @@ "reference": "rhf", "fcae": "ae", "corl_type": "conv", + "sdsc": "sd", }, "data": { "HF TOTAL ENERGY": _scf_hf_dz_cd_rhf, "HF TOTAL GRADIENT": _grad_scf_hf_dz_cd_rhf, + # "HF TOTAL HESSIAN": _hess_scf_hf_dz_cd_rhf, "MP2 CORRELATION ENERGY": -0.2037767503537, "MP2 SINGLES ENERGY": 0.0, "MP2 SAME-SPIN CORRELATION ENERGY": -0.05427563053, @@ -10104,6 +16543,7 @@ "CCSD CORRELATION ENERGY": -0.20873814, "CCSD SINGLES ENERGY": 0.0, "CCSD SAME-SPIN CORRELATION ENERGY": -0.04857333, + "B2PLYP FUNCTIONAL TOTAL ENERGY": _b2plyp_hf_dz_cd_rhf, # "XXX TOTAL GRADIENT": np.zeros(6).reshape((-1, 3)), # "XXX TOTAL HESSIAN": np.zeros(36).reshape((6, 6)), }, @@ -10116,6 +16556,7 @@ # "reference": "rhf", # "fcae": "ae", # "corl_type": "cd", + # "sdsc": "sd", # }, # "data": { # "HF TOTAL ENERGY": _scf_hf_dz_df_rhf, @@ -10132,6 +16573,7 @@ # "reference": "uhf", # "fcae": "ae", # "corl_type": "conv", + # "sdsc": "sd", # }, # "data": { # "HF TOTAL ENERGY": _scf_bh3p_dz_df_uhf, @@ -10148,6 +16590,7 @@ # "reference": "uhf", # "fcae": "ae", # "corl_type": "cd", + # "sdsc": "sd", # }, # "data": { # "HF TOTAL ENERGY": _scf_bh3p_dz_df_uhf, @@ -10164,6 +16607,7 @@ # "reference": "rohf", # "fcae": "ae", # "corl_type": "conv", + # "sdsc": "sc", # }, # "data": { # "HF TOTAL ENERGY": _scf_bh3p_dz_df_rohf, @@ -10180,6 +16624,7 @@ # "reference": "rohf", # "fcae": "ae", # "corl_type": "cd", + # "sdsc": "sc", # }, # "data": { # "HF TOTAL ENERGY": _scf_bh3p_dz_df_rohf, @@ -10191,243 +16636,466 @@ ] -for calc in _std_suite: - if calc["data"]: - if "MP2 CORRELATION ENERGY" in calc["data"]: - calc["data"]["MP2 TOTAL ENERGY"] = calc["data"]["MP2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - if "MP2 SINGLES ENERGY" in calc["data"]: - calc["data"]["MP2 DOUBLES ENERGY"] = ( - calc["data"]["MP2 CORRELATION ENERGY"] - calc["data"]["MP2 SINGLES ENERGY"] +def compute_derived_qcvars(std_suite_list): + for calc in std_suite_list: + if calc["data"]: + if "MP2 CORRELATION ENERGY" in calc["data"]: + calc["data"]["MP2 TOTAL ENERGY"] = ( + calc["data"]["MP2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - if "MP2 SAME-SPIN CORRELATION ENERGY" in calc["data"]: - calc["data"]["MP2 OPPOSITE-SPIN CORRELATION ENERGY"] = ( - calc["data"]["MP2 CORRELATION ENERGY"] - - calc["data"]["MP2 SAME-SPIN CORRELATION ENERGY"] - - calc["data"]["MP2 SINGLES ENERGY"] + if "MP2 SINGLES ENERGY" in calc["data"]: + calc["data"]["MP2 DOUBLES ENERGY"] = ( + calc["data"]["MP2 CORRELATION ENERGY"] - calc["data"]["MP2 SINGLES ENERGY"] ) - calc["data"]["SCS-MP2 CORRELATION ENERGY"] = ( - (1 / 3) * calc["data"]["MP2 SAME-SPIN CORRELATION ENERGY"] - + (6 / 5) * calc["data"]["MP2 OPPOSITE-SPIN CORRELATION ENERGY"] - + calc["data"]["MP2 SINGLES ENERGY"] + if "MP2 SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["MP2 OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["MP2 CORRELATION ENERGY"] + - calc["data"]["MP2 SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["MP2 SINGLES ENERGY"] + ) + calc["data"]["SCS-MP2 CORRELATION ENERGY"] = ( + (1 / 3) * calc["data"]["MP2 SAME-SPIN CORRELATION ENERGY"] + + (6 / 5) * calc["data"]["MP2 OPPOSITE-SPIN CORRELATION ENERGY"] + + calc["data"]["MP2 SINGLES ENERGY"] + ) + calc["data"]["SCS-MP2 TOTAL ENERGY"] = ( + calc["data"]["SCS-MP2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "MP3 CORRELATION ENERGY" in calc["data"]: + calc["data"]["MP3 TOTAL ENERGY"] = ( + calc["data"]["MP3 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + if "MP2 CORRELATION ENERGY" in calc["data"]: + calc["data"]["MP2.5 CORRELATION ENERGY"] = 0.5 * ( + calc["data"]["MP3 CORRELATION ENERGY"] + calc["data"]["MP2 CORRELATION ENERGY"] ) - calc["data"]["SCS-MP2 TOTAL ENERGY"] = ( - calc["data"]["SCS-MP2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + calc["data"]["MP2.5 TOTAL ENERGY"] = ( + calc["data"]["MP2.5 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - if "MP3 CORRELATION ENERGY" in calc["data"]: - calc["data"]["MP3 TOTAL ENERGY"] = calc["data"]["MP3 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - if "MP2 CORRELATION ENERGY" in calc["data"]: - calc["data"]["MP2.5 CORRELATION ENERGY"] = 0.5 * ( - calc["data"]["MP3 CORRELATION ENERGY"] + calc["data"]["MP2 CORRELATION ENERGY"] + if "MP3 SINGLES ENERGY" in calc["data"]: + calc["data"]["MP3 DOUBLES ENERGY"] = ( + calc["data"]["MP3 CORRELATION ENERGY"] - calc["data"]["MP3 SINGLES ENERGY"] + ) + if "MP2 SINGLES ENERGY" in calc["data"]: + calc["data"]["MP2.5 SINGLES ENERGY"] = 0.5 * ( + calc["data"]["MP3 SINGLES ENERGY"] + calc["data"]["MP2 SINGLES ENERGY"] + ) + calc["data"]["MP2.5 DOUBLES ENERGY"] = ( + calc["data"]["MP2.5 CORRELATION ENERGY"] - calc["data"]["MP2.5 SINGLES ENERGY"] + ) + if "MP3 SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["MP3 OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["MP3 CORRELATION ENERGY"] + - calc["data"]["MP3 SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["MP3 SINGLES ENERGY"] + ) + if "MP2 SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["MP2.5 SAME-SPIN CORRELATION ENERGY"] = 0.5 * ( + calc["data"]["MP3 SAME-SPIN CORRELATION ENERGY"] + + calc["data"]["MP2 SAME-SPIN CORRELATION ENERGY"] + ) + calc["data"]["MP2.5 OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["MP2.5 CORRELATION ENERGY"] + - calc["data"]["MP2.5 SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["MP2.5 SINGLES ENERGY"] + ) + + if ( + "MP3 TOTAL GRADIENT" in calc["data"] + and "MP2 TOTAL GRADIENT" in calc["data"] + and "HF TOTAL GRADIENT" in calc["data"] + ): + calc["data"]["MP2.5 TOTAL GRADIENT"] = 0.5 * ( + calc["data"]["MP3 TOTAL GRADIENT"] + calc["data"]["MP2 TOTAL GRADIENT"] ) - calc["data"]["MP2.5 TOTAL ENERGY"] = ( - calc["data"]["MP2.5 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + + if "MP4(SDQ) CORRELATION ENERGY" in calc["data"]: + calc["data"]["MP4(SDQ) TOTAL ENERGY"] = ( + calc["data"]["MP4(SDQ) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) + if "MP4(T) CORRECTION ENERGY" in calc["data"]: + calc["data"]["MP4 CORRELATION ENERGY"] = ( + calc["data"]["MP4(SDQ) CORRELATION ENERGY"] + calc["data"]["MP4(T) CORRECTION ENERGY"] + ) + calc["data"]["MP4 TOTAL ENERGY"] = ( + calc["data"]["MP4 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + if "MP3 CORRELATION ENERGY" in calc["data"]: + calc["data"]["MP4 CORRECTION ENERGY"] = ( + calc["data"]["MP4 CORRELATION ENERGY"] - calc["data"]["MP3 CORRELATION ENERGY"] + ) - if "MP3 SINGLES ENERGY" in calc["data"]: - calc["data"]["MP3 DOUBLES ENERGY"] = ( - calc["data"]["MP3 CORRELATION ENERGY"] - calc["data"]["MP3 SINGLES ENERGY"] + if "ZAPT2 CORRELATION ENERGY" in calc["data"]: + calc["data"]["ZAPT2 TOTAL ENERGY"] = ( + calc["data"]["ZAPT2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - if "MP2 SINGLES ENERGY" in calc["data"]: - calc["data"]["MP2.5 SINGLES ENERGY"] = 0.5 * ( - calc["data"]["MP3 SINGLES ENERGY"] + calc["data"]["MP2 SINGLES ENERGY"] + + if "CISD CORRELATION ENERGY" in calc["data"]: + calc["data"]["CISD TOTAL ENERGY"] = ( + calc["data"]["CISD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "QCISD CORRELATION ENERGY" in calc["data"]: + calc["data"]["QCISD TOTAL ENERGY"] = ( + calc["data"]["QCISD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + if "QCISD(T) CORRECTION ENERGY" in calc["data"]: + calc["data"]["QCISD(T) CORRELATION ENERGY"] = ( + calc["data"]["QCISD CORRELATION ENERGY"] + calc["data"]["QCISD(T) CORRECTION ENERGY"] ) - calc["data"]["MP2.5 DOUBLES ENERGY"] = ( - calc["data"]["MP2.5 CORRELATION ENERGY"] - calc["data"]["MP2.5 SINGLES ENERGY"] + calc["data"]["QCISD(T) TOTAL ENERGY"] = ( + calc["data"]["QCISD(T) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - if "MP3 SAME-SPIN CORRELATION ENERGY" in calc["data"]: - calc["data"]["MP3 OPPOSITE-SPIN CORRELATION ENERGY"] = ( - calc["data"]["MP3 CORRELATION ENERGY"] - - calc["data"]["MP3 SAME-SPIN CORRELATION ENERGY"] - - calc["data"]["MP3 SINGLES ENERGY"] + + if "FCI CORRELATION ENERGY" in calc["data"]: + calc["data"]["FCI TOTAL ENERGY"] = ( + calc["data"]["FCI CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "REMP2 CORRELATION ENERGY" in calc["data"]: + calc["data"]["REMP2 TOTAL ENERGY"] = ( + calc["data"]["REMP2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + if "REMP2 SINGLES ENERGY" in calc["data"]: + calc["data"]["REMP2 DOUBLES ENERGY"] = ( + calc["data"]["REMP2 CORRELATION ENERGY"] - calc["data"]["REMP2 SINGLES ENERGY"] ) - if "MP2 SAME-SPIN CORRELATION ENERGY" in calc["data"]: - calc["data"]["MP2.5 SAME-SPIN CORRELATION ENERGY"] = 0.5 * ( - calc["data"]["MP3 SAME-SPIN CORRELATION ENERGY"] - + calc["data"]["MP2 SAME-SPIN CORRELATION ENERGY"] + if "REMP2 SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["REMP2 OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["REMP2 CORRELATION ENERGY"] + - calc["data"]["REMP2 SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["REMP2 SINGLES ENERGY"] ) - calc["data"]["MP2.5 OPPOSITE-SPIN CORRELATION ENERGY"] = ( - calc["data"]["MP2.5 CORRELATION ENERGY"] - - calc["data"]["MP2.5 SAME-SPIN CORRELATION ENERGY"] - - calc["data"]["MP2.5 SINGLES ENERGY"] + + if "LCCD CORRELATION ENERGY" in calc["data"]: + calc["data"]["LCCD TOTAL ENERGY"] = ( + calc["data"]["LCCD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + if "LCCD SINGLES ENERGY" in calc["data"]: + calc["data"]["LCCD DOUBLES ENERGY"] = ( + calc["data"]["LCCD CORRELATION ENERGY"] - calc["data"]["LCCD SINGLES ENERGY"] + ) + if "LCCD SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["LCCD OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["LCCD CORRELATION ENERGY"] + - calc["data"]["LCCD SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["LCCD SINGLES ENERGY"] ) - if ( - "MP3 TOTAL GRADIENT" in calc["data"] - and "MP2 TOTAL GRADIENT" in calc["data"] - and "HF TOTAL GRADIENT" in calc["data"] - ): - calc["data"]["MP2.5 TOTAL GRADIENT"] = 0.5 * ( - calc["data"]["MP3 TOTAL GRADIENT"] + calc["data"]["MP2 TOTAL GRADIENT"] - ) - - if "MP4(SDQ) CORRELATION ENERGY" in calc["data"]: - calc["data"]["MP4(SDQ) TOTAL ENERGY"] = ( - calc["data"]["MP4(SDQ) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - if "MP4(T) CORRECTION ENERGY" in calc["data"]: - calc["data"]["MP4 CORRELATION ENERGY"] = ( - calc["data"]["MP4(SDQ) CORRELATION ENERGY"] + calc["data"]["MP4(T) CORRECTION ENERGY"] + if "LCCSD CORRELATION ENERGY" in calc["data"]: + calc["data"]["LCCSD TOTAL ENERGY"] = ( + calc["data"]["LCCSD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - calc["data"]["MP4 TOTAL ENERGY"] = ( - calc["data"]["MP4 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + if "LCCSD SINGLES ENERGY" in calc["data"]: + calc["data"]["LCCSD DOUBLES ENERGY"] = ( + calc["data"]["LCCSD CORRELATION ENERGY"] - calc["data"]["LCCSD SINGLES ENERGY"] + ) + if "LCCSD SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["LCCSD OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["LCCSD CORRELATION ENERGY"] + - calc["data"]["LCCSD SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["LCCSD SINGLES ENERGY"] + ) + + if "CEPA(1) CORRELATION ENERGY" in calc["data"]: + calc["data"]["CEPA(1) TOTAL ENERGY"] = ( + calc["data"]["CEPA(1) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - if "MP3 CORRELATION ENERGY" in calc["data"]: - calc["data"]["MP4 CORRECTION ENERGY"] = ( - calc["data"]["MP4 CORRELATION ENERGY"] - calc["data"]["MP3 CORRELATION ENERGY"] + if "CEPA(1) SINGLES ENERGY" in calc["data"]: + calc["data"]["CEPA(1) DOUBLES ENERGY"] = ( + calc["data"]["CEPA(1) CORRELATION ENERGY"] - calc["data"]["CEPA(1) SINGLES ENERGY"] ) + if "CEPA(1) SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["CEPA(1) OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["CEPA(1) CORRELATION ENERGY"] + - calc["data"]["CEPA(1) SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["CEPA(1) SINGLES ENERGY"] + ) - if "CISD CORRELATION ENERGY" in calc["data"]: - calc["data"]["CISD TOTAL ENERGY"] = ( - calc["data"]["CISD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "QCISD CORRELATION ENERGY" in calc["data"]: - calc["data"]["QCISD TOTAL ENERGY"] = ( - calc["data"]["QCISD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - if "QCISD(T) CORRECTION ENERGY" in calc["data"]: - calc["data"]["QCISD(T) CORRELATION ENERGY"] = ( - calc["data"]["QCISD CORRELATION ENERGY"] + calc["data"]["QCISD(T) CORRECTION ENERGY"] + if "CEPA(3) CORRELATION ENERGY" in calc["data"]: + calc["data"]["CEPA(3) TOTAL ENERGY"] = ( + calc["data"]["CEPA(3) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - calc["data"]["QCISD(T) TOTAL ENERGY"] = ( - calc["data"]["QCISD(T) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + if "CEPA(3) SINGLES ENERGY" in calc["data"]: + calc["data"]["CEPA(3) DOUBLES ENERGY"] = ( + calc["data"]["CEPA(3) CORRELATION ENERGY"] - calc["data"]["CEPA(3) SINGLES ENERGY"] + ) + if "CEPA(3) SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["CEPA(3) OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["CEPA(3) CORRELATION ENERGY"] + - calc["data"]["CEPA(3) SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["CEPA(3) SINGLES ENERGY"] + ) + + if "ACPF CORRELATION ENERGY" in calc["data"]: + calc["data"]["ACPF TOTAL ENERGY"] = ( + calc["data"]["ACPF CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) + if "ACPF SINGLES ENERGY" in calc["data"]: + calc["data"]["ACPF DOUBLES ENERGY"] = ( + calc["data"]["ACPF CORRELATION ENERGY"] - calc["data"]["ACPF SINGLES ENERGY"] + ) + if "ACPF SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["ACPF OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["ACPF CORRELATION ENERGY"] + - calc["data"]["ACPF SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["ACPF SINGLES ENERGY"] + ) - if "FCI CORRELATION ENERGY" in calc["data"]: - calc["data"]["FCI TOTAL ENERGY"] = calc["data"]["FCI CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + if "AQCC CORRELATION ENERGY" in calc["data"]: + calc["data"]["AQCC TOTAL ENERGY"] = ( + calc["data"]["AQCC CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + if "AQCC SINGLES ENERGY" in calc["data"]: + calc["data"]["AQCC DOUBLES ENERGY"] = ( + calc["data"]["AQCC CORRELATION ENERGY"] - calc["data"]["AQCC SINGLES ENERGY"] + ) + if "AQCC SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["AQCC OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["AQCC CORRELATION ENERGY"] + - calc["data"]["AQCC SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["AQCC SINGLES ENERGY"] + ) - if "LCCD CORRELATION ENERGY" in calc["data"]: - calc["data"]["LCCD TOTAL ENERGY"] = ( - calc["data"]["LCCD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - if "LCCD SINGLES ENERGY" in calc["data"]: - calc["data"]["LCCD DOUBLES ENERGY"] = ( - calc["data"]["LCCD CORRELATION ENERGY"] - calc["data"]["LCCD SINGLES ENERGY"] + if "CCD CORRELATION ENERGY" in calc["data"]: + calc["data"]["CCD TOTAL ENERGY"] = ( + calc["data"]["CCD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - if "LCCD SAME-SPIN CORRELATION ENERGY" in calc["data"]: - calc["data"]["LCCD OPPOSITE-SPIN CORRELATION ENERGY"] = ( - calc["data"]["LCCD CORRELATION ENERGY"] - - calc["data"]["LCCD SAME-SPIN CORRELATION ENERGY"] - - calc["data"]["LCCD SINGLES ENERGY"] + if "CCD SINGLES ENERGY" in calc["data"]: + calc["data"]["CCD DOUBLES ENERGY"] = ( + calc["data"]["CCD CORRELATION ENERGY"] - calc["data"]["CCD SINGLES ENERGY"] ) + if "CCD SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["CCD OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["CCD CORRELATION ENERGY"] + - calc["data"]["CCD SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["CCD SINGLES ENERGY"] + ) + + if "BCCD CORRELATION ENERGY" in calc["data"]: + calc["data"]["BCCD TOTAL ENERGY"] = ( + calc["data"]["BCCD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "CC2 CORRELATION ENERGY" in calc["data"]: + calc["data"]["CC2 TOTAL ENERGY"] = ( + calc["data"]["CC2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) - if "LCCSD CORRELATION ENERGY" in calc["data"]: - calc["data"]["LCCSD TOTAL ENERGY"] = ( - calc["data"]["LCCSD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - if "LCCSD SINGLES ENERGY" in calc["data"]: - calc["data"]["LCCSD DOUBLES ENERGY"] = ( - calc["data"]["LCCSD CORRELATION ENERGY"] - calc["data"]["LCCSD SINGLES ENERGY"] + if "CCSD CORRELATION ENERGY" in calc["data"]: + calc["data"]["CCSD TOTAL ENERGY"] = ( + calc["data"]["CCSD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - if "LCCSD SAME-SPIN CORRELATION ENERGY" in calc["data"]: - calc["data"]["LCCSD OPPOSITE-SPIN CORRELATION ENERGY"] = ( - calc["data"]["LCCSD CORRELATION ENERGY"] - - calc["data"]["LCCSD SAME-SPIN CORRELATION ENERGY"] - - calc["data"]["LCCSD SINGLES ENERGY"] + if "CCSD SINGLES ENERGY" in calc["data"]: + calc["data"]["CCSD DOUBLES ENERGY"] = ( + calc["data"]["CCSD CORRELATION ENERGY"] - calc["data"]["CCSD SINGLES ENERGY"] ) + if "CCSD SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["CCSD OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["CCSD CORRELATION ENERGY"] + - calc["data"]["CCSD SAME-SPIN CORRELATION ENERGY"] + - calc["data"]["CCSD SINGLES ENERGY"] + ) + + if "T(CCSD) CORRECTION ENERGY" in calc["data"]: + calc["data"]["CCSD+T(CCSD) CORRELATION ENERGY"] = ( + calc["data"]["CCSD CORRELATION ENERGY"] + calc["data"]["T(CCSD) CORRECTION ENERGY"] + ) + calc["data"]["CCSD+T(CCSD) TOTAL ENERGY"] = ( + calc["data"]["CCSD+T(CCSD) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "(T) CORRECTION ENERGY" in calc["data"]: + calc["data"]["CCSD(T) CORRELATION ENERGY"] = ( + calc["data"]["CCSD CORRELATION ENERGY"] + calc["data"]["(T) CORRECTION ENERGY"] + ) + calc["data"]["CCSD(T) TOTAL ENERGY"] = ( + calc["data"]["CCSD(T) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "A-(T) CORRECTION ENERGY" in calc["data"]: + calc["data"]["A-CCSD(T) CORRELATION ENERGY"] = ( + calc["data"]["CCSD CORRELATION ENERGY"] + calc["data"]["A-(T) CORRECTION ENERGY"] + ) + calc["data"]["A-CCSD(T) TOTAL ENERGY"] = ( + calc["data"]["A-CCSD(T) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "B(T) CORRECTION ENERGY" in calc["data"]: + calc["data"]["BCCD(T) CORRELATION ENERGY"] = ( + calc["data"]["BCCD CORRELATION ENERGY"] + calc["data"]["B(T) CORRECTION ENERGY"] + ) + calc["data"]["BCCD(T) TOTAL ENERGY"] = ( + calc["data"]["BCCD(T) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "CC3 CORRELATION ENERGY" in calc["data"]: + calc["data"]["CC3 TOTAL ENERGY"] = ( + calc["data"]["CC3 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "CCSDT-1A CORRELATION ENERGY" in calc["data"]: + calc["data"]["CCSDT-1A TOTAL ENERGY"] = ( + calc["data"]["CCSDT-1A CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "CCSDT-1B CORRELATION ENERGY" in calc["data"]: + calc["data"]["CCSDT-1B TOTAL ENERGY"] = ( + calc["data"]["CCSDT-1B CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "CCSDT-2 CORRELATION ENERGY" in calc["data"]: + calc["data"]["CCSDT-2 TOTAL ENERGY"] = ( + calc["data"]["CCSDT-2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "CCSDT-3 CORRELATION ENERGY" in calc["data"]: + calc["data"]["CCSDT-3 TOTAL ENERGY"] = ( + calc["data"]["CCSDT-3 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "CCSDT CORRELATION ENERGY" in calc["data"]: + calc["data"]["CCSDT TOTAL ENERGY"] = ( + calc["data"]["CCSDT CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + + if "(Q) CORRECTION ENERGY" in calc["data"]: + calc["data"]["CCSDT(Q) CORRELATION ENERGY"] = ( + calc["data"]["CCSDT CORRELATION ENERGY"] + calc["data"]["(Q) CORRECTION ENERGY"] + ) + calc["data"]["CCSDT(Q) TOTAL ENERGY"] = ( + calc["data"]["CCSDT(Q) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) - if "CCD CORRELATION ENERGY" in calc["data"]: - calc["data"]["CCD TOTAL ENERGY"] = calc["data"]["CCD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - if "CCD SINGLES ENERGY" in calc["data"]: - calc["data"]["CCD DOUBLES ENERGY"] = ( - calc["data"]["CCD CORRELATION ENERGY"] - calc["data"]["CCD SINGLES ENERGY"] + if "CCSDTQ CORRELATION ENERGY" in calc["data"]: + calc["data"]["CCSDTQ TOTAL ENERGY"] = ( + calc["data"]["CCSDTQ CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - if "CCD SAME-SPIN CORRELATION ENERGY" in calc["data"]: - calc["data"]["CCD OPPOSITE-SPIN CORRELATION ENERGY"] = ( - calc["data"]["CCD CORRELATION ENERGY"] - - calc["data"]["CCD SAME-SPIN CORRELATION ENERGY"] - - calc["data"]["CCD SINGLES ENERGY"] + + if "OMP2 CORRELATION ENERGY" in calc["data"]: + if calc["data"]["OMP2 CORRELATION ENERGY"] == _knownmissing: + calc["data"]["OMP2 TOTAL ENERGY"] = _knownmissing + calc["data"]["OMP2 OPPOSITE-SPIN CORRELATION ENERGY"] = _knownmissing + else: + calc["data"]["OMP2 TOTAL ENERGY"] = ( + calc["data"]["OMP2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + if "OMP2 SAME-SPIN CORRELATION ENERGY" in calc["data"]: + if calc["data"]["OMP2 SAME-SPIN CORRELATION ENERGY"] == _knownmissing: + calc["data"]["OMP2 OPPOSITE-SPIN CORRELATION ENERGY"] = _knownmissing + else: + calc["data"]["OMP2 OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["OMP2 CORRELATION ENERGY"] + - calc["data"]["OMP2 REFERENCE CORRECTION ENERGY"] + - calc["data"]["OMP2 SAME-SPIN CORRELATION ENERGY"] + ) + + if "OMP2.5 CORRELATION ENERGY" in calc["data"]: + if calc["data"]["OMP2.5 CORRELATION ENERGY"] == _knownmissing: + calc["data"]["OMP2.5 TOTAL ENERGY"] = _knownmissing + calc["data"]["OMP2.5 OPPOSITE-SPIN CORRELATION ENERGY"] = _knownmissing + else: + calc["data"]["OMP2.5 TOTAL ENERGY"] = ( + calc["data"]["OMP2.5 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + if "OMP2.5 SAME-SPIN CORRELATION ENERGY" in calc["data"]: + if calc["data"]["OMP2.5 SAME-SPIN CORRELATION ENERGY"] == _knownmissing: + calc["data"]["OMP2.5 OPPOSITE-SPIN CORRELATION ENERGY"] = _knownmissing + else: + calc["data"]["OMP2.5 OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["OMP2.5 CORRELATION ENERGY"] + - calc["data"]["OMP2.5 REFERENCE CORRECTION ENERGY"] + - calc["data"]["OMP2.5 SAME-SPIN CORRELATION ENERGY"] + ) + + if "OMP3 CORRELATION ENERGY" in calc["data"]: + if calc["data"]["OMP3 CORRELATION ENERGY"] == _knownmissing: + calc["data"]["OMP3 TOTAL ENERGY"] = _knownmissing + calc["data"]["OMP3 OPPOSITE-SPIN CORRELATION ENERGY"] = _knownmissing + else: + calc["data"]["OMP3 TOTAL ENERGY"] = ( + calc["data"]["OMP3 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + if "OMP3 SAME-SPIN CORRELATION ENERGY" in calc["data"]: + if calc["data"]["OMP3 SAME-SPIN CORRELATION ENERGY"] == _knownmissing: + calc["data"]["OMP3 OPPOSITE-SPIN CORRELATION ENERGY"] = _knownmissing + else: + calc["data"]["OMP3 OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["OMP3 CORRELATION ENERGY"] + - calc["data"]["OMP3 REFERENCE CORRECTION ENERGY"] + - calc["data"]["OMP3 SAME-SPIN CORRELATION ENERGY"] + ) + + if "OREMP2 CORRELATION ENERGY" in calc["data"]: + if calc["data"]["OREMP2 CORRELATION ENERGY"] == _knownmissing: + calc["data"]["OREMP2 TOTAL ENERGY"] = _knownmissing + calc["data"]["OREMP2 OPPOSITE-SPIN CORRELATION ENERGY"] = _knownmissing + else: + calc["data"]["OREMP2 TOTAL ENERGY"] = ( + calc["data"]["OREMP2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) + if "OREMP2 SAME-SPIN CORRELATION ENERGY" in calc["data"]: + if calc["data"]["OREMP2 SAME-SPIN CORRELATION ENERGY"] == _knownmissing: + calc["data"]["OREMP2 OPPOSITE-SPIN CORRELATION ENERGY"] = _knownmissing + else: + calc["data"]["OREMP2 OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["OREMP2 CORRELATION ENERGY"] + - calc["data"]["OREMP2 REFERENCE CORRECTION ENERGY"] + - calc["data"]["OREMP2 SAME-SPIN CORRELATION ENERGY"] + ) - if "CCSD CORRELATION ENERGY" in calc["data"]: - calc["data"]["CCSD TOTAL ENERGY"] = ( - calc["data"]["CCSD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - if "CCSD SINGLES ENERGY" in calc["data"]: - calc["data"]["CCSD DOUBLES ENERGY"] = ( - calc["data"]["CCSD CORRELATION ENERGY"] - calc["data"]["CCSD SINGLES ENERGY"] + if "OLCCD CORRELATION ENERGY" in calc["data"]: + calc["data"]["OLCCD TOTAL ENERGY"] = ( + calc["data"]["OLCCD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - if "CCSD SAME-SPIN CORRELATION ENERGY" in calc["data"]: - calc["data"]["CCSD OPPOSITE-SPIN CORRELATION ENERGY"] = ( - calc["data"]["CCSD CORRELATION ENERGY"] - - calc["data"]["CCSD SAME-SPIN CORRELATION ENERGY"] - - calc["data"]["CCSD SINGLES ENERGY"] + if "OLCCD SAME-SPIN CORRELATION ENERGY" in calc["data"]: + if calc["data"]["OLCCD SAME-SPIN CORRELATION ENERGY"] == _knownmissing: + calc["data"]["OLCCD OPPOSITE-SPIN CORRELATION ENERGY"] = _knownmissing + else: + calc["data"]["OLCCD OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["OLCCD CORRELATION ENERGY"] + - calc["data"]["OLCCD REFERENCE CORRECTION ENERGY"] + - calc["data"]["OLCCD SAME-SPIN CORRELATION ENERGY"] + ) + + if "OCCD CORRELATION ENERGY" in calc["data"]: + calc["data"]["OCCD TOTAL ENERGY"] = ( + calc["data"]["OCCD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) + if "OCCD SAME-SPIN CORRELATION ENERGY" in calc["data"]: + calc["data"]["OCCD OPPOSITE-SPIN CORRELATION ENERGY"] = ( + calc["data"]["OCCD CORRELATION ENERGY"] + - calc["data"]["OCCD REFERENCE CORRECTION ENERGY"] + - calc["data"]["OCCD SAME-SPIN CORRELATION ENERGY"] + ) + + if "O(T) CORRECTION ENERGY" in calc["data"]: + if calc["data"]["O(T) CORRECTION ENERGY"] == _knownmissing: + calc["data"]["OCCD(T) CORRELATION ENERGY"] = _knownmissing + calc["data"]["OCCD(T) TOTAL ENERGY"] = _knownmissing + else: + calc["data"]["OCCD(T) CORRELATION ENERGY"] = ( + calc["data"]["OCCD CORRELATION ENERGY"] + calc["data"]["O(T) CORRECTION ENERGY"] + ) + calc["data"]["OCCD(T) TOTAL ENERGY"] = ( + calc["data"]["OCCD(T) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] ) - if "T(CCSD) CORRECTION ENERGY" in calc["data"]: - calc["data"]["CCSD+T(CCSD) CORRELATION ENERGY"] = ( - calc["data"]["CCSD CORRELATION ENERGY"] + calc["data"]["T(CCSD) CORRECTION ENERGY"] - ) - calc["data"]["CCSD+T(CCSD) TOTAL ENERGY"] = ( - calc["data"]["CCSD+T(CCSD) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "(T) CORRECTION ENERGY" in calc["data"]: - calc["data"]["CCSD(T) CORRELATION ENERGY"] = ( - calc["data"]["CCSD CORRELATION ENERGY"] + calc["data"]["(T) CORRECTION ENERGY"] - ) - calc["data"]["CCSD(T) TOTAL ENERGY"] = ( - calc["data"]["CCSD(T) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "A-(T) CORRECTION ENERGY" in calc["data"]: - calc["data"]["A-CCSD(T) CORRELATION ENERGY"] = ( - calc["data"]["CCSD CORRELATION ENERGY"] + calc["data"]["A-(T) CORRECTION ENERGY"] - ) - calc["data"]["A-CCSD(T) TOTAL ENERGY"] = ( - calc["data"]["A-CCSD(T) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "CCSDT-1A CORRELATION ENERGY" in calc["data"]: - calc["data"]["CCSDT-1A TOTAL ENERGY"] = ( - calc["data"]["CCSDT-1A CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "CCSDT-1B CORRELATION ENERGY" in calc["data"]: - calc["data"]["CCSDT-1B TOTAL ENERGY"] = ( - calc["data"]["CCSDT-1B CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "CCSDT-2 CORRELATION ENERGY" in calc["data"]: - calc["data"]["CCSDT-2 TOTAL ENERGY"] = ( - calc["data"]["CCSDT-2 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "CCSDT-3 CORRELATION ENERGY" in calc["data"]: - calc["data"]["CCSDT-3 TOTAL ENERGY"] = ( - calc["data"]["CCSDT-3 CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "CCSDT CORRELATION ENERGY" in calc["data"]: - calc["data"]["CCSDT TOTAL ENERGY"] = ( - calc["data"]["CCSDT CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "(Q) CORRECTION ENERGY" in calc["data"]: - calc["data"]["CCSDT(Q) CORRELATION ENERGY"] = ( - calc["data"]["CCSDT CORRELATION ENERGY"] + calc["data"]["(Q) CORRECTION ENERGY"] - ) - calc["data"]["CCSDT(Q) TOTAL ENERGY"] = ( - calc["data"]["CCSDT(Q) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "CCSDTQ CORRELATION ENERGY" in calc["data"]: - calc["data"]["CCSDTQ TOTAL ENERGY"] = ( - calc["data"]["CCSDTQ CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - - if "OLCCD CORRELATION ENERGY" in calc["data"]: - calc["data"]["OLCCD TOTAL ENERGY"] = ( - calc["data"]["OLCCD CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] - ) - calc["data"]["OLCCD OPPOSITE-SPIN CORRELATION ENERGY"] = ( - calc["data"]["OLCCD CORRELATION ENERGY"] - - calc["data"]["OLCCD REFERENCE CORRECTION ENERGY"] - - calc["data"]["OLCCD SAME-SPIN CORRELATION ENERGY"] - ) + if "A-O(T) CORRECTION ENERGY" in calc["data"]: + if calc["data"]["A-O(T) CORRECTION ENERGY"] == _knownmissing: + calc["data"]["A-OCCD(T) CORRELATION ENERGY"] = _knownmissing + calc["data"]["A-OCCD(T) TOTAL ENERGY"] = _knownmissing + else: + calc["data"]["A-OCCD(T) CORRELATION ENERGY"] = ( + calc["data"]["OCCD CORRELATION ENERGY"] + calc["data"]["A-O(T) CORRECTION ENERGY"] + ) + calc["data"]["A-OCCD(T) TOTAL ENERGY"] = ( + calc["data"]["A-OCCD(T) CORRELATION ENERGY"] + calc["data"]["HF TOTAL ENERGY"] + ) - calc["data"].update(_std_generics[f"{calc['meta']['system']}_{calc['meta']['basis']}_{calc['meta']['fcae']}"]) + calc["data"].update(_std_generics[f"{calc['meta']['system']}_{calc['meta']['basis']}_{calc['meta']['fcae']}"]) def answer_hash(**kwargs): @@ -10437,8 +17105,10 @@ reference = kwargs.pop("reference") fcae = kwargs.pop("fcae") corl_type = kwargs.pop("corl_type") + sdsc = kwargs.pop("sdsc") - return "_".join([system, basis, scf_type, reference, fcae, corl_type]) + return "_".join([system, basis, scf_type, reference, fcae, corl_type, sdsc]) +compute_derived_qcvars(_std_suite) std_suite = {answer_hash(**calc["meta"]): calc["data"] for calc in _std_suite} diff -Nru qcengine-0.23.0/qcengine/programs/tests/standard_suite_runner.py qcengine-0.26.0/qcengine/programs/tests/standard_suite_runner.py --- qcengine-0.23.0/qcengine/programs/tests/standard_suite_runner.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/standard_suite_runner.py 2022-11-30 16:26:08.000000000 +0000 @@ -12,36 +12,7 @@ from qcengine.programs.util import mill_qcvars from .standard_suite_ref import answer_hash, std_suite - -from .standard_suite_contracts import ( # isort:skip - contractual_hf, - contractual_mp2, - contractual_mp2p5, - contractual_mp3, - contractual_mp4_prsdq_pr, - contractual_mp4, - contractual_cisd, - contractual_qcisd, - contractual_qcisd_prt_pr, - contractual_lccd, - contractual_lccsd, - contractual_ccd, - contractual_ccsd, - contractual_ccsdpt_prccsd_pr, - contractual_ccsd_prt_pr, - contractual_accsd_prt_pr, - contractual_ccsdt1a, - contractual_ccsdt1b, - contractual_ccsdt2, - contractual_ccsdt3, - contractual_ccsdt, - contractual_ccsdt_prq_pr, - contractual_ccsdtq, - contractual_dft_current, - contractual_current, - query_has_qcvar, - query_qcvar, -) +from .standard_suite_contracts import * pp = pprint.PrettyPrinter(width=120) @@ -56,6 +27,7 @@ driver = inp["driver"] reference = inp["reference"] fcae = inp["fcae"] + sdsc = inp.get("sdsc", "") or ("sc" if reference == "rohf" else "sd") if basis == "cfour-qz2p" and qcprog in ["gamess", "nwchem", "qchem"]: pytest.skip(f"basis {basis} not available in {qcprog} library") @@ -132,6 +104,7 @@ scf_type=scf_type, reference=reference, corl_type=corl_type, + sdsc=sdsc, ) ref_block = std_suite[chash] @@ -145,6 +118,7 @@ reference=reference, corl_type="conv", scf_type="pk", + sdsc=sdsc, ) ref_block_conv = std_suite[chash_conv] @@ -168,13 +142,13 @@ if "error" in inp: errtype, errmatch, reason = inp["error"] with pytest.raises(errtype) as e: - qcng.compute(atin, qcprog, raise_error=True, return_dict=True, local_options=local_options) + qcng.compute(atin, qcprog, raise_error=True, return_dict=True, task_config=local_options) assert re.search(errmatch, str(e.value)), f"Not found: {errtype} '{errmatch}' in {e.value}" # _recorder(qcprog, qc_module_in, driver, method, reference, fcae, scf_type, corl_type, "error", "nyi: " + reason) return - wfn = qcng.compute(atin, qcprog, raise_error=True, local_options=local_options) + wfn = qcng.compute(atin, qcprog, raise_error=True, task_config=local_options) print("WFN") pp.pprint(wfn.dict()) @@ -241,6 +215,7 @@ method, corl_type, fcae, + sdsc, ] asserter_args = [ [wfn.extras["qcvars"], wfn.properties], diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_canonical_config.py qcengine-0.26.0/qcengine/programs/tests/test_canonical_config.py --- qcengine-0.23.0/qcengine/programs/tests/test_canonical_config.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_canonical_config.py 2022-11-30 16:26:08.000000000 +0000 @@ -92,7 +92,7 @@ config = qcng.config.get_config( hostname="something", - local_options={ + task_config={ "ncores": 1, "nnodes": 1, "memory": 1.555, @@ -102,7 +102,7 @@ # << Run inp = AtomicInput(molecule=molecule, driver="energy", model=model, keywords=use_keywords) - ret = qcng.compute(inp, program, raise_error=True, local_options=config.dict()) + ret = qcng.compute(inp, program, raise_error=True, task_config=config.dict()) pprint.pprint(ret.dict(), width=200) assert ret.success is True @@ -157,7 +157,7 @@ config = qcng.config.get_config( hostname="something", - local_options={ + task_config={ "scratch_directory": scratch_directory, "scratch_messy": True, }, @@ -166,7 +166,7 @@ # << Run inp = AtomicInput(molecule=molecule, driver="energy", model=model, keywords=keywords) - ret = qcng.compute(inp, program, raise_error=True, local_options=config.dict()) + ret = qcng.compute(inp, program, raise_error=True, task_config=config.dict()) pprint.pprint(ret.dict(), width=200) assert ret.success is True @@ -234,7 +234,7 @@ config = qcng.config.get_config( hostname="something", - local_options={ + task_config={ "ncores": ncores, "nnodes": 1, }, @@ -243,7 +243,7 @@ # << Run inp = AtomicInput(molecule=molecule, driver="energy", model=model, keywords=keywords) - ret = qcng.compute(inp, program, raise_error=True, local_options=config.dict()) + ret = qcng.compute(inp, program, raise_error=True, task_config=config.dict()) pprint.pprint(ret.dict(), width=200) assert ret.success is True diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_canonical_fields.py qcengine-0.26.0/qcengine/programs/tests/test_canonical_fields.py --- qcengine-0.23.0/qcengine/programs/tests/test_canonical_fields.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_canonical_fields.py 2022-11-30 16:26:08.000000000 +0000 @@ -2,6 +2,7 @@ import re import pytest +import qcelemental as qcel from qcelemental.models import AtomicInput import qcengine as qcng @@ -38,7 +39,7 @@ } config = qcng.config.get_config( hostname="something", - local_options={ + task_config={ "ncores": 1, "nnodes": 1, }, @@ -78,7 +79,10 @@ # << Test if native == "none": - assert ret.native_files is None + if qcel.util.parse_version(qcel.__version__) < qcel.util.parse_version("0.25.0"): + assert ret.native_files is None + else: + assert ret.native_files == {} elif native == "input": assert list(ret.native_files.keys()) == ["input"] diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_dftd3_mp2d.py qcengine-0.26.0/qcengine/programs/tests/test_dftd3_mp2d.py --- qcengine-0.23.0/qcengine/programs/tests/test_dftd3_mp2d.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_dftd3_mp2d.py 2022-11-30 16:26:08.000000000 +0000 @@ -1049,7 +1049,8 @@ zip( dmm, [ - np.array( + 0.5 + * np.array( [ [ 0.00000000e00, @@ -1397,7 +1398,7 @@ db3lypd3bj = { - "dashlevel": "d3bj", + "dashlevel": "d3bj2b", "dashparams": {"s8": 1.9889, "s6": 1.0, "a2": 4.4211, "a1": 0.3981}, "dashparams_citation": "", "fctldash": "b3lyp-d3(bj)", @@ -1407,7 +1408,7 @@ db3lypd3bjcustom["dashparams"]["a2"] = 5.4211 dpbed3zero = { - "dashlevel": "d3zero", + "dashlevel": "d3zero2b", "dashparams": {"s6": 1.0, "s8": 0.722, "sr6": 1.217, "sr8": 1.0, "alpha6": 14.0}, "dashparams_citation": "", "fctldash": "pbe-d3", @@ -1686,37 +1687,46 @@ ids=["qmol", "pmol", "qcmol"], ) @pytest.mark.parametrize( - "inp", + "program, inp", # fmt: off [ - pytest.param({"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "d3-b3lyp-d"}, "keywords": {}}, "lbl": "B3LYP-D2"}, marks=using("dftd3")), - pytest.param({"parent": "eneyne", "subject": "mA", "qcsk": {"model": {"method": "d3-b3lyp-d3bj"}, "keywords": {}}, "lbl": "B3LYP-D3(BJ)"}, marks=using("dftd3")), - pytest.param({"parent": "eneyne", "subject": "mB", "qcsk": {"model": { "method": "d3-PBE-D3zero"}, "keywords": {}}, "lbl": "PBE-D3"}, marks=using("dftd3")), - pytest.param({ "parent": "eneyne", "subject": "gAmB", "qcsk": { "model": { "method": "d3-PBE-D3zero"}, "keywords": {}}, "lbl": "PBE-D3"}, marks=using("dftd3")), - pytest.param({ "parent": "eneyne", "subject": "mAgB", "qcsk": { "model": { "method": "d3-PBE-D2"}, "keywords": {}}, "lbl": "PBE-D2"}, marks=using("dftd3")), - pytest.param({ "parent": "ne", "subject": "atom", "qcsk": { "model": { "method": "d3-b3lyp-d3bj"}, "keywords": {}}, "lbl": "B3LYP-D3(BJ)"}, marks=using("dftd3")), - pytest.param({ "parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "d3-SAPT0-D3M(BJ)"}, "keywords": {}}, "lbl": "SAPT0-D3M(BJ)"}, marks=using("dftd3")), - pytest.param({ "parent": "eneyne", "subject": "mA", "qcsk": { "model": { "method": "d3-SAPT0-D3M"}, "keywords": {}}, "lbl": "SAPT0-D3M"}, marks=using("dftd3")), - - pytest.param({ "parent": "eneyne", "subject": "dimer", "qcsk": { "model": { "method": "d4-b3lyp-d4"}, "keywords": {}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), - pytest.param({ "parent": "ne", "subject": "atom", "qcsk": { "model": { "method": "d4-b3lyp-d4"}, "keywords": {}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), - pytest.param({ "parent": "eneyne", "subject": "mA", "qcsk": { "model": { "method": "d4-b3lyp-d4"}, "keywords": {}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), - pytest.param({ "parent": "eneyne", "subject": "gAmB", "qcsk": { "model": { "method": "d4-b3lyp-d4"}, "keywords": {}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), - pytest.param({ "parent": "eneyne", "subject": "mB", "qcsk": { "model": { "method": "d4-PBE-D4"}, "keywords": {}}, "lbl": "PBE-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), - pytest.param({ "parent": "eneyne", "subject": "mAgB", "qcsk": { "model": { "method": "d4-PBE-D4"}, "keywords": {}}, "lbl": "PBE-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), - - pytest.param({ "parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": ""}, "keywords": {"level_hint": "d3", "params_tweaks": _d3_b3lyp}}, "lbl": "B3LYP-D3"}, marks=using("dftd3")), # params only - pytest.param({ "parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "b3lyp-d3"}, "keywords": {"level_hint": "d3", "params_tweaks": _d3_b3lyp}}, "lbl": "B3LYP-D3"}, marks=using("dftd3")), # method reinforcing params - pytest.param({ "parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "pbe-d3"}, "keywords": {"level_hint": "d3", "params_tweaks": _d3_b3lyp}}, "lbl": "B3LYP-D3"}, marks=using("dftd3")), # method contradicting params (D3: params win) - - pytest.param({ "parent": "eneyne", "subject": "mAgB", "qcsk": {"model": {"method": ""}, "keywords": {"level_hint": "d4", "params_tweaks": _d4_b3lyp_2body}}, "lbl": "B3LYP-D4(BJ)-2BODY"}, marks=using("dftd4")), # params only - pytest.param({ "parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": ""}, "keywords": {"level_hint": "d4", "params_tweaks": _d4_b3lyp}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), # params only - pytest.param({ "parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "b3lyp-d4"}, "keywords": {"level_hint": "d4", "params_tweaks": _d4_b3lyp}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), # method reinforcing params - pytest.param({ "parent": "eneyne", "subject": "dimer", "qcsk": { "model": {"method": "pbe-d4"}, "keywords": {"pair_resolved": True, "level_hint": "d4", "params_tweaks": _d4_b3lyp}}, "lbl": "PBE-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), # method contradicting params (D4: method wins) + pytest.param("dftd3", {"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "d3-b3lyp-d"}, "keywords": {}}, "lbl": "B3LYP-D2"}, marks=using("dftd3")), + pytest.param("dftd3", {"parent": "eneyne", "subject": "mA", "qcsk": {"model": {"method": "d3-b3lyp-d3bj"}, "keywords": {}}, "lbl": "B3LYP-D3(BJ)"}, marks=using("dftd3")), + pytest.param("dftd3", {"parent": "eneyne", "subject": "mB", "qcsk": {"model": { "method": "d3-PBE-D3zero"}, "keywords": {}}, "lbl": "PBE-D3"}, marks=using("dftd3")), + pytest.param("dftd3", {"parent": "eneyne", "subject": "gAmB", "qcsk": { "model": { "method": "d3-PBE-D3zero"}, "keywords": {}}, "lbl": "PBE-D3"}, marks=using("dftd3")), + pytest.param("dftd3", {"parent": "eneyne", "subject": "mAgB", "qcsk": { "model": { "method": "d3-PBE-D2"}, "keywords": {}}, "lbl": "PBE-D2"}, marks=using("dftd3")), + pytest.param("dftd3", {"parent": "ne", "subject": "atom", "qcsk": { "model": { "method": "d3-b3lyp-d3bj"}, "keywords": {}}, "lbl": "B3LYP-D3(BJ)"}, marks=using("dftd3")), + pytest.param("dftd3", {"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "d3-SAPT0-D3M(BJ)"}, "keywords": {}}, "lbl": "SAPT0-D3M(BJ)"}, marks=using("dftd3")), + pytest.param("dftd3", {"parent": "eneyne", "subject": "mA", "qcsk": { "model": { "method": "d3-SAPT0-D3M"}, "keywords": {}}, "lbl": "SAPT0-D3M"}, marks=using("dftd3")), + + pytest.param("s-dftd3", {"parent": "eneyne", "subject": "mA", "qcsk": {"model": {"method": "d3-b3lyp-d3bj"}, "keywords": {"apply_qcengine_aliases": True, "level_hint": "d3bj"}}, "lbl": "B3LYP-D3(BJ)"}, marks=using("s-dftd3")), + pytest.param("s-dftd3", {"parent": "eneyne", "subject": "mB", "qcsk": {"model": { "method": "d3-PBE-D3zero"}, "keywords": {"apply_qcengine_aliases": True, "level_hint": "d3zero"}}, "lbl": "PBE-D3"}, marks=using("s-dftd3")), + pytest.param("s-dftd3", {"parent": "eneyne", "subject": "gAmB", "qcsk": { "model": { "method": "d3-PBE-D3zero"}, "keywords": {"apply_qcengine_aliases": True, "level_hint": "d3"}}, "lbl": "PBE-D3"}, marks=using("s-dftd3")), + pytest.param("s-dftd3", {"parent": "ne", "subject": "atom", "qcsk": { "model": { "method": "d3-b3lyp-d3bj"}, "keywords": {"apply_qcengine_aliases": True, "level_hint": "d3bj"}}, "lbl": "B3LYP-D3(BJ)"}, marks=using("s-dftd3")), + pytest.param("s-dftd3", {"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "d3-SAPT0-D3M(BJ)"}, "keywords": {"apply_qcengine_aliases": True, "level_hint": "d3mbj"}}, "lbl": "SAPT0-D3M(BJ)"}, marks=using("s-dftd3")), + pytest.param("s-dftd3", {"parent": "eneyne", "subject": "mA", "qcsk": { "model": { "method": "d3-SAPT0-D3M"}, "keywords": {"apply_qcengine_aliases": True, "level_hint": "d3m"}}, "lbl": "SAPT0-D3M"}, marks=using("s-dftd3")), + + pytest.param("dftd4", {"parent": "eneyne", "subject": "dimer", "qcsk": { "model": { "method": "d4-b3lyp-d4"}, "keywords": {}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), + pytest.param("dftd4", {"parent": "ne", "subject": "atom", "qcsk": { "model": { "method": "d4-b3lyp-d4"}, "keywords": {}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), + pytest.param("dftd4", {"parent": "eneyne", "subject": "mA", "qcsk": { "model": { "method": "d4-b3lyp-d4"}, "keywords": {}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), + pytest.param("dftd4", {"parent": "eneyne", "subject": "gAmB", "qcsk": { "model": { "method": "d4-b3lyp-d4"}, "keywords": {}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), + pytest.param("dftd4", {"parent": "eneyne", "subject": "mB", "qcsk": { "model": { "method": "d4-PBE-D4"}, "keywords": {}}, "lbl": "PBE-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), + pytest.param("dftd4", {"parent": "eneyne", "subject": "mAgB", "qcsk": { "model": { "method": "d4-PBE-D4"}, "keywords": {}}, "lbl": "PBE-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), + + pytest.param("dftd3", {"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": ""}, "keywords": {"level_hint": "d3", "params_tweaks": _d3_b3lyp}}, "lbl": "B3LYP-D3"}, marks=using("dftd3")), # params only + pytest.param("dftd3", {"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "b3lyp-d3"}, "keywords": {"level_hint": "d3", "params_tweaks": _d3_b3lyp}}, "lbl": "B3LYP-D3"}, marks=using("dftd3")), # method reinforcing params + pytest.param("dftd3", {"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "pbe-d3"}, "keywords": {"level_hint": "d3", "params_tweaks": _d3_b3lyp}}, "lbl": "B3LYP-D3"}, marks=using("dftd3")), # method contradicting params (D3: params win) + + pytest.param("dftd4", {"parent": "eneyne", "subject": "mAgB", "qcsk": {"model": {"method": ""}, "keywords": {"level_hint": "d4", "params_tweaks": _d4_b3lyp_2body}}, "lbl": "B3LYP-D4(BJ)-2BODY"}, marks=using("dftd4")), # params only + pytest.param("dftd4", {"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": ""}, "keywords": {"level_hint": "d4", "params_tweaks": _d4_b3lyp}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), # params only + pytest.param("dftd4", {"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "b3lyp-d4"}, "keywords": {"level_hint": "d4", "params_tweaks": _d4_b3lyp}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), # method reinforcing params + # LAB Nov 2022 - I think early on the D4 logic pattern was method wins when method and params_tweaks contradicted, and this is what the test below relies upon and the dftd4 from psi4 channel does (test passes). + # Later, dftd4 clarified logic by calling contradiction an error, so below with dftd4 from c-f channel returns B3LYP values. Disabling test. + # pytest.param({ "parent": "eneyne", "subject": "dimer", "qcsk": { "model": {"method": "pbe-d4"}, "keywords": {"pair_resolved": True, "level_hint": "d4", "params_tweaks": _d4_b3lyp}}, "lbl": "PBE-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), # method contradicting params (D4: method wins) ], # fmt: on ) -def test_dftd3__run_dftd3__2body(inp, subjects, request): +def test_dftd3__run_dftd3__2body(inp, program, subjects, request): subject = subjects()[inp["parent"]][inp["subject"]] expected = ref[inp["parent"]][inp["lbl"]][inp["subject"]] gexpected = gref[inp["parent"]][inp["lbl"]][inp["subject"]] @@ -1726,8 +1736,6 @@ else: mol = subject.to_schema(dtype=2) - program = "dftd4" if ("D4(BJ" in inp["lbl"]) else "dftd3" - atin = AtomicInput( molecule=mol, driver="gradient", @@ -1777,7 +1785,8 @@ pytest.param({"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "pbe-d3"}, "keywords": {"level_hint": "d3", "params_tweaks": _d3_b3lyp}}, "lbl": "PBE-D3"}, marks=using("dftd3")), # method contradicting params (D3: params win -> fail) pytest.param({"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": ""}, "keywords": {"level_hint": "d4", "params_tweaks": _d4_b3lyp}}, "lbl": "PBE-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), # wrong ref lbl - pytest.param({"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "pbe-d4"}, "keywords": {"level_hint": "d4", "params_tweaks": _d4_b3lyp}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), # method contradicting params (D4: method wins -> fail) + # LAB Nov 2022 - dftd4 from different channels (psi4, c-f) producing contrary behavior. TODO + # pytest.param({"parent": "eneyne", "subject": "dimer", "qcsk": {"model": {"method": "pbe-d4"}, "keywords": {"level_hint": "d4", "params_tweaks": _d4_b3lyp}}, "lbl": "B3LYP-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), # method contradicting params (D4: method wins -> fail) ], # fmt: on ) @@ -1878,13 +1887,21 @@ ids=["qmol", "pmol", "qcmol"], ) @pytest.mark.parametrize( - "inp", + "inp, extrakw, program", [ - pytest.param({"parent": "eneyne", "subject": "dimer", "lbl": "SAPT0-D3M"}, marks=using("dftd3")), - pytest.param({"parent": "eneyne", "subject": "dimer", "lbl": "PBE-D4(BJ,EEQ)ATM"}, marks=using("dftd4")), + pytest.param({"parent": "eneyne", "subject": "dimer", "lbl": "SAPT0-D3M"}, {}, "dftd3", marks=using("dftd3")), + pytest.param( + {"parent": "eneyne", "subject": "dimer", "lbl": "SAPT0-D3M"}, + {"apply_qcengine_aliases": True, "level_hint": "d3m"}, + "s-dftd3", + marks=using("s-dftd3"), + ), + pytest.param( + {"parent": "eneyne", "subject": "dimer", "lbl": "PBE-D4(BJ,EEQ)ATM"}, {}, "dftd4", marks=using("dftd4") + ), ], ) -def test_sapt_pairwise(inp, subjects, request): +def test_sapt_pairwise(inp, program, extrakw, subjects, request): subject = subjects()[inp["parent"]][inp["subject"]] expected = ref[inp["parent"]][inp["lbl"]][inp["subject"]] expected_pairwise = pref[inp["parent"]][inp["lbl"]][inp["subject"]] @@ -1894,14 +1911,13 @@ else: mol = subject.to_schema(dtype=2) - program = "dftd4" if ("D4(BJ" in inp["lbl"]) else "dftd3" - atin = AtomicInput( molecule=mol, driver="energy", model={"method": inp["lbl"]}, keywords={ "pair_resolved": True, + **extrakw, }, ) jrec = qcng.compute(atin, program, raise_error=True) diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_dftd4.py qcengine-0.26.0/qcengine/programs/tests/test_dftd4.py --- qcengine-0.23.0/qcengine/programs/tests/test_dftd4.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_dftd4.py 2022-11-30 16:26:08.000000000 +0000 @@ -36,7 +36,7 @@ @using("dftd4") def test_dftd4_task_tpss_m02(): - thr = 1.0e-8 + thr = 2.0e-8 return_result = np.array( [ diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_ghost.py qcengine-0.26.0/qcengine/programs/tests/test_ghost.py --- qcengine-0.23.0/qcengine/programs/tests/test_ghost.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_ghost.py 2022-11-30 16:26:08.000000000 +0000 @@ -2,6 +2,7 @@ import re import pytest +import numpy as np import qcelemental as qcel from qcelemental.testing import compare, compare_values @@ -16,22 +17,30 @@ 0 1 He 0 0 0 @Ne 2.5 0 0 + nocom + noreorient """ return qcel.models.Molecule.from_data(smol) +@pytest.mark.parametrize("driver", ["energy", "gradient"]) @pytest.mark.parametrize( "program,basis,keywords", [ pytest.param("cfour", "aug-pvdz", {}, marks=using("cfour")), pytest.param("gamess", "ccd", {"contrl__ispher": 1}, marks=using("gamess")), - pytest.param("nwchem", "aug-cc-pvdz", {"basis__spherical": True}, marks=using("nwchem")), - pytest.param("nwchem", "aug-cc-pvdz", {"basis__spherical": True, "qc_module": "tce"}, marks=using("nwchem")), + pytest.param("nwchem", "aug-cc-pvdz", {"basis__spherical": True, "scf__thresh": 1.0e-6}, marks=using("nwchem")), + pytest.param( + "nwchem", + "aug-cc-pvdz", + {"basis__spherical": True, "scf__thresh": 1.0e-6, "qc_module": "tce"}, + marks=using("nwchem"), + ), pytest.param("psi4", "aug-cc-pvdz", {"scf_type": "direct"}, marks=using("psi4")), ], ) -def test_simple_ghost(program, basis, keywords, hene): - resi = {"molecule": hene, "driver": "energy", "model": {"method": "hf", "basis": basis}, "keywords": keywords} +def test_simple_ghost(driver, program, basis, keywords, hene): + resi = {"molecule": hene, "driver": driver, "model": {"method": "hf", "basis": basis}, "keywords": keywords} if program == "gamess": with pytest.raises(qcng.exceptions.InputError) as e: @@ -40,7 +49,7 @@ res = qcng.compute(resi, program, raise_error=True, return_dict=True) - assert res["driver"] == "energy" + assert res["driver"] == driver assert "provenance" in res assert res["success"] is True @@ -50,7 +59,21 @@ assert compare_values(0.0, res["properties"]["nuclear_repulsion_energy"], atol=atol, label="nre") assert compare(32, res["properties"]["calcinfo_nbasis"], label="nbas") assert compare(32, res["properties"]["calcinfo_nmo"], label="nmo") - assert compare_values(-2.8557143339397539, res["return_result"], atol=atol, label="ene") + + ene = -2.8557143339397539 + grad = np.array( + [ + 0.000004317771, + 0.000000000000, + 0.000000000000, + -0.000004317771, + 0.000000000000, + 0.000000000000, + ] + ) + retres = {"energy": ene, "gradient": grad}[driver] + assert compare_values(ene, res["properties"]["return_energy"], atol=atol, label="ene") + assert compare_values(retres, res["return_result"], atol=atol, label="return") bimol_ref = {} @@ -66,8 +89,58 @@ bimol_ref["eneyne"]["mp2"] = dict( zip(dmm, [-155.3738614073, -78.2942587466, -77.0760547257, -78.2957592762, -77.0762583352]) ) +# fmt: off +bimol_ref["eneyne"]["mp2_gradient"] = dict(zip(dmm, [ + np.array([ + 0.000000000000, -0.000593266109, -0.000461056876, + -0.000000000000, 0.000593266109, -0.000461056876, + -0.001061612039, 0.001517372852, 0.000162497702, + 0.001061612039, 0.001517372852, 0.000162497702, + 0.001061612039, -0.001517372852, 0.000162497702, + -0.001061612039, -0.001517372852, 0.000162497702, + 0.000000000000, 0.000000000000, -0.017632146748, + 0.000000000000, 0.000000000000, 0.018013978833, + -0.000000000000, 0.000000000000, 0.001709075893, + 0.000000000000, 0.000000000000, -0.001818785037]).reshape(-1, 3), + np.array([ + 0.000000000000, -0.002441448034, 0.000180001772, + -0.000000000000, 0.002441448034, 0.000180001772, + -0.000901391196, 0.001441168636, -0.000090000886, + 0.000901391196, 0.001441168636, -0.000090000886, + 0.000901391196, -0.001441168636, -0.000090000886, + -0.000901391196, -0.001441168636, -0.000090000886]).reshape(-1, 3), + np.array([ + 0.000000000000, 0.000000000000, -0.016477969697, + 0.000000000000, 0.000000000000, 0.018475631244, + 0.000000000000, 0.000000000000, -0.000114435361, + 0.000000000000, 0.000000000000, -0.001883226187]).reshape(-1, 3), + np.array([ + 0.000000000000, -0.001485687659, -0.000311350386, + -0.000000000000, 0.001485687659, -0.000311350386, + -0.000964480529, 0.001442449761, -0.000001369355, + 0.000964480529, 0.001442449761, -0.000001369355, + 0.000964480529, -0.001442449761, -0.000001369355, + -0.000964480529, -0.001442449761, -0.000001369355, + -0.000000000000, 0.000000000000, 0.000120621150, + -0.000000000000, 0.000000000000, 0.000279898955, + 0.000000000000, 0.000000000000, 0.000207604252, + -0.000000000000, 0.000000000000, 0.000020053834]).reshape(-1, 3), + np.array([ + 0.000000000000, -0.000012504382, -0.000103233192, + -0.000000000000, 0.000012504382, -0.000103233192, + -0.000000589727, -0.000001580375, -0.000009047576, + 0.000000589727, -0.000001580375, -0.000009047576, + 0.000000589727, 0.000001580375, -0.000009047576, + -0.000000589727, 0.000001580375, -0.000009047576, + 0.000000000000, 0.000000000000, -0.016334419378, + -0.000000000000, 0.000000000000, 0.018457229773, + -0.000000000000, 0.000000000000, 0.000025489498, + 0.000000000000, 0.000000000000, -0.001905643204]).reshape(-1, 3), +])) +# fmt: on +@pytest.mark.parametrize("driver", ["energy", "gradient"]) @pytest.mark.parametrize("subject", dmm) @pytest.mark.parametrize( "qcprog, basis, keywords", @@ -93,15 +166,26 @@ ), ], ) -def test_tricky_ghost(qcprog, subject, basis, keywords): - kmol = qcel.models.Molecule(**eneyne_ne_qcschemamols()["eneyne"][subject]) +def test_tricky_ghost(driver, qcprog, subject, basis, keywords): + dmol = eneyne_ne_qcschemamols()["eneyne"][subject] + # Freeze the input orientation so that output arrays are aligned to input + # and all programs match gradient. + dmol["fix_com"] = True + dmol["fix_orientation"] = True + if qcprog == "nwchem" and subject in ["mA", "mB"]: + # NWChem symmetry detection uses a loose tolerance (0.01) that catches + # the monomers and symmetrizes them, belying the atoms_map=True arg + # to the in_mol vs. calc_mol aligner. Gradients don't change much + # w/symm geometry but enough that the symmetrizer must be defeated. + keywords["geometry__autosym"] = "1d-4" + kmol = qcel.models.Molecule(**dmol) ref = bimol_ref["eneyne"] assert len(kmol.symbols) == ref["natom"][subject] assert sum([int(at) for at in kmol.real]) == ref["nreal"][subject] atin = qcel.models.AtomicInput( - **{"molecule": kmol, "model": {"method": "mp2", "basis": basis}, "driver": "energy", "keywords": keywords} + **{"molecule": kmol, "model": {"method": "mp2", "basis": basis}, "driver": driver, "keywords": keywords} ) if qcprog == "gamess" and subject in ["mAgB", "gAmB"]: @@ -122,8 +206,12 @@ ref["nmo"][subject], atres.properties.calcinfo_nmo, label="nmo" ), f'nmo: {atres.properties.calcinfo_nmo} != {ref["nmo"][subject]}' assert compare_values( - ref["mp2"][subject], atres.return_result, atol=3.0e-6, label="ene" - ), f'ene: {atres.return_result} != {ref["mp2"][subject]}' + ref["mp2"][subject], atres.properties.return_energy, atol=3.0e-6, label="ene" + ), f'ene: {atres.properties.return_energy} != {ref["mp2"][subject]}' + retres = {"energy": ref["mp2"][subject], "gradient": ref["mp2_gradient"][subject]}[driver] + assert compare_values( + retres, atres.return_result, atol=3.0e-6, label="return" + ), f"return: {atres.return_result} != {retres}" pgline = { "cfour": r"Computational point group: (?P\w+)", diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_mrchem.py qcengine-0.26.0/qcengine/programs/tests/test_mrchem.py --- qcengine-0.23.0/qcengine/programs/tests/test_mrchem.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_mrchem.py 2022-11-30 16:26:08.000000000 +0000 @@ -17,6 +17,17 @@ ) +@pytest.fixture +def fh(): + return qcel.models.Molecule( + geometry=[[0.000000000000, 0.000000000000, -1.642850273986], [0.000000000000, 0.000000000000, 0.087149726014]], + symbols=["H", "F"], + fix_com=True, + fix_orientation=True, + fix_symmetry="c1", + ) + + @using("mrchem") def test_energy(h2o): mr_kws = { @@ -83,3 +94,46 @@ assert res["properties"]["calcinfo_nbeta"] == 5 assert res["properties"]["calcinfo_nmo"] == 10 assert compare_values([-3.766420e-07, 0.0, 0.720473], res["properties"]["scf_dipole_moment"], atol=1e-3) + + +@using("mrchem") +def test_gradient(fh): + mr_kws = { + "world_prec": 1.0e-3, + "world_size": 6, + } + + inp = qcel.models.AtomicInput( + molecule=fh, + driver="gradient", + model={ + "method": "BLYP", + }, + keywords=mr_kws, + ) + + res = qcng.compute(inp, "mrchem", raise_error=True, return_dict=True) + + # Make sure the calculation completed successfully + assert compare_values( + [ + 7.7720991261973e-05, + 0.0003374698961269812, + 0.01670678976631068, + -9.482132557890285e-05, + -0.00042524484271181696, + -0.06177621634278285, + ], + res["return_result"], + atol=1e-3, + ) + assert res["driver"] == "gradient" + assert "provenance" in res + assert res["success"] is True + + # Make sure the properties parsed correctly + assert compare_values(-100.48858973847459, res["properties"]["return_energy"], atol=1e-3) + assert res["properties"]["calcinfo_natom"] == 2 + assert res["properties"]["calcinfo_nalpha"] == 5 + assert res["properties"]["calcinfo_nbeta"] == 5 + assert res["properties"]["calcinfo_nmo"] == 10 diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_nwchem.py qcengine-0.26.0/qcengine/programs/tests/test_nwchem.py --- qcengine-0.23.0/qcengine/programs/tests/test_nwchem.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_nwchem.py 2022-11-30 16:26:08.000000000 +0000 @@ -335,3 +335,37 @@ assert result.success assert "convergence_failed" in result.extras["observed_errors"] assert result.extras["observed_errors"]["convergence_failed"]["keyword_updates"] == {keyword: init_iters * 4} + + +@using("nwchem") +def test_restart(nh2, tmpdir): + # Create a molecule that takes 5-8 steps for NWChem to relax it, + # but only run the relaxation for 4 steps + resi = { + "molecule": nh2, + "driver": "gradient", + "model": {"method": "b3lyp", "basis": "3-21g"}, + "keywords": {"dft__convergence__gradient": "1e-6", "dft__iterations": 4}, + "protocols": {"error_correction": {"default_policy": False}}, + "extras": {"allow_restarts": True}, + } + + # Run once: It should fail to converge + local_options = {"scratch_messy": True, "scratch_directory": str(tmpdir)} + result = qcng.compute( + resi, + "nwchem", + local_options=local_options, + raise_error=False, + ) + assert not result.success + assert "computation failed to converge" in str(result.error) + + # Run again: It should converge only if we start from the last geometry + result = qcng.compute( + resi, + "nwchem", + local_options=local_options, + raise_error=False, + ) + assert result.success diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_programs.py qcengine-0.26.0/qcengine/programs/tests/test_programs.py --- qcengine-0.23.0/qcengine/programs/tests/test_programs.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_programs.py 2022-11-30 16:26:08.000000000 +0000 @@ -188,13 +188,13 @@ } ret = qcng.compute(input_data, "mopac", raise_error=True) - assert ret.extras.keys() >= {"heat_of_formation", "energy_electronic", "dip_vec"} + assert ret.extras.keys() >= {"heat_of_formation", "dip_vec"} energy = pytest.approx(-0.08474117913025125, rel=1.0e-5) # Check gradient ret = qcng.compute(input_data, "mopac", raise_error=True) - assert ret.extras.keys() >= {"heat_of_formation", "energy_electronic", "dip_vec"} - assert np.linalg.norm(ret.return_result) == pytest.approx(0.03543560156912385, rel=1.0e-4) + assert ret.extras.keys() >= {"heat_of_formation", "dip_vec"} + assert np.linalg.norm(ret.return_result) == pytest.approx(0.03543560156912385, rel=3.0e-4) assert ret.properties.return_energy == energy # Check energy @@ -220,12 +220,12 @@ def test_random_failure_with_retries(failure_engine): failure_engine.iter_modes = ["random_error", "random_error", "random_error"] - ret = qcng.compute(failure_engine.get_job(), failure_engine.name, raise_error=False, local_options={"retries": 2}) + ret = qcng.compute(failure_engine.get_job(), failure_engine.name, raise_error=False, task_config={"retries": 2}) assert ret.input_data["provenance"]["retries"] == 2 assert ret.error.error_type == "random_error" failure_engine.iter_modes = ["random_error", "input_error"] - ret = qcng.compute(failure_engine.get_job(), failure_engine.name, raise_error=False, local_options={"retries": 4}) + ret = qcng.compute(failure_engine.get_job(), failure_engine.name, raise_error=False, task_config={"retries": 4}) assert ret.input_data["provenance"]["retries"] == 1 assert ret.error.error_type == "input_error" @@ -234,7 +234,7 @@ failure_engine.iter_modes = ["random_error", "pass"] failure_engine.ncalls = 0 - ret = qcng.compute(failure_engine.get_job(), failure_engine.name, raise_error=False, local_options={"retries": 1}) + ret = qcng.compute(failure_engine.get_job(), failure_engine.name, raise_error=False, task_config={"retries": 1}) assert ret.success, ret.error.error_message assert ret.provenance.retries == 1 diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_sdftd3.py qcengine-0.26.0/qcengine/programs/tests/test_sdftd3.py --- qcengine-0.23.0/qcengine/programs/tests/test_sdftd3.py 1970-01-01 00:00:00.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_sdftd3.py 2022-11-30 16:26:08.000000000 +0000 @@ -0,0 +1,201 @@ +""" +Testing for the DFT-D3 program harness. + +Most of the tests use mindless molecules for the diversity of element species +to test as much different interactions as possible. +""" + +import numpy as np +import pytest +import qcelemental as qcel + +import qcengine as qcng +from qcengine.testing import using + + +@using("s-dftd3") +def test_dftd3_task_b97m_m01(): + + thr = 1.0e-8 + + return_result = -0.05879001214961249 + + atomic_input = qcel.models.AtomicInput( + molecule=qcng.get_molecule("mindless-01"), + model={"method": "b97m"}, + driver="energy", + ) + + atomic_result = qcng.compute(atomic_input, "s-dftd3") + + print(atomic_result.return_result) + assert atomic_result.success + assert pytest.approx(atomic_result.return_result, abs=thr) == return_result + + +@using("s-dftd3") +@pytest.mark.parametrize( + "inp", + [ + pytest.param({"return_result": -0.024863196328457682, "level_hint": "d3bj"}), + pytest.param({"return_result": -0.011922614341086182, "level_hint": "d3zero"}), + pytest.param({"return_result": -0.054219891333201896, "level_hint": "d3mbj"}), + pytest.param({"return_result": -0.087100927341320660, "level_hint": "d3mzero"}), + pytest.param({"return_result": -0.014849063343059512, "level_hint": "d3op"}), + ], + ids=["d3bj", "d3zero", "d3mbj", "d3mzero", "d3op"], +) +def test_dftd3_task_pbe_m02(inp): + + # return to 1.0e-8 after https://github.com/MolSSI/QCEngine/issues/370 + thr = 1.0e-7 + + return_result = inp["return_result"] + + atomic_input = qcel.models.AtomicInput( + molecule=qcng.get_molecule("mindless-02"), + model={"method": "pbe"}, + keywords={"level_hint": inp["level_hint"]}, + driver="energy", + ) + + atomic_result = qcng.compute(atomic_input, "s-dftd3") + + assert atomic_result.success + assert pytest.approx(atomic_result.return_result, abs=thr) == return_result + + +@using("s-dftd3") +def test_dftd3_task_tpss_m02(): + + thr = 1.0e-8 + + return_result = np.array( + [ + [-1.38459808e-04, -3.39780053e-04, +6.63854384e-06], + [-8.49987303e-04, -1.75644402e-05, +6.92859669e-04], + [-1.87640802e-05, +3.48459127e-04, +3.58802840e-04], + [-1.94903751e-04, -1.27629117e-04, -6.58938185e-04], + [+8.81075012e-05, +6.41604548e-04, +2.74678977e-04], + [-1.64367324e-04, -2.16197141e-04, -3.84148192e-04], + [-1.12458629e-04, -2.56329049e-04, +4.98979702e-05], + [-1.52971321e-05, +3.02144394e-05, +1.36451189e-04], + [+6.66230167e-04, -8.99527309e-05, +5.62299622e-04], + [+3.09620572e-05, -1.73604390e-05, -4.31385583e-04], + [-1.30132201e-04, -6.02965004e-04, +2.06807277e-04], + [-6.34318034e-04, +3.32680767e-04, -5.16509587e-04], + [-1.90415533e-04, +4.13192949e-04, -1.76537818e-04], + [+2.65591351e-04, -1.50550857e-04, +1.39890439e-04], + [-3.56346859e-05, -3.56851554e-04, +1.11332319e-04], + [+1.43384741e-03, +4.09028554e-04, -3.72139482e-04], + ] + ) + + atomic_input = qcel.models.AtomicInput( + molecule=qcng.get_molecule("mindless-02"), + model={"method": ""}, + keywords={ + "level_hint": "d3mbj", + "params_tweaks": { + "s8": 1.76596355, + "a1": 0.42822303, + "a2": 4.54257102, + }, + }, + driver="gradient", + ) + + atomic_result = qcng.compute(atomic_input, "s-dftd3") + + assert atomic_result.success + assert pytest.approx(atomic_result.return_result, abs=thr) == return_result + + +@using("s-dftd3") +def test_dftd3_task_r2scan_m03(): + + thr = 1.0e-8 + + return_result = np.array( + [ + [-9.15721221e-06, -8.18139252e-06, -6.04628002e-05], + [+2.63353857e-05, -5.74347326e-05, +6.43925910e-05], + [-2.99422439e-05, +1.88531187e-05, +3.80203831e-05], + [-1.05590494e-05, -6.00459729e-05, +3.93481945e-05], + [+1.59600548e-05, +3.66166973e-05, -2.69939628e-05], + [-7.21060928e-05, +1.35991320e-05, -3.71000739e-05], + [-9.01933781e-06, -3.41989101e-05, -4.92317946e-05], + [-2.38625512e-06, -4.42678339e-05, -1.95513968e-05], + [-3.09663159e-05, +3.41418638e-05, +2.51926884e-05], + [+5.60572318e-06, -1.06356845e-05, -3.91159008e-05], + [+7.73090102e-05, +2.75681060e-05, +2.02933984e-05], + [-3.23109274e-05, +5.39319105e-05, -1.44309772e-04], + [-4.05785623e-05, +5.03251549e-05, +3.92193348e-05], + [+8.46365844e-06, -3.35282588e-05, +3.76937643e-05], + [+1.04861677e-04, -2.99444252e-05, +8.20822571e-05], + [-1.50951292e-06, +4.32012272e-05, +3.05230899e-05], + ] + ) + + atomic_input = qcel.models.AtomicInput( + molecule=qcng.get_molecule("mindless-03"), + keywords={"level_hint": "d3bj"}, + driver="gradient", + model={"method": "r2scan"}, + ) + + atomic_result = qcng.compute(atomic_input, "s-dftd3") + + assert atomic_result.success + assert pytest.approx(return_result, abs=thr) == atomic_result.return_result + assert pytest.approx(atomic_result.return_result, abs=thr) == return_result + + +@using("s-dftd3") +def test_dftd3_task_unknown_method(): + + atomic_input = qcel.models.AtomicInput( + molecule=qcng.get_molecule("water"), + keywords={"level_hint": "d3zero"}, + model={"method": "non-existent-method"}, + driver="energy", + ) + error = qcel.models.ComputeError( + error_type="input error", error_message="No entry for 'non-existent-method' present" + ) + + atomic_result = qcng.compute(atomic_input, "s-dftd3") + + print(atomic_result.error) + assert not atomic_result.success + assert atomic_result.error == error + + +@using("s-dftd3") +def test_dftd3_task_cold_fusion(): + + atomic_input = qcel.models.AtomicInput( + molecule={ + "symbols": ["Li", "Li", "Li", "Li"], + "geometry": [ + [-1.58746019997201, +1.58746019997201, +1.58746019997201], + [-1.58746019997201, +1.58746019997201, +1.58746019997201], + [-1.58746019997201, -1.58746019997201, -1.58746019997201], + [+1.58746019997201, +1.58746019997201, -1.58746019997201], + ], + "validated": True, # Force a nuclear fusion input, to make dftd3 fail + }, + keywords={"level_hint": "d3zero"}, + model={"method": "pbe"}, + driver="energy", + ) + error = qcel.models.ComputeError( + error_type="input error", + error_message="Too close interatomic distances found", + ) + + atomic_result = qcng.compute(atomic_input, "s-dftd3") + + print(atomic_result.error) + assert not atomic_result.success + assert atomic_result.error == error diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_standard_suite.py qcengine-0.26.0/qcengine/programs/tests/test_standard_suite.py --- qcengine-0.23.0/qcengine/programs/tests/test_standard_suite.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_standard_suite.py 2022-11-30 16:26:08.000000000 +0000 @@ -27,7 +27,7 @@ # # * (E4) Calculation the QC program thinks it can run but we know better -- `return_result` wrong. # example: NWChem ROHF MP2 that's missing singles contribution -# handle: add "wrong" typle to test like `_w1` +# handle: add "wrong" tuple to test like `_w1` # result: runner checks assertion fails at expected result and triggers pytest.xfail @@ -58,7 +58,7 @@ _q1 = (qcng.exceptions.InputError, "unknown SCFTYPE", "no ROHF reference for NWChem hand-coded MP2.") _q2 = (qcng.exceptions.InputError, "CCTYP IS PROGRAMMED ONLY FOR SCFTYP=RHF OR ROHF", "no UHF CC in GAMESS.") _q3 = (qcng.exceptions.InputError, "ccsd: nopen is not zero", "no non-RHF reference for NWChem hand-coded CC.") -_q6 = (qcng.exceptions.InputError, "Only RHF/UHF Hessians are currently implemented.", "no ROHF Hessian for Psi4 HF.") +_q6 = (qcng.exceptions.InputError, r"Only RHF/UHF(/RKS|) Hessians are currently implemented.", "no ROHF Hessian for Psi4 HF.") _q45 = (qcng.exceptions.UnknownError, "non-Abelian symmetry not permitted", "temporary excuse of failure. I think NWChem has fixed upstream.") _w1 = ("MP2 CORRELATION ENERGY", "nonstandard answer: NWChem TCE MP2 doesn't report singles (affects ROHF)") @@ -412,15 +412,15 @@ pytest.param({"call": "gamess", "reference": "rohf", "fcae": "ae", "keywords": {"contrl__scftyp": "rohf", "ccinp__ncore": 0, "ccinp__maxcc": 50}, }, id="ccsd rohf ae: gamess", marks=using("gamess")), pytest.param({"call": "nwchem", "reference": "rohf", "fcae": "ae", "keywords": {"qc_module": "tce", "scf__rohf": True}, }, id="ccsd rohf ae: nwchem-tce", marks=using("nwchem")), pytest.param({"call": "nwchem", "reference": "rohf", "fcae": "ae", "keywords": {"scf__rohf": True}, "error": {0: _q3 }}, id="ccsd rohf ae: nwchem", marks=using("nwchem")), - pytest.param({"call": "psi4", "reference": "rohf", "fcae": "ae", "keywords": {"reference": "rohf", "qc_module": "ccenergy"}, }, id="ccsd rohf ae: psi4", marks=using("psi4_mp2qcsk")), # TODO another way for ccenergy? (fc, too) + pytest.param({"call": "psi4", "reference": "rohf", "fcae": "ae", "sdsc": "sd", "keywords": {"reference": "rohf", "qc_module": "ccenergy"}, }, id="ccsd rohf ae: psi4", marks=using("psi4_mp2qcsk")), # TODO another way for ccenergy? (fc, too) - pytest.param({"call": "cfour", "reference": "rohf", "fcae": "fc", "keywords": {"dropmo": [1], "REFerence": "roHF", "SCF_CONV": 12, "CC_CONV": 12, "orbitals": 0, "cc_program": "vcc", "print": 2}, }, id="ccsd rohf fc: cfour-vcc", marks=using("cfour")), - pytest.param({"call": "cfour", "reference": "rohf", "fcae": "fc", "keywords": {"dropmo": [1], "REFerence": "roHF", "SCF_CONV": 12, "CC_CONV": 12, "orbitals": 0, "cc_program": "ecc"}, }, id="ccsd rohf fc: cfour-ecc", marks=using("cfour")), - # pytest.param({"call": "cfour", "reference": "rohf", "fcae": "fc", "keywords": {"dropmo": 1, "reference": "rohf", "orbitals": 0}, }, id="ccsd rohf fc: cfour", marks=using("cfour")), - pytest.param({"call": "gamess", "reference": "rohf", "fcae": "fc", "keywords": {"contrl__scftyp": "rohf", "ccinp__iconv": 9, "scf__conv": 9}, "wrong": {0: _w2 }}, id="ccsd rohf fc: gamess", marks=using("gamess")), - pytest.param({"call": "nwchem", "reference": "rohf", "fcae": "fc", "keywords": {"tce__freeze": 1, "qc_module": "tce", "scf__rohf": True}, }, id="ccsd rohf fc: nwchem-tce", marks=using("nwchem")), - pytest.param({"call": "nwchem", "reference": "rohf", "fcae": "fc", "keywords": {"ccsd__freeze": 1, "scf__rohf": True}, "error": {0: _q3 }}, id="ccsd rohf fc: nwchem", marks=using("nwchem")), - pytest.param({"call": "psi4", "reference": "rohf", "fcae": "fc", "keywords": {"e_convergence": 8, "r_convergence": 7, "freeze_core": True, "reference": "rohf", "qc_module": "ccenergy"}, }, id="ccsd rohf fc: psi4", marks=using("psi4_mp2qcsk")), + pytest.param({"call": "cfour", "reference": "rohf", "fcae": "fc", "sdsc": "sd", "keywords": {"dropmo": [1], "REFerence": "roHF", "SCF_CONV": 12, "CC_CONV": 12, "orbitals": 0, "cc_program": "vcc", "print": 2}, }, id="ccsd rohf fc: cfour-vcc", marks=using("cfour")), + pytest.param({"call": "cfour", "reference": "rohf", "fcae": "fc", "sdsc": "sd", "keywords": {"dropmo": [1], "REFerence": "roHF", "SCF_CONV": 12, "CC_CONV": 12, "orbitals": 0, "cc_program": "ecc"}, }, id="ccsd rohf fc: cfour-ecc", marks=using("cfour")), + # pytest.param({"call": "cfour", "reference": "rohf", "fcae": "fc", "sdsc": "sd", "keywords": {"dropmo": 1, "reference": "rohf", "orbitals": 0}, }, id="ccsd rohf fc: cfour", marks=using("cfour")), + pytest.param({"call": "gamess", "reference": "rohf", "fcae": "fc", "keywords": {"contrl__scftyp": "rohf", "ccinp__iconv": 9, "scf__conv": 9}, "wrong": {0: _w2 }}, id="ccsd rohf fc: gamess", marks=using("gamess")), + pytest.param({"call": "nwchem", "reference": "rohf", "fcae": "fc", "sdsc": "sd", "keywords": {"tce__freeze": 1, "qc_module": "tce", "scf__rohf": True}, }, id="ccsd rohf fc: nwchem-tce", marks=using("nwchem")), + pytest.param({"call": "nwchem", "reference": "rohf", "fcae": "fc", "keywords": {"ccsd__freeze": 1, "scf__rohf": True}, "error": {0: _q3 }}, id="ccsd rohf fc: nwchem", marks=using("nwchem")), + pytest.param({"call": "psi4", "reference": "rohf", "fcae": "fc", "sdsc": "sd", "keywords": {"e_convergence": 8, "r_convergence": 7, "freeze_core": True, "reference": "rohf", "qc_module": "ccenergy"}, }, id="ccsd rohf fc: psi4", marks=using("psi4_mp2qcsk")), # yapf: enable ], ) diff -Nru qcengine-0.23.0/qcengine/programs/tests/test_turbomole.py qcengine-0.26.0/qcengine/programs/tests/test_turbomole.py --- qcengine-0.23.0/qcengine/programs/tests/test_turbomole.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/tests/test_turbomole.py 2022-11-30 16:26:08.000000000 +0000 @@ -4,6 +4,7 @@ from qcelemental.testing import compare_values import qcengine as qcng +from qcengine.programs.turbomole.harvester import parse_hessian from qcengine.testing import using @@ -170,3 +171,35 @@ assert res.success is True assert res.properties.return_energy assert_hessian(H, ref_eigvals, size) + + +@pytest.fixture +def h2o_nprhessian(): + return """$nprhessian + 1 1 0.6142699252 -0.0000000000 0.0000000000 -0.3071349626 -0.2479448514 + 1 2 -0.0000000000 -0.3071349626 0.2479448514 -0.0000000000 + 2 1 -0.0000000000 0.4365036678 0.0000000000 -0.1885017686 -0.2182518339 + 2 2 -0.0000000000 0.1885017686 -0.2182518339 0.0000000000 + 3 1 0.0000000000 0.0000000000 -0.0000524175 -0.0000000000 -0.0000000000 + 3 2 0.0000262088 -0.0000000000 0.0000000000 0.0000262088 + 4 1 -0.3071349626 -0.1885017686 -0.0000000000 0.3389423895 0.2182233100 + 4 2 0.0000000000 -0.0318074269 -0.0297215414 -0.0000000000 + 5 1 -0.2479448514 -0.2182518339 -0.0000000000 0.2182233100 0.2092172237 + 5 2 0.0000000000 0.0297215414 0.0090346102 0.0000000000 + 6 1 -0.0000000000 -0.0000000000 0.0000262088 0.0000000000 0.0000000000 + 6 2 -0.0000125560 -0.0000000000 0.0000000000 -0.0000136528 + 7 1 -0.3071349626 0.1885017686 -0.0000000000 -0.0318074269 0.0297215414 + 7 2 -0.0000000000 0.3389423895 -0.2182233100 0.0000000000 + 8 1 0.2479448514 -0.2182518339 0.0000000000 -0.0297215414 0.0090346102 + 8 2 0.0000000000 -0.2182233100 0.2092172237 -0.0000000000 + 9 1 -0.0000000000 0.0000000000 0.0000262088 -0.0000000000 0.0000000000 + 9 2 -0.0000136528 0.0000000000 -0.0000000000 -0.0000125560 + $end""" + + +def test_turbomole_parse_hessian(h2o_nprhessian): + """Test parsing of unproject Turbomole Hessian for water.""" + hessian = parse_hessian(h2o_nprhessian) + assert hessian.shape == (9, 9) + eigvals, _ = np.linalg.eigh(hessian) + assert eigvals[-1] == pytest.approx(1.12157030e00) diff -Nru qcengine-0.23.0/qcengine/programs/turbomole/harvester.py qcengine-0.26.0/qcengine/programs/turbomole/harvester.py --- qcengine-0.23.0/qcengine/programs/turbomole/harvester.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/turbomole/harvester.py 2022-11-30 16:26:08.000000000 +0000 @@ -1,4 +1,4 @@ -import itertools as it +from math import sqrt import re from decimal import Decimal @@ -12,9 +12,6 @@ matches = getattr(with_float, method)(text) if method == "search": - # groups = matches.groups() - # if len(groups) == 1: - # groups = ("", groups[0]) matches = [matches.groups()] return [(method, Decimal(energy)) for method, energy in matches] @@ -83,35 +80,19 @@ return grad -def parse_nprhessian(nprhessian): - lines = [l.strip() for l in nprhessian.strip().split("\n")] - assert lines[0] == "$nprhessian" - assert lines[-1] == "$end" - - hess_lines = [line.split()[2:] for line in lines[1:-1]] - atom_num = int(lines[-2].split()[0]) - hessian = np.array(list(it.chain(*hess_lines)), dtype=float) - hessian = hessian.reshape(atom_num, atom_num) - - return hessian - - -def parse_hessian(hessian, size): - lines = [l.strip() for l in hessian.strip().split("\n")] - assert lines[0] == "$hessian" - assert lines[-1] == "$end" - - hess_lines = list() - for line in lines[1:-1]: - line = line.strip() - if line == "$hessian (projected)": - break - hess_lines.append(line.split()[2:]) - else: - raise Exception("'$hessian (projected)' line was not encountered!") - - hessian = np.array(list(it.chain(*hess_lines)), dtype=float) - hessian = hessian.reshape(size, size) +def parse_hessian(hessian): + first_hessian = hessian.strip().split("$")[1] + split = first_hessian.split() + hess_type = split.pop(0) + assert hess_type in ("nprhessian", "hessian") + + def is_float(str_): + return "." in str_ + + hess_items = [item for item in split if is_float(item)] + coord_num = int(sqrt(len(hess_items))) + assert coord_num**2 == len(hess_items) + hessian = np.array(hess_items, dtype=float).reshape(-1, coord_num) return hessian @@ -131,13 +112,13 @@ gradient = parse_gradient(outfiles["gradient"]) qcvars["N ATOMS"] = gradient.size // 3 - hessian = None - if "nprhessian" in outfiles: - hessian = parse_nprhessian(outfiles["nprhessian"]) - if "hessian" in outfiles: - size = input_model.geometry.size - hessian = parse_hessian(outfiles["hessian"], size) - if hessian: + # Prefer unprojected 'nprhessian' over projected 'hessian'. + hessian_text = outfiles.get("nprhessian", outfiles.get("hessian", None)) + + if hessian_text is not None: + hessian = parse_hessian(hessian_text) qcvars["N ATOMS"] = hessian.shape[0] // 3 + else: + hessian = None return qcvars, gradient, hessian diff -Nru qcengine-0.23.0/qcengine/programs/turbomole/runner.py qcengine-0.26.0/qcengine/programs/turbomole/runner.py --- qcengine-0.23.0/qcengine/programs/turbomole/runner.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/turbomole/runner.py 2022-11-30 16:26:08.000000000 +0000 @@ -210,7 +210,7 @@ if input_model.driver.derivative_int() == 2: freq_command = "NumForce -level cc2" if ricc2_calculation else "aoforce" # NumForce seems to ignore the nprhessian command and will always - # write to hessian + # write to unprojected and projected Hessian to "hessian". hessian_outfile = "hessian" if ricc2_calculation else "nprhessian" commands.append(freq_command) # Add some keywords to the control file diff -Nru qcengine-0.23.0/qcengine/programs/util/ao_reordering.py qcengine-0.26.0/qcengine/programs/util/ao_reordering.py --- qcengine-0.23.0/qcengine/programs/util/ao_reordering.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/programs/util/ao_reordering.py 2022-11-30 16:26:08.000000000 +0000 @@ -74,7 +74,9 @@ milled = {} for k, v in qcvars.items(): - if k.endswith("GRADIENT"): + if isinstance(v, str) and v == "KnownMissing": + milled[k] = v + elif k.endswith("GRADIENT"): milled[k] = mill.align_gradient(v) elif k.endswith("HESSIAN"): milled[k] = mill.align_hessian(v) diff -Nru qcengine-0.23.0/qcengine/testing.py qcengine-0.26.0/qcengine/testing.py --- qcengine-0.23.0/qcengine/testing.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/testing.py 2022-11-30 16:26:08.000000000 +0000 @@ -157,6 +157,7 @@ "dftd3": which("dftd3", return_bool=True), "dftd3_321": is_program_new_enough("dftd3", "3.2.1"), "dftd4": which_import("dftd4", return_bool=True), + "s-dftd3": which_import("dftd3", return_bool=True), "qcore": is_program_new_enough("qcore", "0.8.9"), "gamess": which("rungms", return_bool=True), "mctc-gcp": is_program_new_enough("mctc-gcp", "2.3.0"), diff -Nru qcengine-0.23.0/qcengine/tests/test_config.py qcengine-0.26.0/qcengine/tests/test_config.py --- qcengine-0.23.0/qcengine/tests/test_config.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/tests/test_config.py 2022-11-30 16:26:08.000000000 +0000 @@ -140,26 +140,26 @@ def test_config_local_ncores(opt_state_basic): - config = qcng.config.get_config(hostname="something", local_options={"ncores": 10, "retries": 3}) + config = qcng.config.get_config(hostname="something", task_config={"ncores": 10, "retries": 3}) assert config.ncores == 10 assert config.memory == 4 assert config.retries == 3 def test_config_local_njobs(opt_state_basic): - config = qcng.config.get_config(hostname="something", local_options={"jobs_per_node": 5}) + config = qcng.config.get_config(hostname="something", task_config={"jobs_per_node": 5}) assert config.ncores == 1 assert pytest.approx(config.memory) == 0.8 def test_config_local_njob_ncore(opt_state_basic): - config = qcng.config.get_config(hostname="something", local_options={"jobs_per_node": 3, "ncores": 1}) + config = qcng.config.get_config(hostname="something", task_config={"jobs_per_node": 3, "ncores": 1}) assert config.ncores == 1 assert pytest.approx(config.memory, 0.1) == 1.33 def test_config_local_njob_ncore_plus_memory(opt_state_basic): - config = qcng.config.get_config(hostname="something", local_options={"jobs_per_node": 3, "ncores": 1, "memory": 6}) + config = qcng.config.get_config(hostname="something", task_config={"jobs_per_node": 3, "ncores": 1, "memory": 6}) assert config.ncores == 1 assert pytest.approx(config.memory, 0.1) == 6 @@ -167,7 +167,7 @@ def test_config_local_nnodes(opt_state_basic): # Give a warning that mentions that mpirun is needed if you define a multi-node task with pytest.raises(ValueError) as exc: - qcng.config.get_config(hostname="something", local_options={"nnodes": 10}) + qcng.config.get_config(hostname="something", task_config={"nnodes": 10}) assert "https://qcengine.readthedocs.io/en/stable/environment.html" in str(exc.value) # Test with an MPI run command @@ -175,7 +175,7 @@ "nnodes": 4, "mpiexec_command": "mpirun -n {total_ranks} -N {ranks_per_node} --cpus-per-slot {cores_per_rank}", } - config = qcng.config.get_config(hostname="something", local_options=local_options) + config = qcng.config.get_config(hostname="something", task_config=local_options) assert config.use_mpiexec assert config.mpiexec_command.startswith("mpirun") assert create_mpi_invocation("hello_world", config) == [ @@ -191,7 +191,7 @@ # Change the number of cores per rank local_options["cores_per_rank"] = 2 - config = qcng.config.get_config(hostname="something", local_options=local_options) + config = qcng.config.get_config(hostname="something", task_config=local_options) assert config.use_mpiexec assert config.mpiexec_command.startswith("mpirun") assert create_mpi_invocation("hello_world", config) == [ @@ -208,7 +208,7 @@ def test_config_validation(opt_state_basic): with pytest.raises(pydantic.ValidationError): - config = qcng.config.get_config(hostname="something", local_options={"bad": 10}) + config = qcng.config.get_config(hostname="something", task_config={"bad": 10}) def test_global_repr(): @@ -222,7 +222,7 @@ assert config.ncores == 24 assert config.nnodes == 1 - config = qcng.config.get_config(hostname="bn1", local_options={"nnodes": 2}) + config = qcng.config.get_config(hostname="bn1", task_config={"nnodes": 2}) assert config.use_mpiexec assert config.ncores == 24 assert config.nnodes == 2 diff -Nru qcengine-0.23.0/qcengine/tests/test_harness_canonical.py qcengine-0.26.0/qcengine/tests/test_harness_canonical.py --- qcengine-0.23.0/qcengine/tests/test_harness_canonical.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/tests/test_harness_canonical.py 2022-11-30 16:26:08.000000000 +0000 @@ -80,7 +80,7 @@ inp = AtomicInput( molecule=molecule, driver="gradient", model=model, extras={"mytag": "something"}, keywords=keywords ) - if program in ["adcc", "mrchem"]: + if program in ["adcc"]: with pytest.raises(qcng.exceptions.InputError) as e: qcng.compute(inp, program, raise_error=True) diff -Nru qcengine-0.23.0/qcengine/tests/test_procedures.py qcengine-0.26.0/qcengine/tests/test_procedures.py --- qcengine-0.23.0/qcengine/tests/test_procedures.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/tests/test_procedures.py 2022-11-30 16:26:08.000000000 +0000 @@ -3,7 +3,7 @@ """ import pytest -from qcelemental.models import DriverEnum, OptimizationInput +from qcelemental.models import DriverEnum, OptimizationInput, FailedOperation from qcelemental.models.common_models import Model from qcelemental.models.procedures import OptimizationSpecification, QCInputSpecification, TDKeywords, TorsionDriveInput @@ -48,7 +48,8 @@ # Check keywords passing for single in ret.trajectory: assert "scf_properties" in single.keywords - assert "WIBERG_LOWDIN_INDICES" in single.extras["qcvars"] + assert "WIBERG_LOWDIN_INDICES" in single.extras["qcvars"] or "WIBERG LOWDIN INDICES" in single.extras["qcvars"] + # TODO: old WIBERG qcvar used underscore; new one uses space. covering bases here but remove someday @using("psi4") @@ -100,6 +101,23 @@ assert "All criteria matched" in ret.stdout +@using("psi4") +@using("berny") +def test_berny_failed_gradient_computation(input_data): + + input_data["initial_molecule"] = qcng.get_molecule("water") + input_data["input_specification"]["model"] = {"method": "HF", "basis": "sto-3g"} + input_data["input_specification"]["keywords"] = {"badpsi4key": "badpsi4value"} + input_data["keywords"]["program"] = "psi4" + + input_data = OptimizationInput(**input_data) + + ret = qcng.compute_procedure(input_data, "berny", raise_error=False) + assert isinstance(ret, FailedOperation) + assert ret.success is False + assert ret.error.error_type == qcng.exceptions.InputError.error_type + + @using("geometric") @using("rdkit") def test_geometric_rdkit_error(input_data): @@ -135,7 +153,6 @@ @using("geometric") -@using("rdkit") def test_geometric_retries(failure_engine, input_data): failure_engine.iter_modes = ["random_error", "pass", "random_error", "random_error", "pass"] # Iter 1 # Iter 2 @@ -147,10 +164,11 @@ } input_data["input_specification"]["model"] = {"method": "something"} input_data["keywords"]["program"] = failure_engine.name + input_data["keywords"]["coordsys"] = "cart" # needed by geometric v1.0 to play nicely with failure_engine input_data = OptimizationInput(**input_data) - ret = qcng.compute_procedure(input_data, "geometric", local_options={"ncores": 13}, raise_error=True) + ret = qcng.compute_procedure(input_data, "geometric", task_config={"ncores": 13}, raise_error=True) assert ret.success is True assert ret.trajectory[0].provenance.retries == 1 assert ret.trajectory[0].provenance.ncores == 13 @@ -160,7 +178,7 @@ # Ensure we still fail failure_engine.iter_modes = ["random_error", "pass", "random_error", "random_error", "pass"] # Iter 1 # Iter 2 - ret = qcng.compute_procedure(input_data, "geometric", local_options={"ncores": 13, "retries": 1}) + ret = qcng.compute_procedure(input_data, "geometric", task_config={"ncores": 13, "retries": 1}) assert ret.success is False assert ret.input_data["trajectory"][0]["provenance"]["retries"] == 1 assert len(ret.input_data["trajectory"]) == 2 @@ -194,7 +212,7 @@ pytest.param( "mopac", {"method": "PM6"}, - [1.7927843431811934, 2.893333237502448, 107.60441967992045], + [1.793052302291527, 2.893333237502448, 107.57254391453196], marks=using("mopac"), ), pytest.param( @@ -299,8 +317,8 @@ optimization_spec=OptimizationSpecification( procedure="geomeTRIC", keywords={ - "coordsys": "dlc", - "maxiter": 300, + "coordsys": "tric", + "maxiter": 500, "program": "rdkit", }, ), @@ -329,3 +347,29 @@ assert ret.optimization_history["180"][0].trajectory[0].provenance.creator.lower() == "rdkit" assert ret.stdout == "All optimizations converged at lowest energy. Job Finished!\n" + + +@using("mrchem") +@pytest.mark.parametrize( + "optimizer", + [ + pytest.param("geometric", marks=using("geometric")), + pytest.param("optking", marks=using("optking")), + pytest.param("berny", marks=using("berny")), + ], +) +def test_optimization_mrchem(input_data, optimizer): + + input_data["initial_molecule"] = qcng.get_molecule("hydrogen") + input_data["input_specification"]["model"] = {"method": "HF"} + input_data["input_specification"]["keywords"] = {"world_prec": 1.0e-4} + input_data["keywords"]["program"] = "mrchem" + + input_data = OptimizationInput(**input_data) + + ret = qcng.compute_procedure(input_data, optimizer, raise_error=True) + assert 10 > len(ret.trajectory) > 1 + + assert pytest.approx(ret.final_molecule.measure([0, 1]), 1.0e-3) == 1.3860734486984705 + assert ret.provenance.creator.lower() == optimizer + assert ret.trajectory[0].provenance.creator.lower() == "mrchem" diff -Nru qcengine-0.23.0/qcengine/util.py qcengine-0.26.0/qcengine/util.py --- qcengine-0.23.0/qcengine/util.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/util.py 2022-11-30 16:26:08.000000000 +0000 @@ -18,8 +18,8 @@ from threading import Thread from typing import Any, BinaryIO, Dict, List, Optional, TextIO, Tuple, Union -from pydantic import ValidationError -from qcelemental.models import FailedOperation +from pydantic import BaseModel, ValidationError +from qcelemental.models import AtomicResult, FailedOperation, OptimizationResult from qcengine.config import TaskConfig @@ -54,7 +54,7 @@ return command -def model_wrapper(input_data: Dict[str, Any], model: "BaseModel") -> "BaseModel": +def model_wrapper(input_data: Dict[str, Any], model: BaseModel) -> BaseModel: """ Wrap input data in the given model, or return a controlled error """ @@ -142,17 +142,23 @@ def handle_output_metadata( - output_data: Union[Dict[str, Any], "BaseModel"], + output_data: Union[Dict[str, Any], "AtomicResult", "OptimizationResult", "FailedOperation"], metadata: Dict[str, Any], raise_error: bool = False, return_dict: bool = True, -) -> Union[Dict[str, Any], "BaseModel"]: +) -> Union[Dict[str, Any], "AtomicResult", "OptimizationResult", "FailedOperation"]: """ Fuses general metadata and output together. + Parameters: + output_data: The original output object to be fused with metadata + metadata: Metadata produced by the compute_wrapper context manager + raise_error: Raise an exception if errors exist (True) or return FailedOperation (False) + return_dict: Return dictionary or object representation of data + Returns ------- - result : dict or pydantic.models.AtomicResult + result : AtomicResult, OptimizationResult, FailedOperation, or dict representation of any one. Output type depends on return_dict or a dict if an error was generated in model construction """ @@ -596,7 +602,9 @@ for fl, content in infiles.items(): omode = "wb" if fl in as_binary else "w" filename = lwd / fl - with open(filename, omode) as fp: + if filename.parent != lwd: + filename.parent.mkdir(parents=True, exist_ok=True) + with filename.open(omode) as fp: fp.write(content) LOGGER.info(f"... Writing ({omode}): {filename}") diff -Nru qcengine-0.23.0/qcengine/_version.py qcengine-0.26.0/qcengine/_version.py --- qcengine-0.23.0/qcengine/_version.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/qcengine/_version.py 2022-11-30 16:26:08.000000000 +0000 @@ -21,9 +21,9 @@ # setup.py/versioneer.py will grep for the variable names, so they must # each be defined on a line of their own. _version.py will just call # get_keywords(). - git_refnames = " (tag: v0.23.0)" - git_full = "f9e161f33ec4eab9544ff2c060125a4037b83ff2" - git_date = "2022-03-14 09:57:23 -0700" + git_refnames = " (tag: v0.26.0)" + git_full = "c68b54709b7a4c11a644cb4f8e56c606944617d9" + git_date = "2022-11-30 11:26:08 -0500" keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} return keywords diff -Nru qcengine-0.23.0/README.md qcengine-0.26.0/README.md --- qcengine-0.23.0/README.md 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/README.md 2022-11-30 16:26:08.000000000 +0000 @@ -3,7 +3,7 @@ [![Travis build](https://img.shields.io/travis/MolSSI/QCEngine/master.svg?logo=linux&logoColor=white)](https://travis-ci.org/MolSSI/QCEngine) [![codecov](https://img.shields.io/codecov/c/github/MolSSI/QCEngine.svg?logo=Codecov&logoColor=white)](https://codecov.io/gh/MolSSI/QCEngine) [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/MolSSI/QCEngine.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/MolSSI/QCEngine/context:python) -[![Documentation Status](https://readthedocs.org/projects/qcengine/badge/?version=latest)](https://qcengine.readthedocs.io/en/latest/?badge=latest) +[![Documentation Status](https://img.shields.io/github/workflow/status/MolSSI/QCEngine/CI/master?label=docs&logo=readthedocs&logoColor=white)](http://docs.qcarchive.molssi.org/projects/qcengine/en/latest/) [![Conda (channel only)](https://img.shields.io/conda/vn/conda-forge/qcengine?color=blue&logo=anaconda&logoColor=white)](https://anaconda.org/conda-forge/qcengine) [![Chat on Slack](https://img.shields.io/badge/chat-on_slack-808493.svg?longCache=true&style=flat&logo=slack)](https://join.slack.com/t/qcarchive/shared_invite/enQtNDIzNTQ2OTExODk0LTE3MWI0YzBjNzVhNzczNDM0ZTA5MmQ1ODcxYTc0YTA1ZDQ2MTk1NDhlMjhjMmQ0YWYwOGMzYzJkZTM2NDlmOGM) diff -Nru qcengine-0.23.0/setup.py qcengine-0.26.0/setup.py --- qcengine-0.23.0/setup.py 2022-03-14 16:57:23.000000000 +0000 +++ qcengine-0.26.0/setup.py 2022-11-30 16:26:08.000000000 +0000 @@ -28,7 +28,7 @@ cmdclass=versioneer.get_cmdclass(), packages=setuptools.find_packages(), setup_requires=[] + pytest_runner, - install_requires=["pyyaml", "py-cpuinfo", "psutil", "qcelemental>=0.24.0", "pydantic>=1.8.2"], + install_requires=["pyyaml", "py-cpuinfo", "psutil", "qcelemental>=0.24.0,<0.26.0", "pydantic>=1.8.2"], entry_points={"console_scripts": ["qcengine=qcengine.cli:main"]}, extras_require={ "docs": [