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

integration of non-linear systems (with bounds on dt) More...

#include <time_integrator.hpp>

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

Public Types

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 Member Functions

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...
 
virtual bool apply (SmartPtr< grid_function_type > u1, number t1, ConstSmartPtr< grid_function_type > u0, number t0)=0
 
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 ()
 

Protected Attributes

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
 

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
 
- 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)
 

Detailed Description

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

integration of non-linear systems (with bounds on dt)

Member Typedef Documentation

◆ assembled_operator_type

template<class TDomain , class TAlgebra >
typedef AssembledOperator<TAlgebra> ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::assembled_operator_type

◆ base_type

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

◆ solver_type

template<class TDomain , class TAlgebra >
typedef IOperatorInverse<vector_type> ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::solver_type

◆ vector_type

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

Constructor & Destructor Documentation

◆ INonlinearTimeIntegrator()

template<class TDomain , class TAlgebra >
ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::INonlinearTimeIntegrator ( )
inline

Member Function Documentation

◆ get_dt_max()

template<class TDomain , class TAlgebra >
double ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::get_dt_max ( )
inline

◆ get_dt_min()

◆ get_increase_factor()

template<class TDomain , class TAlgebra >
double ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::get_increase_factor ( )
inline

◆ get_reduction_factor()

template<class TDomain , class TAlgebra >
double ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::get_reduction_factor ( )
inline

◆ get_solver() [1/2]

template<class TDomain , class TAlgebra >
SmartPtr<solver_type> ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::get_solver ( )
inline

◆ get_solver() [2/2]

template<class TDomain , class TAlgebra >
ConstSmartPtr<solver_type> ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::get_solver ( ) const
inline

◆ set_dt_max()

template<class TDomain , class TAlgebra >
void ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::set_dt_max ( double  max)
inline

◆ set_dt_min()

template<class TDomain , class TAlgebra >
void ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::set_dt_min ( double  min)
inline

◆ set_increase_factor()

template<class TDomain , class TAlgebra >
void ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::set_increase_factor ( double  inc)
inline

◆ set_reduction_factor()

template<class TDomain , class TAlgebra >
void ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::set_reduction_factor ( double  dec)
inline

◆ set_solver()

template<class TDomain , class TAlgebra >
void ug::INonlinearTimeIntegrator< TDomain, TAlgebra >::set_solver ( SmartPtr< solver_type solver)
inline

Member Data Documentation

◆ m_dtBounds

◆ m_spSolver


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