20 #ifndef _libint2_src_bin_libint_cr11tig1211_h_ 21 #define _libint2_src_bin_libint_cr11tig1211_h_ 23 #include <generic_rr.h> 24 #include <tig12_11_11.h> 25 #include <gaussoper.h> 33 template <
class BFSet>
36 GenIntegralSet_11_11<BFSet,TiG12,mType> >
44 static const unsigned int max_nchildren = 8;
46 using ParentType::Instance;
52 using ParentType::RecurrenceRelation::expr_;
53 using ParentType::RecurrenceRelation::nflops_;
54 using ParentType::target_;
55 using ParentType::is_simple;
60 static std::string descr() {
return "CR"; }
75 const int i = target_->oper()->descr().K();
85 if (b.contracted() || target_->oper()->descr().contracted())
89 if (d.contracted() || target_->oper()->descr().contracted())
97 for(
int xyz=0; xyz<3; ++xyz) {
101 if (is_simple()) expr_ *= Scalar(2.0) * Scalar(
"gamma");
107 for(
int xyz=0; xyz<3; ++xyz) {
111 if (is_simple()) expr_ *= Scalar(-2.0) * Scalar(
"gamma");
117 auto ab_G0_cd = factory.
make_child(a,b,c,d,0u,G0);
119 expr_ += Scalar(3.0) * Scalar(
"gamma") * ab_G0_cd;
121 auto ab_G2_cd = factory.
make_child(a,b,c,d,0u,G2);
123 expr_ += Scalar(-2.0) * Scalar(
"gamma") * Scalar(
"gamma") * ab_G2_cd;
R12_k_G12 is a two-body operator of form r_{12}^k * exp(- * r_{12}), where k is an integer and is a ...
Definition: oper.h:298
const SafePtr< DGVertex > & make_child(const F &A, const F &B, const F &C, const F &D, const AuxIndexType &aux=AuxIndexType(), const OperType &oper=OperType())
make_child
Definition: generic_rr.h:157
Defaults definitions for various parameters assumed by Libint.
Definition: algebra.cc:23
BraketPair< F, PKet > _pket(const F &f1, const F &f2)
Physicists ket.
Definition: braket.h:448
Definition: stdarray.h:18
Definition: prefactors.h:159
LinearCombination< SafePtr< DGVertex >, BraketPair< F, BKType > > Nabla1(const BraketPair< F, BKType > &bkt, int xyz)
Applies Nabla1 to a physicists' braket.
Definition: gaussoper.h:131
GenOper is a single operator described by descriptor Descr.
Definition: oper.h:152
Generic integral over a two-body operator with one bfs for each particle in bra and ket...
Definition: integral_11_11.h:32
Compute relation for 2-e integrals of the Ti_G12 operators.
Definition: comp_11_tig12_11.h:34
void wedge(const LinearCombination< SafePtr< DGVertex >, BraketPair< F, PBra > > &bra_lc, const LinearCombination< SafePtr< DGVertex >, BraketPair< F, PKet > > &ket_lc, const AuxIndexType &aux=AuxIndexType(), const OperType &oper=OperType())
take a wedge product of various (linear combinations of) brakets
Definition: generic_rr.h:191
RRImpl must inherit GenericRecurrenceRelation<RRImpl>
Definition: generic_rr.h:48
QuantumNumbersA<T,N> is a set of N quantum numbers of type T implemented in terms of a C-style array...
Definition: quanta.h:198
these objects help to construct BraketPairs
Definition: braket.h:442
R12k_R12l_G12 is a two-body operator of form ( r_{12x}^kx * r_{12y}^ky * r_{12z}^kz ) * (r_{12x}^lx *...
Definition: oper.h:322
Set of basis functions.
Definition: bfset.h:41
LinearCombination< SafePtr< DGVertex >, BraketPair< F, BKType > > Nabla2(const BraketPair< F, BKType > &bkt, int xyz)
Applies Nabla2 to a physicists' braket.
Definition: gaussoper.h:164
static bool directional()
This relation is not directional.
Definition: comp_11_tig12_11.h:49
BraketPair< F, PBra > _pbra(const F &f1, const F &f2)
Physicists bra.
Definition: braket.h:444
Helps GenericRecurrenceRelation to work around the compiler problem with make_child.
Definition: generic_rr.h:148