ug4
ug::IElemDisc< TDomain > Class Template Reference

#include <elem_disc_interface.h>

+ Inheritance diagram for ug::IElemDisc< TDomain >:

Public Types

typedef IElemAssembleFuncs< IElemDisc< TDomain >, TDomain > assemble_base_type
 
typedef IElemError< TDomain > base_type
 real base class More...
 
typedef TDomain domain_type
 
typedef IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain > estimator_base_type
 
- Public Types inherited from ug::IElemAssembleFuncs< IElemDisc< TDomain >, TDomain >
typedef TDomain domain_type
 Domain type. More...
 
typedef IElemDisc< TDomain > leaf_type
 Barton Nackman trick (TODO: needed?) More...
 
- Public Types inherited from ug::IElemError< TDomain >
typedef TDomain domain_type
 
typedef IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain > estimator_base_type
 
- Public Types inherited from ug::IElemDiscBase< TDomain >
typedef TDomain domain_type
 Domain type. More...
 
typedef TDomain::position_type position_type
 Position type. More...
 
- Public Types inherited from ug::IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain >
typedef TDomain domain_type
 Domain type. More...
 
typedef IElemDisc< TDomain > leaf_type
 Barton Nackman trick (TODO: needed?) More...
 

Public Member Functions

void add_elem_modifier (SmartPtr< IElemDiscModifier< TDomain > > elemModifier)
 
std::vector< SmartPtr< IElemDiscModifier< TDomain > > > & get_elem_modifier ()
 
 IElemDisc (const char *functions, const char *subsets)
 
 IElemDisc (const std::vector< std::string > &vFct, const std::vector< std::string > &vSubset)
 
- Public Member Functions inherited from ug::IElemAssembleFuncs< IElemDisc< TDomain >, TDomain >
virtual void add_def_A_elem (LocalVector &d, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 virtual Assembling of Defect (Stiffness part) More...
 
virtual void add_def_A_expl_elem (LocalVector &d, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 defect for explicit terms More...
 
virtual void add_def_M_elem (LocalVector &d, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 virtual Assembling of Defect (Mass part) More...
 
virtual void add_jac_A_elem (LocalMatrix &J, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 Assembling of Jacobian (Stiffness part) More...
 
virtual void add_jac_M_elem (LocalMatrix &J, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 Assembling of Jacobian (Mass part) More...
 
virtual void add_rhs_elem (LocalVector &rhs, GridObject *elem, const MathVector< dim > vCornerCoords[])
 virtual Assembling of Right-Hand Side More...
 
IElemDisc< TDomain > & asLeaf ()
 
virtual void fsh_elem_loop ()
 virtual postprocesses the loop over all elements of one type More...
 
virtual void fsh_timestep (number time, VectorProxyBase *u)
 finish the time step More...
 
virtual void fsh_timestep_elem (const number time, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 virtual finish the time step element-wise More...
 
 IElemAssembleFuncs ()
 constructor More...
 
virtual void post_assemble_loop ()
 virtual prepares the loop over all elements of one type More...
 
virtual void prep_assemble_loop ()
 virtual prepares the loop over all elements of one type More...
 
virtual void prep_elem (const LocalVector &u, GridObject *elem, const ReferenceObjectID roid, const MathVector< dim > vCornerCoords[])
 virtual prepare one elements for assembling More...
 
virtual void prep_elem_loop (const ReferenceObjectID roid, const int si)
 virtual prepares the loop over all elements of one type More...
 
virtual void prep_timestep (number future_time, number time, VectorProxyBase *u)
 prepare the time step More...
 
virtual void prep_timestep_elem (const number time, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 prepare the time step element-wise More...
 
virtual ~IElemAssembleFuncs ()
 Virtual destructor. More...
 
void do_prep_timestep (number future_time, const number time, VectorProxyBase *u, size_t algebra_id)
 
void do_prep_timestep_elem (const number time, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 current Geometric Object More...
 
void do_prep_elem_loop (const ReferenceObjectID roid, const int si)
 current Geometric Object More...
 
void do_prep_elem (LocalVector &u, GridObject *elem, const ReferenceObjectID roid, const MathVector< dim > vCornerCoords[])
 current Geometric Object More...
 
void do_fsh_elem_loop ()
 current Geometric Object More...
 
void do_fsh_timestep (const number time, VectorProxyBase *u, size_t algebra_id)
 current Geometric Object More...
 
void do_fsh_timestep_elem (const number time, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 current Geometric Object More...
 
void do_add_jac_A_elem (LocalMatrix &J, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 current Geometric Object More...
 
void do_add_jac_M_elem (LocalMatrix &J, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 current Geometric Object More...
 
void do_add_def_A_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 current Geometric Object More...
 
void do_add_def_A_expl_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 current Geometric Object More...
 
void do_add_def_M_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 current Geometric Object More...
 
void do_add_rhs_elem (LocalVector &rhs, GridObject *elem, const MathVector< dim > vCornerCoords[])
 current Geometric Object More...
 
void set_roid (ReferenceObjectID id, int discType)
 sets the geometric object type More...
 
void check_roid (ReferenceObjectID roid, int discType)
 check, if all inputs have been set More...
 
- Public Member Functions inherited from ug::IElemError< TDomain >
 IElemError (const char *functions, const char *subsets)
 
 IElemError (const std::vector< std::string > &vFct, const std::vector< std::string > &vSubset)
 
- Public Member Functions inherited from ug::IElemDiscBase< TDomain >
SmartPtr< ApproximationSpace< TDomain > > approx_space ()
 returns approximation space More...
 
ConstSmartPtr< ApproximationSpace< TDomain > > approx_space () const
 returns approximation space More...
 
void check_setup (bool bNonRegularGrid)
 checks the setup of the elem disc More...
 
void clear_imports ()
 removes all imports More...
 
SmartPtr< TDomain > domain ()
 returns the domain More...
 
ConstSmartPtr< TDomain > domain () const
 returns the domain More...
 
const FunctionGroupfunction_group () const
 returns the current function group More...
 
ConstSmartPtr< FunctionPatternfunction_pattern () const
 returns the current function pattern More...
 
IDataImport< dim > & get_import (size_t i)
 returns an import More...
 
 IElemDiscBase (const char *functions="", const char *subsets="")
 Constructor. More...
 
 IElemDiscBase (const std::vector< std::string > &vFct, const std::vector< std::string > &vSubset)
 Constructor. More...
 
bool is_time_dependent () const
 returns if assembling is time-dependent More...
 
bool local_time_series_needed ()
 
const LocalVectorTimeSerieslocal_time_solutions () const
 returns the local time solutions More...
 
const FunctionIndexMappingmap () const
 returns the current function index mapping More...
 
size_t num_fct () const
 number of functions this discretization handles More...
 
size_t num_imports () const
 returns number of imports More...
 
size_t num_subsets () const
 number of subsets this discretization handles More...
 
virtual void prepare_setting (const std::vector< LFEID > &vLfeID, bool bNonRegularGrid)=0
 requests assembling for trial spaces and grid type More...
 
void register_import (IDataImport< dim > &Imp)
 registers a data import More...
 
virtual bool requests_local_time_series ()
 returns if local time series needed by assembling More...
 
void set_approximation_space (SmartPtr< ApproximationSpace< TDomain > > approxSpace)
 sets the approximation space More...
 
void set_functions (const std::string &functions)
 Approximation Space. More...
 
void set_functions (const std::vector< std::string > &functions)
 sets functions by vector of names More...
 
void set_stationary ()
 
void set_stationary (bool bStationaryForced=true)
 sets that the assembling is always stationary (even in instationary case) More...
 
void set_subsets (const std::string &subsets)
 sets subset(s) by name list, divided by ',' More...
 
void set_subsets (const std::vector< std::string > &subsets)
 sets subset(s) by name list, divided by ',' More...
 
void set_time_dependent (LocalVectorTimeSeries &locTimeSeries, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff)
 sets if assembling should be time-dependent and the local time series More...
 
void set_time_independent ()
 sets that the assembling is time independent More...
 
void set_time_point (const size_t timePoint)
 sets the current time point More...
 
TDomain::subset_handler_type & subset_handler ()
 returns the subset handler More...
 
const TDomain::subset_handler_type & subset_handler () const
 returns the subset handler More...
 
const std::vector< std::string > & symb_fcts () const
 returns the symbolic functions More...
 
const std::vector< std::string > & symb_subsets () const
 returns the symbolic subsets More...
 
number time () const
 returns currently set timepoint More...
 
size_t time_point () const
 returns the currently considered time point of the time-disc scheme More...
 
virtual int type () const
 returns the type of elem disc More...
 
virtual bool use_hanging () const
 returns if discretization acts on hanging nodes if present More...
 
virtual ~IElemDiscBase ()
 Virtual destructor. More...
 
const std::vector< number > & mass_scales () const
 
const std::vector< number > & stiff_scales () const
 
number mass_scale (const size_t timePoint) const
 
number stiff_scale (const size_t timePoint) const
 
number mass_scale () const
 
number stiff_scale () const
 
- Public Member Functions inherited from ug::IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain >
IElemDisc< TDomain > & asLeaf ()
 
void check_roid (ReferenceObjectID roid, int discType)
 check, if all inputs have been set More...
 
virtual void compute_err_est_A_elem (const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale)
 virtual compute the error estimator (stiffness part) contribution for one element More...
 
virtual void compute_err_est_M_elem (const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale)
 virtual compute the error estimator (mass part) contribution for one element More...
 
virtual void compute_err_est_rhs_elem (GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale)
 virtual compute the error estimator (rhs part) contribution for one element More...
 
void do_compute_err_est_A_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale)
 
void do_compute_err_est_M_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale)
 
void do_compute_err_est_rhs_elem (GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale)
 
void do_fsh_err_est_elem_loop ()
 
void do_prep_err_est_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 
void do_prep_err_est_elem_loop (const ReferenceObjectID roid, const int si)
 
virtual SmartPtr< IErrEstData< TDomain > > err_est_data ()
 returns the pointer to the error estimator data object (or NULL) More...
 
bool err_est_enabled () const
 find out whether or not a posteriori error estimation is to be performed for this disc More...
 
virtual void fsh_err_est_elem_loop ()
 virtual postprocesses the loop over all elements of one type in the computation of the error estimator More...
 
 IElemEstimatorFuncs ()
 constructor More...
 
virtual void prep_err_est_elem (const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 virtual prepares the loop over all elements of one type for the computation of the error estimator More...
 
virtual void prep_err_est_elem_loop (const ReferenceObjectID roid, const int si)
 virtual prepares the loop over all elements of one type for the computation of the error estimator More...
 
void set_error_estimator (SmartPtr< IErrEstData< TDomain > > ee)
 sets the pointer to an error estimator data object (or NULL) More...
 
void set_roid (ReferenceObjectID id, int discType)
 sets the geometric object type More...
 
virtual ~IElemEstimatorFuncs ()
 Virtual destructor. More...
 

Static Public Attributes

static const int dim = TDomain::dim
 
- Static Public Attributes inherited from ug::IElemAssembleFuncs< IElemDisc< TDomain >, TDomain >
static const int dim
 World dimension. More...
 
- Static Public Attributes inherited from ug::IElemError< TDomain >
static const int dim = TDomain::dim
 
- Static Public Attributes inherited from ug::IElemDiscBase< TDomain >
static const int dim = TDomain::dim
 World dimension. More...
 
- Static Public Attributes inherited from ug::IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain >
static const int dim
 World dimension. More...
 

Protected Member Functions

void clear_add_fct ()
 sets all assemble functions to NULL (for all ReferenceObjectID's) More...
 
void clear_add_fct (ReferenceObjectID id)
 sets all assemble functions to NULL for a given ReferenceObjectID More...
 
void set_default_add_fct ()
 sets all assemble functions to the corresponding virtual ones More...
 
- Protected Member Functions inherited from ug::IElemAssembleFuncs< IElemDisc< TDomain >, TDomain >
void set_prep_timestep_fct (size_t algebra_id, TAssFunc func)
 current Geometric Object More...
 
void set_prep_timestep_elem_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void set_fsh_timestep_fct (size_t algebra_id, TAssFunc func)
 current Geometric Object More...
 
void set_fsh_timestep_elem_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void set_prep_elem_loop_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void set_prep_elem_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void set_fsh_elem_loop_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void set_add_jac_A_elem_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void set_add_jac_M_elem_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void set_add_def_A_elem_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void set_add_def_A_expl_elem_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void set_add_def_M_elem_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void set_add_rhs_elem_fct (ReferenceObjectID id, TAssFunc func)
 current Geometric Object More...
 
void remove_prep_timestep_fct (size_t algebra_id)
 current Geometric Object More...
 
void remove_prep_timestep_elem_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void remove_fsh_timestep_fct (size_t algebra_id)
 current Geometric Object More...
 
void remove_fsh_timestep_elem_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void remove_prep_elem_loop_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void remove_prep_elem_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void remove_fsh_elem_loop_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void remove_add_jac_A_elem_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void remove_add_jac_M_elem_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void remove_add_def_A_elem_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void remove_add_def_A_expl_elem_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void remove_add_def_M_elem_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void remove_add_rhs_elem_fct (ReferenceObjectID id)
 current Geometric Object More...
 
void set_default_add_fct ()
 sets all assemble functions to the corresponding virtual ones More...
 
void clear_add_fct (ReferenceObjectID id)
 sets all assemble functions to NULL for a given ReferenceObjectID More...
 
void clear_add_fct ()
 sets all assemble functions to NULL (for all ReferenceObjectID's) More...
 
- Protected Member Functions inherited from ug::IElemError< TDomain >
void clear_add_fct ()
 sets all assemble functions to NULL (for all ReferenceObjectID's) More...
 
void clear_add_fct (ReferenceObjectID id)
 sets all assemble functions to NULL for a given ReferenceObjectID More...
 
- Protected Member Functions inherited from ug::IElemDiscBase< TDomain >
virtual void approximation_space_changed ()
 callback invoked, when approximation space is changed More...
 
void set_function_pattern (ConstSmartPtr< FunctionPattern > fctPatt)
 sets current function pattern More...
 
void update_function_index_mapping ()
 updates the function index mapping More...
 
- Protected Member Functions inherited from ug::IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain >
void clear_add_fct ()
 sets all assemble functions to NULL (for all ReferenceObjectID's) More...
 
void clear_add_fct (ReferenceObjectID id)
 sets all assemble functions to NULL for a given ReferenceObjectID More...
 
void remove_compute_err_est_A_elem (ReferenceObjectID id)
 
void remove_compute_err_est_M_elem (ReferenceObjectID id)
 
void remove_compute_err_est_rhs_elem (ReferenceObjectID id)
 
void remove_fsh_err_est_elem_loop (ReferenceObjectID id)
 
void remove_prep_err_est_elem (ReferenceObjectID id)
 
void remove_prep_err_est_elem_loop (ReferenceObjectID id)
 
void set_compute_err_est_A_elem (ReferenceObjectID id, TAssFunc func)
 
void set_compute_err_est_M_elem (ReferenceObjectID id, TAssFunc func)
 
void set_compute_err_est_rhs_elem (ReferenceObjectID id, TAssFunc func)
 
void set_default_add_fct ()
 sets all assemble functions to the corresponding virtual ones More...
 
void set_fsh_err_est_elem_loop (ReferenceObjectID id, TAssFunc func)
 
void set_prep_err_est_elem (ReferenceObjectID id, TAssFunc func)
 
void set_prep_err_est_elem_loop (ReferenceObjectID id, TAssFunc func)
 

Protected Attributes

std::vector< SmartPtr< IElemDiscModifier< TDomain > > > m_spElemModifier
 Approximation Space. More...
 
- Protected Attributes inherited from ug::IElemAssembleFuncs< IElemDisc< TDomain >, TDomain >
ReferenceObjectID m_roid
 current Geometric Object More...
 
- Protected Attributes inherited from ug::IElemDiscBase< TDomain >
bool m_bStationaryForced
 flag if stationary assembling is to be used even in instationary assembling More...
 
FunctionGroup m_fctGrp
 current function group More...
 
FunctionIndexMapping m_fctIndexMap
 current function index mapping More...
 
LocalVectorTimeSeriesm_pLocalVectorTimeSeries
 list of local vectors for all solutions of the time series More...
 
SmartPtr< ApproximationSpace< TDomain > > m_spApproxSpace
 Approximation Space. More...
 
ConstSmartPtr< FunctionPatternm_spFctPattern
 current function pattern More...
 
size_t m_timePoint
 time point More...
 
std::vector< std::string > m_vFct
 vector holding name of all symbolic functions More...
 
std::vector< IDataImport< dim > * > m_vIImport
 data imports More...
 
std::vector< std::string > m_vSubset
 vector holding name of all symbolic subsets More...
 
std::vector< numberm_vScaleMass
 
std::vector< numberm_vScaleStiff
 
- Protected Attributes inherited from ug::IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain >
ReferenceObjectID m_roid
 current Geometric Object More...
 
SmartPtr< IErrEstData< TDomain > > m_spErrEstData
 error estimation object associated to the element discretization More...
 

Friends

class IElemAssembleFuncs< IElemDisc< TDomain >, TDomain >
 
class IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain >
 

Detailed Description

template<typename TDomain>
class ug::IElemDisc< TDomain >

Element discretization (including error indicator) TODO: Should be separated!!!

Member Typedef Documentation

◆ assemble_base_type

template<typename TDomain >
typedef IElemAssembleFuncs<IElemDisc<TDomain>, TDomain> ug::IElemDisc< TDomain >::assemble_base_type

◆ base_type

template<typename TDomain >
typedef IElemError<TDomain> ug::IElemDisc< TDomain >::base_type

real base class

◆ domain_type

template<typename TDomain >
typedef TDomain ug::IElemDisc< TDomain >::domain_type

◆ estimator_base_type

template<typename TDomain >
typedef IElemEstimatorFuncs<IElemDisc<TDomain>, TDomain> ug::IElemDisc< TDomain >::estimator_base_type

Constructor & Destructor Documentation

◆ IElemDisc() [1/2]

template<typename TDomain >
ug::IElemDisc< TDomain >::IElemDisc ( const char *  functions,
const char *  subsets 
)
inline

◆ IElemDisc() [2/2]

template<typename TDomain >
ug::IElemDisc< TDomain >::IElemDisc ( const std::vector< std::string > &  vFct,
const std::vector< std::string > &  vSubset 
)
inline

Member Function Documentation

◆ add_elem_modifier()

template<typename TDomain >
void ug::IElemDisc< TDomain >::add_elem_modifier ( SmartPtr< IElemDiscModifier< TDomain > >  elemModifier)
inline

◆ clear_add_fct() [1/2]

◆ clear_add_fct() [2/2]

template<typename TDomain >
void ug::IElemDisc< TDomain >::clear_add_fct ( ReferenceObjectID  id)
inlineprotected

sets all assemble functions to NULL for a given ReferenceObjectID

References ug::IElemAssembleFuncs< IElemDisc< TDomain >, TDomain >::clear_add_fct(), and ug::IElemError< TDomain >::clear_add_fct().

◆ get_elem_modifier()

template<typename TDomain >
std::vector<SmartPtr<IElemDiscModifier<TDomain> > >& ug::IElemDisc< TDomain >::get_elem_modifier ( )
inline

◆ set_default_add_fct()

template<typename TDomain >
void ug::IElemDisc< TDomain >::set_default_add_fct ( )
inlineprotected

Friends And Related Function Documentation

◆ IElemAssembleFuncs< IElemDisc< TDomain >, TDomain >

template<typename TDomain >
friend class IElemAssembleFuncs< IElemDisc< TDomain >, TDomain >
friend

◆ IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain >

template<typename TDomain >
friend class IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain >
friend

Member Data Documentation

◆ dim

template<typename TDomain >
const int ug::IElemDisc< TDomain >::dim = TDomain::dim
static

◆ m_spElemModifier

template<typename TDomain >
std::vector<SmartPtr<IElemDiscModifier<TDomain> > > ug::IElemDisc< TDomain >::m_spElemModifier
protected

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