OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::MeshQualityErrorEstimator Class Reference

This error estimator measures the quality of the elements. More...

#include <meshqualityerrorestimator.h>

+ Inheritance diagram for oofem::MeshQualityErrorEstimator:
+ Collaboration diagram for oofem::MeshQualityErrorEstimator:

Public Member Functions

 MeshQualityErrorEstimator (int n, Domain *d)
 Constructor. More...
 
virtual ~MeshQualityErrorEstimator ()
 Destructor. More...
 
virtual double giveElementError (EE_ErrorType type, Element *elem, TimeStep *tStep)
 Returns the element error. More...
 
virtual double giveValue (EE_ValueType type, TimeStep *tStep)
 Gives the max error from any element in the domain. More...
 
virtual int estimateError (EE_ErrorMode mode, TimeStep *tStep)
 Empty implementation. More...
 
virtual RemeshingCriteriagiveRemeshingCrit ()
 Returns reference to associated remeshing criteria. More...
 
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description stored in input record. More...
 
virtual const char * giveClassName () const
 
- Public Member Functions inherited from oofem::ErrorEstimator
 ErrorEstimator (int n, Domain *d)
 Constructor. More...
 
virtual ~ErrorEstimator ()
 Destructor. More...
 
void setDomain (Domain *d)
 Sets Domain; should also re-initialize attributes if necessary. More...
 
int giveNumberOfSkippedElements ()
 Returns number of elements skipped in error estimation. More...
 
ErrorEstimatorType giveErrorEstimatorType () const
 Returns error estimation type of receiver. More...
 
bool skipRegion (int reg)
 Returns nonzero if region has been skipped in error estimation (user option). More...
 
virtual void reinitialize ()
 
virtual const char * giveInputRecordName () const
 
- Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
 Regular constructor, creates component with given number and belonging to given domain. More...
 
virtual ~FEMComponent ()
 Virtual destructor. More...
 
DomaingiveDomain () const
 
int giveNumber () const
 
void setNumber (int num)
 Sets number of receiver. More...
 
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
 Local renumbering support. More...
 
virtual void giveInputRecord (DynamicInputRecord &input)
 Setups the input record string of receiver. More...
 
virtual contextIOResultType saveContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Stores receiver state to output stream. More...
 
virtual contextIOResultType restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Restores the receiver state previously written in stream. More...
 
virtual int checkConsistency ()
 Allows programmer to test some internal data, before computation begins. More...
 
virtual void printOutputAt (FILE *file, TimeStep *tStep)
 Prints output of receiver to stream, for given time step. More...
 
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging. More...
 
virtual InterfacegiveInterface (InterfaceType t)
 Interface requesting service. More...
 
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros). More...
 

Static Protected Member Functions

static double computeTriangleRadiusError (Element *elem)
 Computes error based on the inscribed triangle/circle ratio. More...
 
static double computeJacobianError (FEInterpolation &fei, IntegrationRule &ir, Element *elem)
 Computes the error based on the conditioning of the Jacobian. More...
 

Additional Inherited Members

- Protected Attributes inherited from oofem::ErrorEstimator
ErrorEstimatorType eeType
 
std::unique_ptr< RemeshingCriteriarc
 
IntArray regionSkipMap
 Map indicating regions to skip (region - cross section model). More...
 
int skippedNelems
 Number of skipped elements. More...
 
InternalStateType IStype
 Internal state type of variable to get internal forces. More...
 
- Protected Attributes inherited from oofem::FEMComponent
int number
 Component number. More...
 
Domaindomain
 Link to domain object, useful for communicating with other FEM components. More...
 

Detailed Description

This error estimator measures the quality of the elements.

This is useful when elements are deformed during the simulation.

Error estimates should be unitless, positive, and scaled properly. Zero error should reflect a perfect element. Error value of one should reflect an element of acceptable quality.

Note
Its open for discussion whether the routine should give the reciprocal error to handle extremely badly shaped elements.
Author
Mikael Öhman

Definition at line 61 of file meshqualityerrorestimator.h.

Constructor & Destructor Documentation

oofem::MeshQualityErrorEstimator::MeshQualityErrorEstimator ( int  n,
Domain d 
)
inline

Constructor.

Definition at line 78 of file meshqualityerrorestimator.h.

References oofem::EET_MeshQuality.

virtual oofem::MeshQualityErrorEstimator::~MeshQualityErrorEstimator ( )
inlinevirtual

Destructor.

Definition at line 82 of file meshqualityerrorestimator.h.

Member Function Documentation

double oofem::MeshQualityErrorEstimator::computeJacobianError ( FEInterpolation fei,
IntegrationRule ir,
Element elem 
)
staticprotected

Computes the error based on the conditioning of the Jacobian.

Returns
Error value for the element.

Definition at line 88 of file meshqualityerrorestimator.C.

References oofem::FloatMatrix::computeReciprocalCondition(), oofem::FloatMatrix::giveDeterminant(), oofem::FEInterpolation::giveJacobianMatrixAt(), and oofem::sgn().

Referenced by giveElementError().

double oofem::MeshQualityErrorEstimator::computeTriangleRadiusError ( Element elem)
staticprotected

Computes error based on the inscribed triangle/circle ratio.

Returns
Error value for the element. Zero for equilateral triangle.

Definition at line 70 of file meshqualityerrorestimator.C.

References oofem::FloatArray::distance(), oofem::Node::giveCoordinates(), and oofem::Element::giveNode().

Referenced by giveElementError().

int oofem::MeshQualityErrorEstimator::estimateError ( EE_ErrorMode  mode,
TimeStep tStep 
)
virtual

Empty implementation.

Implements oofem::ErrorEstimator.

Definition at line 115 of file meshqualityerrorestimator.C.

virtual const char* oofem::MeshQualityErrorEstimator::giveClassName ( ) const
inlinevirtual
Returns
Class name of the receiver.

Implements oofem::FEMComponent.

Definition at line 95 of file meshqualityerrorestimator.h.

double oofem::MeshQualityErrorEstimator::giveElementError ( EE_ErrorType  type,
Element elem,
TimeStep tStep 
)
virtual

Returns the element error.

The estimateError service should be called before.

Parameters
typeError type.
elemElement for which error requested.
tStepTime step.
Returns
Element error.

Implements oofem::ErrorEstimator.

Definition at line 45 of file meshqualityerrorestimator.C.

References computeJacobianError(), computeTriangleRadiusError(), oofem::Element::giveDefaultIntegrationRulePtr(), oofem::Element::giveGeometryType(), and oofem::Element::giveInterpolation().

Referenced by giveValue().

virtual RemeshingCriteria* oofem::MeshQualityErrorEstimator::giveRemeshingCrit ( )
inlinevirtual

Returns reference to associated remeshing criteria.

Implements oofem::ErrorEstimator.

Definition at line 92 of file meshqualityerrorestimator.h.

double oofem::MeshQualityErrorEstimator::giveValue ( EE_ValueType  type,
TimeStep tStep 
)
virtual

Gives the max error from any element in the domain.

Implements oofem::ErrorEstimator.

Definition at line 103 of file meshqualityerrorestimator.C.

References oofem::FEMComponent::domain, giveElementError(), oofem::Domain::giveElements(), and oofem::unknownET.

IRResultType oofem::MeshQualityErrorEstimator::initializeFrom ( InputRecord ir)
virtual

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.

See also
IR_GIVE_FIELD
IR_GIVE_OPTIONAL_FIELD
Parameters
irInput record to initialize from.
Returns
IRResultType

Reimplemented from oofem::ErrorEstimator.

Definition at line 120 of file meshqualityerrorestimator.C.

References oofem::ErrorEstimator::initializeFrom().


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

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:38 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011