NeoPZ
tpzquadraticquad.h
Go to the documentation of this file.
1 
6 #ifndef TPZQUADRATICQUAD_H
7 #define TPZQUADRATICQUAD_H
8 
9 #include "pzgeoquad.h"
10 #include "pzgeoel.h"
11 #include "pznoderep.h"
12 
13 #include <iostream>
14 
15 namespace pzgeom {
16 
23  class TPZQuadraticQuad : public pzgeom::TPZNodeRep<8,pztopology::TPZQuadrilateral> {
24 
25  public:
28  enum {NNodes = 8};
29 
30  public:
31 int ClassId() const override;
32 
33 
34  //virtual void ParametricDomainNodeCoord(int node, TPZVec<REAL> &nodeCoord);
35 
40  {
41  }
45  {
46  }
48  TPZQuadraticQuad(const TPZQuadraticQuad &cp,std::map<int64_t,int64_t> & gl2lcNdMap) : TPZRegisterClassId(&TPZQuadraticQuad::ClassId),
50  {
51  }
55  {
56  }
61  {
62  }
63 
67  static std::string TypeName() { return "Quad";}
68 
69  static bool IsLinearMapping(int side)
70  {
71  return false;
72  }
73 
79  // static TPZGeoEl * CreateBCGeoEl(TPZGeoEl *orig,int side,int bc);
80 
82  static void Shape(TPZVec<REAL> &loc,TPZFMatrix<REAL> &phi,TPZFMatrix<REAL> &dphi){
83  TShape(loc, phi, dphi);
84  }
85 
86  /* brief compute the coordinate of a point given in parameter space */
87 // template<class T>
88 // void X(const TPZGeoEl &gel,TPZVec<T> &loc,TPZVec<T> &result) const
89 // {
90 // TPZFNMatrix<3*NNodes> coord(3,NNodes);
91 // CornerCoordinates(gel, coord);
92 // X(coord,loc,result);
93 // }
94 
96 // template<class T>
97 // void GradX(const TPZGeoEl &gel, TPZVec<T> &loc, TPZFMatrix<T> &gradx) const
98 // {
99 // TPZFNMatrix<3*NNodes> coord(3,NNodes);
100 // CornerCoordinates(gel, coord);
101 // GradX(coord,loc,gradx);
102 // }
103 
104  template<class T>
105  static void TShape(const TPZVec<T> &param,TPZFMatrix<T> &phi,TPZFMatrix<T> &dphi);
106 
107  template<class T>
108  static void X(const TPZFMatrix<REAL> &coord, TPZVec<T> &par, TPZVec<T> &result);
109 
111  template<class T>
112  static void GradX(const TPZFMatrix<REAL> &nodes,TPZVec<T> &loc, TPZFMatrix<T> &gradx);
113 
117  // static TPZGeoEl *CreateGeoElement(TPZGeoMesh &mesh, MElementType type,
118  // TPZVec<int64_t>& nodeindexes,
119  // int matid,
120  // int64_t& index);
121 
122  static void InsertExampleElement(TPZGeoMesh &gmesh, int matid, TPZVec<REAL> &lowercorner, TPZVec<REAL> &size);
123 
124 };
125 
126 };
127 
128 #endif
pztopology::TPZQuadrilateral Top
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.
static void TShape(const TPZVec< T > &param, TPZFMatrix< T > &phi, TPZFMatrix< T > &dphi)
Compute gradient of x mapping from local parametric coordinates.
static void X(const TPZFMatrix< REAL > &coord, TPZVec< T > &par, TPZVec< T > &result)
TPZQuadraticQuad(const TPZQuadraticQuad &cp)
Copy constructor.
TPZQuadraticQuad()
Default constructor.
int ClassId() const override
CreateGeoElement -> TPZQuadraticQuad.
static void Shape(TPZVec< REAL > &loc, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
Method which creates a geometric boundary condition element based on the current geometric element...
Groups all classes defining the structure of the master element.
Definition: PrismExtend.cpp:15
TPZQuadraticQuad(const TPZQuadraticQuad &cp, TPZGeoMesh &)
Copy constructor.
Contains the TPZNodeRep class which implements ... Clase intermediaria que guarda.
Defines a quadrilateral geometric element with quadratic map. Geometry.
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.
Implements ... Geometry Topology.
Definition: pznoderep.h:40
static std::string TypeName()
Returns the type name of the element.
This class implements a geometric mesh for the pz environment. Geometry.
Definition: pzgmesh.h:48
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.
TPZQuadraticQuad(const TPZQuadraticQuad &cp, std::map< int64_t, int64_t > &gl2lcNdMap)
Constructor over node map.
Groups all classes which model the geometry.
Definition: pzgeopoint.cpp:18
TPZQuadrilateral()
Default constructor.
static bool IsLinearMapping(int side)
TPZQuadraticQuad(TPZVec< int64_t > &nodeindexes)
Constructor from node indexes.