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)
Evaluate the density-fitted integrals in MO basis and store in the correct file.
Return the reference energy as HF
key in OutDict and true
if the integrals are calculated using unresctricted orbitals.
ElemCo.CCDriver.eval_dfcc_groundstate
— Methodeval_dfcc_groundstate(EC::ECInfo, ecmethod::ECMethod, energies_in::OutDict)
Evaluate the coupled-cluster ground-state energy for the DF integrals, which have to be calculated before. Return the updated energies::OutDict
with the correlation energy (method*"c"
) and the total energy (key method
).
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
).