DUNE PDELab (git)
iterativeblockjacobipreconditioner.hh
92 template<typename BlockDiagonalLocalOperator, typename W, typename XView, typename EG, typename LFSU, typename LFSV>
302 IterativeBlockJacobiPreconditionerLocalOperator(const BlockDiagonalLocalOperator& blockDiagonalLocalOperator,
359 void jacobian_apply_volume(const EG& eg, const LFSU& lfsu, const Z& z, const LFSV& lfsv, Y& y) const
404 void jacobian_apply_volume(const EG& eg, const LFSU& lfsu, const X& x, const Z& z, const LFSV& lfsv, Y& y) const
Base class for all implementations of iterative solvers.
Definition: solver.hh:205
void apply(X &x, X &b, double reduction, InverseOperatorResult &res) override
Apply inverse operator with given reduction factor.
Definition: solver.hh:376
X::field_type field_type
The field type of the operator.
Definition: operators.hh:75
Local operator that can be used to create a fully matrix-free Jacobi preconditioner.
Definition: iterativeblockjacobipreconditioner.hh:270
void jacobian_apply_volume(const EG &eg, const LFSU &lfsu, const Z &z, const LFSV &lfsv, Y &y) const
Apply fully matrix-free preconditioner - linear case.
Definition: iterativeblockjacobipreconditioner.hh:359
void alpha_volume(const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y) const
Prepare fully matrix-free preconditioner.
Definition: iterativeblockjacobipreconditioner.hh:338
void jacobian_apply_volume(const EG &eg, const LFSU &lfsu, const X &x, const Z &z, const LFSV &lfsv, Y &y) const
Apply fully matrix-free preconditioner - nonlinear case.
Definition: iterativeblockjacobipreconditioner.hh:404
IterativeBlockJacobiPreconditionerLocalOperator(const BlockDiagonalLocalOperator &blockDiagonalLocalOperator, const PointDiagonalLocalOperator &pointDiagonalLocalOperator, const GridFunctionSpace &gridFunctionSpace, SolverStatistics< int > &solverStatiscits, BlockSolverOptions solveroptions, const bool verbose=0)
Constructor.
Definition: iterativeblockjacobipreconditioner.hh:302
Default flags for all local operators.
Definition: flags.hh:19
std::vector< value_type > BaseContainer
The type of the underlying storage container.
Definition: localvector.hh:188
auto data()
Access underlying container.
Definition: localvector.hh:244
void append(const T x)
Add new data point.
Definition: solverstatistics.hh:52
Base class for matrix free definition of preconditioners.
Definition: preconditioner.hh:33
Index index(const EntityType &e) const
Map entity to array index.
Definition: scsgmapper.hh:71
Implementations of the inverse operator interface.
constexpr T accumulate(Range &&range, T value, F &&f)
Accumulate values.
Definition: hybridutilities.hh:279
constexpr std::integral_constant< std::size_t, sizeof...(II)> size(std::integer_sequence< T, II... >)
Return the size of the sequence.
Definition: integersequence.hh:75
Define general, extensible interface for operators. The available implementation wraps a matrix.
Mapper classes are used to attach data to a grid.
Provides a class for collecting statistics on the number of block-solves.
Statistics about the application of an inverse operator.
Definition: solver.hh:50
Options for IterativeBlockJacobiPreconditionerLocalOperator.
Definition: iterativeblockjacobipreconditioner.hh:203
double _weight
Weight for point-jacobi.
Definition: iterativeblockjacobipreconditioner.hh:230
size_t _maxiter
Maximal number of iterations.
Definition: iterativeblockjacobipreconditioner.hh:226
BlockSolverOptions(const double resreduction=1e-5, const size_t maxiter=100, const bool precondition=true, const double weight=1.0, const int verbose=0)
Constructor.
Definition: iterativeblockjacobipreconditioner.hh:212
double _resreduction
Residual reduction, i.e. solver accuracy.
Definition: iterativeblockjacobipreconditioner.hh:224
int _verbose
verbosity level
Definition: iterativeblockjacobipreconditioner.hh:232
bool _precondition
Precondition with point-Jacobi?
Definition: iterativeblockjacobipreconditioner.hh:228
Create ISTL operator that applies a local block diagonal.
Definition: iterativeblockjacobipreconditioner.hh:95
Dune::SolverCategory::Category category() const override
Category of the linear operator (see SolverCategory::Category)
Definition: iterativeblockjacobipreconditioner.hh:101
void applyscaleadd(field_type alpha, const W &z, W &y) const override
apply operator to x, scale and add:
Definition: iterativeblockjacobipreconditioner.hh:128
void apply(const W &z, W &y) const override
apply operator to x: The input vector is consistent and the output must also be consistent on the in...
Definition: iterativeblockjacobipreconditioner.hh:118
@ sequential
Category for sequential solvers.
Definition: solvercategory.hh:25
|
Legal Statements / Impressum |
Hosted by TU Dresden |
generated with Hugo v0.111.3
(Nov 12, 23:30, 2024)