OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
The nodal recovery model based on nodal averaging. More...
#include <nodalaveragingrecoverymodel.h>
Classes | |
struct | parallelStruct |
Helper structure to pass required arguments to packing/unpacking functions needed in parallel mode. More... | |
Public Member Functions | |
NodalAveragingRecoveryModel (Domain *d) | |
Constructor. More... | |
~NodalAveragingRecoveryModel () | |
Destructor. More... | |
int | recoverValues (Set elementSet, InternalStateType type, TimeStep *tStep) |
Recovers the nodal values for all regions. More... | |
virtual const char * | giveClassName () const |
Public Member Functions inherited from oofem::NodalRecoveryModel | |
NodalRecoveryModel (Domain *d) | |
Constructor. More... | |
virtual | ~NodalRecoveryModel () |
Destructor. More... | |
void | setDomain (Domain *ipDomain) |
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... | |
std::string | errorInfo (const char *func) |
Private Member Functions | |
void | initCommMaps () |
void | exchangeDofManValues (FloatArray &lhs, IntArray &, IntArray &, int) |
int | packSharedDofManData (parallelStruct *s, ProcessCommunicator &processComm) |
int | unpackSharedDofManData (parallelStruct *s, ProcessCommunicator &processComm) |
Additional Inherited Members | |
Public Types inherited from oofem::NodalRecoveryModel | |
enum | NodalRecoveryModelType { NRM_NodalAveraging = 0, NRM_ZienkiewiczZhu = 1, NRM_SPR = 2 } |
Protected Member Functions inherited from oofem::NodalRecoveryModel | |
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 inherited from oofem::NodalRecoveryModel | |
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 nodal recovery model based on nodal averaging.
The recovery is based on nodal averaging or projection process in which element contributions are averaged at node with the same weight.
Definition at line 52 of file nodalaveragingrecoverymodel.h.
oofem::NodalAveragingRecoveryModel::NodalAveragingRecoveryModel | ( | Domain * | d | ) |
Constructor.
Definition at line 51 of file nodalaveragingrecoverymodel.C.
oofem::NodalAveragingRecoveryModel::~NodalAveragingRecoveryModel | ( | ) |
Destructor.
Definition at line 54 of file nodalaveragingrecoverymodel.C.
|
private |
Definition at line 180 of file nodalaveragingrecoverymodel.C.
References oofem::NodalRecoveryModel::communicator, oofem::Communicator::finishExchange(), oofem::Communicator::initExchange(), oofem::Communicator::packAllData(), packSharedDofManData(), oofem::Communicator::unpackAllData(), and unpackSharedDofManData().
Referenced by recoverValues().
|
inlinevirtual |
Implements oofem::NodalRecoveryModel.
Definition at line 76 of file nodalaveragingrecoverymodel.h.
|
private |
Definition at line 166 of file nodalaveragingrecoverymodel.C.
References oofem::CBT_dynamic, oofem::NodalRecoveryModel::commBuff, oofem::NodalRecoveryModel::communicator, oofem::NodalRecoveryModel::domain, oofem::Domain::giveEngngModel(), oofem::EngngModel::giveNumberOfProcesses(), oofem::EngngModel::giveRank(), oofem::NodalRecoveryModel::initCommMap, and OOFEM_LOG_INFO.
Referenced by recoverValues().
|
private |
Definition at line 193 of file nodalaveragingrecoverymodel.C.
References oofem::IntArray::at(), oofem::FloatArray::at(), oofem::ProcessCommunicator::giveProcessCommunicatorBuff(), oofem::IntArray::giveSize(), oofem::ProcessCommunicator::giveToSendMap(), oofem::NodalAveragingRecoveryModel::parallelStruct::lhs, oofem::NodalAveragingRecoveryModel::parallelStruct::regionDofMansConnectivity, oofem::NodalAveragingRecoveryModel::parallelStruct::regionNodalNumbers, oofem::NodalAveragingRecoveryModel::parallelStruct::regionValSize, and oofem::ProcessCommunicatorBuff::write().
Referenced by exchangeDofManValues().
|
virtual |
Recovers the nodal values for all regions.
type | Determines the type of internal variable to be recovered. |
tStep | Time step. |
Implements oofem::NodalRecoveryModel.
Definition at line 58 of file nodalaveragingrecoverymodel.C.
References oofem::__InternalStateTypeToString(), oofem::IntArray::at(), oofem::FloatArray::at(), oofem::NodalRecoveryModel::clear(), oofem::NodalRecoveryModel::domain, oofem::Element_local, exchangeDofManValues(), oofem::Element::giveDofManager(), oofem::Domain::giveElement(), oofem::Set::giveElementList(), oofem::Domain::giveEngngModel(), oofem::FEMComponent::giveInterface(), oofem::FEMComponent::giveNumber(), oofem::Domain::giveNumberOfDofManagers(), oofem::Element::giveNumberOfDofManagers(), oofem::Element::giveParallelMode(), oofem::IntArray::giveSize(), oofem::FloatArray::giveSize(), oofem::TimeStep::giveSolutionStateCounter(), initCommMaps(), oofem::NodalRecoveryModel::initRegionNodeNumbering(), oofem::EngngModel::isParallel(), oofem::NodalAveragingRecoveryModelInterface::NodalAveragingRecoveryMI_computeNodalValue(), oofem::NodalAveragingRecoveryModelInterfaceType, OOFEM_LOG_RELEVANT, OOFEM_WARNING, oofem::IntArray::resize(), oofem::FloatArray::resize(), oofem::NodalRecoveryModel::stateCounter, oofem::NodalRecoveryModel::updateRegionRecoveredValues(), oofem::NodalRecoveryModel::valType, oofem::FloatArray::zero(), and oofem::IntArray::zero().
|
private |
Definition at line 222 of file nodalaveragingrecoverymodel.C.
References oofem::IntArray::at(), oofem::FloatArray::at(), oofem::ProcessCommunicator::giveProcessCommunicatorBuff(), oofem::IntArray::giveSize(), oofem::ProcessCommunicator::giveToRecvMap(), oofem::NodalAveragingRecoveryModel::parallelStruct::lhs, oofem::ProcessCommunicatorBuff::read(), oofem::NodalAveragingRecoveryModel::parallelStruct::regionDofMansConnectivity, oofem::NodalAveragingRecoveryModel::parallelStruct::regionNodalNumbers, and oofem::NodalAveragingRecoveryModel::parallelStruct::regionValSize.
Referenced by exchangeDofManValues().