OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
The base class for all recovery models, which perform nodal averaging or projection processes for internal variables typically stored in integration points. More...
#include <nodalrecoverymodel.h>
Public Types | |
enum | NodalRecoveryModelType { NRM_NodalAveraging = 0, NRM_ZienkiewiczZhu = 1, NRM_SPR = 2 } |
Public Member Functions | |
NodalRecoveryModel (Domain *d) | |
Constructor. More... | |
virtual | ~NodalRecoveryModel () |
Destructor. More... | |
void | setDomain (Domain *ipDomain) |
virtual int | recoverValues (Set elementSet, InternalStateType type, TimeStep *tStep)=0 |
Recovers the nodal values for all regions. More... | |
virtual int | clear () |
Clears the receiver's nodal table. More... | |
int | giveNodalVector (const FloatArray *&ptr, int node) |
Returns vector of recovered values for given node and region. More... | |
virtual int | giveRegionRecordSize () |
Returns the region record size. More... | |
virtual const char * | giveClassName () const =0 |
std::string | errorInfo (const char *func) |
Protected Member Functions | |
int | initRegionNodeNumbering (IntArray ®ionNodalNumbers, int ®ionDofMans, Set ®ion) |
Determine local region node numbering and determine and check nodal values size. More... | |
int | updateRegionRecoveredValues (const IntArray ®ionNodalNumbers, int regionValSize, const FloatArray &rhs) |
Update the nodal table according to recovered solution for given region. More... | |
Protected Attributes | |
std::map< int, FloatArray > | nodalValList |
Map of nodal values. More... | |
InternalStateType | valType |
Determines the type of recovered values. More... | |
StateCounterType | stateCounter |
Time stamp of recovered values. More... | |
Domain * | domain |
CommunicatorBuff * | commBuff |
Common Communicator buffer. More... | |
ProblemCommunicator * | communicator |
Communicator. More... | |
bool | initCommMap |
Communication init flag. More... | |
The base class for all recovery models, which perform nodal averaging or projection processes for internal variables typically stored in integration points.
The recovery can be performed on one region. Region is defined by given set containing elements defing the region volume. The element set can be set up in the input file, or created dynamically. If Averaging over multiple regions is needed, multiple instances of nodal recovery model should be created, o single instance reused.
Definition at line 65 of file nodalrecoverymodel.h.
Enumerator | |
---|---|
NRM_NodalAveraging | |
NRM_ZienkiewiczZhu | |
NRM_SPR |
Definition at line 68 of file nodalrecoverymodel.h.
oofem::NodalRecoveryModel::NodalRecoveryModel | ( | Domain * | d | ) |
Constructor.
Definition at line 46 of file nodalrecoverymodel.C.
References commBuff, communicator, domain, initCommMap, stateCounter, and valType.
|
virtual |
Destructor.
Definition at line 60 of file nodalrecoverymodel.C.
References commBuff, and communicator.
|
virtual |
Clears the receiver's nodal table.
Definition at line 70 of file nodalrecoverymodel.C.
References nodalValList.
Referenced by oofem::VTKXMLExportModule::exportExternalForces(), oofem::VTKXMLExportModule::exportIntVars(), oofem::VTKXMLExportModule::exportPrimaryVars(), oofem::NodalAveragingRecoveryModel::recoverValues(), oofem::ZZNodalRecoveryModel::recoverValues(), and oofem::SPRNodalRecoveryModel::recoverValues().
|
inline |
Definition at line 126 of file nodalrecoverymodel.h.
|
pure virtual |
Implemented in oofem::SPRNodalRecoveryModel, oofem::ZZNodalRecoveryModel, and oofem::NodalAveragingRecoveryModel.
int oofem::NodalRecoveryModel::giveNodalVector | ( | const FloatArray *& | ptr, |
int | node | ||
) |
Returns vector of recovered values for given node and region.
ptr | Pointer to recovered values at node, NULL if not present. |
node | Node number. |
Definition at line 77 of file nodalrecoverymodel.C.
References oofem::FloatArray::giveSize(), and nodalValList.
Referenced by oofem::SmoothedNodalInternalVariableField::evaluateAt(), oofem::VTKExportModule::exportIntVarAs(), oofem::VTKExportModule::getDofManPrimaryVariable(), oofem::VTKXMLExportModule::getNodalVariableFromIS(), oofem::VTKXMLExportModule::getNodalVariableFromPrimaryField(), and oofem::Element::giveInternalStateAtNode().
|
virtual |
Returns the region record size.
Available after recovery.
reg | Virtual region id. |
type | Determines the type of variable, for which size is requested. Should be same as used for recovering values. |
Definition at line 142 of file nodalrecoverymodel.C.
References nodalValList, and OOFEM_WARNING.
|
protected |
Determine local region node numbering and determine and check nodal values size.
regionNodalNumbers | on Return array containing for each dofManager its local region number. |
regionDofMans | On output total number of region dofMans. |
reg | Virtual region number. |
Definition at line 114 of file nodalrecoverymodel.C.
References oofem::IntArray::at(), domain, oofem::Element::giveDofManager(), oofem::Domain::giveElement(), oofem::Set::giveElementList(), oofem::FEMComponent::giveNumber(), oofem::Domain::giveNumberOfDofManagers(), oofem::Element::giveNumberOfDofManagers(), oofem::IntArray::giveSize(), oofem::IntArray::resize(), and oofem::IntArray::zero().
Referenced by oofem::NodalAveragingRecoveryModel::recoverValues(), oofem::ZZNodalRecoveryModel::recoverValues(), and oofem::SPRNodalRecoveryModel::recoverValues().
|
pure virtual |
Recovers the nodal values for all regions.
type | Determines the type of internal variable to be recovered. |
tStep | Time step. |
Implemented in oofem::SPRNodalRecoveryModel, oofem::ZZNodalRecoveryModel, and oofem::NodalAveragingRecoveryModel.
Referenced by oofem::ZZErrorEstimator::estimateError(), oofem::SmoothedNodalInternalVariableField::evaluateAt(), oofem::VTKExportModule::exportIntVarAs(), oofem::VTKExportModule::getDofManPrimaryVariable(), oofem::VTKXMLExportModule::getNodalVariableFromIS(), and oofem::VTKXMLExportModule::getNodalVariableFromPrimaryField().
|
inline |
Definition at line 97 of file nodalrecoverymodel.h.
Referenced by oofem::StructuralFE2MaterialStatus::copyStateVariables().
|
protected |
Update the nodal table according to recovered solution for given region.
ireg | Virtual region number. |
regionNodalNumbers | Array containing for each dofManager its local region number. |
regionValSize | Size of dofMan record. |
rhs | Array with recovered values. |
Definition at line 93 of file nodalrecoverymodel.C.
References oofem::IntArray::at(), oofem::FloatArray::at(), domain, oofem::Domain::giveNumberOfDofManagers(), nodalValList, and oofem::FloatArray::resize().
Referenced by oofem::NodalAveragingRecoveryModel::recoverValues(), oofem::ZZNodalRecoveryModel::recoverValues(), and oofem::SPRNodalRecoveryModel::recoverValues().
|
protected |
Common Communicator buffer.
Definition at line 84 of file nodalrecoverymodel.h.
Referenced by oofem::NodalAveragingRecoveryModel::initCommMaps(), oofem::ZZNodalRecoveryModel::initCommMaps(), oofem::SPRNodalRecoveryModel::initCommMaps(), NodalRecoveryModel(), and ~NodalRecoveryModel().
|
protected |
Definition at line 86 of file nodalrecoverymodel.h.
Referenced by oofem::NodalAveragingRecoveryModel::exchangeDofManValues(), oofem::ZZNodalRecoveryModel::exchangeDofManValues(), oofem::SPRNodalRecoveryModel::exchangeDofManValues(), oofem::NodalAveragingRecoveryModel::initCommMaps(), oofem::ZZNodalRecoveryModel::initCommMaps(), oofem::SPRNodalRecoveryModel::initCommMaps(), NodalRecoveryModel(), and ~NodalRecoveryModel().
|
protected |
Definition at line 80 of file nodalrecoverymodel.h.
Referenced by oofem::SPRNodalRecoveryModel::computePatch(), oofem::SPRNodalRecoveryModel::determinePatchAssemblyPoints(), oofem::SPRNodalRecoveryModel::determinePatchType(), oofem::SPRNodalRecoveryModel::determineValuesFromPatch(), oofem::NodalAveragingRecoveryModel::initCommMaps(), oofem::ZZNodalRecoveryModel::initCommMaps(), oofem::SPRNodalRecoveryModel::initCommMaps(), oofem::SPRNodalRecoveryModel::initPatch(), initRegionNodeNumbering(), NodalRecoveryModel(), oofem::NodalAveragingRecoveryModel::recoverValues(), oofem::ZZNodalRecoveryModel::recoverValues(), oofem::SPRNodalRecoveryModel::recoverValues(), and updateRegionRecoveredValues().
|
protected |
Communication init flag.
Definition at line 88 of file nodalrecoverymodel.h.
Referenced by oofem::NodalAveragingRecoveryModel::initCommMaps(), oofem::ZZNodalRecoveryModel::initCommMaps(), oofem::SPRNodalRecoveryModel::initCommMaps(), and NodalRecoveryModel().
|
protected |
Map of nodal values.
Only nodes for active region are determined and stored. The node number is dictionary key to corresponding values.
Definition at line 75 of file nodalrecoverymodel.h.
Referenced by clear(), giveNodalVector(), giveRegionRecordSize(), and updateRegionRecoveredValues().
|
protected |
Time stamp of recovered values.
Definition at line 79 of file nodalrecoverymodel.h.
Referenced by NodalRecoveryModel(), oofem::NodalAveragingRecoveryModel::recoverValues(), oofem::ZZNodalRecoveryModel::recoverValues(), and oofem::SPRNodalRecoveryModel::recoverValues().
|
protected |
Determines the type of recovered values.
Definition at line 77 of file nodalrecoverymodel.h.
Referenced by NodalRecoveryModel(), oofem::NodalAveragingRecoveryModel::recoverValues(), oofem::ZZNodalRecoveryModel::recoverValues(), and oofem::SPRNodalRecoveryModel::recoverValues().