|
Smith
0.1
Smith is an implicit thermal structural mechanics simulation code.
|
Simple block diagonal preconditioner for block systems. More...
#include <block_preconditioner.hpp>

Public Member Functions | |
| BlockDiagonalPreconditioner (mfem::Array< int > &offsets, std::vector< std::unique_ptr< mfem::Solver >> solvers, std::vector< BlockOverride > overrides={}) | |
| Construct a new N by N block diagonal preconditioner. More... | |
| virtual void | Mult (const mfem::Vector &in, mfem::Vector &out) const |
| The action of the precondition on the block vector (b_1, ..., b_n) More... | |
| virtual void | SetOperator (const mfem::Operator &jacobian) |
| Set the preconditioner to use the supplied linearized block Jacobian. More... | |
Simple block diagonal preconditioner for block systems.
Stores one solver per block and applies them to the diagonal blocks of a block Jacobian.
Call SetOperator() with an mfem::BlockOperator, then use Mult() to apply the preconditioner.
Definition at line 30 of file block_preconditioner.hpp.
| smith::BlockDiagonalPreconditioner::BlockDiagonalPreconditioner | ( | mfem::Array< int > & | offsets, |
| std::vector< std::unique_ptr< mfem::Solver >> | solvers, | ||
| std::vector< BlockOverride > | overrides = {} |
||
| ) |
Construct a new N by N block diagonal preconditioner.
| offsets | Offsets describing the block layout. |
| solvers | One solver per block (size must match number of blocks). |
| overrides | Optional list of (block index, operator) pairs used in place of the corresponding Jacobian diagonal block. |
Definition at line 38 of file block_preconditioner.cpp.
|
virtual |
The action of the precondition on the block vector (b_1, ..., b_n)
| in | The block input vector (b_1, ..., b_n) |
| out | The block output vector P^-1(b_1, ..., b_n) |
Definition at line 54 of file block_preconditioner.cpp.
|
virtual |
Set the preconditioner to use the supplied linearized block Jacobian.
| jacobian | The supplied linearized Jacobian. Note that it is always a block operator |
Definition at line 56 of file block_preconditioner.cpp.