NeoPZ
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
TPZCreateApproximationSpace Class Reference

#include <pzcreateapproxspace.h>

Inheritance diagram for TPZCreateApproximationSpace:
[legend]
Collaboration diagram for TPZCreateApproximationSpace:
[legend]

Public Member Functions

 TPZCreateApproximationSpace ()
 
 TPZCreateApproximationSpace (const TPZCreateApproximationSpace &copy)
 
TPZCreateApproximationSpaceoperator= (const TPZCreateApproximationSpace &copy)
 
int ClassId () const override
 Define the class id associated with the class. More...
 
void Read (TPZStream &buf, void *context) override
 read objects from the stream More...
 
void Write (TPZStream &buf, int withclassid) const override
 Writes this object to the TPZStream buffer. Include the classid if withclassid = true. More...
 
void SetCreateLagrange (bool flag)
 
void CreateWithMemory (bool flag)
 
void SetAllCreateFunctionsDiscontinuous ()
 Create discontinuous approximation spaces. More...
 
void SetAllCreateFunctionsContinuous ()
 Create continuous approximation spaces. More...
 
void SetAllCreateFunctionsDiscontinuousReferred ()
 Create a discontinuous approximation space with referred elements. More...
 
void SetAllCreateFunctionsContinuousReferred ()
 Create a continuous approximation space with referred elements. More...
 
void SetAllCreateFunctionsHDiv (int meshdim)
 Create an approximation space with HDiv elements. More...
 
void SetAllCreateFunctionsHDivReferred (int meshdim)
 Create an approximation space with HDiv elements. More...
 
void SetAllCreateFunctionsHDivPressure (int meshdim)
 Create an approximation space with HDiv elements and full basis for quadrilateral element. More...
 
void SetAllCreateFunctions (TPZCompEl &cel, TPZCompMesh *mesh)
 Create approximation spaces corresponding to the space defined by cel. More...
 
void SetAllCreateFunctionsMultiphysicElem ()
 Create an approximation space based on multiphysics elements. More...
 
void SetAllCreateFunctionsMultiphysicElemWithMem ()
 Create an approximation space based on multiphysics elements with memory. More...
 
void SetAllCreateFunctionsContinuousWithMem ()
 Create an approximation space with continous elements with memory. Only dimension 3 elements quem have memory in viscoelastic materials @ param dimension dimension of the mesh. More...
 
void SetCreateFunctions (TPZVec< TCreateFunction > &createfuncs)
 Set custom function pointers. More...
 
TPZCompElCreateCompEl (TPZGeoEl *gel, TPZCompMesh &mesh, int64_t &index) const
 Create a computational element using the function pointer for the topology. More...
 
void BuildMesh (TPZCompMesh &cmesh, const std::set< int > &MaterialIDs) const
 Creates the computational elements, and the degree of freedom nodes. More...
 
void BuildMesh (TPZCompMesh &cmesh) const
 Creates the computational elements, and the degree of freedom nodes. More...
 
void BuildMesh (TPZCompMesh &cmesh, const TPZVec< int64_t > &gelindexes) const
 Creates the computational elements, and the degree of freedom nodes. More...
 
void CreateDisconnectedElements (bool create)
 Determine if the mesh will be created with disconnected elements After the mesh is created, interface elements need to be created "by hand". More...
 
bool NeedsMemory ()
 
- Public Member Functions inherited from TPZSavable
 TPZSavable ()
 
virtual ~TPZSavable ()
 
virtual std::list< std::map< std::string, uint64_t > > VersionHistory () const
 
virtual std::pair< std::string, uint64_t > Version () const
 
virtual bool Compare (TPZSavable *copy, bool override=false)
 Compares the object for identity with the object pointed to, eventually copy the object. More...
 
virtual bool Compare (TPZSavable *copy, bool override=false) const
 Compares the object for identity with the object pointed to, eventually copy the object. More...
 
- Public Member Functions inherited from TPZRegisterClassId
template<typename T >
 TPZRegisterClassId (int(T::*)() const)
 
 TPZRegisterClassId ()=default
 

Static Public Member Functions

static void CreateInterfaces (TPZCompMesh &cmesh, const std::set< int > &MaterialIDs)
 Creates the interface elements. More...
 
static void CreateInterfaces (TPZCompMesh &cmesh)
 Creates the interface elements. More...
 
static void AutoBuildContDisc (const TPZVec< TPZGeoEl *> &continuous, const TPZVec< TPZGeoEl *> &discontinuous)
 Creates the computational elements, and the degree of freedom nodes. More...
 
static void CondenseLocalEquations (TPZCompMesh &cmesh)
 Encapsulate the elements in condensed computational elements. More...
 
static void UndoCondenseLocalEquations (TPZCompMesh &cmesh)
 Undo the encapsulate elements. More...
 
static void MakeRaviartThomas (TPZCompMesh &cmesh)
 transform in low order Raviar Tomas More...
 
static void UndoMakeRaviartThomas (TPZCompMesh &cmesh)
 transform in low order Raviar Tomas More...
 
static void CreateInterfaceElements (TPZCompMesh *mesh, bool onlydiscontinuous=true, bool multiphysics=false)
 Create interface elements between the computational elements. More...
 
static void Hybridize (TPZCompMesh &cmesh, const std::set< int > &matids, bool isconnectedElem=false)
 this method will substitute all interface elements with materialid within the set by three elements : one H1 element and two interface elements More...
 
- Static Public Member Functions inherited from TPZSavable
static std::set< TPZRestoreClassBase * > & RestoreClassSet ()
 This static function guarantees that the gMap object is available when needed. More...
 
static std::map< int, TPZRestore_t > & ClassIdMap ()
 This static function guarantees that the gMap object is available when needed. More...
 
static std::pair< std::string, uint64_t > NeoPZVersion ()
 
static void Register (TPZRestoreClassBase *restore)
 
static void RegisterClassId (int classid, TPZRestore_t fun)
 
static TPZSavableCreateInstance (const int &classId)
 

Private Attributes

TPZCompEl *(* fp [8])(TPZGeoEl *el, TPZCompMesh &mesh, int64_t &index)
 Function pointer which determines what type of computational element will be created. More...
 
bool fCreateHybridMesh
 boolean indicating if each element should be created disconnected from the others More...
 
bool fCreateLagrangeMultiplier
 flag indicating whether each element should have an aditional lagrange multiplier More...
 
bool fCreateWithMemory
 flag indicating that the elements need to be created with memory More...
 

Detailed Description

Definition at line 25 of file pzcreateapproxspace.h.

Constructor & Destructor Documentation

◆ TPZCreateApproximationSpace() [1/2]

TPZCreateApproximationSpace::TPZCreateApproximationSpace ( )
inline

Definition at line 43 of file pzcreateapproxspace.h.

References SetAllCreateFunctionsContinuous().

◆ TPZCreateApproximationSpace() [2/2]

TPZCreateApproximationSpace::TPZCreateApproximationSpace ( const TPZCreateApproximationSpace copy)
inline

Definition at line 48 of file pzcreateapproxspace.h.

References fp.

Member Function Documentation

◆ AutoBuildContDisc()

static void TPZCreateApproximationSpace::AutoBuildContDisc ( const TPZVec< TPZGeoEl *> &  continuous,
const TPZVec< TPZGeoEl *> &  discontinuous 
)
static

Creates the computational elements, and the degree of freedom nodes.

Elements created may be TPZInterpolatedElement or TPZCompElDisc.
indices contains the type of the element. Element type are given by the enumerate MCreationType.

Referenced by CreateWithMemory().

◆ BuildMesh() [1/3]

void TPZCreateApproximationSpace::BuildMesh ( TPZCompMesh cmesh,
const std::set< int > &  MaterialIDs 
) const

◆ BuildMesh() [2/3]

void TPZCreateApproximationSpace::BuildMesh ( TPZCompMesh cmesh) const

Creates the computational elements, and the degree of freedom nodes.

Definition at line 327 of file pzcreateapproxspace.cpp.

References TPZCompMesh::MaterialVec().

◆ BuildMesh() [3/3]

void TPZCreateApproximationSpace::BuildMesh ( TPZCompMesh cmesh,
const TPZVec< int64_t > &  gelindexes 
) const

◆ ClassId()

int TPZCreateApproximationSpace::ClassId ( ) const
overridevirtual

Define the class id associated with the class.

This id has to be unique for all classes A non unique id is flagged at the startup of the program

Implements TPZSavable.

Definition at line 1013 of file pzcreateapproxspace.cpp.

References Hash().

Referenced by operator=().

◆ CondenseLocalEquations()

void TPZCreateApproximationSpace::CondenseLocalEquations ( TPZCompMesh cmesh)
static

Encapsulate the elements in condensed computational elements.

Definition at line 803 of file pzcreateapproxspace.cpp.

References TPZCompMesh::ElementVec(), and TPZCompMesh::NElements().

Referenced by CreateWithMemory().

◆ CreateCompEl()

TPZCompEl * TPZCreateApproximationSpace::CreateCompEl ( TPZGeoEl gel,
TPZCompMesh mesh,
int64_t &  index 
) const

◆ CreateDisconnectedElements()

void TPZCreateApproximationSpace::CreateDisconnectedElements ( bool  create)
inline

Determine if the mesh will be created with disconnected elements After the mesh is created, interface elements need to be created "by hand".

Definition at line 165 of file pzcreateapproxspace.h.

Referenced by TPZBuildMultiphysicsMesh::BuildHybridMesh(), Hdiv2dPaper201504::CMeshPressure(), hdivCurvedJCompAppMath::CMeshPressure(), Hdiv3dPaper201504::CMeshPressure(), TPZMHMixedMeshControl::CreatePressureMHMMesh(), and TPZMHMeshControl::HybridizeSkeleton().

◆ CreateInterfaceElements()

void TPZCreateApproximationSpace::CreateInterfaceElements ( TPZCompMesh mesh,
bool  onlydiscontinuous = true,
bool  multiphysics = false 
)
static

Create interface elements between the computational elements.

Definition at line 924 of file pzcreateapproxspace.cpp.

References TPZMultiphysicsElement::CreateInterfaces(), TPZInterpolationSpace::CreateInterfaces(), TPZCompMesh::ElementVec(), and TPZChunkVector< T, EXP >::NElements().

Referenced by CreateWithMemory().

◆ CreateInterfaces() [1/2]

void TPZCreateApproximationSpace::CreateInterfaces ( TPZCompMesh cmesh,
const std::set< int > &  MaterialIDs 
)
static

Creates the interface elements.

Only element of material id in the set<int> will be created

Definition at line 336 of file pzcreateapproxspace.cpp.

References TPZInterpolationSpace::CreateInterfaces(), TPZCompMesh::ElementVec(), TPZGeoEl::MaterialId(), TPZChunkVector< T, EXP >::NElements(), and TPZCompEl::Reference().

Referenced by CreateWithMemory(), and TPZMHMeshControl::CriaMalhaTemporaria().

◆ CreateInterfaces() [2/2]

void TPZCreateApproximationSpace::CreateInterfaces ( TPZCompMesh cmesh)
static

◆ CreateWithMemory()

void TPZCreateApproximationSpace::CreateWithMemory ( bool  flag)
inline

◆ Hybridize()

void TPZCreateApproximationSpace::Hybridize ( TPZCompMesh cmesh,
const std::set< int > &  matids,
bool  isconnectedElem = false 
)
static

◆ MakeRaviartThomas()

void TPZCreateApproximationSpace::MakeRaviartThomas ( TPZCompMesh cmesh)
static

◆ NeedsMemory()

bool TPZCreateApproximationSpace::NeedsMemory ( )
inline

◆ operator=()

TPZCreateApproximationSpace& TPZCreateApproximationSpace::operator= ( const TPZCreateApproximationSpace copy)
inline

◆ Read()

void TPZCreateApproximationSpace::Read ( TPZStream buf,
void *  context 
)
overridevirtual

read objects from the stream

Reimplemented from TPZSavable.

Definition at line 1017 of file pzcreateapproxspace.cpp.

References TPZStream::Read().

Referenced by operator=(), and TPZCompMesh::Read().

◆ SetAllCreateFunctions()

void TPZCreateApproximationSpace::SetAllCreateFunctions ( TPZCompEl cel,
TPZCompMesh mesh 
)

Create approximation spaces corresponding to the space defined by cel.

Definition at line 369 of file pzcreateapproxspace.cpp.

References TPZCompEl::SetCreateFunctions().

Referenced by CreateWithMemory(), and TPZCompMesh::SetAllCreateFunctions().

◆ SetAllCreateFunctionsContinuous()

void TPZCreateApproximationSpace::SetAllCreateFunctionsContinuous ( )

◆ SetAllCreateFunctionsContinuousReferred()

void TPZCreateApproximationSpace::SetAllCreateFunctionsContinuousReferred ( )

◆ SetAllCreateFunctionsContinuousWithMem()

void TPZCreateApproximationSpace::SetAllCreateFunctionsContinuousWithMem ( )

Create an approximation space with continous elements with memory. Only dimension 3 elements quem have memory in viscoelastic materials @ param dimension dimension of the mesh.

Definition at line 422 of file pzcreateapproxspace.cpp.

References CreateCubeElWithMem(), CreateLinearElWithMem(), CreatePointElWithMem(), CreatePrismElWithMem(), CreatePyramElWithMem(), CreateQuadElWithMem(), CreateTetraElWithMem(), CreateTriangleElWithMem(), ECube, EOned, EPiramide, EPoint, EPrisma, EQuadrilateral, ETetraedro, and ETriangle.

Referenced by CreateWithMemory(), and TPZCompMesh::SetAllCreateFunctionsContinuousWithMem().

◆ SetAllCreateFunctionsDiscontinuous()

void TPZCreateApproximationSpace::SetAllCreateFunctionsDiscontinuous ( )

◆ SetAllCreateFunctionsDiscontinuousReferred()

void TPZCreateApproximationSpace::SetAllCreateFunctionsDiscontinuousReferred ( )

Create a discontinuous approximation space with referred elements.

Definition at line 659 of file pzcreateapproxspace.cpp.

References CreateReferredDisc(), ECube, EOned, EPiramide, EPoint, EPrisma, EQuadrilateral, ETetraedro, and ETriangle.

Referenced by CreateWithMemory(), and TPZCompMesh::SetAllCreateFunctionsDiscontinuousReferred().

◆ SetAllCreateFunctionsHDiv()

void TPZCreateApproximationSpace::SetAllCreateFunctionsHDiv ( int  meshdim)

◆ SetAllCreateFunctionsHDivPressure()

void TPZCreateApproximationSpace::SetAllCreateFunctionsHDivPressure ( int  meshdim)

◆ SetAllCreateFunctionsHDivReferred()

void TPZCreateApproximationSpace::SetAllCreateFunctionsHDivReferred ( int  meshdim)

◆ SetAllCreateFunctionsMultiphysicElem()

void TPZCreateApproximationSpace::SetAllCreateFunctionsMultiphysicElem ( )

◆ SetAllCreateFunctionsMultiphysicElemWithMem()

void TPZCreateApproximationSpace::SetAllCreateFunctionsMultiphysicElemWithMem ( )

◆ SetCreateFunctions()

void TPZCreateApproximationSpace::SetCreateFunctions ( TPZVec< TCreateFunction > &  createfuncs)

◆ SetCreateLagrange()

void TPZCreateApproximationSpace::SetCreateLagrange ( bool  flag)
inline

Definition at line 72 of file pzcreateapproxspace.h.

Referenced by TPZMHMeshControl::CreateInternalElements().

◆ UndoCondenseLocalEquations()

void TPZCreateApproximationSpace::UndoCondenseLocalEquations ( TPZCompMesh cmesh)
static

Undo the encapsulate elements.

Definition at line 820 of file pzcreateapproxspace.cpp.

References TPZCompMesh::ElementVec(), TPZCompMesh::NElements(), and TPZCondensedCompEl::Unwrap().

Referenced by CreateWithMemory().

◆ UndoMakeRaviartThomas()

void TPZCreateApproximationSpace::UndoMakeRaviartThomas ( TPZCompMesh cmesh)
static

◆ Write()

void TPZCreateApproximationSpace::Write ( TPZStream buf,
int  withclassid 
) const
overridevirtual

Writes this object to the TPZStream buffer. Include the classid if withclassid = true.

Writes this object to the TPZStream buffer. Include the classid if withclassid = true

Reimplemented from TPZSavable.

Definition at line 1023 of file pzcreateapproxspace.cpp.

References TPZStream::Write().

Referenced by operator=(), and TPZCompMesh::Write().

Member Data Documentation

◆ fCreateHybridMesh

bool TPZCreateApproximationSpace::fCreateHybridMesh
private

boolean indicating if each element should be created disconnected from the others

this flag allows to create hybrid meshes (default is false)

Definition at line 33 of file pzcreateapproxspace.h.

Referenced by operator=().

◆ fCreateLagrangeMultiplier

bool TPZCreateApproximationSpace::fCreateLagrangeMultiplier
private

flag indicating whether each element should have an aditional lagrange multiplier

Definition at line 36 of file pzcreateapproxspace.h.

Referenced by operator=().

◆ fCreateWithMemory

bool TPZCreateApproximationSpace::fCreateWithMemory
private

flag indicating that the elements need to be created with memory

Definition at line 39 of file pzcreateapproxspace.h.

Referenced by NeedsMemory(), and operator=().

◆ fp

TPZCompEl*(* TPZCreateApproximationSpace::fp[8])(TPZGeoEl *el, TPZCompMesh &mesh, int64_t &index)
private

Function pointer which determines what type of computational element will be created.

Definition at line 27 of file pzcreateapproxspace.h.

Referenced by operator=(), and TPZCreateApproximationSpace().


The documentation for this class was generated from the following files: