Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <cstddef> 7 : #include <memory> 8 : 9 : #include "DataStructures/DataBox/Tag.hpp" 10 : #include "Domain/Creators/DomainCreator.hpp" 11 : #include "Domain/Creators/OptionTags.hpp" 12 : #include "Domain/Domain.hpp" 13 : #include "Utilities/TMPL.hpp" 14 : 15 1 : namespace domain::Tags { 16 : /// \ingroup DataBoxTagsGroup 17 : /// \ingroup ComputationalDomainGroup 18 : /// The ::Domain. 19 : template <size_t VolumeDim> 20 1 : struct Domain : db::SimpleTag { 21 0 : using type = ::Domain<VolumeDim>; 22 0 : using option_tags = tmpl::list<domain::OptionTags::DomainCreator<VolumeDim>>; 23 : 24 0 : static constexpr bool pass_metavariables = false; 25 0 : static ::Domain<VolumeDim> create_from_options( 26 : const std::unique_ptr<::DomainCreator<VolumeDim>>& domain_creator); 27 : }; 28 : } // namespace domain::Tags