DUNE-FEM (unstable)

DuneODE::ImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl > Class Template Reference

Implicit RungeKutta ODE solver. More...

#include <dune/fem/solver/rungekutta/implicit.hh>

Public Member Functions

 ImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const SimpleButcherTable< double > &butcherTable, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 constructor More...
 
 ImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, int order, const ParameterType &tscParam, const NonlinearSolverParameterType &nlsParam)
 constructor More...
 
 ImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, int order, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 constructor More...
 
 ImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const ParameterType &tscParam, const NonlinearSolverParameterType &nlsParam)
 constructor More...
 
 ImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 constructor More...
 
void initialize (const DestinationType &U0)
 apply operator once to get dt estimate
 
void solve (DestinationType &U, MonitorType &monitor)
 solve the system
 
virtual void solve (DestinationType &u)
 solve \(\partial_t u = L(u)\) where \(L\) is the internal operator. More...
 
virtual void solve (DestinationType &u, MonitorType &monitor)=0
 solve \(\partial_t u = L(u)\) where \(L\) is the internal operator. More...
 

Detailed Description

template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
class DuneODE::ImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >

Implicit RungeKutta ODE solver.

Constructor & Destructor Documentation

◆ ImplicitRungeKuttaSolver() [1/5]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
DuneODE::ImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::ImplicitRungeKuttaSolver ( HelmholtzOperatorType &  helmholtzOp,
TimeProviderType &  timeProvider,
const SimpleButcherTable< double > &  butcherTable,
const Dune::Fem::ParameterReader &  parameter = Dune::Fem::Parameter::container() 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator \(L\)
[in]timeProvidertime provider
[in]butcherTableButcher table defining the scheme
[in]parameterParameterReader for reading parameters

◆ ImplicitRungeKuttaSolver() [2/5]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
DuneODE::ImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::ImplicitRungeKuttaSolver ( HelmholtzOperatorType &  helmholtzOp,
TimeProviderType &  timeProvider,
int  order,
const ParameterType &  tscParam,
const NonlinearSolverParameterType &  nlsParam 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator \(L\)
[in]timeProvidertime provider
[in]orderorder of butcher table to use
[in]tscParamparameters for implicit time step control
[in]nlsParamparameters for non linear solver control

◆ ImplicitRungeKuttaSolver() [3/5]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
DuneODE::ImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::ImplicitRungeKuttaSolver ( HelmholtzOperatorType &  helmholtzOp,
TimeProviderType &  timeProvider,
int  order,
const Dune::Fem::ParameterReader &  parameter = Dune::Fem::Parameter::container() 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator \(L\)
[in]timeProvidertime provider
[in]orderorder of butcher table to use
[in]tscParamparameters for implicit time step control
[in]nlsParamparameters for non linear solver control

◆ ImplicitRungeKuttaSolver() [4/5]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
DuneODE::ImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::ImplicitRungeKuttaSolver ( HelmholtzOperatorType &  helmholtzOp,
TimeProviderType &  timeProvider,
const ParameterType &  tscParam,
const NonlinearSolverParameterType &  nlsParam 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator \(L\)
[in]timeProvidertime provider
[in]tscParamparameters for implicit time step control
[in]nlsParamparameters for non linear solver control

◆ ImplicitRungeKuttaSolver() [5/5]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
DuneODE::ImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::ImplicitRungeKuttaSolver ( HelmholtzOperatorType &  helmholtzOp,
TimeProviderType &  timeProvider,
const Dune::Fem::ParameterReader &  parameter = Dune::Fem::Parameter::container() 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator \(L\)
[in]timeProvidertime provider
[in]parameterParameterReader for reading parameters

Member Function Documentation

◆ solve() [1/2]

virtual void DuneODE::OdeSolverInterface< DestinationImp >::solve ( DestinationType u)
inlinevirtualinherited

solve \(\partial_t u = L(u)\) where \(L\) is the internal operator.

Parameters
[in]uunknown to solve for

Reimplemented from DuneODE::OdeSolverInterface< HelmholtzOperator::DomainFunctionType >.

◆ solve() [2/2]

virtual void DuneODE::OdeSolverInterface< DestinationImp >::solve ( DestinationType u,
MonitorType monitor 
)
virtualinherited

solve \(\partial_t u = L(u)\) where \(L\) is the internal operator.

Parameters
[in]uunknown to solve for
[in]monitorMonitor to get some inside information

Implements DuneODE::OdeSolverInterface< HelmholtzOperator::DomainFunctionType >.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 21, 23:30, 2024)