Skip to main content
PyCon US is happening May 14th-22nd in Pittsburgh, PA USA.  Learn more

Modes and nodes for high-order methods

Project description

Gitlab Build Status Github Build Status Python Package Index Release Page Zenodo DOI for latest release

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

  • 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

Hesthaven, Jan S., and Tim Warburton. “Nodal Discontinuous Galerkin Methods: Algorithms, Analysis, and Applications”. 1st ed. Springer, 2007. Book web page

but much has been added beyond that basic functionality.

Resources:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page