|
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().