Plugins
ug::SimpleTimeIntegrator< TDomain, TAlgebra > Class Template Reference

Integrate (a non-linear problem) over a given time interval. More...

#include <simple_integrator.hpp>

+ Inheritance diagram for ug::SimpleTimeIntegrator< TDomain, TAlgebra >:

Public Types

typedef INonlinearTimeIntegrator< TDomain, TAlgebra > base_type
 
typedef IGridFunctionSpace< grid_function_typegrid_function_space_type
 
typedef base_type::grid_function_type grid_function_type
 
typedef ITimeDiscretization< TAlgebra > time_disc_type
 
typedef VectorTimeSeries< typename base_type::vector_typevector_time_series_type
 
typedef TAlgebra::vector_type vector_type
 
- Public Types inherited from ug::INonlinearTimeIntegrator< TDomain, TAlgebra >
typedef AssembledOperator< TAlgebra > assembled_operator_type
 
typedef ITimeIntegrator< TDomain, TAlgebra > base_type
 
typedef IOperatorInverse< vector_typesolver_type
 
typedef base_type::vector_type vector_type
 
- Public Types inherited from ug::ITimeIntegrator< TDomain, TAlgebra >
typedef TAlgebra algebra_type
 
typedef TDomain domain_type
 
typedef GridFunction< TDomain, TAlgebra > grid_function_type
 
typedef TAlgebra::matrix_type matrix_type
 
typedef TAlgebra::vector_type vector_type
 
- Public Types inherited from ug::IOperator< GridFunction< TDomain, TAlgebra > >
typedef Y codomain_function_type
 
typedef X domain_function_type
 
- Public Types inherited from ug::TimeIntegratorSubject< TDomain, TAlgebra >
typedef ITimeIntegratorStageObserver_end< TDomain, TAlgebra > end_observer_type
 
typedef ITimeIntegratorStageObserver_finalize< TDomain, TAlgebra > finalize_observer_type
 
typedef GridFunction< TDomain, TAlgebra > grid_function_type
 
typedef ITimeIntegratorStageObserver_init< TDomain, TAlgebra > init_observer_type
 
enum  observer_group_type
 
typedef ITimeIntegratorStageObserver_postprocess< TDomain, TAlgebra > postprocess_observer_type
 
typedef ITimeIntegratorStageObserver_preprocess< TDomain, TAlgebra > preprocess_observer_type
 
typedef std::vector< SmartPtr< process_observer_type > > process_observer_container_type
 
typedef ITimeIntegratorObserver< TDomain, TAlgebra > process_observer_type
 
typedef ITimeIntegratorStageObserver_rewind< TDomain, TAlgebra > rewind_observer_type
 
typedef ITimeIntegratorStageObserver_start< TDomain, TAlgebra > start_observer_type
 
- Public Types inherited from ug::ITimeDiscDependentObject< TAlgebra >
typedef ITimeDiscretization< TAlgebra > time_disc_type
 
- Public Types inherited from ug::DebugWritingObject< TAlgebra >
typedef TAlgebra algebra_type
 
typedef TAlgebra::matrix_type matrix_type
 
typedef TAlgebra::vector_type vector_type
 
- Public Types inherited from VectorDebugWritingObject< TAlgebra::vector_type >
typedef TAlgebra::vector_type vector_type
 

Public Member Functions

bool apply (SmartPtr< grid_function_type > u1, number t1, ConstSmartPtr< grid_function_type > u0, number t0)
 
number get_consistency_error () const
 
SmartPtr< grid_function_typeget_derivative ()
 
void set_banach_space (SmartPtr< IGridFunctionSpace< grid_function_type > > spSpace)
 
void set_derivative (SmartPtr< grid_function_type > udot)
 
 SimpleTimeIntegrator (SmartPtr< time_disc_type > tDisc)
 
 SimpleTimeIntegrator (SmartPtr< time_disc_type > tDisc, SmartPtr< grid_function_space_type > spSpace)
 
- Public Member Functions inherited from ug::INonlinearTimeIntegrator< TDomain, TAlgebra >
double get_dt_max ()
 
double get_dt_min ()
 
double get_increase_factor ()
 
double get_reduction_factor ()
 
SmartPtr< solver_typeget_solver ()
 
ConstSmartPtr< solver_typeget_solver () const
 
 INonlinearTimeIntegrator ()
 
void set_dt_max (double max)
 
void set_dt_min (double min)
 
void set_increase_factor (double inc)
 
void set_reduction_factor (double dec)
 
void set_solver (SmartPtr< solver_type > solver)
 
- Public Member Functions inherited from ug::ITimeIntegrator< TDomain, TAlgebra >
void apply (grid_function_type &u1, const grid_function_type &u0)
 Apply operator. More...
 
double get_time_step ()
 
void init ()
 init operator More...
 
virtual void init (grid_function_type const &u)
 init operator depending on a function u More...
 
 ITimeIntegrator ()
 
void prepare (grid_function_type &u)
 prepares functions for application More...
 
void set_no_log_out (bool bNoLogOut)
 
void set_precision_bound (double precisionBound)
 
void set_time_step (double dt)
 Set initial time step. More...
 
virtual ~ITimeIntegrator ()
 virtual destructor More...
 
- Public Member Functions inherited from ug::IOperator< GridFunction< TDomain, TAlgebra > >
virtual void apply (Y &d, const X &u)=0
 
virtual void prepare (X &u)=0
 
virtual ~IOperator ()
 
- Public Member Functions inherited from ug::TimeIntegratorSubject< TDomain, TAlgebra >
void attach_end_observer (SmartPtr< process_observer_type > obs)
 
void attach_finalize_observer (SmartPtr< process_observer_type > obs)
 
void attach_init_observer (SmartPtr< process_observer_type > obs)
 
void attach_observer (SmartPtr< process_observer_type > obs)
 
void attach_postprocess_observer (SmartPtr< process_observer_type > obs)
 
void attach_preprocess_observer (SmartPtr< process_observer_type > obs)
 
void attach_rewind_observer (SmartPtr< process_observer_type > obs)
 
void attach_start_observer (SmartPtr< process_observer_type > obs)
 
void reset_observers ()
 
- Public Member Functions inherited from ug::ITimeDiscDependentObject< TAlgebra >
SmartPtr< time_disc_typeget_time_disc ()
 
 ITimeDiscDependentObject (SmartPtr< time_disc_type > spTimeDisc)
 
- Public Member Functions inherited from ug::DebugWritingObject< TAlgebra >
SmartPtr< IDebugWriter< algebra_type > > debug_writer ()
 
ConstSmartPtr< IDebugWriter< algebra_type > > debug_writer () const
 
bool debug_writer_valid () const
 
 DebugWritingObject ()
 
 DebugWritingObject (const DebugWritingObject< algebra_type > &parent)
 
 DebugWritingObject (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter)
 
virtual void set_debug (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter)
 
virtual ~DebugWritingObject ()
 
- Public Member Functions inherited from VectorDebugWritingObject< TAlgebra::vector_type >
virtual void set_debug (SmartPtr< IVectorDebugWriter< vector_type > > spDebugWriter)
 
SmartPtr< IVectorDebugWriter< vector_type > > vector_debug_writer ()
 
ConstSmartPtr< IVectorDebugWriter< vector_type > > vector_debug_writer () const
 
bool vector_debug_writer_valid () const
 
 VectorDebugWritingObject ()
 
 VectorDebugWritingObject (SmartPtr< IVectorDebugWriter< vector_type > > spDebugWriter)
 
void write_debug (const vector_type &vec, const char *filename)
 
virtual ~VectorDebugWritingObject ()
 

Protected Types

typedef ITimeDiscDependentObject< TAlgebra > tdisc_dep_type
 

Protected Member Functions

bool apply_multi_stage (SmartPtr< grid_function_type > u1, number t1, ConstSmartPtr< grid_function_type > u0, number t0)
 
bool apply_single_stage (SmartPtr< grid_function_type > u1, number t1, ConstSmartPtr< grid_function_type > u0, number t0)
 
bool hasTerminated (double tCurrent, double tStart, double tFinal) const
 
- Protected Member Functions inherited from ug::TimeIntegratorSubject< TDomain, TAlgebra >
void attach_to_group (int tGroup, SmartPtr< process_observer_type > obs)
 
void attach_to_group (SmartPtr< process_observer_type > obs)
 
bool notify_group (SmartPtr< grid_function_type > u, int step, number time, number dt)
 
- Protected Member Functions inherited from ug::DebugWritingObject< TAlgebra >
void enter_debug_writer_section (const char *secDir)
 
void enter_debug_writer_section (std::string secDir)
 
void leave_debug_writer_section ()
 
void write_debug (const matrix_type &mat, const char *filename)
 
void write_debug (const matrix_type &mat, std::string name)
 
- Protected Member Functions inherited from VectorDebugWritingObject< TAlgebra::vector_type >
void enter_vector_debug_writer_section (const char *secDir)
 
void enter_vector_debug_writer_section (std::string secDir)
 
void leave_vector_debug_writer_section ()
 
void print_debugger_message (const char *msg)
 
void print_debugger_message (std::string msg)
 
virtual void write_debug (const vector_type &vec, std::string name)
 

Protected Attributes

number m_initial_consistency_error
 
SmartPtr< IGridFunctionSpace< grid_function_type > > m_spBanachSpace
 metric More...
 
SmartPtr< grid_function_typem_spDerivative
 
- Protected Attributes inherited from ug::INonlinearTimeIntegrator< TDomain, TAlgebra >
TimeStepBounds m_dtBounds
 
SmartPtr< solver_typem_spSolver
 
- Protected Attributes inherited from ug::ITimeIntegrator< TDomain, TAlgebra >
bool m_bNoLogOut
 
double m_dt
 
double m_lower_tim
 
double m_precisionBound
 
double m_upper_tim
 
- Protected Attributes inherited from ug::TimeIntegratorSubject< TDomain, TAlgebra >
std::vector< SmartPtr< end_observer_type > > m_vEndObservers
 
std::vector< SmartPtr< finalize_observer_type > > m_vFinalizeObservers
 
std::vector< SmartPtr< init_observer_type > > m_vInitObservers
 
std::vector< SmartPtr< postprocess_observer_type > > m_vPostprocessObservers
 
std::vector< SmartPtr< preprocess_observer_type > > m_vPreprocessObservers
 
process_observer_container_type m_vProcessObservers [TIO_GROUP_SIZE]
 
std::vector< SmartPtr< rewind_observer_type > > m_vRewindObservers
 
std::vector< SmartPtr< start_observer_type > > m_vStartObservers
 
- Protected Attributes inherited from ug::ITimeDiscDependentObject< TAlgebra >
SmartPtr< time_disc_typem_spTimeDisc
 
- Protected Attributes inherited from ug::DebugWritingObject< TAlgebra >
SmartPtr< IDebugWriter< algebra_type > > m_spDebugWriter
 
- Protected Attributes inherited from VectorDebugWritingObject< TAlgebra::vector_type >
SmartPtr< IVectorDebugWriter< vector_type > > m_spVectorDebugWriter
 

Additional Inherited Members

- Public Attributes inherited from ug::TimeIntegratorSubject< TDomain, TAlgebra >
 TIO_GROUP_END
 
 TIO_GROUP_FINALIZE_STEP
 
 TIO_GROUP_INIT_STEP
 
 TIO_GROUP_POSTPROCESS_STEP
 
 TIO_GROUP_PREPROCESS_STEP
 
 TIO_GROUP_REWIND_STEP
 
 TIO_GROUP_SIZE
 
 TIO_GROUP_START
 

Detailed Description

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

Integrate (a non-linear problem) over a given time interval.

Member Typedef Documentation

◆ base_type

template<class TDomain , class TAlgebra >
typedef INonlinearTimeIntegrator<TDomain, TAlgebra> ug::SimpleTimeIntegrator< TDomain, TAlgebra >::base_type

◆ grid_function_space_type

template<class TDomain , class TAlgebra >
typedef IGridFunctionSpace<grid_function_type> ug::SimpleTimeIntegrator< TDomain, TAlgebra >::grid_function_space_type

◆ grid_function_type

template<class TDomain , class TAlgebra >
typedef base_type::grid_function_type ug::SimpleTimeIntegrator< TDomain, TAlgebra >::grid_function_type

◆ tdisc_dep_type

template<class TDomain , class TAlgebra >
typedef ITimeDiscDependentObject<TAlgebra> ug::SimpleTimeIntegrator< TDomain, TAlgebra >::tdisc_dep_type
protected

◆ time_disc_type

template<class TDomain , class TAlgebra >
typedef ITimeDiscretization<TAlgebra> ug::SimpleTimeIntegrator< TDomain, TAlgebra >::time_disc_type

◆ vector_time_series_type

template<class TDomain , class TAlgebra >
typedef VectorTimeSeries<typename base_type::vector_type> ug::SimpleTimeIntegrator< TDomain, TAlgebra >::vector_time_series_type

◆ vector_type

template<class TDomain , class TAlgebra >
typedef TAlgebra::vector_type ug::SimpleTimeIntegrator< TDomain, TAlgebra >::vector_type

Constructor & Destructor Documentation

◆ SimpleTimeIntegrator() [1/2]

template<class TDomain , class TAlgebra >
ug::SimpleTimeIntegrator< TDomain, TAlgebra >::SimpleTimeIntegrator ( SmartPtr< time_disc_type tDisc)
inline

◆ SimpleTimeIntegrator() [2/2]

template<class TDomain , class TAlgebra >
ug::SimpleTimeIntegrator< TDomain, TAlgebra >::SimpleTimeIntegrator ( SmartPtr< time_disc_type tDisc,
SmartPtr< grid_function_space_type spSpace 
)
inline

Member Function Documentation

◆ apply()

◆ apply_multi_stage()

◆ apply_single_stage()

◆ get_consistency_error()

template<class TDomain , class TAlgebra >
number ug::SimpleTimeIntegrator< TDomain, TAlgebra >::get_consistency_error ( ) const
inline

◆ get_derivative()

template<class TDomain , class TAlgebra >
SmartPtr<grid_function_type> ug::SimpleTimeIntegrator< TDomain, TAlgebra >::get_derivative ( )
inline

◆ hasTerminated()

template<class TDomain , class TAlgebra >
bool ug::SimpleTimeIntegrator< TDomain, TAlgebra >::hasTerminated ( double  tCurrent,
double  tStart,
double  tFinal 
) const
inlineprotected

◆ set_banach_space()

template<class TDomain , class TAlgebra >
void ug::SimpleTimeIntegrator< TDomain, TAlgebra >::set_banach_space ( SmartPtr< IGridFunctionSpace< grid_function_type > >  spSpace)
inline

◆ set_derivative()

template<class TDomain , class TAlgebra >
void ug::SimpleTimeIntegrator< TDomain, TAlgebra >::set_derivative ( SmartPtr< grid_function_type udot)
inline

Member Data Documentation

◆ m_initial_consistency_error

template<class TDomain , class TAlgebra >
number ug::SimpleTimeIntegrator< TDomain, TAlgebra >::m_initial_consistency_error
protected

◆ m_spBanachSpace

template<class TDomain , class TAlgebra >
SmartPtr<IGridFunctionSpace<grid_function_type> > ug::SimpleTimeIntegrator< TDomain, TAlgebra >::m_spBanachSpace
protected

◆ m_spDerivative


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