|
dune-pdelab 2.10-git
|
Loading...
Searching...
No Matches
iterativeblockjacobipreconditioner.hh
Go to the documentation of this file.
92 template<typename BlockDiagonalLocalOperator, typename W, typename XView, typename EG, typename LFSU, typename LFSV>
302 IterativeBlockJacobiPreconditionerLocalOperator(const BlockDiagonalLocalOperator& blockDiagonalLocalOperator,
358 void jacobian_apply_volume(const EG& eg, const LFSU& lfsu, const Z& z, const LFSV& lfsv, Y& y) const
403 void jacobian_apply_volume(const EG& eg, const LFSU& lfsu, const X& x, const Z& z, const LFSV& lfsv, Y& y) const
Provides a class for collecting statistics on the number of block-solves.
double alpha() const
int size() const
GridView GridViewType
Definition gridfunctionspace.hh:133
void applyLocalDiagonalBlock(const LocalOperator &localOperator, const EG &eg, const LFSU &lfsu, const X &x, const Z &z, const LFSV &lfsv, Y &y)
A function for applying a single diagonal block.
Definition blockdiagonalwrapper.hh:261
void assembleLocalPointDiagonal(const LocalOperator &localOperator, const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y)
A function for assembling the point diagonal of a single block.
Definition pointdiagonalwrapper.hh:139
For backward compatibility – Do not use this!
Implementation & impl()
X::field_type field_type
int iterations
void apply(X &x, X &b, double reduction, InverseOperatorResult &res) final
Category
sequential
Index index(const EntityType &e) const
Definition iterativeblockjacobipreconditioner.hh:29
void apply(domain_type &v, const range_type &d) override
Definition iterativeblockjacobipreconditioner.hh:57
X domain_type
Definition iterativeblockjacobipreconditioner.hh:31
LocalPointJacobiPreconditioner(const InvDiagonal &invDiagonal, const value_type diagonalWeight, const bool precondition=true)
Constructor.
Definition iterativeblockjacobipreconditioner.hh:47
Dune::SolverCategory::Category category() const override
Definition iterativeblockjacobipreconditioner.hh:36
void pre(domain_type &x, range_type &b) override
Definition iterativeblockjacobipreconditioner.hh:55
void post(domain_type &x) override
Definition iterativeblockjacobipreconditioner.hh:74
X range_type
Definition iterativeblockjacobipreconditioner.hh:32
X::BaseContainer InvDiagonal
Definition iterativeblockjacobipreconditioner.hh:33
X::value_type value_type
Definition iterativeblockjacobipreconditioner.hh:34
Create ISTL operator that applies a local block diagonal.
Definition iterativeblockjacobipreconditioner.hh:95
Dune::SolverCategory::Category category() const override
Definition iterativeblockjacobipreconditioner.hh:101
typename W::WeightedAccumulationView::weight_type weight_type
Definition iterativeblockjacobipreconditioner.hh:98
typename Base::field_type field_type
Definition iterativeblockjacobipreconditioner.hh:97
void applyscaleadd(field_type alpha, const W &z, W &y) const override
Definition iterativeblockjacobipreconditioner.hh:128
static constexpr bool isLinear
Definition iterativeblockjacobipreconditioner.hh:99
void setLinearizationPoint(const XView &u)
Definition iterativeblockjacobipreconditioner.hh:134
BlockDiagonalOperator(const BlockDiagonalLocalOperator &blockDiagonalLocalOperator, const EG &eg, const LFSU &lfsu, const LFSV &lfsv)
Definition iterativeblockjacobipreconditioner.hh:106
void apply(const W &z, W &y) const override
Definition iterativeblockjacobipreconditioner.hh:118
void setWeight(const weight_type &weight)
Definition iterativeblockjacobipreconditioner.hh:139
Definition iterativeblockjacobipreconditioner.hh:156
auto data()
Definition iterativeblockjacobipreconditioner.hh:169
typename Container::value_type value_type
Definition iterativeblockjacobipreconditioner.hh:160
auto data() const
Definition iterativeblockjacobipreconditioner.hh:174
C Container
Definition iterativeblockjacobipreconditioner.hh:158
const weight_type & weight()
Definition iterativeblockjacobipreconditioner.hh:164
WeightedPointDiagonalAccumulationView(Container &container, weight_type weight)
Definition iterativeblockjacobipreconditioner.hh:185
value_type weight_type
Definition iterativeblockjacobipreconditioner.hh:162
typename Container::size_type size_type
Definition iterativeblockjacobipreconditioner.hh:161
void accumulate(const LFSV &lfsv, size_type i, value_type value)
Definition iterativeblockjacobipreconditioner.hh:180
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
Local operator that can be used to create a fully matrix-free Jacobi preconditioner.
Definition iterativeblockjacobipreconditioner.hh:270
static constexpr bool doPatternVolume
Definition iterativeblockjacobipreconditioner.hh:284
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:358
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:403
IterativeBlockJacobiPreconditionerLocalOperator(const BlockDiagonalLocalOperator &blockDiagonalLocalOperator, const PointDiagonalLocalOperator &pointDiagonalLocalOperator, const GridFunctionSpace &gridFunctionSpace, SolverStatistics< int > &solverStatiscits, BlockSolverOptions solveroptions, const bool verbose=0)
Constructor.
Definition iterativeblockjacobipreconditioner.hh:302
void setRequireSetup(bool v)
Definition iterativeblockjacobipreconditioner.hh:326
static constexpr bool doAlphaVolume
Definition iterativeblockjacobipreconditioner.hh:285
static constexpr bool isLinear
Definition iterativeblockjacobipreconditioner.hh:286
bool requireSetup()
Definition iterativeblockjacobipreconditioner.hh:322
Class for collecting statistics over several invocations.
Definition solverstatistics.hh:39
void append(const T x)
Add new data point.
Definition solverstatistics.hh:52
std::vector< value_type > BaseContainer
The type of the underlying storage container.
Definition localvector.hh:188
T copy(T... args)
T resize(T... args)
T transform(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8