NeoPZ
|
Defines a quadrilateral geometric element with quadratic map. Geometry. More...
#include <tpzquadraticquad.h>
Public Types | |
enum | { NNodes } |
Number of 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 | |
int | ClassId () const override |
CreateGeoElement -> TPZQuadraticQuad. More... | |
TPZQuadraticQuad (TPZVec< int64_t > &nodeindexes) | |
Constructor from node indexes. More... | |
TPZQuadraticQuad () | |
Default constructor. More... | |
TPZQuadraticQuad (const TPZQuadraticQuad &cp, std::map< int64_t, int64_t > &gl2lcNdMap) | |
Constructor over node map. More... | |
TPZQuadraticQuad (const TPZQuadraticQuad &cp) | |
Copy constructor. More... | |
TPZQuadraticQuad (const TPZQuadraticQuad &cp, TPZGeoMesh &) | |
Copy constructor. More... | |
Public Member Functions inherited from pzgeom::TPZNodeRep< 8, 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 std::string | TypeName () |
Returns the type name of the element. More... | |
static bool | IsLinearMapping (int side) |
static void | Shape (TPZVec< REAL > &loc, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Method which creates a geometric boundary condition element based on the current geometric element, a side and a boundary condition number. More... | |
template<class T > | |
static void | TShape (const TPZVec< T > ¶m, TPZFMatrix< T > &phi, TPZFMatrix< T > &dphi) |
Compute gradient of x mapping from local parametric coordinates. More... | |
template<class T > | |
static void | X (const TPZFMatrix< REAL > &coord, TPZVec< T > &par, TPZVec< T > &result) |
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 | InsertExampleElement (TPZGeoMesh &gmesh, int matid, TPZVec< REAL > &lowercorner, TPZVec< REAL > &size) |
Creates a geometric element according to the type of the father element. 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< 8, pztopology::TPZQuadrilateral > | |
int64_t | fNodeIndexes [N] |
Node indexes of the element. More... | |
Static Public Attributes inherited from pzgeom::TPZNodeRep< 8, 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] |
Defines a quadrilateral geometric element with quadratic map. Geometry.
Definition at line 23 of file tpzquadraticquad.h.
Definition at line 26 of file tpzquadraticquad.h.
anonymous enum |
|
inline |
Constructor from node indexes.
Definition at line 37 of file tpzquadraticquad.h.
|
inline |
Default constructor.
Definition at line 43 of file tpzquadraticquad.h.
|
inline |
Constructor over node map.
Definition at line 48 of file tpzquadraticquad.h.
|
inline |
Copy constructor.
Definition at line 53 of file tpzquadraticquad.h.
|
inline |
Copy constructor.
Definition at line 58 of file tpzquadraticquad.h.
|
overridevirtual |
CreateGeoElement -> TPZQuadraticQuad.
Implements TPZSavable.
Definition at line 259 of file tpzquadraticquad.cpp.
References pzgeom::TPZNodeRep< N, Topology >::ClassId(), and Hash().
|
inlinestatic |
Compute gradient of X mapping from element nodes and local parametric coordinates.
Definition at line 82 of file tpzquadraticquad.cpp.
References TPZMatrix< TVar >::Cols(), DebugStop, TPZFMatrix< TVar >::GetVal(), TPZFMatrix< TVar >::Resize(), TPZMatrix< TVar >::Rows(), and TPZFMatrix< TVar >::Zero().
Referenced by Shape().
|
static |
Creates a geometric element according to the type of the father element.
create an example element based on the topology
Creates a geometric element according to the type of the father element
Definition at line 157 of file tpzquadraticquad.cpp.
References TPZAdmChunkVector< T, EXP >::AllocateNewElement(), TPZChangeEl::ChangeToQuadratic(), co, TPZGeoMesh::CreateGeoElement(), TPZGeoMesh::Element(), EQuadrilateral, TPZGeoNode::GetCoordinates(), TPZGeoEl::NCornerNodes(), TPZGeoEl::NNodes(), TPZGeoEl::NodePtr(), TPZGeoMesh::NodeVec(), TPZGeoEl::NSides(), TPZGeoNode::SetCoord(), and TPZGeoEl::SetSideDefined().
Referenced by Shape().
|
inlinestatic |
Definition at line 69 of file tpzquadraticquad.h.
|
inlinestatic |
Method which creates a geometric boundary condition element based on the current geometric element, a side and a boundary condition number.
Compute the shape being used to construct the X mapping from local parametric coordinates
Definition at line 82 of file tpzquadraticquad.h.
References GradX(), InsertExampleElement(), TShape(), and X().
|
static |
Compute gradient of x mapping from local parametric coordinates.
Definition at line 30 of file tpzquadraticquad.cpp.
Referenced by Shape().
|
inlinestatic |
Returns the type name of the element.
Definition at line 67 of file tpzquadraticquad.h.
|
static |
Definition at line 65 of file tpzquadraticquad.cpp.
References TPZFMatrix< TVar >::GetVal(), and TPZMatrix< TVar >::Rows().
Referenced by Shape().