|
dune-istl 2.12-git
|
Loading...
Searching...
No Matches
poweriteration.hh
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright © DUNE Project contributors, see file LICENSE.md in module root
Some generic functions for pretty printing vectors and matrices.
Helper functions for determining the vector/matrix block level.
Templates characterizing the type of a solver.
Implementations of the inverse operator interface.
Define general, extensible interface for operators. The available implementation wraps a matrix.
void printvector(std::ostream &s, const V &v, std::string title, std::string rowtext, int columns=1, int width=10, int precision=2)
Print an ISTL vector.
Definition io.hh:89
#define DUNE_THROW(E,...)
std::allocator_traits< A >::size_type size_type
The type for the index access and the size.
Definition bcrsmatrix.hh:496
size_type M() const
number of columns (counted in blocks)
Definition bcrsmatrix.hh:2014
size_type N() const
number of rows (counted in blocks)
Definition bcrsmatrix.hh:2008
typename Imp::BlockTraits< B >::field_type field_type
export the type representing the field
Definition bvector.hh:398
Iterative eigenvalue algorithms based on power iteration.
Definition poweriteration.hh:176
std::unique_ptr< BCRSMatrix > itMatrix_
Definition poweriteration.hh:1034
PowerIteration_Algorithms(const PowerIteration_Algorithms &)=delete
Impl::ScalingLinearOperator< BlockVector > ScalingOperator
Definition poweriteration.hh:181
Impl::LinearOperatorSum< MatrixOperator, ScalingOperator > OperatorSum
Definition poweriteration.hh:182
Dune::MatrixAdapter< BCRSMatrix, BlockVector, BlockVector > MatrixOperator
Definition poweriteration.hh:180
void applyInverseIteration(const Real &epsilon, ISTLLinearSolver &solver, BlockVector &x, Real &lambda) const
Perform the inverse iteration algorithm to compute an approximation lambda of the least dominant (i....
Definition poweriteration.hh:355
void applyTLIMEIteration(const Real &gamma, const Real &eta, const Real &epsilon, ISTLLinearSolver &solver, const Real &delta, const std::size_t &m, bool &extrnl, BlockVector &x, Real &lambda) const
Perform the "two-level iterative method for eigenvalue calculations (TLIME)" iteration algorit...
Definition poweriteration.hh:691
IterationOperator & getIterationOperator()
Return the iteration operator (m_ - mu_*I).
Definition poweriteration.hh:925
OperatorSum itOperator_
Definition poweriteration.hh:1030
PowerIteration_Algorithms(const BCRSMatrix &m, const unsigned int nIterationsMax=1000, const unsigned int verbosity_level=0)
Construct from required parameters.
Definition poweriteration.hh:206
const unsigned int nIterationsMax_
Definition poweriteration.hh:1019
void applyPowerIteration(const Real &epsilon, BlockVector &x, Real &lambda) const
Perform the power iteration algorithm to compute an approximation lambda of the dominant (i....
Definition poweriteration.hh:260
OperatorSum IterationOperator
Type of iteration operator (m_ - mu_*I)
Definition poweriteration.hh:189
void applyRayleighQuotientIteration(const Real &epsilon, ISTLLinearSolver &solver, BlockVector &x, Real &lambda) const
Perform the Rayleigh quotient iteration algorithm to compute an approximation lambda of an eigenvalue...
Definition poweriteration.hh:533
void applyInverseIteration(const Real &gamma, const Real &epsilon, ISTLLinearSolver &solver, BlockVector &x, Real &lambda) const
Perform the inverse iteration with shift algorithm to compute an approximation lambda of the eigenval...
Definition poweriteration.hh:394
const ScalingOperator scalingOperator_
Definition poweriteration.hh:1029
void updateShiftMu(const Real &mu, ISTLLinearSolver &solver) const
Update shift mu_, i.e. update iteration operator/matrix (m_ - mu_*I).
Definition poweriteration.hh:983
PowerIteration_Algorithms & operator=(const PowerIteration_Algorithms &)=delete
unsigned int getIterationCount() const
Return the number of iterations in last application of an algorithm.
Definition poweriteration.hh:959
const MatrixOperator matrixOperator_
Definition poweriteration.hh:1028
const BCRSMatrix & getIterationMatrix() const
Return the iteration matrix (m_ - mu_*I), provided on demand when needed (e.g. for direct solvers or ...
Definition poweriteration.hh:945
unsigned int nIterations_
Definition poweriteration.hh:1039
const unsigned int verbosity_level_
Definition poweriteration.hh:1022
BlockVector::field_type Real
Type of underlying field.
Definition poweriteration.hh:186
X::field_type field_type
The field type of the operator.
Definition operators.hh:75
virtual void applyscaleadd(field_type alpha, const X &x, Y &y) const =0
apply operator to x, scale and add:
virtual SolverCategory::Category category() const =0
Category of the linear operator (see SolverCategory::Category)
Y range_type
The type of the range of the operator.
Definition operators.hh:73
virtual void apply(const X &x, Y &y) const =0
apply operator to x: The input vector is consistent and the output must also be consistent on the in...
X domain_type
The type of the domain of the operator.
Definition operators.hh:71
Statistics about the application of an inverse operator.
Definition solver.hh:50
static void setMatrix(ISTLLinearSolver &solver, const BCRSMatrix &matrix)
Definition solver.hh:526
@ sequential
Category for sequential solvers.
Definition solvercategory.hh:25
T endl(T... args)
T left(T... args)
T max(T... args)
T resetiosflags(T... args)
T setw(T... args)
T sqrt(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8