|
FEAT 3
Finite Element Analysis Toolbox
|
Solver conversion module. More...
#include <convert_precond.hpp>
Public Types | |
| using | BaseClass = SolverBase< VectorTypeOuter > |
| using | SolverTypeInner = SolverBase< VectorTypeInner > |
| typedef VectorOuter_ | VectorType |
| The type of vector this solver can be applied to. More... | |
| using | VectorTypeInner = VectorInner_ |
| using | VectorTypeOuter = VectorOuter_ |
Public Member Functions | |
| ConvertPrecond (std::shared_ptr< SolverTypeInner > inner_solver) | |
| Constructor. More... | |
| virtual Status | apply (VectorTypeOuter &vec_cor, const VectorTypeOuter &vec_def) override |
| Solver application method. More... | |
| virtual void | done () |
| Finalization method. More... | |
| virtual void | done_numeric () override |
| Numeric finalization method. More... | |
| virtual void | done_symbolic () override |
| Symbolic finalization method. More... | |
| virtual void | init () |
| Initialization method. More... | |
| virtual void | init_numeric () override |
| Numeric initialization method. More... | |
| virtual void | init_symbolic () override |
| Symbolic initialization method. More... | |
| virtual String | name () const override |
| Returns the name of the solver. More... | |
Protected Attributes | |
| std::shared_ptr< SolverTypeInner > | _inner_solver |
Solver conversion module.
This class implements a simple solver module, which converts data before and after the inner solver call
There are two typical applications:
Definition at line 39 of file convert_precond.hpp.
| using FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::BaseClass = SolverBase<VectorTypeOuter> |
Definition at line 44 of file convert_precond.hpp.
| using FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::SolverTypeInner = SolverBase<VectorTypeInner> |
Definition at line 47 of file convert_precond.hpp.
|
inherited |
| using FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::VectorTypeInner = VectorInner_ |
Definition at line 46 of file convert_precond.hpp.
| using FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::VectorTypeOuter = VectorOuter_ |
Definition at line 43 of file convert_precond.hpp.
|
inlineexplicit |
Constructor.
| [in] | inner_solver | The actual solver, which shall be executed with converted rhs/sol vectors |
Definition at line 59 of file convert_precond.hpp.
|
inlineoverridevirtual |
Solver application method.
This method applies the solver represented by this object onto a given defect vector and returns the corresponding correction vector.
correct() method which corrects an initial solution instead of starting with the null vector.| [out] | vec_cor | The vector that shall receive the solution of the linear system. It is assumed to be allocated, but its numerical contents may be undefined upon calling this method. |
| [in] | vec_def | The vector that represents the right-hand-side of the linear system to be solved. |
Implements FEAT::Solver::SolverBase< VectorOuter_ >.
Definition at line 98 of file convert_precond.hpp.
References FEAT::LAFEM::Layout, FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::name(), FEAT::Solver::status_success(), and FEAT::Solver::success.
|
inlinevirtualinherited |
|
inlineoverridevirtual |
Numeric finalization method.
This method is called to release any data allocated in the numeric initialization step.
Reimplemented from FEAT::Solver::SolverBase< VectorOuter_ >.
Definition at line 84 of file convert_precond.hpp.
References FEAT::Solver::SolverBase< Vector_ >::done_numeric().
|
inlineoverridevirtual |
Symbolic finalization method.
This method is called to release any data allocated in the symbolic initialization step.
Reimplemented from FEAT::Solver::SolverBase< VectorOuter_ >.
Definition at line 91 of file convert_precond.hpp.
References FEAT::Solver::SolverBase< Vector_ >::done_symbolic().
|
inlinevirtualinherited |
|
inlineoverridevirtual |
Numeric initialization method.
This method is called to perform numeric initialization of the solver.
Before this function can be called, the symbolic initialization must be performed.
Reimplemented from FEAT::Solver::SolverBase< VectorOuter_ >.
Definition at line 77 of file convert_precond.hpp.
References FEAT::Solver::SolverBase< Vector_ >::init_numeric().
|
inlineoverridevirtual |
Symbolic initialization method.
This method is called to perform symbolic initialization of the solver.
Reimplemented from FEAT::Solver::SolverBase< VectorOuter_ >.
Definition at line 70 of file convert_precond.hpp.
References FEAT::Solver::SolverBase< Vector_ >::init_symbolic().
|
inlineoverridevirtual |
Returns the name of the solver.
Implements FEAT::Solver::SolverBase< VectorOuter_ >.
Definition at line 65 of file convert_precond.hpp.
Referenced by FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::apply(), and FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >::apply().
|
protected |
Definition at line 50 of file convert_precond.hpp.