NeoPZ
pzshapepiram.h
Go to the documentation of this file.
1 
6 #ifndef SHAPEPIRAMHPP
7 #define SHAPEPIRAMHPP
8 
9 #include "pzfmatrix.h"
10 #include "pzstack.h"
11 #include "pztrnsform.h"
12 #include "tpzpyramid.h"
13 #include "pzshtmat.h"
14 
16 namespace pzshape {
17 
26 
27  public:
28 
41  static void Shape(TPZVec<REAL> &pt, TPZVec<int64_t> &id, TPZVec<int> &order, TPZFMatrix<REAL> &phi,TPZFMatrix<REAL> &dphi);
42 
43  static void SideShape(int side, TPZVec<REAL> &pt, TPZVec<int64_t> &id, TPZVec<int> &order, TPZFMatrix<REAL> &phi,TPZFMatrix<REAL> &dphi);
44 
48  static void ShapeOrder(TPZVec<int64_t> &id, TPZVec<int> &order, TPZGenMatrix<int> &shapeorders);//, TPZVec<int64_t> &sides
49 
54  static void SideShapeOrder(int side, TPZVec<int64_t> &id, int order, TPZGenMatrix<int> &shapeorders);
55 
67  static void ShapeInternal(TPZVec<REAL> &x, int order,TPZFMatrix<REAL> &phi,
68  TPZFMatrix<REAL> &dphi);
75  static void ShapeGenerating(TPZVec<REAL> &pt, TPZFMatrix<REAL> &phi, TPZFMatrix<REAL> &dphi);
76 
83  static void ProjectPoint3dPiramToRib(int rib, TPZVec<REAL> &in, REAL &outval);
84 
91  static void ProjectPoint3dPiramToFace(int face, TPZVec<REAL> &in, TPZVec<REAL> &outval);
92 
104  static void TransformPoint3dPiramFace(int transid, int face, TPZVec<REAL> &in, TPZVec<REAL> &out);
105 
113  static void TransformDerivativeFromRibToPiram(int rib,int num,TPZFMatrix<REAL> &dphi);
114 
122  static void TransformDerivativeFromFaceToPiram(int face,int num,TPZFMatrix<REAL> &dphi);
123 
132  static void TransformDerivativeFace3dPiram(int transid, int face, int num, TPZFMatrix<REAL> &in);
134  static REAL gFaceTrans3dPiram2d[5][2][3];
135 
137  static REAL gRibTrans3dPiram1d[8][3];
138 
140  static REAL gFaceSum3dPiram2d[5][2];
141 
149  static int NConnectShapeF(int side, int order);
150 
157  static int NShapeF(TPZVec<int> &order);
158 
159  int ClassId() const override;
160  static void ShapeInternal(int side, TPZVec<REAL> &x, int order, TPZFMatrix<REAL> &phi, TPZFMatrix<REAL> &dphi);
161  static void ShapeCorner(const TPZVec<REAL> &pt,TPZFMatrix<REAL> &phi,TPZFMatrix<REAL> &dphi);
162  };
163 
164 };
165 
166 #endif
Defines the topology of a Pyramid element. Topology Sides 0 to 4 are vertices, sides 5 to 12 are line...
Definition: tpzpyramid.h:35
static REAL gRibTrans3dPiram1d[8][3]
Data structure which defines the pyramid transformations and topology.
Definition: pzshapepiram.h:137
static void ProjectPoint3dPiramToRib(int rib, TPZVec< REAL > &in, REAL &outval)
Projects a point from the interior of the element to a rib.
groups all classes dedicated to the computation of shape functions
Definition: pzshapeextend.h:16
static REAL gFaceSum3dPiram2d[5][2]
Data structure which defines the pyramid transformations and topology.
Definition: pzshapepiram.h:140
static void TransformDerivativeFace3dPiram(int transid, int face, int num, TPZFMatrix< REAL > &in)
Transform the derivatives of the shapefunction on the shape (i.e. two dimensional derivative) to acou...
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 ProjectPoint3dPiramToFace(int face, TPZVec< REAL > &in, TPZVec< REAL > &outval)
Projects a point from the interior of the element to a face.
static void SideShape(int side, TPZVec< REAL > &pt, TPZVec< int64_t > &id, TPZVec< int > &order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
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 void ShapeCorner(const TPZVec< REAL > &pt, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
Contains TPZMatrixclass which implements full matrix (using column major representation).
static void ShapeGenerating(TPZVec< REAL > &pt, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
Computes the generating shape functions for a quadrilateral element.
Implements the shape functions of a pyramid (3D) element. Shape.
Definition: pzshapepiram.h:25
static void TransformPoint3dPiramFace(int transid, int face, TPZVec< REAL > &in, TPZVec< REAL > &out)
Transforms a point on the face by the corresponding transformation.
Implements generic class which holds a matrix of objects. Matrix.
Definition: pzshtmat.h:18
Contains the TPZPyramid class which defines the topology of a pyramid element.
A simple stack.
static void TransformDerivativeFromRibToPiram(int rib, int num, TPZFMatrix< REAL > &dphi)
Transforms the derivative of a shapefunction computed on the rib into the three dimensional derivativ...
static void ShapeInternal(TPZVec< REAL > &x, int order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
Compute the internal functions of the pyramid shape function at a point .
int ClassId() const override
Define the class id associated with the class.
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...
static int NConnectShapeF(int side, int order)
Number of shapefunctions of the connect associated with the side, considering the order of interpolat...
static int NShapeF(TPZVec< int > &order)
Total number of shapefunctions, considering the order of interpolation of the element.
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 pyramid element.
static void TransformDerivativeFromFaceToPiram(int face, int num, TPZFMatrix< REAL > &dphi)
Transforms the derivative of a shapefunction computed on the face into the three dimensional derivati...
static REAL gFaceTrans3dPiram2d[5][2][3]
Data structure which defines the pyramid transformations and topology.
Definition: pzshapepiram.h:134