Meshes todo list
-
write tests for Mesh
traverser -
rewrite Traverser
usingParallelFor
-
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
MeshEntity
toMesh
- removed
MeshEntityIndex
-MeshEntity
always 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
entityStorage
from 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 .pvtu
file -
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
,getSuperentityIndex
etc.), 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):
ghosts
local
-
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
,forInterior
methods like inNDArray
; alsoforLocal
,forGhost
(lambda function takes just the index, mesh access has to be handled manually)
Edited by Jakub Klinkovský