SpECTRE Documentation Coverage Report
Current view: top level - Domain/Amr - Helpers.hpp Hit Total Coverage
Commit: ebec864322c50bab8dca0a90baf8d01875114261 Lines: 1 1 100.0 %
Date: 2020-11-25 20:28:50
Legend: Lines: hit not hit

          Line data    Source code
       1           1 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : /// \file
       5             : /// Functions used for adaptive mesh refinement decisions.
       6             : 
       7             : #pragma once
       8             : 
       9             : #include <array>
      10             : #include <cstddef>
      11             : 
      12             : #include "Domain/Amr/Flag.hpp"
      13             : 
      14             : /// \cond
      15             : template <size_t VolumeDim>
      16             : class Direction;
      17             : 
      18             : template <size_t VolumeDim>
      19             : class ElementId;
      20             : 
      21             : template <size_t VolumeDim>
      22             : class OrientationMap;
      23             : /// \endcond
      24             : 
      25             : namespace amr {
      26             : /// \ingroup ComputationalDomainGroup
      27             : /// \brief Computes the desired refinement level of the Element with ElementId
      28             : /// `id` given the desired amr::Flag%s `flags`
      29             : template <size_t VolumeDim>
      30             : std::array<size_t, VolumeDim> desired_refinement_levels(
      31             :     const ElementId<VolumeDim>& id,
      32             :     const std::array<amr::Flag, VolumeDim>& flags) noexcept;
      33             : 
      34             : /// \ingroup ComputationalDomainGroup
      35             : /// \brief Computes the desired refinement level of a neighboring Element with
      36             : /// ElementId `neighbor_id` given its desired amr::Flag%s `neighbor_flags`
      37             : /// taking into account the OrientationMap `orientation` of the neighbor
      38             : ///
      39             : /// \details The OrientationMap `orientation` is that from the Element that has
      40             : /// a neighbor with ElementId `neighbor_id`
      41             : template <size_t VolumeDim>
      42             : std::array<size_t, VolumeDim> desired_refinement_levels_of_neighbor(
      43             :     const ElementId<VolumeDim>& neighbor_id,
      44             :     const std::array<amr::Flag, VolumeDim>& neighbor_flags,
      45             :     const OrientationMap<VolumeDim>& orientation) noexcept;
      46             : 
      47             : /// \ingroup ComputationalDomainGroup
      48             : /// \brief Whether or not the Element with `element_id` can have a sibling
      49             : /// in the given `direction`
      50             : template <size_t VolumeDim>
      51             : bool has_potential_sibling(const ElementId<VolumeDim>& element_id,
      52             :                            const Direction<VolumeDim>& direction) noexcept;
      53             : }  // namespace amr

Generated by: LCOV version 1.14