NeoPZ
pzshapequad.h
Go to the documentation of this file.
1 
6 #ifndef SHAPEQUADHPP
7 #define SHAPEQUADHPP
8 
9 #include "pzfmatrix.h"
10 #include "pzstack.h"
11 #include "pztrnsform.h"
12 #include "tpzquadrilateral.h"
13 #include "pzshtmat.h"
14 
15 #ifdef _AUTODIFF
16 #include "fadType.h"
17 #endif
18 
20 namespace pzshape{
21 
31 
32  public:
33 
46  static void Shape(TPZVec<REAL> &pt, TPZVec<int64_t> &id, TPZVec<int> &order,
48 
49 
50 
51  static void SideShape(int side, TPZVec<REAL> &pt, TPZVec<int64_t> &id, TPZVec<int> &order,
53 
54 
58  static void ShapeOrder(TPZVec<int64_t> &id, TPZVec<int> &order, TPZGenMatrix<int> &shapeorders);//, TPZVec<int64_t> &sides
59 
64  static void SideShapeOrder(int side, TPZVec<int64_t> &id, int order, TPZGenMatrix<int> &shapeorders);
65 
72  static void ShapeCorner(TPZVec<REAL> &pt, TPZFMatrix<REAL> &phi, TPZFMatrix<REAL> &dphi);
73 
80  static void ShapeGenerating(TPZVec<REAL> &pt, TPZFMatrix<REAL> &phi, TPZFMatrix<REAL> &dphi);
81 
98  static void ShapeInternal(TPZVec<REAL> &x, int order,
99  TPZFMatrix<REAL> &phi,TPZFMatrix<REAL> &dphi,int quad_transformation_index);
100 
101  static void ShapeInternal(TPZVec<REAL> &x, int order,
103 
104 #ifdef _AUTODIFF
105 
120  static void Shape2dQuadInternal(TPZVec<FADREAL> &x, int order,
121  TPZVec<FADREAL> &phi,int quad_transformation_index);
122 #endif
123 
131  static void TransformDerivative2dQ(int transid, int num, TPZFMatrix<REAL> &in);
132 
140  static void TransformPoint2dQ(int transid,TPZVec<REAL> &in,TPZVec<REAL> &out);
141 
142 #ifdef _AUTODIFF
143 
151  static void TransformPoint2dQ(int transid,TPZVec<FADREAL> &in,TPZVec<FADREAL> &out);
152 
153 #endif
154 
161  static void ProjectPoint2dQuadToRib(int rib, TPZVec<REAL> &in, REAL &out);
168  static int GetTransformId2dQ(TPZVec<int64_t> &id);
169 
177  static void TransformDerivativeFromRibToQuad(int rib,int num,TPZFMatrix<REAL> &dphi);
178 
180  static REAL gTrans2dQ[8][2][2];
182  static REAL gFaceTr2dQ[6][2][3];
184  static REAL gRibTrans2dQ1d[4][2];
185 
193  static int NConnectShapeF(int side, int order);
194 
201  static int NShapeF(TPZVec<int> &order);
202  static TPZTransform<REAL> ParametricTransform(int trans_id);
203  static void ShapeInternal(int side, TPZVec<REAL> &x, int order, TPZFMatrix<REAL> &phi, TPZFMatrix<REAL> &dphi);
204 
205 
206  };
207 
208 };
209 
210 #endif
static int NShapeF(TPZVec< int > &order)
Total number of shapefunctions, considering the order of interpolation of the element.
static REAL gFaceTr2dQ[6][2][3]
Data structure which defines the quadrilateral transformations.
Definition: pzshapequad.h:182
groups all classes dedicated to the computation of shape functions
Definition: pzshapeextend.h:16
static void TransformDerivative2dQ(int transid, int num, TPZFMatrix< REAL > &in)
Transform the derivatives of num shapefunctions in place for a quadrilateral.
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 ...
static void ProjectPoint2dQuadToRib(int rib, TPZVec< REAL > &in, REAL &out)
Projects a point from the interior of the element to a rib.
static int NConnectShapeF(int side, int order)
Number of shapefunctions of the connect associated with the side, considering the order of interpolat...
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 ...
static int GetTransformId2dQ(TPZVec< int64_t > &id)
Method which identifies the quadrilateral transformation based on the IDs of the corner nodes...
Contains TPZMatrixclass which implements full matrix (using column major representation).
static TPZTransform< REAL > ParametricTransform(int trans_id)
Contains the TPZQuadrilateral class which defines the topology of a quadrilateral element...
static REAL gRibTrans2dQ1d[4][2]
Data structure which defines the quadrilateral transformations.
Definition: pzshapequad.h:184
static REAL gTrans2dQ[8][2][2]
Data structure which defines the quadrilateral transformations.
Definition: pzshapequad.h:180
static void SideShape(int side, TPZVec< REAL > &pt, TPZVec< int64_t > &id, TPZVec< int > &order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
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.
Implements generic class which holds a matrix of objects. Matrix.
Definition: pzshtmat.h:18
A simple stack.
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...
Definition: pzshapequad.cpp:95
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 ...
static void ShapeCorner(TPZVec< REAL > &pt, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
Computes the corner shape functions for a quadrilateral element.
Definition: pzshapequad.cpp:36
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 ...
Defines the topology of a quadrilateral element. Topology Sides 0 to 3 are vertices, sides 4 to 7 are lines, side 8 is the quadrilateral.
Implements the shape functions of a quadrilateral (2D) element. Shape.
Definition: pzshapequad.h:30
Contains TPZGenMatrix class which implements generic class which holds a matrix of objects...
Contains the TPZTransform<> class which implements an affine transformation between points in paramet...
Implements an affine transformation between points in parameter space. Topology Utility.
Definition: pzmganalysis.h:14
static void ShapeGenerating(TPZVec< REAL > &pt, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
Computes the generating shape functions for a quadrilateral element.
Definition: pzshapequad.cpp:67