LIMEX plugin
Loading...
Searching...
No Matches
ug::ITimeIntegrator< TDomain, TAlgebra > Class Template Referenceabstract

Integrates over a given time interval [a,b] with step size dt. More...

#include <time_integrator.hpp>

Inheritance diagram for ug::ITimeIntegrator< TDomain, TAlgebra >:
ug::ILinearTimeIntegrator< TDomain, TAlgebra > ug::INonlinearTimeIntegrator< TDomain, TAlgebra > ug::ConstStepLinearTimeIntegrator< TDomain, TAlgebra > ug::LinearTimeIntegrator< TDomain, TAlgebra > ug::TimeIntegratorLinearAdaptive< TDomain, TAlgebra > ug::DiscontinuityIntegrator< TDomain, TAlgebra > ug::LimexTimeIntegrator< TDomain, TAlgebra > ug::SimpleTimeIntegrator< TDomain, TAlgebra >

Public Types

typedef TAlgebra algebra_type
 
typedef TAlgebra::vector_type vector_type
 
typedef TAlgebra::matrix_type matrix_type
 
typedef TDomain domain_type
 
typedef GridFunction< TDomain, TAlgebra > grid_function_type
 

Public Member Functions

virtual ~ITimeIntegrator ()
 virtual destructor
 
virtual void init (grid_function_type const &u)
 init operator depending on a function u
 
void init ()
 init operator
 
void prepare (grid_function_type &u)
 prepares functions for application
 
void apply (grid_function_type &u1, const grid_function_type &u0)
 Apply operator.
 
virtual bool apply (SmartPtr< grid_function_type > u1, number t1, ConstSmartPtr< grid_function_type > u0, number t0)=0
 
void set_time_step (double dt)
 Set initial time step.
 
double get_time_step ()
 
void set_precision_bound (double precisionBound)
 
void set_no_log_out (bool bNoLogOut)
 

Protected Attributes

double m_dt
 
double m_lower_tim
 
double m_upper_tim
 
double m_precisionBound
 
bool m_bNoLogOut
 

Detailed Description

template<class TDomain, class TAlgebra>
class ug::ITimeIntegrator< TDomain, TAlgebra >

Integrates over a given time interval [a,b] with step size dt.

Member Function Documentation

◆ apply() [1/2]

template<class TDomain, class TAlgebra>
void ug::ITimeIntegrator< TDomain, TAlgebra >::apply ( grid_function_type & u1,
const grid_function_type & u0 )
inline

Apply operator.

This method applies the operator, i.e, advances the time step

◆ apply() [2/2]

template<class TDomain, class TAlgebra>
virtual bool ug::ITimeIntegrator< TDomain, TAlgebra >::apply ( SmartPtr< grid_function_type > u1,
number t1,
ConstSmartPtr< grid_function_type > u0,
number t0 )
pure virtual

◆ init() [1/2]

template<class TDomain, class TAlgebra>
void ug::ITimeIntegrator< TDomain, TAlgebra >::init ( )
inline

init operator

This method initializes the operator. Once initialized the 'apply'-method can be called.

Returns
bool success flag

◆ init() [2/2]

template<class TDomain, class TAlgebra>
virtual void ug::ITimeIntegrator< TDomain, TAlgebra >::init ( grid_function_type const & u)
inlinevirtual

init operator depending on a function u

This method initializes the operator. Once initialized the 'apply'-method can be called. The function u is passed here, since the linear operator may be the linearization of some non-linear operator. Thus, the operator depends on the linearization point. If the operator is not a linearization, this method can be implemented by simply calling init() and forgetting about the linearization point.

Parameters
[in]ufunction (linearization point)
Returns
bool success flag

Reimplemented in ug::TimeIntegratorLinearAdaptive< TDomain, TAlgebra >.


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