dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
DuneODE::ExplicitRungeKuttaSolver< DestinationImp > Class Template Reference

Exlicit RungeKutta ODE solver. More...

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

Inheritance diagram for DuneODE::ExplicitRungeKuttaSolver< DestinationImp >:
Inheritance graph

Public Types

typedef DestinationImp DestinationType
 
typedef SpaceOperatorInterface< DestinationImp > OperatorType
 
typedef DestinationType::DiscreteFunctionSpaceType SpaceType
 
typedef OdeSolverInterface< DestinationImp >::MonitorType MonitorType
 

Public Member Functions

 ExplicitRungeKuttaSolver (OperatorType &op, TimeProviderBase &tp, const SimpleButcherTable< double > &butcherTable, bool verbose)
 constructor
 
 ExplicitRungeKuttaSolver (OperatorType &op, TimeProviderBase &tp, const int pord, bool verbose)
 constructor
 
 ExplicitRungeKuttaSolver (OperatorType &op, TimeProviderBase &tp, const int pord, const Dune::Fem::ParameterReader &parameter=Dune::Fem::Parameter::container())
 
void initialize (const DestinationType &U0)
 apply operator once to get dt estimate
 
void solve (DestinationType &U0, MonitorType &monitor)
 solve the system
 
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.
 

Protected Member Functions

SimpleButcherTable< double > defaultButcherTables (const int order) const
 

Protected Attributes

Dune::DynamicMatrix< double > A_
 
Dune::DynamicVector< double > b_
 
Dune::DynamicVector< double > c_
 
std::vector< std::unique_ptr< DestinationType > > Upd
 
OperatorTypeop_
 
TimeProviderBasetp_
 
const int ord_
 
const int stages_
 
bool initialized_
 

Detailed Description

template<class DestinationImp>
class DuneODE::ExplicitRungeKuttaSolver< DestinationImp >

Exlicit RungeKutta ODE solver.

Member Typedef Documentation

◆ DestinationType

template<class DestinationImp >
typedef DestinationImp DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::DestinationType

◆ MonitorType

template<class DestinationImp >
typedef OdeSolverInterface<DestinationImp>::MonitorType DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::MonitorType

◆ OperatorType

template<class DestinationImp >
typedef SpaceOperatorInterface<DestinationImp> DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::OperatorType

◆ SpaceType

template<class DestinationImp >
typedef DestinationType::DiscreteFunctionSpaceType DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::SpaceType

Constructor & Destructor Documentation

◆ ExplicitRungeKuttaSolver() [1/3]

template<class DestinationImp >
DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::ExplicitRungeKuttaSolver ( OperatorType op,
TimeProviderBase tp,
const SimpleButcherTable< double > &  butcherTable,
bool  verbose 
)
inline

constructor

Parameters
[in]opOperator $L$
[in]tpTimeProvider
[in]btButcher table defining the Runge-Kutta scheme
[in]verboseverbosity

◆ ExplicitRungeKuttaSolver() [2/3]

template<class DestinationImp >
DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::ExplicitRungeKuttaSolver ( OperatorType op,
TimeProviderBase tp,
const int  pord,
bool  verbose 
)
inline

constructor

Parameters
[in]opOperator $L$
[in]tpTimeProvider
[in]pordpolynomial order
[in]verboseverbosity

◆ ExplicitRungeKuttaSolver() [3/3]

template<class DestinationImp >
DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::ExplicitRungeKuttaSolver ( OperatorType op,
TimeProviderBase tp,
const int  pord,
const Dune::Fem::ParameterReader parameter = Dune::Fem::Parameter::container() 
)
inline

Member Function Documentation

◆ defaultButcherTables()

template<class DestinationImp >
SimpleButcherTable< double > DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::defaultButcherTables ( const int  order) const
inlineprotected

◆ description()

template<class DestinationImp >
void DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::description ( std::ostream &  ) const
inlinevirtual

print description of ODE solver to out stream

Implements DuneODE::OdeSolverInterface< DestinationImp >.

◆ initialize()

template<class DestinationImp >
void DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::initialize ( const DestinationType U0)
inlinevirtual

apply operator once to get dt estimate

Implements DuneODE::OdeSolverInterface< DestinationImp >.

◆ solve() [1/2]

template<class DestinationImp >
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 in DuneODE::ExplicitMultiStepSolver< DestinationImp >.

◆ solve() [2/2]

template<class DestinationImp >
void DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::solve ( DestinationType U0,
MonitorType monitor 
)
inlinevirtual

solve the system

Implements DuneODE::OdeSolverInterface< DestinationImp >.

Member Data Documentation

◆ A_

template<class DestinationImp >
Dune::DynamicMatrix< double > DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::A_
protected

◆ b_

template<class DestinationImp >
Dune::DynamicVector< double > DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::b_
protected

◆ c_

template<class DestinationImp >
Dune::DynamicVector< double > DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::c_
protected

◆ initialized_

template<class DestinationImp >
bool DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::initialized_
protected

◆ op_

template<class DestinationImp >
OperatorType& DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::op_
protected

◆ ord_

template<class DestinationImp >
const int DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::ord_
protected

◆ stages_

template<class DestinationImp >
const int DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::stages_
protected

◆ tp_

template<class DestinationImp >
TimeProviderBase& DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::tp_
protected

◆ Upd

template<class DestinationImp >
std::vector< std::unique_ptr< DestinationType > > DuneODE::ExplicitRungeKuttaSolver< DestinationImp >::Upd
protected

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