NeoPZ
tpzquadraticcube.h
Go to the documentation of this file.
1 
6 #ifndef TPZQUADRATICCUBE_H
7 #define TPZQUADRATICCUBE_H
8 
9 
10 #include "TPZGeoCube.h"
11 #include "pzgeoel.h"
12 #include "pznoderep.h"
13 
14 #include <iostream>
15 
23 namespace pzgeom {
24 
25  class TPZQuadraticCube : public pzgeom::TPZNodeRep<20,pztopology::TPZCube> {
26 
27  public:
30  enum {NNodes = 20};
31 
32  public:
33 int ClassId() const override;
34 
35 
36  //virtual void ParametricDomainNodeCoord(int node, TPZVec<REAL> &nodeCoord);
37 
41  pzgeom::TPZNodeRep<NNodes,pztopology::TPZCube>(nodeindexes)
42  {
43  }
47  {
48  }
50  TPZQuadraticCube(const TPZQuadraticCube &cp,std::map<int64_t,int64_t> & gl2lcNdMap) : TPZRegisterClassId(&TPZQuadraticCube::ClassId),
51  pzgeom::TPZNodeRep<NNodes,pztopology::TPZCube>(cp,gl2lcNdMap)
52  {
53  }
57  {
58  }
62  {
63  }
64 
66  static std::string TypeName() { return "Hexa";}
67 
68  static bool IsLinearMapping(int side)
69  {
70  return false;
71  }
72 
74  static void Shape(TPZVec<REAL> &loc,TPZFMatrix<REAL> &phi,TPZFMatrix<REAL> &dphi){
75  TShape(loc, phi, dphi);
76  }
77 
78 
79  template<class T>
80  static void TShape(const TPZVec<T> &x,TPZFMatrix<T> &phi,TPZFMatrix<T> &dphi);
81 
83  template<class T>
84  static void X(const TPZFMatrix<REAL> &coord, TPZVec<T> &par, TPZVec<T> &result);
85 
87  template<class T>
88  static void GradX(const TPZFMatrix<REAL> &nodes,TPZVec<T> &loc, TPZFMatrix<T> &gradx);
89 
91  // static TPZGeoEl *CreateGeoElement(TPZGeoMesh &mesh, MElementType type,
92  // TPZVec<int64_t>& nodeindexes,
93  // int matid, int64_t& index);
94 
95  static void InsertExampleElement(TPZGeoMesh &gmesh, int matid, TPZVec<REAL> &lowercorner, TPZVec<REAL> &size);
96 
97  // TPZGeoEl *CreateBCGeoEl(TPZGeoEl *orig,int side,int bc);
98  };
99 
100 };
101 
102 #endif
TPZQuadraticCube(const TPZQuadraticCube &cp, TPZGeoMesh &)
Copy constructor.
static void X(const TPZFMatrix< REAL > &coord, TPZVec< T > &par, TPZVec< T > &result)
Compute X mapping from element nodes and local parametric coordinates.
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.
Defines the topology of the hexahedron element. Topology Sides 0 to 7 are vertices, sides 8 to 19 are lines, 20 to 25 are quadrilaterals and side 26 is the hexahedra (cube).
Definition: tpzcube.h:38
Groups all classes defining the structure of the master element.
Definition: PrismExtend.cpp:15
TPZQuadraticCube(TPZVec< int64_t > &nodeindexes)
Constructor from node indexes.
TPZCube()
Default constructor.
Definition: tpzcube.h:49
static bool IsLinearMapping(int side)
static std::string TypeName()
Returns the type name of the element.
Contains the TPZNodeRep class which implements ... Clase intermediaria que guarda.
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.
Implements ... Geometry Topology.
Definition: pznoderep.h:40
Contains the TPZGeoCube class which implements the geometry of hexahedra element. ...
This class implements a geometric mesh for the pz environment. Geometry.
Definition: pzgmesh.h:48
static void TShape(const TPZVec< T > &x, TPZFMatrix< T > &phi, TPZFMatrix< T > &dphi)
TPZQuadraticCube()
Default constructor.
pztopology::TPZCube Top
TPZQuadraticCube(const TPZQuadraticCube &cp, std::map< int64_t, int64_t > &gl2lcNdMap)
Copy constructor from node map.
int ClassId() const override
Define the class id associated with the class.
Groups all classes which model the geometry.
Definition: pzgeopoint.cpp:18
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.
TPZQuadraticCube(const TPZQuadraticCube &cp)
Copy constructor.