.TH "sc::MBPT2_R12" 3 "Sun Oct 4 2020" "Version 2.3.1" "MPQC" \" -*- nroff -*- .ad l .nh .SH NAME sc::MBPT2_R12 \- The \fBMBPT2_R12\fP class implements several linear R12 second-order perturbation theory methods\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBsc::MBPT2\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBMBPT2_R12\fP (\fBStateIn\fP &)" .br .ti -1c .RI "\fBMBPT2_R12\fP (const \fBRef\fP< \fBKeyVal\fP > &)" .br .RI "The \fBKeyVal\fP constructor\&. " .ti -1c .RI "void \fBsave_data_state\fP (\fBStateOut\fP &)" .br .RI "Save the base classes (with save_data_state) and the members in the same order that the \fBStateIn\fP CTOR initializes them\&. " .ti -1c .RI "\fBRef\fP< \fBGaussianBasisSet\fP > \fBaux_basis\fP () const" .br .ti -1c .RI "\fBRef\fP< \fBGaussianBasisSet\fP > \fBvir_basis\fP () const" .br .ti -1c .RI "bool \fBgbc\fP () const" .br .ti -1c .RI "bool \fBebc\fP () const" .br .ti -1c .RI "LinearR12::ABSMethod \fBabs_method\fP () const" .br .ti -1c .RI "LinearR12::StandardApproximation \fBstdapprox\fP () const" .br .ti -1c .RI "bool \fBspinadapted\fP () const" .br .ti -1c .RI "\fBR12IntEvalInfo::StoreMethod\fP \fBr12ints_method\fP () const" .br .ti -1c .RI "const std::string & \fBr12ints_file\fP () const" .br .ti -1c .RI "double \fBcorr_energy\fP ()" .br .ti -1c .RI "double \fBr12_corr_energy\fP ()" .br .ti -1c .RI "\fBRefSymmSCMatrix\fP \fBdensity\fP ()" .br .RI "Returns the \fBSO\fP density\&. " .ti -1c .RI "void \fBobsolete\fP ()" .br .RI "Marks all results as being out of date\&. " .ti -1c .RI "int \fBgradient_implemented\fP () const" .br .ti -1c .RI "int \fBvalue_implemented\fP () const" .br .RI "Information about the availability of values, gradients, and hessians\&. " .ti -1c .RI "void \fBprint\fP (std::ostream &o=\fBExEnv::out0\fP()) const" .br .RI "Print information about the object\&. " .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBcompute\fP ()" .br .RI "Recompute at least the results that have compute true and are not already computed\&. " .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBMBPT2_R12\fP class implements several linear R12 second-order perturbation theory methods\&. .SH "Constructor & Destructor Documentation" .PP .SS "sc::MBPT2_R12::MBPT2_R12 (const \fBRef\fP< \fBKeyVal\fP > &)" .PP The \fBKeyVal\fP constructor\&. .IP "\fB\fCgbc\fP\fP" 1c 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 true is rather small -- hence it is not recommended to use this keyword\&. .PP .IP "\fB\fCebc\fP\fP" 1c 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 true is rather small -- hence it is not recommended to use this keyword\&. .PP .IP "\fB\fCstdapprox\fP\fP" 1c This gives a string that must take on one of the values below\&. The default is A'\&. .PP .IP "\fB\fCA\fP\fP" 1c Use second order Mo/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\&. .PP .IP "\fB\fCA'\fP\fP" 1c Use second order Mo/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\&. .PP .IP "\fB\fCB\fP\fP" 1c Use second order Mo/ller-Plesset perturbation theory with linear R12 terms in standard approximation B\&. This method is not implemented yet\&. .PP .PP .PP .IP "\fB\fCspinadapted\fP\fP" 1c This boolean specifies whether to compute spin-adapted or spin-orbital pair energies\&. Default is to compute spin-adapted energies\&. .PP .IP "\fB\fCaux_basis\fP\fP" 1c This specifies the auxiliary basis to be used for the resolution of the identity\&. Default is to use the same basis as for the orbital expansion\&. .PP .IP "\fB\fCvir_basis\fP\fP" 1c This specifies the basis to be used for the virtual orbitals\&. Default is to use the same basis as for the orbital expansion\&. .PP .IP "\fB\fCinclude_mp1\fP\fP" 1c This specifies whether to compute MP1 correction to the MP2 and MP2-R12 energies\&. This option only has effect if vir_basis is not the same as basis\&. MP1 correction is a perturbative estimate of the difference between the HF energy computed in vir_basis and basis\&. Usually, it is a very poor estimate -- therefore this keyword should be avoided by non-experts\&. Default is false\&. .PP .IP "\fB\fCabs_method\fP\fP" 1c This string specifies whether the old ABS method, introduced by Klopper and Samson, or the new ABS variant, CABS, introduced by Valeev, should be used\&. Valid values are 'ABS' (Klopper and Samson), 'ABS+', 'CABS', and 'CABS+', where the '+' labels a method where the union of OBS and ABS is used to construct the RI basis\&. The default is 'ABS'\&. The default in 2\&.3\&.0 and later will be 'CABS+'\&. .PP .IP "\fB\fClindep_tol\fP\fP" 1c The tolerance used to detect linearly dependent basis functions in the RI basis set\&. The precise meaning depends on the orthogonalization method\&. The default value is 1e-8\&. .PP .IP "\fB\fCr12ints\fP\fP" 1c This specifies how to store transformed MO integrals\&. Valid values are: .PP .IP "\fB\fCmem-posix\fP\fP" 1c Store integrals in memory for single-pass situations and in a binary file on task 0's node using POSIX I/O for multipass situations\&. \fCposix\fP is usually less efficient than \fCmpi\fP for distributed parallel multipass runs since the I/O is performed by one task only\&. However, this method is guaranteed to work in all types of environments, hence \fCmem-posix\fP is the default\&. .PP .IP "\fB\fCposix\fP\fP" 1c Store integrals in a binary file on task 0's node using POSIX I/O\&. This method is different from \fCmem-posix\fP in that it forces the integrals out to disk even if they could be stored in memory\&. \fCposix\fP should only be used for benchmarking and testing purposes\&. .PP .IP "\fB\fCmem-mpi\fP\fP" 1c Store integrals in memory for single-pass situations and in a binary file using MPI-I/O for multipass situations\&. This method assumes the availability of MPI-I/O\&. \fCmem-mpi\fP is the preferred choice in distributed environments which have MPI-I/O available\&. .PP .IP "\fB\fCmpi\fP\fP" 1c Store integrals in a binary file using MPI-I/O\&. This method is different from \fCmem-mpi\fP in that it forces the integrals out to disk even if they could be stored in memory\&. \fCmpi\fP should only be used for benchmarking and testing purposes\&. .PP .IP "\fB\fCmem\fP\fP" 1c Store integrals in memory\&. Can only be used with single-pass transformations for MP2-R12/A and MP2-R12/A' methods\&. This method should only be used for testing purposes\&. .PP .PP .PP If \fCr12ints\fP is not specified, then \fCmem-posix\fP method will be used\&. If user wishes to use MPI-I/O, pending its availability, for higher parallel efficiency, \fCr12ints\fP should be explicitly set to \fCmem-mpi\fP\&. .PP .IP "\fB\fCr12ints_file\fP\fP" 1c This specifies the prefix for the transformed MO integrals file if \fCr12ints\fP is set to \fCposix\fP, \fCmpi\fP, \fCmem-posix\fP or \fCmem-mpi\fP is used\&. Default is '\&./inputbasename\&.r12ints', where \fIinputbasename\fP is the name of the input file without '\&.in'\&. If MPI-I/O is used then it is user's responsibility to ensure that the file resides on a file system that supports MPI-I/O\&. .PP .IP "\fB\fCtwopdm_grid_aa\fP\fP" 1c This optional keyword specifies a \fBTwoBodyGrid\fP object which to use for coordinates at which to compute alpha-alpha part of 2-PDM\&. .PP .IP "\fB\fCtwopdm_grid_ab\fP\fP" 1c This optional keyword specifies a \fBTwoBodyGrid\fP object which to use for coordinates at which to compute alpha-beta part of 2-PDM\&. .PP .PP .SH "Member Function Documentation" .PP .SS "void sc::MBPT2_R12::compute ()\fC [protected]\fP, \fC [virtual]\fP" .PP Recompute at least the results that have compute true and are not already computed\&. This should only be called by \fBResult\fP's members\&. .PP Reimplemented from \fBsc::MBPT2\fP\&. .SS "void sc::MBPT2_R12::obsolete ()\fC [virtual]\fP" .PP Marks all results as being out of date\&. Any subsequent access to results will cause \fBCompute::compute()\fP to be called\&. .PP Reimplemented from \fBsc::MBPT2\fP\&. .SS "void sc::MBPT2_R12::save_data_state (\fBStateOut\fP &)\fC [virtual]\fP" .PP Save the base classes (with save_data_state) and the members in the same order that the \fBStateIn\fP CTOR initializes them\&. This must be implemented by the derived class if the class has data\&. .PP Reimplemented from \fBsc::MBPT2\fP\&. .SH "Author" .PP Generated automatically by Doxygen for MPQC from the source code\&.