NeoPZ
Classes | Functions | Variables
The Numerical Integration classes.

Defines integration rules for lines, quadrilaterals, triangles, cubes, tetrahedra, pyramids and prisms. More...

Classes

class  TPZInt1d
 Handles the numerical integration for one-dimensional problems. Numerical Integration. More...
 
class  TPZIntTriang
 Handles the numerical integration for two-dimensional problems using triangular elements. Numerical Integration. More...
 
class  TPZIntQuad
 Handles the numerical integration for two-dimensional problems using quadrilateral elements. Numerical Integration. More...
 
class  TPZIntCube3D
 Handles the numerical integration for three-dimensional problems using cube elements. Numerical Integration. More...
 
class  TPZIntTetra3D
 Handles the numerical integration for three-dimensional problems using tetraedra elements. Numerical Integration. More...
 
class  TPZIntPyram3D
 Handles the numerical integration for three-dimensional problems using pyramid elements. Numerical Integration. More...
 
class  TPZIntPrism3D
 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). More...
 
class  TPZInt1Point
 Integration rule for one point. Numerical Integration. More...
 
class  TPZGaussRule
 Implements the Gaussian quadrature. Numerical Integration Abstract class. More...
 
class  TPZIntPoints
 Abstract class defining integration rules. Numerical Integration. More...
 
class  TPZIntRuleList
 Creates instances of all integration rules for rapid selection. Numerical Integration. More...
 
class  TPZIntRuleP3D
 Integration rule for pyramid. Numerical Integration. More...
 
class  TPZIntRuleT
 Integration rule (points and weights) for triangles. Numerical Integration. More...
 
class  TPZIntRuleT3D
 Integration rule for tetrahedra. Numerical Integration. More...
 
class  TPZPrInteg< TFather >
 Prismatic extension of an integration rule. Numerical Integration. More...
 

Functions

 TPZInt1Point::TPZInt1Point (int order=0)
 
virtual TPZInt1Point::~TPZInt1Point ()
 
int TPZInt1Point::NPoints () const
 Returns number of points for the cubature rule related. More...
 
void TPZInt1Point::Point (int ip, TPZVec< REAL > &pos, REAL &w) const
 Returns i-th point at master element and related weight. More...
 
void TPZInt1Point::SetOrder (TPZVec< int > &ord, int type=0)
 Sets the order of the cubature rule. More...
 
void TPZInt1Point::GetOrder (TPZVec< int > &ord) const
 Gets the order of the integration rule for each dimension of the master element. More...
 
int TPZInt1Point::GetMaxOrder () const
 Returns the minimum order to integrate polinomials exactly for all implemented cubature rules. More...
 
TPZIntPointsTPZInt1Point::PrismExtend (int order)
 

Variables

static TPZIntRuleList TPZIntRuleList::gIntRuleList
 Static variable with list of all integration rules. More...
 

Auxiliar methods to evaluate the Jacobi polinomial

long double machinePrecision ()
 
long double gamma (unsigned int n)
 Evaluate the factorial of a integer. More...
 
long double gamma (long double x)
 Evaluates the Gamma function for a real number x, Gamma(x). The computation is based on an algorithm outlined in "An Overview of Software Development for Special Functions, in Numerical Analysis" (Dundee, 1975) by William Cody. More...
 

Detailed Description

Defines integration rules for lines, quadrilaterals, triangles, cubes, tetrahedra, pyramids and prisms.

Allow the user to define the order of the polynomial, the rule should be able to integrate exactly.

All the computations into this module use and return long double values. Because the precision of the points and weights will be right and are independent of the typedef REAL definition.

Function Documentation

◆ gamma() [1/2]

long double gamma ( unsigned int  n)

◆ gamma() [2/2]

long double gamma ( long double  x)

Evaluates the Gamma function for a real number x, Gamma(x). The computation is based on an algorithm outlined in "An Overview of Software Development for Special Functions, in Numerical Analysis" (Dundee, 1975) by William Cody.

Parameters
xreal number to evaluate Gamma(x)
Note
The implementation uses rational functions that approximate the gamma function as long double precision (19 significant digits).

Evaluates the Gamma function for a real number x, Gamma(x)

Definition at line 575 of file tpzgaussrule.cpp.

References exp, log, and test::res.

◆ GetMaxOrder()

int TPZInt1Point::GetMaxOrder ( ) const
inlinevirtual

Returns the minimum order to integrate polinomials exactly for all implemented cubature rules.

Note
To get real maxime order for especific rule call GetRealMaxOrder(), but for Gauss rule 1D the implementation can to compute a cubature rule up to on hundred order.

TPZIntPoints method that returns a coherent maxime order to work It is necessary because now can to be computed rule with integration points up to one thousand.

Reimplemented from TPZIntPoints.

Definition at line 542 of file pzquad.h.

◆ GetOrder()

void TPZInt1Point::GetOrder ( TPZVec< int > &  ord) const
inlinevirtual

Gets the order of the integration rule for each dimension of the master element.

Parameters
ordVector (3d) to get the orders of the polinomial integrated exactly.

Implements TPZIntPoints.

Definition at line 539 of file pzquad.h.

◆ machinePrecision()

long double machinePrecision ( )

Returns the machine precision of the computer's arithmetic as long double number

Definition at line 552 of file tpzgaussrule.cpp.

References PZINTEGRAL_MAXITERATIONS_ALLOWED.

Referenced by TPZGaussRule::ComputingGaussJacobiQuadrature(), TPZGaussRule::ComputingGaussLegendreQuadrature(), and TPZGaussRule::SetParametersJacobi().

◆ NPoints()

int TPZInt1Point::NPoints ( ) const
inlinevirtual

Returns number of points for the cubature rule related.

Implements TPZIntPoints.

Definition at line 522 of file pzquad.h.

◆ Point()

void TPZInt1Point::Point ( int  i,
TPZVec< REAL > &  pos,
REAL &  w 
) const
inlinevirtual

Returns i-th point at master element and related weight.

Parameters
iIndex of the integration point at cubature rule (the sequence is not important)
posVector (3d) to get the coordinates of the point at master element.
wIt gets the weight related with integration point.

Implements TPZIntPoints.

Definition at line 526 of file pzquad.h.

◆ PrismExtend()

TPZIntPoints * TPZInt1Point::PrismExtend ( int  order)
inlinevirtual

Implements TPZIntPoints.

Definition at line 546 of file pzquad.h.

◆ SetOrder()

void TPZInt1Point::SetOrder ( TPZVec< int > &  ord,
int  type = 0 
)
inlinevirtual

Sets the order of the cubature rule.

Parameters
ordVector of orders for each dimension, to reach a exactly integration for polinomial corresponding
typeType of the integration rule, mainly important for 1d rules.

Implements TPZIntPoints.

Definition at line 536 of file pzquad.h.

◆ TPZInt1Point()

TPZInt1Point::TPZInt1Point ( int  order = 0)
inline

Definition at line 515 of file pzquad.h.

◆ ~TPZInt1Point()

TPZInt1Point::~TPZInt1Point ( )
inlinevirtual

Definition at line 519 of file pzquad.h.

Variable Documentation

◆ gIntRuleList

TPZIntRuleList TPZIntRuleList::gIntRuleList
static