1#ifndef CCSD_PERTURBATIVE_TRIPLES_COMPLEX_DEFINED
2#define CCSD_PERTURBATIVE_TRIPLES_COMPLEX_DEFINED
31 template <
typename F,
int Dummy = 0>
32 class CoulombVertex {};
35 class CoulombVertex<double, Dummy> {
49 class CoulombVertex<
complex, Dummy> {
51 CoulombVertex(Tensor<complex> *GammaFab, Tensor<complex> *GammaFai);
53 void getDoublesParticleContribution(SlicedCtfTensor<complex> &Tabij,
55 Tensor<complex> &DVabc);
58 Tensor<complex> *conjGammaFab;
59 SlicedCtfTensor<complex> *GammaFai;
65 Calculator(Tensor<F> *Tai,
69 Tensor<complex> *GammaFab,
70 Tensor<complex> *GammaFai,
72 Tensor<double> *epsa);
75 void addDoublesHoleContribution(
const Map<3> &, Tensor<F> &);
76 Tensor<F> &getSinglesContribution(
const Map<3> &);
77 Tensor<F> &getEnergyDenominator(
const Map<3> &);
80 Tensor<F> *SVabc, *DVabc;
81 SlicedCtfTensor<F> *Tai, *Tabij, *Tabil;
82 SlicedCtfTensor<F> *Vabij, *Valij;
83 CoulombVertex<F> Gamma;
84 SlicedCtfTensor<F> *epsi;
#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
Caclulates perturbative triples correction.
Definition CcsdPerturbativeTriplesComplex.hpp:12
virtual ~CcsdPerturbativeTriplesComplex()
Definition CcsdPerturbativeTriplesComplex.cxx:20
virtual void dryRun()
Dry run for perturbative triples correction based on Helgaker book.
Definition CcsdPerturbativeTriplesComplex.cxx:351
virtual void run()
Calculates perturbative triples correction. Routine based on Helgaker book.
Definition CcsdPerturbativeTriplesComplex.cxx:32
Definition Permutation.hpp:9
Definition SlicedCtfTensor.hpp:12
@ F
Definition AngularMomentum.hpp:12
Definition Algorithm.hpp:10
CTF::Tensor< F > Tensor
Definition Tensor.hpp:9
Complex< real > complex
Definition Complex.hpp:17