30template <ODESystemTag ODETag>
78template <ODESystemTag ODETag>
99 : _time_disc(timeDisc)
131 mutable std::size_t _tmp_id = 0u;
136template <ODESystemTag ODETag>
140 return std::unique_ptr<MatrixTranslator<ODETag>>(
Global vector based on Eigen vector.
MatrixTranslatorGeneral(TimeDiscretization const &timeDisc)
TimeDiscretization const & _time_disc
the time discretization used.
virtual void computeJacobian(GlobalMatrix const &Jac_in, GlobalMatrix &Jac_out) const =0
Computes the Jacobian of the residual and writes it to Jac_out.
virtual void computeA(GlobalMatrix const &M, GlobalMatrix const &K, GlobalMatrix &A) const =0
Computes A from M and K.
virtual void normalizeAandRhs(GlobalMatrix &A, GlobalVector &b) const =0
virtual void computeRhs(const GlobalMatrix &M, const GlobalMatrix &K, const GlobalVector &b, const GlobalVector &x_prev, GlobalVector &rhs) const =0
Computes rhs from M, K, b and x_prev.
virtual ~MatrixTranslator()=default
virtual void computeResidual(GlobalMatrix const &M, GlobalMatrix const &K, GlobalVector const &b, double dt, GlobalVector const &x_curr, GlobalVector const &x_prev, GlobalVector &res) const =0
std::unique_ptr< MatrixTranslator< ODETag > > createMatrixTranslator(TimeDiscretization const &timeDisc)
ODESystemTag
Tag used to specify the type of ODE.
@ FirstOrderImplicitQuasilinear