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

#include <CcsdtEnergyFromCoulombIntegrals.hpp>

Inheritance diagram for sisi4s::CcsdtEnergyFromCoulombIntegrals:
Collaboration diagram for sisi4s::CcsdtEnergyFromCoulombIntegrals:

Public Member Functions

virtual std::string getName ()
 
 CcsdtEnergyFromCoulombIntegrals (std::vector< Argument > const &argumentList)
 
virtual ~CcsdtEnergyFromCoulombIntegrals ()
 
virtual std::string getAbbreviation ()
 Returns the abbreviation of the concrete algorithm, e.g. "Ccd", "Dcd".
 
template<typename F >
std::shared_ptr< FockVector< F > > getResiduumTemplate (const int iterationStep, const std::shared_ptr< const FockVector< F > > &amplitudes)
 
virtual std::shared_ptr< FockVector< double > > getResiduum (const int iteration, const std::shared_ptr< const FockVector< double > > &amplitudes)
 Computes and returns the residuum of the given amplitudes.
 
virtual std::shared_ptr< FockVector< complex > > getResiduum (const int iteration, const std::shared_ptr< const FockVector< complex > > &amplitudes)
 Computes and returns the residuum of the given amplitudes.
 
- Public Member Functions inherited from sisi4s::ClusterSinglesDoublesTriplesAlgorithm
 ClusterSinglesDoublesTriplesAlgorithm (std::vector< Argument > const &argumentList)
 
virtual ~ClusterSinglesDoublesTriplesAlgorithm ()
 
virtual void run ()
 Calculates the energy of a ClusterSinglesDoubles algorithm.
 
virtual std::string getAbbreviation ()=0
 Returns the abbreviation of the concrete algorithm, e.g. "Ccd", "Dcd".
 
- Public Member Functions inherited from sisi4s::ClusterSinglesDoublesAlgorithm
 ClusterSinglesDoublesAlgorithm (std::vector< Argument > const &argumentList)
 
virtual ~ClusterSinglesDoublesAlgorithm ()
 
virtual void run ()
 Calculates the energy of a ClusterSinglesDoubles algorithm.
 
virtual std::string getAbbreviation ()=0
 Returns the abbreviation of the concrete algorithm, e.g. "Ccd", "Dcd".
 
- 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< CcsdtEnergyFromCoulombIntegralsregistrar_
 
static int64_t constexpr DEFAULT_SLICE_SIZE = -1
 
static int64_t constexpr DEFAULT_DISTINGUISHABLE = 0
 
- Static Public Attributes inherited from sisi4s::ClusterSinglesDoublesTriplesAlgorithm
static double constexpr DEFAULT_LEVEL_SHIFT = 0.0
 
- Static Public Attributes inherited from sisi4s::ClusterSinglesDoublesAlgorithm
static int constexpr DEFAULT_MAX_ITERATIONS = 16
 Defines the default number of iterations (16).
 
static double constexpr DEFAULT_ENERGY_CONVERGENCE = 1E-6
 
static double constexpr DEFAULT_AMPLITUDES_CONVERGENCE = 1E-5
 
static double constexpr DEFAULT_LEVEL_SHIFT = 0.0
 

Additional Inherited Members

- Public Attributes inherited from sisi4s::Algorithm
std::string note
 
bool fallible = false
 
std::map< std::string, std::string > arguments
 
- Protected Member Functions inherited from sisi4s::ClusterSinglesDoublesTriplesAlgorithm
template<typename F >
run ()
 Calculates the energy of a ClusterSinglesDoubles algorithm.
 
- Protected Member Functions inherited from sisi4s::ClusterSinglesDoublesAlgorithm
template<typename F >
run ()
 
virtual std::shared_ptr< FockVector< double > > getResiduum (const int iteration, const std::shared_ptr< const FockVector< double > > &amplitudes)=0
 Computes and returns the residuum of the given amplitudes.
 
virtual std::shared_ptr< FockVector< complex > > getResiduum (const int iteration, const std::shared_ptr< const FockVector< complex > > &amplitudes)=0
 Computes and returns the residuum of the given amplitudes.
 
template<typename F >
getEnergy (const std::shared_ptr< const FockVector< F > > &amplitdues)
 Computes and returns the energy of the given amplitudes.
 
template<typename F >
void estimateAmplitudesFromResiduum (const std::shared_ptr< FockVector< F > > &residuum, const std::shared_ptr< const FockVector< F > > &amplitudes)
 Calculates an improved estimate of the amplitudes provided the given the residuum. $T_{ij\ldots}^{ab\ldots} = \frac{R_{ij\ldots}^{a\ldots}}
{-\Delta_{ij\ldots}^{ab\ldots}}$ with $\Delta_{ij\ldots}^{ab\ldots} =
\varepsilon_i+\ldots-\varepsilon_a-\ldots$.
 
template<typename F >
void calculateExcitationEnergies (Tensor< F > &D, const std::string &indices)
 Calculates eps_a+eps_b+...-eps_i-eps_j-... into D^ab..._ij...
 
template<typename F >
void dryAmplitudesFromResiduum (sisi4s::DryTensor< F > &R)
 Dry run for amplitudesFromResiduum.
 
template<typename F >
std::shared_ptr< FockVector< F > > createAmplitudes (std::vector< std::string > amplitudeNames, std::vector< std::vector< TensorIndex > > amplitudeLens, std::vector< std::string > amplitudeIndices)
 
template<typename F >
void storeAmplitudes (const std::shared_ptr< const FockVector< F > > &amplitudes, std::vector< std::string > names)
 
Tensor< double > * sliceCoupledCoulombIntegrals (const std::shared_ptr< const FockVector< double > > &amplitudes, int a, int b, int integralsSliceSize)
 Calculates and returns one slice Xxycd of the Coulomb integrals $V_{cd}^{ab}$ coupled to the singles amplitudes. The indices x and y are restricted to the range {No+a, ..., No+a+No-1} and {No+b, ..., No+b+No-1}, respectively. The caller is responsible for deleting the dynamically allocated result tensor.
 
Tensor< complex > * sliceCoupledCoulombIntegrals (const std::shared_ptr< const FockVector< complex > > &amplitudes, int a, int b, int integralsSliceSize)
 
Tensor< double > * sliceAmplitudesFromCoupledCoulombFactors (const std::shared_ptr< const FockVector< double > > &amplitudes, int a, int b, int factorsSliceSize)
 Calculates and returns one slice Fabij of the residuum from the dressed Coulomb factors. The slice is computed from Rx and Ry and are restricted to the range {a, ..., factorsSliceSize+a-1} and {b, ..., factorsSliceSize+b-1}, respectively. The caller is responsible for deleting the dynamically allocated result tensor.
 
Tensor< complex > * sliceAmplitudesFromCoupledCoulombFactors (const std::shared_ptr< const FockVector< complex > > &amplitudes, int a, int b, int factorsSliceSize)
 
template<typename F >
void sliceIntoResiduum (Tensor< F > &Rxyij, int a0, int b0, Tensor< F > &Rabij)
 Adds the given slice of the residuum tensor Rxyij to the entire residuum tensor Rabij at the respective index range.
 
std::string getCapitalizedAbbreviation ()
 The abbreviation of the algorithm in capital letters.
 
std::string getDataName (const std::string &type, const std::string &data)
 

Constructor & Destructor Documentation

◆ CcsdtEnergyFromCoulombIntegrals()

sisi4s::CcsdtEnergyFromCoulombIntegrals::CcsdtEnergyFromCoulombIntegrals ( std::vector< Argument > const &  argumentList)
inline

◆ ~CcsdtEnergyFromCoulombIntegrals()

virtual sisi4s::CcsdtEnergyFromCoulombIntegrals::~CcsdtEnergyFromCoulombIntegrals ( )
inlinevirtual

Member Function Documentation

◆ getAbbreviation()

virtual std::string sisi4s::CcsdtEnergyFromCoulombIntegrals::getAbbreviation ( )
inlinevirtual

Returns the abbreviation of the concrete algorithm, e.g. "Ccd", "Dcd".

Implements sisi4s::ClusterSinglesDoublesTriplesAlgorithm.

Here is the caller graph for this function:

◆ getName()

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

Implements sisi4s::Algorithm.

◆ getResiduum() [1/2]

virtual std::shared_ptr< FockVector< complex > > sisi4s::CcsdtEnergyFromCoulombIntegrals::getResiduum ( const int  iteration,
const std::shared_ptr< const FockVector< complex > > &  amplitudes 
)
virtual

Computes and returns the residuum of the given amplitudes.

Implements sisi4s::ClusterSinglesDoublesAlgorithm.

◆ getResiduum() [2/2]

std::shared_ptr< FockVector< double > > CcsdtEnergyFromCoulombIntegrals::getResiduum ( const int  iteration,
const std::shared_ptr< const FockVector< double > > &  amplitudes 
)
virtual

Computes and returns the residuum of the given amplitudes.

Implements sisi4s::ClusterSinglesDoublesAlgorithm.

◆ getResiduumTemplate()

template<typename F >
std::shared_ptr< FockVector< F > > CcsdtEnergyFromCoulombIntegrals::getResiduumTemplate ( const int  iterationStep,
const std::shared_ptr< const FockVector< F > > &  amplitudes 
)
Here is the call graph for this function:

Member Data Documentation

◆ DEFAULT_DISTINGUISHABLE

int64_t constexpr sisi4s::CcsdtEnergyFromCoulombIntegrals::DEFAULT_DISTINGUISHABLE = 0
staticconstexpr

◆ DEFAULT_SLICE_SIZE

int64_t constexpr sisi4s::CcsdtEnergyFromCoulombIntegrals::DEFAULT_SLICE_SIZE = -1
staticconstexpr

◆ registrar_

sisi4s::AlgorithmRegistrar< CcsdtEnergyFromCoulombIntegrals > CcsdtEnergyFromCoulombIntegrals::registrar_
static

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