sisi4s
Loading...
Searching...
No Matches
sisi4s::ParenthesisTriples Class Reference

#include <ParenthesisTriples.hpp>

Inheritance diagram for sisi4s::ParenthesisTriples:
Collaboration diagram for sisi4s::ParenthesisTriples:

Public Member Functions

virtual std::string getName ()
 
 ParenthesisTriples (std::vector< Argument > const &argumentList)
 
virtual ~ParenthesisTriples ()
 
virtual void run ()
 Calculates perturbative triples correction, third attemp.
 
virtual void dryRun ()
 Dry run for perturbative triples correction, third attemp.
 
- Public Member Functions inherited from sisi4s::Algorithm
 Algorithm (std::vector< Argument > const &argumentList)
 
virtual ~Algorithm ()
 
virtual std::string getName ()=0
 
virtual void run ()=0
 
virtual void dryRun ()
 The dryRun estimates resource consumption, especially memory and processor time.
 
bool isArgumentGiven (std::string const &argumentName)
 
std::string getTextArgument (std::string const &argumentName)
 
std::string getTextArgument (std::string const &argumentName, std::string const &defaultValue)
 
bool getBooleanArgument (std::string const &name)
 
bool getBooleanArgument (std::string const &name, bool const &defaultValue)
 
int64_t getIntegerArgument (std::string const &argumentName)
 
int64_t getIntegerArgument (std::string const &argumentName, int64_t const defaultValue)
 
real getRealArgument (std::string const &argumentName)
 
real getRealArgument (std::string const &argumentName, real const defaultValue)
 
template<typename F = real, typename T = Tensor<F>>
T * getTensorArgument (std::string const &argumentName)
 
template<typename F = real, typename C = std::vector<F>>
C * getContainerArgument (std::string const &argumentName)
 
template<typename F = real, typename C = std::vector<F>>
void allocateContainerArgument (std::string const &argumentName, C *container)
 
std::vector< std::string > getGivenArgumentNames () const
 
void checkArgumentsOrDie (const std::vector< std::string > args) const
 
template<typename F = real, typename T = Tensor<F>>
void allocatedTensorArgument (std::string const &argumentName, T *tensor)
 Specifies the location of an output tensor data.
 
void setRealArgument (std::string const &argumentName, real const value)
 
void setIntegerArgument (std::string const &argumentName, int const value)
 
real getRealArgumentFromInteger (IntegerData *data)
 
real getRealArgumentFromTensor (TensorData< real > *data)
 
template<typename F = real, typename T = Tensor<F>>
T * getTensorArgumentFromReal (RealData *realData)
 Converts the given real data into a scalar tensor.
 
DatagetArgumentData (std::string const &argumentName)
 

Static Public Attributes

static sisi4s::AlgorithmRegistrar< ParenthesisTriplesregistrar_
 

Protected Member Functions

double getEnergy (const double epsijk, const double *Tabc_, const double *Zabc_)
 
void doublesContribution (const std::array< int64_t, 3 > &ijk, IJKPointer integralContainer, double *scratchV, double *scratchO, double *output)
 
void singlesContribution (const std::array< int64_t, 3 > &ijk, double *scratchO, double *output)
 
void getVpppijkFromVertex (const std::array< int64_t, 3 > &ijk, double *scratchO, double *output)
 
IJKPointer getVpppijkOnTheFly (const std::array< int64_t, 3 > &ijk, VectorTensor< double > &vtensor)
 

Protected Attributes

int64_t No
 
int64_t Nv
 
int64_t NG
 
int64_t NvCube
 
double * Tabc
 
double * Zabc
 
double * scratch
 
double * Tabij
 
double * Tai
 
double * epsi
 
double * epsa
 
double * Vabij
 
double * Vhphh
 
double * Vppph = nullptr
 
double * Vpppijk = nullptr
 
double * realGab = nullptr
 
double * imagGab = nullptr
 
double * realGai = nullptr
 
double * imagGai = nullptr
 
bool particleDiagram = true
 
bool holeDiagram = true
 

Additional Inherited Members

- Public Attributes inherited from sisi4s::Algorithm
std::string note
 
bool fallible = false
 
std::map< std::string, std::string > arguments
 

Constructor & Destructor Documentation

◆ ParenthesisTriples()

ParenthesisTriples::ParenthesisTriples ( std::vector< Argument > const &  argumentList)

◆ ~ParenthesisTriples()

ParenthesisTriples::~ParenthesisTriples ( )
virtual

Member Function Documentation

◆ doublesContribution()

void ParenthesisTriples::doublesContribution ( const std::array< int64_t, 3 > &  ijk,
IJKPointer  integralContainer,
double *  scratchV,
double *  scratchO,
double *  output 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dryRun()

void ParenthesisTriples::dryRun ( )
virtual

Dry run for perturbative triples correction, third attemp.

Reimplemented from sisi4s::Algorithm.

◆ getEnergy()

double ParenthesisTriples::getEnergy ( const double  epsijk,
const double *  Tabc_,
const double *  Zabc_ 
)
protected

◆ getName()

virtual std::string sisi4s::ParenthesisTriples::getName ( )
inlinevirtual

Implements sisi4s::Algorithm.

◆ getVpppijkFromVertex()

void ParenthesisTriples::getVpppijkFromVertex ( const std::array< int64_t, 3 > &  ijk,
double *  scratchO,
double *  output 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getVpppijkOnTheFly()

IJKPointer ParenthesisTriples::getVpppijkOnTheFly ( const std::array< int64_t, 3 > &  ijk,
VectorTensor< double > &  vtensor 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ run()

void ParenthesisTriples::run ( )
virtual

Calculates perturbative triples correction, third attemp.

Implements sisi4s::Algorithm.

Here is the call graph for this function:

◆ singlesContribution()

void ParenthesisTriples::singlesContribution ( const std::array< int64_t, 3 > &  ijk,
double *  scratchO,
double *  output 
)
protected
Here is the caller graph for this function:

Member Data Documentation

◆ epsa

double * sisi4s::ParenthesisTriples::epsa
protected

◆ epsi

double* sisi4s::ParenthesisTriples::epsi
protected

◆ holeDiagram

bool sisi4s::ParenthesisTriples::holeDiagram = true
protected

◆ imagGab

double * sisi4s::ParenthesisTriples::imagGab = nullptr
protected

◆ imagGai

double * sisi4s::ParenthesisTriples::imagGai = nullptr
protected

◆ NG

int64_t sisi4s::ParenthesisTriples::NG
protected

◆ No

int64_t sisi4s::ParenthesisTriples::No
protected

◆ Nv

int64_t sisi4s::ParenthesisTriples::Nv
protected

◆ NvCube

int64_t sisi4s::ParenthesisTriples::NvCube
protected

◆ particleDiagram

bool sisi4s::ParenthesisTriples::particleDiagram = true
protected

◆ realGab

double* sisi4s::ParenthesisTriples::realGab = nullptr
protected

◆ realGai

double * sisi4s::ParenthesisTriples::realGai = nullptr
protected

◆ registrar_

sisi4s::AlgorithmRegistrar< ParenthesisTriples > ParenthesisTriples::registrar_
static

◆ scratch

double* sisi4s::ParenthesisTriples::scratch
protected

◆ Tabc

double* sisi4s::ParenthesisTriples::Tabc
protected

◆ Tabij

double* sisi4s::ParenthesisTriples::Tabij
protected

◆ Tai

double * sisi4s::ParenthesisTriples::Tai
protected

◆ Vabij

double* sisi4s::ParenthesisTriples::Vabij
protected

◆ Vhphh

double * sisi4s::ParenthesisTriples::Vhphh
protected

◆ Vppph

double * sisi4s::ParenthesisTriples::Vppph = nullptr
protected

◆ Vpppijk

double* sisi4s::ParenthesisTriples::Vpppijk = nullptr
protected

◆ Zabc

double* sisi4s::ParenthesisTriples::Zabc
protected

The documentation for this class was generated from the following files: