Structure of this package#
The top level interface, located in openquad.geometries
, provides
classes for quadratures on different geometries, e.g. a unit sphere, the
rotation group, n-dimensional cartesian space and other. They are derived from
the abstract class GeometryQuadrature
defining their main attributes
and methods.
On a lower level, individual quadrature methods are organized in modules
corresponding to their respective source. They are implemented in terms of
classes derived from the abstract base classes in base
. On the one hand,
these base classes define the basic properties for quadratures on different
geometries. On the other hand, they distinguish between quadratures with and
without non-zero degree of exactness.
Quadrature points and weights are located in the data
directory, organized in
separate folders for the different sources. Each subfolder contains a file
__init__.py
giving information about the source and listing available
degrees and sizes. Actual coordinates and weights are stored in NumPy’s
.npy
binary file format in the following convention, n
denoting the
number of sample points:
S2 spherical designs: Array of shape
(2, n)
, along the first axis containing the spherical polar angles in the order[polar angle, azimuthal angle]
.S2 Gauss-type quadratures: Array of shape
(3, n)
along the first axis containing the spherical polar angles and the weights in the order[polar angle, azimuthal angle, weights]
.SO3 equal-weight quadratures: Array of shape
(3, n)
along the first axis containing the Euler angles in the z-y-z convention the order[alpha, beta, gamma]
.SO3 Gauss-type quadratures: Array of shape
(4, n)
along the first axis containing the Euler angles in the z-y-z convention and the weights the order[alpha, beta, gamma, weights]
.
All angles are given in the interval from \([0,\pi]\) or \([0,2\pi]\), respectively.