File rkgeneric.hxx#

class RKGenericSolver : public Solver#

Public Functions

explicit RKGenericSolver(Options *opts = nullptr)#
~RKGenericSolver() = default#
virtual void resetInternalFields() override#

Should wipe out internal field vector and reset from current field object data.

void setMaxTimestep(BoutReal dt) override#
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.

Private Functions

BoutReal take_step(BoutReal timeIn, BoutReal dt, const Array<BoutReal> &start, Array<BoutReal> &resultFollow)#

Private Members

Array<BoutReal> f0#
Array<BoutReal> f2#
Array<BoutReal> tmpState#
BoutReal atol#
BoutReal rtol#
BoutReal max_timestep#
BoutReal timestep#
int mxstep#
bool adaptive#
int nlocal#
int neq#
std::unique_ptr<RKScheme> scheme = {nullptr}#

Pointer to the actual scheme used.