A comprehensive Python library offering over 1500 numerical integration schemes for 1D, 2D, and nD domains with support for complex, vector, and matrix-valued functions.
Quadpy is a Python library for numerical integration (quadrature and cubature) that provides access to over 1500 integration schemes for a wide variety of geometric domains, from simple intervals to n-dimensional spheres and simplices. It solves the problem of accurately computing integrals of real-, complex-, vector-, and matrix-valued functions in scientific and engineering applications where analytical solutions are infeasible.
Researchers, engineers, and computational scientists working in fields like finite element analysis, computational physics, and applied mathematics who require robust, high-precision numerical integration across complex domains.
Developers choose Quadpy for its unparalleled collection of pre-implemented, citation-backed integration schemes, its support for high-dimensional and weighted spaces, and its fully vectorized performance, which together provide a more comprehensive and efficient alternative to basic SciPy integration routines.
:triangular_ruler: Numerical integration (quadrature, cubature) in Python
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes over 1500 pre-implemented quadrature rules from classical to modern sources, each with documented degrees and citations, such as Dunavant for triangles and Lebedev for spheres, ensuring rigorous accuracy.
Handles integration in arbitrary dimensions (1D to nD) and supports real-, complex-, vector-, and matrix-valued functions, as demonstrated in examples integrating exp(x) over triangles with vector output.
Allows simultaneous integration over multiple domains using optimized array operations, improving efficiency for large-scale simulations, shown in the batch triangle integration example with stacked arrays.
Each scheme is backed by specific citations and includes properties like degree and source, making it reliable for scientific computing where provenance and precision are critical.
Users must manually choose from hundreds of schemes based on domain and degree, which can be overwhelming without expertise in numerical integration, as evidenced by the extensive scheme lists per domain.
The README references obtaining a license (see here on how to get a license), indicating potential restrictions or additional steps beyond standard open-source usage, which may complicate adoption.
While extensive, the library focuses on specific geometric shapes; integration over arbitrary or user-defined regions requires domain transformation or external methods, not natively supported.
Adaptive quadrature and custom scheme creation are documented as advanced topics in the wiki, limiting accessibility for casual users who need straightforward, black-box integration.