Skip to content

Add basic Python bindings

Emilia Juda requested to merge feature/python-bindings into master

This merge requests introduces the basic Python bindings to Nektar++ along with some Python documentation.

The functionalities that have been wrapped include:

  • LibUtilities
    • BasicUtils
      • SessionReader: CreateInstance, GetSessionName, Finalise
      • ShapeType: wrapped ShapeType enum
      • SharedArray
    • Foundations
      • BasisType, BasisKey and Basis classes
      • PointsType, PointsKey and Points classes
    • LinearAlgebra
      • NekMatrix
  • LocalRegions
    • Expansion: GetGeom
    • QuadExp
    • SegExp
    • TriExp
  • MultiRegions
    • ExpList: GetNpoints, GetNcoeffs, GetExp, GetExpSize, WriteVTK, GetCoords, FwdTrans, BwdTrans, IProductWRTBase, L2
    • ExpList2D
  • SpatialDomains
    • Geometry: GetCoordim, GetGlobalID, FillGeom, GetXmap, GenGeomFactors, ContainsPoint, GetCoeffs
    • Geometry1D
    • Geometry2D
    • MeshGraph: SegGeomMap, QuadGeomMap, TriGeomMap, Read, GetMeshDimension, GetAllSegGeoms, GetAllQuadGeoms, GetAllTryGeoms
    • QuadGeom
    • SegGeom
    • TriGeom
  • StdRegions
    • StdExpansion: GetNcoeffs, GetTotPoints, GetBasisType, GetPointsType, GetNverts, GetNedges, GetNfaces, DetShapeType, GetShapeDimension, Integral, GetBasis, FwdTrans, BwdTrans, IProductWRTBase, PhysEvaluate, L2, GetCoords
    • StdQuadExp
    • StdSegExp
    • StdTriExp

This branch also:

  • fixes the error in which for n-dimensional Nektar matrices the transpose was obtained,
  • introduces a #define NEKPY_WRAP_ENUM_STRING_DOCS declaration allowing to wrap enum types with a Python docstring included,
  • includes Python documentation for Points, PointsKey and PointsType classes (accessible using help() function).
  • closes #107 (closed) and #96 (closed)
Edited by Dave Moxey

Merge request reports