DUNE-FEM (unstable)

DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm > Class Template Referenceabstract

Implicit RungeKutta ODE solver. More...

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

Public Member Functions

template<class ButcherTable >
 BasicImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, const ButcherTable &butcherTable, const TimeStepControlType &timeStepControl, const SourceTermType &sourceTerm, const NonlinearSolverParameterType &parameters)
 constructor More...
 
template<class ButcherTable >
 BasicImplicitRungeKuttaSolver (HelmholtzOperatorType &helmholtzOp, const ButcherTable &butcherTable, const TimeStepControlType &timeStepControl, const NonlinearSolverParameterType &parameters)
 constructor More...
 
void initialize (const DestinationType &U0)
 apply operator once to get dt estimate
 
void solve (DestinationType &U, 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. More...
 
virtual void solve (DestinationType &u, MonitorType &monitor)=0
 solve \(\partial_t u = L(u)\) where \(L\) is the internal operator. 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...
 

Detailed Description

template<class HelmholtzOperator, class NonlinearSolver, class TimeStepControl, class SourceTerm = NoImplicitRungeKuttaSourceTerm>
class DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >

Implicit RungeKutta ODE solver.

Constructor & Destructor Documentation

◆ BasicImplicitRungeKuttaSolver() [1/2]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoImplicitRungeKuttaSourceTerm>
template<class ButcherTable >
DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::BasicImplicitRungeKuttaSolver ( HelmholtzOperatorType &  helmholtzOp,
const ButcherTable &  butcherTable,
const TimeStepControlType &  timeStepControl,
const SourceTermType &  sourceTerm,
const NonlinearSolverParameterType &  parameters 
)
inline

constructor

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

◆ BasicImplicitRungeKuttaSolver() [2/2]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoImplicitRungeKuttaSourceTerm>
template<class ButcherTable >
DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, TimeStepControl, SourceTerm >::BasicImplicitRungeKuttaSolver ( HelmholtzOperatorType &  helmholtzOp,
const ButcherTable &  butcherTable,
const TimeStepControlType &  timeStepControl,
const NonlinearSolverParameterType &  parameters 
)
inline

constructor

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

Member Function Documentation

◆ initialize()

◆ solve() [1/4]

◆ solve() [2/4]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoImplicitRungeKuttaSourceTerm>
virtual void DuneODE::OdeSolverInterface< DestinationImp >::solve ( DestinationType &  u)
inline

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

Parameters
[in]uunknown to solve for

◆ solve() [3/4]

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

Implemented in DuneODE::BasicImplicitRungeKuttaSolver< ParDGHelmholtz< Destination >, ParDGNewtonInverse< Destination >, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< ParDGHelmholtz< Destination >, ParDGNewtonInverse< Destination >, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< SpaceOperatorInterface< Destination > > >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< ExplicitOperator > >, DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< ParDGHelmholtz< Destination >, ParDGNewtonInverse< Destination >, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >, DuneODE::BasicImplicitRungeKuttaSolver< ParDGHelmholtz< Destination >, ParDGNewtonInverse< Destination >, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< SpaceOperatorInterface< Destination > > >, DuneODE::BasicImplicitRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl, SemiImplicitRungeKuttaSourceTerm< ExplicitOperator > >, and DuneODE::BasicROWRungeKuttaSolver< HelmholtzOperator, NonlinearSolver, ImplicitRungeKuttaTimeStepControl >.

◆ solve() [4/4]

template<class HelmholtzOperator , class NonlinearSolver , class TimeStepControl , class SourceTerm = NoImplicitRungeKuttaSourceTerm>
virtual void DuneODE::OdeSolverInterface< DestinationImp >::solve ( DestinationType &  u,
MonitorType &  monitor 
)

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

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 21, 23:30, 2024)