Describe the current issue
Complex geometries require different ways to build the mesh hierarchy. Simply refining the mesh will not capture the geometry correctly. The current approaches available to tackle this issue are OpenCascadeMeshHierarchy and the upcoming NetgenMeshHierarchy. Both follow the approach of snapping the mesh boundary vertices to the boundary of the geometry. This approach can create collapsed or ill-shaped elements for complex geometries though.
Describe the solution you'd like
We would like to have a solution for complex geometries. I can think of two approaches:
Better mesh deformation that ensures element quality. Perhaps using some smooth mapping.
Describe the current issue Complex geometries require different ways to build the mesh hierarchy. Simply refining the mesh will not capture the geometry correctly. The current approaches available to tackle this issue are OpenCascadeMeshHierarchy and the upcoming NetgenMeshHierarchy. Both follow the approach of snapping the mesh boundary vertices to the boundary of the geometry. This approach can create collapsed or ill-shaped elements for complex geometries though.
Describe the solution you'd like We would like to have a solution for complex geometries. I can think of two approaches:
HierarchyBase
https://github.com/firedrakeproject/firedrake/blob/215fd2c30152cf4b32eda683a1048b81e90eaf28/firedrake/mg/mesh.py#L168 Or we need a different data structure?