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