![]() |
PRISMS-PF Manual
|
This class exists as a hack to get access to the residual vector for the custom convergence criterion because dealii doesn't provide it for some reason. The function print_vectors gets called before the convergence check in the same scope and is overridable. Be careful, because the pointers are only valid during the linear solve, so they shouldn't be called outside of that context.
More...
#include <linear_helper.h>
Public Types | |
| using | AddData = dealii::SolverCG< BlockVector< number > >::AdditionalData |
| using | BaseClass = dealii::SolverCG< BlockVector< number > > |
Public Member Functions | |
| CGSolver (dealii::SolverControl &cn, dealii::VectorMemory< BlockVector< number > > &mem, const AddData &data=AddData()) | |
| Constructor. | |
| CGSolver (dealii::SolverControl &cn, const AddData &data=AddData()) | |
| Constructor. Use an object of type GrowingVectorMemory as a default to allocate memory. | |
| template<typename MatrixType , typename PreconditionerType > | |
| void | solve_better (const MatrixType &A, BlockVector< number > &x, const BlockVector< number > &b, const PreconditionerType &preconditioner) |
| Solve method we are replacing in prisms-pf because we need access to the residual. | |
This class exists as a hack to get access to the residual vector for the custom convergence criterion because dealii doesn't provide it for some reason. The function print_vectors gets called before the convergence check in the same scope and is overridable. Be careful, because the pointers are only valid during the linear solve, so they shouldn't be called outside of that context.
| using CGSolver< number >::AddData = dealii::SolverCG<BlockVector<number> >::AdditionalData |
| using CGSolver< number >::BaseClass = dealii::SolverCG<BlockVector<number> > |
|
inline |
Constructor.
|
inlineexplicit |
Constructor. Use an object of type GrowingVectorMemory as a default to allocate memory.
|
inline |
Solve method we are replacing in prisms-pf because we need access to the residual.