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 : #include <vector> 9 : 10 : #include "Domain/Structure/Element.hpp" 11 : 12 : /// \cond 13 : template <size_t Dim> 14 : class Block; 15 : template <size_t Dim> 16 : class ElementId; 17 : /// \endcond 18 : 19 : namespace domain { 20 0 : namespace Initialization { 21 : /*! 22 : * \ingroup InitializationGroup 23 : * \brief Creates an initial element of a Block. 24 : * 25 : * \details This function creates an element at the refinement level and 26 : * position specified by the `element_id` within the `block`. It assumes 27 : * that all elements in a given block have the same refinement level, 28 : * given in `initial_refinement_levels`. 29 : */ 30 : template <size_t VolumeDim> 31 1 : Element<VolumeDim> create_initial_element( 32 : const ElementId<VolumeDim>& element_id, const Block<VolumeDim>& block, 33 : const std::vector<std::array<size_t, VolumeDim>>& 34 : initial_refinement_levels); 35 : } // namespace Initialization 36 : } // namespace domain