28 #ifndef _mpqc_src_lib_chemistry_qc_lcao_fockbuildruntime_h
29 #define _mpqc_src_lib_chemistry_qc_lcao_fockbuildruntime_h
31 #include <util/ref/ref.h>
32 #include <util/group/thread.h>
33 #include <util/group/message.h>
34 #include <math/scmat/matrix.h>
35 #include <chemistry/qc/basis/basis.h>
36 #include <chemistry/qc/basis/integral.h>
37 #include <util/misc/registry.h>
38 #include <chemistry/qc/wfn/spin.h>
39 #include <chemistry/qc/lcao/df_runtime.h>
66 bool exists(
const std::string& key)
const;
121 void obsolete_density_dependents();
124 static int debug() {
return 0; }
126 Ref<DensityFittingInfo> dfinfo_;
127 bool use_density_fitting() {
return dfinfo_; }
129 Ref<OrbitalSpaceRegistry> oreg_;
130 Ref<AOSpaceRegistry> aoreg_;
131 Ref<Integral> integral_;
132 Ref<MessageGrp> msg_;
134 Ref<GaussianBasisSet> basis_;
136 bool spin_polarized_;
137 double log2_precision_;
140 RefSymmSCMatrix P_, Po_;
143 Ref<FockMatrixRegistry> registry_;
146 void validate_key(
const std::string& key)
const;
154 RefSCMatrix electric_field_contribution(std::string bra_key,
155 std::string ket_key);
160 typedef Registry<RefSymmSCMatrix, Ref<OrbitalSpace>,
161 detail::NonsingletonCreationPolicy,
176 const std::string& key()
const {
return key_; }
177 const std::string& oper()
const {
return oper_; }
178 const std::string& params()
const {
return params_; }
181 static std::string key(
const std::string& oper,
182 const std::string& params);
184 template <
int NumCenters>
191 template<
int NumCenters>
206 "ParsedOneBodyOperKey::create_descr() -- unknown oper",
223 const std::string& key()
const {
return key_; }
224 const std::string& bra()
const {
return bra_; }
225 const std::string& ket()
const {
return ket_; }
226 const std::string& oper()
const {
return oper_; }
227 SpinCase1 spin()
const {
return spin_; }
230 static std::string key(
const std::string& bra,
231 const std::string& ket,
232 const std::string& oper,
233 SpinCase1 spin = AnySpinCase1);
237 std::string bra_, ket_;
244 #endif // end of header guard
static MessageGrp * get_default_messagegrp()
Returns the default message group.
void obsolete()
obsoletes this object
void set_electric_field(const RefSCVector &efield)
sets uniform electric field.
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization.
Definition: matrix.h:265
Build Fock matrices using some combination of FockBuilder objects.
Definition: fockbuild_runtime.h:44
ResultType get(const std::string &key)
Returns the matrix corresponding to key.
Registry< RefSymmSCMatrix, Ref< OrbitalSpace >, detail::NonsingletonCreationPolicy, RefSymmSCMatrixEqual, RefObjectEqual< OrbitalSpace > > PSqrtRegistry
the way I compute exchange matrices is by computing square root of the density (P) this Registry keep...
Definition: fockbuild_runtime.h:162
Definition: intdescr.h:156
static Ref< typename NCentersToIntDescr< NumCenters, 1 >::value > create_descr(const std::string &operset_key, const Ref< IntParams > &p, const Ref< Integral > &integral)
this factory method constructs a descriptor given operator key + IntParams object + Integrals object
Definition: fockbuild_runtime.h:192
The RefSCMatrix class is a smart pointer to an SCMatrix specialization.
Definition: matrix.h:135
A template class that maintains references counts.
Definition: ref.h:361
Parsed representation of a string key that represents a one-body operator set (OneBodyOperSet + assoc...
Definition: fockbuild_runtime.h:171
{S}
Definition: operator.h:169
const RefSCVector & electric_field() const
returns the uniform electric field (may be a null reference)
Definition: fockbuild_runtime.h:100
static std::string key(const Ref< typename NCentersToIntDescr< NumCenters, 1 >::value > &descr)
computes key from the given OneBodyOperSetDescr object
Definition: fockbuild_runtime.h:185
void set_log2_precision(double prec)
Specifies the precision of the computed operator matrices.
static const Ref< ParamsRegistry > & instance()
this is a singleton
Parsed representation of a string key that represents a set of one-body integrals.
Definition: fockbuild_runtime.h:219
this functor compares RefSymmSCMatrix objects.
Definition: matrix.h:537
{T}
Definition: operator.h:170
The RefSCVector class is a smart pointer to an SCVector specialization.
Definition: matrix.h:55
Definition: stateout.h:71
Implements descriptors for various two-body evaluators.
Definition: intdescr.h:254
bool exists(const std::string &key) const
Returns true if the given matrix is available.
This is thrown when a situations arises that should be impossible.
Definition: scexception.h:92
void save_data_state(StateOut &so)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
RefSymmSCMatrix Po() const
return open-shell density in AO basis
Definition: fockbuild_runtime.h:97
void set_densities(const RefSymmSCMatrix &aodensity_alpha, const RefSymmSCMatrix &aodensity_beta)
sets AO densities. Unless these are identical to the current densities, density-dependent contents wi...
Base class for objects that can save/restore state.
Definition: state.h:45
static ThreadGrp * get_default_threadgrp()
Returns the default ThreadGrp.
RefSymmSCMatrix P() const
return total density in AO basis
Definition: fockbuild_runtime.h:95
double log2_precision() const
Definition: fockbuild_runtime.h:89
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
Registry wraps std::map and can be policy-configured to act as a Singleton or a regular object.
Definition: registry.h:112
this functor can be used as a binary predicate for standard algorithms.
Definition: ref.h:659
Generated at Sun Jan 26 2020 23:23:58 for MPQC
3.0.0-alpha using the documentation package Doxygen
1.8.16.