sisi4s
Loading...
Searching...
No Matches
sisi4s::Algorithm Class Referenceabstract

#include <Algorithm.hpp>

Inherited by sisi4s::ApproximateCoulombVertex, sisi4s::ApproximateParticleHoleCoulombVertex, sisi4s::BasisSetExtrapolation, sisi4s::CcsdDiagrammaticDecomposition, sisi4s::CcsdEquationOfMotionDavidson, sisi4s::CcsdPerturbativeTriples, sisi4s::CcsdPerturbativeTriplesComplex, sisi4s::CcsdtEquationOfMotionDavidson, sisi4s::ClusterSinglesDoublesAlgorithm, sisi4s::ComplexTensorContraction, sisi4s::ComplexTensorNorm, sisi4s::ComplexTensorReader, sisi4s::ComplexTensorSum, sisi4s::ComplexTensorWriter, sisi4s::CoulombIntegralsFromGaussian, sisi4s::CoulombIntegralsFromRotatedCoulombIntegrals, sisi4s::CoulombIntegralsFromVertex, sisi4s::CoulombVertexDecomposition, sisi4s::CoulombVertexFromFactors, sisi4s::CoulombVertexReader, sisi4s::CoulombVertexSingularVectors, sisi4s::DefineHolesAndParticles, sisi4s::Delete, sisi4s::DoublesAmplitudesDecomposition, sisi4s::DoublesAmplitudesFromVertex, sisi4s::Exit, sisi4s::FcidumpReader, sisi4s::FcidumpWriter, sisi4s::FiniteSizeCorrection, sisi4s::FockMatrixFromCoulombIntegrals, sisi4s::FromComplexTensor, sisi4s::GenerateRandomComplexMatrix, sisi4s::GenerateRandomMatrix, sisi4s::GenerateRandomTensor, sisi4s::HartreeFockFromCoulombIntegrals, sisi4s::HartreeFockFromGaussian, sisi4s::MeanCorrelationHoleDepth, sisi4s::MoReader, sisi4s::Mp2NaturalOrbitals, sisi4s::NaturalTransitionOrbitalsFromRhoAI, sisi4s::Nop, sisi4s::NuclearRepulsionEnergy, sisi4s::OneBodyFromGaussian, sisi4s::OneBodyRotation, sisi4s::PQRSCoulombIntegralsToVertex, sisi4s::ParenthesisTriples, sisi4s::ParticleHoleCoulombVertexDecomposition, sisi4s::ParticleHoleCoulombVertexFromFactors, sisi4s::ParticleHoleCoulombVertexReader, sisi4s::ParticleHoleCoulombVertexSingularVectors, sisi4s::PerturbativeTriples, sisi4s::PseudoInverse, sisi4s::Read, sisi4s::SingleParticleOccupancies, sisi4s::SliceCoulombVertex, sisi4s::TensorAntisymmetrizer, sisi4s::TensorAntisymmetrizer2, sisi4s::TensorContraction, sisi4s::TensorGetMax, sisi4s::TensorNorm, sisi4s::TensorReader, sisi4s::TensorReduceijij, sisi4s::TensorSlicer, sisi4s::TensorSum, sisi4s::TensorUnrestricter, sisi4s::TensorWriter, sisi4s::UCcsdEAEquationOfMotionDavidson, sisi4s::UCcsdIPEquationOfMotionDavidson, sisi4s::UPerturbativeTriples, sisi4s::UegVertexGenerator, sisi4s::UnrestrictedCIS, sisi4s::UnrestrictedEquationOfMotionSinglesFromRpa, and sisi4s::Write.

Collaboration diagram for sisi4s::Algorithm:

Public Member Functions

 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)
 

Public Attributes

std::string note
 
bool fallible = false
 
std::map< std::string, std::string > arguments
 

Constructor & Destructor Documentation

◆ Algorithm()

Algorithm::Algorithm ( std::vector< Argument > const &  argumentList)
Here is the call graph for this function:

◆ ~Algorithm()

Algorithm::~Algorithm ( )
virtual

Member Function Documentation

◆ allocateContainerArgument()

template<typename F , typename C >
void Algorithm::allocateContainerArgument ( std::string const &  argumentName,
C *  container 
)
Here is the call graph for this function:

◆ allocatedTensorArgument()

template<typename F , typename T >
template void Algorithm::allocatedTensorArgument< Complex64, DryScalar< Complex64 > > ( std::string const &  argumentName,
T *  tensor 
)

Specifies the location of an output tensor data.

Parameters
[in]argumentNameThe argument name as specified in the sisi4s file
[in]tensorThe reference of the tensor data allocated by the caller and later freed by the system if not needed any further.
Note
often explicit instantiation may be necessary, e.g.
allocatedTensorArgument<complex>(complexTensor);
Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkArgumentsOrDie()

void sisi4s::Algorithm::checkArgumentsOrDie ( const std::vector< std::string >  args) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dryRun()

◆ getArgumentData()

Data * Algorithm::getArgumentData ( std::string const &  argumentName)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBooleanArgument() [1/2]

bool Algorithm::getBooleanArgument ( std::string const &  name)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBooleanArgument() [2/2]

bool Algorithm::getBooleanArgument ( std::string const &  name,
bool const &  defaultValue 
)
Here is the call graph for this function:

◆ getContainerArgument()

template<typename F , typename C >
C * Algorithm::getContainerArgument ( std::string const &  argumentName)
Here is the call graph for this function:

◆ getGivenArgumentNames()

std::vector< std::string > sisi4s::Algorithm::getGivenArgumentNames ( ) const
inline
Here is the caller graph for this function:

◆ getIntegerArgument() [1/2]

int64_t Algorithm::getIntegerArgument ( std::string const &  argumentName)
Here is the call graph for this function:

◆ getIntegerArgument() [2/2]

int64_t Algorithm::getIntegerArgument ( std::string const &  argumentName,
int64_t const  defaultValue 
)
Here is the call graph for this function:

◆ getName()

virtual std::string sisi4s::Algorithm::getName ( )
pure virtual

Implemented in sisi4s::ApproximateCoulombVertex, sisi4s::ApproximateParticleHoleCoulombVertex, sisi4s::BasisSetExtrapolation, sisi4s::DefineHolesAndParticles, sisi4s::CcsdDiagrammaticDecomposition, sisi4s::CcsdEnergyFromCoulombIntegrals, sisi4s::CcsdEnergyFromCoulombIntegralsReference, sisi4s::CcsdEquationOfMotionDavidson, sisi4s::CcsdPerturbativeTriples, sisi4s::CcsdPerturbativeTriplesComplex, sisi4s::CcsdtEnergyFromCoulombIntegrals, sisi4s::CcsdtEquationOfMotionDavidson, sisi4s::ComplexTensorContraction, sisi4s::ComplexTensorNorm, sisi4s::ComplexTensorReader, sisi4s::ComplexTensorSum, sisi4s::ComplexTensorWriter, sisi4s::CoulombIntegralsFromGaussian, sisi4s::CoulombIntegralsFromRotatedCoulombIntegrals, sisi4s::CoulombIntegralsFromVertex, sisi4s::CoulombVertexDecomposition, sisi4s::CoulombVertexFromFactors, sisi4s::CoulombVertexReader, sisi4s::CoulombVertexSingularVectors, sisi4s::Delete, sisi4s::DoublesAmplitudesDecomposition, sisi4s::DoublesAmplitudesFromVertex, sisi4s::DrccdEnergyFromCoulombIntegrals, sisi4s::Exit, sisi4s::FcidumpReader, sisi4s::FcidumpWriter, sisi4s::FiniteSizeCorrection, sisi4s::FockMatrixFromCoulombIntegrals, sisi4s::FromComplexTensor, sisi4s::GenerateRandomComplexMatrix, sisi4s::GenerateRandomMatrix, sisi4s::GenerateRandomTensor, sisi4s::HartreeFockFromCoulombIntegrals, sisi4s::HartreeFockFromGaussian, sisi4s::MeanCorrelationHoleDepth, sisi4s::MoReader, sisi4s::Mp2NaturalOrbitals, sisi4s::NaturalTransitionOrbitalsFromRhoAI, sisi4s::Nop, sisi4s::NuclearRepulsionEnergy, sisi4s::OneBodyFromGaussian, sisi4s::OneBodyRotation, sisi4s::ParenthesisTriples, sisi4s::ParticleHoleCoulombVertexDecomposition, sisi4s::ParticleHoleCoulombVertexFromFactors, sisi4s::ParticleHoleCoulombVertexReader, sisi4s::ParticleHoleCoulombVertexSingularVectors, sisi4s::PerturbativeTriples, sisi4s::PQRSCoulombIntegralsToVertex, sisi4s::PseudoInverse, sisi4s::Read, sisi4s::Write, sisi4s::SingleParticleOccupancies, sisi4s::SliceCoulombVertex, sisi4s::TensorAntisymmetrizer, sisi4s::TensorAntisymmetrizer2, sisi4s::TensorContraction, sisi4s::TensorGetMax, sisi4s::TensorNorm, sisi4s::TensorReader, sisi4s::TensorReduceijij, sisi4s::TensorSlicer, sisi4s::TensorSum, sisi4s::TensorUnrestricter, sisi4s::TensorWriter, sisi4s::UccsdAmplitudesFromCoulombIntegrals, sisi4s::UCcsdEAEquationOfMotionDavidson, sisi4s::UCcsdIPEquationOfMotionDavidson, sisi4s::UccsdtAmplitudesFromCoulombIntegrals, sisi4s::UccsdtqAmplitudesFromCoulombIntegrals, sisi4s::UegVertexGenerator, sisi4s::UnrestrictedCIS, sisi4s::UnrestrictedEquationOfMotionSinglesFromRpa, sisi4s::UPerturbativeTriples, and sisi4s::UrpaAmplitudesFromCoulombIntegrals.

Here is the caller graph for this function:

◆ getRealArgument() [1/2]

sisi4s::real Algorithm::getRealArgument ( std::string const &  argumentName)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRealArgument() [2/2]

sisi4s::real Algorithm::getRealArgument ( std::string const &  argumentName,
real const  defaultValue 
)
Here is the call graph for this function:

◆ getRealArgumentFromInteger()

sisi4s::real Algorithm::getRealArgumentFromInteger ( IntegerData data)
Here is the caller graph for this function:

◆ getRealArgumentFromTensor()

sisi4s::real Algorithm::getRealArgumentFromTensor ( TensorData< real > *  data)
Here is the caller graph for this function:

◆ getTensorArgument()

template<typename F , typename T >
template DryTensor< Complex64 > * Algorithm::getTensorArgument< Complex64, DryTensor< Complex64 > > ( std::string const &  argumentName)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getTensorArgumentFromReal()

template<typename F , typename T >
template DryTensor< Complex64 > * Algorithm::getTensorArgumentFromReal< Complex64, DryTensor< Complex64 > > ( RealData realData)

Converts the given real data into a scalar tensor.

◆ getTextArgument() [1/2]

std::string Algorithm::getTextArgument ( std::string const &  argumentName)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getTextArgument() [2/2]

std::string Algorithm::getTextArgument ( std::string const &  argumentName,
std::string const &  defaultValue 
)
Here is the call graph for this function:

◆ isArgumentGiven()

bool Algorithm::isArgumentGiven ( std::string const &  argumentName)

◆ run()

virtual void sisi4s::Algorithm::run ( )
pure virtual

Implemented in sisi4s::ApproximateCoulombVertex, sisi4s::ApproximateParticleHoleCoulombVertex, sisi4s::BasisSetExtrapolation, sisi4s::DefineHolesAndParticles, sisi4s::CcsdDiagrammaticDecomposition, sisi4s::CcsdEquationOfMotionDavidson, sisi4s::CcsdEquationOfMotionDavidson, sisi4s::CcsdPerturbativeTriples, sisi4s::CcsdPerturbativeTriplesComplex, sisi4s::CcsdtEquationOfMotionDavidson, sisi4s::CcsdtEquationOfMotionDavidson, sisi4s::ClusterSinglesDoublesAlgorithm, sisi4s::ClusterSinglesDoublesAlgorithm, sisi4s::ClusterSinglesDoublesTriplesAlgorithm, sisi4s::ClusterSinglesDoublesTriplesAlgorithm, sisi4s::ClusterSinglesDoublesTriplesQuadruplesAlgorithm, sisi4s::ClusterSinglesDoublesTriplesQuadruplesAlgorithm, sisi4s::ComplexTensorContraction, sisi4s::ComplexTensorNorm, sisi4s::ComplexTensorReader, sisi4s::ComplexTensorSum, sisi4s::ComplexTensorWriter, sisi4s::CoulombIntegralsFromGaussian, sisi4s::CoulombIntegralsFromRotatedCoulombIntegrals, sisi4s::CoulombIntegralsFromVertex, sisi4s::CoulombVertexDecomposition, sisi4s::CoulombVertexFromFactors, sisi4s::CoulombVertexReader, sisi4s::CoulombVertexSingularVectors, sisi4s::Delete, sisi4s::DoublesAmplitudesDecomposition, sisi4s::DoublesAmplitudesFromVertex, sisi4s::Exit, sisi4s::FcidumpReader, sisi4s::FcidumpWriter, sisi4s::FiniteSizeCorrection, sisi4s::FockMatrixFromCoulombIntegrals, sisi4s::FromComplexTensor, sisi4s::GenerateRandomComplexMatrix, sisi4s::GenerateRandomMatrix, sisi4s::GenerateRandomTensor, sisi4s::HartreeFockFromCoulombIntegrals, sisi4s::HartreeFockFromGaussian, sisi4s::MeanCorrelationHoleDepth, sisi4s::MoReader, sisi4s::Mp2NaturalOrbitals, sisi4s::NaturalTransitionOrbitalsFromRhoAI, sisi4s::NaturalTransitionOrbitalsFromRhoAI, sisi4s::Nop, sisi4s::NuclearRepulsionEnergy, sisi4s::OneBodyFromGaussian, sisi4s::OneBodyRotation, sisi4s::ParenthesisTriples, sisi4s::ParticleHoleCoulombVertexDecomposition, sisi4s::ParticleHoleCoulombVertexFromFactors, sisi4s::ParticleHoleCoulombVertexReader, sisi4s::ParticleHoleCoulombVertexSingularVectors, sisi4s::PerturbativeTriples, sisi4s::PQRSCoulombIntegralsToVertex, sisi4s::PseudoInverse, sisi4s::Read, sisi4s::Write, sisi4s::SingleParticleOccupancies, sisi4s::SliceCoulombVertex, sisi4s::TensorAntisymmetrizer, sisi4s::TensorAntisymmetrizer2, sisi4s::TensorContraction, sisi4s::TensorGetMax, sisi4s::TensorNorm, sisi4s::TensorReader, sisi4s::TensorReduceijij, sisi4s::TensorSlicer, sisi4s::TensorSum, sisi4s::TensorUnrestricter, sisi4s::TensorWriter, sisi4s::UccsdAmplitudesFromCoulombIntegrals, sisi4s::UCcsdEAEquationOfMotionDavidson, sisi4s::UCcsdEAEquationOfMotionDavidson, sisi4s::UCcsdIPEquationOfMotionDavidson, sisi4s::UCcsdIPEquationOfMotionDavidson, sisi4s::UccsdtAmplitudesFromCoulombIntegrals, sisi4s::UccsdtqAmplitudesFromCoulombIntegrals, sisi4s::UegVertexGenerator, sisi4s::UegVertexGenerator, sisi4s::UnrestrictedCIS, sisi4s::UnrestrictedEquationOfMotionSinglesFromRpa, sisi4s::UnrestrictedEquationOfMotionSinglesFromRpa, and sisi4s::UPerturbativeTriples.

◆ setIntegerArgument()

void Algorithm::setIntegerArgument ( std::string const &  argumentName,
int const  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setRealArgument()

void Algorithm::setRealArgument ( std::string const &  argumentName,
real const  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ arguments

std::map<std::string, std::string> sisi4s::Algorithm::arguments

◆ fallible

bool sisi4s::Algorithm::fallible = false

◆ note

std::string sisi4s::Algorithm::note

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