ug4
ug::DataEvaluator< TDomain > Class Template Reference

Evaluation for IElemDisc. More...

#include <data_evaluator.h>

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

Public Types

typedef DataEvaluatorBase< TDomain, IElemDisc< TDomain > > base_type
 

Public Member Functions

void add_def_A_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], ProcessType type=PT_ALL)
 compute local stiffness defect for all IElemDiscs More...
 
void add_def_A_expl_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], ProcessType type=PT_ALL)
 compute local stiffness defect for all IElemDiscs explicit More...
 
void add_def_M_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], ProcessType type=PT_ALL)
 compute local mass defect for all IElemDiscs More...
 
void add_jac_A_elem (LocalMatrix &A, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], ProcessType type=PT_ALL)
 compute local stiffness matrix for all IElemDiscs More...
 
void add_jac_M_elem (LocalMatrix &M, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], ProcessType type=PT_ALL)
 compute local mass matrix for all IElemDiscs More...
 
void add_rhs_elem (LocalVector &rhs, GridObject *elem, const MathVector< dim > vCornerCoords[], ProcessType type=PT_ALL)
 compute local rhs for all IElemDiscs More...
 
 DataEvaluator (int discPart, const std::vector< IElemDisc< TDomain > * > &vElemDisc, ConstSmartPtr< FunctionPattern > fctPat, const bool bNonRegularGrid, LocalVectorTimeSeries *locTimeSeries=NULL, const std::vector< number > *vScaleMass=NULL, const std::vector< number > *vScaleStiff=NULL)
 sets the elem discs to evaluate More...
 
void finish_elem_loop ()
 finishes the element loop for all IElemDiscs More...
 
void finish_timestep (const number time, VectorProxyBase *u, size_t algebra_id)
 finishes all time-dependent IElemDiscs More...
 
void finish_timestep_elem (const number time, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 finishes the elements of all time-dependent IElemDiscs More...
 
void prepare_elem (LocalVector &u, GridObject *elem, const ReferenceObjectID roid, const MathVector< dim > vCornerCoords[], const LocalIndices &ind, bool bDeriv=false)
 prepares the element for all IElemDiscs More...
 
void prepare_elem_loop (const ReferenceObjectID id, int si)
 prepares the element loop for all IElemDiscs More...
 
void prepare_timestep (number future_time, const number time, VectorProxyBase *u, size_t algebra_id)
 prepares all time-dependent IElemDiscs More...
 
void prepare_timestep_elem (const number time, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[])
 prepares the elements of all time-dependent IElemDiscs More...
 
- Public Member Functions inherited from ug::DataEvaluatorBase< TDomain, IElemDisc< TDomain > >
void compute_err_est_A_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const LocalIndices &ind, const number scaleMass=(number) 1.0, const number scaleStiff=(number) 1.0)
 compute contributions of the local error indicators in one element for all IElemDiscs More...
 
void compute_err_est_M_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const LocalIndices &ind, const number scaleMass=(number) 1.0, const number scaleStiff=(number) 1.0)
 compute contributions of the local error indicators in one element for all IElemDiscs More...
 
void compute_err_est_rhs_elem (GridObject *elem, const MathVector< dim > vCornerCoords[], const LocalIndices &ind, const number scaleMass=(number) 1.0, const number scaleStiff=(number) 1.0)
 compute contributions of the local error indicators in one element for all IElemDiscs More...
 
 DataEvaluatorBase (int discPart, const std::vector< IElemDisc< TDomain > * > &vElemDisc, ConstSmartPtr< FunctionPattern > fctPat, const bool bNonRegularGrid, LocalVectorTimeSeries *locTimeSeries=NULL, const std::vector< number > *vScaleMass=NULL, const std::vector< number > *vScaleStiff=NULL)
 sets the elem discs to evaluate More...
 
void finish_err_est_elem_loop ()
 finishes the error estimator element loop for all IElemDiscs More...
 
void prepare_err_est_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const LocalIndices &ind, bool bDeriv=false)
 prepares the element for all IElemDiscs More...
 
void prepare_err_est_elem_loop (const ReferenceObjectID id, int si)
 prepares the element loop for all IElemDiscs for the computation of the error estimator More...
 
void set_time_point (const size_t timePoint)
 sets the time point for data evaluation More...
 
bool time_series_needed () const
 returns if local time series is really needed for assembling More...
 
bool use_hanging () const
 returns if one of the element discs needs hanging dofs More...
 

Additional Inherited Members

- Static Public Attributes inherited from ug::DataEvaluatorBase< TDomain, IElemDisc< TDomain > >
static const int dim
 world dimension More...
 
- Protected Member Functions inherited from ug::DataEvaluatorBase< TDomain, IElemDisc< TDomain > >
void add_data_to_eval_data (std::vector< SmartPtr< ICplUserData< dim > > > &vEvalData, std::vector< SmartPtr< ICplUserData< dim > > > &vTryingToAdd)
 tries to add the last entry of vTryingToAdd to the eval data More...
 
void clear_extracted_data_and_mappings ()
 clears imports and user data and mappings betweem commonFctGrp and local More...
 
void clear_positions_in_user_data ()
 clears all requested positions in user data More...
 
void extract_imports_and_userdata (int subsetIndex, int discPart)
 extracts imports and userdata from IElemDiscs More...
 
- Protected Attributes inherited from ug::DataEvaluatorBase< TDomain, IElemDisc< TDomain > >
bool m_bNeedLocTimeSeries
 flag indicating if any elem disc needs local time series More...
 
bool m_bUseHanging
 flag if hanging nodes are used More...
 
int m_discPart
 disc part needed (MASS and/or STIFF and/or RHS) More...
 
LocalVectorTimeSeriesm_pLocTimeSeries
 local time series (non-const since mapping may change) More...
 
ConstSmartPtr< FunctionPatternm_spFctPattern
 underlying function pattern More...
 
std::vector< IElemDisc< TDomain > * > m_vElemDisc [MAX_PROCESS]
 elem disc data More...
 
std::vector< IDataImport< dim > * > m_vImport [MAX_PROCESS][MAX_PART]
 imports that must be evaluated More...
 
std::vector< SmartPtr< ICplUserData< dim > > > m_vConstData
 
std::vector< SmartPtr< ICplUserData< dim > > > m_vPosData
 
std::vector< SmartPtr< ICplUserData< dim > > > m_vDependentData
 

Detailed Description

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

Evaluation for IElemDisc.

Member Typedef Documentation

◆ base_type

template<typename TDomain >
typedef DataEvaluatorBase<TDomain, IElemDisc<TDomain> > ug::DataEvaluator< TDomain >::base_type

Constructor & Destructor Documentation

◆ DataEvaluator()

template<typename TDomain >
ug::DataEvaluator< TDomain >::DataEvaluator ( int  discPart,
const std::vector< IElemDisc< TDomain > * > &  vElemDisc,
ConstSmartPtr< FunctionPattern fctPat,
const bool  bNonRegularGrid,
LocalVectorTimeSeries locTimeSeries = NULL,
const std::vector< number > *  vScaleMass = NULL,
const std::vector< number > *  vScaleStiff = NULL 
)
inline

sets the elem discs to evaluate

Member Function Documentation

◆ add_def_A_elem()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::add_def_A_elem ( LocalVector d,
LocalVector u,
GridObject elem,
const MathVector< dim vCornerCoords[],
ProcessType  type = PT_ALL 
)

compute local stiffness defect for all IElemDiscs

References ug::STIFF, UG_ASSERT, and UG_CATCH_THROW.

◆ add_def_A_expl_elem()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::add_def_A_expl_elem ( LocalVector d,
LocalVector u,
GridObject elem,
const MathVector< dim vCornerCoords[],
ProcessType  type = PT_ALL 
)

compute local stiffness defect for all IElemDiscs explicit

References ug::EXPL, UG_ASSERT, and UG_CATCH_THROW.

◆ add_def_M_elem()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::add_def_M_elem ( LocalVector d,
LocalVector u,
GridObject elem,
const MathVector< dim vCornerCoords[],
ProcessType  type = PT_ALL 
)

compute local mass defect for all IElemDiscs

References ug::MASS, UG_ASSERT, and UG_CATCH_THROW.

◆ add_jac_A_elem()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::add_jac_A_elem ( LocalMatrix A,
LocalVector u,
GridObject elem,
const MathVector< dim vCornerCoords[],
ProcessType  type = PT_ALL 
)

compute local stiffness matrix for all IElemDiscs

References ug::RHS, ug::STIFF, UG_ASSERT, and UG_CATCH_THROW.

◆ add_jac_M_elem()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::add_jac_M_elem ( LocalMatrix M,
LocalVector u,
GridObject elem,
const MathVector< dim vCornerCoords[],
ProcessType  type = PT_ALL 
)

compute local mass matrix for all IElemDiscs

References ug::MASS, UG_ASSERT, and UG_CATCH_THROW.

◆ add_rhs_elem()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::add_rhs_elem ( LocalVector rhs,
GridObject elem,
const MathVector< dim vCornerCoords[],
ProcessType  type = PT_ALL 
)

compute local rhs for all IElemDiscs

References ug::RHS, UG_ASSERT, and UG_CATCH_THROW.

◆ finish_elem_loop()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::finish_elem_loop

finishes the element loop for all IElemDiscs

References ug::PT_ALL, and UG_CATCH_THROW.

◆ finish_timestep()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::finish_timestep ( const number  time,
VectorProxyBase u,
size_t  algebra_id 
)

finishes all time-dependent IElemDiscs

References ug::PT_ALL, and UG_CATCH_THROW.

◆ finish_timestep_elem()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::finish_timestep_elem ( const number  time,
LocalVector u,
GridObject elem,
const MathVector< dim vCornerCoords[] 
)

finishes the elements of all time-dependent IElemDiscs

References ug::PT_ALL, and UG_CATCH_THROW.

◆ prepare_elem()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::prepare_elem ( LocalVector u,
GridObject elem,
const ReferenceObjectID  roid,
const MathVector< dim vCornerCoords[],
const LocalIndices ind,
bool  bDeriv = false 
)

◆ prepare_elem_loop()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::prepare_elem_loop ( const ReferenceObjectID  id,
int  si 
)

prepares the element loop for all IElemDiscs

References compute(), ug::MASS, ug::PT_ALL, ug::RHS, ug::STIFF, and UG_CATCH_THROW.

◆ prepare_timestep()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::prepare_timestep ( number  future_time,
const number  time,
VectorProxyBase u,
size_t  algebra_id 
)

prepares all time-dependent IElemDiscs

References ug::PT_ALL, and UG_CATCH_THROW.

◆ prepare_timestep_elem()

template<typename TDomain >
void ug::DataEvaluator< TDomain >::prepare_timestep_elem ( const number  time,
LocalVector u,
GridObject elem,
const MathVector< dim vCornerCoords[] 
)

prepares the elements of all time-dependent IElemDiscs

References ug::PT_ALL, and UG_CATCH_THROW.


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