SpECTRE Documentation Coverage Report
Current view: top level - __w/spectre/spectre/docs/DevGuide - DomainConcepts.md Hit Total Coverage
Commit: 9b01d30df5d2e946e7e38cc43c008be18ae9b1d2 Lines: 0 1 0.0 %
Date: 2024-04-23 04:54:49
Legend: Lines: hit not hit

          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 BlockNeighbor "Block Neighbor":<br>
      61             :   The identity and Orientation of a neighboring Block 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 Elements of a given Element
      99             :   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.

Generated by: LCOV version 1.14