Line data Source code
1 0 : \cond NEVER
2 : Distributed under the MIT License.
3 : See LICENSE.txt for details.
4 : \endcond
5 : # Domain Concepts {#domain_concepts}
6 :
7 : \tableofcontents
8 :
9 : * Computational Domain:<br>
10 : The region of spacetime on which a numerical simulation is performed.
11 :
12 : * Inertial Coordinate Frame:<br>
13 : A global coordinate frame covering the computational domain that is also the
14 : coordinate frame in which the initial (boundary) value problem that is being
15 : solved is specified. Denoted by Frame::Inertial.
16 :
17 : * Logical Coordinate Frame:<br> The coordinate frame of a reference
18 : cell. In the cell the logical coordinates cover the interval
19 : \f$[-1, 1]\f$ in each dimension. Currently the logical coordinates
20 : are Cartesian.
21 :
22 : * CoordinateMap "Coordinate Map":<br>
23 : A mapping between two coordinate frames. Coordinate maps are allowed to be
24 : time-dependent, as long as the time coordinate itself is unchanged.
25 :
26 : * Direction:<br>
27 : A logical coordinate axis and a label "Upper" or "Lower" depending on whether
28 : the Direction is aligned with or anti-aligned with the logical coordinate
29 : axis, respectively.
30 :
31 : * Block:<br>
32 : The computational domain is partitioned into a set of non-overlapping,
33 : distorted reference cells called Blocks. Each Block must have at most one
34 : neighboring Block in each Direction. The reference cell is embedded into a
35 : subset of the computational domain using a Coordinate Map from the
36 : logical frame of the Block to the global inertial frame. Blocks are
37 : identified by unique integral values.
38 :
39 : * Block Logical Coordinate Frame:<br>
40 : The logical coordinate frame of a Block, denoted by Frame::BlockLogical.
41 : The only requirement upon the logical coordinate frames of neighboring Blocks
42 : is that they have the same Coordinate Map from their logical coordinate frame
43 : to the global inertial frame on their shared boundary up to a mapping that
44 : swaps or negates the logical coordinate axes. In other words, at each point
45 : on their shared boundary, the logical coordinates of the two blocks are
46 : equal after possibly applying a permutation and sign flips.
47 :
48 : * Grid Coordinate Frame:<br>
49 : For time-dependent coordinate maps, it is useful (e.g. for computational
50 : efficiency) to split the Coordinate Map from Frame::BlockLogical to
51 : Frame::Inertial into a composition of two maps. This is done by introducing
52 : an intermediate coordinate frame (denoted by Frame::Grid) such that the
53 : mapping from Frame::BlockLogical to Frame::Grid is time-independent, and
54 : the mapping from Frame::Grid to Frame::Inertial is time-dependent.
55 :
56 : * Orientation:<br>
57 : The information of how the Block Logical Coordinates of neighboring Blocks are
58 : related.
59 :
60 : * \ref BlockNeighbors "Block Neighbors":<br>
61 : The identity and Orientation of neighboring Blocks of a given Block.
62 :
63 : * Element:<br> A reference cell that is a refined subregion of a Block
64 : defined by its Segments in each dimension. The properties of the
65 : Element (e.g coordinate map) are inherited from its Block, i.e. it
66 : is self-similar to the Block.
67 :
68 : * Refinement Level:<br>
69 : The number of times a Block is split in half in a given dimension.
70 :
71 : * Segment:<br> In each dimension, the specific subset of the block
72 : logical coordinate interval \f$[-1, 1]\f$ defined by the Refinement
73 : Level and an integer label such that the Segment's interval is
74 : \f$[-1 + 2 \frac{i}{N}, -1 + 2 \frac{i+1}{N}]\f$ where \f$i\f$ is
75 : the integer label and \f$N = 2^{(\textrm{Refinement Level})}\f$ is
76 : the number of segments on the Refinement Level.
77 :
78 : * Element Logical Coordinate Frame:<br>
79 : The logical coordinate frame of an Element. In each dimension, the Element
80 : Logical Coordinates are related to the Block Logical Coordinates by an affine
81 : mapping of the interval \f$[-1, 1]\f$ to the interval covered by the Segment
82 : in that dimension.
83 :
84 : * \ref SegmentId "Segment Identifier":<br>
85 : The Refinement Level and an integer labeling a Segment.
86 :
87 : * \ref ElementId "Element Identifier":<br>
88 : The Block Identifier containing the Element and a Segment Identifier
89 : in each dimension.
90 :
91 : * External Boundary:<br>
92 : A face of a Block or Element that has no neighbor.
93 :
94 : * Internal Boundary:<br>
95 : A boundary that is not an External Boundary.
96 :
97 : * Neighbors:<br>
98 : The identities and Orientation of the neighboring Blocks or Elements of a
99 : given Block or Element in a particular Direction .
100 :
101 : * External Boundary Condition:<br>
102 : A prescription for updating the solution on an External Boundary. Each
103 : External Boundary of a Block has exactly one External Boundary Condition
104 : associated with it.
|