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 : #include "Domain/Amr/Flag.hpp" 10 : #include "Domain/Amr/Tags/Flags.hpp" 11 : #include "Domain/Amr/Tags/NeighborFlags.hpp" 12 : #include "Utilities/Gsl.hpp" 13 : #include "Utilities/MakeArray.hpp" 14 : #include "Utilities/TMPL.hpp" 15 : 16 : namespace amr::Initialization { 17 : /// \ingroup InitializationGroup 18 : /// \brief Initialize items related to adaptive mesh refinement 19 : /// 20 : /// \see InitializeItems 21 : template <size_t Dim> 22 1 : struct Initialize { 23 0 : using const_global_cache_tags = tmpl::list<>; 24 0 : using mutable_global_cache_tags = tmpl::list<>; 25 0 : using simple_tags_from_options = tmpl::list<>; 26 : 27 0 : using argument_tags = tmpl::list<>; 28 0 : using return_tags = tmpl::list<amr::Tags::Flags<Dim>>; 29 0 : using simple_tags = 30 : tmpl::push_back<return_tags, amr::Tags::NeighborFlags<Dim>>; 31 : 32 0 : using compute_tags = tmpl::list<>; 33 : 34 : /// Given the items fetched from a DataBox by the argument_tags, mutate 35 : /// the items in the DataBox corresponding to return_tags 36 1 : static void apply( 37 : const gsl::not_null<std::array<amr::Flag, Dim>*> amr_flags) { 38 : *amr_flags = make_array<Dim>(amr::Flag::Undefined); 39 : } 40 : }; 41 : } // namespace amr::Initialization