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

Caclulates the Coulomb Integrals $V_{ij}^{ab}, V_{bj}^{ai},
V_{kl}^{ij}, V_{cd}^{ab}, V_{ka}^{ij}, V_{ci}^{ab}$ (if given) from the Coulomb Vertex $\Gamma_{rG}^q$ and stores them in CTF Tensors Vabij, Vaibj, Vijkl, Vabcd, Vijka, and Vabci respectively. The arguments of the integrals are PPPP, PPHH, HHHH, PHPH, HHHP, and PPPHCoulombIntegrals. More...

#include <CoulombIntegralsFromVertex.hpp>

Inheritance diagram for sisi4s::CoulombIntegralsFromVertex:
Collaboration diagram for sisi4s::CoulombIntegralsFromVertex:

Public Member Functions

virtual std::string getName ()
 
 CoulombIntegralsFromVertex (std::vector< Argument > const &argumentList)
 
virtual ~CoulombIntegralsFromVertex ()
 
virtual void run ()
 Calculates Coulomb integrals Vabcd,Vabij,Vaibj,Vabci,Vijka,Vijkl from GammaGai,GammaGab,GammaGij Coulomb Vertices. Arguments can be any combination of the sort PPPP, PHPH, PPHH, HHHH, HHHP, PPPHCoulombIntegrals.
 
virtual void dryRun ()
 Dry run for calculating Coulomb integrals Vabcd,Vabij,Vaibj,Vabci,Vijka Vijkl from GammaGai,GammaGab,GammaGij Coulomb Vertices. Arguments can be any combination of the sort PPPP, PHPH, PPHH, HHHH, HHHP, PPPHCoulombIntegrals.
 
- 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< CoulombIntegralsFromVertexregistrar_
 

Protected Member Functions

void calculateRealIntegrals ()
 
void calculateComplexIntegrals ()
 
void dryCalculateRealIntegrals ()
 
void dryCalculateComplexIntegrals ()
 

Protected Attributes

Tensor< complex > * GammaGai
 
Tensor< complex > * GammaGia
 
Tensor< complex > * GammaGab
 
Tensor< complex > * GammaGij
 
std::array< int, 4 > syms
 
std::array< int, 4 > vvvv
 
std::array< int, 4 > vovo
 
std::array< int, 4 > vvoo
 
std::array< int, 4 > voov
 
std::array< int, 4 > oovv
 
std::array< int, 4 > oooo
 
std::array< int, 4 > ooov
 
std::array< int, 4 > vooo
 
std::array< int, 4 > vvvo
 
std::array< int, 4 > ovoo
 
std::array< int, 4 > ovov
 
std::array< int, 4 > ovvv
 
std::array< int, 4 > vvov
 
std::array< int, 4 > ovvo
 
std::array< int, 4 > oovo
 
std::array< int, 4 > vovv
 

Additional Inherited Members

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

Detailed Description

Caclulates the Coulomb Integrals $V_{ij}^{ab}, V_{bj}^{ai},
V_{kl}^{ij}, V_{cd}^{ab}, V_{ka}^{ij}, V_{ci}^{ab}$ (if given) from the Coulomb Vertex $\Gamma_{rG}^q$ and stores them in CTF Tensors Vabij, Vaibj, Vijkl, Vabcd, Vijka, and Vabci respectively. The arguments of the integrals are PPPP, PPHH, HHHH, PHPH, HHHP, and PPPHCoulombIntegrals.

Constructor & Destructor Documentation

◆ CoulombIntegralsFromVertex()

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

◆ ~CoulombIntegralsFromVertex()

CoulombIntegralsFromVertex::~CoulombIntegralsFromVertex ( )
virtual

Member Function Documentation

◆ calculateComplexIntegrals()

void CoulombIntegralsFromVertex::calculateComplexIntegrals ( )
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateRealIntegrals()

void CoulombIntegralsFromVertex::calculateRealIntegrals ( )
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dryCalculateComplexIntegrals()

void CoulombIntegralsFromVertex::dryCalculateComplexIntegrals ( )
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dryCalculateRealIntegrals()

void CoulombIntegralsFromVertex::dryCalculateRealIntegrals ( )
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dryRun()

void CoulombIntegralsFromVertex::dryRun ( )
virtual

Dry run for calculating Coulomb integrals Vabcd,Vabij,Vaibj,Vabci,Vijka Vijkl from GammaGai,GammaGab,GammaGij Coulomb Vertices. Arguments can be any combination of the sort PPPP, PHPH, PPHH, HHHH, HHHP, PPPHCoulombIntegrals.

Reimplemented from sisi4s::Algorithm.

Here is the call graph for this function:

◆ getName()

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

Implements sisi4s::Algorithm.

◆ run()

void CoulombIntegralsFromVertex::run ( )
virtual

Calculates Coulomb integrals Vabcd,Vabij,Vaibj,Vabci,Vijka,Vijkl from GammaGai,GammaGab,GammaGij Coulomb Vertices. Arguments can be any combination of the sort PPPP, PHPH, PPHH, HHHH, HHHP, PPPHCoulombIntegrals.

Implements sisi4s::Algorithm.

Here is the call graph for this function:

Member Data Documentation

◆ GammaGab

Tensor<complex>* sisi4s::CoulombIntegralsFromVertex::GammaGab
protected

◆ GammaGai

Tensor<complex>* sisi4s::CoulombIntegralsFromVertex::GammaGai
protected

◆ GammaGia

Tensor<complex>* sisi4s::CoulombIntegralsFromVertex::GammaGia
protected

◆ GammaGij

Tensor<complex>* sisi4s::CoulombIntegralsFromVertex::GammaGij
protected

◆ oooo

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::oooo
protected

◆ ooov

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::ooov
protected

◆ oovo

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::oovo
protected

◆ oovv

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::oovv
protected

◆ ovoo

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::ovoo
protected

◆ ovov

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::ovov
protected

◆ ovvo

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::ovvo
protected

◆ ovvv

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::ovvv
protected

◆ registrar_

sisi4s::AlgorithmRegistrar< CoulombIntegralsFromVertex > CoulombIntegralsFromVertex::registrar_
static

◆ syms

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::syms
protected

◆ vooo

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::vooo
protected

◆ voov

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::voov
protected

◆ vovo

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::vovo
protected

◆ vovv

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::vovv
protected

◆ vvoo

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::vvoo
protected

◆ vvov

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::vvov
protected

◆ vvvo

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::vvvo
protected

◆ vvvv

std::array<int, 4> sisi4s::CoulombIntegralsFromVertex::vvvv
protected

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