|
OOFEM 3.0
|
#include <directerrorindicatorrc.h>
Public Member Functions | |
| DirectErrorIndicatorRC (int n, ErrorEstimator *e) | |
| Constructor. | |
| virtual | ~DirectErrorIndicatorRC () |
| double | giveRequiredDofManDensity (int num, TimeStep *tStep, int relative=0) override |
| double | giveDofManDensity (int num) override |
| void | initializeFrom (InputRecord &ir) override |
| int | estimateMeshDensities (TimeStep *tStep) override |
| RemeshingStrategy | giveRemeshingStrategy (TimeStep *tStep) override |
| double | giveMinIndicatorLimit () |
| Returns the minimum indicator limit. | |
| double | giveMinIndicatorDensity () |
| void | giveNodeChar (int inode, TimeStep *tStep, double &indicatorVal, double &currDensity) |
| double | giveZeroIndicatorDensity () |
| void | reinitialize () override |
| void | setDomain (Domain *d) override |
| const char * | giveInputRecordName () const override |
| const char * | giveClassName () const override |
| Public Member Functions inherited from oofem::RemeshingCriteria | |
| RemeshingCriteria (int n, ErrorEstimator *e) | |
| Constructor. | |
| virtual | ~RemeshingCriteria () |
| Destructor. | |
| Public Member Functions inherited from oofem::FEMComponent | |
| FEMComponent (int n, Domain *d) | |
| virtual | ~FEMComponent ()=default |
| Virtual destructor. | |
| Domain * | giveDomain () 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 Interface * | giveInterface (InterfaceType t) |
| std::string | errorInfo (const char *func) const |
| Returns string for prepending output (used by error reporting macros). | |
Protected Member Functions | |
| double | giveLocalDofManDensity (int num) |
| double | giveDofManIndicator (int num, TimeStep *tStep) |
| double | giveLocalDofManIndicator (int num, TimeStep *tStep) |
| void | exchangeDofManDensities () |
| int | packSharedDofManLocalDensities (ProcessCommunicator &processComm) |
| int | unpackSharedDofManLocalDensities (ProcessCommunicator &processComm) |
| void | exchangeDofManIndicatorVals (TimeStep *tStep) |
| int | packSharedDofManLocalIndicatorVals (ProcessCommunicator &processComm) |
| int | unpackSharedDofManLocalIndicatorVals (ProcessCommunicator &processComm) |
Protected Attributes | |
| double | minIndicatorLimit |
| double | maxIndicatorLimit |
| double | minIndicatorDensity |
| double | maxIndicatorDensity |
| double | zeroIndicatorDensity |
| Default mesh density for Indicator value < minIndicatorLimit. | |
| double | remeshingDensityRatioToggle |
| FloatArray | nodalDensities |
| StateCounterType | stateCounter |
| Actual values (densities) state counter. | |
| RemeshingStrategy | currStrategy |
| std ::map< int, double > | sharedDofManDensities |
| std ::map< int, double > | sharedDofManIndicatorVals |
| bool | dofManDensityExchangeFlag |
| Protected Attributes inherited from oofem::RemeshingCriteria | |
| ErrorEstimator * | ee |
| CommunicatorBuff * | commBuff |
| Common Communicator buffer. | |
| ProblemCommunicator * | communicator |
| Communicator. | |
| bool | initCommMap |
| Communication init flag. | |
| Protected Attributes inherited from oofem::FEMComponent | |
| int | number |
| Component number. | |
| Domain * | domain |
| Link to domain object, useful for communicating with other FEM components. | |
The class is an implementation of "direct" remeshing criteria, which maps the error indication, which is usually the value of observed internal variable to the corresponding required element size. The error estimate and global error for error indicator could not be obtained. The error indication value only tells, that the remeshing is necessary, but no information about the actual error are provided. The task of this class is to simply transform the indicator value to corresponding mesh size.
Definition at line 70 of file directerrorindicatorrc.h.
| oofem::DirectErrorIndicatorRC::DirectErrorIndicatorRC | ( | int | n, |
| ErrorEstimator * | e ) |
Constructor.
Definition at line 50 of file directerrorindicatorrc.C.
References dofManDensityExchangeFlag, oofem::RemeshingCriteria::RemeshingCriteria(), and stateCounter.
|
virtual |
Definition at line 58 of file directerrorindicatorrc.C.
|
overridevirtual |
Estimates the nodal densities.
| tStep | Time step. |
Implements oofem::RemeshingCriteria.
Definition at line 160 of file directerrorindicatorrc.C.
References oofem::RemeshingCriteria::communicator, currStrategy, exchangeDofManDensities(), exchangeDofManIndicatorVals(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveEngngModel(), giveNodeChar(), oofem::Domain::giveNumberOfDofManagers(), oofem::TimeStep::giveSolutionStateCounter(), oofem::RemeshingCriteria::initCommMap, maxIndicatorDensity, maxIndicatorLimit, minIndicatorDensity, minIndicatorLimit, nodalDensities, oofem::NoRemeshing_RS, OOFEM_LOG_DEBUG, OOFEM_LOG_INFO, remeshingDensityRatioToggle, oofem::RemeshingFromCurrentState_RS, stateCounter, and zeroIndicatorDensity.
Referenced by giveRemeshingStrategy(), and giveRequiredDofManDensity().
|
protected |
Definition at line 289 of file directerrorindicatorrc.C.
References oofem::RemeshingCriteria::communicator, oofem::DofManager_shared, dofManDensityExchangeFlag, oofem::FEMComponent::domain, oofem::FEMComponent::giveDomain(), giveLocalDofManDensity(), and sharedDofManDensities.
Referenced by estimateMeshDensities().
|
protected |
Definition at line 350 of file directerrorindicatorrc.C.
References oofem::RemeshingCriteria::communicator, oofem::DofManager_shared, oofem::FEMComponent::domain, oofem::FEMComponent::giveDomain(), giveLocalDofManIndicator(), and sharedDofManIndicatorVals.
Referenced by estimateMeshDensities().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 116 of file directerrorindicatorrc.h.
|
overridevirtual |
Returns existing mesh size for given dof manager.
| num | DofMan number. |
Implements oofem::RemeshingCriteria.
Definition at line 71 of file directerrorindicatorrc.C.
References oofem::Domain::giveDofManager(), oofem::FEMComponent::giveDomain(), giveLocalDofManDensity(), oofem::DofManager::isShared(), and sharedDofManDensities.
Referenced by giveNodeChar(), and giveRequiredDofManDensity().
|
protected |
Returns dof man indicator values.
| num | DofMan number. |
| tStep | Time step. |
Definition at line 115 of file directerrorindicatorrc.C.
References oofem::Domain::giveDofManager(), oofem::FEMComponent::giveDomain(), giveLocalDofManIndicator(), oofem::DofManager::isShared(), and sharedDofManIndicatorVals.
Referenced by giveNodeChar().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 115 of file directerrorindicatorrc.h.
|
protected |
Definition at line 88 of file directerrorindicatorrc.C.
References oofem::IntArray::at(), oofem::Element::computeMeanSize(), oofem::Domain::giveConnectivityTable(), oofem::ConnectivityTable::giveDofManConnectivityArray(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveElement(), oofem::IntArray::giveSize(), and oofem::max().
Referenced by exchangeDofManDensities(), and giveDofManDensity().
|
protected |
Definition at line 132 of file directerrorindicatorrc.C.
References oofem::IntArray::at(), oofem::RemeshingCriteria::ee, oofem::Domain::giveConnectivityTable(), oofem::ConnectivityTable::giveDofManConnectivityArray(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveElement(), oofem::IntArray::giveSize(), oofem::indicatorET, and oofem::max().
Referenced by exchangeDofManIndicatorVals(), and giveDofManIndicator().
|
inline |
Definition at line 107 of file directerrorindicatorrc.h.
References minIndicatorDensity.
|
inline |
Returns the minimum indicator limit.
Definition at line 106 of file directerrorindicatorrc.h.
References minIndicatorLimit.
| void oofem::DirectErrorIndicatorRC::giveNodeChar | ( | int | inode, |
| TimeStep * | tStep, | ||
| double & | indicatorVal, | ||
| double & | currDensity ) |
Definition at line 63 of file directerrorindicatorrc.C.
References giveDofManDensity(), and giveDofManIndicator().
Referenced by estimateMeshDensities().
|
overridevirtual |
Determines, if the remeshing is needed, and if needed, the type of strategy used.
| tStep | Time step. |
Implements oofem::RemeshingCriteria.
Definition at line 259 of file directerrorindicatorrc.C.
References currStrategy, and estimateMeshDensities().
|
overridevirtual |
Returns the required mesh size n given dof manager. The mesh density is defined as a required element size (in 1D the element length, in 2D the square from element area).
| num | Dofman number. |
| tStep | Time step. |
| relative | If zero, then actual density is returned, otherwise the relative density to current is returned. |
Implements oofem::RemeshingCriteria.
Definition at line 225 of file directerrorindicatorrc.C.
References estimateMeshDensities(), giveDofManDensity(), and nodalDensities.
|
inline |
Definition at line 110 of file directerrorindicatorrc.h.
References zeroIndicatorDensity.
|
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.
| ir | Input record to initialize from. |
| priority | Priority of the input record. This is used to determine the order of initialization |
Reimplemented from oofem::FEMComponent.
Definition at line 239 of file directerrorindicatorrc.C.
References _IFT_DirectErrorIndicatorRC_defdens, _IFT_DirectErrorIndicatorRC_maxdens, _IFT_DirectErrorIndicatorRC_maxlim, _IFT_DirectErrorIndicatorRC_mindens, _IFT_DirectErrorIndicatorRC_minlim, _IFT_DirectErrorIndicatorRC_remeshingdensityratio, oofem::CBT_dynamic, oofem::RemeshingCriteria::commBuff, oofem::RemeshingCriteria::communicator, oofem::FEMComponent::domain, oofem::EngngModel::giveNumberOfProcesses(), oofem::EngngModel::giveRank(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, maxIndicatorDensity, maxIndicatorLimit, minIndicatorDensity, minIndicatorLimit, remeshingDensityRatioToggle, and zeroIndicatorDensity.
|
protected |
Definition at line 314 of file directerrorindicatorrc.C.
References oofem::ProcessCommunicator::giveProcessCommunicatorBuff(), oofem::ProcessCommunicator::giveToSendMap(), sharedDofManDensities, and oofem::ProcessCommunicatorBuff::write().
|
protected |
Definition at line 371 of file directerrorindicatorrc.C.
References oofem::ProcessCommunicator::giveProcessCommunicatorBuff(), oofem::ProcessCommunicator::giveToSendMap(), sharedDofManIndicatorVals, and oofem::ProcessCommunicatorBuff::write().
|
overridevirtual |
Reimplemented from oofem::RemeshingCriteria.
Definition at line 266 of file directerrorindicatorrc.C.
References dofManDensityExchangeFlag, oofem::RemeshingCriteria::initCommMap, and stateCounter.
|
overridevirtual |
Sets associated Domain
| d | New domain which receiver should belong to. |
Reimplemented from oofem::FEMComponent.
Definition at line 277 of file directerrorindicatorrc.C.
References dofManDensityExchangeFlag, and oofem::RemeshingCriteria::initCommMap.
|
protected |
|
protected |
Definition at line 385 of file directerrorindicatorrc.C.
References oofem::FEMComponent::domain, oofem::ProcessCommunicator::giveProcessCommunicatorBuff(), oofem::ProcessCommunicator::giveToRecvMap(), oofem::max(), OOFEM_LOG_INFO, oofem::ProcessCommunicatorBuff::read(), and sharedDofManIndicatorVals.
|
protected |
Definition at line 86 of file directerrorindicatorrc.h.
Referenced by estimateMeshDensities(), and giveRemeshingStrategy().
|
protected |
Definition at line 90 of file directerrorindicatorrc.h.
Referenced by DirectErrorIndicatorRC(), exchangeDofManDensities(), reinitialize(), and setDomain().
|
protected |
Definition at line 74 of file directerrorindicatorrc.h.
Referenced by estimateMeshDensities(), and initializeFrom().
|
protected |
Definition at line 73 of file directerrorindicatorrc.h.
Referenced by estimateMeshDensities(), and initializeFrom().
|
protected |
Definition at line 74 of file directerrorindicatorrc.h.
Referenced by estimateMeshDensities(), giveMinIndicatorDensity(), and initializeFrom().
|
protected |
Definition at line 73 of file directerrorindicatorrc.h.
Referenced by estimateMeshDensities(), giveMinIndicatorLimit(), and initializeFrom().
|
protected |
Definition at line 83 of file directerrorindicatorrc.h.
Referenced by estimateMeshDensities(), and giveRequiredDofManDensity().
|
protected |
Ratio between proposedDensity and currDensity. The remeshing is forced, whenever the actual ratio is smaller than this value. Default value is 0.80
Definition at line 82 of file directerrorindicatorrc.h.
Referenced by estimateMeshDensities(), and initializeFrom().
|
protected |
Definition at line 88 of file directerrorindicatorrc.h.
Referenced by exchangeDofManDensities(), giveDofManDensity(), packSharedDofManLocalDensities(), and unpackSharedDofManLocalDensities().
|
protected |
Definition at line 89 of file directerrorindicatorrc.h.
Referenced by exchangeDofManIndicatorVals(), giveDofManIndicator(), packSharedDofManLocalIndicatorVals(), and unpackSharedDofManLocalIndicatorVals().
|
protected |
Actual values (densities) state counter.
Definition at line 85 of file directerrorindicatorrc.h.
Referenced by DirectErrorIndicatorRC(), estimateMeshDensities(), and reinitialize().
|
protected |
Default mesh density for Indicator value < minIndicatorLimit.
Definition at line 76 of file directerrorindicatorrc.h.
Referenced by estimateMeshDensities(), giveZeroIndicatorDensity(), and initializeFrom().