ergo
|
#include <Perturbation.h>
Public Member Functions | |
Perturbation (std::vector< Tmatrix * > const &F, std::vector< Tmatrix * > &D, mat::Interval< Treal > const &gap, mat::Interval< Treal > const &allEigs, Treal const deltaMax, Treal const errorTol, mat::normType const norm, Tvector &vect) | |
void | perturb () |
void | checkIdempotencies (std::vector< Treal > &idemErrors) |
template<typename TmatNoSymm > | |
void | checkCommutators (std::vector< Treal > &commErrors, TmatNoSymm const &dummyMat) |
void | checkMaxSubspaceError (Treal &subsError) |
Protected Member Functions | |
void | dryRun () |
Dry run to obtain some needed numbers. More... | |
void | run () |
Protected Attributes | |
std::vector< Tmatrix * > const & | F |
std::vector< Tmatrix * > & | X |
mat::Interval< Treal > | gap |
mat::Interval< Treal > const & | allEigs |
Treal | deltaMax |
Treal | errorTol |
mat::normType const | norm |
Tvector & | vect |
int | nIter |
std::vector< Treal > | threshVal |
std::vector< Treal > | sigma |
per::Perturbation< Treal, Tmatrix, Tvector >::Perturbation | ( | std::vector< Tmatrix * > const & | F, |
std::vector< Tmatrix * > & | D, | ||
mat::Interval< Treal > const & | gap, | ||
mat::Interval< Treal > const & | allEigs, | ||
Treal const | deltaMax, | ||
Treal const | errorTol, | ||
mat::normType const | norm, | ||
Tvector & | vect | ||
) |
F | Vector with matrices (input). |
D | Vector with matrices (output). |
gap | Band gap. |
allEigs | Interval containing all eigenvalues of X0 + delta*X1 + delta^2*X2 + ... for all delta in [0, deltaMax] for initial X. |
deltaMax | Largest allowed delta. |
errorTol | Error tolerance. |
norm | Norm for truncation etc. |
vect | Vector. |
References per::Perturbation< Treal, Tmatrix, Tvector >::allEigs, per::Perturbation< Treal, Tmatrix, Tvector >::F, per::Perturbation< Treal, Tmatrix, Tvector >::gap, and per::Perturbation< Treal, Tmatrix, Tvector >::X.
void per::Perturbation< Treal, Tmatrix, Tvector >::checkCommutators | ( | std::vector< Treal > & | commErrors, |
TmatNoSymm const & | dummyMat | ||
) |
References per::Perturbation< Treal, Tmatrix, Tvector >::checkMaxSubspaceError(), per::Perturbation< Treal, Tmatrix, Tvector >::F, and per::Perturbation< Treal, Tmatrix, Tvector >::X.
Referenced by per::Perturbation< Treal, Tmatrix, Tvector >::checkIdempotencies(), mainFun(), and per::Perturbation< Treal, Tmatrix, Tvector >::perturb().
void per::Perturbation< Treal, Tmatrix, Tvector >::checkIdempotencies | ( | std::vector< Treal > & | idemErrors | ) |
References per::Perturbation< Treal, Tmatrix, Tvector >::checkCommutators(), per::Perturbation< Treal, Tmatrix, Tvector >::vect, and per::Perturbation< Treal, Tmatrix, Tvector >::X.
Referenced by mainFun(), per::Perturbation< Treal, Tmatrix, Tvector >::perturb(), and per::Perturbation< Treal, Tmatrix, Tvector >::run().
void per::Perturbation< Treal, Tmatrix, Tvector >::checkMaxSubspaceError | ( | Treal & | subsError | ) |
References per::Perturbation< Treal, Tmatrix, Tvector >::allEigs, per::Perturbation< Treal, Tmatrix, Tvector >::deltaMax, per::Perturbation< Treal, Tmatrix, Tvector >::errorTol, per::Perturbation< Treal, Tmatrix, Tvector >::F, per::Perturbation< Treal, Tmatrix, Tvector >::nIter, per::Perturbation< Treal, Tmatrix, Tvector >::sigma, per::Perturbation< Treal, Tmatrix, Tvector >::vect, and per::Perturbation< Treal, Tmatrix, Tvector >::X.
Referenced by per::Perturbation< Treal, Tmatrix, Tvector >::checkCommutators(), mainFun(), and per::Perturbation< Treal, Tmatrix, Tvector >::perturb().
|
protected |
Dry run to obtain some needed numbers.
After call to this function we know:
If requested accuracy is too high or gap too small, an exception is thrown.
References mat::Interval< Treal >::empty(), per::Perturbation< Treal, Tmatrix, Tvector >::errorTol, per::Perturbation< Treal, Tmatrix, Tvector >::gap, mat::Interval< Treal >::length(), mat::Interval< Treal >::low(), mat::Interval< Treal >::midPoint(), per::Perturbation< Treal, Tmatrix, Tvector >::nIter, per::Perturbation< Treal, Tmatrix, Tvector >::sigma, template_blas_fabs(), per::Perturbation< Treal, Tmatrix, Tvector >::threshVal, and mat::Interval< Treal >::upp().
Referenced by per::Perturbation< Treal, Tmatrix, Tvector >::perturb().
|
inline |
References per::Perturbation< Treal, Tmatrix, Tvector >::checkCommutators(), per::Perturbation< Treal, Tmatrix, Tvector >::checkIdempotencies(), per::Perturbation< Treal, Tmatrix, Tvector >::checkMaxSubspaceError(), per::Perturbation< Treal, Tmatrix, Tvector >::dryRun(), and per::Perturbation< Treal, Tmatrix, Tvector >::run().
Referenced by mainFun().
|
protected |
References per::Perturbation< Treal, Tmatrix, Tvector >::checkIdempotencies(), per::Perturbation< Treal, Tmatrix, Tvector >::deltaMax, per::Perturbation< Treal, Tmatrix, Tvector >::nIter, per::Perturbation< Treal, Tmatrix, Tvector >::norm, per::Perturbation< Treal, Tmatrix, Tvector >::sigma, per::Perturbation< Treal, Tmatrix, Tvector >::threshVal, per::Perturbation< Treal, Tmatrix, Tvector >::vect, and per::Perturbation< Treal, Tmatrix, Tvector >::X.
Referenced by per::Perturbation< Treal, Tmatrix, Tvector >::perturb().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by per::Perturbation< Treal, Tmatrix, Tvector >::run().
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by per::Perturbation< Treal, Tmatrix, Tvector >::checkCommutators(), per::Perturbation< Treal, Tmatrix, Tvector >::checkIdempotencies(), per::Perturbation< Treal, Tmatrix, Tvector >::checkMaxSubspaceError(), per::Perturbation< Treal, Tmatrix, Tvector >::Perturbation(), and per::Perturbation< Treal, Tmatrix, Tvector >::run().