dune-fem 2.12-git
Loading...
Searching...
No Matches
DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm > Class Template Referenceabstract

ROW RungeKutta ODE solver. More...

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

Inheritance diagram for DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >:
Inheritance graph

Public Types

typedef BaseType::MonitorType MonitorType
 
typedef BaseType::DestinationType DestinationType
 
typedef HelmholtzOperator HelmholtzOperatorType
 
typedef NonlinearSolver NonlinearSolverType
 
typedef TimeStepControl TimeStepControlType
 
typedef SourceTerm SourceTermType
 
typedef NonlinearSolver::ParameterType NonlinearSolverParameterType
 
typedef NonlinearSolverType::LinearInverseOperatorType LinearInverseOperatorType
 
typedef HelmholtzOperator::SpaceOperatorType::PreconditionOperatorType PreconditionOperatorType
 
typedef Dune::Fem::TimeProviderBase TimeProviderType
 

Public Member Functions

template<class ButcherTable >
 BasicROWRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const ButcherTable &butcherTable, const TimeStepControlType &timeStepControl, const SourceTermType &sourceTerm, const NonlinearSolverParameterType &parameter)
 constructor
 
template<class ButcherTable >
 BasicROWRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const ButcherTable &butcherTable, const TimeStepControlType &timeStepControl, const SourceTermType &sourceTerm, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 
template<class ButcherTable >
 BasicROWRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const ButcherTable &butcherTable, const TimeStepControlType &timeStepControl, const NonlinearSolverParameterType &parameter)
 constructor
 
template<class ButcherTable >
 BasicROWRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const ButcherTable &butcherTable, const TimeStepControlType &timeStepControl, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 
template<class ButcherTable >
 BasicROWRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const ButcherTable &butcherTable, const NonlinearSolverParameterType &parameter)
 constructor
 
template<class ButcherTable >
 BasicROWRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const ButcherTable &butcherTable, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 
template<class ButcherTable >
void setup (const ButcherTable &butcherTable)
 
 ~BasicROWRungeKuttaSolver ()
 destructor
 
void initialize (const DestinationType &U0)
 apply operator once to get dt estimate
 
void solve (DestinationType &U, MonitorType &monitor)
 solve the system
 
int stages () const
 return stages of RK solver (-1 if not implemented)
 
int order () const
 return order of RK solver (-1 if not implemented)
 
void description (std::ostream &out) const
 print description of ODE solver to out stream
 
virtual void solve (DestinationType &u)
 solve \(\partial_t u = L(u)\) where \(L\) is the internal operator.
 
virtual void solve (DestinationType &u, MonitorType &monitor)=0
 solve \(\partial_t u = L(u)\) where \(L\) is the internal operator.
 
virtual void initialize (const DestinationType &arg)=0
 initialize solver
 
virtual void solve (DestinationType &u)
 solve \(\partial_t u = L(u)\) where \(L\) is the internal operator.
 
virtual void solve (DestinationType &u, MonitorType &monitor)=0
 solve \(\partial_t u = L(u)\) where \(L\) is the internal operator.
 

Protected Member Functions

double infNorm (const DestinationType &U, const DestinationType &Uerr) const
 

Protected Attributes

HelmholtzOperatorTypehelmholtzOp_
 
LinearInverseOperatorType linearSolver_
 
TimeStepControl timeStepControl_
 
SourceTerm sourceTerm_
 
int stages_
 
int ord_
 
double delta_
 
Dune::DynamicMatrix< doublealpha_
 
Dune::DynamicMatrix< doublealpha2_
 
Dune::DynamicVector< doublegamma_
 
Dune::DynamicVector< doublebeta_
 
Dune::DynamicVector< doublec_
 
DestinationType rhs_
 
DestinationType temp_
 
std::vector< DestinationType * > update_
 
const int maxLinearIterations_
 
const PreconditionOperatorTypepreconditioner_
 

Detailed Description

template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
class DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >

ROW RungeKutta ODE solver.

Member Typedef Documentation

◆ DestinationType

◆ HelmholtzOperatorType

◆ LinearInverseOperatorType

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef NonlinearSolverType::LinearInverseOperatorType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::LinearInverseOperatorType

◆ MonitorType

◆ NonlinearSolverParameterType

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef NonlinearSolver::ParameterType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::NonlinearSolverParameterType

◆ NonlinearSolverType

◆ PreconditionOperatorType

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef HelmholtzOperator::SpaceOperatorType::PreconditionOperatorType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::PreconditionOperatorType

◆ SourceTermType

◆ TimeProviderType

◆ TimeStepControlType

Constructor & Destructor Documentation

◆ BasicROWRungeKuttaSolver() [1/6]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoROWRungeKuttaSourceTerm>
template<class ButcherTable >
DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::BasicROWRungeKuttaSolver ( HelmholtzOperatorType helmholtzOp,
TimeProviderType timeProvider,
const ButcherTable butcherTable,
const TimeStepControlType timeStepControl,
const SourceTermType sourceTerm,
const NonlinearSolverParameterType parameter 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator \(L\)
[in]butcherTablebutcher table to use
[in]timeStepControltime step controller
[in]sourceTermadditional source term

◆ BasicROWRungeKuttaSolver() [2/6]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoROWRungeKuttaSourceTerm>
template<class ButcherTable >
DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::BasicROWRungeKuttaSolver ( HelmholtzOperatorType helmholtzOp,
TimeProviderType timeProvider,
const ButcherTable butcherTable,
const TimeStepControlType timeStepControl,
const SourceTermType sourceTerm,
const Dune::Fem::ParameterReader parameter = Dune::Fem::Parameter::container() 
)
inline

◆ BasicROWRungeKuttaSolver() [3/6]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoROWRungeKuttaSourceTerm>
template<class ButcherTable >
DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::BasicROWRungeKuttaSolver ( HelmholtzOperatorType helmholtzOp,
TimeProviderType timeProvider,
const ButcherTable butcherTable,
const TimeStepControlType timeStepControl,
const NonlinearSolverParameterType parameter 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator \(L\)
[in]butcherTablebutcher table to use
[in]timeStepControltime step controller

◆ BasicROWRungeKuttaSolver() [4/6]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoROWRungeKuttaSourceTerm>
template<class ButcherTable >
DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::BasicROWRungeKuttaSolver ( HelmholtzOperatorType helmholtzOp,
TimeProviderType timeProvider,
const ButcherTable butcherTable,
const TimeStepControlType timeStepControl,
const Dune::Fem::ParameterReader parameter = Dune::Fem::Parameter::container() 
)
inline

◆ BasicROWRungeKuttaSolver() [5/6]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoROWRungeKuttaSourceTerm>
template<class ButcherTable >
DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::BasicROWRungeKuttaSolver ( HelmholtzOperatorType helmholtzOp,
TimeProviderType timeProvider,
const ButcherTable butcherTable,
const NonlinearSolverParameterType parameter 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator \(L\)
[in]butcherTablebutcher table to use

◆ BasicROWRungeKuttaSolver() [6/6]

◆ ~BasicROWRungeKuttaSolver()

Member Function Documentation

◆ description()

◆ infNorm()

◆ initialize() [1/2]

virtual void DuneODE::OdeSolverInterface< HelmholtzOperator::DomainFunctionType >::initialize ( const DestinationType arg)
pure virtualinherited

initialize solver

Parameters
[in]argargument to apply internal operator once for intial time step estimate

◆ initialize() [2/2]

apply operator once to get dt estimate

◆ order()

return order of RK solver (-1 if not implemented)

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

◆ setup()

◆ solve() [1/5]

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

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

Parameters
[in]uunknown to solve for

◆ solve() [2/5]

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

Parameters
[in]uunknown to solve for

◆ solve() [3/5]

◆ solve() [4/5]

virtual void DuneODE::OdeSolverInterface< HelmholtzOperator::DomainFunctionType >::solve ( DestinationType u,
MonitorType monitor 
)
pure 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

◆ solve() [5/5]

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

◆ stages()

return stages of RK solver (-1 if not implemented)

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

Member Data Documentation

◆ alpha2_

◆ alpha_

◆ beta_

◆ c_

◆ delta_

◆ gamma_

◆ helmholtzOp_

◆ linearSolver_

◆ maxLinearIterations_

◆ ord_

◆ preconditioner_

◆ rhs_

◆ sourceTerm_

◆ stages_

◆ temp_

◆ timeStepControl_

◆ update_


The documentation for this class was generated from the following file: