1#ifndef PARENTHESIS_TRIPLES
2#define PARENTHESIS_TRIPLES
20 IrmlerTensor(std::vector<int64_t> lens_, int64_t order_, std::vector<F> data_)
30 std::array<int64_t, 3>
refs;
32 auto *p = std::find(
refs.begin(),
refs.end(), r);
34 const int64_t idx(std::distance(
refs.begin(), p));
38 :
tensors({
nullptr,
nullptr,
nullptr})
71 getEnergy(
const double epsijk,
const double *Tabc_,
const double *Zabc_);
#define ALGORITHM_REGISTRAR_DECLARATION(NAME)
Auxiliary macro declaring the algorithm registrar for the algorithm type of the given name....
Definition Algorithm.hpp:169
Definition Algorithm.hpp:26
Definition ParenthesisTriples.hpp:42
int64_t NvCube
Definition ParenthesisTriples.hpp:59
void doublesContribution(const std::array< int64_t, 3 > &ijk, IJKPointer integralContainer, double *scratchV, double *scratchO, double *output)
Definition ParenthesisTriples.cxx:302
int64_t Nv
Definition ParenthesisTriples.hpp:58
virtual void run()
Calculates perturbative triples correction, third attemp.
Definition ParenthesisTriples.cxx:701
double * Vppph
Definition ParenthesisTriples.hpp:65
double * Tai
Definition ParenthesisTriples.hpp:63
double * realGai
Definition ParenthesisTriples.hpp:67
double * Vabij
Definition ParenthesisTriples.hpp:65
double * realGab
Definition ParenthesisTriples.hpp:67
double * Tabc
Definition ParenthesisTriples.hpp:60
void singlesContribution(const std::array< int64_t, 3 > &ijk, double *scratchO, double *output)
Definition ParenthesisTriples.cxx:515
double * scratch
Definition ParenthesisTriples.hpp:62
double * epsa
Definition ParenthesisTriples.hpp:64
double * imagGai
Definition ParenthesisTriples.hpp:68
double * epsi
Definition ParenthesisTriples.hpp:64
virtual void dryRun()
Dry run for perturbative triples correction, third attemp.
Definition ParenthesisTriples.cxx:925
double * Vhphh
Definition ParenthesisTriples.hpp:65
double * Vpppijk
Definition ParenthesisTriples.hpp:66
bool particleDiagram
Definition ParenthesisTriples.hpp:69
IJKPointer getVpppijkOnTheFly(const std::array< int64_t, 3 > &ijk, VectorTensor< double > &vtensor)
Definition ParenthesisTriples.cxx:644
int64_t NG
Definition ParenthesisTriples.hpp:58
double * Zabc
Definition ParenthesisTriples.hpp:61
double * Tabij
Definition ParenthesisTriples.hpp:63
double * imagGab
Definition ParenthesisTriples.hpp:67
void getVpppijkFromVertex(const std::array< int64_t, 3 > &ijk, double *scratchO, double *output)
Definition ParenthesisTriples.cxx:543
double getEnergy(const double epsijk, const double *Tabc_, const double *Zabc_)
Definition ParenthesisTriples.cxx:81
bool holeDiagram
Definition ParenthesisTriples.hpp:69
virtual ~ParenthesisTriples()
Definition ParenthesisTriples.cxx:23
int64_t No
Definition ParenthesisTriples.hpp:58
Definition Algorithm.hpp:10
Caclulates perturbative triples correction, third attemp.
Definition ParenthesisTriples.hpp:10
double * j
Definition ParenthesisTriples.hpp:11
double * k
Definition ParenthesisTriples.hpp:11
double * i
Definition ParenthesisTriples.hpp:11
Definition ParenthesisTriples.hpp:15
int64_t order
Definition ParenthesisTriples.hpp:17
std::vector< int64_t > lens
Definition ParenthesisTriples.hpp:16
std::vector< F > data
Definition ParenthesisTriples.hpp:18
IrmlerTensor(std::vector< int64_t > lens_, int64_t order_, std::vector< F > data_)
Definition ParenthesisTriples.hpp:20
Definition ParenthesisTriples.hpp:27
std::array< IrmlerTensor< F > *, 3 > tensors
Definition ParenthesisTriples.hpp:29
std::array< int64_t, 3 > refs
Definition ParenthesisTriples.hpp:30
static const int64_t NO_REF
Definition ParenthesisTriples.hpp:28
IrmlerTensor< F > * withReference(int64_t r)
Definition ParenthesisTriples.hpp:31
VectorTensor()
Definition ParenthesisTriples.hpp:37