NeoPZ
|
This class implements the TPZCompEl structure to enable material memory feature.
It should be instantiated using one of TPZCompEl bottom classes as parent in the template parameter.
More...
#include <pzcompelwithmem.h>
Public Member Functions | |
TPZCompElWithMem () | |
virtual | ~TPZCompElWithMem () |
TPZCompElWithMem (TPZCompMesh &mesh, TPZGeoEl *gel, int64_t &index) | |
TPZCompElWithMem (TPZCompMesh &mesh, TPZGeoEl *ref, int64_t &index, TPZCompElSide left, TPZCompElSide right) | |
TPZCompElWithMem (TPZCompMesh &mesh, const TPZCompElWithMem< TBASE > ©) | |
TPZCompElWithMem (TPZCompMesh &mesh, const TPZCompElWithMem< TBASE > ©, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) | |
used to generate patch mesh... generates a map of connect index from global mesh to clone mesh More... | |
virtual TPZCompEl * | Clone (TPZCompMesh &mesh) const override |
virtual void | SetCreateFunctions (TPZCompMesh *mesh) override |
Set create function in TPZCompMesh to create elements of this type. More... | |
virtual TPZCompEl * | ClonePatchEl (TPZCompMesh &mesh, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) const override |
Create a copy of the given element. The clone copy have the connect indexes mapped to the local clone connects by the given map. More... | |
virtual void | ComputeRequiredData (TPZMaterialData &data, TPZVec< REAL > &qsi) override |
virtual void | ComputeRequiredData (TPZVec< REAL > &intpointtemp, TPZVec< TPZTransform<> > &trvec, TPZVec< TPZMaterialData > &datavec) override |
int64_t | GetGlobalIntegrationPointIndex (TPZMaterialData &data) |
void | GetMemoryIndices (TPZVec< int64_t > &indices) const override |
Get the indices of the vector of element memory associated with the integration points. More... | |
virtual void | SetIntegrationRule (int ord) override |
Modify the maximum order an integration rule can integrate. More... | |
virtual void | Write (TPZStream &buf, int withclassid) const override |
Saves the element data to a stream. More... | |
virtual void | Read (TPZStream &buf, void *context) override |
Reads the element data from a stream. More... | |
virtual int | ClassId () const override |
ClassId of the class. Is implemented for each type of compel in this .h. More... | |
Print | |
Methods for print data structure | |
virtual void | Print (std::ostream &out=std::cout) const override |
Prints element data. More... | |
Protected Member Functions | |
virtual void | PrepareIntPtIndices () override |
PrepareIntPtIndices initializes the material damage varibles memory in the proper material class. More... | |
virtual void | ForcePrepareIntPtIndices () override |
PrepareIntPtIndices initializes the material damage varibles memory in the proper material class. More... | |
virtual void | SetMemoryIndices (TPZVec< int64_t > &indices) override |
PrepareIntPtIndices initializes the material damage varibles memory in the proper material class. More... | |
virtual void | SetFreeIntPtIndices () override |
Frees the material damage varibles memory in the proper material class. More... | |
void | CopyIntPtIndicesFrom (const TPZCompElWithMem< TBASE > ©) |
template<> | |
void | PrepareIntPtIndices () |
Private Attributes | |
TPZStack< int64_t, 128 > | fIntPtIndices |
This class implements the TPZCompEl structure to enable material memory feature.
It should be instantiated using one of TPZCompEl bottom classes as parent in the template parameter.
Definition at line 37 of file pzcompelwithmem.h.
TPZCompElWithMem< TBASE >::TPZCompElWithMem | ( | ) |
Definition at line 147 of file pzcompelwithmem.h.
|
virtual |
Definition at line 17 of file pzcompelwithmem.cpp.
TPZCompElWithMem< TBASE >::TPZCompElWithMem | ( | TPZCompMesh & | mesh, |
TPZGeoEl * | gel, | ||
int64_t & | index | ||
) |
Definition at line 153 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::PrepareIntPtIndices().
TPZCompElWithMem< TBASE >::TPZCompElWithMem | ( | TPZCompMesh & | mesh, |
TPZGeoEl * | ref, | ||
int64_t & | index, | ||
TPZCompElSide | left, | ||
TPZCompElSide | right | ||
) |
Definition at line 160 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::PrepareIntPtIndices().
TPZCompElWithMem< TBASE >::TPZCompElWithMem | ( | TPZCompMesh & | mesh, |
const TPZCompElWithMem< TBASE > & | copy | ||
) |
Definition at line 167 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::CopyIntPtIndicesFrom().
TPZCompElWithMem< TBASE >::TPZCompElWithMem | ( | TPZCompMesh & | mesh, |
const TPZCompElWithMem< TBASE > & | copy, | ||
std::map< int64_t, int64_t > & | gl2lcConMap, | ||
std::map< int64_t, int64_t > & | gl2lcElMap | ||
) |
used to generate patch mesh... generates a map of connect index from global mesh to clone mesh
Definition at line 175 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::CopyIntPtIndicesFrom().
|
overridevirtual |
ClassId of the class. Is implemented for each type of compel in this .h.
Definition at line 338 of file pzcompelwithmem.h.
References Hash().
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl(), TPZCompElWithMem< TBASE >::Read(), and TPZCompElWithMem< TBASE >::Write().
|
inlineoverridevirtual |
Definition at line 57 of file pzcompelwithmem.h.
|
inlineoverridevirtual |
Create a copy of the given element. The clone copy have the connect indexes mapped to the local clone connects by the given map.
mesh | Patch clone mesh |
gl2lcConMap | map the connects indexes from global element (original) to the local copy. |
gl2lcElMap | map the indexes of the elements between the original element and the patch element |
Definition at line 72 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::ClassId(), TPZCompElWithMem< TBASE >::ComputeRequiredData(), TPZCompElWithMem< TBASE >::CopyIntPtIndicesFrom(), TPZCompElWithMem< TBASE >::ForcePrepareIntPtIndices(), TPZCompElWithMem< TBASE >::GetGlobalIntegrationPointIndex(), TPZCompElWithMem< TBASE >::GetMemoryIndices(), TPZCompElWithMem< TBASE >::PrepareIntPtIndices(), TPZCompElWithMem< TBASE >::Read(), TPZCompElWithMem< TBASE >::SetFreeIntPtIndices(), TPZCompElWithMem< TBASE >::SetIntegrationRule(), TPZCompElWithMem< TBASE >::SetMemoryIndices(), and TPZCompElWithMem< TBASE >::Write().
|
inlineoverridevirtual |
Save the element data to a stream
Definition at line 287 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::GetGlobalIntegrationPointIndex(), and TPZMaterialData::intGlobPtIndex.
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl().
|
inlineoverridevirtual |
Definition at line 295 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::GetGlobalIntegrationPointIndex().
|
protected |
Definition at line 267 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::fIntPtIndices, TPZVec< T >::NElements(), PZError, and TPZManVector< T, NumExtAlloc >::Resize().
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl(), and TPZCompElWithMem< TBASE >::TPZCompElWithMem().
|
inlineoverrideprotectedvirtual |
PrepareIntPtIndices initializes the material damage varibles memory in the proper material class.
Definition at line 188 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::fIntPtIndices, TPZIntPoints::NPoints(), PZError, and TPZManVector< T, NumExtAlloc >::Resize().
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl().
|
inline |
Definition at line 306 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::fIntPtIndices, and TPZMaterialData::intLocPtIndex.
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl(), and TPZCompElWithMem< TBASE >::ComputeRequiredData().
|
inlineoverride |
Get the indices of the vector of element memory associated with the integration points.
Will return an empty vector if no memory is associated with the integration point Is implemented in TPZCompElWithMem
Definition at line 260 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::fIntPtIndices.
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl().
|
inlineprotected |
Definition at line 69 of file pzcompelwithmem.cpp.
References TPZCompEl::GetIntegrationRule(), LOGPZ_ERROR, TPZCompEl::Material(), TPZIntPoints::NPoints(), and PZError.
|
inlineoverrideprotectedvirtual |
PrepareIntPtIndices initializes the material damage varibles memory in the proper material class.
Definition at line 22 of file pzcompelwithmem.cpp.
References LOGPZ_ERROR, TPZIntPoints::NPoints(), and PZError.
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl(), TPZCompElWithMem< TBASE >::SetIntegrationRule(), and TPZCompElWithMem< TBASE >::TPZCompElWithMem().
|
inlineoverridevirtual |
Prints element data.
out | indicates the device where the data will be printed |
Definition at line 132 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::fIntPtIndices.
|
inlineoverridevirtual |
Reads the element data from a stream.
Read the element data from a stream
Definition at line 326 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::ClassId(), DebugStop, TPZCompElWithMem< TBASE >::fIntPtIndices, and TPZStream::Read().
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl().
|
inlineoverridevirtual |
Set create function in TPZCompMesh to create elements of this type.
Definition at line 62 of file pzcompelwithmem.h.
References TPZCompMesh::SetAllCreateFunctionsContinuousWithMem().
|
inlineoverrideprotectedvirtual |
Frees the material damage varibles memory in the proper material class.
Definition at line 225 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::fIntPtIndices, TPZVec< T >::NElements(), and TPZManVector< T, NumExtAlloc >::Resize().
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl(), and TPZCompElWithMem< TBASE >::SetIntegrationRule().
|
inlineoverridevirtual |
Modify the maximum order an integration rule can integrate.
Definition at line 240 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::fIntPtIndices, TPZIntPoints::NPoints(), TPZCompElWithMem< TBASE >::PrepareIntPtIndices(), TPZCompElWithMem< TBASE >::SetFreeIntPtIndices(), and TPZVec< T >::size().
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl().
|
inlineoverrideprotectedvirtual |
PrepareIntPtIndices initializes the material damage varibles memory in the proper material class.
Definition at line 216 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::fIntPtIndices, TPZManVector< T, NumExtAlloc >::Resize(), and TPZVec< T >::size().
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl().
|
inlineoverridevirtual |
Saves the element data to a stream.
Definition at line 316 of file pzcompelwithmem.h.
References TPZCompElWithMem< TBASE >::ClassId(), TPZCompElWithMem< TBASE >::fIntPtIndices, and TPZStream::Write().
Referenced by TPZCompElWithMem< TBASE >::ClonePatchEl().
|
private |
Definition at line 142 of file pzcompelwithmem.h.
Referenced by TPZCompElWithMem< TBASE >::CopyIntPtIndicesFrom(), TPZCompElWithMem< TBASE >::ForcePrepareIntPtIndices(), TPZCompElWithMem< TBASE >::GetGlobalIntegrationPointIndex(), TPZCompElWithMem< TBASE >::GetMemoryIndices(), TPZCompElWithMem< TBASE >::Print(), TPZCompElWithMem< TBASE >::Read(), TPZCompElWithMem< TBASE >::SetFreeIntPtIndices(), TPZCompElWithMem< TBASE >::SetIntegrationRule(), TPZCompElWithMem< TBASE >::SetMemoryIndices(), and TPZCompElWithMem< TBASE >::Write().