dolfin/multistage

Documentation for C++ code found in dolfin/multistage/*.h

Classes

MultiStageScheme

C++ documentation for MultiStageScheme from dolfin/multistage/MultiStageScheme.h:

class dolfin::MultiStageScheme

Place-holder for forms and solutions for a multi-stage Butcher tableau based method.

dolfin::MultiStageScheme::MultiStageScheme(std::vector<std::vector<std::shared_ptr<const Form>>> stage_forms, std::shared_ptr<const Form> last_stage, std::vector<std::shared_ptr<Function>> stage_solutions, std::shared_ptr<Function> u, std::shared_ptr<Constant> t, std::shared_ptr<Constant> dt, std::vector<double> dt_stage_offset, std::vector<int> jacobian_indices, unsigned int order, const std::string name, const std::string human_form, std::vector<std::shared_ptr<const DirichletBC>> bcs = {})

Constructor.

Parameters:
  • stage_forms
  • last_stage
  • stage_solutions
  • u
  • t
  • dt
  • dt_stage_offset
  • jacobian_indices
  • order
  • name
  • human_form
  • bcs
std::vector<std::shared_ptr<const DirichletBC>> dolfin::MultiStageScheme::bcs() const

Return boundary conditions.

std::shared_ptr<Constant> dolfin::MultiStageScheme::dt()

Return local timestep.

const std::vector<double> &dolfin::MultiStageScheme::dt_stage_offset() const

Return local timestep.

bool dolfin::MultiStageScheme::implicit() const

Return true if the whole scheme is implicit.

bool dolfin::MultiStageScheme::implicit(unsigned int stage) const

Return true if stage is implicit.

Parameters:stage
int dolfin::MultiStageScheme::jacobian_index(unsigned int stage) const

Return a distinct jacobian index for a given stage if negative the stage is explicit and hence no jacobian needed.

Parameters:stage
std::shared_ptr<const Form> dolfin::MultiStageScheme::last_stage()

Return the last stage.

unsigned int dolfin::MultiStageScheme::order() const

Return the order of the scheme.

std::shared_ptr<Function> dolfin::MultiStageScheme::solution()

Return solution variable.

std::shared_ptr<const Function> dolfin::MultiStageScheme::solution() const

Return solution variable (const version)

std::vector<std::vector<std::shared_ptr<const Form>>> &dolfin::MultiStageScheme::stage_forms()

Return the stages.

std::vector<std::shared_ptr<Function>> &dolfin::MultiStageScheme::stage_solutions()

Return stage solutions.

std::string dolfin::MultiStageScheme::str(bool verbose) const

Return informal string representation (pretty-print)

Parameters:verbose
std::shared_ptr<Constant> dolfin::MultiStageScheme::t()

Return local time.

PointIntegralSolver

C++ documentation for PointIntegralSolver from dolfin/multistage/PointIntegralSolver.h:

class dolfin::PointIntegralSolver

This class is a time integrator for general Runge Kutta forms. It only includes Point integrals with piecewise linear test functions. Such problems are disconnected at the vertices and can therefore be solved locally.

dolfin::PointIntegralSolver::PointIntegralSolver(std::shared_ptr<MultiStageScheme> scheme)

Constructor FIXME: Include version where one can pass a Solver and/or Parameters

Parameters:scheme
std::size_t dolfin::PointIntegralSolver::num_jacobian_computations() const

Return number of computations of jacobian.

void dolfin::PointIntegralSolver::reset_newton_solver()

Reset newton solver.

void dolfin::PointIntegralSolver::reset_stage_solutions()

Reset stage solutions.

std::shared_ptr<MultiStageScheme> dolfin::PointIntegralSolver::scheme() const

Return the MultiStageScheme .

void dolfin::PointIntegralSolver::step(double dt)

Step solver with time step dt.

Parameters:dt
void dolfin::PointIntegralSolver::step_interval(double t0, double t1, double dt)

Step solver an interval using dt as time step.

Parameters:
  • t0
  • t1
  • dt
dolfin::PointIntegralSolver::~PointIntegralSolver()

Destructor.

RKSolver

C++ documentation for RKSolver from dolfin/multistage/RKSolver.h:

class dolfin::RKSolver

This class is a time integrator for general Runge Kutta problems.

dolfin::RKSolver::RKSolver(std::shared_ptr<MultiStageScheme> scheme)

Constructor FIXME: Include version where one can pass a Solver and/or Parameters

Parameters:scheme
std::shared_ptr<MultiStageScheme> dolfin::RKSolver::scheme() const

Return the MultiStageScheme .

void dolfin::RKSolver::step(double dt)

Step solver with time step dt.

Parameters:dt
void dolfin::RKSolver::step_interval(double t0, double t1, double dt)

Step solver an interval using dt as time step.

Parameters:
  • t0
  • t1
  • dt