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 <memory> 9 : 10 : #include "DataStructures/DataBox/Tag.hpp" 11 : #include "Domain/Creators/DomainCreator.hpp" 12 : #include "Domain/Creators/OptionTags.hpp" 13 : #include "Domain/Domain.hpp" 14 : #include "Utilities/TMPL.hpp" 15 : 16 : namespace domain::Tags { 17 : /// \ingroup DataBoxTagsGroup 18 : /// \ingroup ComputationalDomainGroup 19 : /// The number of grid points per dimension for all elements in each block of 20 : /// the initial computational domain 21 : template <size_t Dim> 22 1 : struct InitialExtents : db::SimpleTag { 23 0 : using type = std::vector<std::array<size_t, Dim>>; 24 0 : using option_tags = tmpl::list<domain::OptionTags::DomainCreator<Dim>>; 25 : 26 0 : static constexpr bool pass_metavariables = false; 27 0 : static std::vector<std::array<size_t, Dim>> create_from_options( 28 : const std::unique_ptr<::DomainCreator<Dim>>& domain_creator); 29 : }; 30 : } // namespace domain::Tags