MPQC
3.0.0-alpha
|
R12Technology describes technical features of the R12 approach. More...
#include <chemistry/qc/mbptr12/r12technology.h>
Classes | |
class | CorrelationFactor |
CorrelationFactor is a set of one or more two-particle functions of the interparticle distance. More... | |
struct | CorrParamCompare |
Compares CorrelationParamaters corresponding to IntParam. More... | |
class | G12CorrelationFactor |
G12CorrelationFactor stands for Gaussian geminals correlation factor, usable with methods that require commutator integrals. More... | |
class | G12NCCorrelationFactor |
G12NCCorrelationFactor stands for Gaussian geminals correlation factor, usable with methods that do not require commutator integrals; this is more for temporary tests or quick implementation. More... | |
class | GeminalDescriptor |
class | GeminalDescriptorFactory |
class | NullCorrelationFactor |
NullCorrelationFactor stands for no correlation factor; only for test. More... | |
class | R12Ansatz |
R12Ansatz specifies the manner in which the R12 geminals are constructed. More... | |
class | R12CorrelationFactor |
R12CorrelationFactor stands for no correlation factor. More... | |
Public Types | |
enum | Projector { Projector_0 = 0, Projector_1 = 1, Projector_2 = 2, Projector_3 = 3 } |
Projector of R12 methods: 0: Q_{12} = 1 1: Q_{12} = (1 - P_1)(1 - P_2) 2: Q_{12} = (1 - V_1 V_2)(1 - O_1)(1 - O_2) 3: Q_{12} = 1 - P_1 P_2. | |
enum | StandardApproximation { StdApprox_Ap = 1, StdApprox_App = 2, StdApprox_B = 3, StdApprox_C = 4, StdApprox_Cp = 5 } |
enum | ABSMethod { ABS_CABS = 2, ABS_CABSPlus = 3 } |
enum | OrbitalProduct_GG { OrbProdGG_ij = 0, OrbProdGG_pq = 1 } |
geminal generating space | |
enum | OrbitalProduct_gg { OrbProdgg_ij = 0, OrbProdgg_pq = 1 } |
space of orbital products from which geminal substitutions are allowed | |
enum | PositiveDefiniteB { PositiveDefiniteB_no = 0, PositiveDefiniteB_yes = 1, PositiveDefiniteB_weak = 2 } |
enum | GeminalAmplitudeAnsatz { GeminalAmplitudeAnsatz_fullopt = 0, GeminalAmplitudeAnsatz_fixed = 1, GeminalAmplitudeAnsatz_scaledfixed = 2 } |
enum | H0_dk_approx_pauli { H0_dk_approx_pauli_true = 0, H0_dk_approx_pauli_fHf = 1, H0_dk_approx_pauli_fHf_Q = 2, H0_dk_approx_pauli_false = 3 } |
Public Member Functions | |
R12Technology (StateIn &) | |
R12Technology (const Ref< KeyVal > &) | |
The KeyVal constructor. More... | |
R12Technology (const Ref< KeyVal > &, const Ref< GaussianBasisSet > &bs, const Ref< GaussianBasisSet > &vbs, const Ref< GaussianBasisSet > &abs) | |
void | save_data_state (StateOut &) |
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. More... | |
const Ref< CorrelationFactor > & | corrfactor () const |
void | corrfactor (const Ref< CorrelationFactor > &) |
this changes the correlation factor | |
unsigned int | maxnabs () const |
bool | gbc () const |
bool | ebc () const |
bool | coupling () const |
bool | compute_1rdm () const |
bool | coupling_1rdm_f12b () const |
ABSMethod | abs_method () const |
int | abs_nlindep () const |
double | abs_lindep_tol () const |
StandardApproximation | stdapprox () const |
const Ref< R12Ansatz > & | ansatz () const |
bool | spinadapted () const |
bool | omit_P () const |
H0_dk_approx_pauli | H0_dk_approx () const |
bool | H0_dk_keep () const |
bool | safety_check () const |
PositiveDefiniteB | posdef_B () const |
bool | omit_B () const |
void | check_integral_factory (const Ref< Integral > &ints) |
void | print (std::ostream &o=ExEnv::out0()) const |
Print the object. | |
Public Member Functions inherited from sc::SavableState | |
SavableState & | operator= (const SavableState &) |
void | save_state (StateOut &) |
Save the state of the object as specified by the StateOut object. More... | |
void | save_object_state (StateOut &) |
This can be used for saving state when the exact type of the object is known for both the save and the restore. More... | |
virtual void | save_vbase_state (StateOut &) |
Save the virtual bases for the object. More... | |
Public Member Functions inherited from sc::DescribedClass | |
DescribedClass (const DescribedClass &) | |
DescribedClass & | operator= (const DescribedClass &) |
ClassDesc * | class_desc () const MPQC__NOEXCEPT |
This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More... | |
const char * | class_name () const |
Return the name of the object's exact type. | |
int | class_version () const |
Return the version of the class. | |
Ref< DescribedClass > | ref () |
Return this object wrapped up in a Ref smart pointer. More... | |
Public Member Functions inherited from sc::RefCount | |
size_t | identifier () const |
Return the unique identifier for this object that can be compared for different objects of different types. More... | |
int | lock_ptr () const |
Lock this object. | |
int | unlock_ptr () const |
Unlock this object. | |
void | use_locks (bool inVal) |
start and stop using locks on this object | |
refcount_t | nreference () const |
Return the reference count. | |
refcount_t | reference () |
Increment the reference count and return the new count. | |
refcount_t | dereference () |
Decrement the reference count and return the new count. | |
int | managed () const |
void | unmanage () |
Turn off the reference counting mechanism for this object. More... | |
Static Public Member Functions | |
static bool | invalid (const Ref< GeminalDescriptor > &gdesc) |
static bool | R12 (const Ref< GeminalDescriptor > &gdesc) |
static bool | STG (const Ref< GeminalDescriptor > &gdesc) |
static bool | G12 (const Ref< GeminalDescriptor > &gdesc) |
static double | single_slater_exponent (const Ref< GeminalDescriptor > &gdesc) |
Returns a single Slater type geminal exponent. Throws if geminal is not of Slater type and if there is more than one Slater type function. | |
template<class CF > | |
static Ref< CF > | direct_product (const Ref< CF > &A, const Ref< CF > &B) |
static Ref< GaussianBasisSet > | make_auto_cabs (const Ref< GaussianBasisSet > &bs) |
static std::string | default_cabs_name (const std::string &obs_name) |
tries to translate a library basis set label to the corresponding default value for the CABS More... | |
static double | default_stg_exponent (const std::string &obs_name) |
tries to translate a library basis set label to the corresponding default value for the F12 exponent More... | |
Static Public Member Functions inherited from sc::SavableState | |
static void | save_state (SavableState *s, StateOut &) |
static SavableState * | restore_state (StateIn &si) |
Restores objects saved with save_state. More... | |
static SavableState * | key_restore_state (StateIn &si, const char *keyword) |
Like restore_state, but keyword is used to override values while restoring. | |
static SavableState * | dir_restore_state (StateIn &si, const char *objectname, const char *keyword=0) |
Additional Inherited Members | |
Protected Member Functions inherited from sc::SavableState | |
SavableState (const SavableState &) | |
SavableState (StateIn &) | |
Each derived class StateIn CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above. More... | |
Protected Member Functions inherited from sc::RefCount | |
RefCount (const RefCount &) | |
RefCount & | operator= (const RefCount &) |
R12Technology describes technical features of the R12 approach.
The KeyVal constructor.
corr_factor
This string specifies which correlation factor to use. Allowed values are "r12", "g12", "stg-Xg" (where X is an integer greater than 0), and "none". The default is "stg-6g".
corr_param
This keyword specifies optional parameters of the correlation factor. corr_param
can be a single floating-point value an array of floating-point values, or an array of arrays of 2-element arrays of floating-point values. Single value specifies the parameter of the single correlation function. The 1-d array form specifies a set of primitive correlation functions characterized by the corresponding parameters. The 3-d array form specifies a set of contracted correlation functions. For example, corr_param = 3.0
specifies a single correlation function with parameter 3.0. corr_param = [ 1.0 3.0 10.0 ]
specifies 3 correlation functions with parameters 1.0, 3.0 and 10.0. corr_param = [ [[1.0 0.35][3.0 0.65]] [[10.0 1.0]] ]
specifies 2 correlation functions, first composed of 2 primitive functions with parameters 1.0 and 3.0 combined linearly with coefficients 0.35 and 0.65, and second primitive function with parameter 10.0 .
This keyword has no meaning for some correlation factors, e.g., "r12" and "none", and is not used. There is no default.
stdapprox
This gives a string that must take on one of the values below. The default is C.
A'
Use second order Møller-Plesset perturbation theory with linear R12 terms in standard approximation A' (MP2-R12/A'). This will cause MP2-R12/A energies to be computed also. Only energies can be computed with the MP2-R12/A' method.
A''
Use second order Møller-Plesset perturbation theory with linear R12 terms in standard approximation A'' (MP2-R12/A''). Only energies can be computed with the MP2-R12/A'' method.
B
Use second order Møller-Plesset perturbation theory with linear R12 terms in standard approximation B. This will cause A and A' energies to be computed also. Only energies can be computed with the MP2-R12/B method.
C
Use second order Møller-Plesset perturbation theory with linear R12 terms in standard approximation C. Only energies can be computed with the MP2-R12/C method.
C
Use second order Møller-Plesset perturbation theory with linear R12 terms in standard approximation C' (simplified variant of approximation C, in which only integrals with 1 ABS index are used. Refer to: Valeev, to be published). Only energies can be computed with the MP2-R12/C' method.
ansatz
This object specifies the ansatz (see R12Ansatz).
gbc
This boolean specifies whether Generalized Brillouin Condition (GBC) is assumed to hold. The default is "true". This keyword is only valid if stdapprox=A'. The effect of setting this keyword to false is very small – hence it is not recommended to use this keyword.
ebc
This boolean specifies whether Extended Brillouin Condition (EBC) is assumed to hold. The default is "true". This keyword is only valid if stdapprox=A'. The effect of setting this keyword to false is small – hence it is not recommended to use this keyword.
coupling
This boolean specifies whether the doubles-geminal block of the Fock operator is included in zeroth-order Hamiltonian. The default is "false". This keyword is only valid for MP2-R12 method. The effect of setting this keyword to true is small – hence it is not recommended to use this keyword.
maxnabs
This integer specifies the maximum number of ABS indices per integral. Valid values are 1 or 2. The default is 2 except for R12/A'' method.
abs_method
This string specifies the method by which the RI is applied to the many-electron integrals of the R12 theory. The valid choices are "CABS+" and "CABS" (see Valeev, Chem. Phys. Lett. 395, 190 (2004)) The default is "CABS+".
abs_lindep_tol
The tolerance used to detect linearly dependent basis functions in the RI basis (only makes sense if a separate ABS basis is used). The precise meaning depends on the orthogonalization method used by the Wavefunction object that uses this object. The default value is 1e-8.
abs_nlindep
The number of linearly dependent basis functions to be eliminated from the RI basis. This keyword is useful to keep the number of linearly dependent basis functions constant in a series of calculations, e.g. when performing a scan of the potential energy surface for the purpose of computing precise anharmonic force fields. This keyword is only valid when the Wavefunction object uses symmetric or canonical orthogonalization. The default is to use keyword abs_lindep_tol
instead of this keyword.
safety_check
Set to true if you want to perform safety checks, e.g., for completeness of the RI basis, linear independence of the geminal basis, positive definiteness of B matrix, etc. The default is true (to perform the checks).
posdef_B
This keyword specifies whether and how to enforce the positive definiteness of matrix B. Valid choices are no
, yes
(enforce positive definite matrix B and its pair-dependent counterpart, tilde-B), weak
(same as yes
, except the positive-definiteness of tilde-B is not enforced). If this keyword is set to no
then sometimes nonphysical results can be obtained, e.g., positive pair energy corrections can result from using too many correlation functions. posdef_B = yes
offers the best protection against nonphysical results. The default is weak
, which is cheaper yes
and is definitely safer than no
.
gtg_fit_weight
This keyword determines how the correlation factor is fit to Gaussians (hence only valid when corr_factor
is set to stg-ng
) The choices are tewklopper
, which is appropriate for energy computations, and cusp
, which is appropriate for accurate cusp region description. The default is tewklopper
. Choosing cusp
is probably only appropriate when many (9 or more) Gaussians are used for the fit.
H0_dk_approx_pauli
true/yes
Use Pauli everywhere. Valid in approximations A'' and C. In approximation C this choice involves the appearance of M intermediate (double commutator of mass-velocity term with 2 correlation factors) and use of Pauli Hamiltonian everywhere in P intermediate. In approximations A'' this involves the use of Pauli Hamiltonian in the double commutator, in single commutator, in Q intermediate.
fHf
Use Pauli in the "diagonal" term, i.e. in f12 H f12 which involves the use of Pauli Hamiltonian in the double commutator and in Q intermediate. Only valid in approximation C.
fHf_Q
Same as fHf
but use the full DK Hamiltonian in Q intermediate. This is equivalent to assuming that terms of higher order than Pauli commute with the correlation factor, hence they should be kept in Q. Only valid in approximation C.
false/no
Use full DKH operator (this is the default). Valid in approximations A'' and C. In approximation C this means treat relativistic terms like exchange, this affects the Q intermediate and fKf part of P intermediate. In approximation A'' this means that all relativistic terms are dropped from H0 -- this is chosen to be consistent with the nonrelativistic A'' method where exchange operator is dropped completely because its commutators cannot be evaluated analytically.
H0_dk_keep
This boolean keyword specifies whether to keep relativistic terms or drop them. This is only considered in approximation A'' if H0_dk_approx_pauli=false
. The default is false
. Setting to true
will keep the relativistic terms in Q intermediate of the A'' approximation.
|
static |
tries to translate a library basis set label to the corresponding default value for the CABS
obs_name | orbital basis set name; to be useful must be a canonical library name |
|
static |
tries to translate a library basis set label to the corresponding default value for the F12 exponent
obs_name | orbital basis set name; to be useful must be a canonical library name |
|
virtual |
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
This must be implemented by the derived class if the class has data.
Reimplemented from sc::SavableState.