NeoPZ
|
Implements the shape functions of a quadrilateral (2D) element. Shape. More...
#include <pzshapequad.h>
Static Public Member Functions | |
static void | Shape (TPZVec< REAL > &pt, TPZVec< int64_t > &id, TPZVec< int > &order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Computes the values of the shape functions and their derivatives for a quadrilateral element. More... | |
static void | SideShape (int side, TPZVec< REAL > &pt, TPZVec< int64_t > &id, TPZVec< int > &order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
static void | ShapeOrder (TPZVec< int64_t > &id, TPZVec< int > &order, TPZGenMatrix< int > &shapeorders) |
returns the polynomial order in the natural ksi, eta of the side associated with each shapefunction More... | |
static void | SideShapeOrder (int side, TPZVec< int64_t > &id, int order, TPZGenMatrix< int > &shapeorders) |
returns the polynomial order in the natural ksi, eta of the internal shapefunctions of a side More... | |
static void | ShapeCorner (TPZVec< REAL > &pt, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Computes the corner shape functions for a quadrilateral element. More... | |
static void | ShapeGenerating (TPZVec< REAL > &pt, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Computes the generating shape functions for a quadrilateral element. More... | |
static void | ShapeInternal (TPZVec< REAL > &x, int order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi, int quad_transformation_index) |
Compute the internal functions of the quadrilateral shape function at a point. More... | |
static void | ShapeInternal (TPZVec< REAL > &x, int order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
static void | TransformDerivative2dQ (int transid, int num, TPZFMatrix< REAL > &in) |
Transform the derivatives of num shapefunctions in place for a quadrilateral. More... | |
static void | TransformPoint2dQ (int transid, TPZVec< REAL > &in, TPZVec< REAL > &out) |
Transform the coordinates of the point in the space of the quadrilateral master element based on the transformation id. More... | |
static void | ProjectPoint2dQuadToRib (int rib, TPZVec< REAL > &in, REAL &out) |
Projects a point from the interior of the element to a rib. More... | |
static int | GetTransformId2dQ (TPZVec< int64_t > &id) |
Method which identifies the quadrilateral transformation based on the IDs of the corner nodes. More... | |
static void | TransformDerivativeFromRibToQuad (int rib, int num, TPZFMatrix< REAL > &dphi) |
Transforms the derivative of a shapefunction computed on the rib into the two dimensional derivative of the function with respect to the element. The parameter dphi should be dimensioned (2,num), at least. More... | |
static int | NConnectShapeF (int side, int order) |
Number of shapefunctions of the connect associated with the side, considering the order of interpolation of the element. More... | |
static int | NShapeF (TPZVec< int > &order) |
Total number of shapefunctions, considering the order of interpolation of the element. More... | |
static TPZTransform< REAL > | ParametricTransform (int trans_id) |
static void | ShapeInternal (int side, TPZVec< REAL > &x, int order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
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) |
Static Public Attributes | |
static REAL | gTrans2dQ [8][2][2] |
Data structure which defines the quadrilateral transformations. More... | |
static REAL | gFaceTr2dQ [6][2][3] |
Data structure which defines the quadrilateral transformations. More... | |
static REAL | gRibTrans2dQ1d [4][2] |
Data structure which defines the quadrilateral transformations. More... | |
Additional Inherited Members | |
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 inherited from pztopology::TPZQuadrilateral | |
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... | |
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 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 shape functions of a quadrilateral (2D) element. Shape.
The quadrilateral shape functions are also used in 3D elements
The range of the master element is -1,1
Definition at line 30 of file pzshapequad.h.
|
static |
Method which identifies the quadrilateral transformation based on the IDs of the corner nodes.
id | indexes of the corner nodes |
Definition at line 395 of file pzshapequad.cpp.
|
static |
Number of shapefunctions of the connect associated with the side, considering the order of interpolation of the element.
side | associated side |
order | vector of integers indicating the interpolation order of the element |
Definition at line 432 of file pzshapequad.cpp.
References PZError.
|
static |
Total number of shapefunctions, considering the order of interpolation of the element.
order | vector of integers indicating the interpolation order of the element |
Definition at line 448 of file pzshapequad.cpp.
References TPZVec< T >::NElements(), test::res, TPZVec< T >::Resize(), and TPZVec< T >::size().
|
static |
Definition at line 382 of file pzshapequad.cpp.
References TPZTransform< T >::Mult().
Referenced by GetSideTransform().
|
static |
Projects a point from the interior of the element to a rib.
rib | rib index to which the point should be projected |
in | coordinate of the point at the interior of the element |
out | coordinate of the point on the rib |
Definition at line 390 of file pzshapequad.cpp.
|
static |
Computes the values of the shape functions and their derivatives for a quadrilateral element.
pt | (input) point where the shape functions are computed |
id | (input) indexes of the corner points which determine the orientation of the shape functions |
order | (input) order of the side connects different from the corner connects (5 connects in this case) |
phi | (output) values of the shape functions |
dphi | (output) values of the derivatives of the shapefunctions These values depend on the point, the order of interpolation and ids of the corner points The shapefunction computation uses the shape functions of the linear element for its implementation |
Definition at line 95 of file pzshapequad.cpp.
|
static |
Computes the corner shape functions for a quadrilateral element.
pt | (input) point where the shape function is computed |
phi | (output) value of the (4) shape functions |
dphi | (output) value of the derivatives of the (4) shape functions holding the derivatives in a column |
Definition at line 36 of file pzshapequad.cpp.
References dx().
Referenced by TPZGraphElT2dMapped::QsiEta().
|
static |
Computes the generating shape functions for a quadrilateral element.
pt | (input) point where the shape function is computed |
phi | (input/output) value of the (4) shape functions |
dphi | (input/output) value of the derivatives of the (4) shape functions holding the derivatives in a column |
Definition at line 67 of file pzshapequad.cpp.
|
static |
Compute the internal functions of the quadrilateral shape function at a point.
x | coordinate of the point |
order | maximum order of shape functions to be computed |
phi | shapefunction values |
dphi | values of the derivatives of the shape functions |
quad_transformation_index | determines the transformation applied to the internal shape functions. This parameter is computed by the GetTransformId2dQ method |
Definition at line 303 of file pzshapequad.cpp.
References TPZMatrix< TVar >::Cols(), TPZFMatrix< TVar >::Resize(), and TPZMatrix< TVar >::Rows().
Referenced by pzshape::TPZShapePiram::ShapeInternal(), pzshape::TPZShapePrism::ShapeInternal(), and pzshape::TPZShapeCube::ShapeInternal().
|
static |
Definition at line 281 of file pzshapequad.cpp.
References TPZMatrix< TVar >::Cols(), TPZFMatrix< TVar >::Resize(), and TPZMatrix< TVar >::Rows().
|
static |
Definition at line 332 of file pzshapequad.cpp.
References DebugStop, LOGPZ_ERROR, and pzshape::TPZShapeLinear::ShapeInternal().
|
static |
returns the polynomial order in the natural ksi, eta of the side associated with each shapefunction
Definition at line 166 of file pzshapequad.cpp.
References TPZGenMatrix< TObj >::Cols(), DebugStop, and TPZGenMatrix< TObj >::Rows().
|
static |
Definition at line 146 of file pzshapequad.cpp.
References Shape().
|
static |
returns the polynomial order in the natural ksi, eta of the internal shapefunctions of a side
sides | is a vector with copy of side as much as needed, it depends on the order |
Definition at line 214 of file pzshapequad.cpp.
References DebugStop, and TPZGenMatrix< TObj >::Rows().
|
static |
Transform the derivatives of num shapefunctions in place for a quadrilateral.
transid | identifier of the transformation of the quad element as obtained by the GetTransformId2dQ method |
num | number of shapefunctions needed to transform |
in | matrix containing the values of the derivatives of the shapefunctions as a row vector the values of the derivatives contained in this matrix are modified upon return |
Definition at line 363 of file pzshapequad.cpp.
|
static |
Transforms the derivative of a shapefunction computed on the rib into the two dimensional derivative of the function with respect to the element.
The parameter dphi should be dimensioned (2,num), at least.
rib | rib index along which the shapefunction is defined |
num | number of shapefunction derivatives which need to be transformed |
dphi | values of the derivatives of the shapefunctions |
Definition at line 424 of file pzshapequad.cpp.
|
static |
Transform the coordinates of the point in the space of the quadrilateral master element based on the transformation id.
transid | identifier of the transformation of the element as obtained by the GetTransformId2dQ method |
in | coordinates of the variational parameter |
out | coordinates of the transformed parameter |
Definition at line 375 of file pzshapequad.cpp.
|
static |
Data structure which defines the quadrilateral transformations.
Definition at line 182 of file pzshapequad.h.
|
static |
Data structure which defines the quadrilateral transformations.
Definition at line 184 of file pzshapequad.h.
|
static |
Data structure which defines the quadrilateral transformations.
Transformation of the point within a quadrilateral face
Definition at line 180 of file pzshapequad.h.
Referenced by TPZGeoElSide::NeighbourSideTransform().