SpECTRE Documentation Coverage Report
Current view: top level - Evolution/DiscontinuousGalerkin/Limiters - WenoGridHelpers.hpp Hit Total Coverage
Commit: 3c072f0ce967e2e56649d3fa12aa2a0e4fe2a42e Lines: 0 1 0.0 %
Date: 2024-04-23 20:50:18
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             : class DataVector;
      11             : template <size_t>
      12             : class Direction;
      13             : template <size_t>
      14             : class Element;
      15             : template <size_t>
      16             : class Mesh;
      17             : /// \endcond
      18             : 
      19             : namespace Limiters::Weno_detail {
      20             : 
      21             : // Check that an element has just one neighbor in a particular direction, and
      22             : // that this neighbor has the same refinement level as the element.
      23             : template <size_t VolumeDim>
      24             : bool check_element_has_one_similar_neighbor_in_direction(
      25             :     const Element<VolumeDim>& element, const Direction<VolumeDim>& direction);
      26             : 
      27             : // Compute the coordinate positions of a neighbor element's grid points in the
      28             : // logical coordinates of the local element.
      29             : //
      30             : // However, the results are organized to match the expected input of a
      31             : // RegularGridInterpolator constructor:
      32             : // - The coordinates are given as an array of 1D coordinate values.
      33             : // - For any dimension where the local and neighbor meshes share the same 1D
      34             : //   submesh, the array is empty. (This tells the RegularGridInterpolator that
      35             : //   no interpolation needs to be done in this dimension.)
      36             : //
      37             : // Limitations:
      38             : // - No support for h-refinement. It is ASSERT'ed that the element has only one
      39             : //   neighbor in the specified direction, and that this neighbor is of the same
      40             : //   refinement level as the local element.
      41             : // - Assumes a uniform rectilinear grid. No support for elements of different
      42             : //   sizes (as could occur if all elements have the same refinement level but
      43             : //   different blocks have different physical size), or curvilinear elements.
      44             : //   This is not checked.
      45             : template <size_t VolumeDim>
      46             : std::array<DataVector, VolumeDim> neighbor_grid_points_in_local_logical_coords(
      47             :     const Mesh<VolumeDim>& local_mesh, const Mesh<VolumeDim>& neighbor_mesh,
      48             :     const Element<VolumeDim>& element,
      49             :     const Direction<VolumeDim>& direction_to_neighbor);
      50             : 
      51             : // Compute the coordinate positions of the local element's grid points in the
      52             : // logical coordinates of the a neighbor element.
      53             : //
      54             : // See documentation of `neighbor_grid_points_in_local_logical_coords` for
      55             : // further details and limitations.
      56             : template <size_t VolumeDim>
      57             : std::array<DataVector, VolumeDim> local_grid_points_in_neighbor_logical_coords(
      58             :     const Mesh<VolumeDim>& local_mesh, const Mesh<VolumeDim>& neighbor_mesh,
      59             :     const Element<VolumeDim>& element,
      60             :     const Direction<VolumeDim>& direction_to_neighbor);
      61             : 
      62             : }  // namespace Limiters::Weno_detail

Generated by: LCOV version 1.14