1#ifndef DUNE_FEM_SOLVER_RUNGEKUTTA_ROW_HH
2#define DUNE_FEM_SOLVER_RUNGEKUTTA_ROW_HH
12#include <dune/fem/io/parameter.hh>
13#include <dune/fem/solver/rungekutta/basicrow.hh>
14#include <dune/fem/solver/rungekutta/butchertable.hh>
15#include <dune/fem/solver/rungekutta/timestepcontrol.hh>
24 template<
class HelmholtzOperator,
class NonlinearSolver,
class TimeStepControl = ImplicitRungeKuttaTimeStepControl >
32 typedef HelmholtzOperator HelmholtzOperatorType;
33 typedef typename BaseType::TimeStepControlType TimeStepControlType;
35 typedef typename TimeStepControlType::TimeProviderType TimeProviderType;
36 typedef typename TimeStepControlType::ParameterType TimeStepControlParameterType;
37 typedef typename BaseType::NonlinearSolverParameterType NonlinearSolverParameterType;
38 typedef NonlinearSolverParameterType ParameterType;
49 TimeProviderType &timeProvider,
int order,
50 const TimeStepControlParameterType& tscParam,
51 const NonlinearSolverParameterType& parameter )
52 :
BaseType( helmholtzOp, timeProvider, butcherTable( order ), TimeStepControlType( timeProvider, tscParam ), parameter )
56 TimeProviderType &timeProvider,
int order,
57 const Dune::Fem::ParameterReader ¶meter = Dune::Fem::Parameter::container() )
58 : BaseType( helmholtzOp, timeProvider, butcherTable( order ), TimeStepControlType( timeProvider, parameter ),
59 NonlinearSolverParameterType( parameter ) )
70 TimeProviderType &timeProvider,
71 const TimeStepControlParameterType& tscParam,
72 const NonlinearSolverParameterType& parameter )
73 :
BaseType( helmholtzOp, timeProvider, butcherTable( 3 ), TimeStepControlType( timeProvider, tscParam ), parameter )
77 TimeProviderType &timeProvider,
78 const Dune::Fem::ParameterReader ¶meter = Dune::Fem::Parameter::container() )
79 : BaseType( helmholtzOp, timeProvider, butcherTable( 3 ), TimeStepControlType( timeProvider, parameter ),
80 ParameterType( parameter ), NonlinearSolverParameterType( parameter ) )
84 static ROWSimpleButcherTable< double > butcherTable (
int order )
89 return row2ButcherTable();
91 return row3ButcherTable();
93 DUNE_THROW( NotImplemented,
"ROW Runge-Kutta method of order " << order <<
" not implemented." );
ROW RungeKutta ODE solver.
Definition: basicrow.hh:56
ROW RungeKutta ODE solver.
Definition: row.hh:27
ROWRungeKuttaSolver(HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const TimeStepControlParameterType &tscParam, const NonlinearSolverParameterType ¶meter)
constructor
Definition: row.hh:69
ROWRungeKuttaSolver(HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, int order, const TimeStepControlParameterType &tscParam, const NonlinearSolverParameterType ¶meter)
constructor
Definition: row.hh:48
A few common exception classes.
#define DUNE_THROW(E, m)
Definition: exceptions.hh:218