32 #ifndef _chemistry_qc_mbptr12_vxbevalinfo_h
33 #define _chemistry_qc_mbptr12_vxbevalinfo_h
36 #include <util/misc/string.h>
37 #include <util/ref/ref.h>
38 #include <math/scmat/abstract.h>
39 #include <util/group/memory.h>
40 #include <chemistry/molecule/energy.h>
41 #include <chemistry/qc/scf/scf.h>
42 #include <chemistry/qc/mbptr12/linearr12.h>
43 #include <chemistry/qc/mbptr12/moindexspace.h>
44 #include <chemistry/qc/mbptr12/transform_factory.h>
58 enum StoreMethod { mem_posix = 0, posix = 1, mem_mpi = 2, mpi = 3, mem_only = 4 };
80 double print_percent_;
83 std::string ints_file_;
84 LinearR12::ABSMethod abs_method_;
103 void construct_ri_basis_(
bool safe);
104 void construct_ri_basis_ks_(
bool safe);
105 void construct_ri_basis_ksplus_(
bool safe);
106 void construct_ri_basis_ev_(
bool safe);
107 void construct_ri_basis_evplus_(
bool safe);
109 void construct_ortho_comp_svd_();
111 bool abs_spans_obs_();
115 void construct_orthog_aux_();
117 void construct_orthog_vir_();
119 void construct_orthog_ri_();
150 Ref<SCF> ref()
const {
return ref_; };
151 Ref<Integral> integral()
const {
return integral_; };
159 Ref<MemoryGrp> mem()
const {
return mem_;};
160 Ref<MessageGrp> msg()
const {
return msg_;};
161 Ref<ThreadGrp> thr()
const {
return thr_;};
163 bool dynamic()
const {
return dynamic_; };
164 double print_percent()
const {
return print_percent_; };
165 int debug_level()
const {
return debug_; };
166 const StoreMethod ints_method()
const {
return ints_method_; };
167 const std::string& ints_file()
const;
168 const size_t memory()
const {
return memory_; };
170 const int nocc()
const {
return nocc_;};
171 const int nocc_act()
const {
return nocc_ - nfzc_;};
172 const int nfzc()
const {
return nfzc_;};
173 const int nvir()
const {
return vir_space_->rank();};
174 const int nvir_act()
const {
return act_vir_space_->rank();};
175 const int nfzv()
const {
return nfzv_;};
177 LinearR12::ABSMethod abs_method()
const {
return abs_method_; };
204 const std::string& name,
double lindep_tol);
214 const std::string& name,
double lindep_tol);
Ref< MOIntsTransformFactory > tfactory() const
Returns the MOIntsTransformFactory object.
Definition: vxb_eval_info.h:200
static void compute_overlap_ints(const Ref< MOIndexSpace > &space1, const Ref< MOIndexSpace > &space2, RefSCMatrix &S)
Compute overlap matrices in the basis of space1 and space2.
Ref< MOIndexSpace > obs_space() const
Returns the MOIndexSpace object for energy-sorted MOs in OBS.
Definition: vxb_eval_info.h:182
Ref< GaussianBasisSet > basis_vir() const
Returns the virtuals basis set (VBS) object.
Definition: vxb_eval_info.h:155
void set_ints_method(const StoreMethod method)
Sets the method of storing transformed MO integrals.
Definition: vxb_eval_info.h:138
The MBPT2_R12 class implements several linear R12 second-order perturbation theory methods.
Definition: mbptr12.h:61
OrthogMethod
An enum for the types of orthogonalization.
Definition: orthog.h:42
The RefSCMatrix class is a smart pointer to an SCMatrix specialization.
Definition: matrix.h:135
Ref< MOIndexSpace > mo_space() const
Returns the MOIndexSpace object for symmetry-blocked MOs in OBS.
Definition: vxb_eval_info.h:180
A template class that maintains references counts.
Definition: ref.h:332
static void compute_multipole_ints(const Ref< MOIndexSpace > &space1, const Ref< MOIndexSpace > &space2, RefSCMatrix &MX, RefSCMatrix &MY, RefSCMatrix &MZ, RefSCMatrix &MXX, RefSCMatrix &MYY, RefSCMatrix &MZZ)
Compute electric dipole and quadrupole moment matrices in the basis of space1 and space2.
Ref< MOIndexSpace > ribs_space() const
Returns the MOIndexSpace object for RI-BS.
Definition: vxb_eval_info.h:198
A Wavefunction is a MolecularEnergy that utilizies a GaussianBasisSet.
Definition: wfn.h:48
Ref< MOIndexSpace > vir_space_symblk() const
Returns the MOIndexSpace object for all unoccupied MOs ordered by symmetry.
Definition: vxb_eval_info.h:194
Ref< MOIndexSpace > abs_space() const
Returns the MOIndexSpace object for ABS.
Definition: vxb_eval_info.h:196
void set_dynamic(bool dynamic)
Sets whether to use dynamic load balancing in parallel MO transformations.
Definition: vxb_eval_info.h:131
Ref< GaussianBasisSet > basis_ri() const
Returns the resolution-of-the-identity basis set (RIBS) object.
Definition: vxb_eval_info.h:157
Restores objects that derive from SavableState.
Definition: statein.h:70
StoreMethod
Describes the method of storing transformed MO integrals. See MBPT2_R12.
Definition: vxb_eval_info.h:58
void set_absmethod(LinearR12::ABSMethod abs_method)
Sets the ABS approach to be used (ABS or CABS).
void set_print_percent(double print_percent)
Sets how frequently updates of progress are printed out. Default is 10%.
Definition: vxb_eval_info.h:133
void set_ints_file(const std::string &filename)
Sets name of the file used to store transformed integrals.
Definition: vxb_eval_info.h:141
Ref< GaussianBasisSet > basis() const
Returns the orbital basis set (OBS) object.
Definition: vxb_eval_info.h:153
Ref< MOIndexSpace > act_occ_space() const
Returns the MOIndexSpace object for the active occupied MOs.
Definition: vxb_eval_info.h:184
Serializes objects that derive from SavableState.
Definition: stateout.h:61
static Ref< MOIndexSpace > orthog_comp(const Ref< MOIndexSpace > &space1, const Ref< MOIndexSpace > &space2, const std::string &name, double lindep_tol)
Compute subspace of space2 which is orthogonal complement to space1.
static Ref< MOIndexSpace > gen_project(const Ref< MOIndexSpace > &space1, const Ref< MOIndexSpace > &space2, const std::string &name, double lindep_tol)
Project space1 on space2.
void set_debug_level(int debug)
Set debug level. Default is 0.
Definition: vxb_eval_info.h:135
Base class for objects that can save/restore state.
Definition: state.h:46
Ref< MOIndexSpace > occ_space_symblk() const
Returns the MOIndexSpace object for all occupied MOs symmetry-blocked.
Definition: vxb_eval_info.h:190
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void set_memory(const size_t nbytes)
Sets the amount of memory to use for the calculation.
Ref< MOIndexSpace > occ_space() const
Returns the MOIndexSpace object for all occupied MOs sorted by energy.
Definition: vxb_eval_info.h:188
Class R12IntEvalInfo contains information necessary for R12 intermediate evaluators.
Definition: vxb_eval_info.h:53
Ref< MOIndexSpace > vir_space() const
Returns the MOIndexSpace object for all unoccupied MOs ordered by energy.
Definition: vxb_eval_info.h:192
Ref< MOIndexSpace > act_vir_space() const
Returns the MOIndexSpace object for the active unoccupied MOs.
Definition: vxb_eval_info.h:186
static Ref< MOIndexSpace > orthogonalize(const std::string &name, const Ref< GaussianBasisSet > &bs, const Ref< Integral > &integral, OverlapOrthog::OrthogMethod orthog_method, double lindep_tol, int &nlindep)
Compute span of bs and create corresponding mospace referred to by name.
Generated at Sun Jan 26 2020 23:33:05 for MPQC
2.3.1 using the documentation package Doxygen
1.8.16.