NeoPZ
|
Implements the geometry of a quadrilateral element. Geometry. More...
#include <pzgeoquad.h>
Public Types | |
enum | { NNodes } |
Number of corner nodes. More... | |
typedef pztopology::TPZQuadrilateral | Top |
Public Types inherited from pztopology::TPZQuadrilateral | |
enum | { NSides, NCornerNodes, Dimension, NFaces, NPermutations } |
Enumerate for topological characteristics. More... | |
enum | EHdivType { HdivConform, HdivFull } |
typedef TPZIntQuad | IntruleType |
Typedef to numerical integration rule. More... | |
typedef TPZGraphElQ2dd | GraphElType |
Typedef to graphical element type. More... | |
Public Member Functions | |
TPZGeoQuad (TPZVec< int64_t > &nodeindexes) | |
Constructor with list of nodes. More... | |
TPZGeoQuad () | |
Empty constructor. More... | |
TPZGeoQuad (const TPZGeoQuad &cp, std::map< int64_t, int64_t > &gl2lcNdMap) | |
Constructor with node map. More... | |
TPZGeoQuad (const TPZGeoQuad &cp) | |
Copy constructor. More... | |
TPZGeoQuad (const TPZGeoQuad &cp, TPZGeoMesh &) | |
Copy constructor. More... | |
int | ClassId () const override |
Creates a geometric element according to the type of the father element. 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... | |
Public Member Functions inherited from pzgeom::TPZNodeRep< 4, pztopology::TPZQuadrilateral > | |
virtual void | SetNeighbourInfo (int side, TPZGeoElSide &neigh, TPZTransform<> &trans) |
bool | IsLinearMapping () const |
bool | IsGeoBlendEl () const |
bool | ResetBlendConnectivity (const int64_t &side, const int64_t &index) |
TPZNodeRep (TPZVec< int64_t > &nodeindexes) | |
Constructor with list of nodes. More... | |
TPZNodeRep () | |
Empty constructor. More... | |
TPZNodeRep (const TPZNodeRep &cp, std::map< int64_t, int64_t > &gl2lcNdMap) | |
Constructor with node map. More... | |
TPZNodeRep (const TPZNodeRep< N, pztopology::TPZQuadrilateral > &cp) | |
Copy constructor. More... | |
void | Read (TPZStream &buf, void *context) override |
void | Write (TPZStream &buf, int withclassid) const override |
void | Initialize (TPZVec< int64_t > &nodeindexes) |
void | Initialize (TPZGeoEl *) |
void | Print (std::ostream &out) const |
int | ClassId () const override |
Public Member Functions inherited from pztopology::TPZQuadrilateral | |
TPZQuadrilateral () | |
Default constructor. More... | |
virtual | ~TPZQuadrilateral () |
Default destructor. More... | |
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 bool | IsLinearMapping (int side) |
static std::string | TypeName () |
Returns the type name of the element. More... | |
template<class T > | |
static void | X (const TPZFMatrix< REAL > &nodes, TPZVec< T > &loc, TPZVec< T > &x) |
Compute x mapping from element nodes and local parametric coordinates. More... | |
template<class T > | |
static void | GradX (const TPZFMatrix< REAL > &nodes, TPZVec< T > &loc, TPZFMatrix< T > &gradx) |
Compute gradient of x mapping from element nodes and local parametric coordinates. More... | |
static void | VectorialProduct (TPZVec< REAL > &v1, TPZVec< REAL > &v2, TPZVec< REAL > &result) |
Method which creates a geometric boundary condition element based on the current geometric element, a side and a boundary condition number. More... | |
static void | ComputeNormal (TPZVec< REAL > &p1, TPZVec< REAL > &p2, TPZVec< REAL > &p3, TPZVec< REAL > &result) |
Computes normal vector to plane determinated by three points. More... | |
static void | InsertExampleElement (TPZGeoMesh &gmesh, int matid, TPZVec< REAL > &lowercorner, TPZVec< REAL > &size) |
create an example element based on the topology More... | |
Static Public Member Functions inherited from pztopology::TPZQuadrilateral | |
static void | GetSideHDivPermutation (int transformid, TPZVec< int > &permgather) |
Identifies the permutation of the nodes needed to make neighbouring elements compatible in terms of order of shape functions. More... | |
static constexpr REAL | RefElVolume () |
Volume of the master element (measure) More... | |
static void | ComputeDirections (int is, TPZFMatrix< REAL > &gradx, TPZFMatrix< REAL > &directions, TPZVec< int > &sidevectors) |
static void | GetSideHDivDirections (TPZVec< int > &sides, TPZVec< int > &dir, TPZVec< int > &bilinearounao) |
static void | GetSideHDivDirections (TPZVec< int > &sides, TPZVec< int > &dir, TPZVec< int > &bilinearounao, TPZVec< int > &sidevectors) |
template<class TVar > | |
static void | ComputeHDivDirections (TPZFMatrix< TVar > &gradx, TPZFMatrix< TVar > &directions) |
Compute the directions of the HDiv vectors. More... | |
template<class TVar > | |
static void | ComputeHCurlDirections (TPZFMatrix< TVar > &gradx, TPZFMatrix< TVar > &directions, const TPZVec< int > &transformationIds) |
template<class TVar > | |
static void | ComputeHCurlFaceDirections (TPZVec< TVar > &v1, TPZVec< TVar > &v2, int transformationId) |
static int | NBilinearSides () |
static void | SetHdivType (EHdivType val) |
static int | SideDimension (int side) |
returns the dimension of the side More... | |
static void | LowerDimensionSides (int side, TPZStack< int > &smallsides) |
Get all sides with lower dimension on side. More... | |
static void | LowerDimensionSides (int side, TPZStack< int > &smallsides, int DimTarget) |
Get all sides with lower dimension but equal to DimTarget on side. More... | |
static void | HigherDimensionSides (int side, TPZStack< int > &high) |
returns all sides whose closure contains side More... | |
static int | NSideNodes (int side) |
return the number of vertices (not connectivities) associated with a side More... | |
static int | SideNodeLocId (int side, int node) |
returns the local node number of the node "node" along side "side" More... | |
static int | NumSides () |
Returns number of sides of the element (9) More... | |
static int | NumSides (int dimension) |
return the number of sides of a given dimension More... | |
static int | NContainedSides (int side) |
return the number of sides contained in the closure of a side More... | |
static int | ContainedSideLocId (int side, int c) |
returns the local side number of the side "c" contained in the closure of side "side" More... | |
static void | Shape (TPZVec< REAL > &loc, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Compute the shape being used to construct the x mapping from local parametric coordinates. More... | |
template<class T > | |
static void | TShape (const TPZVec< T > &loc, TPZFMatrix< T > &phi, TPZFMatrix< T > &dphi) |
Compute the shape being used to construct the x mapping from local parametric coordinates. More... | |
template<class T > | |
static void | BlendFactorForSide (const int &side, const TPZVec< T > &xi, T &blendFactor, TPZVec< T > &corrFactorDxi) |
static void | CenterPoint (int side, TPZVec< REAL > ¢er) |
returns the barycentric coordinates in the master element space of the original element More... | |
static bool | IsInParametricDomain (const TPZVec< REAL > &pt, REAL tol=pztopology::gTolerance) |
Verifies if the parametric point pt is in the element parametric domain. More... | |
static void | RandomPoint (TPZVec< REAL > &pt) |
Generates a random point in the master domain. More... | |
template<class T > | |
static bool | CheckProjectionForSingularity (const int &side, const TPZVec< T > &xiInterior) |
template<class T > | |
static void | MapToSide (int side, TPZVec< T > &InternalPar, TPZVec< T > &SidePar, TPZFMatrix< T > &JacToSide) |
static void | ParametricDomainNodeCoord (int node, TPZVec< REAL > &nodeCoord) |
static MElementType | Type () |
Returns the type of the element as specified in file pzeltype.h. More... | |
static MElementType | Type (int side) |
Returns the type of the element side as specified in file pzeltype.h. More... | |
static TPZTransform | SideToSideTransform (int sidefrom, int sideto) |
returns the transformation which takes a point from the side sidefrom to the side sideto More... | |
static TPZTransform | TransformSideToElement (int side) |
Returns the transformation which transform a point from the side to the interior of the element. More... | |
static TPZTransform | TransformElementToSide (int side) |
Returns the transformation which transform a point from the interior of the element to the side. More... | |
static int | GetTransformId (TPZVec< int64_t > &id) |
Method which identifies the transformation based on the IDs of the corner nodes. More... | |
static int | GetTransformId (int side, TPZVec< int64_t > &id) |
Method which identifies the transformation of a side based on the IDs of the corner nodes. More... | |
static void | GetGatherPermute (int transformid, TPZVec< int > &permute) |
return the vector which permutes the connects according to the transformation id More... | |
static TPZIntPoints * | CreateSideIntegrationRule (int side, int order) |
Create an integration rule over side. 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 TPZSavable * | CreateInstance (const int &classId) |
Additional Inherited Members | |
Public Attributes inherited from pzgeom::TPZNodeRep< 4, pztopology::TPZQuadrilateral > | |
int64_t | fNodeIndexes [N] |
Node indexes of the element. More... | |
Static Public Attributes inherited from pzgeom::TPZNodeRep< 4, pztopology::TPZQuadrilateral > | |
static const int | NNodes |
Static Protected Attributes inherited from pztopology::TPZQuadrilateral | |
static int | fPermutations [8][9] |
Valid permutations between nodes. More... | |
static REAL | fTangentVectors [16][2] |
static int | FaceNodes [1][4] |
static int | SideNodes [4][2] |
Implements the geometry of a quadrilateral element. Geometry.
Definition at line 26 of file pzgeoquad.h.
Definition at line 29 of file pzgeoquad.h.
anonymous enum |
|
inline |
Constructor with list of nodes.
Definition at line 34 of file pzgeoquad.h.
|
inline |
Empty constructor.
Definition at line 40 of file pzgeoquad.h.
|
inline |
Constructor with node map.
Definition at line 46 of file pzgeoquad.h.
|
inline |
Copy constructor.
Definition at line 53 of file pzgeoquad.h.
|
inline |
Copy constructor.
Definition at line 59 of file pzgeoquad.h.
|
overridevirtual |
Creates a geometric element according to the type of the father element.
Implements TPZSavable.
Reimplemented in pzgeom::TPZQuadTorus.
Definition at line 118 of file pzgeoquad.cpp.
References Hash().
Referenced by pzgeom::TPZQuadTorus::ClassId(), and TypeName().
|
static |
Computes normal vector to plane determinated by three points.
Definition at line 36 of file pzgeoquad.cpp.
Referenced by TypeName().
|
inlinestatic |
Compute gradient of x mapping from element nodes and local parametric coordinates.
Definition at line 144 of file pzgeoquad.h.
References TPZMatrix< TVar >::Cols(), DebugStop, TPZFMatrix< TVar >::GetVal(), TPZFMatrix< TVar >::Resize(), TPZMatrix< TVar >::Rows(), pztopology::TPZQuadrilateral::TShape(), and TPZFMatrix< TVar >::Zero().
Referenced by pzgeom::TPZQuadTorus::GradX(), and TypeName().
|
static |
create an example element based on the topology
Definition at line 90 of file pzgeoquad.cpp.
References TPZAdmChunkVector< T, EXP >::AllocateNewElement(), co, TPZGeoMesh::CreateGeoElement(), EQuadrilateral, and TPZGeoMesh::NodeVec().
Referenced by TypeName().
|
inlinestatic |
Definition at line 64 of file pzgeoquad.h.
|
overridevirtual |
read objects from the stream
Reimplemented from TPZSavable.
Reimplemented in pzgeom::TPZQuadTorus.
Definition at line 122 of file pzgeoquad.cpp.
Referenced by pzgeom::TPZQuadTorus::Read(), and TypeName().
|
inlinestatic |
Returns the type name of the element.
Definition at line 70 of file pzgeoquad.h.
References ClassId(), ComputeNormal(), GradX(), InsertExampleElement(), Read(), VectorialProduct(), Write(), and X().
|
static |
Method which creates a geometric boundary condition element based on the current geometric element,
a side and a boundary condition number.
Implementation of normal vector to Hdiv space construct the normal vector for element HdivComputes the vecorial product of the two vectors
Definition at line 23 of file pzgeoquad.cpp.
References TPZVec< T >::NElements(), and TPZVec< T >::Resize().
Referenced by TypeName().
|
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.
Reimplemented in pzgeom::TPZQuadTorus.
Definition at line 126 of file pzgeoquad.cpp.
Referenced by TypeName(), and pzgeom::TPZQuadTorus::Write().
|
inlinestatic |
Compute x mapping from element nodes and local parametric coordinates.
Definition at line 127 of file pzgeoquad.h.
References TPZFMatrix< TVar >::GetVal(), NNodes, TPZMatrix< TVar >::Rows(), and pztopology::TPZQuadrilateral::TShape().
Referenced by pzgeom::TPZQuadTorus::GradX(), TypeName(), and pzgeom::TPZQuadTorus::X().