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

The implementation of Zienkiewicz Zhu Error Estimator. More...

#include <huertaerrorestimator.h>

+ Inheritance diagram for oofem::HuertaErrorEstimator:
+ Collaboration diagram for oofem::HuertaErrorEstimator:

Public Types

enum  NormType { L2Norm, EnergyNorm }
 Type of norm used. More...
 
enum  AnalysisMode { HEE_linear, HEE_nlinear }
 Mode of analysis. More...
 

Public Member Functions

 HuertaErrorEstimator (int n, Domain *d)
 Constructor. More...
 
virtual ~HuertaErrorEstimator ()
 Destructor. More...
 
int giveRefinementLevel ()
 Returns refinement level. More...
 
virtual double giveElementError (EE_ErrorType type, Element *elem, TimeStep *tStep)
 Returns the element error. More...
 
virtual double giveValue (EE_ValueType type, TimeStep *tStep)
 Returns the characteristic value of given type. More...
 
virtual int estimateError (EE_ErrorMode err_mode, TimeStep *tStep)
 Estimates the error on associated domain at given time step. 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 * giveInputRecordName () const
 
virtual const char * giveClassName () const
 
AnalysisMode giveAnalysisMode ()
 
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...
 
- 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 ()
 
- 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 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...
 

Protected Attributes

double globalENorm
 Global error norm. More...
 
double globalWENorm
 Global weighted error norm. More...
 
double globalUNorm
 Global norm of primary unknown. More...
 
double globalErrorEstimate
 Global error estimate (relative) More...
 
FloatArray eNorms
 Cache storing element norms. More...
 
NormType normType
 Type of norm used. More...
 
StateCounterType stateCounter
 Actual state counter. More...
 
FloatArray primaryUnknownError
 Primary unknown nodal error. More...
 
int refineLevel
 Refinement level. More...
 
std::vector< RefinedElementrefinedElementList
 Fine mesh. More...
 
RefinedMesh refinedMesh
 Mesh refinement. More...
 
AnalysisMode mode
 Linear analysis flag. More...
 
double requiredError
 Required error to obtain. More...
 
bool wError
 Weighted error flag. More...
 
double lastError
 
int stepsToSkip
 
int skippedSteps
 
int maxSkipSteps
 
int initialSkipSteps
 
- 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...
 

Private Member Functions

void buildRefinedMesh ()
 Builds refined mesh. More...
 
void solveRefinedElementProblem (int elemId, IntArray &localNodeIdArray, IntArray &globalNodeIdArray, TimeStep *tStep)
 Solves the refined element problem. More...
 
void solveRefinedPatchProblem (int nodeId, IntArray &localNodeIdArray, IntArray &globalNodeIdArray, TimeStep *tStep)
 Solves the refined patch problem. More...
 
void solveRefinedWholeProblem (IntArray &localNodeIdArray, IntArray &globalNodeIdArray, TimeStep *tStep)
 Solves the refined whole problem. More...
 
void extractVectorFrom (Element *element, FloatArray &vector, FloatArray &answer, int dofs, TimeStep *tStep)
 Extracts nodal vector from global vector for each dof of all element nodes. More...
 
void setupRefinedProblemProlog (const char *problemName, int problemId, IntArray &localNodeIdArray, int nodes, int elems, int csects, int mats, int loads, int funcs, IntArray &controlNode, IntArray &controlDof, TimeStep *tStep)
 
void setupRefinedProblemEpilog1 (int csects, int mats, int loads, int nlbarriers)
 
void setupRefinedProblemEpilog2 (int tfuncs)
 

Detailed Description

The implementation of Zienkiewicz Zhu Error Estimator.

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 95 of file huertaerrorestimator.h.

Member Enumeration Documentation

Mode of analysis.

Enumerator
HEE_linear 
HEE_nlinear 

Definition at line 101 of file huertaerrorestimator.h.

Type of norm used.

Enumerator
L2Norm 
EnergyNorm 

Definition at line 99 of file huertaerrorestimator.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 138 of file huertaerrorestimator.h.

References oofem::EET_HEE, oofem::ErrorEstimator::eeType, EnergyNorm, and HEE_linear.

virtual oofem::HuertaErrorEstimator::~HuertaErrorEstimator ( )
inlinevirtual

Destructor.

Definition at line 152 of file huertaerrorestimator.h.

Member Function Documentation

void oofem::HuertaErrorEstimator::buildRefinedMesh ( )
private

Builds refined mesh.

Definition at line 1056 of file huertaerrorestimator.C.

References oofem::FEMComponent::domain, oofem::Domain::giveNumberOfElements(), and OOFEM_ERROR.

Referenced by estimateError(), and giveAnalysisMode().

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

Estimates the error on associated domain at given time step.

The estimated values can be requested using giveElementError and giveValue methods. The type of errors provided depends on error estimator type implementing the service.

Parameters
modeError mode.
tStepTime step.

Implements oofem::ErrorEstimator.

Definition at line 136 of file huertaerrorestimator.C.

References oofem::FloatArray::at(), buildRefinedMesh(), CM_State, oofem::FEMComponent::domain, oofem::Element_remote, oofem::RefinedMesh::elems, EnergyNorm, eNorms, ERROR_EXCESS, oofem::EngngModel::giveContextFileName(), oofem::EngngModel::giveCurrentStep(), oofem::Domain::giveDofManager(), oofem::Domain::giveElement(), oofem::Domain::giveEngngModel(), oofem::TimeStep::giveNumber(), oofem::Domain::giveNumberOfDofManagers(), oofem::DofManager::giveNumberOfDofs(), oofem::Domain::giveNumberOfElements(), oofem::Element::giveParallelMode(), oofem::EngngModel::giveRank(), oofem::Element::giveRegionNumber(), oofem::TimeStep::giveSolutionStateCounter(), globalENorm, globalErrorEstimate, globalUNorm, globalWENorm, HEE_linear, HEE_nlinear, oofem::TimeStep::incrementStateCounter(), initialSkipSteps, L2Norm, lastError, maxSkipSteps, mode, oofem::RefinedMesh::nodes, normType, OOFEM_ERROR, OOFEM_LOG_DEBUG, OOFEM_LOG_INFO, OOFEM_LOG_RELEVANT, primaryUnknownError, oofem::ContextIOERR::print(), refinedMesh, requiredError, oofem::IntArray::resize(), oofem::FloatArray::resize(), oofem::EngngModel::restoreContext(), oofem::ErrorEstimator::skippedNelems, skippedSteps, oofem::ErrorEstimator::skipRegion(), solveRefinedElementProblem(), solveRefinedPatchProblem(), solveRefinedWholeProblem(), stateCounter, stepsToSkip, oofem::temporaryEM, wError, oofem::FloatArray::zero(), and oofem::IntArray::zero().

Referenced by giveElementError(), giveRefinementLevel(), giveValue(), and saveContext().

void oofem::HuertaErrorEstimator::extractVectorFrom ( Element element,
FloatArray vector,
FloatArray answer,
int  dofs,
TimeStep tStep 
)
private

Extracts nodal vector from global vector for each dof of all element nodes.

Parameters
elementElement.
vectorGlobal vector.
answerElement nodal vector.
dofsNumber of dofs at each node.
tStepTime step.

Definition at line 3882 of file huertaerrorestimator.C.

References oofem::FloatArray::at(), oofem::Element::giveDofManager(), oofem::FEMComponent::giveNumber(), oofem::Element::giveNumberOfDofManagers(), oofem::Element::giveNumberOfNodes(), and oofem::FloatArray::resize().

Referenced by giveAnalysisMode().

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

Implements oofem::FEMComponent.

Definition at line 170 of file huertaerrorestimator.h.

double oofem::HuertaErrorEstimator::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 525 of file huertaerrorestimator.C.

References oofem::FloatArray::at(), eNorms, oofem::equilibratedEM, estimateError(), oofem::FEMComponent::giveNumber(), and oofem::primaryUnknownET.

Referenced by giveRefinementLevel().

virtual const char* oofem::HuertaErrorEstimator::giveInputRecordName ( ) const
inlinevirtual
Returns
Input record name of the receiver.

Reimplemented from oofem::ErrorEstimator.

Definition at line 169 of file huertaerrorestimator.h.

int oofem::HuertaErrorEstimator::giveRefinementLevel ( )
inline

Returns refinement level.

Definition at line 157 of file huertaerrorestimator.h.

References estimateError(), giveElementError(), giveRemeshingCrit(), giveValue(), initializeFrom(), and refineLevel.

RemeshingCriteria * oofem::HuertaErrorEstimator::giveRemeshingCrit ( )
virtual

Returns reference to associated remeshing criteria.

Implements oofem::ErrorEstimator.

Definition at line 555 of file huertaerrorestimator.C.

References oofem::ErrorEstimator::rc.

Referenced by giveRefinementLevel(), and initializeFrom().

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

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 538 of file huertaerrorestimator.C.

References oofem::equilibratedEM, estimateError(), globalENorm, oofem::globalErrorEEV, globalErrorEstimate, oofem::globalNormEEV, globalUNorm, oofem::globalWeightedErrorEEV, globalWENorm, and oofem::relativeErrorEstimateEEV.

Referenced by giveRefinementLevel().

IRResultType oofem::HuertaErrorEstimator::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 566 of file huertaerrorestimator.C.

References _IFT_HuertaErrorEstimator_exact, _IFT_HuertaErrorEstimator_impCSect, _IFT_HuertaErrorEstimator_impPos, _IFT_HuertaErrorEstimator_initialskipsteps, _IFT_HuertaErrorEstimator_normtype, _IFT_HuertaErrorEstimator_perfectCSect, _IFT_HuertaErrorEstimator_refinelevel, _IFT_HuertaErrorEstimator_requirederror, _IFT_HuertaErrorEstimator_skipsteps, _IFT_HuertaErrorEstimator_werror, EnergyNorm, giveRemeshingCrit(), oofem::FEMComponent::initializeFrom(), oofem::ErrorEstimator::initializeFrom(), initialSkipSteps, IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, L2Norm, maxSkipSteps, normType, OOFEM_ERROR, refineLevel, requiredError, and wError.

Referenced by giveRefinementLevel(), and oofem::HuertaRemeshingCriteria::~HuertaRemeshingCriteria().

contextIOResultType oofem::HuertaErrorEstimator::restoreContext ( DataStream stream,
ContextMode  mode,
void *  obj = NULL 
)
virtual

Restores the receiver state previously written in stream.

See also
saveContext
Parameters
streamInput stream.
modeDetermines amount of info available in stream (state, definition, ...).
objSpecial parameter for sending extra information.
Returns
contextIOResultType.
Exceptions
throwsan ContextIOERR exception if error encountered.

Reimplemented from oofem::FEMComponent.

Definition at line 669 of file huertaerrorestimator.C.

References oofem::CIO_IOERR, oofem::CIO_OK, eNorms, oofem::DataStream::read(), oofem::FEMComponent::restoreContext(), oofem::FloatArray::restoreYourself(), stateCounter, and THROW_CIOERR.

Referenced by giveAnalysisMode().

contextIOResultType oofem::HuertaErrorEstimator::saveContext ( DataStream stream,
ContextMode  mode,
void *  obj = NULL 
)
virtual

Stores receiver state to output stream.

Parameters
streamOutput stream.
modeDetermines amount of info required in stream (state, definition, ...).
objSpecial parameter, used only to send particular integration point to material class version of this method.
Returns
contextIOResultType.
Exceptions
throwsan ContextIOERR exception if error encountered.

Reimplemented from oofem::FEMComponent.

Definition at line 641 of file huertaerrorestimator.C.

References oofem::CIO_IOERR, oofem::CIO_OK, oofem::FEMComponent::domain, eNorms, oofem::equilibratedEM, estimateError(), oofem::EngngModel::giveCurrentStep(), oofem::Domain::giveEngngModel(), oofem::TimeStep::giveSolutionStateCounter(), oofem::FEMComponent::saveContext(), stateCounter, oofem::FloatArray::storeYourself(), THROW_CIOERR, and oofem::DataStream::write().

Referenced by giveAnalysisMode().

void oofem::HuertaErrorEstimator::setupRefinedProblemProlog ( const char *  problemName,
int  problemId,
IntArray localNodeIdArray,
int  nodes,
int  elems,
int  csects,
int  mats,
int  loads,
int  funcs,
IntArray controlNode,
IntArray controlDof,
TimeStep tStep 
)
private

Definition at line 3899 of file huertaerrorestimator.C.

References _IFT_AdaptiveNonLinearStatic_Name, _IFT_CylindricalALM_hpc, _IFT_CylindricalALM_hpcmode, _IFT_CylindricalALM_hpcw, _IFT_CylindricalALM_initialsteplength, _IFT_CylindricalALM_manrmsteps, _IFT_CylindricalALM_maxiter, _IFT_CylindricalALM_minsteplength, _IFT_CylindricalALM_psi, _IFT_CylindricalALM_reqiterations, _IFT_CylindricalALM_rtolv, _IFT_CylindricalALM_steplength, _IFT_Domain_axisymmetric, _IFT_Domain_nbc, _IFT_Domain_ncrosssect, _IFT_Domain_ndofman, _IFT_Domain_nelem, _IFT_Domain_nfunct, _IFT_Domain_nmat, _IFT_Domain_numberOfSpatialDimensions, _IFT_EngngModel_contextoutputstep, _IFT_EngngModel_nmsteps, _IFT_EngngModel_nsteps, _IFT_EngngModel_renumberFlag, _IFT_LinearStatic_Name, _IFT_MetaStep_Name, _IFT_MetaStep_nsteps, _IFT_NonLinearStatic_controlmode, _IFT_NonLinearStatic_stiffmode, _IFT_NRSolver_ddfunc, _IFT_NRSolver_ddm, _IFT_NRSolver_ddv, _IFT_NRSolver_manrmsteps, _IFT_NRSolver_maxiter, _IFT_NRSolver_minsteplength, _IFT_NRSolver_rtolv, _IFT_OutputManager_dofmanall, _IFT_OutputManager_elementall, _IFT_OutputManager_Name, _IFT_OutputManager_tstepall, oofem::IntArray::at(), oofem::FloatArray::at(), oofem::FEMComponent::domain, oofem::MetaStep::giveAttributesRecord(), oofem::EngngModel::giveCurrentStep(), oofem::Domain::giveEngngModel(), oofem::EngngModel::giveMetaStep(), oofem::TimeStep::giveMetaStepNumber(), oofem::TimeStep::giveNumber(), oofem::Domain::giveNumberOfSpatialDimensions(), oofem::MetaStep::giveNumberOfSteps(), oofem::IntArray::giveSize(), oofem::FloatArray::giveSize(), oofem::TimeStep::giveTargetTime(), oofem::DynamicDataReader::insertInputRecord(), oofem::DataReader::IR_domainCompRec, oofem::DataReader::IR_emodelRec, IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, oofem::DataReader::IR_mstepRec, oofem::DataReader::IR_outManRec, oofem::Domain::isAxisymmetric(), OOFEM_ERROR, oofem::refinedReader, oofem::DynamicDataReader::setDescription(), oofem::DynamicInputRecord::setField(), oofem::DynamicDataReader::setOutputFileName(), and oofem::DynamicInputRecord::setRecordKeywordField().

Referenced by giveAnalysisMode().

void oofem::HuertaErrorEstimator::solveRefinedElementProblem ( int  elemId,
IntArray localNodeIdArray,
IntArray globalNodeIdArray,
TimeStep tStep 
)
private

Solves the refined element problem.

Parameters
elemIdElement id.
localNodeIdArrayArray of local problem node ids.
globalNodeIdArrayArray of global problem node ids.
tStepTime step.

Definition at line 2760 of file huertaerrorestimator.C.

References oofem::Dof::__giveEquationNumber(), oofem::_processor, oofem::IntArray::at(), oofem::FloatArray::at(), oofem::HuertaErrorEstimatorInterface::BCMode, oofem::FloatArray::beProductOf(), oofem::EngngModel::checkConsistency(), oofem::FloatArray::computeSquaredNorm(), oofem::Element::computeVolumeAround(), oofem::HuertaErrorEstimatorInterface::CountMode, oofem::FEMComponent::domain, oofem::FloatArray::dotProduct(), oofem::Element_remote, oofem::HuertaErrorEstimatorInterface::ElemMode, EnergyNorm, oofem::DynamicDataReader::finish(), oofem::Timer::getUtime(), oofem::Element::giveCharacteristicMatrix(), oofem::EngngModel::giveCurrentStep(), oofem::Element::giveDefaultIntegrationRulePtr(), oofem::Domain::giveDofManager(), oofem::DofManager::giveDofWithID(), oofem::EngngModel::giveDomain(), oofem::Domain::giveElement(), oofem::Element::giveElementDofIDMask(), oofem::Domain::giveEngngModel(), oofem::FEMComponent::giveInterface(), oofem::Element::giveIPValue(), oofem::TimeStep::giveNumber(), oofem::Domain::giveNumberOfBoundaryConditions(), oofem::Domain::giveNumberOfCrossSectionModels(), oofem::DofManager::giveNumberOfDofs(), oofem::EngngModel::giveNumberOfDomainEquations(), oofem::Domain::giveNumberOfFunctions(), oofem::Domain::giveNumberOfMaterialModels(), oofem::Domain::giveNumberOfNonlocalBarriers(), oofem::Element::giveParallelMode(), oofem::EngngModel::giveRank(), oofem::Element::giveRegionNumber(), oofem::DofManager::giveUnknownVector(), oofem::Dof::hasBc(), oofem::HuertaErrorEstimatorInterface::HuertaErrorEstimatorI_computeNmatrixAt(), oofem::HuertaErrorEstimatorInterface::HuertaErrorEstimatorI_setupRefinedElementProblem(), oofem::HuertaErrorEstimatorInterfaceType, oofem::InstanciateProblem(), L2Norm, oofem::EIPrimaryUnknownMapper::mapAndUpdate(), oofem::max(), oofem::HuertaRemeshingCriteria::mode, oofem::HuertaErrorEstimatorInterface::NodeMode, OOFEM_ERROR, OOFEM_LOG_DEBUG, oofem::refinedReader, oofem::IntArray::resize(), oofem::FloatArray::resize(), oofem::EngngModel::solveYourself(), oofem::Timer::startTimer(), STIFFNESS_TYPE, oofem::Timer::stopTimer(), oofem::EngngModel::terminateAnalysis(), oofem::DynamicDataReader::writeToFile(), oofem::FloatArray::zero(), and oofem::IntArray::zero().

Referenced by estimateError(), and giveAnalysisMode().

void oofem::HuertaErrorEstimator::solveRefinedPatchProblem ( int  nodeId,
IntArray localNodeIdArray,
IntArray globalNodeIdArray,
TimeStep tStep 
)
private

Solves the refined patch problem.

Parameters
nodeIdNode id.
localNodeIdArrayArray of local problem node ids.
globalNodeIdArrayArray of global problem node ids.
tStepTime step.

Definition at line 3190 of file huertaerrorestimator.C.

References oofem::_processor, oofem::IntArray::at(), oofem::FloatArray::at(), oofem::HuertaErrorEstimatorInterface::BCMode, oofem::EngngModel::checkConsistency(), oofem::HuertaErrorEstimatorInterface::CountMode, oofem::DofManager_null, oofem::DofManager_remote, oofem::FEMComponent::domain, oofem::Element_remote, oofem::HuertaErrorEstimatorInterface::ElemMode, oofem::DynamicDataReader::finish(), oofem::Timer::getUtime(), oofem::Domain::giveConnectivityTable(), oofem::EngngModel::giveCurrentStep(), oofem::Domain::giveDofManager(), oofem::ConnectivityTable::giveDofManConnectivityArray(), oofem::EngngModel::giveDomain(), oofem::Domain::giveElement(), oofem::Element::giveElementDofIDMask(), oofem::Domain::giveEngngModel(), oofem::FEMComponent::giveInterface(), oofem::Element::giveNode(), oofem::FEMComponent::giveNumber(), oofem::TimeStep::giveNumber(), oofem::Domain::giveNumberOfBoundaryConditions(), oofem::Domain::giveNumberOfCrossSectionModels(), oofem::DofManager::giveNumberOfDofs(), oofem::Domain::giveNumberOfFunctions(), oofem::Domain::giveNumberOfMaterialModels(), oofem::Element::giveNumberOfNodes(), oofem::Domain::giveNumberOfNonlocalBarriers(), oofem::DofManager::giveParallelMode(), oofem::Element::giveParallelMode(), oofem::EngngModel::giveRank(), oofem::Element::giveRegionNumber(), oofem::IntArray::giveSize(), oofem::HuertaErrorEstimatorInterface::HuertaErrorEstimatorI_setupRefinedElementProblem(), oofem::HuertaErrorEstimatorInterfaceType, oofem::InstanciateProblem(), oofem::HuertaRemeshingCriteria::mode, oofem::HuertaErrorEstimatorInterface::NodeMode, OOFEM_ERROR, OOFEM_LOG_DEBUG, OOFEM_LOG_INFO, oofem::refinedReader, oofem::IntArray::resize(), oofem::EngngModel::solveYourself(), oofem::Timer::startTimer(), oofem::Timer::stopTimer(), oofem::EngngModel::terminateAnalysis(), oofem::DynamicDataReader::writeToFile(), and oofem::IntArray::zero().

Referenced by estimateError(), and giveAnalysisMode().

void oofem::HuertaErrorEstimator::solveRefinedWholeProblem ( IntArray localNodeIdArray,
IntArray globalNodeIdArray,
TimeStep tStep 
)
private

Solves the refined whole problem.

Parameters
localNodeIdArrayArray of local problem node ids.
globalNodeIdArrayArray of global problem node ids.
tStepTime step.

Definition at line 3517 of file huertaerrorestimator.C.

References oofem::Dof::__giveEquationNumber(), oofem::_processor, oofem::IntArray::at(), oofem::FloatArray::at(), oofem::HuertaErrorEstimatorInterface::BCMode, oofem::FloatArray::beProductOf(), oofem::EngngModel::checkConsistency(), oofem::FloatArray::computeSquaredNorm(), oofem::Element::computeVolumeAround(), oofem::HuertaErrorEstimatorInterface::CountMode, oofem::FEMComponent::domain, oofem::FloatArray::dotProduct(), oofem::HuertaErrorEstimatorInterface::ElemMode, EnergyNorm, oofem::Timer::getUtime(), oofem::Element::giveCharacteristicMatrix(), oofem::EngngModel::giveCurrentStep(), oofem::Element::giveDefaultIntegrationRulePtr(), oofem::Domain::giveDofManager(), oofem::DofManager::giveDofWithID(), oofem::EngngModel::giveDomain(), oofem::Domain::giveElement(), oofem::Element::giveElementDofIDMask(), oofem::FEMComponent::giveInterface(), oofem::TimeStep::giveNumber(), oofem::Domain::giveNumberOfBoundaryConditions(), oofem::Domain::giveNumberOfCrossSectionModels(), oofem::DofManager::giveNumberOfDofs(), oofem::EngngModel::giveNumberOfDomainEquations(), oofem::Domain::giveNumberOfElements(), oofem::Domain::giveNumberOfFunctions(), oofem::Domain::giveNumberOfMaterialModels(), oofem::Element::giveNumberOfNodes(), oofem::Domain::giveNumberOfNonlocalBarriers(), oofem::Element::giveRegionNumber(), oofem::Element::giveSpatialDimension(), oofem::DofManager::giveUnknownVector(), oofem::Dof::hasBc(), oofem::HuertaErrorEstimatorInterface::HuertaErrorEstimatorI_computeNmatrixAt(), oofem::HuertaErrorEstimatorInterface::HuertaErrorEstimatorI_setupRefinedElementProblem(), oofem::HuertaErrorEstimatorInterfaceType, oofem::InstanciateProblem(), L2Norm, oofem::EIPrimaryUnknownMapper::mapAndUpdate(), oofem::HuertaRemeshingCriteria::mode, oofem::HuertaErrorEstimatorInterface::NodeMode, OOFEM_ERROR, OOFEM_LOG_DEBUG, OOFEM_LOG_INFO, oofem::refinedReader, oofem::IntArray::resize(), oofem::FloatArray::resize(), oofem::EngngModel::solveYourself(), oofem::Timer::startTimer(), STIFFNESS_TYPE, oofem::Timer::stopTimer(), oofem::FloatArray::subtract(), oofem::EngngModel::terminateAnalysis(), oofem::DynamicDataReader::writeToFile(), oofem::FloatArray::zero(), and oofem::IntArray::zero().

Referenced by estimateError(), and giveAnalysisMode().

Member Data Documentation

FloatArray oofem::HuertaErrorEstimator::eNorms
protected

Cache storing element norms.

Definition at line 113 of file huertaerrorestimator.h.

Referenced by estimateError(), giveElementError(), restoreContext(), and saveContext().

double oofem::HuertaErrorEstimator::globalENorm
protected

Global error norm.

Definition at line 105 of file huertaerrorestimator.h.

Referenced by estimateError(), and giveValue().

double oofem::HuertaErrorEstimator::globalErrorEstimate
protected

Global error estimate (relative)

Definition at line 111 of file huertaerrorestimator.h.

Referenced by estimateError(), and giveValue().

double oofem::HuertaErrorEstimator::globalUNorm
protected

Global norm of primary unknown.

Definition at line 109 of file huertaerrorestimator.h.

Referenced by estimateError(), and giveValue().

double oofem::HuertaErrorEstimator::globalWENorm
protected

Global weighted error norm.

Definition at line 107 of file huertaerrorestimator.h.

Referenced by estimateError(), and giveValue().

int oofem::HuertaErrorEstimator::initialSkipSteps
protected

Definition at line 134 of file huertaerrorestimator.h.

Referenced by estimateError(), and initializeFrom().

double oofem::HuertaErrorEstimator::lastError
protected

Definition at line 133 of file huertaerrorestimator.h.

Referenced by estimateError().

int oofem::HuertaErrorEstimator::maxSkipSteps
protected

Definition at line 134 of file huertaerrorestimator.h.

Referenced by estimateError(), and initializeFrom().

AnalysisMode oofem::HuertaErrorEstimator::mode
protected
NormType oofem::HuertaErrorEstimator::normType
protected

Type of norm used.

Definition at line 115 of file huertaerrorestimator.h.

Referenced by estimateError(), and initializeFrom().

FloatArray oofem::HuertaErrorEstimator::primaryUnknownError
protected

Primary unknown nodal error.

Definition at line 119 of file huertaerrorestimator.h.

Referenced by estimateError().

std :: vector< RefinedElement > oofem::HuertaErrorEstimator::refinedElementList
protected

Fine mesh.

Definition at line 123 of file huertaerrorestimator.h.

RefinedMesh oofem::HuertaErrorEstimator::refinedMesh
protected

Mesh refinement.

Definition at line 125 of file huertaerrorestimator.h.

Referenced by estimateError().

int oofem::HuertaErrorEstimator::refineLevel
protected

Refinement level.

Definition at line 121 of file huertaerrorestimator.h.

Referenced by giveRefinementLevel(), and initializeFrom().

double oofem::HuertaErrorEstimator::requiredError
protected

Required error to obtain.

Definition at line 129 of file huertaerrorestimator.h.

Referenced by estimateError(), and initializeFrom().

int oofem::HuertaErrorEstimator::skippedSteps
protected

Definition at line 134 of file huertaerrorestimator.h.

Referenced by estimateError().

StateCounterType oofem::HuertaErrorEstimator::stateCounter
protected

Actual state counter.

Definition at line 117 of file huertaerrorestimator.h.

Referenced by estimateError(), restoreContext(), and saveContext().

int oofem::HuertaErrorEstimator::stepsToSkip
protected

Definition at line 134 of file huertaerrorestimator.h.

Referenced by estimateError().

bool oofem::HuertaErrorEstimator::wError
protected

Weighted error flag.

Definition at line 131 of file huertaerrorestimator.h.

Referenced by estimateError(), and 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:36 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011