1#ifndef CCSD_PRE_CONDITIONER_DEFINED
2#define CCSD_PRE_CONDITIONER_DEFINED
4#define _DEFINE_SETTER(type, name, default) \
5 CcsdPreconditioner &set##name(type t) { \
11#define __DEFINE_SETTER(type, name, default) \
12 Preconditioner &set##name(type t) { \
26template <
typename F,
typename V>
78 preconditionerRandom = t;
82 preconditionerRandomSigma = t;
113 bool preconditionerRandom =
false;
116 bool spinFlip =
false;
122 double preconditionerRandomSigma = 1.0;
#define _DEFINE_SETTER(type, name, default)
Definition CcsdPreconditioner.hpp:4
#define __DEFINE_SETTER(type, name, default)
Definition CcsdPreconditioner.hpp:11
#define PTR(TYPE)
Definition SharedPointer.hpp:8
Definition CcsdPreconditioner.hpp:152
std::shared_ptr< V > diagonalH
Definition CcsdPreconditioner.hpp:156
std::vector< V > getInitialBasis(int eigenVectorsCount)
Definition CcsdPreconditioner.cxx:786
void calculateDiagonal()
Definition CcsdPreconditioner.cxx:721
V getCorrection(const complex eigenValue, V &residuum)
Definition CcsdPreconditioner.cxx:747
Implements the diagonal preconditionar for the davidson method.
Definition CcsdPreconditioner.hpp:54
Tensor< F > * Fab
Definition CcsdPreconditioner.hpp:67
~CcsdPreconditioner()
Definition CcsdPreconditioner.hpp:59
Tensor< F > * Fij
Definition CcsdPreconditioner.hpp:66
void calculateDiagonal()
Definition CcsdPreconditioner.cxx:87
CcsdPreconditioner & setRandom(bool t)
Definition CcsdPreconditioner.hpp:77
Tensor< F > * Vabcd
Definition CcsdPreconditioner.hpp:68
Tensor< F > * Vijkl
Definition CcsdPreconditioner.hpp:71
SFockVector< F > getCorrection(const complex eigenValue, SFockVector< F > &residuum)
Definition CcsdPreconditioner.cxx:314
std::shared_ptr< V > getDiagonal()
Definition CcsdPreconditioner.hpp:102
SDFockVector< F > V
Definition CcsdPreconditioner.hpp:56
Tensor< F > * Tai
Definition CcsdPreconditioner.hpp:64
std::vector< SDFockVector< F > > getInitialBasis(int eigenVectorsCount)
Get initial basis.
Definition CcsdPreconditioner.cxx:149
CcsdPreconditioner()
Definition CcsdPreconditioner.hpp:58
std::shared_ptr< SDFockVector< F > > diagonalH
Definition CcsdPreconditioner.hpp:107
Tensor< F > * Vijab
Definition CcsdPreconditioner.hpp:69
Tensor< F > * Viajb
Definition CcsdPreconditioner.hpp:70
CcsdPreconditioner & setRandomSigma(double t)
Definition CcsdPreconditioner.hpp:81
CcsdPreconditioner & setSpinFlip(bool t)
Definition CcsdPreconditioner.hpp:73
Tensor< F > * Tabij
Definition CcsdPreconditioner.hpp:65
Definition CcsdPreconditioner.hpp:139
std::vector< V > getInitialBasis(int eigenVectorsCount)
Definition CcsdPreconditioner.cxx:401
void calculateDiagonal()
Definition CcsdPreconditioner.cxx:374
V getCorrection(const complex eigenValue, V &residuum)
Definition CcsdPreconditioner.cxx:503
std::shared_ptr< V > diagonalH
Definition CcsdPreconditioner.hpp:142
Definition CcsdPreconditioner.hpp:126
std::vector< V > getInitialBasis(int eigenVectorsCount)
Definition CcsdPreconditioner.cxx:575
void calculateDiagonal()
Definition CcsdPreconditioner.cxx:546
V getCorrection(const complex eigenValue, V &residuum)
Definition CcsdPreconditioner.cxx:678
std::shared_ptr< V > diagonalH
Definition CcsdPreconditioner.hpp:129
Definition CcsdPreconditioner.hpp:27
virtual std::vector< V > getInitialBasis(int eigenVectorsCount)=0
virtual void calculateDiagonal()=0
Tensor< F > * Fab
Definition CcsdPreconditioner.hpp:41
Tensor< F > * Vabcd
Definition CcsdPreconditioner.hpp:42
virtual V getCorrection(const complex eigenValue, V &residuum)=0
Tensor< F > * Fij
Definition CcsdPreconditioner.hpp:40
Tensor< F > * Tai
Definition CcsdPreconditioner.hpp:38
Tensor< F > * Vijkl
Definition CcsdPreconditioner.hpp:45
Tensor< F > * Viajb
Definition CcsdPreconditioner.hpp:44
Tensor< F > * Vijab
Definition CcsdPreconditioner.hpp:43
Tensor< F > * Tabij
Definition CcsdPreconditioner.hpp:39
Definition FockVector.hpp:631
Definition FockVector.hpp:678
Definition FockVector.hpp:589
Definition Algorithm.hpp:10
CTF::Tensor< F > Tensor
Definition Tensor.hpp:9
Complex< real > complex
Definition Complex.hpp:17