FELIPPA
Finite Element Quadrature Rules
FELIPPA
is a C++ library which
can generate quadrature rules (points and weights) for a variety
of 1D, 2D and 3D regions of interest for computations
involving the finite element method (FEM).
Regions for which rules are available, with a count of Corners, Edges, and Faces, include:
Name | Acronym | C+E+F |
Line segment | Line | 2+1+0 |
Triangle | Trig | 3+3+1 |
Quadrilateral | Quad | 4+4+1 |
Tetrahedron | Tetr | 4+6+4 |
Wedge | Wedg | 6+9+5 |
Pyramid | Pyra | 5+8+5 |
Hexahedron | Hexa | 8+12+6 |
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
FELIPPA is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
PYRAMID_RULE,
a C++ program which
computes a quadrature rule
over the interior of the unit pyramid in 3D.
SIMPLEX_GM_RULE,
a C++ library which
defines Grundmann-Moeller quadrature rules
over the interior of a triangle in 2D, a tetrahedron in 3D, or
over the interior of the simplex in M dimensions.
STROUD,
a C++ library which
defines quadrature rules for a variety of unusual areas, surfaces
and volumes in 2D, 3D and N-dimensions.
TETRAHEDRON_EXACTNESS,
a C++ program which
investigates the monomial exactness of a quadrature rule
over the interior of a tetrahedron in 3D.
TETRAHEDRON_INTEGRALS,
a C++ library which
returns the exact value of the integral of any monomial
over the interior of the unit tetrahedron in 3D.
TETRAHEDRON_KEAST_RULE,
a C++ library which
defines ten quadrature rules, with exactness degrees 0 through 8,
over the interior of a tetrahedron in 3D.
TETRAHEDRON_MONTE_CARLO,
a C++ program which
uses the Monte Carlo method to estimate integrals over a tetrahedron.
TETRAHEDRON_NCC_RULE,
a C++ library which
defines Newton-Cotes Closed (NCC) quadrature rules
over the interior of a tetrahedron in 3D.
TETRAHEDRON_NCO_RULE,
a C++ library which
defines Newton-Cotes Open (NCO) quadrature rules
over the interior of a tetrahedron in 3D.
TRIANGLE_DUNAVANT_RULE,
a C++ library which
defines Dunavant rules for quadrature on a triangle.
TRIANGLE_FEKETE,
a C++ library which
defines Fekete rules for interpolation or quadrature on a triangle.
TRIANGLE_LYNESS_RULE,
a C++ library which
returns Lyness-Jespersen quadrature rules for the triangle.
TRIANGLE_MONTE_CARLO,
a C++ program which
uses the Monte Carlo method to estimate integrals over a triangle.
TRIANGLE_NCC_RULE,
a C++ library which
defines Newton-Cotes Closed (NCC) quadrature rules
over the interior of a triangle in 2D.
TRIANGLE_NCO_RULE,
a C++ library which
defines Newton-Cotes Open (NCO) quadrature rules
over the interior of a triangle in 2D.
TRIANGLE_WANDZURA_RULE,
a C++ library which
defines Wandzura rules for quadrature
on a triangle.
Reference:
-
Carlos Felippa,
A compendium of FEM integration formulas for symbolic work,
Engineering Computation,
Volume 21, Number 8, 2004, pages 867-890.
Source Code:
Examples and Tests:
List of Routines:
-
COMP_NEXT computes the compositions of the integer N into K parts.
-
HEXA_UNIT_MONOMIAL integrates a monomial over the unit hexahedron.
-
HEXA_UNIT_MONOMIAL_TEST tests HEXA_UNIT_MONOMIAL.
-
HEXA_UNIT_QUAD_TEST tests the rules for the unit hexahedron.
-
HEXA_UNIT_RULE returns a quadrature rule for the unit hexahedron.
-
HEXA_UNIT_VOLUME: volume of a unit hexahedron.
-
I4_MAX returns the maximum of two I4's.
-
I4_MIN returns the minimum of two I4's.
-
I4VEC_ODD_ANY is TRUE if any entry of an I4VEC is odd.
-
I4VEC_PRODUCT multiplies the entries of an I4VEC.
-
LINE_UNIT_MONOMIAL: monomial integral in a unit line.
-
LINE_UNIT_MONOMIAL_TEST tests LINE_UNIT_MONOMIAL.
-
LINE_UNIT_O01 returns a 1 point quadrature rule for the unit line.
-
LINE_UNIT_O02 returns a 2 point quadrature rule for the unit line.
-
LINE_UNIT_O03 returns a 3 point quadrature rule for the unit line.
-
LINE_UNIT_O04 returns a 4 point quadrature rule for the unit line.
-
LINE_UNIT_O05 returns a 5 point quadrature rule for the unit line.
-
LINE_UNIT_QUAD_TEST tests the rules for the unit line.
-
LINE_UNIT_VOLUME: volume of a unit line.
-
MONOMIAL_VALUE evaluates a monomial.
-
PYRA_UNIT_MONOMIAL: monomial integral in a unit pyramid.
-
PYRA_UNIT_MONOMIAL_TEST tests PYRA_UNIT_MONOMIAL.
-
PYRA_UNIT_O01 returns a 1 point quadrature rule for the unit pyramid.
-
PYRA_UNIT_O05 returns a 5 point quadrature rule for the unit pyramid.
-
PYRA_UNIT_O06 returns a 6 point quadrature rule for the unit pyramid.
-
PYRA_UNIT_O08 returns an 8 point quadrature rule for the unit pyramid.
-
PYRA_UNIT_O08B returns an 8 point quadrature rule for the unit pyramid.
-
PYRA_UNIT_O09 returns a 9 point quadrature rule for the unit pyramid.
-
PYRA_UNIT_O13 returns a 13 point quadrature rule for the unit pyramid.
-
PYRA_UNIT_O18 returns an 18 point quadrature rule for the unit pyramid.
-
PYRA_UNIT_O27 returns a 27 point quadrature rule for the unit pyramid.
-
PYRA_UNIT_O48 returns a 48 point quadrature rule for the unit pyramid.
-
PYRA_UNIT_QUAD_TEST tests the rules for the unit pyramid.
-
PYRA_UNIT_VOLUME: volume of a unit pyramid with square base.
-
QUAD_UNIT_MONOMIAL integrates a monomial over the unit quadrilateral.
-
QUAD_UNIT_MONOMIAL_TEST tests QUAD_UNIT_MONOMIAL.
-
QUAD_UNIT_QUAD_TEST tests the rules for the unit quadrilateral.
-
QUAD_UNIT_RULE returns a quadrature rule for the unit quadrilateral.
-
QUAD_UNIT_VOLUME: volume of a unit quadrilateral.
-
R8_ABS returns the absolute value of an R8.
-
R8_CHOOSE computes the binomial coefficient C(N,K) as an R8.
-
R8_MOP returns the I-th power of -1 as an R8.
-
R8MAT_DET_4D computes the determinant of a 4 by 4 R8MAT.
-
R8MAT_WRITE writes an R8MAT file with no header.
-
R8VEC_COPY copies an R8VEC.
-
R8VEC_DIRECT_PRODUCT creates a direct product of R8VEC's.
-
R8VEC_DIRECT_PRODUCT2 creates a direct product of R8VEC's.
-
R8VEC_DOT_PRODUCT computes the dot product of a pair of R8VEC's.
-
SUBCOMP_NEXT computes the next subcomposition of N into K parts.
-
TETR_UNIT_MONOMIAL integrates a monomial over the unit tetrahedron.
-
TETR_UNIT_MONOMIAL_TEST tests TETR_UNIT_MONOMIAL.
-
TETR_UNIT_O01 returns a 1 point quadrature rule for the unit tetrahedron.
-
TETR_UNIT_O04 returns a 4 point quadrature rule for the unit tetrahedron.
-
TETR_UNIT_O08 returns an 8 point quadrature rule for the unit tetrahedron.
-
TETR_UNIT_O08B returns an 8 point quadrature rule for the unit tetrahedron.
-
TETR_UNIT_O14 returns a 14 point quadrature rule for the unit tetrahedron.
-
TETR_UNIT_O14B returns a 14 point quadrature rule for the unit tetrahedron.
-
TETR_UNIT_O15 returns a 15 point quadrature rule for the unit tetrahedron.
-
TETR_UNIT_O15B returns a 15 point quadrature rule for the unit tetrahedron.
-
TETR_UNIT_O24 returns a 24 point quadrature rule for the unit tetrahedron.
-
TETR_UNIT_QUAD_TEST tests the rules for the unit tetrahedron.
-
TETR_UNIT_VOLUME returns the volume of the unit tetrahedron.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
TRIG_UNIT_MONOMIAL integrates a monomial over the unit triangle.
-
TRIG_UNIT_MONOMIAL_TEST tests TRIG_UNIT_MONOMIAL.
-
TRIG_UNIT_O01 returns a 1 point quadrature rule for the unit triangle.
-
TRIG_UNIT_O03 returns a 3 point quadrature rule for the unit triangle.
-
TRIG_UNIT_O03B returns a 3 point quadrature rule for the unit triangle.
-
TRIG_UNIT_O06 returns a 6 point quadrature rule for the unit triangle.
-
TRIG_UNIT_O06B returns a 6 point quadrature rule for the unit triangle.
-
TRIG_UNIT_O07 returns a 7 point quadrature rule for the unit triangle.
-
TRIG_UNIT_O12 returns a 12 point quadrature rule for the unit triangle.
-
TRIG_UNIT_QUAD_TEST tests the rules for the unit triangle.
-
TRIG_UNIT_VOLUME returns the "volume" of the unit triangle in 2D.
-
WEDG_UNIT_MONOMIAL: monomial integral in a unit wedge.
-
WEDG_UNIT_MONOMIAL_TEST tests WEDG_UNIT_MONOMIAL.
-
WEDG_UNIT_QUAD_TEST tests the rules for the unit wedge.
-
WEDG_UNIT_RULE returns a quadrature rule for the unit wedge.
-
WEDG_UNIT_VOLUME: volume of a unit wedge.
-
WEDG_UNIT_WRITE_TEST writes out some rules for the unit wedge.
You can go up one level to
the C++ source codes.
Last revised on 14 October 2009.