AlgebraicJulia / Decapodes.jl

A framework for composing and simulating multiphysics systems
https://algebraicjulia.github.io/Decapodes.jl/dev/
MIT License
49 stars 14 forks source link

Use `is_manifold_like` #229

Closed lukem12345 closed 4 months ago

lukem12345 commented 4 months ago

Close #228

jpfairbanks commented 4 months ago

Should we check this on creating the Dual mesh rather than on simulation, for performance?

Design Rationale:

  1. We don't want to enforce that all SimplicialSets are manifold-like because you could use CombinatorialSpaces for TDA or another usage of simplicial sets that does work for Abstract Simplicial Complexes. So we can't do this check in the constructor for the primal mesh.
  2. We do want to check manifoldness of the mesh before we simulate
  3. We only want to check it once per mesh
  4. The heat equation doesn't require the mesh to be manifold-like so you should be able to simulate without this check if the equations are simple enough.
  5. All of the physics that use the dual mesh will break if the primal mesh is not a valid triangulation of a manifold.