SpECTRE Documentation Coverage Report
Current view: top level - DataStructures/DataBox - DataOnSlice.hpp Hit Total Coverage
Commit: aabde07399ba7837e5db64eedfd0a21f31f96922 Lines: 1 2 50.0 %
Date: 2024-04-26 02:38:13
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 <boost/range/combine.hpp>
       8             : #include <cstddef>
       9             : 
      10             : #include "DataStructures/DataBox/DataBox.hpp"
      11             : #include "DataStructures/Index.hpp"
      12             : #include "DataStructures/SliceIterator.hpp"
      13             : #include "DataStructures/SliceTensorToVariables.hpp"
      14             : #include "DataStructures/Variables.hpp"
      15             : #include "Utilities/TMPL.hpp"
      16             : #include "Utilities/TypeTraits.hpp"
      17             : 
      18             : namespace db {
      19             : /*!
      20             :  * \ingroup DataBoxGroup
      21             :  * \brief Slices volume `Tensor`s from a `DataBox` into a `Variables`
      22             :  *
      23             :  * The slice has a constant logical coordinate in direction `sliced_dim`,
      24             :  * slicing the volume at `fixed_index` in that dimension.  For
      25             :  * example, to get the lower boundary of `sliced_dim`, pass `0` for
      26             :  * `fixed_index`; to get the upper boundary, pass
      27             :  * `extents[sliced_dim] - 1`. The last argument to the function is the typelist
      28             :  * holding the tags to slice.
      29             :  *
      30             :  * \snippet Test_DataBox.cpp data_on_slice
      31             :  */
      32             : template <size_t VolumeDim, typename TagsList, typename... TagsToSlice>
      33           1 : Variables<tmpl::list<TagsToSlice...>> data_on_slice(
      34             :     const db::DataBox<TagsList>& box, const Index<VolumeDim>& element_extents,
      35             :     const size_t sliced_dim, const size_t fixed_index,
      36             :     tmpl::list<TagsToSlice...> /*meta*/) {
      37             :   return data_on_slice<TagsToSlice...>(element_extents, sliced_dim, fixed_index,
      38             :                                        db::get<TagsToSlice>(box)...);
      39             : }
      40             : }  // namespace db

Generated by: LCOV version 1.14