Vectorized algorithms for regular tessellations of d-orthotopes and their faces
François Cuvelier˚ Gilles Scarella : 2017/11/08
Abstract
Tessellation of hypercubes or orthotopes and all their faces in any di- mension is a nice challenge. The purpose of this paper is to describe ecient vectorized algorithms to obtain regular tessellations made up by simplices or orthotopes. These vectorized algorithms have been imple- mented in array programming languages such as Matlab/Octave, Python.
Contents
1 Denitions and notations 3
1.1 d-orthotope andd-hypercube . . . . 3
1.2 d-simplex . . . . 5
2 Tessellation with d-orthotopes 6 2.1 The unit hypercube vertices . . . . 6
2.2 Cartesian grid . . . . 7
2.2.1 Points of the cartesian grid . . . . 8
2.2.2 Connectivity array of a cartesian grid . . . . 9
2.3 Numbering of them-faces of the unit d-hypercube . . . 12
2.4 m-faces tessellations of a cartesian grid . . . 13
2.4.1 Casem“0.. . . 14
2.4.2 Casemą0 . . . 14
2.5 Tessellation of ad-orthotope withd-orthotopes . . . 16
2.6 m-faces tessellations of ad-orthotope . . . 18
3 Tessellation with d-simplices 18 3.1 Kuhn's decomposition of ad-hypercube . . . 18
3.2 Cartesian grid tesselation with simplices . . . 21
3.3 m-faces tessellations of a cartesian grid . . . 23
3.4 d-orthotope tessellation withd-simplices . . . 25
3.5 m-faces tessellations of ad-orthotope withd-simplices . . . 25
˚Université Paris 13, Sorbonne Paris Cité, LAGA, CNRS UMR 7539, 99 Avenue J-B Clé- ment, F-93430 Villetaneuse, France, [email protected]
:Université Côte d'Azur, CNRS, LJAD, F-06108 Nice, France, [email protected].
This work was supported by the ANR project DEDALES under grant ANR-14-CE23- 0005.
4 Eciency of the algorithms 25 4.1 Class object OrthMesh . . . 26 4.2 Memory consuming . . . 29 4.3 Computational times . . . 30
5 Conclusion 30
A Vectorized algorithmic language 31
A.1 Common operators and functions . . . 31 A.2 Combinatorial functions . . . 31
B Function CartesianGridPoints 32
C Computational costs 36
C.1 Tessellation with orthotopes . . . 36 C.2 Tessellation withd-simplices . . . 37
There are many tools for generating conformal meshes in2 or 3 dimension such as GMSH , Open CASCADE, ... They can be used, for example, to solve boundary value problems in 2D or 3D by nite element methods. In [9], vec- torized algorithms are proposed to calculate some assembly matrices obtained by the P1-Lagrange nite element method. These algorithms are written in any dimension and they have been implemented in Matlab/Octave, Python, C++, CUDA. Subsequently, complete codes were written to solve boundary value problems (B.V.P.) in any space dimension ( [6] for Matlab, [7] for Octave and [8] for python). To test these codes for dimensions greater than3 we need simplicial meshes in dimension4,5,... To our knowledge, mesh generation tools in dimensions greater than 3 are not available so we decided to write one for the simplest geometry: and-orthotope (also called hyperrectangle or a box).
The objective of this paper is therefore to propose vectorized algorithms to build regular tessellations of ad-orthotope made up by orthotopes in section 2 and by simplicials in section 3 To solve BVP we also need to know precisely all the meshes of the faces that are part of the d-orthotope. That is why we will develop, in each section, techniques to recover all the meshes associated to the m-faces of thed-orthotope, 0 ďmďd. In section 4, the performances of these vectorized algorithms are measured with Matlab, Octave and Python to validate their eciency. But rst of all, we recall some usual notations and denitions.
1 Denitions and notations
In this part, we characterize the basic geometric elements that will be used later on. Some of their properties are recalled. But before we specify notations commonly used in this paper to dene set of integers:
vi, jwdef“ ti,¨ ¨ ¨ , ju, vi, jvdef“ ti,¨ ¨ ¨, j´1u, wi, jwdef“ ti`1,¨ ¨ ¨, ju, wi, jvdef“ ti`1,¨ ¨ ¨, j´1u.
1.1 d-orthotope and d-hypercube
We rst recall the denitions of ad-orthotope and ad-hypercube given in [2].
Denition 1 In geometry, a d-orthotope (also called a hyperrectangle or a box) is the generalization of a rectangle for higher dimensions, formally dened as the Cartesian product of intervals.
Denition 2 Ad-orthotope with all edges of the same length is ad-hypercube.
A d-orthotope with all edges of length one is a unit d-hypercube.
The hypercuber0,1sd is called the unit reference d-hypercube.
Them-orthotopes on the boundary of ad-orthotope,0ďmďd,are called them-faces of the d-orthotope.
The number ofm-faces of ad-orthotope is Em,d“2d´m
ˆd m
˙
where ˆd
m
˙
“ d!
m!pd´mq! (1)
For example, the2-faces of the unit 3-hypercuber0,1s3 are the sets t0u ˆ r0,1s ˆ r0,1s, t1u ˆ r0,1s ˆ r0,1s,
r0,1s ˆ t0u ˆ r0,1s, r0,1s ˆ t1u ˆ r0,1s, r0,1s ˆ r0,1s ˆ t0u, r0,1s ˆ r0,1s ˆ t1u.
Its1-faces are
t0u ˆ t0u ˆ r0,1s, t0u ˆ t1u ˆ r0,1s, t1u ˆ t0u ˆ r0,1s, t1u ˆ t1u ˆ r0,1s, t0u ˆ r0,1s ˆ t0u, t0u ˆ r0,1s ˆ t1u, t1u ˆ r0,1s ˆ t0u, t1u ˆ r0,1s ˆ t1u, r0,1s ˆ t0u ˆ t0u, r0,1s ˆ t0u ˆ t1u, r0,1s ˆ t1u ˆ t0u, r0,1s ˆ t1u ˆ t1u, and its0-faces are
t0u ˆ t0u ˆ t0u, t1u ˆ t0u ˆ t0u, t0u ˆ t1u ˆ t0u, t0u ˆ t0u ˆ t1u, t1u ˆ t1u ˆ t0u, t1u ˆ t0u ˆ t1u, t0u ˆ t1u ˆ t1u, t1u ˆ t1u ˆ t1u.
We represent in Figure 1 all them-faces of a 3D hypercube.
@2! 1
@2! 2
@2!3
@2!4
@2!5
@2! 6
@2!7
@2!8
@!1
@!2
@!3
@!4
@!5
@!6
@!7
@!8
@!9
@!10
@!11
@!12
!1
!2
!3
!4
!5
!6
Figure 1: m-faces of a 3D hypercube : 0-faces (upper left),1-faces (upper right) and2-faces (bottom)
In Table 1 is given the number ofm-faces formP v0, dwanddP v0,6w.
m 0 1 2 3 4 5 6 d Names 0-face 1-face 2-face 3-face 4-face 5-face 6-face
0 Point 1
1 Segment 2 1
2 Square 4 4 1
3 Cube 8 12 6 1
4 Tesseract 16 32 24 8 1
5 Penteract 32 80 80 40 10 1
6 Hexeract 64 192 240 160 60 12 1
Table 1: Number ofm-faces of ad-hypercube
The identication/numbering of them-faces is given in section2.3.
1.2 d-simplex
Denition 3 In geometry, a simplex (plural: simplexes or simplices) is a gen- eralization of the notion of a triangle or tetrahedron to arbitrary dimensions.
Specically, a d-simplex is ad-dimensional polytope which is the convex hull of its d`1 vertices. More formally, suppose the d`1 pointsqqq0, . . . ,qqqdPRd are anely independent, which meansqqq1´qqq0, . . . ,qqqd´qqq0 are linearly independent.
Then, the simplex determined by them is the set of points
C“ tθ0qqq0` ¨ ¨ ¨ `θdqqqd|θiě0,0ďiďd,
d
ÿ
i“0
θi“1u.
For example, a 2-simplex is a triangle, a 3-simplex is a tetrahedron, and a 4- simplex is a 5-cell. A single point may be considered as a0-simplex and a line segment may be considered as an1-simplex. A simplex may be dened as the smallest convex set which contain the given vertices.
Denition 4 Let qqq0, . . . ,qqqd P Rd be the d`1 vertices of a d-simplex K and DK be the pd`1q-by-pd`1qmatrix dened by
DK “
¨
˚
˚
q0 . . . qqqd 1 . . . 1
˛
‹
‹
‚
The d-simplexK is
‚ degenerated ifdetDK“0,
‚ positive oriented ifdetDKą0,
‚ negative oriented ifdetDKă0.
The m-simplices on the boundary of a d-simplex, 0 ď m ď d, are called them-faces of thed-simplex. If ad-simplex is nondegenerate, its number of m-faces, denoted bySm,d,is given by
Sm,d“ ˆd`1
m`1
˙
(2) We give in Table 2 this number fordP v0,6wand0ďmďd.
m 0 1 2 3 4 5 6
d Names 0-face 1-face 2-face 3-face 4-face 5-face 6-face
0 Point 1
1 Segment 2 1
2 triangle 3 3 1
3 tetrahedron 4 6 4 1
4 4-simplex 5 10 10 5 1
5 5-simplex 6 15 20 15 6 1
6 6-simplex 7 21 35 35 21 7 1
Table 2: Number ofm-faces of a nondegenerated-simplex
2 Tessellation with d-orthotopes
2.1 The unit hypercube vertices
The unitd-dimensional hypercubeHp “ r0,1sd hasn“2d vertices. Each vertex can be identied by a d-tuple ııı “ pııı1, ııı2,¨ ¨ ¨, ıııdq P v0,1wd and we denoted by x
x
xııı“ pxxxııı1, . . . , xxxıııdqtPRd the vertex dened by x
x
xıııl“ıııl, @lP v1, dw.
LetLbe the function that mapping all thed-tuplesıııP v0,1wdintov1,2dwdened by
Lpıııq “1`
d
ÿ
l“1
2l´1ıııl. (3)
We can note that Lpıııq ´1 has for binary representationpıııdıııd´1¨ ¨ ¨ııı1q2. Letqpqq be thed-by-2d array containing all the vertices ofHp and dened by
qpqqp:, jqdef“xxxL-1pjq, @jP v1,2dw.
wherepqqqp:, jqdenotes thej-th column of the arraypqqq.
For example, withd“3,the arraypqqqis given by
pq qqdef“
» –
0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 fi fl
This array can be obtained from the more general function CartesianGrid- Points, introduced in section 2.2.1 and described in Appendix B, by using
pq q
qÐCartesianGridPointspOnesp1, dqq
In Figure 2, the numbering of the vertices is represented in2 and3dimension.
0 1
x 0
1
y
1 2
3 4
4
0
8
3
1 2
1
z
y x
1 7
6
1
0 0
5
Figure 2: Vertices of the unit hypercube r0,1sd, d“2 (left) andd“3 (right) with their indices in the arraypqqq
2.2 Cartesian grid
Denition 5 A cartesian grid in Rd is a tessellation where elements are unit d-hypercubes and vertices are integer lattices.
LetNNN“ pN1, . . . , Ndq P pN˚qd.We denote byQNNNthe cartesian grid ofv0, N1w ˆ
¨ ¨ ¨ ˆ v0, Ndw.The cartesian gridQNNNis composed ofnq grid points andnmeunit d-hypercubes where
nq“
d
ź
l“1
pNl`1q and nme“
d
ź
l“1
Nl. (4)
The objective of this section is to describe the construction of the vertices (or points) arrayqqq(section 2.2.1) and the connectivity arraymememeassociated with this cartesian grid (section 2.2.2). More precisely,
• qqqpν, jq is the ν-th coordinate of the j-th vertex, ν P t1, . . . , du, j P t1, . . . , nqu.Thej-th vertex will be also denoted byqqqj “qqqp:, jq.
• mememepβ, kqis the storage index of theβ-th vertex of thek-th element (unit hypercube), in the array q, for β P t1, ...,2du and k P t1, . . . , nmeu. So qqqp:,mememepβ, kqq represents the coordinates of the β-th vertex in the k-th cartesian grid element.
We represent in Figure 3 two cartesian grids with the numbering of the nme unitd-hypercubes. For example, on the left gure (d“2), the 5-th unit hypercube is given by the vertices of numbers 6,7,10,11 and so mememep:,5q “ p6,7,10,11q.On the right gure (d“3), for the9-th hypercube, we havemememep:
,9q “ p16,17,19,20,28,29,31,32q.
0 1 2 3
x 0
1 2 3 4
y
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
1 2 3
4 5 6
7 8 9
10 11 12
9 33
30
18
12
7 21
20
4 10
19
9
45
44
28 32
29
6 24
2 3
2 6
11 36
15 26
14
8
2 12
5 23
48
x 27
8
5 18
17
0
42
10 35
3 16
39
3
1
y
14
11
4 22
47
1 0 7
z
0 17
16 41
34
15
13 38
31
13 3 46
25 43
40
37
Figure 3: In blue, vertices of cartesian Grid inRd with their indices inqqqarray, d“2andN1“3, N2“4(left),d“3andpN1, N2, N3q “ p2,3,3q(right). The red numbers are the indices of unit hypercubes in the arraymememe.
2.2.1 Points of the cartesian grid
The grid points may be identied by ad-tupleııı“ pi1, i2,¨ ¨ ¨ , idq P v0, N1wˆ¨ ¨ ¨ˆ v0, Ndwand the corresponding grid point denoted byxxxıııwith integer coordinates is given by
xx xııı“
d
ÿ
l“1
ileeerls“ pi1, i2,¨ ¨ ¨, idqt“ııı (5) where eeer1s, . . . , eeerds(
denotes the standard basis ofRd.
We want to store all the grid points in a 2D-arrayqqqof sized-by-nq.To dene an order of storage in the arrayqqq,we will use the mapping functionG
Gpıııq “1`
d
ÿ
l“1
ilβl“1` xııı, βββy, @ıııP v0, N1w ˆ ¨ ¨ ¨ ˆ v0, Ndw (6) whereβββ “ pβ1, . . . , βdq PNd and
βl“
l´1
ź
j“1
pNj`1q, @lP v1, dw. (7)
TheG function maps the tuple points setv0, N1w ˆ ¨ ¨ ¨ ˆ v0, Ndw to the global points index set v1, nqw.From this function, we dene the vertex arrayqqqas
qqqp:,Gpıııqq “xxxııı“ııı, @ıııP v0, N1w ˆ ¨ ¨ ¨ ˆ v0, Ndw (8) According to the numbering choice G, we give in Algorithm 1 the vectorized functionCartesianGridPoints which returns the arrayqqq.In Appendix B, we explain how this function was written
Algorithm 1 Function CartesianGridPoints : computes the d-by-nq array q
q
qwhich contains all the points of the cartesian grid QNNN(vectorized version) Input :
N N
N : array ofdintegers,NNNpiq “Ni. Output :
q q
q : array ofd-by-nq integers.
FunctionqqqÐCartesianGridPoints(NNN) β
ββÐCGbetapNNNq forrÐ1to ddo
A A
AÐReshapepRepTilepr0 :NNNprqs, βββprq,1q,1,pNNNprq `1qβββprqq q
q
qpr,:q ÐRepTilepAAA,1,ProdpNNNpr`1 :dq `1qq end for
endFunction
The function CGbeta used in previous algorithm computes theβl, @lP v1, dw, by using (7). This function is given in Algorithm 2.
Algorithm 2 FunctionCGbeta : Computesβl,@lP v1, dw,dened in (7) Input :
NN
N : array ofdintegers,NNNpiq “Ni. Output :
ββ
β : array of dintegers such thatβββplq “βldened in (7) Functionβββ ÐCGbeta (NNN)
βββp1q Ð1
forlÐ2 toddo ββ
βplq Ðβββpl´1q ˆ pNNNpl´1q `1q end for
endFunction
From the arrayqqqdened in (8), we can now construct the tessellation of the cartesian gridQNNN with unitd-hypercubes.
2.2.2 Connectivity array of a cartesian grid
Thed-dimensional cartesian gridQNNNcan be partitionned innmeunitd-hypercubes which have as vertices the cartesian grid points. All these unit hypercubes can be uniquely identied by their vertex of minimal coordinates.
LetıııP v0, N1vˆ ¨ ¨ ¨ ˆ v0, Ndv.We denote by Hııı the unit hypercube dened by its2d vertices
xxxııı`ppp, @pppP v0,1wd.
We want to build the connectivity arraymememeof dimensions 2d-by-nme such that me
me
mepl, kqis the index in arrayqqqof the l-th vertex of the k-th hypercube : this vertex is qqqp:,mememepl, kqq. To dene an order of storage of the hypercubes in the arraymememe, we will use the functionHdened by
Hpıııq “1`
d
ÿ
l“1
il l´1
ź
j“1
Nj, ıııP v0, N1vˆ ¨ ¨ ¨ ˆ v0, Ndv (9) This bijective function maps the tuple points set v0, N1vˆ ¨ ¨ ¨ ˆ v0, Ndv to the global points index set v1, nmewsuch thatk“Hpıııq.
The inverse functionH-1 can easily be built. Indeed, if we dene thed-by- nme arrayHinvHinvHinvby
HinvHinvHinvÐCartesianGridPointspNNN´1q.
then by construction we have
H-1pkq “HinvHinvHinvp:, kq, @kP v1, nmew
LetkP v1, nmewandııı“H-1pkq.Thek-th hypercube is Hııı andxxxııı is its vertex of minimal coordinates. By construction of arrayqqqwe have
xxxııı“qqqp:,Gpıııqq
From vectorβββ dened in (7), we haveGpıııq “1` xııı, βββy.Using matricial opera- tions we can dene the1-by-nme arrayiBaseiBaseiBaseby
iBase
iBaseiBaseÐβββt˚HinvHinvHinv`1 such that
Gpıııq “G˝H-1pkq “iBaseiBaseiBasepkq. (10) Letııı P v0, N1vˆ ¨ ¨ ¨ ˆ v0, Ndvand k“Hpıııq. We choose vertices local num- bering in thek-th hypercube to be identical with that described ine section 2.1.
That is why we take
qqqp:,mememepl, kqq “xxxııı`qpqqp:, lq “xxxııı`pqqqp:,lq wherepqqqis dened in section 2.1. So we obtain
mememepl, kq “Gpııı`qpqqp:, lqq (11) Lemma 6 LetıııPQNNN andpppPZd,such thatııı`pppPQNNN.We have
Gpııı`pppq “Gpıııq ` xppp, βββy (12) whereβββ is dened in (7).
Proof: We have
Gpııı`pppqdef“1`
d
ÿ
s“1
pis`plq
s´1
ź
j“1
pNj`1q
“1`
d
ÿ
s“1
is
s´1
ź
j“1
pNj`1q `
d
ÿ
s“1
ps
s´1
ź
j“1
pNj`1q
“Gpıııq `
d
ÿ
s“1
psβs.
˝ From Lemma 6 and denition ofβββ in (7), we obtain Gpııı`qqpqp:, lqq “Gpıııq `
d
ÿ
s“1
pq q
qps, lqβs“Gpıııq ` xpqqqp:, lq, βββy From (11), we have
me
memepl, kq ÐiBaseiBaseiBasepkq ` xpqqqp:, lq, βββy, @lP v1, dw or in a vectorized form
mememepl,:q ÐiBaseiBaseiBase` xqqpqp:, lq, βββy
So we can easily write the functionCGTessHyp in Algorithm 3 which computes theqqqandmememearrays.
Algorithm 3 FunctionCGTessHyp : computes the vertices array qqq and the connectivity arraymememeobtained from a tesselation of the cartesian gridQNNNwith unit hypercube.
Input : NN
N : array ofdintegers,NNNpiq “Ni. Output :
q : vertices array ofd-by-nq integers.
meme
me : connectivity array of 2d-by-Nh integers. mememepl, kqis the
index in arrayqqqof thel-th vertex of the k-th hypercube : this vertex isqqqp:,mememepl, kqq.
Functionrqqq,mememes ÐCGTessHyp(NNN) q
qqÐCartesianGridPointspNNNq Hinv
HinvHinvÐCartesianGridPointspNNN´1q pq
qqÐCartesianGridPointspOnesp1, dqq β
ββÐCGbetapNNNq iBase
iBaseiBaseÐβββt˚HinvHinvHinv`1 forlÐ1 to2d do
meme
mepl,:q ÐiBaseiBaseiBase` xβββ,qpqqp:, lqy end for
endFunction
2.3 Numbering of the m-faces of the unit d-hypercube
LetmP v0, dw.As introduced in section 1, them-faces of the unitd-hypercube r0,1sd are unitm-hypercubes inRd dened by the product of d intervals where d´mintervals are reduced to the singletont0uort1u(called reduced dimension)
We havenc “ ˆd
m
˙
possible choices to select the index of thed´mreduced dimensions (combination of d elements taken d´m at a time) and for each selected dimension 2choices : t0uort1u.
So if l P v1, dw is the index of a reduced dimension then verticesxxxıııp“ ııı “ pi1, . . . , idqqis such thatil“0(minimum value) oril“1(maximum value).
LetLrd,ms be thenc-by-pd´mqarray given by Lrd,msÐCombspv1, dw, d´mq.
Then each row of Lrd,ms contains the index of the d´m reduced dimensions of anm-face sorted by lexicographical order (seeCombsfunction description in Appendix A)
LetSrd´ms be thepd´mq-by-2d´marray given by
Srd´msÐCartesianGridPointspOnesp1, d´mqq.
This array contains all the possible choices of the constants for thed´mreduced dimensions (2 choices per dimension) : values are0 for constant minimal value or 1for maximal value.
Denition 7 Let lP v1, ncw, rP v1,2d´mw andk“2d´mpl´1q `r. The k-th m-faces of the unit reference d-hypercube is dened by
!
xxxP r0,1sd such thatxxxpLrd,mspl, sqq “Srd´msps, rq, @sP v1, d´mw )
or in a vectorized form
! x x
xP r0,1sd such thatxxxpLrd,mspl,:qq “Srd´msp:, rq)
(13) For example, to obtain the ordered2-faces of the unit3-hypercube we com- pute
Lr3,2s“
¨
˝ 1 2 3
˛
‚ and Sr1s“` 0 1˘
and then we have
2-face number Set
1 xxxP r0,1s3 such thatx1“0( 2 xxxP r0,1s3 such thatx1“1( 3 xxxP r0,1s3 such thatx2“0( 4 xxxP r0,1s3 such thatx2“1( 5 xxxP r0,1s3 such thatx3“0( 6 xxxP r0,1s3 such thatx3“1( To obtain the ordered1-faces of the unit3-hypercube we compute
Lr3,1s“
¨
˝ 1 2 1 3 2 3
˛
‚ and Sr2s“
ˆ0 1 0 1 0 0 1 1
˙
and then we have
1-face number Set
1 xxxP r0,1s3 such thatx1“0, x2“0( 2 xxxP r0,1s3 such thatx1“1, x2“0( 3 xxxP r0,1s3 such thatx1“0, x2“1( 4 xxxP r0,1s3 such thatx1“1, x2“1( 5 xxxP r0,1s3 such thatx1“0, x3“0( 6 xxxP r0,1s3 such thatx1“1, x3“0( 7 xxxP r0,1s3 such thatx1“0, x3“1( 8 xxxP r0,1s3 such thatx1“1, x3“1( 9 xxxP r0,1s3 such thatx2“0, x3“0( 10 xxxP r0,1s3 such thatx2“1, x3“0( 11 xxxP r0,1s3 such thatx2“0, x3“1( 12 xxxP r0,1s3 such thatx2“1, x3“1( To obtain the ordered0-faces of the unit3-hypercube we compute
Lr3,0s“`
1 2 3˘
and Sr3s “
¨
˝
0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1
˛
‚
and then we have
1-face number Set
1 xxxP r0,1s3 such thatx1“0, x2“0, x3“0( 2 xxxP r0,1s3 such thatx1“1, x2“0, x3“0( 3 xxxP r0,1s3 such thatx1“0, x2“1, x3“0( 4 xxxP r0,1s3 such thatx1“1, x2“1, x3“0( 5 xxxP r0,1s3 such thatx1“0, x2“0, x3“1( 6 xxxP r0,1s3 such thatx1“1, x2“0, x3“1( 7 xxxP r0,1s3 such thatx1“0, x2“1, x3“1( 8 xxxP r0,1s3 such thatx1“1, x2“1, x3“1(
2.4 m-faces tessellations of a cartesian grid
LetQNNN be thed-dimensional cartesian grid dened in section 2.2. So as not to confuse notations, we denote byQNNN.qqqandQNNN.mememerespectively the vertices and connectivity arrays of the tessellation with unit hypercubes of the cartesian grid QNNN.
Letm P v0, dv and kP v1, Em,dw. We want to determine QmNNNpkqthe tessel- lation obtained from the restriction of the cartesian gridQNNN to itsk-thm-face where the numbering of them-faces is specied in section 2.3. We denote by
‚ QNNmNpkq.qqq,the (local) vertex array
‚ QNNmNpkq.mememe,the (local) connectivity array
‚ QNNmNpkq.toGlobal,the global indices such that
QNmNNpkq.qqq”QNNN.qqqp:,QNNmNpkq.toGlobalq.