File adams_bashforth.hxx#

class AdamsBashforthSolver : public Solver#

Public Functions

explicit AdamsBashforthSolver(Options *options = nullptr)#
~AdamsBashforthSolver() = 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, int order, Array<BoutReal> &current, Array<BoutReal> &result)#

Private Members

Array<BoutReal> state#
Array<BoutReal> nextState#
std::deque<Array<BoutReal>> history#
std::deque<BoutReal> times#
BoutReal atol#

Tolerances for adaptive timestepping.

BoutReal rtol#
int mxstep#

Maximum number of internal steps between outputs.

bool adaptive#

Adapt timestep?

bool adaptive_order#

Adapt order?

bool followHighOrder#

If true and adaptive the solution used is the more accurate one.

BoutReal dtFac#

Factor we scale timestep estimate by when adapting.

int maximum_order#

The maximum order scheme to use.

BoutReal max_timestep#

Maximum timestep.

BoutReal timestep#

The internal timestep.

int current_order#
int nlocal#
int neq#