OGS
|
ODE solver interfacing with Sundials' CVode.
All methods of this class have the same semantics as methods from the ODESolver interface with the same name.
There is no implicit information about vector and matrix sizes in this class anymore, rather this class only handles raw pointers. But this is exactly what is necessary when using C libraries like Sundials.
Definition at line 45 of file CVodeSolver.h.
#include <CVodeSolver.h>
Protected Member Functions | |
CVodeSolver (BaseLib::ConfigTree const &config, unsigned const num_equations) | |
void | setTolerance (double const *const abstol, const double reltol) |
void | setTolerance (const double abstol, const double reltol) |
void | setFunction (std::unique_ptr< detail::FunctionHandles > &&f) |
void | setIC (const double t0, double const *const y0) |
void | preSolve () |
bool | solve (const double t_end) |
double const * | getSolution () const |
double | getTime () const |
void | getYDot (const double t, double const *const y, double *const y_dot) const |
~CVodeSolver () | |
Private Attributes | |
std::unique_ptr< CVodeSolverImpl > | impl_ |
pimpl idiom. | |
|
protected |
Construct from the given config
with storage allocated for the given num_equations
.
Definition at line 312 of file CVodeSolver.cpp.
|
protecteddefault |
|
protected |
Definition at line 348 of file CVodeSolver.cpp.
References impl_.
|
protected |
Definition at line 359 of file CVodeSolver.cpp.
References impl_.
|
protected |
|
protected |
|
protected |
Definition at line 328 of file CVodeSolver.cpp.
References impl_.
|
protected |
Definition at line 333 of file CVodeSolver.cpp.
References impl_.
|
protected |
Definition at line 323 of file CVodeSolver.cpp.
References impl_.
|
protected |
Definition at line 318 of file CVodeSolver.cpp.
References impl_.
|
protected |
Definition at line 343 of file CVodeSolver.cpp.
References impl_.
|
private |
pimpl idiom.
Definition at line 73 of file CVodeSolver.h.
Referenced by getSolution(), getTime(), getYDot(), preSolve(), setFunction(), setIC(), setTolerance(), setTolerance(), and solve().