File pvode.hxx#

class PvodeSolver : public Solver#

Public Functions

explicit PvodeSolver(Options *opts = nullptr)#
~PvodeSolver()#
inline virtual BoutReal getCurrentTimestep() override#

Return the current internal timestep.

virtual int init() override#

Initialise the solver.

virtual int run() override#

Run the solver, calling monitors nout times, at intervals of tstep. This function is called by solve(), and is specific to each solver type

This should probably be protected, since it shouldn’t be called by users.

BoutReal run(BoutReal tout)#
void rhs(int N, BoutReal t, BoutReal *udata, BoutReal *dudata)#
void gloc(int N, BoutReal t, BoutReal *udata, BoutReal *dudata)#

Private Members

BoutReal hcur#

Current internal timestep.

bool use_precon#

Use preconditioner.

int precon_dimens#

Maximum Krylov dimension.

BoutReal precon_tol#

Preconditioner tolerance.

int pvode_mxstep#

Maximum number of steps.

pvode::N_Vector u = {nullptr}#
pvode::machEnvType machEnv = {nullptr}#
void *cvode_mem = {nullptr}#
BoutReal abstol#
BoutReal reltol#
pvode::PVBBDData pdata = {nullptr}#
bool pvode_initialised = false#