Meshes todo list
-
write tests for Meshtraverser -
rewrite TraverserusingParallelFor -
writer for the XML-based VTK format: see #6 (closed) -
big mesh refactoring - mesh pointer added to
MeshEntity, all topology accessors redirected through it to the mesh - storage of points and subentity orientations moved from
MeshEntitytoMesh - removed
MeshEntityIndex-MeshEntityalways stores its index as theGlobalIndexType - removed entity storage from Mesh - mesh entities can be generated on the fly
- some minor related simplifications, mainly in the mesh initializer
- remove
entityStoragefrom the mesh configuration
- mesh pointer added to
-
TypeResolver:resolveMeshType,loadMesh,decomposeMesh:-
better detection of the format (currently based on the file name suffix) (solved by the manual override option) -
file detection is done twice: once for resolveMeshType, then again forloadMesh
-
-
refactor MeshFunction- implementMeshFunctionView -
implement tnl-decompose-mesh(wrapper tool using Metis)-
output .pvtufile -
generate overlaps (ghost cells) for use in DistributedMesh
-
-
mesh entity tags - we need to store at least boundary and ghost entity tags - use bitfield array similar to VTK
- if possible, implement a general interface for user tags (could be stored in the same array, but users would have to respect the boundary and ghost bits)
-
implement PVTUReader -
implement DistributedMesh- wrapper around
Mesh- includes local and ghost entities, which are differentiated by a tag - mapping from local to global indices is easy - separate index arrays (or just for ghost entities, if they are ordered after the local entities - then rank offsets is sufficient for local entities)
- the local mesh should be worked with using local indices (
getEntity,getSubentityIndex,getSuperentityIndexetc.), because mapping from global indices to local indices is not easy (ghost entities may be discontinuous, mapping by rank offsets is impossible) - local index mappings (index arrays for efficient iteration):
ghostslocal-
ghostNeighbours(entities which are ghosts on other ranks - for synchronization) -
localInternal(not ghosts on any ranks) -
boundary(boundary of the local mesh (including overlaps)) -
interior(interior of the local mesh (including overlaps)) - local mesh decompositions:
all = local + ghosts,local = ghostNeighbours + localInternal,all = boundary + interior
-
write tests
- wrapper around
-
implement DistributedMeshSynchronizer-
write tests
-
-
implement forAll,forBoundary,forInteriormethods like inNDArray; alsoforLocal,forGhost(lambda function takes just the index, mesh access has to be handled manually)
Edited by Jakub Klinkovský