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

Public Member Functions | |
| BlockTriangularPreconditioner (mfem::Array< int > &offsets, std::vector< std::unique_ptr< mfem::Solver >> solvers, BlockTriangularType type=BlockTriangularType::Lower, std::vector< BlockOverride > overrides={}) | |
| Construct a new nxn block triangular 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 triangular preconditioner for block systems.
Stores one solver per diagonal block and applies a block sweep using the supplied block Jacobian.
Call SetOperator() with an mfem::BlockOperator, then use Mult() to apply the preconditioner.
Definition at line 101 of file block_preconditioner.hpp.
| smith::BlockTriangularPreconditioner::BlockTriangularPreconditioner | ( | mfem::Array< int > & | offsets, |
| std::vector< std::unique_ptr< mfem::Solver >> | solvers, | ||
| BlockTriangularType | type = BlockTriangularType::Lower, |
||
| std::vector< BlockOverride > | overrides = {} |
||
| ) |
Construct a new nxn block triangular preconditioner.
| offsets | Offsets describing the block layout. |
| solvers | One solver per diagonal block (size must match number of blocks). |
| type | Sweep type (lower, upper, or symmetric). |
| overrides | Optional list of (block index, operator) pairs used in place of the corresponding Jacobian diagonal block. |
Definition at line 84 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 167 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 208 of file block_preconditioner.cpp.