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: