ug4
|
Error estimator data class for discretizations with more than one unknown. More...
#include <err_est_data.h>
Public Member Functions | |
virtual void | add (SmartPtr< TErrEstData > spEed, const char *fct) |
adding error estimator data objects More... | |
virtual void | alloc_err_est_data (ConstSmartPtr< SurfaceView > spSV, const GridLevel &gl) |
virtual function to allocate data structures for the error estimator More... | |
TErrEstData * | get (size_t uid) |
accessing the underlying error estimator data objects via function id More... | |
virtual number | get_elem_error_indicator (GridObject *elem, const MathVector< dim > vCornerCoords[]) |
calculate L2 integrals More... | |
MultipleErrEstData (ConstSmartPtr< ApproximationSpace< TDomain > > approx) | |
class constructor More... | |
size_t | num () const |
getting the number of underlying error estimator data objects More... | |
virtual void | release_err_est_data () |
virtual function to release data structures for the error estimator More... | |
virtual void | summarize_err_est_data (SmartPtr< TDomain > spDomain) |
virtual function called after the computation of the error estimator data in all the elements More... | |
virtual | ~MultipleErrEstData () |
virtual class destructor More... | |
Public Member Functions inherited from ug::IErrEstData< TDomain > | |
bool | consider_me () const |
virtual function granting get access to the m_consider member More... | |
IErrEstData () | |
class constructor More... | |
number | scaling_factor () |
get scaling factor More... | |
void | set_consider_me (bool b) |
whether or not this instance is to be considered by domainDisc More... | |
void | set_scaling_factor (number scale) |
set scaling factor for final error calculation More... | |
virtual | ~IErrEstData () |
virtual class destructor More... | |
Static Public Attributes | |
static const int | dim = TDomain::dim |
world dimension More... | |
Static Public Attributes inherited from ug::IErrEstData< TDomain > | |
static const int | dim = TDomain::dim |
world dimension More... | |
Protected Attributes | |
FunctionGroup | m_fctGrp |
function group (in order to map fcts to error estimator objects) More... | |
ConstSmartPtr< ApproximationSpace< TDomain > > | m_spApprox |
approx space More... | |
std::vector< TErrEstData * > | m_vEed |
Error estimator data class for discretizations with more than one unknown.
This class is a kind of wrapper for a bundle of error estimator objects. It can be useful if a discretization depends on more than one unknown and needs to compute error estimators for both of them: One can only pass one error estimator to any ElemDisc, but at the same time it is necessary to calculate the errors for different unknowns separately!
This class will not actually do anything, but pass any request on to the underlying objects. As they most probably figure in some other ElemDisc of their corresponding unknown, the considerMe property is set to false by default.
Make sure that the error estimation routines of any elem disc that is given this MultipleErrEstData object write to the correct sub-objects (i.e. ErrEstData objects)! There has to be some kind of mapping between the unknowns of the elem disc and the order in which the single-function ErrEstData objects are added to this object. This will typically be the exact same order. So try not to add the same object of MultipleErrEstData to elem discs with unknowns defined in a different order!
The template parameter TErrEstData must implement the IErrEstData interface.
TDomain | domain type |
|
inline |
class constructor
References ug::IErrEstData< TDomain >::set_consider_me().
|
inlinevirtual |
virtual class destructor
|
inlinevirtual |
adding error estimator data objects
Reimplemented in ug::MultipleSideAndElemErrEstData< TDomain >.
References ug::FunctionGroup::add(), ug::FunctionGroup::contains(), SmartPtr< T, FreePolicy >::get(), ug::MultipleErrEstData< TDomain, TErrEstData >::m_fctGrp, ug::MultipleErrEstData< TDomain, TErrEstData >::m_spApprox, ug::MultipleErrEstData< TDomain, TErrEstData >::m_vEed, UG_CATCH_THROW, and UG_THROW.
|
virtual |
virtual function to allocate data structures for the error estimator
Implements ug::IErrEstData< TDomain >.
|
inline |
accessing the underlying error estimator data objects via function id
References ug::FunctionGroup::contains(), ug::FunctionGroup::local_index(), ug::MultipleErrEstData< TDomain, TErrEstData >::m_fctGrp, ug::MultipleErrEstData< TDomain, TErrEstData >::m_spApprox, ug::MultipleErrEstData< TDomain, TErrEstData >::m_vEed, name, and UG_THROW.
Referenced by ug::DirichletBoundary< TDomain, TAlgebra >::adjust_error(), ug::FV1InnerBoundaryElemDisc< TImpl, TDomain >::compute_err_est_A_elem(), ug::FV1InnerBoundaryElemDisc< TImpl, TDomain >::prep_err_est_elem(), and ug::FV1InnerBoundaryElemDisc< TImpl, TDomain >::prep_err_est_elem_loop().
|
virtual |
calculate L2 integrals
Implements ug::IErrEstData< TDomain >.
|
inline |
getting the number of underlying error estimator data objects
References ug::MultipleErrEstData< TDomain, TErrEstData >::m_vEed.
Referenced by ug::FV1InnerBoundaryElemDisc< TImpl, TDomain >::prep_err_est_elem_loop().
|
virtual |
virtual function to release data structures for the error estimator
Implements ug::IErrEstData< TDomain >.
|
virtual |
virtual function called after the computation of the error estimator data in all the elements
Implements ug::IErrEstData< TDomain >.
|
static |
world dimension
|
protected |
function group (in order to map fcts to error estimator objects)
Referenced by ug::MultipleErrEstData< TDomain, TErrEstData >::add(), and ug::MultipleErrEstData< TDomain, TErrEstData >::get().
|
protected |
approx space
Referenced by ug::MultipleErrEstData< TDomain, TErrEstData >::add(), and ug::MultipleErrEstData< TDomain, TErrEstData >::get().
|
protected |