class Algorithm
class AlgorithmFactory
class AlgorithmRegistrar
Class to be statically instantiated by an algorithm to register it in the AlgorithmFactory . Registered algorithms can be instantiated from the sisi4s control language. More...
class AlternatingLeastSquaresRegularizationEstimator
class ApproximateCoulombVertex
class ApproximateParticleHoleCoulombVertex
class Argument
class BasisSetExtrapolation
class BinaryTensorDimensionHeader
class BinaryTensorHeader
class BinaryTensorHeaderBase
class BlacsWorld
class BooleanData
class CcsdDiagrammaticDecomposition
class CcsdEnergyFromCoulombIntegrals
Implements the iteration routine for the Ccsd method. Calculates the amplitudes and from the Coulomb integrals and (if given, else slicing and the Coulomb Vertex is used). More...
class CcsdEnergyFromCoulombIntegralsReference
Implements the iteration routine for the Ccsd method. Calculates the amplitudes and from the Coulomb integrals and (if given, else slicing and the Coulomb Vertex is used). More...
class CcsdEquationOfMotionDavidson
class CcsdPerturbativeTriples
Caclulates perturbative triples correction. More...
class CcsdPerturbativeTriplesComplex
Caclulates perturbative triples correction. More...
class CcsdPreconditioner
Implements the diagonal preconditionar for the davidson method. More...
class CcsdtEnergyFromCoulombIntegrals
class CcsdtEquationOfMotionDavidson
class CisOneBodyReducedDensityMatrix
class CISPreconditioner
class ClusterSinglesDoublesAlgorithm
Contains all the necessary tools for an algorithm with singles and doubles amplitudes. It calculates the energy from the amplitudes and and the Coulomb integrals . For calculating the amplitudes it calls the iteration routine of the actual algorithm. More...
class ClusterSinglesDoublesTriplesAlgorithm
Contains all the necessary tools for an algorithm with singles, doubles and triples amplitudes. It calculates the energy from the amplitudes , and the Coulomb integrals . For calculating the amplitudes it calls the iteration routine of the actual algorithm. More...
class ClusterSinglesDoublesTriplesQuadruplesAlgorithm
Contains all the necessary tools for an algorithm with singles, doubles and triples amplitudes. It calculates the energy from the amplitudes , and the Coulomb integrals . For calculating the amplitudes it calls the iteration routine of the actual algorithm. More...
class ComplexTensorContraction
class ComplexTensorNorm
class ComplexTensorReader
class ComplexTensorSum
class ComplexTensorWriter
class ComplexTraits
class ComplexTraits< Complex< T > >
struct ContainerData
class Conversion
class Conversion< Real, Complex< Real > >
class Conversion< Target, Complex< Real > >
class CoulombIntegralsFromGaussian
class CoulombIntegralsFromRotatedCoulombIntegrals
class CoulombIntegralsFromVertex
Caclulates the Coulomb Integrals (if given) from the Coulomb Vertex 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...
class CoulombVertexDecomposition
Decomposes the Coulomb vertex into the factor orbitals and the Coulom factors . The decomposition is done with a regularized alternating least squares (RALS) algorithm, requiring only a few dozen steps for sufficient convergence. Note that currently the employed fit is rather than the form with conjugated. More...
class CoulombVertexFromFactors
Caclulates the Coulomb vertex from the given given factor orbitals and Coulomb factors . More...
class CoulombVertexReader
Reads the Coulomb vertex and the occupied and virtual orbital energies from binary data file, and stores them in the CTF Tensors GammaGqr, epsi, epsa. More...
class CoulombVertexSingularVectors
class CtfMachineTensor
class CtfMachineTensorFactory
class Data
class DefaultRandomEngine
class DefineHolesAndParticles
class Delete
class DetailedException
class DiisMixer
class DoublesAmplitudesDecomposition
class DoublesAmplitudesFromVertex
Caclulates the doubles amplitudes from the doubles amplitudes Vertex . More...
class DrccdEnergyFromCoulombIntegrals
Implements the iteration routine for the Drccd method. Calculates the amplitudes from the Coulomb Integrals in a implementation. More...
class DryIterativePseudoInverse
class DryMatrix
class DryMemory
class DryPseudoInverseHermitianSvd
class DryPseudoInverseSvd
class DryScalar
class DryTensor
class DryVector
class EACcsdPreconditioner
class EigenSystemDavidson
class EigenSystemDavidsonMono
class Emitter
Class with static members offering control over yaml emitting. Entries are emitted with the macro EMIT. More...
class EomOneBodyReducedDensityMatrix
This implements one body rdm for eom ccsd In principle it calculates p T <0| L \rho R e |0> q For L and R being singles doubles vectors without 0-th components. More...
class Exception
class Exit
class FcidumpReader
class FcidumpWriter
class FiniteSizeCorrection
class FloatTypes
class FloatTypes< 32 >
class FloatTypes< 64 >
class FlopsCounter
struct FockMatrixFromCoulombIntegrals
class FockVector
Represents the direct sum of Tensors and provides the vector space operations of addition, scalar multiplication, inner product, complex conjugation to get dual vectors and matrix multiplication between vectors and duals, which yields a scalar. More...
class FockVectorNdCanonical
class FromComplexTensor
class GenerateRandomComplexMatrix
class GenerateRandomMatrix
class GenerateRandomTensor
class HartreeFockFromCoulombIntegrals
class HartreeFockFromGaussian
struct IJKPointer
Caclulates perturbative triples correction, third attemp. More...
class InputFileParser
Parser for sisi4s files specifying the calculation plan, i.e. which algorithms to use in which order. More...
class InputFileParser< InputFileFormat::CC4S >
class InputFileParser< InputFileFormat::YAML >
class IntegerData
struct IntegralInfo
class Inter1D
class IPCcsdPreconditioner
struct IrmlerTensor
class IterativePseudoInverse
class LapackGeneralEigenSystem
class LapackGeneralEigenSystem< complex >
class LapackGeneralEigenSystem< double >
class LapackInverse
class LapackInverse< Complex64 >
class LapackMatrix
class LinearMixer
class LineNumberStream
Wrapper for an input stream providing tracking of the current line and the current column during stream reading. More...
class Log
Class with static members offering control over logging. Log entries are created with the macro LOG. More...
class LogBuffer
class LogStream
class Map
struct MeanCorrelationHoleDepth
class Mixer
class MixerFactory
class MixerRegistrar
Class to be statically instantiated by a mixer to register it in the MixerFactory . Registered mixers can be instantiated from the sisi4s control language. More...
class MoReader
class Mp2NaturalOrbitals
Caclulates MP2 natural orbitals. More...
class MpiCommunicator
class MpiTypeTraits
class MpiTypeTraits< complex >
class MpiTypeTraits< double >
class MpiTypeTraits< int >
class MpiTypeTraits< int64_t >
class MpiTypeTraits< uint64_t >
class MpiTypeTraits< Vector< F, D > >
struct NaturalTransitionOrbitalsFromRhoAI
class Nop
class NoRegularizationEstimator
class NuclearRepulsionEnergy
class NumberScanner
class NumberScanner< Complex< Real > >
class NumberScanner< Float64 >
class NumericData
class OneBodyFromGaussian
class OneBodyReducedDensityMatrix
class OneBodyRotation
struct Options
class ParenthesisTriples
class ParticleHoleCoulombVertexDecomposition
Decomposes the particle hole Coulomb vertex into the occupied factor orbitals , the virtual factor orbitals , and the Coulom factors . The decomposition is done with a regularized alternating least squares (RALS) algorithm, requiring only a few dozen steps for sufficient convergence. More...
class ParticleHoleCoulombVertexFromFactors
Caclulates the particle hole Coulomb vertex from the given given particle factors orbitals , hole factor orbitals and Coulomb factors . More...
class ParticleHoleCoulombVertexReader
Reads the particle-hole Coulomb vertex and the occupied and virtual orbital energies from binary data file, and stores them in the CTF Tensors GammaGai, epsi, epsa. More...
class ParticleHoleCoulombVertexSingularVectors
class Permutation
class Permutation< 1 >
class PerturbativeTriples
Caclulates perturbative triples correction. More...
class PQRSCoulombIntegralsToVertex
class Preconditioner
class PseudoInverse
class PseudoInverseHermitianSvd
class PseudoInverseSvd
class RandomGenerator
class RangeParser
Class to parse a string of comma separated range delimiters. Note: It only works for unsigned integers. More...
class Read
class RealData
class ScaLapackDescriptor
class ScaLapackHermitianEigenSystem
class ScaLapackHermitianEigenSystem< complex >
class ScaLapackHermitianEigenSystem< double >
class ScaLapackHermitianEigenSystemDc
class ScaLapackHermitianEigenSystemDc< complex >
class ScaLapackHermitianEigenSystemDc< double >
class ScaLapackMatrix
class ScaLapackSingularValueDecomposition
class ScaLapackSingularValueDecomposition< complex >
class ScaLapackSingularValueDecomposition< double >
class Scanner
class SDFockVector
class SDTFockVector
class SFockVector
class SimilarityTransformedHamiltonian
class simpson
class SingleParticleOccupancies
Evaluates given the DoublesAmplitudes from a linearized coupled cluster theory. More...
class Sisi4s
class SliceCoulombVertex
Slices the particle hole part from the full Coulomb vertex . More...
class SlicedCtfTensor
class SourceLocation
class StantonIntermediatesUCCSD
class StaticAssert
class TensorAntisymmetrizer
class TensorAntisymmetrizer2
class TensorContraction
class TensorData
class TensorGetMax
class TensorIo
class TensorNorm
class TensorReader
struct TensorReduceijij
struct TensorSlicer
class TensorSum
class TensorUnrestricter
class TensorWriter
class TextData
class Time
class Timer
class trapezium
class TypedData
class TypeRelations
class TypeRelations< A *, A >
class TypeRelations< A, A >
class TypeRelations< double, complex >
class TypeRelations< int, complex >
class TypeRelations< int, double >
class TypeTraits
class TypeTraits< bool >
class TypeTraits< Complex64 >
class TypeTraits< Float64 >
class TypeTraits< int64_t >
class UccsdAmplitudesFromCoulombIntegrals
class UCcsdEAEquationOfMotionDavidson
class UCcsdIPEquationOfMotionDavidson
class UccsdtAmplitudesFromCoulombIntegrals
class UccsdtqAmplitudesFromCoulombIntegrals
class UegVertexGenerator
class UnrestrictedCIS
class UnrestrictedEquationOfMotionSinglesFromRpa
class UPerturbativeTriples
Caclulates perturbative triples correction. More...
class UrpaAmplitudesFromCoulombIntegrals
class Vector
struct VectorTensor
class Write
template<typename AlgorithmType >
Algorithm * createAlgorithm (std::vector< Argument > const &arguments)
template function creating an instance of the given class.
template<int N>
std::string operator* (const std::string &s, const sisi4s::Permutation < N > &pi)
MatrixColumnMajor toEigenMatrix (Tensor < double > &ctf)
template<typename F = double>
void composeCanonicalPolyadicDecompositionTensors (Tensor < F > &A, Tensor < F > &B, Tensor < F > &C, Tensor < F > &T)
Calculates with minimal memory footprint.
template<typename F = double>
void dryComposeCanonicalPolyadicDecompositionTensors (DryTensor < F > &A, DryTensor < F > &B, DryTensor < F > &C, DryTensor < F > &T)
Performs a dry run of the calculation with minimal memory footprint.
template<typename F = double>
void contractWithCanonicalPolyadicDecompositionTensors (Tensor < F > &T, char const *indicesT, Tensor < F > &B, char const idxB, Tensor < F > &C, char const idxC, Tensor < F > &A, char const idxA)
Calculates using a contraction order with minimal memory footprint.
template<typename F = double>
void dryContractWithCanonicalPolyadicDecompositionTensors (DryTensor < F > &T, char const *indicesT, DryTensor < F > &B, char const idxB, DryTensor < F > &C, char const idxC, DryTensor < F > &A, char const idxA)
Performs a dry run of the calculation using a contraction order with minimal memory footprint.
template<typename Real >
Real absSqr (const Real x)
template<typename Real >
Real absSqr (const Complex < Real > z)
void fromComplexTensor (Tensor < complex > &c, Tensor < double > &r, Tensor < double > &i)
Decomposes the tensor of complex elements into two tensors containing the real and imaginary parts, respectively.
void fromComplexTensor (Tensor < double > &c, Tensor < double > &r, Tensor < double > &i)
void fromComplexTensor (Tensor < complex > &c, Tensor < double > &r)
Discards the real part of a complex tensor.
void toComplexTensor (Tensor < double > &r, Tensor < double > &i, Tensor < complex > &c)
Composes a tensor of complex elements containing of the given tensors of real and imaginary parts. Note that in this overload the imaginary part may be redistributed during reading.
void toComplexTensor (Tensor < double > &r, Tensor < complex > &c)
void toComplexTensor (Tensor < double > &r, Tensor < double > &c)
void conjugate (Tensor < double > &c)
void conjugate (Tensor < complex > &c)
template<typename F >
FockVector < F > operator+ (const FockVector < F > &a, const FockVector < F > &b)
Returns the sum of two FockVectors a and b, where neither a nor b are modified.
template<typename F >
FockVector < F > && operator+ (FockVector < F > &&a, const FockVector < F > &b)
Returns the sum of two FockVectors a and b, where a is movable and will be used for the result.
template<typename F >
FockVector < F > && operator+ (FockVector < F > &a, const FockVector < F > &&b)
Returns the sum of two FockVectors a and b, where b is movable and will be used for the result.
template<typename F >
FockVector < F > operator- (const FockVector < F > &a, const FockVector < F > &b)
Returns the difference between two FockVectors a and b, where neither a nor b are modified.
template<typename F >
FockVector < F > && operator- (FockVector < F > &&a, const FockVector < F > &b)
Returns the difference between two FockVectors a and b, where a is movable and will be used for the result.
template<typename F >
FockVector < F > && operator- (const FockVector < F > &a, FockVector < F > &&b)
Returns the difference between two FockVectors a and b, where b is movable and will be used for the result.
template<typename F >
FockVector < F > operator* (const FockVector < F > &a, const F s)
Returns the scalar multiple of the FockVector a right-multiplied with the scalar s, where a is not modified.
template<typename F >
FockVector < F > && operator* (FockVector < F > &&a, const F s)
Returns the scalar multiple of the FockVector a right-multiplied with the scalar s, where a movable and will be used for the result.
template<typename F >
FockVector < F > operator* (const F s, const FockVector < F > &a)
Returns the scalar multiple of the FockVector a left-multiplied with the scalar s, where a is not modified.
template<typename F >
FockVector < F > && operator* (const F s, FockVector < F > &&a)
Returns the scalar multiple of the FockVector a left-multiplied with the scalar s, where a movable and will be used for the result.
template<typename F >
std::ostream & operator<< (std::ostream &stream, const FockVector < F > &a)
Writes the FockVector a to the given stream and returns it for further stream operations.
template<typename Method , typename F , typename Float >
double integrate (F f, Float a, Float b, int steps, Method m)
template<typename F = double>
constexpr F Pi ()
template<typename F = double>
constexpr F Tau ()
template<typename F = double>
F sqrt (F const x)
template<typename F = double>
F abs (F const x)
template<typename F >
F conj (F const x)
template<>
double conj (double const x)
template<typename F = double>
F dot (F const x, F const y)
template<typename F = double>
F realDot (F const x, F const y)
Calculates only the real part of x*conj(y).
template<typename F = double>
F divide (F const x, F const y)
template<typename F = double>
F multiply (F const x, F const y)
template<typename F >
double frobeniusNorm (Tensor < F > &t)
template<typename F >
void symmetrize (std::string indices, std::string permuted, Tensor < F > &t, F prefactor=1)
Apply a permutation operator and antisymmetrize accordingly, e.g. antiSymmetrize(X, "abcd", "abdc") is replaced by -1 X["abcd"] = X["abcd"] + sign(abcd -> abdc) X["abdc"].
template<typename F >
void checkAntisymmetry (Tensor < F > &t)
template<int N>
std::ostream & operator<< (std::ostream &stream, const Map < N > &f)
template<int N>
Permutation < N > operator* (const Permutation < N > &, const Permutation < N > &)
template<int N>
Permutation < N > operator/ (const Permutation < N > &, const Permutation < N > &)
template<int N>
Permutation < N > operator/ (const int, const Permutation < N > &)
template<int N>
Map < N > operator* (const Map < N > &f, const Permutation < N > &tau)
template<typename Distribution , typename RandomEngine >
void setRandom (double &value, Distribution &distribution, RandomEngine &randomEngine)
template<typename Distribution , typename RandomEngine >
void setRandom (complex &value, Distribution &distribution, RandomEngine &randomEngine)
template<typename F , typename Distribution , typename RandomEngine >
void setRandomTensor (Tensor < F > &t, Distribution &distribution, RandomEngine &randomEngine)
template<typename F = double>
void fitAlternatingLeastSquaresFactor (Tensor < F > &T, char const *indicesT, Tensor < F > &B, char const idxB, Tensor < F > &C, char const idxC, Tensor < F > &A, char const idxA)
template<typename F = double>
void fitRegularizedAlternatingLeastSquaresFactor (Tensor < F > &T, char const *indicesT, Tensor < F > &B, char const idxB, Tensor < F > &C, char const idxC, Tensor < F > &A, char const idxA, AlternatingLeastSquaresRegularizationEstimator *regularizationEstimatorA)
template<typename F = double>
void dryFitRegularizedAlternatingLeastSquaresFactor (DryTensor < F > &T, char const *indicesT, DryTensor < F > &B, char const idxB, DryTensor < F > &C, char const idxC, DryTensor < F > &A, char const idxA)
template<typename F = double, int D = 3>
Vector < F, D > operator* (const F f, const Vector < F, D > &v)
template<typename F = double, int D = 3>
Vector < F, D > && operator* (const F f, Vector < F, D > &&v)
template<typename F = double, int D = 3>
std::ostream & operator<< (std::ostream &stream, sisi4s::Vector < F, D > const &v)
template<typename F , typename MixerType >
std::shared_ptr< Mixer < F > > createMixer (Algorithm *algorithm)
template function creating an instance of the given class.
template<typename A >
A permuteIndices (const A &a, size_t i, size_t j)
template<typename A >
A vSym (const A &a)
template<typename A >
A hSym (const A &a)
template<typename A >
A vlSym (const A &a)
template<typename A >
A upTr (const A &a)
template<typename A >
A downTr (const A &a)
template<typename F = real>
LapackMatrix < F > operator* (const LapackMatrix < F > &A, const LapackMatrix < F > &B)
std::ostream & operator<< (std::ostream &stream, const RangeParser &parser)
std::ostream & operator<< (std::ostream &stream, SourceLocation const &l)
Time operator+ (Time const &t1, Time const &t2)
Time operator- (Time const &t1, Time const &t2)
Time operator* (const Time &difference, const double factor)
std::ostream & operator<< (std::ostream &stream, Time const &t)
Provides a random number generator based on the mzran algorithm marsaglia, g. and a. zaman. 1994. some portable very-long period random number generators. computers in physics. 8(1): 117-121.