SpECTRE Documentation Coverage Report
Current view: top level - Domain/Structure - FaceType.hpp Hit Total Coverage
Commit: 1f2210958b4f38fdc0400907ee7c6d5af5111418 Lines: 2 3 66.7 %
Date: 2025-12-05 05:03:31
Legend: Lines: hit not hit

          Line data    Source code
       1           0 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : #pragma once
       5             : 
       6             : #include <cstdint>
       7             : #include <iosfwd>
       8             : 
       9             : namespace domain {
      10             : 
      11             : /// \brief  The type of face for a Block or Element
      12             : ///
      13             : /// \details For a face with neighboring Blocks (or Elements) the FaceType is
      14             : /// determined by whether the block logical coordinates of the  neighboring
      15             : /// Blocks (or Elements) have conforming block logical coordinates on their
      16             : /// interface. Block logical coordinates are considered to be conforming if
      17             : /// they are identical (i.e. an aligned OrientationMap) or related by a
      18             : /// discrete rotation (i.e. a valid non-aligned OrientationMap).
      19             : ///
      20             : /// \note FaceType::Topological is for the faces of an Element or Block with a
      21             : /// Topology other than I1 (e.g. the angular directions of an S2 topology). The
      22             : /// face is not on the external boundary, and has no neighboring Block or
      23             : /// Element.
      24           1 : enum class FaceType : uint8_t {
      25             :   /// Used to denote an uninitialized value
      26             :   Uninitialized = 0,
      27             :   /// Used to denote a face on an external boundary
      28             :   External,
      29             :   /// Used to denote a face that is not on the external boundary, and that has
      30             :   /// no neighboring Block or Element (e.g. the angular directions of an S2
      31             :   /// topology).
      32             :   Topological,
      33             :   /// Used to denote a face shared with one or more conforming, aligned
      34             :   /// neighbors
      35             :   ConformingAligned,
      36             :   /// Used to denote a face shared with one or more conforming, unaligned
      37             :   /// neighbors
      38             :   ConformingUnaligned,
      39             :   /// Used to denote a face shared with a single non-conforming neighbor
      40             :   SingleNonconforming,
      41             :   /// Used to denote a face shared with multiple non-conforming neighbors
      42             :   MultipleNonconforming,
      43             : };
      44             : 
      45             : /// Output operator for a FaceType.
      46           1 : std::ostream& operator<<(std::ostream& os, FaceType face_type);
      47             : }  // namespace domain

Generated by: LCOV version 1.14