~~@juliohm is probably better positioned to answer these questions.~~ Edit: he beat me to it lol.

MeshIntegrals.jl is a fairly new package (started earlier this year). The current interface is simple, i.e. `integral(f, ::Meshes.Geometry, ::IntegrationAlgorithm)`

, where you simply pass in some function with a method `f(::Meshes.Point)`

. Feel free to submit a PR or an Issue for specific feature requests

Currently:

- If your function has singularities on the integration boundaries then the underlying integration libraries, like QuadGK.jl, should still be able to handle it. If you have singularities within the integration domain then youâd currently need to handle that externally.
- If you have some parameters that are spatially-invariant, then (currently) youâd have to apply them externally, e.g. something like

```
f(pt::Point, params) = ...
integral(pt -> f(pt, myparams), geometry, alg)
```

- If your parameters are spatially-variant then you could do the same but with a wrapper function like
`myparams(pt::Point)`

that returns the appropriate set of parameters based on the current Point.