NeoPZ
pzquad.h
Go to the documentation of this file.
1 
7 #ifndef INTQUADHPP
8 #define INTQUADHPP
9 
10 #include <iostream>
11 
12 #include "pzreal.h"
13 template<class T>
14 class TPZVec;
15 template<class T, int N>
17 
18 class TPZIntRuleT3D;
19 class TPZIntRuleP3D;
20 
21 #include "tpzintrulet.h"
22 #include "tpzintpoints.h"
23 #include "tpzprinteg.h"
24 
29 //*******************************************************************
30 // Base Class TInt1D - which handles the integration
31 // for 1D problems
32 //*******************************************************************
36 class TPZInt1d : public TPZIntPoints {
37  int fOrdKsi;
39 public:
40  enum {Dim = 1};
41  TPZInt1d(int OrdK = 0,int type = 0);
42  TPZInt1d(const TPZInt1d &copy ) : TPZIntPoints(copy), fOrdKsi(copy.fOrdKsi), fIntP(copy.fIntP) {
43  }
44  TPZInt1d &operator=(const TPZInt1d &copy)
45  {
46  fOrdKsi = copy.fOrdKsi;
47  fIntP = copy.fIntP;
48  return *this;
49  }
50  virtual ~TPZInt1d() {
51  }
52  virtual int NPoints() const;
53  virtual void Point(int ip, TPZVec<REAL> &pos, REAL &w) const;
54 
55  virtual void SetType(int type,int order) {
56  fIntP->SetType(type,order);
57  }
58  virtual void SetOrder(TPZVec<int> &ord,int type = 0);
59  virtual void GetOrder(TPZVec<int> &ord) const;
60  virtual int GetRealMaxOrder() const;
61 
67  virtual int GetMaxOrder() const{
68  return 36;
69  }
70 
71  virtual int Dimension() const
72  {
73  return Dim;
74  }
75 
76  virtual TPZIntPoints *PrismExtend(int order)
77  {
78  return new TPZPrInteg<TPZInt1d>(order);
79  }
80  virtual TPZIntPoints *Clone() const
81  {
82  return new TPZInt1d(*this);
83  }
84 
85  void Print(std::ostream &out = std::cout) const {
86  if(fIntP) fIntP->Print(out);
87  }
88 
90  void Name(std::string &name) const {
91  name = "TPZInt1D";
92  }
93 };
94 
95 //*******************************************************************
96 // Base Class TPZIntTriang - which handles the integration
97 // for 2D problems, triangle elements
98 //*******************************************************************
102 class TPZIntTriang : public TPZIntPoints{
103 
104 protected:
105  int fOrdKsi;
107 
108 public:
109  enum {Dim = 2};
110  TPZIntTriang(int OrdK = 2);
111  TPZIntTriang(const TPZIntTriang &copy) : TPZIntPoints(copy), fOrdKsi(copy.fOrdKsi), fIntKsi(copy.fIntKsi) {
112  }
114  {
116  fOrdKsi = copy.fOrdKsi;
117  fIntKsi = copy.fIntKsi;
118  return *this;
119  }
120  virtual ~TPZIntTriang() {
121  }
122 
123  virtual int NPoints() const;
124  virtual void Point(int ip, TPZVec<REAL> &pos, REAL &w) const;
125 
126  virtual void SetOrder(TPZVec<int> &ord,int type = 0);
127  virtual void GetOrder(TPZVec<int> &ord) const;
128  virtual int GetMaxOrder() const;
129  virtual int Dimension() const
130  {
131  return Dim;
132  }
133 
134  virtual TPZIntPoints *PrismExtend(int order)
135  {
136  return new TPZPrInteg<TPZIntTriang>(order);
137  }
138  virtual TPZIntPoints *Clone() const
139  {
140  return new TPZIntTriang(*this);
141  }
142 
144  void Name(std::string &name) const {
145  name = "TPZIntTriang";
146  }
147 };
148 
149 //*******************************************************************
150 // Base Class TPZIntQuad - which handles the integration
151 // for 2D problems, quadrilaterals elements
152 //*******************************************************************
156 class TPZIntQuad : public TPZIntPoints{
157  int fOrdKsi;
158  int fOrdEta;
161 public:
162  enum {Dim = 2};
168  TPZIntQuad(int OrdK,int OrdE);
169 
170  TPZIntQuad(int OrdK = 1);
171 
173  TPZIntQuad(const TPZIntQuad &copy) : TPZIntPoints(copy), fOrdKsi(copy.fOrdKsi), fOrdEta(copy.fOrdEta), fIntKsi(copy.fIntKsi),fIntEta(copy.fIntEta) {
174  }
176  {
178  fOrdKsi = copy.fOrdKsi;
179  fOrdEta = copy.fOrdEta;
180  fIntKsi = copy.fIntKsi;
181  fIntEta = copy.fIntEta;
182  return *this;
183  }
185  virtual ~TPZIntQuad() {
186  }
187 
188  virtual int NPoints() const;
189  virtual void Point(int ip, TPZVec<REAL> &pos, REAL &w) const;
190 
192  // type 0 : Gauss Legendre
193  // type 1 : Gauss Lobatto
194  // type 2 : Jacobi
195  // type 3 : Chebyshev
196  virtual void SetType(int type,int order) {
197  fIntKsi->SetType(type,order);
198  fIntEta->SetType(type,order);
199  }
200 
202  // type 0 : Gauss Legendre
203  // type 1 : Gauss Lobatto
204  // type 2 : Jacobi
205  // type 3 : Chebyshev
206  virtual void SetOrder(TPZVec<int> &ord,int type = 0);
207 
209  virtual void GetOrder(TPZVec<int> &ord) const;
210  virtual int GetRealMaxOrder() const;
211 
217  virtual int GetMaxOrder() const{
218  return 36;
219  }
220 
221  virtual int Dimension() const
222  {
223  return Dim;
224  }
225 
226  virtual TPZIntPoints *PrismExtend(int order)
227  {
228  return new TPZPrInteg<TPZIntQuad>(order);
229  }
230  virtual TPZIntPoints* Clone() const
231  {
232  return new TPZIntQuad(*this);
233  }
234 
236  void Name(std::string &name) const {
237  name = "TPZIntQuad";
238  }
239 };
240 
241 
246 class TPZIntCube3D : public TPZIntPoints{
247  int fOrdKsi;
248  int fOrdEta;
249  int fOrdZeta;
253 public:
254  enum {Dim = 3};
261  TPZIntCube3D(int OrdK = 2,int OrdE = 2,int OrdZ = 2);
263  TPZIntCube3D(const TPZIntCube3D &copy) : TPZIntPoints(copy), fOrdKsi(copy.fOrdKsi), fOrdEta(copy.fOrdEta), fOrdZeta(copy.fOrdZeta),
264  fIntKsi(copy.fIntKsi), fIntEta(copy.fIntEta), fIntZeta(copy.fIntZeta) {
265  }
266 
268  {
270  fOrdKsi = copy.fOrdKsi;
271  fOrdEta = copy.fOrdEta;
272  fOrdZeta = copy.fOrdZeta;
273  fIntKsi = copy.fIntKsi;
274  fIntEta = copy.fIntEta;
275  fIntZeta = copy.fIntZeta;
276  return *this;
277  }
278 
280  virtual ~TPZIntCube3D() {
281  }
282 
283  virtual int NPoints() const;
284  virtual void Point(int ip, TPZVec<REAL> &pos, REAL &w) const;
285 
286  virtual void SetType(int type,int order) {
287  fIntKsi->SetType(type,order);
288  fIntEta->SetType(type,order);
289  fIntZeta->SetType(type,order);
290  }
291  virtual void SetOrder(TPZVec<int> &ord,int type = 0);
292  virtual void GetOrder(TPZVec<int> &ord) const;
293  virtual int GetRealMaxOrder() const;
294  virtual int GetMaxOrder() const{
295  return 20; // With this order the number of integration points are 8000
296  }
297 
298  virtual int Dimension() const
299  {
300  return Dim;
301  }
302 
303  virtual TPZIntPoints *PrismExtend(int order)
304  {
305  return new TPZPrInteg<TPZIntCube3D>(order);
306  }
307  virtual TPZIntPoints *Clone() const
308  {
309  return new TPZIntCube3D(*this);
310  }
311 
313  void Name(std::string &name) const {
314  name = "TPZIntCube3D";
315  }
316 };
317 
318 
322 class TPZIntTetra3D : public TPZIntPoints {
323  int fOrdKsi;
325 public:
326  enum {Dim = 3};
327  TPZIntTetra3D(int OrdK = 2);
328  TPZIntTetra3D(const TPZIntTetra3D &copy) : TPZIntPoints(copy), fOrdKsi(copy.fOrdKsi), fIntKsi(copy.fIntKsi) {
329  }
330 
332  {
334  fOrdKsi = copy.fOrdKsi;
335  fIntKsi = copy.fIntKsi;
336  return *this;
337  }
338 
339  virtual int NPoints() const;
340  virtual void Point(int ip, TPZVec<REAL> &pos, REAL &w) const;
341 
342  virtual void SetOrder(TPZVec<int> &ord,int type = 0);
343  virtual void GetOrder(TPZVec<int> &ord) const;
344  virtual int GetMaxOrder() const;
345  virtual int Dimension() const
346  {
347  return Dim;
348  }
349 
350  virtual TPZIntPoints *PrismExtend(int order)
351  {
352  return new TPZPrInteg<TPZIntTetra3D>(order);
353  }
354  virtual TPZIntPoints* Clone() const
355  {
356  return new TPZIntTetra3D(*this);
357  }
358 
360  void Name(std::string &name) const {
361  name = "TPZIntTetra3D";
362  }
363 };
364 
365 
369 class TPZIntPyram3D : public TPZIntPoints {
370  int fOrdKsi;
372 public:
373  enum {Dim =3};
374  TPZIntPyram3D(int OrdK = 2);
375  TPZIntPyram3D(const TPZIntPyram3D &copy) : TPZIntPoints(copy), fOrdKsi(copy.fOrdKsi),
376  fIntKsi(copy.fIntKsi) {
377  }
378 
380  {
382  fOrdKsi = copy.fOrdKsi;
383  fIntKsi = copy.fIntKsi;
384  return *this;
385  }
386 
387  virtual int NPoints() const;
388  virtual void Point(int ip, TPZVec<REAL> &pos, REAL &w) const;
389 
390  virtual void SetOrder(TPZVec<int> &ord,int type = 0);
391  virtual void GetOrder(TPZVec<int> &ord) const;
392  virtual int GetMaxOrder() const;
393  virtual int Dimension() const
394  {
395  return Dim;
396  }
397 
398  virtual TPZIntPoints *PrismExtend(int order)
399  {
400  return new TPZPrInteg<TPZIntPyram3D>(order);
401  }
403  {
404  return new TPZIntPyram3D(*this);
405  }
406 
408  void Name(std::string &name) const {
409  name = "TPZIntPyram3D";
410  }
411 };
412 
417 class TPZIntPrism3D : public TPZIntPoints {
421 public:
422 
423  enum {Dim = 3};
429  TPZIntPrism3D(int OrdK = 2,int OrdL = 2);
431  TPZIntPrism3D(const TPZIntPrism3D &copy) : TPZIntPoints(copy), fOrdKsi(copy.fOrdKsi), fOrdKti(copy.fOrdKti),
432  fIntRule1D(copy.fIntRule1D), fIntTriang(copy.fIntTriang) {
433  }
435  {
437  fOrdKsi = copy.fOrdKsi;
438  fOrdKti = copy.fOrdKti;
439  fIntRule1D = copy.fIntRule1D;
440  fIntTriang = copy.fIntTriang;
441  return *this;
442  }
444  virtual ~TPZIntPrism3D();
445 
446  int NPoints() const;
447  void Point(int ip, TPZVec<REAL> &pos, REAL &w) const;
448 
449  virtual void SetType(int type,int order) {
450  fIntRule1D.SetType(type,order);
451  }
452  void SetOrder(TPZVec<int> &ord,int type = 0);
453  void GetOrder(TPZVec<int> &ord) const;
454  virtual int GetMaxOrder() const;
455  virtual int Dimension() const
456  {
457  return Dim;
458  }
459 
460  virtual TPZIntPoints *PrismExtend(int order)
461  {
462  return new TPZPrInteg<TPZIntPrism3D>(order);
463  }
465  {
466  return new TPZIntPrism3D(*this);
467  }
468 
470  void Name(std::string &name) const {
471  name = "TPZIntPrism3D";
472  }
473 };
474 
478 class TPZInt1Point : public TPZIntPoints {
479 
480 public:
481 
482  enum {Dim = 0};
483  TPZInt1Point(int order = 0);
484 
485  TPZInt1Point(const TPZInt1Point &copy ) : TPZIntPoints(copy) {
486  }
488  {
490  return *this;
491  }
492  virtual ~TPZInt1Point();
493 
494  int NPoints() const;
495  void Point(int ip, TPZVec<REAL> &pos, REAL &w) const;
496 
497  void SetOrder(TPZVec<int> &ord,int type = 0);
498  void GetOrder(TPZVec<int> &ord) const;
499  int GetMaxOrder() const;
500  int Dimension() const {
501  return Dim;
502  }
503 
504  TPZIntPoints *PrismExtend(int order);
505  TPZIntPoints *Clone() const {
506  return new TPZInt1Point(*this);
507  }
508 
510  virtual void Name(std::string &name) const {
511  name = "TPZInt1Point";
512  }
513 };
514 
516 {
517 }
518 
520 }
521 
522 inline int TPZInt1Point::NPoints() const{
523  return 1;
524 }
525 
526 inline void TPZInt1Point::Point(int ip, TPZVec<REAL> &pos, REAL &w) const {
527 #ifndef NODEBUG
528  if(ip!=0) {
529  std::cout << "TPZInt1Point:: Bad number point " << ip << std::endl;
530  return;
531  }
532 #endif
533  w = 1.;
534 }
535 
536 inline void TPZInt1Point::SetOrder(TPZVec<int> &ord,int type) {
537 }
538 
539 inline void TPZInt1Point::GetOrder(TPZVec<int> &/* ord */) const {
540 }
541 
542 inline int TPZInt1Point::GetMaxOrder() const {
543  return 1;
544 }
545 
547  return new TPZPrInteg<TPZInt1Point> (order);
548 }
549 
552 #endif
Integration rule (points and weights) for triangles. Numerical Integration.
Definition: tpzintrulet.h:18
virtual TPZIntPoints * PrismExtend(int order)
Definition: pzquad.h:226
int fOrdKsi
Definition: pzquad.h:247
virtual void Point(int ip, TPZVec< REAL > &pos, REAL &w) const
Returns i-th point at master element and related weight.
Definition: pzquad.cpp:101
void SetType(int &type, int order)
Sets a gaussian quadrature: 0 - Gauss Legendre, 1 - Gauss Lobatto, 2 - Gauss Jacobi with alpha = beta...
TPZInt1d(const TPZInt1d &copy)
Definition: pzquad.h:42
virtual ~TPZInt1Point()
Definition: pzquad.h:519
virtual TPZIntPoints * PrismExtend(int order)
Definition: pzquad.h:350
Contains the TPZPrInteg class which defines prismatic extension of an integration rule...
TPZGaussRule * fIntKsi
Definition: pzquad.h:250
TPZIntPoints * Clone() const
Make a clone of the related cubature rule.
Definition: pzquad.h:402
virtual void Name(std::string &name) const
Returns the name of the cubature rule.
Definition: pzquad.h:510
TPZIntRuleT * fIntKsi
Definition: pzquad.h:106
Handles the numerical integration for two-dimensional problems using triangular elements. Numerical Integration.
Definition: pzquad.h:102
virtual TPZIntPoints * Clone() const
Make a clone of the related cubature rule.
Definition: pzquad.h:80
Implements a vector class which allows to use external storage provided by the user. Utility.
Definition: pzquad.h:16
virtual TPZIntPoints * Clone() const
Make a clone of the related cubature rule.
Definition: pzquad.h:307
TPZIntTriang(const TPZIntTriang &copy)
Definition: pzquad.h:111
void Name(std::string &name) const
Returns the name of the cubature rule.
Definition: pzquad.h:360
int fOrdKsi
Definition: pzquad.h:157
void SetOrder(TPZVec< int > &ord, int type=0)
Sets the order of the cubature rule.
Definition: pzquad.h:536
TPZIntPrism3D(const TPZIntPrism3D &copy)
Copy constructor.
Definition: pzquad.h:431
TPZIntRuleP3D * fIntKsi
Definition: pzquad.h:371
TPZIntQuad & operator=(const TPZIntQuad &copy)
Definition: pzquad.h:175
TPZIntPoints & operator=(const TPZIntPoints &copy)
Definition: tpzintpoints.h:35
TPZGaussRule * fIntP
Definition: pzquad.h:38
Handles the numerical integration for three-dimensional problems using cube elements. Numerical Integration.
Definition: pzquad.h:246
int GetMaxOrder() const
Returns the minimum order to integrate polinomials exactly for all implemented cubature rules...
Definition: pzquad.h:542
int fOrdKsi
Definition: pzquad.h:323
Contains the TPZIntRuleT class which defines integration rule for triangles based on Linbo Zhang&#39;s pa...
TPZIntTetra3D(const TPZIntTetra3D &copy)
Definition: pzquad.h:328
TPZIntCube3D & operator=(const TPZIntCube3D &copy)
Definition: pzquad.h:267
TPZInt1d(int OrdK=0, int type=0)
Definition: pzquad.cpp:90
TPZIntTriang & operator=(const TPZIntTriang &copy)
Definition: pzquad.h:113
virtual int Dimension() const
Returns the dimension of the master element related for the cubature rule.
Definition: pzquad.h:221
virtual int GetMaxOrder() const
Definition: pzquad.h:67
virtual ~TPZInt1d()
Definition: pzquad.h:50
virtual int Dimension() const
Returns the dimension of the master element related for the cubature rule.
Definition: pzquad.h:71
Integration rule for pyramid. Numerical Integration.
Definition: tpzintrulep3d.h:17
void Name(std::string &name) const
Returns the name of the cubature rule.
Definition: pzquad.h:408
TPZIntCube3D(const TPZIntCube3D &copy)
Copy constructor.
Definition: pzquad.h:263
void Name(std::string &name) const
Returns the name of the cubature rule.
Definition: pzquad.h:90
TPZInt1d & operator=(const TPZInt1d &copy)
Definition: pzquad.h:44
virtual int Dimension() const
Returns the dimension of the master element related for the cubature rule.
Definition: pzquad.h:298
virtual TPZIntPoints * PrismExtend(int order)
Definition: pzquad.h:460
virtual ~TPZIntQuad()
Destructor.
Definition: pzquad.h:185
virtual int Dimension() const
Returns the dimension of the master element related for the cubature rule.
Definition: pzquad.h:345
virtual TPZIntPoints * PrismExtend(int order)
Definition: pzquad.h:303
virtual ~TPZIntTriang()
Definition: pzquad.h:120
void Name(std::string &name) const
Returns the name of the cubature rule.
Definition: pzquad.h:470
int fOrdKti
Definition: pzquad.h:418
This class implements a simple vector storage scheme for a templated class T. Utility.
Definition: pzgeopoint.h:19
Handles the numerical integration for three-dimensional problems using pyramid elements. Numerical Integration.
Definition: pzquad.h:369
Integration rule for tetrahedra. Numerical Integration.
Definition: tpzintrulet3d.h:17
Handles the numerical integration for one-dimensional problems. Numerical Integration.
Definition: pzquad.h:36
virtual int GetRealMaxOrder() const
Definition: pzquad.cpp:58
virtual void SetType(int type, int order)
Sets the type of gaussian quadrature as Lobatto, Raud or Legendre rule.
Definition: pzquad.h:286
int NPoints() const
Returns number of points for the cubature rule related.
Definition: pzquad.h:522
TPZIntPyram3D(const TPZIntPyram3D &copy)
Definition: pzquad.h:375
Abstract class defining integration rules. Numerical Integration.
Definition: tpzintpoints.h:19
virtual TPZIntPoints * Clone() const
Make a clone of the related cubature rule.
Definition: pzquad.h:138
TPZIntRuleT3D * fIntKsi
Definition: pzquad.h:324
void GetOrder(TPZVec< int > &ord) const
Gets the order of the integration rule for each dimension of the master element.
Definition: pzquad.h:539
void Point(int ip, TPZVec< REAL > &pos, REAL &w) const
Returns i-th point at master element and related weight.
Definition: pzquad.h:526
Handles the numerical integration for two-dimensional problems using quadrilateral elements...
Definition: pzquad.h:156
virtual int Dimension() const
Returns the dimension of the master element related for the cubature rule.
Definition: pzquad.h:455
TPZIntTriang fIntTriang
Definition: pzquad.h:420
int fOrdKsi
Definition: pzquad.h:105
virtual int Dimension() const
Returns the dimension of the master element related for the cubature rule.
Definition: pzquad.h:129
void Name(std::string &name) const
Returns the name of the cubature rule.
Definition: pzquad.h:144
Handles the numerical integration for three-dimensional problems using prism elements. Numerical Integration This cubature rule uses a cubature rule for one dimension (zeta) and a cubature rule for triangle (base).
Definition: pzquad.h:417
int fOrdEta
Definition: pzquad.h:248
TPZInt1Point(const TPZInt1Point &copy)
Definition: pzquad.h:485
int fOrdKsi
Definition: pzquad.h:37
TPZIntPoints * Clone() const
Make a clone of the related cubature rule.
Definition: pzquad.h:505
virtual int NPoints() const
Returns number of points for the cubature rule related.
Definition: pzquad.cpp:95
TPZIntQuad(const TPZIntQuad &copy)
Copy constructor.
Definition: pzquad.h:173
TPZGaussRule * fIntZeta
Definition: pzquad.h:252
int fOrdKsi
Definition: pzquad.h:370
virtual TPZIntPoints * Clone() const
Make a clone of the related cubature rule.
Definition: pzquad.h:230
virtual int GetMaxOrder() const
Definition: pzquad.h:217
virtual TPZIntPoints * Clone() const
Make a clone of the related cubature rule.
Definition: pzquad.h:354
virtual void SetType(int type, int order)
Sets the type of gaussian quadrature as Lobatto, Raud or Legendre rule.
Definition: pzquad.h:449
TPZGaussRule * fIntEta
Definition: pzquad.h:251
virtual int GetMaxOrder() const
Returns the minimum order to integrate polinomials exactly for all implemented cubature rules...
Definition: pzquad.h:294
TPZIntPoints * Clone() const
Make a clone of the related cubature rule.
Definition: pzquad.h:464
void Name(std::string &name) const
Returns the name of the cubature rule.
Definition: pzquad.h:236
TPZInt1Point(int order=0)
Definition: pzquad.h:515
TPZIntPoints * PrismExtend(int order)
Definition: pzquad.h:546
virtual void GetOrder(TPZVec< int > &ord) const
Gets the order of the integration rule for each dimension of the master element.
Definition: pzquad.cpp:125
void Print(std::ostream &out=std::cout)
Prints the number of integration points, all points and weights (as one dimension) ...
TPZIntTetra3D & operator=(const TPZIntTetra3D &copy)
Definition: pzquad.h:331
virtual ~TPZIntCube3D()
Destructor.
Definition: pzquad.h:280
Integration rule for one point. Numerical Integration.
Definition: pzquad.h:478
TPZGaussRule * fIntKsi
Definition: pzquad.h:159
TPZGaussRule * fIntEta
Definition: pzquad.h:160
void Print(std::ostream &out=std::cout) const
Prints information of the cubature rule.
Definition: pzquad.h:85
virtual void SetType(int type, int order)
Set the order and the type of integration rule :
Definition: pzquad.h:196
int Dimension() const
Returns the dimension of the master element related for the cubature rule.
Definition: pzquad.h:500
TPZInt1Point & operator=(const TPZInt1Point &copy)
Definition: pzquad.h:487
int fOrdKsi
Definition: pzquad.h:418
virtual void SetType(int type, int order)
Sets the type of gaussian quadrature as Lobatto, Raud or Legendre rule.
Definition: pzquad.h:55
Contains the TPZIntPoints class which defines integration rules.
TPZIntPrism3D & operator=(const TPZIntPrism3D &copy)
Definition: pzquad.h:434
virtual TPZIntPoints * PrismExtend(int order)
Definition: pzquad.h:398
Contains the declaration of TPZFlopCounter class and TPZCounter struct.
virtual TPZIntPoints * PrismExtend(int order)
Definition: pzquad.h:76
TPZIntPyram3D & operator=(const TPZIntPyram3D &copy)
Definition: pzquad.h:379
Prismatic extension of an integration rule. Numerical Integration.
Definition: tpzprinteg.h:23
int fOrdEta
Definition: pzquad.h:158
void Name(std::string &name) const
Returns the name of the cubature rule.
Definition: pzquad.h:313
int fOrdZeta
Definition: pzquad.h:249
Handles the numerical integration for three-dimensional problems using tetraedra elements. Numerical Integration.
Definition: pzquad.h:322
virtual TPZIntPoints * PrismExtend(int order)
Definition: pzquad.h:134
TPZInt1d fIntRule1D
Definition: pzquad.h:419
Implements the Gaussian quadrature. Numerical Integration Abstract class.
Definition: tpzgaussrule.h:19
virtual int Dimension() const
Returns the dimension of the master element related for the cubature rule.
Definition: pzquad.h:393
virtual void SetOrder(TPZVec< int > &ord, int type=0)
Sets the order of the cubature rule.
Definition: pzquad.cpp:113