TRIANGLE_SYMQ_RULE
Symmetric Quadrature Rules for Triangles.
TRIANGLE_SYMQ_RULE
is a FORTRAN90 library which
returns symmetric quadrature rules,
with exactness up to total degree 50,
over the interior of an arbitrary triangle in 2D,
by Hong Xiao and Zydrunas Gimbutas.
The original source code, from which this library was developed,
is available from the Courant Mathematics and Computing Laboratory, at
http://www.cims.nyu.edu/cmcl/quadratures/quadratures.html ,
Licensing:
The computer code and data files made available on this
web page are distributed under
the GNU LGPL license.
Languages:
TRIANGLE_SYMQ_RULE is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
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.
GNUPLOT,
FORTRAN90 programs which
illustrate how a program can write data and command files
so that gnuplot can create plots of the program results.
PYRAMID_FELIPPA_RULE,
a FORTRAN90 library which
returns Felippa's quadratures rules for approximating integrals
over the interior of a pyramid in 3D.
SIMPLEX_GM_RULE,
a FORTRAN90 library which
defines Grundmann-Moeller quadrature rules
over the interior of a simplex in M dimensions.
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 M-dimensional regions,
including the interior of the square, cube and hypercube, the pyramid,
cone and ellipse, the hexagon, the M-dimensional octahedron,
the circle, sphere and hypersphere, the triangle, tetrahedron and simplex,
and the surface of the circle, sphere and hypersphere.
TETRAHEDRON_ARBQ_RULE,
a FORTRAN90 library which
returns quadrature rules,
with exactness up to total degree 15,
over the interior of a tetrahedron in 3D,
by Hong Xiao and Zydrunas Gimbutas.
TETRAHEDRON_FELIPPA_RULE,
a FORTRAN90 library which
returns Felippa's quadratures rules for approximating integrals
over the interior of a tetrahedron in 3D.
TOMS886,
a FORTRAN90 library which
defines the Padua points for interpolation in a 2D region,
including the rectangle, triangle, and ellipse,
by Marco Caliari, Stefano de Marchi, Marco Vianello.
This is a version of ACM TOMS algorithm 886.
TRIANGLE_DUNAVANT_RULE,
a FORTRAN90 library which
sets up a Dunavant quadrature rule
over the interior of a triangle in 2D.
TRIANGLE_FELIPPA_RULE,
a FORTRAN90 library which
returns Felippa's quadratures rules for approximating integrals
over the interior of a triangle in 2D.
TRIANGLE_INTEGRALS,
a FORTRAN90 library which
returns the exact value of the integral of any monomial
over the interior of the unit triangle in 2D.
TRIANGLE_LYNESS_RULE,
a FORTRAN90 library which
returns Lyness-Jespersen quadrature rules
over the interior of a triangle in 2D.
TRIANGLE_MONTE_CARLO,
a FORTRAN90 library which
uses the Monte Carlo method to estimate the integral of a function
over the interior of the unit triangle in 2D.
TRIANGLE_NCC_RULE,
a FORTRAN90 library which
defines Newton-Cotes Closed (NCC) quadrature rules
over the interior of a triangle in 2D.
TRIANGLE_NCO_RULE,
a FORTRAN90 library which
defines Newton-Cotes Open (NCO) quadrature rules
over the interior of a triangle in 2D.
TRIANGLE_WANDZURA_RULE,
a FORTRAN90 library which
sets up a quadrature rule of exactness 5, 10, 15, 20, 25 or 30
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:
-
Hong Xiao, Zydrunas Gimbutas,
A numerical algorithm for the construction of efficient quadrature
rules in two and higher dimensions,
Computers and Mathematics with Applications,
Volume 59, 2010, pages 663-676.
Source Code:
Examples and Tests:
EQUI08 is a degree 8 rule in an equilateral triangle.
SIMP08 is a degree 8 rule in a simplex.
USER08 is a degree 8 rule in a user specified triangle at (1,0),
(4,4), (0,3).
List of Routines:
-
GET_UNIT returns a free FORTRAN unit number.
-
KJACOPOLS2 evaluates Jacobi polynomials and derivatives.
-
KJACOPOLS evaluates Jacobi polynomials.
-
KLEGEYPOLS3 evaluate scaled Legendre polynomials and derivatives.
-
KLEGEYPOLS evaluates scaled Legendre polynomials.
-
ORTHO2EVA0 evaluates the orthonormal polynomials on the triangle.
-
ORTHO2EVA30: orthonormal polynomials and derivatives on triangle.
-
ORTHO2EVA3: orthogonal polynomial values and derivatives, reference triangle.
-
ORTHO2EVA evaluates orthogonal polynomials on the reference triangle.
-
QUAECOPY2 copies a quadrature rule into a user arrays X, Y, and W.
-
QUAECOPY copies a quadrature rule into user arrays Z and W.
-
QUAEINSIDE checks whether a point is inside a triangle.
-
QUAENODES2 expands nodes from 1/6 to 1/3 of the triangle.
-
QUAENODES expands nodes to the reference triangle.
-
QUAEQUAD0 returns the requested quadrature rule.
-
QUAEQUAD returns a symmetric quadrature formula for a reference triangle.
-
QUAEROTATE applies a rotation.
-
R8VEC_COPY copies an R8VEC.
-
R8VEC_UNIFORM_01 returns a unit pseudorandom R8VEC.
-
REF_TO_KOORN maps points from the reference to Koornwinder's triangle.
-
REF_TO_TRIANGLE maps points from the reference triangle to a triangle.
-
RULE_COMPRESSED_SIZE returns the compressed size of the requested quadrature rule.
-
RULE_FULL_SIZE returns the full size of the requested quadrature rule.
-
RULE01 returns the rule of degree 1.
-
RULE02 returns the rule of degree 2.
-
RULE03 returns the rule of degree 3.
-
RULE04 returns the rule of degree 4.
-
RULE05 returns the rule of degree 5.
-
RULE06 returns the rule of degree 6.
-
RULE07 returns the rule of degree 7.
-
RULE08 returns the rule of degree 8.
-
RULE09 returns the rule of degree 9.
-
RULE10 returns the rule of degree 10.
-
RULE11 returns the rule of degree 11.
-
RULE12 returns the rule of degree 12.
-
RULE13 returns the rule of degree 13.
-
RULE14 returns the rule of degree 14.
-
RULE15 returns the rule of degree 15.
-
RULE16 returns the rule of degree 16.
-
RULE17 returns the rule of degree 17.
-
RULE18 returns the rule of degree 18.
-
RULE19 returns the rule of degree 19.
-
RULE20 returns the rule of degree 20.
-
RULE21 returns the rule of degree 21.
-
RULE22 returns the rule of degree 22.
-
RULE23 returns the rule of degree 23.
-
RULE24 returns the rule of degree 24.
-
RULE25 returns the rule of degree 25.
-
RULE26 returns the rule of degree 26.
-
RULE27 returns the rule of degree 29.
-
RULE28 returns the rule of degree 28.
-
RULE29 returns the rule of degree 29.
-
RULE30 returns the rule of degree 30.
-
RULE31 returns the rule of degree 31.
-
RULE32 returns the rule of degree 32.
-
RULE33 returns the rule of degree 33.
-
RULE34 returns the rule of degree 34.
-
RULE35 returns the rule of degree 35.
-
RULE36 returns the rule of degree 36.
-
RULE37 returns the rule of degree 37.
-
RULE38 returns the rule of degree 38.
-
RULE39 returns the rule of degree 39.
-
RULE40 returns the rule of degree 40.
-
RULE41 returns the rule of degree 41.
-
RULE42 returns the rule of degree 42.
-
RULE43 returns the rule of degree 43.
-
RULE44 returns the rule of degree 44.
-
RULE45 returns the rule of degree 45.
-
RULE46 returns the rule of degree 46.
-
RULE47 returns the rule of degree 47.
-
RULE48 returns the rule of degree 48.
-
RULE49 returns the rule of degree 49.
-
RULE50 returns the rule of degree 50.
-
SIMPLEX_TO_TRIANGLE maps points from the simplex to a triangle.
-
TIMESTAMP prints out the current YMDHMS date as a timestamp.
-
TRIANGLE_AREA returns the area of a triangle.
-
TRIANGLE_TO_REF maps points from any triangle to the reference triangle.
-
TRIANGLE_TO_SIMPLEX maps points from any triangle to the simplex.
-
TRIANMAP maps rules from the reference triangle to the user triangle.
-
TRIASIMP maps a point from the reference triangle to the simplex.
-
TRIASYMQ returns a symmetric quadrature formula for a user triangle.
-
TRIASYMQ_GNUPLOT: set up a GNUPLOT plot of the triangle quadrature rule.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 26 June 2014.