|
dune-fem
2.8-git
|
Implicit RungeKutta ODE solver. More...
#include <dune/fem/solver/rungekutta/basicimplicit.hh>

Public Types | |
| typedef BaseType::MonitorType | MonitorType |
| typedef BaseType::DestinationType | DestinationType |
| typedef HelmholtzOperator | HelmholtzOperatorType |
| typedef NonlinearSolver | NonlinearSolverType |
| typedef TimeStepControl | TimeStepControlType |
| typedef SourceTerm | SourceTermType |
| typedef Dune::Fem::TimeProviderBase | TimeProviderType |
| typedef TimeStepControlType::ParameterType | ParameterType |
| typedef NonlinearSolver::ParameterType | NonlinearSolverParameterType |
Public Member Functions | |
| template<class ButcherTable > | |
| BasicImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, const ButcherTable &butcherTable, const TimeStepControlType &timeStepControl, const SourceTermType &sourceTerm, const NonlinearSolverParameterType ¶meters) | |
| constructor More... | |
| template<class ButcherTable > | |
| BasicImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, const ButcherTable &butcherTable, const TimeStepControlType &timeStepControl, const NonlinearSolverParameterType ¶meters) | |
| constructor More... | |
| template<class ButcherTable > | |
| BasicImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, const ButcherTable &butcherTable, const TimeStepControlType &timeStepControl, const Dune::Fem::ParameterReader ¶meter=Dune::Fem::Parameter::container()) | |
| template<class ButcherTable > | |
| BasicImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, const ButcherTable &butcherTable, const Dune::Fem::ParameterReader ¶meter=Dune::Fem::Parameter::container()) | |
| template<class ButcherTable > | |
| void | setup (const ButcherTable &butcherTable) |
| void | initialize (const DestinationType &U0) |
| apply operator once to get dt estimate More... | |
| void | solve (DestinationType &U, MonitorType &monitor) |
| solve the system More... | |
| int | stages () const |
| void | description (std::ostream &out) const |
| print description of ODE solver to out stream More... | |
| virtual void | solve (DestinationType &u) |
| solve | |
| virtual void | solve (DestinationType &u, MonitorType &monitor)=0 |
| solve | |
| virtual void | initialize (const DestinationType &arg)=0 |
| initialize solver More... | |
| virtual void | solve (DestinationType &u) |
| solve | |
| virtual void | solve (DestinationType &u, MonitorType &monitor)=0 |
| solve | |
Protected Member Functions | |
| double | infNorm (const DestinationType &U, const DestinationType &Uerr) const |
Protected Attributes | |
| HelmholtzOperatorType & | helmholtzOp_ |
| NonlinearSolverType | nonlinearSolver_ |
| TimeStepControl | timeStepControl_ |
| SourceTerm | sourceTerm_ |
| int | stages_ |
| double | delta_ |
| Dune::DynamicMatrix< double > | alpha_ |
| Dune::DynamicVector< double > | gamma_ |
| Dune::DynamicVector< double > | beta_ |
| Dune::DynamicVector< double > | c_ |
| DestinationType | rhs_ |
| std::vector< std::unique_ptr< DestinationType > > | updateStorage_ |
| std::vector< DestinationType * > | update_ |
Implicit RungeKutta ODE solver.
| typedef BaseType::DestinationType DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::DestinationType |
| typedef HelmholtzOperator DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::HelmholtzOperatorType |
| typedef BaseType::MonitorType DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::MonitorType |
| typedef NonlinearSolver::ParameterType DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::NonlinearSolverParameterType |
| typedef NonlinearSolver DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::NonlinearSolverType |
| typedef TimeStepControlType::ParameterType DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::ParameterType |
| typedef SourceTerm DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::SourceTermType |
| typedef Dune::Fem::TimeProviderBase DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::TimeProviderType |
| typedef TimeStepControl DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::TimeStepControlType |
|
inline |
constructor
| [in] | helmholtzOp | Helmholtz operator |
| [in] | butcherTable | butcher table to use |
| [in] | timeStepControl | time step controller |
| [in] | sourceTerm | additional source term |
|
inline |
constructor
| [in] | helmholtzOp | Helmholtz operator |
| [in] | butcherTable | butcher table to use |
| [in] | timeStepControl | time step controller |
|
inline |
|
inline |
|
inlinevirtual |
print description of ODE solver to out stream
Implements DuneODE::OdeSolverInterface< HelmholtzOperator::DomainFunctionType >.
|
inlineprotected |
|
pure virtualinherited |
initialize solver
| [in] | arg | argument to apply internal operator once for intial time step estimate |
Implemented in DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, and DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< ExplicitOperator > >.
|
inline |
apply operator once to get dt estimate
|
inline |
|
inlinevirtualinherited |
solve
where
is the internal operator.
| [in] | u | unknown to solve for |
|
inline |
solve
where
is the internal operator.
| [in] | u | unknown to solve for |
|
inline |
solve the system
|
pure virtualinherited |
solve
where
is the internal operator.
| [in] | u | unknown to solve for |
| [in] | monitor | Monitor to get some inside information |
Implemented in DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, and DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< ExplicitOperator > >.
| virtual void DuneODE::OdeSolverInterface< DestinationImp >::solve |
solve
where
is the internal operator.
| [in] | u | unknown to solve for |
| [in] | monitor | Monitor to get some inside information |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |