OOFEM 3.0
Loading...
Searching...
No Matches
oofem::ZZErrorEstimator Class Reference

#include <zzerrorestimator.h>

Inheritance diagram for oofem::ZZErrorEstimator:
Collaboration diagram for oofem::ZZErrorEstimator:

Public Types

enum  NormType { L2Norm , EnergyNorm }
 Type of norm used. More...
enum  NodalRecoveryType { ZZRecovery , SPRRecovery }
 Nodal recovery type. More...

Public Member Functions

 ZZErrorEstimator (int n, Domain *d)
 Constructor.
virtual ~ZZErrorEstimator ()
 Destructor.
double giveElementError (EE_ErrorType type, Element *elem, TimeStep *tStep) override
double giveValue (EE_ValueType type, TimeStep *tStep) override
int estimateError (EE_ErrorMode mode, TimeStep *tStep) override
RemeshingCriteriagiveRemeshingCrit () override
void initializeFrom (InputRecord &ir) override
const char * giveClassName () const override
const char * giveInputRecordName () const override
Public Member Functions inherited from oofem::ErrorEstimator
 ErrorEstimator (int n, Domain *d)
 Constructor.
virtual ~ErrorEstimator ()
 Destructor.
void setDomain (Domain *d) override
 Sets Domain; should also re-initialize attributes if necessary.
int giveNumberOfSkippedElements ()
ErrorEstimatorType giveErrorEstimatorType () const
bool skipRegion (int reg)
virtual void reinitialize ()
Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
virtual ~FEMComponent ()=default
 Virtual destructor.
DomaingiveDomain () const
int giveNumber () const
void setNumber (int num)
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
virtual void initializeFrom (InputRecord &ir, int priority)
virtual void initializeFinish ()
virtual void postInitialize ()
 Performs post initialization steps. Called after all components are created and initialized.
virtual void giveInputRecord (DynamicInputRecord &input)
virtual void saveContext (DataStream &stream, ContextMode mode)
virtual void restoreContext (DataStream &stream, ContextMode mode)
virtual int checkConsistency ()
virtual void printOutputAt (FILE *file, TimeStep *tStep)
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging.
virtual InterfacegiveInterface (InterfaceType t)
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros).

Protected Attributes

double globalENorm
 Global error norm.
double globalSNorm
 Global norm of quantity which error is evaluated.
double globalErrorEstimate
 Global error estimate (relative).
FloatArray eNorms
 Cache storing element norms.
NormType normType
 Type of norm used.
NodalRecoveryType nodalRecoveryType
 Nodal recovery type.
StateCounterType stateCounter
 Actual state counter.
Protected Attributes inherited from oofem::ErrorEstimator
ErrorEstimatorType eeType
std ::unique_ptr< RemeshingCriteriarc
IntArray regionSkipMap
int skippedNelems
 Number of skipped elements.
InternalStateType IStype
 Internal state type of variable to get internal forces.
Protected Attributes inherited from oofem::FEMComponent
int number
 Component number.
Domaindomain
 Link to domain object, useful for communicating with other FEM components.

Detailed Description

The implementation of Zienkiewicz Zhu Error Estimator (Zienkiewicz and Zhu: A simple error estimator and adaptive procedure for practical engineering analysis, International Journal for Numerical Methods in Engineering, vol. 24, 337-357, 1987). The basic task is to evaluate the stress error on associated domain. The algorithm is written in general way, so it is possible to to evaluate different errors (for example temperature error). Then corresponding member attribute identifying the type of quantity used should be declared and initialized (for example in instanciateYourself() service). Then the modification is required only when requesting element contributions.

This task requires the special element algorithms, which are supported at element level using interface concept. This estimator also provides the compatible Remeshing Criteria, which based on error measure will evaluate the required mesh density of a new domain.

Definition at line 82 of file zzerrorestimator.h.

Member Enumeration Documentation

◆ NodalRecoveryType

Nodal recovery type.

Enumerator
ZZRecovery 
SPRRecovery 

Definition at line 88 of file zzerrorestimator.h.

◆ NormType

Type of norm used.

Enumerator
L2Norm 
EnergyNorm 

Definition at line 86 of file zzerrorestimator.h.

Constructor & Destructor Documentation

◆ ZZErrorEstimator()

oofem::ZZErrorEstimator::ZZErrorEstimator ( int n,
Domain * d )
inline

◆ ~ZZErrorEstimator()

virtual oofem::ZZErrorEstimator::~ZZErrorEstimator ( )
inlinevirtual

Destructor.

Definition at line 118 of file zzerrorestimator.h.

Member Function Documentation

◆ estimateError()

int oofem::ZZErrorEstimator::estimateError ( EE_ErrorMode mode,
TimeStep * tStep )
overridevirtual

◆ giveClassName()

const char * oofem::ZZErrorEstimator::giveClassName ( ) const
inlineoverridevirtual
Returns
Class name of the receiver.

Implements oofem::FEMComponent.

Definition at line 127 of file zzerrorestimator.h.

◆ giveElementError()

double oofem::ZZErrorEstimator::giveElementError ( EE_ErrorType type,
Element * elem,
TimeStep * tStep )
overridevirtual

◆ giveInputRecordName()

const char * oofem::ZZErrorEstimator::giveInputRecordName ( ) const
inlineoverridevirtual
Returns
Input record name of the receiver.

Implements oofem::FEMComponent.

Definition at line 128 of file zzerrorestimator.h.

References _IFT_ZZErrorEstimator_Name.

◆ giveRemeshingCrit()

RemeshingCriteria * oofem::ZZErrorEstimator::giveRemeshingCrit ( )
overridevirtual

Returns reference to associated remeshing criteria.

Implements oofem::ErrorEstimator.

Definition at line 205 of file zzerrorestimator.C.

References oofem::ErrorEstimator::rc.

Referenced by initializeFrom().

◆ giveValue()

double oofem::ZZErrorEstimator::giveValue ( EE_ValueType type,
TimeStep * tStep )
overridevirtual

Returns the characteristic value of given type. The estimateError service should be called before. This method is supposed to be used by associated remeshingCriteria to access some characteristic values already computed or known at error estimator level.

Parameters
typeError type.
tStepTime step.
Returns
Error value for given type.

Implements oofem::ErrorEstimator.

Definition at line 190 of file zzerrorestimator.C.

References oofem::equilibratedEM, estimateError(), globalENorm, oofem::globalErrorEEV, globalErrorEstimate, oofem::globalNormEEV, globalSNorm, and oofem::relativeErrorEstimateEEV.

◆ initializeFrom()

void oofem::ZZErrorEstimator::initializeFrom ( InputRecord & ir)
overridevirtual

Initializes receiver according to object description stored in input record. This function is called immediately after creating object using constructor. Input record can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record. Note that initializeFrom may be called mutiple times.

See also
IR_GIVE_FIELD
IR_GIVE_OPTIONAL_FIELD
Parameters
irInput record to initialize from.
priorityPriority of the input record. This is used to determine the order of initialization

Reimplemented from oofem::ErrorEstimator.

Definition at line 216 of file zzerrorestimator.C.

References _IFT_ZZErrorEstimator_normtype, _IFT_ZZErrorEstimator_recoverytype, EnergyNorm, giveRemeshingCrit(), IR_GIVE_OPTIONAL_FIELD, L2Norm, nodalRecoveryType, normType, SPRRecovery, and ZZRecovery.

Member Data Documentation

◆ eNorms

FloatArray oofem::ZZErrorEstimator::eNorms
protected

Cache storing element norms.

Definition at line 99 of file zzerrorestimator.h.

Referenced by estimateError(), and giveElementError().

◆ globalENorm

double oofem::ZZErrorEstimator::globalENorm
protected

Global error norm.

Definition at line 92 of file zzerrorestimator.h.

Referenced by estimateError(), and giveValue().

◆ globalErrorEstimate

double oofem::ZZErrorEstimator::globalErrorEstimate
protected

Global error estimate (relative).

Definition at line 96 of file zzerrorestimator.h.

Referenced by estimateError(), and giveValue().

◆ globalSNorm

double oofem::ZZErrorEstimator::globalSNorm
protected

Global norm of quantity which error is evaluated.

Definition at line 94 of file zzerrorestimator.h.

Referenced by estimateError(), and giveValue().

◆ nodalRecoveryType

NodalRecoveryType oofem::ZZErrorEstimator::nodalRecoveryType
protected

Nodal recovery type.

Definition at line 104 of file zzerrorestimator.h.

Referenced by estimateError(), initializeFrom(), and ZZErrorEstimator().

◆ normType

NormType oofem::ZZErrorEstimator::normType
protected

Type of norm used.

Definition at line 102 of file zzerrorestimator.h.

Referenced by estimateError(), giveElementError(), initializeFrom(), and ZZErrorEstimator().

◆ stateCounter

StateCounterType oofem::ZZErrorEstimator::stateCounter
protected

Actual state counter.

Definition at line 107 of file zzerrorestimator.h.

Referenced by estimateError(), and ZZErrorEstimator().


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

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011