#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. | |
| 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. |
| void per::Perturbation< Treal, Tmatrix, Tvector >::checkCommutators | ( | std::vector< Treal > & | commErrors, | |
| TmatNoSymm const & | dummyMat | |||
| ) |
| void per::Perturbation< Treal, Tmatrix, Tvector >::checkIdempotencies | ( | std::vector< Treal > & | idemErrors | ) |
| void per::Perturbation< Treal, Tmatrix, Tvector >::checkMaxSubspaceError | ( | Treal & | subsError | ) |
| void per::Perturbation< Treal, Tmatrix, Tvector >::dryRun | ( | ) | [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.
| void per::Perturbation< Treal, Tmatrix, Tvector >::perturb | ( | ) | [inline] |
| void per::Perturbation< Treal, Tmatrix, Tvector >::run | ( | ) | [protected] |
mat::Interval<Treal> const& per::Perturbation< Treal, Tmatrix, Tvector >::allEigs [protected] |
Treal per::Perturbation< Treal, Tmatrix, Tvector >::deltaMax [protected] |
Treal per::Perturbation< Treal, Tmatrix, Tvector >::errorTol [protected] |
std::vector<Tmatrix *> const& per::Perturbation< Treal, Tmatrix, Tvector >::F [protected] |
mat::Interval<Treal> per::Perturbation< Treal, Tmatrix, Tvector >::gap [protected] |
int per::Perturbation< Treal, Tmatrix, Tvector >::nIter [protected] |
mat::normType const per::Perturbation< Treal, Tmatrix, Tvector >::norm [protected] |
std::vector<Treal> per::Perturbation< Treal, Tmatrix, Tvector >::sigma [protected] |
std::vector<Treal> per::Perturbation< Treal, Tmatrix, Tvector >::threshVal [protected] |
Tvector& per::Perturbation< Treal, Tmatrix, Tvector >::vect [protected] |
std::vector<Tmatrix *>& per::Perturbation< Treal, Tmatrix, Tvector >::X [protected] |
1.4.7