OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
The implementation of Zienkiewicz Zhu Error Estimator. More...
#include <huertaerrorestimator.h>
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 RemeshingCriteria * | giveRemeshingCrit () |
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... | |
Domain * | giveDomain () 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 Interface * | giveInterface (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< RefinedElement > | refinedElementList |
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< RemeshingCriteria > | rc |
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... | |
Domain * | domain |
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) |
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.
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.
|
inline |
Constructor.
Definition at line 138 of file huertaerrorestimator.h.
References oofem::EET_HEE, oofem::ErrorEstimator::eeType, EnergyNorm, and HEE_linear.
|
inlinevirtual |
Destructor.
Definition at line 152 of file huertaerrorestimator.h.
|
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().
|
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.
mode | Error mode. |
tStep | Time 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().
|
private |
Extracts nodal vector from global vector for each dof of all element nodes.
element | Element. |
vector | Global vector. |
answer | Element nodal vector. |
dofs | Number of dofs at each node. |
tStep | Time 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().
|
inline |
Definition at line 172 of file huertaerrorestimator.h.
References buildRefinedMesh(), extractVectorFrom(), mode, restoreContext(), saveContext(), setupRefinedProblemEpilog1(), setupRefinedProblemEpilog2(), setupRefinedProblemProlog(), solveRefinedElementProblem(), solveRefinedPatchProblem(), and solveRefinedWholeProblem().
|
inlinevirtual |
Implements oofem::FEMComponent.
Definition at line 170 of file huertaerrorestimator.h.
|
virtual |
Returns the element error.
The estimateError service should be called before.
type | Error type. |
elem | Element for which error requested. |
tStep | Time step. |
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().
|
inlinevirtual |
Reimplemented from oofem::ErrorEstimator.
Definition at line 169 of file huertaerrorestimator.h.
|
inline |
Returns refinement level.
Definition at line 157 of file huertaerrorestimator.h.
References estimateError(), giveElementError(), giveRemeshingCrit(), giveValue(), initializeFrom(), and refineLevel.
|
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().
|
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.
type | Error type. |
tStep | Time step. |
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().
|
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.
ir | Input record to initialize from. |
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().
|
virtual |
Restores the receiver state previously written in stream.
stream | Input stream. |
mode | Determines amount of info available in stream (state, definition, ...). |
obj | Special parameter for sending extra information. |
throws | an 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().
|
virtual |
Stores receiver state to output stream.
stream | Output stream. |
mode | Determines amount of info required in stream (state, definition, ...). |
obj | Special parameter, used only to send particular integration point to material class version of this method. |
throws | an 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().
|
private |
Definition at line 4240 of file huertaerrorestimator.C.
References oofem::FEMComponent::domain, oofem::Domain::giveCrossSection(), oofem::Load::giveInputRecord(), oofem::Material::giveInputRecord(), oofem::CrossSection::giveInputRecord(), oofem::Domain::giveLoad(), oofem::Domain::giveMaterial(), oofem::DynamicDataReader::insertInputRecord(), oofem::DataReader::IR_bcRec, oofem::DataReader::IR_crosssectRec, oofem::DataReader::IR_matRec, and oofem::refinedReader.
Referenced by giveAnalysisMode().
|
private |
Definition at line 4268 of file huertaerrorestimator.C.
References _IFT_HeavisideTimeFunction_Name, _IFT_HeavisideTimeFunction_origin, _IFT_HeavisideTimeFunction_value, oofem::FEMComponent::domain, oofem::EngngModel::giveCurrentStep(), oofem::Domain::giveEngngModel(), oofem::Domain::giveFunction(), oofem::FEMComponent::giveInputRecord(), oofem::TimeStep::giveTargetTime(), oofem::DynamicDataReader::insertInputRecord(), oofem::DataReader::IR_funcRec, oofem::HuertaRemeshingCriteria::mode, oofem::refinedReader, oofem::DynamicInputRecord::setField(), and oofem::DynamicInputRecord::setRecordKeywordField().
Referenced by giveAnalysisMode().
|
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().
|
private |
Solves the refined element problem.
elemId | Element id. |
localNodeIdArray | Array of local problem node ids. |
globalNodeIdArray | Array of global problem node ids. |
tStep | Time 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().
|
private |
Solves the refined patch problem.
nodeId | Node id. |
localNodeIdArray | Array of local problem node ids. |
globalNodeIdArray | Array of global problem node ids. |
tStep | Time 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().
|
private |
Solves the refined whole problem.
localNodeIdArray | Array of local problem node ids. |
globalNodeIdArray | Array of global problem node ids. |
tStep | Time 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().
|
protected |
Cache storing element norms.
Definition at line 113 of file huertaerrorestimator.h.
Referenced by estimateError(), giveElementError(), restoreContext(), and saveContext().
|
protected |
Global error norm.
Definition at line 105 of file huertaerrorestimator.h.
Referenced by estimateError(), and giveValue().
|
protected |
Global error estimate (relative)
Definition at line 111 of file huertaerrorestimator.h.
Referenced by estimateError(), and giveValue().
|
protected |
Global norm of primary unknown.
Definition at line 109 of file huertaerrorestimator.h.
Referenced by estimateError(), and giveValue().
|
protected |
Global weighted error norm.
Definition at line 107 of file huertaerrorestimator.h.
Referenced by estimateError(), and giveValue().
|
protected |
Definition at line 134 of file huertaerrorestimator.h.
Referenced by estimateError(), and initializeFrom().
|
protected |
Definition at line 133 of file huertaerrorestimator.h.
Referenced by estimateError().
|
protected |
Definition at line 134 of file huertaerrorestimator.h.
Referenced by estimateError(), and initializeFrom().
|
protected |
Linear analysis flag.
Definition at line 127 of file huertaerrorestimator.h.
Referenced by estimateError(), giveAnalysisMode(), and oofem::HuertaErrorEstimatorInterface::HuertaErrorEstimatorInterface().
|
protected |
Type of norm used.
Definition at line 115 of file huertaerrorestimator.h.
Referenced by estimateError(), and initializeFrom().
|
protected |
Primary unknown nodal error.
Definition at line 119 of file huertaerrorestimator.h.
Referenced by estimateError().
|
protected |
Fine mesh.
Definition at line 123 of file huertaerrorestimator.h.
|
protected |
Mesh refinement.
Definition at line 125 of file huertaerrorestimator.h.
Referenced by estimateError().
|
protected |
Refinement level.
Definition at line 121 of file huertaerrorestimator.h.
Referenced by giveRefinementLevel(), and initializeFrom().
|
protected |
Required error to obtain.
Definition at line 129 of file huertaerrorestimator.h.
Referenced by estimateError(), and initializeFrom().
|
protected |
Definition at line 134 of file huertaerrorestimator.h.
Referenced by estimateError().
|
protected |
Actual state counter.
Definition at line 117 of file huertaerrorestimator.h.
Referenced by estimateError(), restoreContext(), and saveContext().
|
protected |
Definition at line 134 of file huertaerrorestimator.h.
Referenced by estimateError().
|
protected |
Weighted error flag.
Definition at line 131 of file huertaerrorestimator.h.
Referenced by estimateError(), and initializeFrom().