OGS
|
Manages storage for matrices.
This the matrix-analog of VectorProvider. The same notes apply to this class.
Definition at line 23 of file MatrixProvider.h.
#include <MatrixProvider.h>
Public Member Functions | |
virtual GlobalMatrix & | getMatrix (std::size_t &id)=0 |
Get an uninitialized matrix with the given id . | |
virtual GlobalMatrix & | getMatrix (MathLib::MatrixSpecifications const &ms, std::size_t &id)=0 |
virtual void | releaseMatrix (GlobalMatrix const &A)=0 |
virtual | ~MatrixProvider ()=default |
|
virtualdefault |
|
pure virtual |
Get a matrix according to the given specifications in the storage of the matrix with the given id
.
Implemented in NumLib::SimpleMatrixVectorProvider.
|
pure virtual |
Get an uninitialized matrix with the given id
.
Implemented in NumLib::SimpleMatrixVectorProvider.
Referenced by NumLib::TimeDiscretizedODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Newton >::TimeDiscretizedODESystem(), NumLib::TimeDiscretizedODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::TimeDiscretizedODESystem(), NumLib::NonlinearSolver< NonlinearSolverTag::Picard >::calculateNonEquilibriumInitialResiduum(), NumLib::NonlinearSolver< NonlinearSolverTag::Newton >::solve(), NumLib::NonlinearSolver< NonlinearSolverTag::Picard >::solve(), NumLib::PETScNonlinearSolver::solve(), and ProcessLib::ComponentTransport::ComponentTransportProcess::solveReactionEquation().
|
pure virtual |
Release the given matrix.
A
must have been acquired before, i.e., you must not call this method twice in a row in the same A!
Implemented in NumLib::SimpleMatrixVectorProvider.
Referenced by NumLib::TimeDiscretizedODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Newton >::~TimeDiscretizedODESystem(), NumLib::TimeDiscretizedODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::~TimeDiscretizedODESystem(), NumLib::NonlinearSolver< NonlinearSolverTag::Picard >::calculateNonEquilibriumInitialResiduum(), NumLib::NonlinearSolver< NonlinearSolverTag::Newton >::solve(), NumLib::NonlinearSolver< NonlinearSolverTag::Picard >::solve(), NumLib::PETScNonlinearSolver::solve(), and ProcessLib::ComponentTransport::ComponentTransportProcess::solveReactionEquation().