|
dune-fem 2.12-git
|
Exlicit multi step ODE solver. More...
#include <dune/fem/solver/multistep.hh>

Public Types | |
| typedef Monitor | MonitorType |
| monitor type | |
| typedef DestinationType::DiscreteFunctionSpaceType | SpaceType |
Public Member Functions | |
| ExplicitMultiStepSolver (OperatorType &op, TimeProviderBase &tp, int pord, bool verbose=false) | |
| constructor | |
| virtual | ~ExplicitMultiStepSolver () |
| destructor | |
| void | initialize (const DestinationType &U0) |
| apply operator once to get dt estimate | |
| void | solve (DestinationType &U0) |
| solve system | |
| virtual void | solve (DestinationType &u, MonitorType &monitor)=0 |
| solve \(\partial_t u = L(u)\) where \(L\) is the internal operator. | |
| virtual void | description (std::ostream &) const =0 |
| print description of ODE solver to out stream | |
| virtual int | stages () const |
| return stages of RK solver (-1 if not implemented) | |
| virtual int | order () const |
| return order of RK solver (-1 if not implemented) | |
| void | initialize (const DestinationType &U0) |
| apply operator once to get dt estimate | |
| void | solve (DestinationType &U0) |
| solve the system | |
| void | solveRK (DestinationType &U0) |
| solve the system | |
Protected Attributes | |
| std::vector< std::vector< double > > | a |
| std::vector< double > | b |
| std::vector< double > | c |
| size_t | steps_ |
| double | gamma_ |
| std::vector< DestinationType * > | Uj |
| std::vector< DestinationType * > | Fj |
| std::vector< double > | deltat_ |
| bool | msInit |
| bool | msFirst |
| const int | ord_ |
| const SpaceOperatorInterface< DestinationImp > & | op_ |
| TimeProviderBase & | tp_ |
| bool | initialized_ |
Detailed Description
Exlicit multi step ODE solver.
- Todo:
- port usage of CFL constant to new time provider interface, i.e., use the CFL constant saved in this solver
Member Typedef Documentation
◆ MonitorType
|
inherited |
monitor type
◆ SpaceType
|
inherited |
Constructor & Destructor Documentation
◆ ExplicitMultiStepSolver()
|
inline |
constructor
- Parameters
-
[in] op Operator \(L\) [in] tp TimeProvider [in] pord polynomial order [in] verbose verbosity
◆ ~ExplicitMultiStepSolver()
|
inlinevirtual |
destructor
Member Function Documentation
◆ description()
|
pure virtualinherited |
print description of ODE solver to out stream
Implemented in DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< ExplicitOperator > >, DuneODE::BasicImplicitRungeKuttaSolver< ParDGHelmholtz< Destination >, ParDGNewtonInverse< Destination >, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< ParDGHelmholtz< Destination >, ParDGNewtonInverse< Destination >, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< SpaceOperatorInterface< Destination > > >, DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >, DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, and DuneODE::ExplicitRungeKuttaSolver< DestinationImp >.
◆ initialize() [1/2]
|
inlineinherited |
apply operator once to get dt estimate
◆ initialize() [2/2]
|
inlinevirtual |
apply operator once to get dt estimate
Implements DuneODE::OdeSolverInterface< DestinationImp >.
◆ order()
|
inlinevirtualinherited |
return order of RK solver (-1 if not implemented)
Reimplemented in DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< ExplicitOperator > >, DuneODE::BasicImplicitRungeKuttaSolver< ParDGHelmholtz< Destination >, ParDGNewtonInverse< Destination >, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< ParDGHelmholtz< Destination >, ParDGNewtonInverse< Destination >, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< SpaceOperatorInterface< Destination > > >, DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >, DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, and DuneODE::ExplicitRungeKuttaSolver< DestinationImp >.
◆ solve() [1/3]
|
pure virtualinherited |
solve \(\partial_t u = L(u)\) where \(L\) is the internal operator.
- Parameters
-
[in] u unknown to solve for [in] monitor Monitor to get some inside information
Implemented in DuneODE::ExplicitRungeKuttaSolver< DestinationImp >.
◆ solve() [2/3]
|
inlineinherited |
solve the system
◆ solve() [3/3]
|
inlinevirtual |
solve system
Reimplemented from DuneODE::OdeSolverInterface< DestinationImp >.
◆ solveRK()
|
inlineinherited |
solve the system
◆ stages()
|
inlinevirtualinherited |
return stages of RK solver (-1 if not implemented)
Reimplemented in DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< ExplicitOperator > >, DuneODE::BasicImplicitRungeKuttaSolver< ParDGHelmholtz< Destination >, ParDGNewtonInverse< Destination >, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< ParDGHelmholtz< Destination >, ParDGNewtonInverse< Destination >, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< SpaceOperatorInterface< Destination > > >, DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >, DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, and DuneODE::ExplicitRungeKuttaSolver< DestinationImp >.
Member Data Documentation
◆ a
|
protectedinherited |
◆ b
|
protectedinherited |
◆ c
|
protectedinherited |
◆ deltat_
|
protectedinherited |
◆ Fj
|
protectedinherited |
◆ gamma_
|
protectedinherited |
◆ initialized_
|
protectedinherited |
◆ msFirst
|
protectedinherited |
◆ msInit
|
protectedinherited |
◆ op_
|
protectedinherited |
◆ ord_
|
protectedinherited |
◆ steps_
|
protectedinherited |
◆ tp_
|
protectedinherited |
◆ Uj
|
protectedinherited |
The documentation for this class was generated from the following file:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8