28 #ifndef _mpqc_src_lib_chemistry_qc_lcao_transformfactorytimpl_h
29 #define _mpqc_src_lib_chemistry_qc_lcao_transformfactorytimpl_h
31 #include <chemistry/qc/lcao/transform_factory.h>
32 #include <chemistry/qc/lcao/transform_tbint.h>
39 template <
bool DF>
struct MakeTwoBodyTransform;
41 static const int i = 1;
42 template <
typename TransformType>
static
45 const std::string& name,
49 result =
new TransformType(name,factory,descr,
55 if (factory->top_mole_)
56 result->set_top_mole(factory->top_mole_);
57 result->set_debug(factory->debug());
63 static const int i = 1;
64 template <
typename TransformType>
static
67 const std::string& name,
71 result =
new TransformType(name,factory->
df_info(),descr,
77 if (factory->top_mole_)
78 result->set_top_mole(factory->top_mole_);
79 result->set_debug(factory->debug());
85 template <
typename TransformType>
struct NeedDF {
86 static const bool value =
false;
89 static const bool value =
true;
94 typedef TransformType value;
110 static const bool value =
false;
113 static const bool value =
true;
118 MOIntsTransformFactory::twobody_transform(
const std::string& name,
124 !
detail::EqualTypes<TransformType,
typename detail::ToDensityFittingType<TransformType>::value>::value) {
125 return this->twobody_transform< typename detail::ToDensityFittingType<TransformType>::value >(name, descrarg);
128 typedef detail::MakeTwoBodyTransform< detail::NeedDF<TransformType>::value > TformMaker;
129 Ref<TwoBodyMOIntsTransform> result = TformMaker::template evaluate<TransformType>(
this,name,descrarg);
133 template <
typename TransformType> Ref<TwoBodyThreeCenterMOIntsTransform>
134 MOIntsTransformFactory::twobody_transform(
const std::string& name,
135 const Ref<TwoBodyThreeCenterIntDescr>& descrarg) {
136 Ref<TwoBodyThreeCenterMOIntsTransform> result =
new TransformType(name,
this,descrarg,space1_,space2_,space3_);
139 result->set_top_mole(top_mole_);
146 #endif // end of header guard
A template class that maintains references counts.
Definition: ref.h:361
Definition: transform_factory.timpl.h:85
TwoBodyMOIntsTransform_ixjy computes (ix|jy) integrals using parallel integrals-direct AO->MO transfo...
Definition: transform_ixjy.h:41
bool null() const
Return true if this is a reference to a null object.
Definition: ref.h:423
void evaluate(sc::Ref< sc::OneBodyInt > &engine, const std::vector< int > &P, const std::vector< int > &Q, TensorRef< double, 2, TensorRowMajor > &ints)
Evaluate set of shell blocks of integrals (p|O|q)
Definition: integrals.hpp:206
TwoBodyMOIntsTransform_ixjy_df computes (ix|jy) integrals using parallel integral-direct density-fitt...
Definition: transform_ixjy_df.h:44
TwoBodyMOIntsTransform_iRjS computes (iR|jS), or <ij|RS> integrals, where R and S are atomic orbitals...
Definition: transform_iRjS.h:39
Definition: transform_factory.timpl.h:93
Definition: transform_factory.h:71
TwoBodyMOIntsTransform_ikjy computes (ik|jy) integrals using parallel integrals-direct AO->MO transfo...
Definition: transform_ikjy.h:41
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
Definition: transform_factory.timpl.h:109
Generated at Sun Jan 26 2020 23:23:58 for MPQC
3.0.0-alpha using the documentation package Doxygen
1.8.16.