# PYRAMID_RULE Generate a Quadrature Rule for a Pyramid

PYRAMID_RULE is a FORTRAN90 program which generates a quadrature rule over the interior of the unit pyramid in 3D.

The quadrature rules generated by PYRAMID_RULE are all examples of conical product rules, and involve a kind of direct product of the form:

Legendre rule in X * Legendre rule in Y * Jacobi rule in Z
where the Jacobi rule includes a factor of (1-Z)^2.

The integration region is:

```       - ( 1 - Z ) <= X <= 1 - Z
- ( 1 - Z ) <= Y <= 1 - Z
0 <= Z <= 1.
```
When Z is zero, the integration region is a square lying in the (X,Y) plane, centered at (0,0,0) with "radius" 1. As Z increases to 1, the radius of the square diminishes, and when Z reaches 1, the square has contracted to the single point (0,0,1).

### Usage:

pyramid_rule legendre_order jacobi_order filename
where
• legendre_order is the order of the 1D Legendre quadrature rule to be used. The X and Y dimensions will use a product of this rule.
• jacobi_order is the order of the 1D Jacobi quadrature rule to be used. The Z dimension will use this rule which will include a factor of (1-X)^2 which accounts for the narrowing of the pyramid.
• filename is the common prefix for the files containing the region, weight and abscissa information of the quadrature rule;

### Languages:

PYRAMID_RULE is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.

### Related Data and Programs:

CIRCLE_RULE, a FORTRAN90 library which computes quadrature rules over the circumference of the unit circle in 2D.

CUBE_FELIPPA_RULE, a FORTRAN90 library which returns the points and weights of a Felippa quadrature rule over the interior of a cube in 3D.

DISK_RULE, a FORTRAN90 library which computes quadrature rules over the unit disk in 2D.

GEOMETRY, a FORTRAN90 library which performs geometric calculations in 2, 3 and N dimensional space.

JACOBI_RULE, a FORTRAN90 program which can compute and print a Gauss-Jacobi quadrature rule.

LEGENDRE_RULE, a FORTRAN90 program which can compute and print a Gauss-Legendre quadrature rule.

LEGENDRE_RULE_FAST, a FORTRAN90 program which uses a fast (order N) algorithm to compute a Gauss-Legendre quadrature rule of given order.

PYRAMID_EXACTNESS, a FORTRAN90 program which investigates the polynomial exactness of a quadrature rule over the interior of the unit pyramid in 3D.

PYRAMID_FELIPPA_RULE, a FORTRAN90 library which returns Felippa's quadratures rules for approximating integrals over the interior of a pyramid in 3D.

PYRAMID_GRID, a FORTRAN90 library which computes a grid of points over the interior of the unit pyramid in 3D;

PYRAMID_INTEGRALS, a FORTRAN90 library which returns the exact value of the integral of any monomial over the interior of the unit pyramid in 3D.

PYRAMID_MONTE_CARLO, a FORTRAN90 library which applies a Monte Carlo method to estimate integrals of a function over the interior of the unit pyramid in 3D;

QUADRATURE_RULES_PYRAMID, a dataset directory which contains quadrature rules for a pyramid with a square base.

SQUARE_FELIPPA_RULE, a FORTRAN90 library which returns the points and weights of a Felippa quadrature rule over the interior of a square in 2D.

STROUD, a FORTRAN90 library which defines quadrature rules for a variety of unusual areas, surfaces and volumes in 2D, 3D and N-dimensions.

TETRAHEDRON_FELIPPA_RULE, a FORTRAN90 library which returns Felippa's quadratures rules for approximating integrals over the interior of a tetrahedron in 3D.

TRIANGLE_FELIPPA_RULE, a FORTRAN90 library which returns Felippa's quadratures rules for approximating integrals over the interior of a triangle in 2D.

WEDGE_FELIPPA_RULE, a FORTRAN90 library which returns quadratures rules for approximating integrals over the interior of the unit wedge in 3D.

### Reference:

1. Carlos Felippa,
A compendium of FEM integration formulas for symbolic work,
Engineering Computation,
Volume 21, Number 8, 2004, pages 867-890.
2. Arthur Stroud,
Approximate Calculation of Multiple Integrals,
Prentice Hall, 1971,
ISBN: 0130438936,
LC: QA311.S85.

### List of Routines:

• MAIN is the main program for PYRAMID_RULE.
• GET_UNIT returns a free FORTRAN unit number.
• JACOBI_COMPUTE computes a Gauss-Jacobi quadrature rule.
• JACOBI_RECUR finds the value and derivative of a Jacobi polynomial.
• JACOBI_ROOT improves an approximate root of a Jacobi polynomial.
• LEGENDRE_COMPUTE computes a Gauss-Legendre quadrature rule.
• PYRAMID_HANDLE computes the requested pyramid rule and outputs it.
• R8_EPSILON returns the R8 roundoff unit.
• R8_GAMMA evaluates Gamma(X) for a real argument.
• R8MAT_WRITE writes an R8MAT file.
• S_TO_I4 reads an I4 from a string.
• TIMESTAMP prints the current YMDHMS date as a time stamp.

You can go up one level to the FORTRAN90 source codes.

Last revised on 23 July 2009.