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

Base class for LIMEX time integrator. More...

#include <limex_integrator.hpp>

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

Classes

class  ThreadData
 Contains all data for parallel execution of time steps. More...
 

Public Types

typedef TAlgebra algebra_type
 
typedef INonlinearTimeIntegrator< TDomain, TAlgebra > base_type
 
typedef IDomainDiscretization< algebra_typedomain_discretization_type
 
typedef ISubDiagErrorEst< vector_typeerror_estim_type
 
typedef GridFunction< TDomain, TAlgebra > grid_function_type
 
typedef INonlinearTimeIntegrator< TDomain, TAlgebra > itime_integrator_type
 
typedef algebra_type::matrix_type matrix_type
 
typedef base_type::solver_type solver_type
 
typedef std::vector< SmartPtr< ThreadData > > thread_vector_type
 
typedef SimpleTimeIntegrator< TDomain, TAlgebra > time_integrator_type
 
typedef LinearImplicitEuler< algebra_typetimestep_type
 
typedef AitkenNevilleTimex< vector_typetimex_type
 
typedef algebra_type::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::VectorDebugWritingObject< class >
typedef TVector vector_type
 

Public Member Functions

void add_error_estimator (SmartPtr< error_estim_type > spErrorEstim)
 add an error estimator More...
 
void add_stage (size_t i, size_t nsteps, SmartPtr< domain_discretization_type > spDD, SmartPtr< solver_type > solver)
 ! TODO: remove this function! More...
 
void add_stage (size_t nsteps, SmartPtr< solver_type > solver, SmartPtr< domain_discretization_type > spDD)
 
void add_stage_base (size_t nsteps, SmartPtr< solver_type > solver, SmartPtr< domain_discretization_type > spDD, SmartPtr< domain_discretization_type > spGamma=SPNULL)
 add a new stage (at end of list) More...
 
void add_stage_ext (size_t nsteps, SmartPtr< solver_type > solver, SmartPtr< domain_discretization_type > spDD, SmartPtr< domain_discretization_type > spGamma)
 
bool apply (SmartPtr< grid_function_type > u, number t1, ConstSmartPtr< grid_function_type > u0, number t0)
 Integrating from t0 -> t1. More...
 
std::string config_string () const
 
void disable_matrix_cache ()
 Select approximate Newton (default) More...
 
void enable_matrix_cache ()
 Select classic LIMEX. More...
 
number get_cost (size_t i)
 
number get_gamma (size_t i)
 
SmartPtr< grid_function_typeget_time_derivative ()
 getter for time derivative info (optional for setting $\Gamma$) More...
 
SmartPtr< timestep_typeget_time_stepper (size_t i)
 
number get_workload (size_t i)
 
bool has_time_derivative ()
 status for time derivative info (optional for setting $\Gamma$) More...
 
void interrupt ()
 interrupt execution of apply() by external call via observer More...
 
 LimexTimeIntegrator (int nstages)
 
void select_cost_strategy (SmartPtr< ILimexCostStrategy > cost)
 
void set_asymptotic_order (size_t q)
 
void set_conservative (bool c)
 
void set_debug_for_timestepper (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter)
 forward debug info to time integrators More...
 
void set_max_reductions (size_t nred)
 
void set_space (SmartPtr< IGridFunctionSpace< grid_function_type > > spSpace)
 set banach space (e.g. for computing consistency error) More...
 
void set_stepsize_greedy_order_factor (double sigma)
 
void set_stepsize_reduction_factor (double sigma)
 
void set_stepsize_safety_factor (double rho)
 
void set_time_derivative (SmartPtr< grid_function_type > udot)
 setter for time derivative info (optional for setting $\Gamma$) More...
 
void set_tolerance (double tol)
 tolerance More...
 
- 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::VectorDebugWritingObject< class >
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 ()
 
- Public Member Functions inherited from ug::LimexTimeIntegratorConfig
std::string config_string () const
 
 LimexTimeIntegratorConfig ()
 
 LimexTimeIntegratorConfig (unsigned int nstages)
 

Protected Member Functions

int apply_integrator_threads (number dtcurr, ConstSmartPtr< grid_function_type > u0, number t0, size_t nstages)
 (Tentatively) apply integrators More...
 
void dispose_integrator_threads ()
 Dispose integrator threads (w/ solutions) More...
 
size_t find_optimal_solution (const std::vector< number > &eps, size_t ntest, size_t &qpred)
 
void init_gamma ()
 aux: compute exponents gamma_k (for roots) More...
 
void init_integrator_threads (ConstSmartPtr< grid_function_type > u)
 Initialize integrator threads (w/ solutions) More...
 
void join_integrator_threads ()
 e.g. wait for all threads to complete More...
 
numbermonitor (size_t k, size_t q)
 
void update_cost ()
 Updating workloads A_i for computing T_ii. More...
 
void update_integrator_threads (ConstSmartPtr< grid_function_type > ucommon, number t)
 Override thread-wise solutions with common solution. More...
 
void update_monitor ()
 convergence monitor More...
 
- 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::VectorDebugWritingObject< class >
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

bool m_bInterrupt
 
std::vector< numberm_consistency_error
 Consistency error. More...
 
std::vector< numberm_costA
 Cost A_i (for completing stage i) More...
 
std::vector< numberm_gamma
 gamma_i: exponent More...
 
std::vector< numberm_lambda
 
int m_limex_step
 Current counter. More...
 
std::vector< numberm_monitor
 Convergence monitor \alpha. More...
 
std::vector< size_t > m_num_reductions
 history of reductions More...
 
SmartPtr< IGridFunctionSpace< grid_function_type > > m_spBanachSpace
 metric space More...
 
SmartPtr< ILimexCostStrategym_spCostStrategy
 
SmartPtr< grid_function_typem_spDtSol
 Time derivative. More...
 
SmartPtr< error_estim_typem_spErrorEstimator
 
std::vector< size_t > m_vSteps
 generating sequence for extrapolation More...
 
std::vector< ThreadDatam_vThreadData
 vector with thread information More...
 
std::vector< numberm_workload
 
- 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::VectorDebugWritingObject< class >
SmartPtr< IVectorDebugWriter< vector_type > > m_spVectorDebugWriter
 
- Protected Attributes inherited from ug::LimexTimeIntegratorConfig
size_t m_asymptotic_order
 For PDEs, we may apply an symptotic order reduction. More...
 
unsigned int m_conservative
 
double m_greedyOrderIncrease
 
size_t m_max_reductions
 
unsigned int m_nstages
 Number of Aitken-Neville stages. More...
 
double m_rhoSafety
 
double m_sigmaReduction
 
double m_tol
 
bool m_useCachedMatrices
 

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::LimexTimeIntegrator< TDomain, TAlgebra >

Base class for LIMEX time integrator.

Member Typedef Documentation

◆ algebra_type

template<class TDomain , class TAlgebra >
typedef TAlgebra ug::LimexTimeIntegrator< TDomain, TAlgebra >::algebra_type

◆ base_type

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

◆ domain_discretization_type

template<class TDomain , class TAlgebra >
typedef IDomainDiscretization<algebra_type> ug::LimexTimeIntegrator< TDomain, TAlgebra >::domain_discretization_type

◆ error_estim_type

template<class TDomain , class TAlgebra >
typedef ISubDiagErrorEst<vector_type> ug::LimexTimeIntegrator< TDomain, TAlgebra >::error_estim_type

◆ grid_function_type

template<class TDomain , class TAlgebra >
typedef GridFunction<TDomain, TAlgebra> ug::LimexTimeIntegrator< TDomain, TAlgebra >::grid_function_type

◆ itime_integrator_type

template<class TDomain , class TAlgebra >
typedef INonlinearTimeIntegrator<TDomain, TAlgebra> ug::LimexTimeIntegrator< TDomain, TAlgebra >::itime_integrator_type

◆ matrix_type

template<class TDomain , class TAlgebra >
typedef algebra_type::matrix_type ug::LimexTimeIntegrator< TDomain, TAlgebra >::matrix_type

◆ solver_type

template<class TDomain , class TAlgebra >
typedef base_type::solver_type ug::LimexTimeIntegrator< TDomain, TAlgebra >::solver_type

◆ thread_vector_type

template<class TDomain , class TAlgebra >
typedef std::vector<SmartPtr<ThreadData> > ug::LimexTimeIntegrator< TDomain, TAlgebra >::thread_vector_type

◆ time_integrator_type

template<class TDomain , class TAlgebra >
typedef SimpleTimeIntegrator<TDomain, TAlgebra> ug::LimexTimeIntegrator< TDomain, TAlgebra >::time_integrator_type

◆ timestep_type

template<class TDomain , class TAlgebra >
typedef LinearImplicitEuler<algebra_type> ug::LimexTimeIntegrator< TDomain, TAlgebra >::timestep_type

◆ timex_type

template<class TDomain , class TAlgebra >
typedef AitkenNevilleTimex<vector_type> ug::LimexTimeIntegrator< TDomain, TAlgebra >::timex_type

◆ vector_type

template<class TDomain , class TAlgebra >
typedef algebra_type::vector_type ug::LimexTimeIntegrator< TDomain, TAlgebra >::vector_type

Constructor & Destructor Documentation

◆ LimexTimeIntegrator()

Member Function Documentation

◆ add_error_estimator()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::add_error_estimator ( SmartPtr< error_estim_type spErrorEstim)
inline

◆ add_stage() [1/2]

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::add_stage ( size_t  i,
size_t  nsteps,
SmartPtr< domain_discretization_type spDD,
SmartPtr< solver_type solver 
)
inline

! TODO: remove this function!

References ug::LimexTimeIntegrator< TDomain, TAlgebra >::add_stage(), and UG_LOG.

◆ add_stage() [2/2]

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::add_stage ( size_t  nsteps,
SmartPtr< solver_type solver,
SmartPtr< domain_discretization_type spDD 
)
inline

◆ add_stage_base()

◆ add_stage_ext()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::add_stage_ext ( size_t  nsteps,
SmartPtr< solver_type solver,
SmartPtr< domain_discretization_type spDD,
SmartPtr< domain_discretization_type spGamma 
)
inline

◆ apply()

◆ apply_integrator_threads()

◆ config_string()

template<class TDomain , class TAlgebra >
std::string ug::LimexTimeIntegrator< TDomain, TAlgebra >::config_string ( ) const
inline

◆ disable_matrix_cache()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::disable_matrix_cache ( )
inline

Select approximate Newton (default)

References ug::LimexTimeIntegratorConfig::m_useCachedMatrices.

◆ dispose_integrator_threads()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::dispose_integrator_threads
protected

Dispose integrator threads (w/ solutions)

Create private solutions for each thread

References PROFILE_FUNC_GROUP, and SPNULL.

◆ enable_matrix_cache()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::enable_matrix_cache ( )
inline

Select classic LIMEX.

References ug::LimexTimeIntegratorConfig::m_useCachedMatrices.

◆ find_optimal_solution()

template<class TDomain , class TAlgebra >
size_t ug::LimexTimeIntegrator< TDomain, TAlgebra >::find_optimal_solution ( const std::vector< number > &  eps,
size_t  ntest,
size_t &  qpred 
)
protected

References UG_LOG.

◆ get_cost()

template<class TDomain , class TAlgebra >
number ug::LimexTimeIntegrator< TDomain, TAlgebra >::get_cost ( size_t  i)
inline

◆ get_gamma()

template<class TDomain , class TAlgebra >
number ug::LimexTimeIntegrator< TDomain, TAlgebra >::get_gamma ( size_t  i)
inline

◆ get_time_derivative()

template<class TDomain , class TAlgebra >
SmartPtr<grid_function_type> ug::LimexTimeIntegrator< TDomain, TAlgebra >::get_time_derivative ( )
inline

getter for time derivative info (optional for setting $\Gamma$)

References ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_spDtSol.

◆ get_time_stepper()

template<class TDomain , class TAlgebra >
SmartPtr<timestep_type> ug::LimexTimeIntegrator< TDomain, TAlgebra >::get_time_stepper ( size_t  i)
inline

◆ get_workload()

template<class TDomain , class TAlgebra >
number ug::LimexTimeIntegrator< TDomain, TAlgebra >::get_workload ( size_t  i)
inline

◆ has_time_derivative()

template<class TDomain , class TAlgebra >
bool ug::LimexTimeIntegrator< TDomain, TAlgebra >::has_time_derivative ( )
inline

status for time derivative info (optional for setting $\Gamma$)

References ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_spDtSol, and SPNULL.

◆ init_gamma()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::init_gamma ( )
inlineprotected

◆ init_integrator_threads()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::init_integrator_threads ( ConstSmartPtr< grid_function_type u)
protected

Initialize integrator threads (w/ solutions)

Create private solutions for each thread

References PROFILE_FUNC_GROUP.

◆ interrupt()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::interrupt ( )
inline

interrupt execution of apply() by external call via observer

References ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_bInterrupt.

◆ join_integrator_threads()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::join_integrator_threads
protected

e.g. wait for all threads to complete

◆ monitor()

template<class TDomain , class TAlgebra >
number& ug::LimexTimeIntegrator< TDomain, TAlgebra >::monitor ( size_t  k,
size_t  q 
)
inlineprotected

◆ select_cost_strategy()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::select_cost_strategy ( SmartPtr< ILimexCostStrategy cost)
inline

◆ set_asymptotic_order()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::set_asymptotic_order ( size_t  q)
inline

◆ set_conservative()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::set_conservative ( bool  c)
inline

◆ set_debug_for_timestepper()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::set_debug_for_timestepper ( SmartPtr< IDebugWriter< algebra_type > >  spDebugWriter)
inline

forward debug info to time integrators

References ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_vThreadData, and UG_LOG.

◆ set_max_reductions()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::set_max_reductions ( size_t  nred)
inline

◆ set_space()

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

set banach space (e.g. for computing consistency error)

References ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_spBanachSpace, and UG_LOG.

◆ set_stepsize_greedy_order_factor()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::set_stepsize_greedy_order_factor ( double  sigma)
inline

◆ set_stepsize_reduction_factor()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::set_stepsize_reduction_factor ( double  sigma)
inline

◆ set_stepsize_safety_factor()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::set_stepsize_safety_factor ( double  rho)
inline

◆ set_time_derivative()

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

setter for time derivative info (optional for setting $\Gamma$)

References ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_spDtSol.

◆ set_tolerance()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::set_tolerance ( double  tol)
inline

tolerance

References ug::LimexTimeIntegratorConfig::m_tol.

◆ update_cost()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::update_cost ( )
inlineprotected

◆ update_integrator_threads()

template<class TDomain , class TAlgebra >
void ug::LimexTimeIntegrator< TDomain, TAlgebra >::update_integrator_threads ( ConstSmartPtr< grid_function_type ucommon,
number  t 
)
protected

Override thread-wise solutions with common solution.

References UG_ASSERT.

◆ update_monitor()

Member Data Documentation

◆ m_bInterrupt

template<class TDomain , class TAlgebra >
bool ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_bInterrupt
protected

◆ m_consistency_error

template<class TDomain , class TAlgebra >
std::vector<number> ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_consistency_error
protected

Consistency error.

◆ m_costA

template<class TDomain , class TAlgebra >
std::vector<number> ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_costA
protected

◆ m_gamma

template<class TDomain , class TAlgebra >
std::vector<number> ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_gamma
protected

◆ m_lambda

template<class TDomain , class TAlgebra >
std::vector<number> ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_lambda
protected

◆ m_limex_step

template<class TDomain , class TAlgebra >
int ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_limex_step
protected

Current counter.

◆ m_monitor

template<class TDomain , class TAlgebra >
std::vector<number> ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_monitor
protected

Convergence monitor \alpha.

Referenced by ug::LimexTimeIntegrator< TDomain, TAlgebra >::monitor().

◆ m_num_reductions

template<class TDomain , class TAlgebra >
std::vector<size_t> ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_num_reductions
protected

history of reductions

◆ m_spBanachSpace

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

◆ m_spCostStrategy

template<class TDomain , class TAlgebra >
SmartPtr<ILimexCostStrategy> ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_spCostStrategy
protected

◆ m_spDtSol

◆ m_spErrorEstimator

template<class TDomain , class TAlgebra >
SmartPtr<error_estim_type> ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_spErrorEstimator
protected

◆ m_vSteps

template<class TDomain , class TAlgebra >
std::vector<size_t> ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_vSteps
protected

◆ m_vThreadData

◆ m_workload

template<class TDomain , class TAlgebra >
std::vector<number> ug::LimexTimeIntegrator< TDomain, TAlgebra >::m_workload
protected

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