From 4eea0ec1389860f74f5ef4f90806b3142da64c05 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 1 Feb 2017 12:55:03 -0600 Subject: [PATCH] Add doc section on mesh data structure design --- doc/images/nodes-vertices.png | Bin 0 -> 54152 bytes doc/images/nodes-vertices.xoj | Bin 0 -> 25983 bytes doc/mesh.rst | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 doc/images/nodes-vertices.png create mode 100644 doc/images/nodes-vertices.xoj diff --git a/doc/images/nodes-vertices.png b/doc/images/nodes-vertices.png new file mode 100644 index 0000000000000000000000000000000000000000..8ee30bd8e29ff657eb8f2a6c2193956c40f9969b GIT binary patch literal 54152 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
Q%_J=eWg`Y?V%*9)ibKP2G`ZX=D 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 HB{Ts5k>IPF literal 0 HcmV?d00001 diff --git a/doc/images/nodes-vertices.xoj b/doc/images/nodes-vertices.xoj new file mode 100644 index 0000000000000000000000000000000000000000..fc0bb2950f4eafb2f1adc226b0b23c2f52ba7fc9 GIT binary patch literal 25983 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 VzuWKseQ5q)KHO!J`kFLG1_12J9^U`} literal 0 HcmV?d00001 diff --git a/doc/mesh.rst b/doc/mesh.rst index 28a332cf..2eb79cbe 100644 --- a/doc/mesh.rst +++ b/doc/mesh.rst @@ -8,6 +8,40 @@ Mesh management .. automodule:: meshmode.mesh +Design of the Data Structure +---------------------------- + +Why does a :class:`Mesh` need to be broken into :class:`MeshElementGroup` instances? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Elements can be of different types (e.g. triangle, quadrilateral, +tetrahedron, what have you). In addition, elements may vary in the +polynomial degree used to represent them (see also below). + +All these bits of information could in principle be stored by element, +but having large, internally homogeneous groups is a good thing from an +efficiency standpoint. (So that you can, e.g., launch one GPU kernel to +deal with all order-3 triangles, instead of maybe having to dispatch +based on type and size inside the kernel) + +What is the difference between 'vertices' and 'nodes'? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Nodes exist mainly to represent the (potentially non-affine) deformation of +each element, by a one-to-one correspondence with +:attr:`MeshElementGroup.unit_nodes`. They are unique to each element. Vertices +on the other hand exist to clarify whether or not a point shared by two +elements is actually identical (or just happens to be "close"). This is done by +assigning (single, globally shared) vertex numbers and having elements refer to +them. + +Consider the following picture: + +.. image:: images/nodes-vertices.png + +Mesh Data Structure +------------------- + .. autoclass:: MeshElementGroup :members: :undoc-members: -- GitLab