From da251d6a4fe245726a8f5354b07db1d4ab201949 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Tue, 2 Jan 2018 15:54:47 -0700 Subject: [PATCH] Write something about the Z order in the glossary. --- doc/doxygen/headers/glossary.h | 110 ++++++++++++++++++++++ doc/doxygen/images/simple-mesh-0.fig | 14 +++ doc/doxygen/images/simple-mesh-0.png | Bin 0 -> 1357 bytes doc/doxygen/images/simple-mesh-1.fig | 21 +++++ doc/doxygen/images/simple-mesh-1.png | Bin 0 -> 2221 bytes doc/doxygen/images/simple-mesh-2.fig | 28 ++++++ doc/doxygen/images/simple-mesh-2.png | Bin 0 -> 2973 bytes doc/doxygen/images/simple-mesh-3.fig | 37 ++++++++ doc/doxygen/images/simple-mesh-3.png | Bin 0 -> 3814 bytes doc/doxygen/images/simple-mesh-tree.fig | 46 +++++++++ doc/doxygen/images/simple-mesh-tree.png | Bin 0 -> 7167 bytes include/deal.II/distributed/shared_tria.h | 2 + 12 files changed, 258 insertions(+) create mode 100644 doc/doxygen/images/simple-mesh-0.fig create mode 100644 doc/doxygen/images/simple-mesh-0.png create mode 100644 doc/doxygen/images/simple-mesh-1.fig create mode 100644 doc/doxygen/images/simple-mesh-1.png create mode 100644 doc/doxygen/images/simple-mesh-2.fig create mode 100644 doc/doxygen/images/simple-mesh-2.png create mode 100644 doc/doxygen/images/simple-mesh-3.fig create mode 100644 doc/doxygen/images/simple-mesh-3.png create mode 100644 doc/doxygen/images/simple-mesh-tree.fig create mode 100644 doc/doxygen/images/simple-mesh-tree.png diff --git a/doc/doxygen/headers/glossary.h b/doc/doxygen/headers/glossary.h index e035a08532..82dceec989 100644 --- a/doc/doxygen/headers/glossary.h +++ b/doc/doxygen/headers/glossary.h @@ -1791,5 +1791,115 @@ * It is available from http://www.math.colostate.edu/~bangerth/publications.html, also see deal.II publications for details. * * + * + *
@anchor GlossZOrder Z order
+ *
+ * The "Z order" of cells describes an order in which cells are traversed. + * + * By default, if you write a loop over all cells in deal.II, the cells + * will be traversed in an order where coarser cells (i.e., cells that were + * obtained from coarse mesh cells with fewer refinement steps) come before + * cells that are finer (i.e., cells that were obtained with more refinement + * steps). Within each refinement level, cells are traversed in an order + * that has something to do with the order in which they were created; + * in essence, however, this order is best of thought of as "unspecified": + * you will visit each cell on a given refinement level exactly once, in + * some order, but you should not make any assumptions about this order. + * + * Because the order in which cells are created factors into the order + * of cells, it can happen that the order in which you traverse cells is + * different for two identical meshes. For example, think of a 1d (coarse) + * mesh with two cells: If you first refine the first of these cells and then + * the other, then you will traverse the four cells on refinement level 1 + * in a different order than if you had first refined the second coarse + * cell and then the first coarse cell. + * + * This order is entirely practical for almost all applications because + * in most cases, it does not actually matter in which order one traverses + * cells. Furthermore, it allows using data structures that lead to + * particularly low cache miss frequencies and are therefore efficient + * for high performance computing applications. + * + * On the other hand, there are cases where one would want to traverse + * cells in a particular, specified and reproducible order that only + * depends on the mesh itself, not its creation history or any other + * seemingly arbitrary design decisions. The "Z order" is one way + * to achieve this goal. + * + * To explain the concept of the Z order, consider the following sequence + * of meshes (with each cell numbered using the "level.index" notation, + * where "level" is the number of refinements necessary to get from a + * coarse mesh cell to a particular cell, and "index" the index of this + * cell within a particular refinement level): + * + * @image html simple-mesh-0.png "A coarse mesh" + * @image html simple-mesh-1.png "The mesh after one refinement cycle" + * @image html simple-mesh-2.png "The mesh after two refinement cycles" + * @image html simple-mesh-3.png "The mesh after three refinement cycles" + * + * Note how the cells on level 2 are ordered in the order in which they + * were created. (Which is not always the case: if cells had been removed + * in between, then newly created cells would have filled in the holes + * so created.) + * + * The "natural" order in which deal.II traverses cells would then be + * 0.0 -> 1.0 -> 1.1 -> 1.2 -> 1.3 -> 2.0 -> 2.1 -> 2.2 -> 2.3 -> 2.4 -> + * 2.5 -> 2.6 -> 2.7. (If you want to traverse only over the + * @ref GlossActive "active cells", then omit all cells from this + * list that have children.) + * This can be thought of as the "lexicographic" + * order on the pairs of numbers "level.index", but because the index + * within each level is not well defined, this is not a particularly useful + * notion. Alternatively, one can also think of it as one possible breadth-first + * traversal of the tree that corresponds to this mesh and that represents + * the parent-child relationship between cells: + * + * @image html simple-mesh-tree.png "The tree that corresponds to the mesh after three refinement cycles" + * + * On the other hand, the Z order corresponds to a particular + * depth-first traversal of the tree. Namely: start with a cell, and if it + * has children then iterate over these cell's children; this rule is + * recursively applied as long as a child has childen. + * + * For the given mesh above, this yields the following order: 0.0 -> 1.0 -> 2.4 + * -> 2.5 -> 2.6 -> 2.7 -> 1.1 -> 1.2 -> 1.3 -> 1.4 -> 2.0 -> 2.1 -> 2.2 -> 2.3. + * (Again, if you only care about active cells, then remove 0.0, 1.0, and 1.3 + * from this list.) Because the order of children of a cell is well defined + * (as opposed to the order of cells within each level), this "hierarchical" + * traversal makes sense and is, in particular, independent of the history + * of a triangulation. + * + * In practice, it is easily implemented using a recursive function: + * @code + * template + * void visit_cells_hierarchically (const typename Triangulation::cell_iterator &cell) + * { + * if (cell->has_children()) + * for (unsigned int c=0; cn_children(); ++c) + * visit_cells_hierarchically (cell->child(c)); + * else + * { + * ... do whatever you wanted to do on each cell ...; + * } + * } + * @endcode + * This function is then called as follows: + * @code + * // loop over all coarse mesh cells + * for (typename Triangulation::cell_iterator cell = triangulation.begin(0); + * cell != triangulation.end(); ++cell) + * visit_cells_hierarchically (cell); + * @endcode + * + * Finally, as an explanation of the term "Z" order: if you draw a line through + * all cells in the order in which they appear in this hierarchical fashion, + * then it will look like a left-right inverted Z on each refined cell. Indeed, + * the curve so defined can be thought of a space-filling curve and is also + * sometimes called "Morton ordering", see + * https://en.wikipedia.org/wiki/Z-order_curve . + *
+ * + * + * * */ diff --git a/doc/doxygen/images/simple-mesh-0.fig b/doc/doxygen/images/simple-mesh-0.fig new file mode 100644 index 0000000000..64247f6d44 --- /dev/null +++ b/doc/doxygen/images/simple-mesh-0.fig @@ -0,0 +1,14 @@ +#FIG 3.2 Produced by xfig version 3.2.6 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 450 450 2250 450 2250 2250 450 2250 450 450 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 450 450 2250 450 2250 2250 450 2250 450 450 +4 1 0 50 -1 18 16 0.0000 4 150 270 1350 1440 0.0\001 diff --git a/doc/doxygen/images/simple-mesh-0.png b/doc/doxygen/images/simple-mesh-0.png new file mode 100644 index 0000000000000000000000000000000000000000..3380d09faa35bc6d45b2850352ba3e3de7238f26 GIT binary patch literal 1357 zcmeAS@N?(olHy`uVBq!ia0vp^FF}}t1xRMw-N*n^Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4>+sSM@AcMWc)7O>#5hIhBguY=w_XP$9<}aQujv*Dd-rm|+DCH>9@Nm1F zQhJMDr_5}z0?shb9V{zZG#t5Py;MC^X9(4-G!8subwQSmt@_A@Z!iCTt{2~6^(8Ir zbNA$u6;}jK@7`#>;F_9Xs@Um`+ZU?Mdlh^{MJcV&_FLQ)kNGA_kJ4+TtIcuD!XU=jFwduZ6xYyX&IX!u|fO z-uc)yi(g;Ao_euBY4RKKdo$io`~2@r?f;Lpt2=p)zvs^X7yfekzmMzkeqB9#(RjN5 zl1cV2_teYi%@5ptW8a#81&X%yN}_(3&feR3_G0mLKalj7H_y+__fW0B6uj+!;-j;V zRPOHY;j>p=-m4zuF>lM8x^Gv5*KdyO?#!8_e)q4Wkox;eWx8scJm;01uUqhN>W*BS ziA?G%tA0-Y_f~xNx{EGaKPS)IDx1|b-3E_%fGivk606DJ@GxmUg6-~5#LXz+DzZ|{n@u&S6%d8PIf!;>w(>c z2ib3>{8X4cqPBmul;iWueZ1=4);T9wKJ0fFER_xirnVVJP0TJHJ^b+OzNm9^Pw-4M zQCd`1_{_d}uKh&j2ZvTW59+<+PsKsFSlq*-}n2Bj7|<(KBA zWagzissv9^J>!6(l5w}5IzU~0osi;6Sz^B4kL+;k1~OchvTxGjP544$rj JF6*2UngEiwKK}p! literal 0 HcmV?d00001 diff --git a/doc/doxygen/images/simple-mesh-1.fig b/doc/doxygen/images/simple-mesh-1.fig new file mode 100644 index 0000000000..db32eabcff --- /dev/null +++ b/doc/doxygen/images/simple-mesh-1.fig @@ -0,0 +1,21 @@ +#FIG 3.2 Produced by xfig version 3.2.6 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 450 450 2250 450 2250 2250 450 2250 450 450 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1350 450 2250 450 2250 1350 1350 1350 1350 450 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1350 1350 450 1350 450 2250 1350 2250 1350 1350 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 450 450 2250 450 2250 2250 450 2250 450 450 +4 1 0 50 -1 18 16 0.0000 4 150 270 855 1935 1.0\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 1800 1935 1.1\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 855 990 1.2\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 1800 990 1.3\001 diff --git a/doc/doxygen/images/simple-mesh-1.png b/doc/doxygen/images/simple-mesh-1.png new file mode 100644 index 0000000000000000000000000000000000000000..797e3a645fc154ea1ce995d9eef42cb6c930e090 GIT binary patch literal 2221 zcmc&#dpy&7AOFoIEMk&`ik!|NjajW+N{7s58nwomYZyjshSBB{<#}Y}a^x;K$;1hn zkZXuqolx%VLZ%awyVyA)XFadi^T+eY^XGG(Ki=Q>`*V4}KL32auMhL014;?32?hW_ z$qsFUld$L;R-d;EN;`KMMd6 zFaVhI0s!+o0N78x+kEMaq#)&EkFo)FZl(9MOCkj-+9h1V=zqcXb&#b*$kFVuNI4-$ zN?ikvbDmLlB; z-mZ+tmf+^f*lTL4_RETsP1yMuncK@w6?lQ3d1=-j1J-$rCfcL zA&jd+EYYGdHohbTiZW&W zoL_O&=yB{l{gY{t?yVHQJP@3Q$Q15f+LpV*qTQ^sO8U{I&B#8M61R}1b@zuoRS%#( z0`G{=Oq7q3&#o7ryczrkvwo+ai|rVkQ5}Cg%RjZc)uZv9)WAuuX#42=#(wg61sImG zQc64bveq?|Kil)N_QQr}_;f(}Zy!4EFr;pGOJ6|Lbq&l#UGbomcoGe8iZCOi$rhDC zrL&i=DtM~DZX!}H4<@XL&h!Mk7=NUbZ%2d*KIU=yu%ru>BjpVSXZ2ZfCk)MOtHn?e zlK)ekpWdAV{Gz2eNK=-p&tt>;_TroF`uvwz!BAWITuIN4OaPvh$dtXP&)Ll_pwQ~H~$%3q%HY}Xu>lFEi^F|*)nJ^QM8E^MJsaU_I9!c@6?k2m%v zWase(k=eHv=^D^TWZbiY(#c%+oxO&F?1621aKbi55mqzp)HRIw+B{X%U!6Q&lHUmh z*_%8PiY?iykAwna?P4R`dQ4!I?3%R*NO{1X9f&)8#5w)xNC=2Pb-TONJ0riW^WL-P z(8_d9tv|JrMhSpv^k&N^mS-LC-kC72p`Z$wMH2q0*|6?qy)1g~>`@7? z5dO^zKW!i=I*n`UI9cHD!aE7h)2~1E2yKBPaEJa1TU6(KUYNe1{j-{Kqj(Xoqhjc zZzmFnRPD;C=F*YWjZD1)VLi0|KD4I1X{|)Hxm(*W+k)KzLM1o+4k0h&G2}#<^NK-B z#rV;=-MP|vT>IM~z@;4g`Y`qZIou{X#;NsA;%0ivDC711 zGH5|M9UdjKTO2(chk1@M*#nod3!IuKkWG%)YoNx*rc1?6A%g)t?S4&1jF@gE{Hn2*LQV*#a7DX8x=g4+L8RJ z)TV^rml?e9QxCrVg|)E*vx!zsD>6O}wDke5=VG?l*tiZZpzQe|)&B`5bN z4N0K+dei*OiD7;c0^l$cQz*;?3WMWK5a#fc<_H)RcG?^UvtnD%{fB`Z;v4AC`0obT z{1<15LFd~9s;|E}IuPdJ$c1Q=CYHP2Xe*ukF?SKFP literal 0 HcmV?d00001 diff --git a/doc/doxygen/images/simple-mesh-2.fig b/doc/doxygen/images/simple-mesh-2.fig new file mode 100644 index 0000000000..231932847e --- /dev/null +++ b/doc/doxygen/images/simple-mesh-2.fig @@ -0,0 +1,28 @@ +#FIG 3.2 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 450 450 2250 450 2250 2250 450 2250 450 450 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1350 450 2250 450 2250 1350 1350 1350 1350 450 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1350 1350 450 1350 450 2250 1350 2250 1350 1350 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 450 450 2250 450 2250 2250 450 2250 450 450 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1800 450 2250 450 2250 900 1800 900 1800 450 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1800 900 1350 900 1350 1350 1800 1350 1800 900 +4 1 0 50 -1 18 16 0.0000 4 180 180 855 1935 1.0\001 +4 1 0 50 -1 18 16 0.0000 4 180 180 1800 1935 1.1\001 +4 1 0 50 -1 18 16 0.0000 4 180 180 855 990 1.2\001 +4 1 0 50 -1 18 16 0.0000 4 180 180 1575 1215 2.0\001 +4 1 0 50 -1 18 16 0.0000 4 180 180 2025 1215 2.1\001 +4 1 0 50 -1 18 16 0.0000 4 180 180 1575 765 2.2\001 +4 1 0 50 -1 18 16 0.0000 4 180 180 2025 765 2.3\001 diff --git a/doc/doxygen/images/simple-mesh-2.png b/doc/doxygen/images/simple-mesh-2.png new file mode 100644 index 0000000000000000000000000000000000000000..708c7ee39f64619e708946097ae0867adf6a3b12 GIT binary patch literal 2973 zcmb^zX*ksT`i~HeqluUZlO;PdB+D3OU&@prOPIlAq%f9|F~(A4-wKVyal%+)NcLSK zB}|lvEHzEGB2yZ5oZRU=_nzmT=brOC_rv+{{@&&HZXez))JA0l|;uOteGe*C{yJs&(&i8TzDp~6zGEjkiIOOq-vgq#@ zVt~#e?6ydc%(q{OLyQfr@5yy!^>vxfth$d3*^67A6eL#XI4J)4@lVHUy!UckF`)SH zI=yXP0W1Xav+Q!b-GnJ^vY{rsQi*sBafQp<){$8_)JKZw!1Hws?(?L3kWbO zBJKrRG@-ND_`K@k%0{%R6-f)L0ej&1b*2B*$@dC(a>==pd1=MC!~-VUSY@ZPG-82v zF1^eHcV{Le+Jc7Wuv3q=Ywf7~{L`e9s>s)L{h=Lf0kOmD-PGIF!ando_Kvh+Xpy@wAiwoC+vWRQIx_RY}g^OyXY{-`g`YX-4I}r zCx{C4Kr=rx%narQB6ofsfx40QE#uL$L<Y4CttwAT%l9`yg<4f9PKksLd@VrWHcp&D zTd&I0DPH2k3YzVauTi>}a=60(OjWw?<*O4nI;8D;_k9YTBF7>(N@$rb_(*iM=0HX{ zNPni*xx8)IRsK@9{rT!V6d18PumEOp0kR@r?#2yuo31b^wY*)c+hr;b0`18%Azr(2fXN?p{&J3vzgKs zXL5e;GY#+L=VRExsDG2N=k?rt_EvdU;+COIHSb>R?mMNMnJsMDJ(*&p0wvHjqp3f4 zyku|>(UrmuRWwcCjWd>~M>X5Jvsl-f+pI1dn}3vpZMCvfVg{>6?FSlmP7e-Me4Rj= zKke%5n%b-y2Z25cflT1LqXdMrIu9P8Mvx*-4(KeG+RA1J);c^LMAvl|T1Iwwr+CKn zI%!;LiIvTct_8W>KAw5MO2tUJrfxpg&BQoP(rcGx0lU2 zC7XS*7JOxmgk*=7FzLhPk3{Y+k)wwAgulxRXbDMQ9gkM^kD1~4c+q4d z4HXK@*O2qci&Opdp{H+( zEs!wN0dIaWsuTyHy2iPPEep)(n$SKpjS*NjSz?T>e6FnRhh2WT%y(9Wk+P8YrHJ}0 zI+6$54~#|{4m2W4hd9&PjI>|etHLm-kR!7_OWIZ$0r)E`N}?(Y&MPLHqT>{eOX&0u zcJNgKeq--RPE~B@Zr7^8=f|o&hFm3D^>6mm6mQ+;{ax)++-ze?#A3jg9qZV zyd-kj-oM@|e}wzLcF;eiZ7s-Xrb6Ix*0%;TPh5e3ACfFmX)i%th;}-ikRa`O(gikf zNhd=W>n5+Um!<8~pFi}<<74CU$b}h|zLXbvcD&Uu9nPieSqOdm}NrcK~} zpFpgKY3QYWVd9=^jg!lv->T_;38I=!=$nW7Ah^{JrEJ0`Uk-08Rq!ML*t*D|qgr3Q zQ0^;kHkzwqe#zP1q1k?-{Yshb-^fYqZE7|F&w;|hj)f9=i>>(hfDR(kbKQ5`S-ne@ zil@~Yr3Q|7h5OGPu$G+PZ2#fs){We?+IqzXVMt_m1lVBmg+gEP2`S`C=RI#&%!J#?UdVyxoDc@3=7@_Hdj}o>*kKP zJ07~!nE|o$|54ZPwX8BK8^K-n>sk#I@2FLMO>5$(TmIMIuKP*h-<#YCtovL}BrJRb z_X^M0W%*u?%CSxNQLgzm$B%s8>>{v28WH$Jf!}Y)@0xiXHqTIWPed?_!avcH&q3g`op(_aSSu?E9WVe=GZN?Fv(^;#g>|PV>QI>_}4+d z6&Woina5s^;of?uJ|Gy_kHxop%mxF1~Z zh!A`ZZ)D?-_6;*5ga@7T5Ari3kN_QBT@n}6Vd^lp(E2o2SNuP^&c2~x{)8alw1t%> XTuTqi@3F^_`w!S!qAY67ysrEUf^%k6 literal 0 HcmV?d00001 diff --git a/doc/doxygen/images/simple-mesh-3.fig b/doc/doxygen/images/simple-mesh-3.fig new file mode 100644 index 0000000000..29a5b9fe02 --- /dev/null +++ b/doc/doxygen/images/simple-mesh-3.fig @@ -0,0 +1,37 @@ +#FIG 3.2 Produced by xfig version 3.2.6 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +6 1305 405 2295 1395 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1350 450 2250 450 2250 1350 1350 1350 1350 450 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1800 450 2250 450 2250 900 1800 900 1800 450 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1800 900 1350 900 1350 1350 1800 1350 1800 900 +4 1 0 50 -1 18 16 0.0000 4 150 270 1575 1215 2.0\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 2025 1215 2.1\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 1575 765 2.2\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 2025 765 2.3\001 +-6 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1350 1350 450 1350 450 2250 1350 2250 1350 1350 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 450 450 2250 450 2250 2250 450 2250 450 450 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 450 1350 1350 1350 1350 2250 450 2250 450 1350 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 900 1350 1350 1350 1350 1800 900 1800 900 1350 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 900 1800 450 1800 450 2250 900 2250 900 1800 +4 1 0 50 -1 18 16 0.0000 4 150 270 1800 1935 1.1\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 855 990 1.2\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 675 2115 2.4\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 1125 2115 2.5\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 675 1665 2.6\001 +4 1 0 50 -1 18 16 0.0000 4 150 270 1125 1665 2.7\001 diff --git a/doc/doxygen/images/simple-mesh-3.png b/doc/doxygen/images/simple-mesh-3.png new file mode 100644 index 0000000000000000000000000000000000000000..a76cbcc729168d238fea052cf1060c63ded80e39 GIT binary patch literal 3814 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 literal 0 HcmV?d00001 diff --git a/include/deal.II/distributed/shared_tria.h b/include/deal.II/distributed/shared_tria.h index fae5637e10..d072095013 100644 --- a/include/deal.II/distributed/shared_tria.h +++ b/include/deal.II/distributed/shared_tria.h @@ -148,6 +148,8 @@ namespace parallel * children are enumerated by the GeometryInfo class. The * "Z-order" is also sometimes called "Morton ordering", see * https://en.wikipedia.org/wiki/Z-order_curve . + * + * @see This @ref GlossZOrder "glossary entry". */ partition_zorder = 0x2, -- 2.39.5