|
1 | 1 | # Cell representation |
2 | 2 |
|
3 | | -**This content has been copy-pasted from the previous guide. It is up-to-date but should be improved |
4 | | -at some point.** |
5 | | - |
6 | 3 | --- |
7 | 4 |
|
8 | | -We define orbits as a set of darts that are accessible from a given dart, |
9 | | -using a certain set of beta functions. For example: |
| 5 | +## Orbits |
10 | 6 |
|
11 | | -- *⟨β<sub>1</sub>⟩(d)* refers to all darts accessible from *d* using |
12 | | - *β<sub>1</sub>* recursively any number of times. |
13 | | -- *⟨β<sub>1</sub>, β<sub>3</sub>⟩(d)* refers to all darts accessible |
14 | | - from *d* using any combination of *β<sub>1</sub>* and *β<sub>3</sub>*. |
| 7 | +<figure style="text-align:center"> |
| 8 | + <img src="../images/2map.svg" alt="MapMeshEquivalent" width=100%/> |
| 9 | + <figcaption><i>2-map example and its components values.</i></figcaption> |
| 10 | +</figure> |
15 | 11 |
|
16 | | -## *i*-cells |
| 12 | +In our \\(2\\)-map example, applying \\(\beta_1\\) recursively to \\(d_1\\) makes us cycle through |
| 13 | +darts \\(d_1\\), \\(d_2\\), \\(d_3\\), that belong to different edges. Applying \\(\beta_2\\) |
| 14 | +to \\(d_6\\) makes us cycle between \\(d_6\\) and \\(d_8\\), both belonging to different faces. |
| 15 | +This set of darts accessible from a starting dart via a given \\(\beta_i\\) function is called |
| 16 | +**orbit**. |
17 | 17 |
|
18 | | -A specific subset of orbits, referred to as *i*-cells are defined and often |
19 | | -used in algorithms. The general definition is the following: |
| 18 | +> **Definition**: Orbit |
| 19 | +> |
| 20 | +> We call **orbit of \\(d\\) by \\( \lbrace f_1, f_2, ..., f_k \rbrace \\) and denote |
| 21 | +> \\( \langle f_1, f_2, ..., f_k \rangle (d)\\)** the set of darts retrievable from \\(d\\) using |
| 22 | +> any composition of \\(f_1, f_2, ..., f_k\\), including recursions. In other words, |
| 23 | +> \\( \langle f_1, f_2, ..., f_k \rangle (d)\\) refers to the set of darts connected to |
| 24 | +> \\(d\\), via the \\(f_1, f_2, ..., f_k\\) functions. |
| 25 | +> |
| 26 | +> The set is obtained by doing a Breadth First Search algorithm from the starting dart \\(d\\), |
| 27 | +> where each connected node is the image of the current dart via one function |
| 28 | +> \\(f \in \lbrace f_1, f_2, ..., f_k \rbrace\\). The order in which nodes are explored is |
| 29 | +> determined by the order of the function set. |
20 | 30 |
|
21 | | -- **if i = 0**: *0-cell(d) = ⟨{ β<sub>j</sub> o β<sub>k</sub> with 1 ≤ j < k ≤ N }⟩(d)* |
22 | | -- **else**: *i-cell(d) = ⟨β<sub>1</sub>, β<sub>2</sub>, ..., β<sub>i-1</sub>, β<sub>i+1</sub>, ..., β<sub>N</sub>⟩(d)* |
| 31 | +For example, the orbit \\(\langle \beta _2 \rangle (d)\\) refers to the subset of unique darts |
| 32 | +accessible from dart \\(d\\) using any composition of \\(\beta_2\\), including recursive ones. |
| 33 | +The orbit \\(\langle \beta_1, \beta_0 \rangle (d_7)\\) refers to darts accessible from dart |
| 34 | +\\(d_7\\) using any composition of \\(\beta_1\\) and \\(\beta_0\\). The computation process is |
| 35 | +detailed below. |
23 | 36 |
|
24 | | -In our case, we can use specialized definitions for our dimensions: |
| 37 | +<figure style="text-align:center"> |
| 38 | + <img src="../images/orbit-bfs.svg" alt="OrbitComputationProcess" width=100%/> |
| 39 | + <figcaption><i>Orbit computation BFS.</i></figcaption> |
| 40 | +</figure> |
25 | 41 |
|
26 | | -| *i* | Geometry | 2-map | 3-map | |
27 | | -|-----|----------|---------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| |
28 | | -| 0 | Vertex | *⟨β<sub>1</sub> o β<sub>2</sub>⟩(d)* <br> **or** <br> *⟨β<sub>2</sub> o β<sub>-1</sub>⟩(d)* | *⟨β<sub>3</sub> o β<sub>2</sub>, β<sub>1</sub> o β<sub>3</sub>⟩(d)* <br> **or** <br> *⟨β<sub>3</sub> o β<sub>2</sub>, β<sub>3</sub> o β<sub>-1</sub>⟩(d)* | |
29 | | -| 1 | Edge | *⟨β<sub>2</sub>⟩(d)* | *⟨β<sub>2</sub>, β<sub>3</sub>⟩(d)* | |
30 | | -| 2 | Face | *⟨β<sub>1</sub>⟩(d)* | *⟨β<sub>1</sub>, β<sub>3</sub>⟩(d)* | |
31 | | -| 3 | Volume | - | *⟨β<sub>1</sub>, β<sub>2</sub>⟩(d)* | |
| 42 | +## \\(i\\)-cells |
32 | 43 |
|
33 | | -## Examples |
| 44 | +Specific values of orbits can be used to define the cells commonly used in meshing algorithms. |
| 45 | +These specific values are referred to as \\(i\\)-cells. For example the subset of dart defined by |
| 46 | +\\( \langle \beta_1 \rangle (d)\\) corresponds to darts of a face, i.e., a \\(2\\)-cell. The subset |
| 47 | +of dart defined by orbit \\( \langle \beta_2 \rangle (d)\\) corresponds to darts of an edge, i.e., |
| 48 | +a \\(1\\)-cell. |
34 | 49 |
|
35 | 50 | <figure style="text-align:center"> |
36 | | - <img src="../images/bg_orbit_face.svg" alt="Embed" /> |
37 | | - <figcaption> |
38 | | - <i>2-cell (face) associated to d<sub>2</sub>; |
39 | | - Note that the 2-faces of d<sub>1</sub>, d<sub>3</sub>, d<sub>4</sub> are the same |
40 | | - </i></figcaption> |
| 51 | + <img src="../images/icells.svg" alt="iCells" width=100%/> |
| 52 | + <figcaption><i>0-cell, 1-cell, and 2-cell of d<sub>3</sub>.</i></figcaption> |
41 | 53 | </figure> |
42 | 54 |
|
43 | | -<figure style="text-align:center"> |
44 | | - <img src="../images/bg_orbit_edge.svg" alt="Embed" /> |
45 | | - <figcaption><i>1-cell (edge) associated to d<sub>2</sub></i></figcaption> |
46 | | -</figure> |
| 55 | +> **Definition**: \\(0\\)-cell |
| 56 | +> |
| 57 | +> Let \\(d \in D\\). The \\(0\\)-dimensional cell associated to dart \\(d\\) is |
| 58 | +> \\( \langle { \beta_j \circ \beta_k, 1 \le j < k \le N } \rangle (d)\\). |
47 | 59 |
|
48 | | -<figure style="text-align:center"> |
49 | | - <img src="../images/bg_orbit_vertex.svg" alt="Embed" /> |
50 | | - <figcaption><i>0-cell (vertex) associated to d<sub>7</sub></i></figcaption> |
51 | | -</figure> |
| 60 | +> **Definition**: \\(i\\)-cell, \\(i \ne 0\\) |
| 61 | +> |
| 62 | +> Let \\(d \in D\\). The \\(i\\)-dimensional cell associated to dart \\(d\\) is |
| 63 | +> \\(\langle \beta _1, ..., \beta _{i-1}, \beta _{i+1}, ..., \beta _N \rangle (d)\\). |
| 64 | +
|
| 65 | +Our interest lies in mesh representation, so we use these definitions applied to dimension 2 and 3. |
| 66 | + |
| 67 | +| *i* | Geometry | 2-map | 3-map | |
| 68 | +|-----|----------|--------------------------------------------------|------------ -------------------------------| |
| 69 | +| 0 | Vertex | \\( \langle \beta_1 \circ \beta_2 \rangle (d)\\) | \\(\langle \beta_1 \circ \beta_2, \beta_1 \circ \beta_3, \beta_2 \circ \beta_3 \rangle (d)\\) | |
| 70 | +| 1 | Edge | \\(\langle \beta_2 \rangle (d)\\) | \\(\langle \beta_2, \beta_3 \rangle (d)\\) | |
| 71 | +| 2 | Face | \\(\langle \beta_1 \rangle (d)\\) | \\(\langle \beta_1, \beta_3 \rangle (d)\\) | |
| 72 | +| 3 | Volume | - | \\(\langle \beta_1, \beta_2 \rangle (d)\\) | |
0 commit comments