Metadata-Version: 2.4
Name: modepy
Version: 2026.1
Summary: Modes and nodes for high-order methods
Project-URL: Documentation, https://documen.tician.de/modepy
Project-URL: Homepage, https://mathema.tician.de/software/modepy
Project-URL: Repository, https://github.com/inducer/modepy
Author-email: Andreas Kloeckner <inform@tiker.net>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Other Audience
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: numpy
Requires-Dist: pymbolic>=2024.2
Requires-Dist: pytools
Requires-Dist: typing-extensions>=4.1
Provides-Extra: doc
Requires-Dist: furo; extra == 'doc'
Requires-Dist: sphinx-copybutton; extra == 'doc'
Requires-Dist: sphinx>=4; extra == 'doc'
Provides-Extra: test
Requires-Dist: basedpyright; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: ruff; extra == 'test'
Description-Content-Type: text/x-rst

modepy: Basis Functions, Node Sets, Quadratures
===============================================

.. image:: https://gitlab.tiker.net/inducer/modepy/badges/main/pipeline.svg
    :alt: Gitlab Build Status
    :target: https://gitlab.tiker.net/inducer/modepy/commits/main
.. image:: https://github.com/inducer/modepy/actions/workflows/ci.yml/badge.svg
    :alt: Github Build Status
    :target: https://github.com/inducer/modepy/actions/workflows/ci.yml
.. image:: https://badge.fury.io/py/modepy.svg
    :alt: Python Package Index Release Page
    :target: https://pypi.org/project/modepy/
.. image:: https://zenodo.org/badge/9846038.svg
    :alt: Zenodo DOI for latest release
    :target: https://zenodo.org/doi/10.5281/zenodo.11105051

``modepy`` helps you create well-behaved high-order discretizations on
simplices (i.e. segments, triangles and tetrahedra) and tensor products of
simplices (i.e. squares, cubes, prisms, etc.). These are a key building block
for high-order unstructured discretizations, as often used in a finite
element context. Features include:

- Support for simplex and tensor product elements in any dimension.
- Orthogonal bases:
    - Jacobi polynomials with derivatives
    - Orthogonal polynomials for simplices up to 3D and tensor product elements
      and their derivatives.
    - All bases permit symbolic evaluation, for code generation.
- Access to numerous quadrature rules:
    - Jacobi-Gauss, Jacobi-Gauss-Lobatto in 1D
      (includes Legendre, Chebyshev, ultraspherical, Gegenbauer)
    - Clenshaw-Curtis and Fejér in 1D
    - Grundmann-Möller on the simplex
    - Xiao-Gimbutas on the simplex
    - Vioreanu-Rokhlin on the simplex
    - Jaśkowiec-Sukumar on the tetrahedron
    - Witherden-Vincent on the hypercube
    - Generic tensor products built on the above, e.g. for prisms and hypercubes
- Tools to construct new quadrature rules:
    - A basic iterative Gauss-Newton process to optimize/tighten rules
    - Vioreanu-Rokhlin node initial generation based on multiplication operators
- Matrices for FEM, usable across all element types:
    - generalized Vandermonde,
    - mass matrices (including lumped diagonal),
    - face mass matrices,
    - differentiation matrices, and
    - resampling matrices.
- Objects to represent 'element shape' and 'function space',
  generic node/mode/quadrature retrieval based on them.

Its roots closely followed the approach taken in the book

    J. S. Hesthaven and T. Warburton (2007).
    *Nodal Discontinuous Galerkin Methods: Algorithms, Analysis, and Applications*
    (1st ed.).
    `doi:10.1007/978-0-387-72067-8 <https://doi.org/10.1007/978-0-387-72067-8>`__.
    `(source code) <https://github.com/tcew/nodal-dg>`__

but much has been added beyond that basic functionality.

Resources:

* `Documentation <https://documen.tician.de/modepy>`__.
* `Source code <https://github.com/inducer/modepy>`__.
* `Bug tracker <https://github.com/inducer/modepy/issues>`__.
* `PyPI <https://pypi.org/project/modepy/>`__.
