dune-fem  2.4.1-rc
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
DuneODE::ROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl > Class Template Reference

ROW RungeKutta ODE solver. More...

#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/solver/rungekutta/row.hh>

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

Public Types

typedef HelmholtzOperator HelmholtzOperatorType
 
typedef BaseType::TimeStepControlType TimeStepControlType
 
typedef TimeStepControlType::TimeProviderType TimeProviderType
 
typedef BaseType::ParametersType ParametersType
 
typedef TimeStepControlType::ParametersType TimeStepControlParametersType
 
typedef BaseType::NonlinearSolverParametersType NonlinearSolverParametersType
 
typedef BaseType::MonitorType MonitorType
 
typedef BaseType::DestinationType DestinationType
 
typedef NonlinearSolver NonlinearSolverType
 
typedef NoROWRungeKuttaSourceTerm SourceTermType
 
typedef HelmholtzOperator::SpaceOperatorType::PreconditionOperatorType PreconditionOperatorType
 

Public Member Functions

 ROWRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, int order=3, const ParametersType &param=ParametersType(), const TimeStepControlParametersType &tscParam=TimeStepControlParametersType(), const NonlinearSolverParametersType &nlsParam=NonlinearSolverParametersType())
 constructor More...
 
 ROWRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, TimeProviderType &timeProvider, const ParametersType &param=ParametersType(), const TimeStepControlParametersType &tscParam=TimeStepControlParametersType(), const NonlinearSolverParametersType &nlsParam=NonlinearSolverParametersType())
 constructor More...
 
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...
 
virtual void solve (DestinationType &u)
 solve $\partial_t u = L(u)$ where $L$ is the internal operator. More...
 
int stages () const
 
void description (std::ostream &out) const
 print description of ODE solver to out stream More...
 

Protected Member Functions

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

Static Protected Member Functions

static ROWSimpleButcherTable< double > butcherTable (int order)
 

Protected Attributes

HelmholtzOperatorTypehelmholtzOp_
 
NonlinearSolverType nonlinearSolver_
 
TimeStepControl timeStepControl_
 
NoROWRungeKuttaSourceTerm sourceTerm_
 
int stages_
 
double delta_
 
Dune::DynamicMatrix< double > alpha_
 
Dune::DynamicMatrix< double > alpha2_
 
Dune::DynamicVector< double > gamma_
 
Dune::DynamicVector< double > beta_
 
Dune::DynamicVector< double > c_
 
DestinationType rhs_
 
DestinationType temp_
 
std::vector< DestinationType * > update_
 
const double linAbsTol_
 
const double linReduction_
 
const bool linVerbose_
 
const int maxLinearIterations_
 
const PreconditionOperatorTypepreconditioner_
 

Detailed Description

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

ROW RungeKutta ODE solver.

Member Typedef Documentation

typedef BaseType::DestinationType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::DestinationType
inherited
template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
typedef HelmholtzOperator DuneODE::ROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::HelmholtzOperatorType
typedef BaseType::MonitorType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::MonitorType
inherited
template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
typedef BaseType::NonlinearSolverParametersType DuneODE::ROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::NonlinearSolverParametersType
typedef NonlinearSolver DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::NonlinearSolverType
inherited
template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
typedef BaseType::ParametersType DuneODE::ROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::ParametersType
typedef HelmholtzOperator::SpaceOperatorType::PreconditionOperatorType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::PreconditionOperatorType
inherited
typedef NoROWRungeKuttaSourceTerm DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::SourceTermType
inherited
template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
typedef TimeStepControlType::TimeProviderType DuneODE::ROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::TimeProviderType
template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
typedef TimeStepControlType::ParametersType DuneODE::ROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::TimeStepControlParametersType
template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
typedef BaseType::TimeStepControlType DuneODE::ROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::TimeStepControlType

Constructor & Destructor Documentation

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
DuneODE::ROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::ROWRungeKuttaSolver ( HelmholtzOperatorType helmholtzOp,
TimeProviderType timeProvider,
int  order = 3,
const ParametersType param = ParametersType(),
const TimeStepControlParametersType tscParam = TimeStepControlParametersType(),
const NonlinearSolverParametersType nlsParam = NonlinearSolverParametersType() 
)
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
template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
DuneODE::ROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::ROWRungeKuttaSolver ( HelmholtzOperatorType helmholtzOp,
TimeProviderType timeProvider,
const ParametersType param = ParametersType(),
const TimeStepControlParametersType tscParam = TimeStepControlParametersType(),
const NonlinearSolverParametersType nlsParam = NonlinearSolverParametersType() 
)
inline

constructor

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

Member Function Documentation

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl = ImplicitRungeKuttaTimeStepControl>
static ROWSimpleButcherTable< double > DuneODE::ROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl >::butcherTable ( int  order)
inlinestaticprotected
void DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::description ( std::ostream &  out) const
inlinevirtualinherited

print description of ODE solver to out stream

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

double DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::infNorm ( const DestinationType U,
const DestinationType Uerr 
) const
inlineprotectedinherited
void DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::initialize ( const DestinationType U0)
inlinevirtualinherited

apply operator once to get dt estimate

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

void DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::setup ( const ButcherTable &  butcherTable)
inlineinherited
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

References DuneODE::OdeSolverInterface< DestinationImp >::description(), and DuneODE::OdeSolverInterface< DestinationImp >::solve().

void DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::solve ( DestinationType U,
MonitorType monitor 
)
inlinevirtualinherited
int DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::stages ( ) const
inlineinherited

Member Data Documentation

Dune::DynamicMatrix< double > DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::alpha2_
protectedinherited
Dune::DynamicMatrix< double > DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::alpha_
protectedinherited
Dune::DynamicVector< double > DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::beta_
protectedinherited
Dune::DynamicVector< double > DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::c_
protectedinherited
double DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::delta_
protectedinherited
Dune::DynamicVector< double > DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::gamma_
protectedinherited
HelmholtzOperatorType& DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::helmholtzOp_
protectedinherited
const double DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::linAbsTol_
protectedinherited
const double DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::linReduction_
protectedinherited
const bool DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::linVerbose_
protectedinherited
const int DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::maxLinearIterations_
protectedinherited
NonlinearSolverType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::nonlinearSolver_
protectedinherited
const PreconditionOperatorType* DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::preconditioner_
protectedinherited
DestinationType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::rhs_
protectedinherited
NoROWRungeKuttaSourceTerm DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::sourceTerm_
protectedinherited
int DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::stages_
protectedinherited
DestinationType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::temp_
protectedinherited
TimeStepControl DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::timeStepControl_
protectedinherited
std::vector< DestinationType * > DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, NoROWRungeKuttaSourceTerm >::update_
protectedinherited

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