sisi4s
Loading...
Searching...
No Matches
DoublesAmplitudesDecomposition.hpp
Go to the documentation of this file.
1#ifndef DOUBLES_AMPLITUDES_DECOMPOSITION_DEFINED
2#define DOUBLES_AMPLITUDES_DECOMPOSITION_DEFINED
3
5#include <memory>
6
7namespace sisi4s {
9public:
11 DoublesAmplitudesDecomposition(std::vector<Argument> const &argumentList);
17 virtual void run();
22 virtual void dryRun();
23
24 static double constexpr DEFAULT_REDUCTION = 2.0;
25 static int64_t constexpr DEFAULT_FIELD_VARIABLES = -1;
26
27protected:
30
31 int Nv, No, NvNo, NF, lower, upper;
32 double *lambdas;
35
36 std::shared_ptr<Tensor<double>> Taibj, UaiF;
37 std::shared_ptr<Tensor<complex>> LFai, sqrtLambdaF;
39};
40} // namespace sisi4s
41
42#endif
#define ALGORITHM_REGISTRAR_DECLARATION(NAME)
Auxiliary macro declaring the algorithm registrar for the algorithm type of the given name....
Definition Algorithm.hpp:169
Definition Algorithm.hpp:26
Definition DoublesAmplitudesDecomposition.hpp:8
virtual void run()
Calculates left singular vectors of the particle-hole Coulomb vertex .
Definition DoublesAmplitudesDecomposition.cxx:23
std::shared_ptr< Tensor< double > > UaiF
Definition DoublesAmplitudesDecomposition.hpp:36
virtual void dryRun()
Dry run for calculating the left singular vectors of .
Definition DoublesAmplitudesDecomposition.cxx:28
int64_t * lambdaIndices
Definition DoublesAmplitudesDecomposition.hpp:34
std::shared_ptr< Tensor< double > > Taibj
Definition DoublesAmplitudesDecomposition.hpp:36
virtual ~DoublesAmplitudesDecomposition()
Definition DoublesAmplitudesDecomposition.cxx:21
static int64_t constexpr DEFAULT_FIELD_VARIABLES
Definition DoublesAmplitudesDecomposition.hpp:25
static double constexpr DEFAULT_REDUCTION
Definition DoublesAmplitudesDecomposition.hpp:24
int64_t lambdasCount
Definition DoublesAmplitudesDecomposition.hpp:34
complex * sqrtLambdas
Definition DoublesAmplitudesDecomposition.hpp:33
double * lambdas
Definition DoublesAmplitudesDecomposition.hpp:32
std::shared_ptr< Tensor< complex > > LFai
Definition DoublesAmplitudesDecomposition.hpp:37
void diagonlizeAmplitudes()
Definition DoublesAmplitudesDecomposition.cxx:43
int NvNo
Definition DoublesAmplitudesDecomposition.hpp:31
void sliceLargestEigenValues()
Definition DoublesAmplitudesDecomposition.cxx:96
int NF
Definition DoublesAmplitudesDecomposition.hpp:31
int lower
Definition DoublesAmplitudesDecomposition.hpp:31
std::shared_ptr< Tensor< complex > > sqrtLambdaF
Definition DoublesAmplitudesDecomposition.hpp:37
int upper
Definition DoublesAmplitudesDecomposition.hpp:31
int No
Definition DoublesAmplitudesDecomposition.hpp:31
Tensor< double > * LambdaF
Definition DoublesAmplitudesDecomposition.hpp:38
int Nv
Definition DoublesAmplitudesDecomposition.hpp:31
Definition Algorithm.hpp:10
CTF::Tensor< F > Tensor
Definition Tensor.hpp:9
Complex< real > complex
Definition Complex.hpp:17