NeoPZ
tpzquadraticpyramid.h
Go to the documentation of this file.
1 
5 #ifndef TPZQUADRATICPYRAMID_H
6 #define TPZQUADRATICPYRAMID_H
7 
8 
9 #include "pzgeopyramid.h"
10 #include "pzgeoel.h"
11 #include "pznoderep.h"
12 
13 #include <iostream>
14 
22 namespace pzgeom {
23 
24  class TPZQuadraticPyramid : public pzgeom::TPZNodeRep<13,pztopology::TPZPyramid> {
25 
26  public:
28  enum {NNodes = 13};
29 
30  public:
31 int ClassId() const override;
32 
33 
34  //virtual void ParametricDomainNodeCoord(int node, TPZVec<REAL> &nodeCoord);
35 
36  static bool IsLinearMapping(int side)
37  {
38  return false;
39  }
40 
44  {
45  }
46 
49  {
50  }
51 
52  TPZQuadraticPyramid(const TPZQuadraticPyramid &cp,std::map<int64_t,int64_t> & gl2lcNdMap) : TPZRegisterClassId(&TPZQuadraticPyramid::ClassId),
53  pzgeom::TPZNodeRep<NNodes,pztopology::TPZPyramid>(cp,gl2lcNdMap)
54  {
55  }
56 
60  {
61  }
62 
65  {
66  }
67 
69  static std::string TypeName() { return "Pyramid";}
70 
72  static void Shape(TPZVec<REAL> &loc,TPZFMatrix<REAL> &phi,TPZFMatrix<REAL> &dphi){
73  TShape(loc, phi, dphi);
74  }
75 
76 
77  template<class T>
78  static void TShape(const TPZVec<T> &param,TPZFMatrix<T> &phi,TPZFMatrix<T> &dphi);
79 
80  template<class T>
81  static void X(const TPZFMatrix<REAL> &coord, TPZVec<T> &par, TPZVec< T > &result);
82 
84  template<class T>
85  static void GradX(const TPZFMatrix<REAL> &nodes,TPZVec<T> &par, TPZFMatrix<T> &gradx);
86 
88  // static TPZGeoEl *CreateGeoElement(TPZGeoMesh &mesh, MElementType type,
89  // TPZVec<int64_t>& nodeindexes,
90  // int matid, int64_t& index);
91 
92  static void InsertExampleElement(TPZGeoMesh &gmesh, int matid, TPZVec<REAL> &lowercorner, TPZVec<REAL> &size);
93 
94  // TPZGeoEl *CreateBCGeoEl(TPZGeoEl *orig,int side,int bc);
95  };
96 
97 };
98 
99 #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
TPZPyramid()
Default constructor.
Definition: tpzpyramid.h:46
TPZQuadraticPyramid(const TPZQuadraticPyramid &cp, TPZGeoMesh &)
static bool IsLinearMapping(int side)
static void X(const TPZFMatrix< REAL > &coord, TPZVec< T > &par, TPZVec< T > &result)
static std::string TypeName()
Returns the type name of the element.
Groups all classes defining the structure of the master element.
Definition: PrismExtend.cpp:15
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.
Contains the TPZNodeRep class which implements ... Clase intermediaria que guarda.
Implements ... Geometry Topology.
Definition: pznoderep.h:40
TPZQuadraticPyramid(const TPZQuadraticPyramid &cp, std::map< int64_t, int64_t > &gl2lcNdMap)
This class implements a geometric mesh for the pz environment. Geometry.
Definition: pzgmesh.h:48
int ClassId() const override
CreateGeoElement -> TPZQuadraticPyramid.
pztopology::TPZPyramid Top
Contains the TPZGeoPyramid class which implements the geometry of pyramid element.
TPZQuadraticPyramid(TPZVec< int64_t > &nodeindexes)
static void GradX(const TPZFMatrix< REAL > &nodes, TPZVec< T > &par, TPZFMatrix< T > &gradx)
Compute gradient of X mapping from element nodes and local parametric coordinates.
TPZQuadraticPyramid(const TPZQuadraticPyramid &cp)
Groups all classes which model the geometry.
Definition: pzgeopoint.cpp:18
static void TShape(const TPZVec< T > &param, TPZFMatrix< T > &phi, TPZFMatrix< T > &dphi)
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.