Something went wrong while setting issue due date.
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
-
output
-
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)