dune-fem 2.8.0
|
Implicit RungeKutta ODE solver. More...
#include <dune/fem/solver/rungekutta/semiimplicit.hh>
Public Types | |
typedef ExplicitOperator | ExplicitOperatorType |
typedef HelmholtzOperator | HelmholtzOperatorType |
typedef BaseType::TimeStepControlType | TimeStepControlType |
typedef BaseType::SourceTermType | SourceTermType |
typedef TimeStepControlType::TimeProviderType | TimeProviderType |
typedef BaseType::ParameterType | ParameterType |
typedef BaseType::NonlinearSolverParameterType | NonlinearSolverParameterType |
typedef BaseType::MonitorType | MonitorType |
typedef BaseType::DestinationType | DestinationType |
typedef NonlinearSolver | NonlinearSolverType |
Public Member Functions | |
SemiImplicitRungeKuttaSolver (ExplicitOperatorType &explicitOp, HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, int order, const ParameterType &tscParams, const NonlinearSolverParameterType &nlsParams) | |
constructor | |
SemiImplicitRungeKuttaSolver (ExplicitOperatorType &explicitOp, HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, int order, const Dune::Fem::ParameterReader ¶meter=Dune::Fem::Parameter::container()) | |
SemiImplicitRungeKuttaSolver (ExplicitOperatorType &explicitOp, HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const ParameterType &tscParams, const NonlinearSolverParameterType &nlsParams) | |
constructor | |
SemiImplicitRungeKuttaSolver (ExplicitOperatorType &explicitOp, HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const Dune::Fem::ParameterReader ¶meter=Dune::Fem::Parameter::container()) | |
SemiImplicitRungeKuttaSolver (ExplicitOperatorType &explicitOp, HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const SimpleButcherTable< double > &explButcherTable, const SimpleButcherTable< double > &implButcherTable, const Dune::Fem::ParameterReader ¶meter=Dune::Fem::Parameter::container()) | |
void | setup (const ButcherTable &butcherTable) |
void | initialize (const DestinationType &U0) |
apply operator once to get dt estimate | |
virtual void | initialize (const DestinationType &arg)=0 |
initialize solver | |
void | solve (DestinationType &U, MonitorType &monitor) |
solve the system | |
virtual void | solve (DestinationType &u) |
solve ![]() ![]() | |
virtual void | solve (DestinationType &u, MonitorType &monitor)=0 |
solve ![]() ![]() | |
virtual void | solve (DestinationType &u) |
solve ![]() ![]() | |
virtual void | solve (DestinationType &u, MonitorType &monitor)=0 |
solve ![]() ![]() | |
int | stages () const |
void | description (std::ostream &out) const |
print description of ODE solver to out stream | |
Protected Member Functions | |
double | infNorm (const DestinationType &U, const DestinationType &Uerr) const |
Static Protected Member Functions | |
static SimpleButcherTable< double > | defaultButcherTable (int order, bool expl) |
Protected Attributes | |
HelmholtzOperatorType & | helmholtzOp_ |
NonlinearSolverType | nonlinearSolver_ |
ImplicitRungeKuttaTimeStepControl | timeStepControl_ |
SemiImplicitRungeKuttaSourceTerm< ExplicitOperator > | 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.
|
inherited |
typedef ExplicitOperator DuneODE::SemiImplicitRungeKuttaSolver< ExplicitOperator, HelmholtzOperator, NonlinearSolver >::ExplicitOperatorType |
typedef HelmholtzOperator DuneODE::SemiImplicitRungeKuttaSolver< ExplicitOperator, HelmholtzOperator, NonlinearSolver >::HelmholtzOperatorType |
|
inherited |
typedef BaseType::NonlinearSolverParameterType DuneODE::SemiImplicitRungeKuttaSolver< ExplicitOperator, HelmholtzOperator, NonlinearSolver >::NonlinearSolverParameterType |
|
inherited |
typedef BaseType::ParameterType DuneODE::SemiImplicitRungeKuttaSolver< ExplicitOperator, HelmholtzOperator, NonlinearSolver >::ParameterType |
typedef BaseType::SourceTermType DuneODE::SemiImplicitRungeKuttaSolver< ExplicitOperator, HelmholtzOperator, NonlinearSolver >::SourceTermType |
typedef TimeStepControlType::TimeProviderType DuneODE::SemiImplicitRungeKuttaSolver< ExplicitOperator, HelmholtzOperator, NonlinearSolver >::TimeProviderType |
typedef BaseType::TimeStepControlType DuneODE::SemiImplicitRungeKuttaSolver< ExplicitOperator, HelmholtzOperator, NonlinearSolver >::TimeStepControlType |
|
inline |
constructor
[in] | explicitOp | explicit operator |
[in] | helmholtzOp | Helmholtz operator ![]() |
[in] | timeProvider | time provider |
[in] | order | order of butcher table to use |
[in] | tscParam | parameters for implicit time step control |
[in] | nlsParam | parameters for non linear solver control |
|
inline |
|
inline |
constructor
[in] | explicitOp | explicit operator |
[in] | helmholtzOp | Helmholtz operator ![]() |
[in] | timeProvider | time provider |
[in] | tscParam | parameters for implicit time step control |
[in] | nlsParam | parameters for non linear solver control |
|
inline |
|
inline |
|
inlinestaticprotected |
|
inlinevirtualinherited |
print description of ODE solver to out stream
Implements DuneODE::OdeSolverInterface< HelmholtzOperator::DomainFunctionType >.
|
inlineprotectedinherited |
|
pure virtualinherited |
initialize solver
[in] | arg | argument to apply internal operator once for intial time step estimate |
|
inlineinherited |
apply operator once to get dt estimate
|
inlineinherited |
|
inlinevirtualinherited |
solve
[in] | u | unknown to solve for |
|
inlineinherited |
solve
[in] | u | unknown to solve for |
|
inlineinherited |
solve the system
|
pure virtualinherited |
solve
[in] | u | unknown to solve for |
[in] | monitor | Monitor to get some inside information |
|
inherited |
solve
[in] | u | unknown to solve for |
[in] | monitor | Monitor to get some inside information |
|
inlineinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |