|
using | vector_type = VectorType |
|
| SolverBase (SolverControl &solver_control, VectorMemory< VectorType > &vector_memory) |
|
| SolverBase (SolverControl &solver_control) |
|
boost::signals2::connection | connect (const std::function< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType ¤t_iterate)> &slot) |
|
| Subscriptor () |
|
| Subscriptor (const Subscriptor &) |
|
| Subscriptor (Subscriptor &&) noexcept |
|
virtual | ~Subscriptor () |
|
Subscriptor & | operator= (const Subscriptor &) |
|
Subscriptor & | operator= (Subscriptor &&) noexcept |
|
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
|
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
|
unsigned int | n_subscriptions () const |
|
template<typename StreamType > |
void | list_subscribers (StreamType &stream) const |
|
void | list_subscribers () const |
|
template<class Archive > |
void | serialize (Archive &ar, const unsigned int version) |
|
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
|
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
|
GrowingVectorMemory< VectorType > | static_vector_memory |
|
VectorMemory< VectorType > & | memory |
|
boost::signals2::signal< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType ¤t_iterate), StateCombiner > | iteration_status |
|
template<typename VectorType = Vector<double>>
class EigenInverse< VectorType >
Inverse iteration (Wieland) for eigenvalue computations.
This class implements an adaptive version of the inverse iteration by Wieland.
There are two choices for the stopping criterion: by default, the norm of the residual \(A x - l x\) is computed. Since this might not converge to zero for non-symmetric matrices with non-trivial Jordan blocks, it can be replaced by checking the difference of successive eigenvalues. Use AdditionalData::use_residual for switching this option.
Usually, the initial guess entering this method is updated after each step, replacing it with the new approximation of the eigenvalue. Using a parameter AdditionalData::relaxation between 0 and 1, this update can be damped. With relaxation parameter 0, no update is performed. This damping allows for slower adaption of the shift value to make sure that the method converges to the eigenvalue closest to the initial guess. This can be aided by the parameter AdditionalData::start_adaption, which indicates the first iteration step in which the shift value should be adapted.
- Author
- Guido Kanschat, 2000, 2003
Definition at line 134 of file eigen.h.
template<class VectorType >
template<typename MatrixType >
void EigenInverse< VectorType >::solve |
( |
double & |
value, |
|
|
const MatrixType & |
A, |
|
|
VectorType & |
x |
|
) |
| |
Inverse method. value
is the start guess for the eigenvalue and x
is the (not necessarily normalized, but nonzero) start vector for the power method. After the iteration, value
is the approximated eigenvalue and x
is the corresponding eigenvector, normalized with respect to the l2-norm.
Definition at line 315 of file eigen.h.