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

ROW RungeKutta ODE solver. More...

#include </local/tomalk/somewhere/tmp/dune-fem/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 ROWSolverParameter ParametersType
 
typedef NonlinearSolver::ParametersType NonlinearSolverParametersType
 
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 ParametersType &parameter, const NonlinearSolverParametersType &nlsParam)
 constructor More...
 
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 ParametersType &parameter, const NonlinearSolverParametersType &nlsParam)
 constructor More...
 
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 ParametersType &parameter, const NonlinearSolverParametersType &nlsParam)
 constructor More...
 
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 More...
 
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 initialize (const DestinationType &arg)=0
 initialize solver More...
 
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...
 

Protected Member Functions

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

Protected Attributes

HelmholtzOperatorTypehelmholtzOp_
 
NonlinearSolverType nonlinearSolver_
 
TimeStepControl timeStepControl_
 
SourceTerm 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, class SourceTerm = NoROWRungeKuttaSourceTerm>
class DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >

ROW RungeKutta ODE solver.

Member Typedef Documentation

template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef BaseType::DestinationType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::DestinationType
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef HelmholtzOperator DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::HelmholtzOperatorType
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef BaseType::MonitorType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::MonitorType
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef NonlinearSolver::ParametersType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::NonlinearSolverParametersType
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef NonlinearSolver DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::NonlinearSolverType
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef ROWSolverParameter DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::ParametersType
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef HelmholtzOperator::SpaceOperatorType::PreconditionOperatorType DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::PreconditionOperatorType
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef SourceTerm DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::SourceTermType
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef Dune::Fem::TimeProviderBase DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::TimeProviderType
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
typedef TimeStepControl DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::TimeStepControlType

Constructor & Destructor Documentation

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 ParametersType parameter,
const NonlinearSolverParametersType nlsParam 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator $L$
[in]butcherTablebutcher table to use
[in]timeStepControltime step controller
[in]sourceTermadditional source term
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
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 ParametersType parameter,
const NonlinearSolverParametersType nlsParam 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator $L$
[in]butcherTablebutcher table to use
[in]timeStepControltime step controller
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
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 ParametersType parameter,
const NonlinearSolverParametersType nlsParam 
)
inline

constructor

Parameters
[in]helmholtzOpHelmholtz operator $L$
[in]butcherTablebutcher table to use
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 Dune::Fem::ParameterReader parameter = Dune::Fem::Parameter::container() 
)
inline
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::~BasicROWRungeKuttaSolver ( )
inline

destructor

Member Function Documentation

template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
void DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::description ( std::ostream &  ) const
inlinevirtual

print description of ODE solver to out stream

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

template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
double DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::infNorm ( const DestinationType U,
const DestinationType Uerr 
) const
inlineprotected
virtual void DuneODE::OdeSolverInterface< HelmholtzOperator::DomainFunctionType >::initialize ( const DestinationType arg)
pure virtualinherited
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
void DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::initialize ( const DestinationType U0)
inline

apply operator once to get dt estimate

template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
template<class ButcherTable >
void DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::setup ( const ButcherTable &  butcherTable)
inline
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().

virtual void DuneODE::OdeSolverInterface< HelmholtzOperator::DomainFunctionType >::solve ( DestinationType u,
MonitorType monitor 
)
pure virtualinherited
template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
void DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::solve ( DestinationType U,
MonitorType monitor 
)
inline

solve the system

template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoROWRungeKuttaSourceTerm>
int DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::stages ( ) const
inline

Member Data Documentation

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

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