NeoPZ
pzelctemp.cpp
Go to the documentation of this file.
1 
6 #include "pzelctemp.h"
7 #include "pzquad.h"
8 #include "pzgeoel.h"
9 #include "TPZMaterial.h"
10 #include "pzlog.h"
11 #include "pzcmesh.h"
12 
13 #ifdef LOG4CXX
14 static LoggerPtr logger(Logger::getLogger("pz.mesh.tpzintelgen"));
15 #endif
16 
17 template<class TSHAPE>
19 TPZInterpolatedElement(mesh,gel,index), fConnectIndexes(TSHAPE::NSides,-1) {
20 
21  for(int i=0; i<TSHAPE::NSides; i++) fConnectIndexes[i]=-1;
22  // RemoveSideRestraintsII(EInsert);
23  gel->SetReference(this);
24  int matid = gel->MaterialId();
25 #ifdef PZDEBUG
26  if (mesh.FindMaterial(matid) == 0) {
27  DebugStop();
28  }
29 #endif
30  for(int i=0;i<TSHAPE::NSides;i++) {
32  mesh.ConnectVec()[fConnectIndexes[i]].IncrementElConnected();
33  }
34 
36 
37 
38 }
39 
40 template<class TSHAPE>
42 TPZInterpolatedElement(mesh,gel,index),fConnectIndexes(TSHAPE::NSides,-1)
43 {
44  fPreferredOrder = -1;
45 }
46 
47 template<class TSHAPE>
51 }
52 
53 
54 template<class TSHAPE>
56  const TPZIntelGen<TSHAPE> &copy,
57  std::map<int64_t,int64_t> & gl2lcConMap,
58  std::map<int64_t,int64_t> & gl2lcElMap) :
60 TPZInterpolatedElement(mesh,copy,gl2lcElMap), fConnectIndexes(TSHAPE::NSides,-1), fIntRule(copy.fIntRule)
61 {
62 
64  int i;
65  for(i=0;i<TSHAPE::NSides;i++)
66  {
67  int64_t lcIdx = -1;
68  int64_t glIdx = copy.fConnectIndexes[i];
69  if (gl2lcConMap.find(glIdx) != gl2lcConMap.end()) lcIdx = gl2lcConMap[glIdx];
70  else
71  {
72  std::stringstream sout;
73  sout << "ERROR in : " << __PRETTY_FUNCTION__
74  << " trying to clone the connect index: " << glIdx
75  << " wich is not in mapped connect indexes!";
76  LOGPZ_ERROR(logger, sout.str().c_str());
77  fConnectIndexes[i] = -1;
78  return;
79  }
80  fConnectIndexes[i] = lcIdx;
81  }
82 }
83 
84 
85 template<class TSHAPE>
88 TPZInterpolatedElement(), fConnectIndexes(TSHAPE::NSides,-1), fIntRule() {
89  fPreferredOrder = -1;
90  int i;
91  for(i=0;i<TSHAPE::NSides;i++) {
92  fConnectIndexes[i] = -1;
93  }
94 }
95 
96 template<class TSHAPE>
98  TPZGeoEl *gel = Reference();
99  if (gel) {
100  TPZCompEl *cel = gel->Reference();
101  if (cel == this) {
103  }
105  }
106  TPZStack<int64_t > connectlist;
107  BuildConnectList(connectlist);
108  int64_t nconnects = connectlist.size();
109  for (int ic = 0; ic < nconnects; ic++) {
110  if (connectlist[ic] != -1){
111  fMesh->ConnectVec()[connectlist[ic]].DecrementElConnected();
112  }
113  }
114 }
115 
116 template<class TSHAPE>
118  return TSHAPE::Type();
119 }
120 
121 template<class TSHAPE>
122 void TPZIntelGen<TSHAPE>::SetConnectIndex(int i, int64_t connectindex){
123 #ifndef NODEBUG
124  if(i<0 || i>= TSHAPE::NSides) {
125  std::cout << " TPZIntelGen<TSHAPE>::SetConnectIndex index " << i <<
126  " out of range\n";
127  return;
128  }
129 #endif
130  fConnectIndexes[i] = connectindex;
131 }
132 
133 template<class TSHAPE>
134 int TPZIntelGen<TSHAPE>::NConnectShapeF(int connect, int order) const{
135 
136  if(connect < TSHAPE::NCornerNodes) return TSHAPE::NConnectShapeF(connect,0);
137  if(order < 0) return 0;
138  int nshape = TSHAPE::NConnectShapeF(connect, order);
139 #ifdef PZDEBUG
140  if(nshape < 0 )
141  {
142  nshape = TSHAPE::NConnectShapeF(connect, order);
143  DebugStop();
144  }
145 #endif
146  return nshape;
147 }
148 
149 template<class TSHAPE>
151  TPZManVector<int,3> order(TSHAPE::Dimension,ord);
152  fIntRule.SetOrder(order);
153 }
154 
155 template<class TSHAPE>
157  return TSHAPE::NContainedSides(side);
158 }
159 
160 template<class TSHAPE>
161 int TPZIntelGen<TSHAPE>::SideConnectLocId(int node, int side) const {
162  return TSHAPE::ContainedSideLocId(side,node);
163 }
164 
166 template<class TSHAPE>
168  fPreferredOrder = order;
169 }
170 
172 template<class TSHAPE>
174  ord.Resize(TSHAPE::NSides-TSHAPE::NCornerNodes);
175  int i;
176  for(i=0; i<TSHAPE::NSides-TSHAPE::NCornerNodes; i++) {
177  ord[i] = Connect(i+TSHAPE::NCornerNodes).Order();
178  }
179 }
180 
182 template<class TSHAPE>
184  if(side < TSHAPE::NCornerNodes) return 0;
185  if(side<TSHAPE::NSides) {
186  int order =fPreferredOrder;
187  return AdjustPreferredSideOrder(side,order);
188  }
189  PZError << "TPZIntelgen::PreferredSideOrder called for side = " << side << "\n";
190  return 0;
191 
192 }
193 
194 template<class TSHAPE>
195 int64_t TPZIntelGen<TSHAPE>::ConnectIndex(int con) const{
196 
197 #ifndef NODEBUG
198  if(con<0 || con>= NConnects()) {
199  std::cout << "TPZIntelgen::ConnectIndex wrong parameter con " << con <<
200  " NSides " << TSHAPE::NSides << " NConnects " << NConnects() << std::endl;
201  DebugStop();
202  }
203 
204 #endif
205  return fConnectIndexes[con];
206 }
207 
208 
209 
214 template<class TSHAPE>
216 {
217  fPreferredOrder = order;
218 }
219 
221 template<class TSHAPE>
222 void TPZIntelGen<TSHAPE>::SetSideOrder(int side, int order) {
223  if(side<0 || side >= TSHAPE::NSides || (side >= TSHAPE::NCornerNodes && order <1)) {
224  PZError << "TPZIntelGen::SetSideOrder. Bad paramenter side " << side << " order " << order << std::endl;
225  DebugStop();
226 #ifdef LOG4CXX
227  std::stringstream sout;
228  sout << __PRETTY_FUNCTION__ << " Bad side or order " << side << " order " << order;
229  LOGPZ_ERROR(logger,sout.str())
230 #endif
231  return;
232  }
233  if(side>= TSHAPE::NCornerNodes) {
234  if(fConnectIndexes[side] == -1) return;
235  int prevorder = fPreferredOrder;
236  if (ConnectIndex(TSHAPE::NSides-1) != -1) {
237  prevorder = EffectiveSideOrder(TSHAPE::NSides-1);
238  }
239  TPZConnect &c = Connect(side);
240  int previousconnectorder = c.Order();
241  if (order != previousconnectorder)
242  {
243  c.SetOrder(order,ConnectIndex(side));
244  int64_t seqnum = c.SequenceNumber();
245  int nvar = 1;
246  TPZMaterial * mat = Material();
247  if(mat) nvar = mat->NStateVariables();
248  int nshape = TSHAPE::NConnectShapeF(side, order);
249  c.SetNShape(nshape);
250  c.SetNState(nvar);
251  Mesh()->Block().Set(seqnum,nshape*nvar);
252  TPZGeoElSide gelside(Reference(),side);
254  gelside.EqualLevelCompElementList(equal, 1, 0);
255  int64_t neq = equal.size();
256  for (int64_t eq=0; eq<neq; eq++) {
257  TPZInterpolatedElement *intel = dynamic_cast<TPZInterpolatedElement*>(equal[eq].Element());
258  intel->AdjustIntegrationRule();
259  }
260  }
261 
262  int neworder = prevorder;
263  if (ConnectIndex(TSHAPE::NSides-1) != -1) {
264  neworder = EffectiveSideOrder(TSHAPE::NSides-1);
265  }
266  if(neworder != prevorder) {
268  }
269  }
270 }
271 
273 template<class TSHAPE>
275  if(side < TSHAPE::NCornerNodes || side >= TSHAPE::NSides) return 0;
276  if(fConnectIndexes[side] == -1)
277  {
278  std::stringstream sout ;
279  sout << __PRETTY_FUNCTION__ << " side " << side << std::endl;
280  //Print(sout);
281 #ifdef LOG4CXX
282  LOGPZ_ERROR(logger,sout.str());
283 #else
284  std::cout << sout.str() << std::endl;
285 #endif
286  DebugStop();
287  return -1;
288  }
289  TPZStack<int> lowdim;
290  Reference()->LowerDimensionSides(side,lowdim);
291  TPZConnect &c = Connect(side);
292  int order = c.Order();
293  for (int is=0; is<lowdim.size(); is++) {
294  TPZConnect &c = MidSideConnect(lowdim[is]);
295  if(c.Order() > order) order = c.Order();
296  }
297  return order;
298 }
300 template<class TSHAPE>
301 int TPZIntelGen<TSHAPE>::ConnectOrder(int connect) const {
302  return Connect(connect).Order();
303 }
304 
306 template<class TSHAPE>
308 
309  int nc = TSHAPE::NContainedSides(side);
310  int nn = TSHAPE::NSideNodes(side);
312  TPZManVector<int,27> order(nc-nn);
313  int n,c;
314  TPZGeoEl *ref = Reference();
315  for (n=0;n<nn;n++){
316  int nodloc = TSHAPE::SideNodeLocId(side,n);
317  id [n] = ref->NodePtr(nodloc)->Id();
318  }
319  for (c=nn;c<nc;c++){
320  int conloc = TSHAPE::ContainedSideLocId(side,c);
321  order[c-nn] = Connect(conloc).Order();
322  }
323  TSHAPE::SideShape(side, point, id, order, phi, dphi);
324 }
325 
326 template<class TSHAPE>
328  TPZManVector<int64_t,TSHAPE::NCornerNodes> id(TSHAPE::NCornerNodes,0);
329  TPZManVector<int, TSHAPE::NSides-TSHAPE::NCornerNodes+1> ord(TSHAPE::NSides-TSHAPE::NCornerNodes,0);
330  int i;
331  TPZGeoEl *ref = Reference();
332  for(i=0; i<TSHAPE::NCornerNodes; i++) {
333  id[i] = ref->NodePtr(i)->Id();
334  }
335  for(i=0; i<TSHAPE::NSides-TSHAPE::NCornerNodes; i++) {
336  ord[i] = Connect(i+TSHAPE::NCornerNodes).Order();
337  }
338  TSHAPE::Shape(pt,id,ord,phi,dphi);
339 }
340 
342 template<class TSHAPE>
344  return TSHAPE::TransformSideToElement(side);
345 }
346 
348 template<class TSHAPE>
349 void TPZIntelGen<TSHAPE>::Write(TPZStream &buf, int withclassid) const
350 {
351  TPZInterpolatedElement::Write(buf,withclassid);
352  TPZManVector<int,3> order(3,0);
353  fIntRule.GetOrder(order);
354  buf.Write(order);
355  buf.Write(fConnectIndexes.begin(),TSHAPE::NSides);
356  buf.Write(&fPreferredOrder,1);
357  int classid = this->ClassId();
358  buf.Write ( &classid, 1 );
359 }
360 
362 template<class TSHAPE>
363 void TPZIntelGen<TSHAPE>::Read(TPZStream &buf, void *context)
364 {
365  TPZInterpolatedElement::Read(buf,context);
366  TPZManVector<int,3> order;
367  buf.Read(order);
368  fIntRule.SetOrder(order);
369  buf.Read(fConnectIndexes.begin(),TSHAPE::NSides);
370  buf.Read(&fPreferredOrder,1);
371  int classid = -1;
372  buf.Read( &classid, 1 );
373  if ( classid != this->ClassId())
374  {
375  std::stringstream sout;
376  sout << "ERROR - " << __PRETTY_FUNCTION__
377  << " trying to restore an object id " << this->ClassId() << " for an package of id = " << classid;
378  LOGPZ_ERROR ( logger, sout.str().c_str() );
379  }
380 }
381 
382 using namespace pzshape;
383 
384 #include "pzshapepoint.h"
385 #include "pzshapelinear.h"
386 #include "pzshapetriang.h"
387 #include "pzshapequad.h"
388 #include "pzshapecube.h"
389 #include "pzshapetetra.h"
390 #include "pzshapeprism.h"
391 #include "pzshapepiram.h"
392 #include "pzshapepiramHdiv.h"
393 template<>
395  if(dimension == 0) std::cout << "A point element has no graphical representation\n";
396 }
397 
398 template<class TSHAPE>
400  if(dimension == TSHAPE::Dimension /* && Material()->Id() > 0 */) {
401  new typename TSHAPE::GraphElType(this,&grafgrid);
402  }
403 }
404 
405 #ifndef BORLAND
415 #endif
416 
417 #include "TPZRefCube.h"
418 
419 #include "TPZRefLinear.h"
420 #include "pzrefquad.h"
421 
422 #include "pzgeoquad.h"
423 
424 #include "pzreftriangle.h"
425 #include "pzgeotriangle.h"
426 
427 #include "pzrefprism.h"
428 #include "pzgeoprism.h"
429 
430 #include "pzreftetrahedra.h"
431 #include "pzgeotetrahedra.h"
432 
433 #include "pzrefpyram.h"
434 #include "pzgeopyramid.h"
435 #include "pzrefpoint.h"
436 #include "pzgeopoint.h"
437 #include "pzgraphelq2dd.h"
438 #include "tpzgraphelt3d.h"
439 #include "pzgraphel1dd.h"
440 #include "pztrigraphd.h"
441 #include "pzgraphelq3dd.h"
442 #include "tpzgraphelprismmapped.h"
443 #include "tpzgraphelpyramidmapped.h"
444 #include "tpzgraphelt2dmapped.h"
445 
446 
447 
448 #include "tpzpoint.h"
449 #include "tpzline.h"
450 #include "tpzquadrilateral.h"
451 #include "tpztriangle.h"
452 #include "tpzcube.h"
453 #include "tpztetrahedron.h"
454 #include "tpzprism.h"
455 #include "tpzpyramid.h"
456 
457 template class TPZIntelGen<TPZShapeTriang>;
458 template class TPZIntelGen<TPZShapePoint>;
459 template class TPZIntelGen<TPZShapeLinear>;
460 template class TPZIntelGen<TPZShapeQuad>;
461 template class TPZIntelGen<TPZShapeTetra>;
462 template class TPZIntelGen<TPZShapePrism>;
463 template class TPZIntelGen<TPZShapePiram>;
464 template class TPZIntelGen<TPZShapePiramHdiv>;
465 template class TPZIntelGen<TPZShapeCube>;
466 
Represents a graphical mesh used for post processing purposes. Post processing.
Definition: pzgraphmesh.h:34
Contains TPZShapeTetra class which implements the shape functions of a tetrahedral element...
Contains the TPZGraphElTd class which implements the graphical discontinuous triangular element...
Contains the TPZInt1d, TPZIntTriang, TPZIntQuad, TPZIntCube3D, TPZIntTetra3D, TPZIntPyram3D and TPZIn...
Contains declaration of TPZIntelGen class which implements a generic computational element...
virtual void LowerDimensionSides(int side, TPZStack< int > &smallsides) const =0
virtual int ConnectOrder(int connect) const
Returns the actual interpolation order of the polynomial for a connect.
Definition: pzelctemp.cpp:301
virtual void SideShapeFunction(int side, TPZVec< REAL > &point, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) override
Compute the values of the shape function of the side.
Definition: pzelctemp.cpp:307
int Set(const int index, const int dim, const int pos=-1)
Modifies existing block dimensions or creates a new block with given index.
Definition: pzblock.cpp:104
Represents a set of shape functions associated with a computational element/side. Computational Eleme...
Definition: pzconnect.h:30
TPZGeoNode * NodePtr(int i) const
Returns a pointer to the ith node of the element.
Definition: pzgeoel.cpp:2566
Contains definitions to LOGPZ_DEBUG, LOGPZ_INFO, LOGPZ_WARN, LOGPZ_ERROR and LOGPZ_FATAL, and the implementation of the inline InitializePZLOG(string) function using log4cxx library or not. It must to be called out of "#ifdef LOG4CXX" scope.
virtual int64_t ConnectIndex(int node) const override
Returns the index of the ith connectivity of the element.
Definition: pzelctemp.cpp:195
int MaterialId() const
Returns the material index of the element.
Definition: pzgeoel.h:250
void Write(TPZStream &buf, int withclassid) const override
Saves the element data to a stream.
Definition: pzintel.cpp:1940
virtual void BuildConnectList(std::set< int64_t > &indepconnectlist, std::set< int64_t > &depconnectlist)
Builds the list of all connectivities related to the element including the connects pointed to by dep...
Definition: pzcompel.cpp:435
void SetOrder(int order, int64_t index)
Set the order of the shapefunction associated with the connect.
Definition: pzconnect.h:168
virtual int NConnectShapeF(int connect, int order) const override
Returns the number of shapefunctions associated with a connect.
Definition: pzelctemp.cpp:134
clarg::argInt dimension("-d", "Matrices dimension M x M", 1000)
groups all classes dedicated to the computation of shape functions
Definition: pzshapeextend.h:16
virtual void SetIntegrationRule(int ord) override
Definition: pzelctemp.cpp:150
virtual void SetPreferredOrder(int order) override
Sets the preferred interpolation order along a side.
Definition: pzelctemp.cpp:215
int AdjustPreferredSideOrder(int side, int order)
Adjusts the preferredSideOrder for faces.
Definition: pzintel.cpp:1755
Contains the TPZPoint class which defines the topology of a point.
Contains the TPZRefQuad class which implements the uniform refinement of a geometric quadrilateral el...
virtual void RemoveSideRestraintsII(MInsertMode mode)
Delete the restraints on the nodes of the connected elements if necessary.
Definition: pzintel.cpp:1286
virtual int NStateVariables() const =0
Returns the number of state variables associated with the material.
virtual int ClassId() const override
returns the unique identifier for reading/writing objects to streams
Definition: pzelctemp.h:155
Utility class which represents an element with its side. The Geometric approximation classes Geometry...
Definition: pzgeoelside.h:83
virtual void Read(TPZStream &buf, void *context) override
Reads the element data from a stream.
Definition: pzelctemp.cpp:363
virtual int64_t CreateMidSideConnect(int side)
Verify the neighbours of the element and create a node along this side.
Definition: pzintel.cpp:654
void EqualLevelCompElementList(TPZStack< TPZCompElSide > &elsidevec, int onlyinterpolated, int removeduplicates)
Returns all connected computational elements which have equal level to the current element...
Contains the TPZTriangle class which defines the topology of a triangle.
Contains TPZShapeLinear class which implements the shape functions of a linear one-dimensional elemen...
Contains the TPZRefPyramid class which implements the uniform refinement of a geometric hexahedral el...
Contains the TPZTetrahedron class which defines the topology of the tetrahedron element.
void Read(TPZStream &buf, void *context) override
Reads the element data from a stream.
Definition: pzintel.cpp:1945
virtual int NConnects() const override
Returns the number of connect objects of the element.
Definition: pzelctemp.h:67
This abstract class defines the behaviour which each derived class needs to implement.
Definition: TPZMaterial.h:39
Contains TPZShapeCube class which implements the shape functions of a hexaedral element.
virtual TPZMaterial * Material() const
Identify the material object associated with the element.
Definition: pzcompel.cpp:959
virtual void GetInterpolationOrder(TPZVec< int > &ord) override
Identifies the interpolation order on the interior of the element.
Definition: pzelctemp.cpp:173
int64_t size() const
Returns the number of elements of the vector.
Definition: pzvec.h:196
virtual void Resize(const int64_t newsize, const T &object)
Resizes the vector object reallocating the necessary storage, copying the existing objects to the new...
Definition: pzvec.h:373
Contains the TPZRefPrism class which implements the uniform refinement of a geometric prism element...
unsigned char Order() const
Access function to return the order associated with the connect.
Definition: pzconnect.h:217
int64_t SequenceNumber() const
Returns the Sequence number of the connect object.
Definition: pzconnect.h:158
Contains the TPZGraphElT3d class which implements the graphical representation of a tetrahedra elemen...
virtual void Write(const bool val)
Definition: TPZStream.cpp:8
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
Definition: pzgeoel.h:43
Contains the TPZGraphElQ2dd class which implements the graphical two-dimensional discontinuous elemen...
Contains the TPZGeoTetrahedra class which implements the geometry of a tetrahedral element...
#define DebugStop()
Returns a message to user put a breakpoint in.
Definition: pzerror.h:20
virtual TPZConnect & MidSideConnect(int is) const
Returns a reference to the connect in the middle of the side.
Definition: pzintel.cpp:94
Contains the TPZGraphElPrismMapped class which implements the graphical element for a prism using a d...
TPZCompMesh * Mesh() const
Return a pointer to the grid of the element.
Definition: pzcompel.cpp:288
void SetNState(int nstate)
Set the number of state variables.
Definition: pzconnect.h:196
Contains the TPZQuadrilateral class which defines the topology of a quadrilateral element...
void CreateGraphicalElement(TPZGraphMesh &grafgrid, int dimension) override
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to ge...
Definition: pzelctemp.cpp:399
TPZMaterial * FindMaterial(int id)
Find the material with identity id.
Definition: pzcmesh.cpp:297
TPZCompEl * Reference() const
Return a pointer to the element referenced by the geometric element.
Definition: pzgeoel.h:750
void Shape(TPZVec< REAL > &pt, TPZVec< int > orders, TPZVec< TPZTransform< REAL > > &transvec, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
virtual void SetInterpolationOrder(int order)
Sets the interpolation order for the interior of the element.
Definition: pzelctemp.cpp:167
void SetNShape(int nshape)
Set the number of shape functions associated with the connect.
Definition: pzconnect.h:205
const TPZBlock< STATE > & Block() const
Access the block structure of the solution vector.
Definition: pzcmesh.h:213
virtual void SetConnectIndex(int i, int64_t connectindex) override
Sets the node pointer of node i to nod.
Definition: pzelctemp.cpp:122
void Shape(TPZVec< REAL > &pt, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) override
Computes the shape function set at the point x.
Definition: pzelctemp.cpp:327
Contains the TPZGraphElPyramidMapped class which implements the graphical element for a pyramid using...
TPZAdmChunkVector< TPZConnect > & ConnectVec()
Return a reference to the connect pointers vector.
Definition: pzcmesh.h:198
T * begin() const
Casting operator. Returns The fStore pointer.
Definition: pzvec.h:450
virtual ~TPZIntelGen()
Definition: pzelctemp.cpp:97
Contains TPZShapePoint class which implements the shape function associated with a point...
#define LOGPZ_ERROR(A, B)
Define log for errors (cout)
Definition: pzlog.h:93
Contains declaration of TPZCompMesh class which is a repository for computational elements...
Contains TPZShapePiram class which implements the shape functions of a pyramid element. author: Nathan Shauer date: 01/04/2015.
virtual MElementType Type() override
Return the type of the element.
Definition: pzelctemp.cpp:117
virtual TPZConnect & Connect(int i) const
Returns a pointer to the ith node.
Definition: pzcompel.cpp:298
Contains the TPZPyramid class which defines the topology of a pyramid element.
virtual void SetSideOrder(int side, int order) override
Sets the interpolation order of side to order.
Definition: pzelctemp.cpp:222
Contains the TPZGeoPoint class which implements the geometry of a point element or 0-D element...
Contains TPZShapePrism class which implements the shape functions of a prism element.
Contains the TPZRefTriangle class which implements the uniform refinement of a geometric triangular e...
TPZManVector< int64_t, TSHAPE::NSides > fConnectIndexes
Indexes of the connects associated with the elements.
Definition: pzelctemp.h:25
Contains the TPZRefTetrahedra class which implements the uniform refinement of a geometric tetrahedra...
TPZGeoEl * Reference() const
Return a pointer to the corresponding geometric element if such exists, return 0 otherwise.
Definition: pzcompel.cpp:1137
MElementType
Define the element types.
Definition: pzeltype.h:52
void ResetReference()
Reset the element referenced by the geometric element to NULL.
Definition: pzgeoel.h:431
TPZTransform TransformSideToElement(int side) override
Returns the transformation which transform a point from the side to the interior of the element...
Definition: pzelctemp.cpp:343
Implements computational mesh. Computational Mesh.
Definition: pzcmesh.h:47
TSHAPE::IntruleType fIntRule
Integration rule associated with the topology of the element.
Definition: pzelctemp.h:28
virtual int SideConnectLocId(int node, int side) const override
Returns the local node number of icon along is.
Definition: pzelctemp.cpp:161
void SetReference(TPZCompEl *elp)
Make the current element reference to the computational element.
Definition: pzgeoel.h:746
Contains the TPZGraphElT2dMapped class which implements a graphical element for a triangle mapped int...
Contains the TPZRefLinear class which implements the uniform refinement of a geometric linear element...
Contains TPZShapePiram class which implements the shape functions of a pyramid element.
Contains the TPZGeoPyramid class which implements the geometry of pyramid element.
int Id() const
Returns the identity of the current node.
Definition: pzgnode.h:68
Defines the interface for saving and reading data. Persistency.
Definition: TPZStream.h:50
Contains the TPZGraphEl1dd class which implements the graphical one dimensional discontinuous element...
Implements an affine transformation between points in parameter space. Topology Utility.
Definition: pzmganalysis.h:14
Contains the TPZGeoPrism class which implements the geometry of a prism element.
Contains the TPZCube class which defines the topology of the hexahedron element.
virtual int PreferredSideOrder(int iside) override
Returns the preferred order of the polynomial along side iside.
Definition: pzelctemp.cpp:183
virtual void Write(TPZStream &buf, int withclassid) const override
Saves the element data to a stream.
Definition: pzelctemp.cpp:349
Contains the TPZLine class which defines the topology of a line element.
virtual int NSideConnects(int side) const override
Returns the number of dof nodes along side iside.
Definition: pzelctemp.cpp:156
int fPreferredOrder
Preferred polynomial order.
virtual void AdjustIntegrationRule()
Adjust the integration rule according to the polynomial order of shape functions. ...
Contains the TPZPrism class which defines the topology of a Prism.
Defines the interface of a computational element. Computational Element.
Definition: pzcompel.h:59
virtual int EffectiveSideOrder(int side) const override
Returns the actual interpolation order of the polynomial along the side.
Definition: pzelctemp.cpp:274
Contains TPZShapeQuad class which implements the shape functions of a quadrilateral element...
Contains the TPZRefCube class which implements the uniform refinement of a geometric hexahedral eleme...
Contains the TPZGraphElQ3dd class which implements the graphical three dimensional discontinuous elem...
Contains the TPZRefPoint class which implements the uniform refinement of a geometric point element...
Contains TPZShapeTriang class which implements the shape functions of a triangular element...
Implements computational element based on an interpolation space. Computational Element.
Definition: pzintel.h:27
Implements an interface to register a class id and a restore function. Persistence.
Definition: TPZSavable.h:150
#define PZError
Defines the output device to error messages and the DebugStop() function.
Definition: pzerror.h:15
TPZCompMesh * fMesh
Computational mesh to which the element belongs.
Definition: pzcompel.h:64
virtual void Read(bool &val)
Definition: TPZStream.cpp:91
Implements a generic computational element. Computational Element.
Definition: pzelctemp.h:20