GM_RULE
Grundmann-Moeller Quadrature Rules for M-dimensional Simplexes.


GM_RULE is a FORTRAN77 library which defines Grundmann-Moeller quadrature rules for a simplex (generalized triangle) in M dimensions.

The user can choose the spatial dimension M, thus defining the region to be a triangle (M = 2), tetrahedron (M = 3) or a general M-dimensional simplex.

The user chooses the index S of the rule. Rules are available with index S = 0 on up. A rule of index S will exactly integrate any polynomial of total degree 2*S+1 or less.

The rules are defined on the unit M-dimensional simplex. A simple linear transformation can be used to map the vertices and weights to an arbitrary simplex, while preserving the accuracy of the rule.

The formula for the weight involves the ratio of factorials and a high power. Direct evaluation of this formula results in disastrous inaccuracies, even for relatively low order rules. The original code has been revised to take a more cautious and accurate approach to this computation.

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

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

Related Data and Programs:

CUBPACK, a FORTRAN90 library which estimates the integral of a function (or vector of functions) over a collection of M-dimensional hyperrectangles and simplices.

DUNAVANT, a FORTRAN90 library which defines Dunavant rules for quadrature on a triangle.

FEKETE, a FORTRAN90 library which defines Fekete rules for interpolation or quadrature on a triangle.

FELIPPA, a FORTRAN90 library which defines quadrature rules for lines, triangles, quadrilaterals, pyramids, wedges, tetrahedrons and hexahedrons.

KEAST, a FORTRAN90 library which defines quadrature rules for a tetrahedron.

LYNESS_RULE, a FORTRAN90 library which returns Lyness-Jespersen quadrature rules for the triangle.

NCC_TETRAHEDRON, a FORTRAN90 library which defines Newton-Cotes Closed quadrature rules on a tetrahedron.

NCC_TRIANGLE, a FORTRAN90 library which defines Newton-Cotes Closed quadrature rules on a triangle.

NCO_TETRAHEDRON, a FORTRAN90 library which defines Newton-Cotes Open quadrature rules on a tetrahedron.

NCO_TRIANGLE, a FORTRAN90 library which defines Newton-Cotes Open quadrature rules on a triangle.

QUADRATURE_RULES_TET, a dataset directory which contains triples of files defining various quadrature rules on tetrahedrons.

QUADRATURE_RULES_TRI, a dataset directory which contains triples of files defining various quadrature rules on triangles.

SIMPACK, a FORTRAN77 library which approximate the integral of a function or vector of functions over a M-dimensional simplex, or a region which is the sum of M-dimensional simplexes.

SIMPLEX_COORDINATES, a FORTRAN77 library which computes the Cartesian coordinates of the vertices of a regular simplex in M dimensions.

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

TEST_TRI_INT, a FORTRAN90 library which can be used to test algorithms for quadrature over a triangle.

TETRAHEDRON_EXACTNESS, a FORTRAN90 program which investigates the polynomial exactness of a quadrature rule for the tetrahedron.

TETRAHEDRON_MONTE_CARLO, a MATLAB program which uses the Monte Carlo method to estimate integrals over a tetrahedron.

TRIANGLE_EXACTNESS, a FORTRAN90 program which investigates the polynomial exactness of a quadrature rule for the triangle.

TRIANGLE_MONTE_CARLO, a FORTRAN90 program which uses the Monte Carlo method to estimate integrals over a triangle.

WANDZURA, a FORTRAN90 library which definine Wandzura rules for quadrature on a triangle.

Reference:

  1. Paul Bratley, Bennett Fox, Linus Schrage,
    A Guide to Simulation,
    Second Edition,
    Springer, 1987,
    ISBN: 0387964673,
    LC: QA76.9.C65.B73.
  2. Bennett Fox,
    Algorithm 647: Implementation and Relative Efficiency of Quasirandom Sequence Generators,
    ACM Transactions on Mathematical Software,
    Volume 12, Number 4, December 1986, pages 362-376.
  3. Axel Grundmann, Michael Moeller,
    Invariant Integration Formulas for the N-Simplex by Combinatorial Methods,
    SIAM Journal on Numerical Analysis,
    Volume 15, Number 2, April 1978, pages 282-290.
  4. Pierre LEcuyer,
    Random Number Generation,
    in Handbook of Simulation,
    edited by Jerry Banks,
    Wiley, 1998,
    ISBN: 0471134031,
    LC: T57.62.H37.
  5. Peter Lewis, Allen Goodman, James Miller,
    A Pseudo-Random Number Generator for the System/360,
    IBM Systems Journal,
    Volume 8, 1969, pages 136-143.
  6. Albert Nijenhuis, Herbert Wilf,
    Combinatorial Algorithms for Computers and Calculators,
    Second Edition,
    Academic Press, 1978,
    ISBN: 0-12-519260-6,
    LC: QA164.N54.
  7. ML Wolfson, HV Wright,
    Algorithm 160: Combinatorial of M Things Taken N at a Time,
    Communications of the ACM,
    Volume 6, Number 4, April 1963, page 161.

Source Code:

Examples and Tests:

List of Routines:

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


Last revised on 23 August 2012.