Skip to content

Enhancements enabled by pyop3 #5255

Description

@connorjward

I am creating this issue to serve as a record of the sorts of things that I believe the introduction of pyop3 (#3318) will enable. This list is probably not exhaustive.

Numerical methods

  • Code generation for PCPatch/domain decomposition methods (e.g. automatically run on the GPU, flexible choice of patch size, function spaces on the patch etc)
  • Adaptive methods: AMR, hp-adaptivity
  • Mixed mesh support
  • Anything involving larger and more complex mesh stencils (e.g. finite volume, slope limiters)
  • Extruded + submesh
  • Extruded meshes distributed in the extruded direction
  • Nested mixed function spaces
  • Rewrite SLATE using pyop3

Performance and low-level things

  • GPU support through MLIR (in progress)
  • Data layout transformations (e.g. collect mixed function space DoFs per entity)
  • Parallel communication optimisations (e.g. avoid halo exchanges for cells DoFs if only facet DoFs are changed)
  • Kernel fusion/time tiling (i.e. redo Fabio's PhD work)

Low hanging fruit (should be easy)

  • Vector/tensor valued Real spaces
  • Assembly of Real function spaces into monolithic (MATAIJ) matrices

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions