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

#include <UccsdtqAmplitudesFromCoulombIntegrals.hpp>

Inheritance diagram for sisi4s::UccsdtqAmplitudesFromCoulombIntegrals:
Collaboration diagram for sisi4s::UccsdtqAmplitudesFromCoulombIntegrals:

Public Member Functions

virtual std::string getName ()
 
 UccsdtqAmplitudesFromCoulombIntegrals (std::vector< Argument > const &argumentList)
 
virtual ~UccsdtqAmplitudesFromCoulombIntegrals ()
 
virtual void run ()
 Calculates the energy of a ClusterSinglesDoubles algorithm.
 
virtual std::string getAbbreviation ()
 Returns the abbreviation of the concrete algorithm, e.g. "Ccd", "Dcd".
 
- Public Member Functions inherited from sisi4s::ClusterSinglesDoublesTriplesQuadruplesAlgorithm
 ClusterSinglesDoublesTriplesQuadruplesAlgorithm (std::vector< Argument > const &argumentList)
 
virtual ~ClusterSinglesDoublesTriplesQuadruplesAlgorithm ()
 
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< UccsdtqAmplitudesFromCoulombIntegralsregistrar_
 
- Static Public Attributes inherited from sisi4s::ClusterSinglesDoublesTriplesQuadruplesAlgorithm
static int constexpr DEFAULT_MAX_ITERATIONS = 16
 Defines the default number of iterations (16).
 
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
 

Protected Member Functions

virtual std::shared_ptr< FockVector< double > > getResiduum (const int iteration, const std::shared_ptr< const FockVector< double > > &amplitudes)
 Implements the iterate method with the DRCCD iteration.
 
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.
 
template<typename F >
std::shared_ptr< FockVector< F > > getResiduumTemplate (const int iteration, const std::shared_ptr< const FockVector< F > > &amplitudes)
 
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)
 

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

◆ UccsdtqAmplitudesFromCoulombIntegrals()

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

◆ ~UccsdtqAmplitudesFromCoulombIntegrals()

UccsdtqAmplitudesFromCoulombIntegrals::~UccsdtqAmplitudesFromCoulombIntegrals ( )
virtual

Member Function Documentation

◆ getAbbreviation()

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

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

Implements sisi4s::ClusterSinglesDoublesTriplesQuadruplesAlgorithm.

Here is the caller graph for this function:

◆ getName()

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

Implements sisi4s::Algorithm.

◆ getResiduum() [1/2]

std::shared_ptr< FockVector< complex > > UccsdtqAmplitudesFromCoulombIntegrals::getResiduum ( const int  iteration,
const std::shared_ptr< const FockVector< complex > > &  amplitudes 
)
protectedvirtual

Computes and returns the residuum of the given amplitudes.

Implements sisi4s::ClusterSinglesDoublesAlgorithm.

Here is the call graph for this function:

◆ getResiduum() [2/2]

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

Implements the iterate method with the DRCCD iteration.

Parameters
[in]iIteration number

Implements sisi4s::ClusterSinglesDoublesAlgorithm.

◆ getResiduumTemplate()

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

◆ run()

void UccsdtqAmplitudesFromCoulombIntegrals::run ( )
virtual

Calculates the energy of a ClusterSinglesDoubles algorithm.

Reimplemented from sisi4s::ClusterSinglesDoublesTriplesQuadruplesAlgorithm.

Here is the call graph for this function:

Member Data Documentation

◆ registrar_

sisi4s::AlgorithmRegistrar< UccsdtqAmplitudesFromCoulombIntegrals > UccsdtqAmplitudesFromCoulombIntegrals::registrar_
static

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