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

The nodal recovery model based on paper of Zienkiewicz and Zhu "A Simple Estimator and Adaptive Procedure for Practical Engineering Analysis". More...

#include <zznodalrecoverymodel.h>

+ Inheritance diagram for oofem::ZZNodalRecoveryModel:
+ Collaboration diagram for oofem::ZZNodalRecoveryModel:

Classes

struct  parallelStruct
 Helper structure to pass required arguments to packing/unpacking functions needed in parallel mode. More...
 

Public Member Functions

 ZZNodalRecoveryModel (Domain *d)
 Constructor. More...
 
virtual ~ZZNodalRecoveryModel ()
 Destructor. More...
 
virtual 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 initRegionMap (IntArray &regionMap, InternalStateType type)
 Initializes the region table indicating regions to skip. More...
 
void initCommMaps ()
 
void exchangeDofManValues (FloatArray &lhs, FloatMatrix &rhs, IntArray &rn)
 
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 &regionNodalNumbers, int &regionDofMans, Set &region)
 Determine local region node numbering and determine and check nodal values size. More...
 
int updateRegionRecoveredValues (const IntArray &regionNodalNumbers, 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, FloatArraynodalValList
 Map of nodal values. More...
 
InternalStateType valType
 Determines the type of recovered values. More...
 
StateCounterType stateCounter
 Time stamp of recovered values. More...
 
Domaindomain
 
CommunicatorBuffcommBuff
 Common Communicator buffer. More...
 
ProblemCommunicatorcommunicator
 Communicator. More...
 
bool initCommMap
 Communication init flag. More...
 

Detailed Description

The nodal recovery model based on paper of Zienkiewicz and Zhu "A Simple Estimator and Adaptive Procedure for Practical Engineering Analysis".

The recovery is based on nodal averaging or projection process in which it is assumed that the stress $ \sigma_\star $ is interpolated by the same function as the displacement.

Definition at line 54 of file zznodalrecoverymodel.h.

Constructor & Destructor Documentation

oofem::ZZNodalRecoveryModel::ZZNodalRecoveryModel ( Domain d)

Constructor.

Definition at line 61 of file zznodalrecoverymodel.C.

oofem::ZZNodalRecoveryModel::~ZZNodalRecoveryModel ( )
virtual

Destructor.

Definition at line 64 of file zznodalrecoverymodel.C.

Member Function Documentation

virtual const char* oofem::ZZNodalRecoveryModel::giveClassName ( ) const
inlinevirtual

Implements oofem::NodalRecoveryModel.

Definition at line 77 of file zznodalrecoverymodel.h.

void oofem::ZZNodalRecoveryModel::initRegionMap ( IntArray regionMap,
InternalStateType  type 
)
private

Initializes the region table indicating regions to skip.

Parameters
regionMapRegion table, the nonzero entry for region indicates region to skip due to unsupported elements or incompatible value size.
typeDetermines the type of internal variable to be recovered.
int oofem::ZZNodalRecoveryModel::recoverValues ( Set  elementSet,
InternalStateType  type,
TimeStep tStep 
)
virtual

Recovers the nodal values for all regions.

Parameters
typeDetermines the type of internal variable to be recovered.
tStepTime step.

Implements oofem::NodalRecoveryModel.

Definition at line 68 of file zznodalrecoverymodel.C.

References oofem::__InternalStateTypeToString(), oofem::IntArray::at(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::NodalRecoveryModel::clear(), oofem::NodalRecoveryModel::domain, oofem::Element_local, exchangeDofManValues(), oofem::Domain::giveDofManager(), oofem::Element::giveDofManager(), oofem::Domain::giveElement(), oofem::Set::giveElementList(), oofem::Domain::giveEngngModel(), oofem::FEMComponent::giveInterface(), oofem::DofManager::giveLabel(), oofem::FEMComponent::giveNumber(), oofem::FloatMatrix::giveNumberOfColumns(), oofem::Domain::giveNumberOfDofManagers(), oofem::Element::giveNumberOfDofManagers(), oofem::Element::giveParallelMode(), oofem::IntArray::giveSize(), oofem::TimeStep::giveSolutionStateCounter(), initCommMaps(), oofem::NodalRecoveryModel::initRegionNodeNumbering(), oofem::EngngModel::isParallel(), OOFEM_LOG_RELEVANT, OOFEM_WARNING, oofem::FloatArray::resize(), oofem::FloatMatrix::resize(), oofem::NodalRecoveryModel::stateCounter, oofem::NodalRecoveryModel::updateRegionRecoveredValues(), oofem::NodalRecoveryModel::valType, oofem::FloatArray::zero(), oofem::FloatMatrix::zero(), oofem::ZZNodalRecoveryModelInterface::ZZNodalRecoveryMI_computeNNMatrix(), oofem::ZZNodalRecoveryModelInterface::ZZNodalRecoveryMI_computeNValProduct(), oofem::ZZNodalRecoveryModelInterfaceType, and ZZNRM_ZERO_VALUE.


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:44 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011