NeoPZ
|
Special map. It is util to convert a linear element for quadratic element, but the same topology. Geometry. More...
Public Member Functions | |
TPZChangeEl () | |
~TPZChangeEl () | |
Static Public Member Functions | |
static TPZGeoEl * | ChangeToQuadratic (TPZGeoMesh *Mesh, int64_t ElemIndex) |
Turns an linear geoelement to quadratic. More... | |
static TPZGeoEl * | ChangeToGeoBlend (TPZGeoMesh *Mesh, int64_t ElemIndex) |
Turns a regular element into a geoblend. More... | |
static TPZGeoEl * | ChangeToQuarterPoint (TPZGeoMesh *Mesh, int64_t ElemIndex, int targetSide) |
Slide middle nodes of an quadratic geoelement to the quarterpoint with respect to a given side. More... | |
static bool | NearestNode (TPZGeoEl *gel, TPZVec< REAL > &x, int64_t &meshNode, double tol) |
Return if a given point x is near to some node of a given geo element. More... | |
static int64_t | NearestNode (TPZGeoMesh *gmesh, TPZVec< REAL > &x, double tol) |
Return the id of the node into the geometric mesh nearest a given point x. More... | |
static bool | CreateMiddleNodeAtEdge (TPZGeoMesh *Mesh, int64_t ElemIndex, int edge, int64_t &middleNodeId) |
Special map. It is util to convert a linear element for quadratic element, but the same topology. Geometry.
Definition at line 24 of file tpzquadraticcube.cpp.
TPZChangeEl::TPZChangeEl | ( | ) |
Definition at line 34 of file tpzchangeel.cpp.
TPZChangeEl::~TPZChangeEl | ( | ) |
Definition at line 39 of file tpzchangeel.cpp.
|
static |
Turns a regular element into a geoblend.
Definition at line 415 of file tpzchangeel.cpp.
References TPZGeoEl::BuildBlendConnectivity(), TPZGeoMesh::CreateGeoBlendElement(), TPZGeoMesh::DeleteElement(), TPZGeoMesh::ElementVec(), TPZGeoEl::Id(), TPZGeoEl::MaterialId(), TPZGeoEl::NCornerNodes(), TPZGeoElSide::Neighbour(), TPZGeoEl::NodeIndex(), TPZGeoEl::NSides(), PZError, TPZGeoEl::SetNeighbour(), and TPZGeoEl::Type().
|
static |
Turns an linear geoelement to quadratic.
Deleting OldElem
Inserting New Element in Mesh
Definition at line 45 of file tpzchangeel.cpp.
References DebugStop, TPZGeoMesh::DeleteElement(), TPZGeoElSide::Dimension(), ECube, TPZGeoMesh::Element(), TPZGeoElSide::Element(), TPZGeoMesh::ElementVec(), EOned, EPiramide, EPrisma, EQuadrilateral, ETetraedro, ETriangle, TPZGeoEl::Father(), TPZGeoEl::HasSubElement(), TPZGeoEl::Id(), TPZGeoEl::MaterialId(), TPZGeoElSide::Neighbour(), TPZVec< T >::NElements(), TPZGeoEl::NodeIndex(), TPZGeoEl::NSides(), TPZGeoEl::NSubElements(), TPZVec< T >::resize(), TPZGeoEl::SetFather(), TPZGeoEl::SetNeighbour(), TPZGeoEl::SetSubElement(), TPZGeoElSide::Side(), TPZVec< T >::size(), TPZGeoEl::SubElement(), TPZGeoEl::Type(), and TPZGeoEl::WhichSubel().
Referenced by pzgeom::TPZQuadraticTetra::InsertExampleElement().
|
static |
Slide middle nodes of an quadratic geoelement to the quarterpoint with respect to a given side.
Embora o elemento quadratico possua mais nohs (NNodes), a topologia segue igual ao elemento linear no qual o elemento quadratico foi baseado.
Isso quer dizer que Linear(Geom::NNodes) < Quadratic(Geom::NNodes), mas Linear(Geom::NSides) = Quadratic(Geom::NSides)
Com isso a numeracao dos nohs nos meios das arestas coincide com a numeracao dos lados unidimensionais do elemento.
Definition at line 247 of file tpzchangeel.cpp.
References TPZChangeEl::ChangeToQuadratic(), DebugStop, TPZGeoElSide::Dimension(), dist(), ECube, TPZGeoMesh::ElementVec(), EOned, EPiramide, EPoint, EPrisma, EQuadrilateral, ETetraedro, ETriangle, TPZGeoEl::IsLinearMapping(), TPZGeoEl::NCornerNodes(), TPZVec< T >::NElements(), TPZGeoEl::NodeIndex(), TPZGeoMesh::NodeVec(), TPZGeoEl::NSides(), TPZGeoElSide::SideNodeIndex(), TPZGeoElSide::SideNodeLocIndex(), and TPZGeoEl::Type().
|
static |
Setting Midnodes Id's
Allocating Memory for MidNodes and Pushing Them
Definition at line 525 of file tpzchangeel.cpp.
References TPZAdmChunkVector< T, EXP >::AllocateNewElement(), TPZGeoElSide::Dimension(), TPZGeoMesh::ElementVec(), TPZGeoElSide::Neighbour(), TPZGeoMesh::NNodes(), TPZGeoMesh::NodeVec(), TPZGeoNode::SetCoord(), TPZGeoNode::SetNodeId(), TPZGeoMesh::SetNodeIdUsed(), and TPZGeoElSide::X().
|
static |
Return if a given point x is near to some node of a given geo element.
gel | [in] given geo element |
x | [in] given point |
meshNode | [out] id of node that is in the x range |
tol | [in] x range radius |
Definition at line 458 of file tpzchangeel.cpp.
References dist(), TPZGeoNode::GetCoordinates(), TPZGeoEl::NNodes(), TPZGeoEl::NodeIndex(), TPZGeoEl::NodePtr(), and sqrt.
|
static |
Return the id of the node into the geometric mesh nearest a given point x.
gmesh | [in] given geometric mesh |
x | [in] given point |
tol | [in] x range radius |
Definition at line 489 of file tpzchangeel.cpp.
References DebugStop, dist(), TPZGeoMesh::NNodes(), TPZGeoMesh::NodeVec(), and sqrt.