FEniCS / FEniCS/dolfinx

Add vectorized versions of `push_forward` and `pull_back` to the Python interface of CoordinateElement

Open
#3,408 0 comments 0 reactions 0 assignees View on GitHub
enhancement roadmap
Dominant language
C++
Stars
1.2k
Forks
261
Avg merge
1d 15h
Merged PRs (30d)
65

Description

### Describe new/missing feature

Is needed for performance and should probably happen in the nanobind layer.

We still need to decide if:
1. Should we pull back all input points for an array of cells (cell geometries)? Does this really make sense?
- If not, should we send in a list of numpy arrays, where the i-th entry of the list is a 2D array for pulling back to the `i-th` cell geometry?
2. Should we push forward all input points for an array of cells (this makes more sense (for instance if pushing quadrature points forward).

Above, one has to extract the cell-geometry in Python, and then pass it to the C++ interface, would it make more sense to pass in `cell-indices`, and let the nanobind layer pack the geometry data? Or does this remove some generality, where one would like to perturb mesh coordinates without moving the mesh itself?

### Suggested user interface

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.