MFEM
v3.4
Finite element discretization library
|
Abstract base class, wrapping the custom linear solvers interface in SUNDIALS' CVODE and ARKODE solvers. More...
#include <sundials.hpp>
Public Types | |
enum | { CVODE, ARKODE } |
Public Member Functions | |
Linear solver interface methods. | |
These four functions and their parameters are documented in Section 7 of http://computation.llnl.gov/sites/default/files/public/cv_guide.pdf and Section 7.4 of http://computation.llnl.gov/sites/default/files/public/ark_guide.pdf The first argument, sundials_mem, is one of the pointer types, CVodeMem or ARKodeMem, depending on the value of the data member type. | |
virtual int | InitSystem (void *sundials_mem)=0 |
virtual int | SetupSystem (void *sundials_mem, int conv_fail, const Vector &y_pred, const Vector &f_pred, int &jac_cur, Vector &v_temp1, Vector &v_temp2, Vector &v_temp3)=0 |
virtual int | SolveSystem (void *sundials_mem, Vector &b, const Vector &w, const Vector &y_cur, const Vector &f_cur)=0 |
virtual int | FreeSystem (void *sundials_mem)=0 |
Public Attributes | |
enum mfem::SundialsODELinearSolver:: { ... } | type |
Is CVODE or ARKODE using this object? More... | |
Protected Member Functions | |
SundialsODELinearSolver () | |
virtual | ~SundialsODELinearSolver () |
double | GetTimeStep (void *sundials_mem) |
Get the current scaled time step, gamma, from sundials_mem. More... | |
TimeDependentOperator * | GetTimeDependentOperator (void *sundials_mem) |
Get the TimeDependentOperator associated with sundials_mem. More... | |
Abstract base class, wrapping the custom linear solvers interface in SUNDIALS' CVODE and ARKODE solvers.
For a given ODE system
dx/dt = f(x,t)
the purpose of this class is to facilitate the (approximate) solution of linear systems of the form
(I - γJ) y = b, J = J(x,t) = df/dx
for given b, x, t and γ, where γ = GetTimeStep() is a scaled time step.
Definition at line 47 of file sundials.hpp.
anonymous enum |
Enumerator | |
---|---|
CVODE | |
ARKODE |
Definition at line 50 of file sundials.hpp.
|
inlineprotected |
Definition at line 53 of file sundials.hpp.
|
inlineprotectedvirtual |
Definition at line 54 of file sundials.hpp.
|
pure virtual |
|
protected |
Get the TimeDependentOperator associated with sundials_mem.
Definition at line 79 of file sundials.cpp.
|
protected |
Get the current scaled time step, gamma, from sundials_mem.
Definition at line 71 of file sundials.cpp.
|
pure virtual |
|
pure virtual |
|
pure virtual |
enum { ... } mfem::SundialsODELinearSolver::type |
Is CVODE or ARKODE using this object?