sphere_exactness, a C++ code which investigates the polynomial exactness of a quadrature rule over the surface of the unit sphere in 3D.
The polynomial exactness of a quadrature rule is defined as the highest total degree D such that the quadrature rule is guaranteed to integrate exactly all polynomials of total degree DEGREE_MAX or less, ignoring roundoff. The total degree of a polynomial is the maximum of the degrees of all its monomial terms. For the unit sphere in 3D, the degree of a monomial term is the sum of the exponents of x, y and z. Thus, for instance, the DEGREE of
x^{2}yz^{5}is 2+1+5=8.
To be thorough, the program starts at DEGREE = 0, and then proceeds to DEGREE = 1, 2, and so on up to a maximum degree DEGREE_MAX specified by the user. At each value of DEGREE, the program generates every possible monomial term, applies the quadrature rule to it, and determines the quadrature error.
The quadrature rule is read by the program, and there are a number of options for how that information is stored.
sphere_exactness files prefix degree_maxwhere
The input value of files indicates how the quadrature rule information is stored. It might be in one or two files; the abscissas might be stored as (X,Y,Z) or as angles. The angles might be in radians or degrees. The weights might be assumed to be equal, in which case they need not be input.
The computer code and data files described and made available on this web page are distributed under the MIT license
sphere_exactness is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version.
CUBE_EXACTNESS, a C++ code which investigates the polynomial exactness of quadrature rules over the interior of a cube in 3D.
HYPERCUBE_EXACTNESS, a C++ code which measures the monomial exactness of an M-dimensional quadrature rule over the interior of the unit hypercube in M dimensions.
PYRAMID_EXACTNESS, a C++ code which investigates the polynomial exactness of a quadrature rule over the interior of the unit pyramid in 3D.
SPHERE_DESIGN_RULE, a dataset directory which contains files defining point sets on the surface of the unit sphere, known as "designs", which can be useful for estimating integrals on the surface, among other uses.
SPHERE_LEBEDEV_RULE, a dataset directory which contains sets of Lebedev points on a unit sphere, which can be used for quadrature rules of a known precision;
SPHERE_LEBEDEV_RULE, a C++ code which computes Lebedev quadrature rules for the unit sphere;
SPHERE_MONTE_CARLO, a C++ code which applies a Monte Carlo method to estimate the integral of a function over the surface of the unit sphere in 3D;
SPHERE_QUAD, a C++ code which approximates an integral over the surface of the unit sphere by applying a triangulation to the surface;
SPHERE_TRIANGLE_QUAD, a C++ code which estimates the integral of a function over a spherical triangle.
SQUARE_EXACTNESS, a C++ code which investigates the polynomial exactness of quadrature rules for f(x,y) over the interior of a rectangle in 2D.
TETRAHEDRON_EXACTNESS, a C++ code which investigates the polynomial exactness of a quadrature rule over the interior of a tetrahedron in 3D.
TRIANGLE_EXACTNESS, a C++ code which investigates the polynomial exactness of a quadrature rule over the interior of a triangle in 2D.
WEDGE_EXACTNESS, a C++ code which investigates the monomial exactness of a quadrature rule over the interior of the unit wedge in 3D.