SpECTRE Documentation Coverage Report
Current view: top level - Domain/Structure - NeighborIsConforming.hpp Hit Total Coverage
Commit: 1f2210958b4f38fdc0400907ee7c6d5af5111418 Lines: 1 2 50.0 %
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 <array>
       7             : #include <cstddef>
       8             : 
       9             : /// \cond
      10             : template <size_t VolumeDim>
      11             : class Direction;
      12             : template <size_t VolumeDim>
      13             : class OrientationMap;
      14             : namespace domain {
      15             : enum class Topology : uint8_t;
      16             : }  // namespace domain
      17             : /// \endcond
      18             : 
      19             : namespace domain {
      20             : /// \ingroup ComputationalDomainGroup
      21             : /// \brief Returns whether or not neighboring Blocks (or Elements) have
      22             : /// conforming block logical coordinates on their interface
      23             : ///
      24             : /// \details Block logical coordinates are considered to be conforming if they
      25             : /// are identical or related by a discrete rotation (i.e. a valid non-aligned
      26             : /// OrientationMap).  It is a requirement that neighboring Blocks be conforming
      27             : /// if their oriented topologies are the same in the interface dimensions.
      28             : ///
      29             : /// \note If neighboring Elements are conforming, they can exchange boundary
      30             : /// data via either copy (if they have the same h- and p-refinement) or
      31             : /// projection (if they don't), taking into account the discrete rotation if
      32             : /// necessary. If the neighbors are not conforming, boundary data will need to
      33             : /// be interpolated.
      34             : template <size_t VolumeDim>
      35           1 : bool neighbor_is_conforming(
      36             :     const std::array<Topology, VolumeDim>& self_topologies,
      37             :     const std::array<Topology, VolumeDim>& neighbor_topologies,
      38             :     const Direction<VolumeDim>& direction_to_neighbor,
      39             :     const OrientationMap<VolumeDim>& orientation_of_neighbor);
      40             : }  // namespace domain

Generated by: LCOV version 1.14