Driver for conventional coupled-cluster methods
ElemCo.CCDriver
— ModuleCCDriver
Module for coupled-cluster drivers.
The CCDriver
module contains the main driver routines for running coupled-cluster calculations.
Exported functions
ElemCo.CCDriver.ccdriver
— Methodccdriver(EC::ECInfo, method; fcidump="", occa="-", occb="-")
Run electronic structure calculation for EC::ECInfo
using method::String
.
The integrals are read from fcidump::String
. If fcidump::String
is empty, the integrals from EC.fd
are used. The occupied α orbitals are given by occa::String
(default: "-"). The occupied β orbitals are given by occb::String
(default: "-"). If occb::String
is empty, the occupied β orbitals are the same as the occupied α orbitals (closed-shell case). The occupation strings can be given as a +
separated list, e.g. occa = 1+2+3
or equivalently 1-3
. Additionally, the spatial symmetry of the orbitals can be specified with the syntax orb.sym
, e.g. occa = "-5.1+-2.2+-4.3"
.
ElemCo.CCDriver.dfccdriver
— Methoddfccdriver(EC::ECInfo, method)
Run electronic structure calculation for EC::ECInfo
using method::String
.
The integrals are calculated using density fitting.
Internal functions
ElemCo.CCDriver.check_fcidump
— Methodcheck_fcidump(EC::ECInfo, fcidump)
Read the integrals from fcidump
if it is not empty.
ElemCo.CCDriver.check_occs
— Methodcheck_occs(EC::ECInfo, occa, occb)
Check the occupation strings occa
and occb
and set the corresponding options in WfOptions
. Return the previous values of occa
and occb
.
ElemCo.CCDriver.checkset_unrestricted_closedshell!
— Methodcheckset_unrestricted_closedshell!(ecmethod::ECMethod, closed_shell, unrestricted)
Check if the method is unrestricted/closed-shell and if necessary set the corresponding options in ECMethod
. Return closed_shell_method::Bool
.
ElemCo.CCDriver.eval_cc_groundstate
— Methodeval_cc_groundstate(EC::ECInfo, ecmethod::ECMethod, energies_in::OutDict; save_pert_t3=false)
Evaluate the coupled-cluster ground-state energy for the integrals in EC.fd
. Fock matrix and HF energy must be calculated before. Return the updated energies::OutDict
with the correlation energy (method*"c"
) and the total energy (key method
).
ElemCo.CCDriver.eval_df_mo_integrals
— Methodeval_df_mo_integrals(EC::ECInfo, energies::OutDict; save3idx=true)
Evaluate the density-fitted integrals in MO basis and store in the correct file. If save3idx
is true, save the 3-index integrals, otherwise only the 2-index integrals.
Return the reference energy as HF
key in OutDict and true
if the integrals are calculated using unrestricted orbitals.
ElemCo.CCDriver.eval_dmrg_groundstate
— Methodeval_dmrg_groundstate(EC::ECInfo, energies::OutDict)
Evaluate the DMRG ground-state energy for the integrals in EC.fd
. HF energy must be calculated before. Return the updated energies::OutDict
with the correlation energy ("DMRGc"
) and the total energy (key "DMRG"
).
ElemCo.CCDriver.eval_hf_energy
— Methodeval_hf_energy(EC::ECInfo, energies::OutDict, closed_shell)
Evaluate the Hartree-Fock energy for the integrals in EC.fd
. Return the updated energies::OutDict
with the Hartree-Fock energy (field HF
).
ElemCo.CCDriver.eval_mp2_energy
— Methodeval_mp2_energy(EC::ECInfo, energies::OutDict, closed_shell, restricted)
Evaluate the MP2 energy for the integrals in EC.fd
. Fock matrix and HF energy must be calculated before. Return the updated energies::OutDict
with same-spin(MP2-SS
), opposite-spin(MP2-OS
), open-shell(MP2-O
) components, SCS-MP2 energy (SCS-MP2
), correlation energy (MP2c
) and the MP2 energy (field MP2
).
ElemCo.CCDriver.eval_svd_dc_ccsdt
— Methodeval_svd_dc_ccsdt(EC::ECInfo, ecmethod::ECMethod, energies::OutDict)
Evaluate the coupled-cluster ground-state energy for the integrals in EC.fd
using SVD-Triples. Fock matrix and HF energy must be calculated before. Return the updated energies::OutDict
with the correlation energy (method*"c"
) and the total energy (key method
).
ElemCo.CCDriver.output_2d_energy
— Methodoutput_2d_energy(EC::ECInfo, En::OutDict, energies::OutDict, method; print=true)
Print the energy components for 2D methods and return the updated energies::OutDict
with singlet("SING"*method
), triplet("TRIP"*method
), singlet correlation("SING"*method*"c"
) and triplet correlation("TRIP"*method*"c"
) components.
ElemCo.CCDriver.output_energy
— Methodoutput_energy(EC::ECInfo, En::OutDict, energies::OutDict, mname; print=true)
Print the energy components and return the updated energies::OutDict
with correction to the correlation energy (mname*"-correction"
, e.g., ΔMP2, if available), same-spin(mname*"-SS"
), opposite-spin(mname*"-OS"
), open-shell(mname*"-O"
) components, SCS energy ("SCS-"*mname
), correlation energy (mname*"c"
) and the total energy (field mname
).