Skip to content

[Feature] Add coupling to supported drivers  #84

@pablo-unzueta

Description

@pablo-unzueta

Coupling calculations are important for characterizing nonadiabatic seams. I see that you are using qcelemental.drivers to get all the types which sets up the terachem server. However, even if one specifies run coupling in the keywords, it defaults to the original driver.

Example pasted below:

from chemcloud import CCClient
from chemcloud.models import AtomicInput, Molecule
import numpy as np

A_2_B = 1.88973

client = CCClient()
geom = np.array([-4.2560534800,0.3719468253,-0.0627243290, -2.8904800850,0.2814529692,-0.2260424287, -4.9426475858,0.1565555450,-0.8727156266, -4.7773579011,0.4836898243,0.8912773863, -2.1692025313, 0.8208285120, 0.3727593084, -3.1453545699,   -0.6192933998,    0.4667759376])
geom = geom * A_2_B
ethylene = Molecule(symbols=["C", "C", "H", "H", "H", "H"], geometry= geom )
atomic_input = AtomicInput(
    molecule=ethylene,
    model={"method": "HF", "basis": "6-31gs"},
    driver="gradient",
    keywords={
        "restricted": True,
        "casscf": "yes",
        "casscfmaxiter": 400,
        "casscfconvthre": 1.0e-7,
        "casscfenergyconvthre": 1.0e-06,
        "cpsacasscfmaxiter": 300,
        "casscftrustconvthre": 0.0005,
        "cpsacasscfconvthre": 1.0e-05,
        "closed": 7,
        "active": 2,
        "cassinglets": 3,
        "precision": "double",
        "run": "coupling",
        "nacstate1": 0,
        "nacstate2": 1
    },
    protocols={"stdout": True, "native_files": "all"},
)

future_result = client.compute(atomic_input, engine="terachem_fe")
result = future_result.get()
# AtomicResult object containing all returned data
print(result)
# The energy value requested
print(result.return_result)
print(result.stdout)
print(result.native_files.keys())

which returns

Using basis set: 6-31gs
dmrgstart not found
Spin multiplicity: 1
DIIS will use up to 10 vectors.
Condition number limit for the DIIS overlap matrix is            0
WF convergence threshold: 1.00e-06
Using DIIS algorithm to converge WF
Maximum number of SCF iterations: 100
Incremental fock with rebuild every 8 iterations
Will switch to conventional Fock if diffuse functions are detected
X-matrix tolerance: 1.00e-04
PRECISION: DYNAMIC
TeraChem will select linear algebra engine
DFT Functional requested: hf
Method: Hartree-Fock
Wavefunction: RESTRICTED
Initial guess generated by maximum overlap

********************************************
**** SINGLE POINT GRADIENT CALCULATIONS ****
********************************************

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions