![]() |
OGS
|
|
Time discretized first order implicit quasi-linear ODE; to be solved using the Picard fixpoint iteration method for resolving nonlinearities.
Definition at line 176 of file TimeDiscretizedODESystem.h.
#include <TimeDiscretizedODESystem.h>
Public Types | |
| using | ODE = ODESystem<ODETag, NonlinearSolverTag::Picard> |
| The type of ODE. | |
| using | MatTrans = MatrixTranslator<ODETag> |
| using | TimeDisc = TimeDiscretization |
| A shortcut for a general time discretization scheme. | |
Public Member Functions | |
| TimeDiscretizedODESystem (const int process_id, ODE &ode, TimeDisc &time_discretization) | |
| Constructs a new instance. | |
| ~TimeDiscretizedODESystem () override | |
| void | assemble (std::vector< GlobalVector * > const &x_new_timestep, std::vector< GlobalVector * > const &x_prev, int const process_id) override |
| std::vector< GlobalIndexType > | getIndicesOfResiduumWithoutInitialCompensation () const override |
| void | setReleaseNodalForces (GlobalVector const *r_neq, int const process_id) override |
| void | getA (GlobalMatrix &A) const override |
| void | getRhs (GlobalVector const &x_prev, GlobalVector &rhs) const override |
| void | getAandRhsNormalized (GlobalMatrix &A, GlobalVector &rhs) const override |
| void | computeKnownSolutions (GlobalVector const &x, int const process_id) override |
| void | applyKnownSolutions (GlobalVector &x) const override |
| void | applyKnownSolutionsPicard (GlobalMatrix &A, GlobalVector &rhs, GlobalVector &x, MathLib::DirichletBCApplicationMode const mode) const override |
| bool | isLinear () const override |
| bool | requiresNormalization () const override |
| void | preIteration (const unsigned iter, GlobalVector const &x) override |
| IterationResult | postIteration (GlobalVector const &x) override |
| TimeDisc & | getTimeDiscretization () override |
| Exposes the used time discretization scheme. | |
| MathLib::MatrixSpecifications | getMatrixSpecifications (const int process_id) const override |
| MathLib::LinearSolverBehaviour | linearSolverNeedsToCompute () const override |
Static Public Attributes | |
| static const ODESystemTag | ODETag |
| A tag indicating the type of ODE. | |
Private Types | |
| using | Index = MathLib::MatrixVectorTraits<GlobalMatrix>::Index |
Private Attributes | |
| ODE & | _ode |
| ode the ODE being wrapped | |
| TimeDisc & | _time_disc |
| the time discretization to being used | |
| std::unique_ptr< MatTrans > | _mat_trans |
| the object used to compute the matrix/vector for the nonlinear solver | |
| std::vector< NumLib::IndexValueVector< Index > > const * | _known_solutions |
| stores precomputed values for known solutions | |
| GlobalMatrix * | _M |
| Matrix \( M \). | |
| GlobalMatrix * | _K |
| Matrix \( K \). | |
| GlobalVector * | _b |
| Matrix \( b \). | |
| std::size_t | _M_id = 0u |
ID of the _M matrix. | |
| std::size_t | _K_id = 0u |
ID of the _K matrix. | |
| std::size_t | _b_id = 0u |
ID of the _b vector. | |
|
private |
Definition at line 289 of file TimeDiscretizedODESystem.h.
| using NumLib::TimeDiscretizedODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::MatTrans = MatrixTranslator<ODETag> |
The auxiliary class that computes the matrix/vector used by the nonlinear solver.
Definition at line 189 of file TimeDiscretizedODESystem.h.
| using NumLib::TimeDiscretizedODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::ODE = ODESystem<ODETag, NonlinearSolverTag::Picard> |
The type of ODE.
Definition at line 186 of file TimeDiscretizedODESystem.h.
| using NumLib::TimeDiscretizedODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::TimeDisc = TimeDiscretization |
A shortcut for a general time discretization scheme.
Definition at line 191 of file TimeDiscretizedODESystem.h.
|
explicit |
Constructs a new instance.
Definition at line 194 of file TimeDiscretizedODESystem.cpp.
References _b, _b_id, _K, _K_id, _M, _M_id, _mat_trans, _ode, _time_disc, NumLib::createMatrixTranslator(), ODETag, NumLib::Picard, NumLib::GlobalMatrixProvider::provider, and NumLib::GlobalVectorProvider::provider.
|
override |
Definition at line 211 of file TimeDiscretizedODESystem.cpp.
References ~TimeDiscretizedODESystem(), _b, _K, _M, NumLib::Picard, NumLib::GlobalMatrixProvider::provider, and NumLib::GlobalVectorProvider::provider.
Referenced by ~TimeDiscretizedODESystem().
|
override |
Definition at line 253 of file TimeDiscretizedODESystem.cpp.
References _known_solutions, detail::applyKnownSolutions(), applyKnownSolutions(), and NumLib::Picard.
Referenced by applyKnownSolutions().
|
override |
Definition at line 259 of file TimeDiscretizedODESystem.cpp.
References _known_solutions, MathLib::applyKnownSolution(), and NumLib::Picard.
|
override |
Definition at line 219 of file TimeDiscretizedODESystem.cpp.
References _b, _K, _M, _ode, _time_disc, MathLib::LinAlg::finalizeAssembly(), and NumLib::Picard.
|
override |
Definition at line 244 of file TimeDiscretizedODESystem.cpp.
References _known_solutions, _ode, _time_disc, computeKnownSolutions(), and NumLib::Picard.
Referenced by computeKnownSolutions().
|
inlineoverride |
Definition at line 217 of file TimeDiscretizedODESystem.h.
References _K, _M, and _mat_trans.
|
inlineoverride |
Definition at line 227 of file TimeDiscretizedODESystem.h.
References _mat_trans.
|
inlineoverride |
Definition at line 206 of file TimeDiscretizedODESystem.h.
References _ode.
|
inlineoverride |
Definition at line 259 of file TimeDiscretizedODESystem.h.
References _ode.
|
inlineoverride |
Definition at line 222 of file TimeDiscretizedODESystem.h.
References _b, _K, _M, and _mat_trans.
|
inlineoverridevirtual |
Exposes the used time discretization scheme.
Implements NumLib::TimeDiscretizedODESystemBase< NonlinearSolverTag::Picard >.
Definition at line 258 of file TimeDiscretizedODESystem.h.
References _time_disc.
|
inlineoverride |
|
inlineoverride |
Definition at line 265 of file TimeDiscretizedODESystem.h.
References _ode, _time_disc, MathLib::RECOMPUTE, MathLib::RECOMPUTE_AND_STORE, and MathLib::REUSE.
|
inlineoverride |
Definition at line 253 of file TimeDiscretizedODESystem.h.
References _ode.
|
inlineoverride |
|
inlineoverride |
Definition at line 243 of file TimeDiscretizedODESystem.h.
References _ode.
|
inlineoverride |
Definition at line 211 of file TimeDiscretizedODESystem.h.
References _ode.
|
private |
Matrix \( b \).
Definition at line 295 of file TimeDiscretizedODESystem.h.
Referenced by TimeDiscretizedODESystem(), ~TimeDiscretizedODESystem(), assemble(), and getRhs().
|
private |
ID of the _b vector.
Definition at line 299 of file TimeDiscretizedODESystem.h.
Referenced by TimeDiscretizedODESystem().
|
private |
Matrix \( K \).
Definition at line 294 of file TimeDiscretizedODESystem.h.
Referenced by TimeDiscretizedODESystem(), ~TimeDiscretizedODESystem(), assemble(), getA(), and getRhs().
|
private |
ID of the _K matrix.
Definition at line 298 of file TimeDiscretizedODESystem.h.
Referenced by TimeDiscretizedODESystem().
|
private |
stores precomputed values for known solutions
Definition at line 290 of file TimeDiscretizedODESystem.h.
Referenced by applyKnownSolutions(), applyKnownSolutionsPicard(), and computeKnownSolutions().
|
private |
Matrix \( M \).
Definition at line 293 of file TimeDiscretizedODESystem.h.
Referenced by TimeDiscretizedODESystem(), ~TimeDiscretizedODESystem(), assemble(), getA(), and getRhs().
|
private |
ID of the _M matrix.
Definition at line 297 of file TimeDiscretizedODESystem.h.
Referenced by TimeDiscretizedODESystem().
|
private |
the object used to compute the matrix/vector for the nonlinear solver
Definition at line 287 of file TimeDiscretizedODESystem.h.
Referenced by TimeDiscretizedODESystem(), getA(), getAandRhsNormalized(), and getRhs().
|
private |
ode the ODE being wrapped
Definition at line 283 of file TimeDiscretizedODESystem.h.
Referenced by TimeDiscretizedODESystem(), assemble(), computeKnownSolutions(), getIndicesOfResiduumWithoutInitialCompensation(), getMatrixSpecifications(), isLinear(), linearSolverNeedsToCompute(), postIteration(), preIteration(), requiresNormalization(), and setReleaseNodalForces().
|
private |
the time discretization to being used
Definition at line 284 of file TimeDiscretizedODESystem.h.
Referenced by TimeDiscretizedODESystem(), assemble(), computeKnownSolutions(), getTimeDiscretization(), and linearSolverNeedsToCompute().
|
static |
A tag indicating the type of ODE.
Definition at line 182 of file TimeDiscretizedODESystem.h.
Referenced by TimeDiscretizedODESystem().