Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include "DataStructures/Tensor/EagerMath/Magnitude.hpp" 7 : #include "DataStructures/VariablesTag.hpp" 8 : #include "Evolution/Systems/Ccz4/BoundaryConditions/BoundaryCondition.hpp" 9 : #include "Evolution/Systems/Ccz4/Tags.hpp" 10 : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp" 11 : #include "Utilities/TMPL.hpp" 12 : 13 : namespace Ccz4::fd { 14 0 : struct System { 15 0 : using flux_variables = tmpl::list<>; 16 0 : using boundary_conditions_base = BoundaryConditions::BoundaryCondition; 17 0 : static constexpr bool has_primitive_and_conservative_vars = false; 18 0 : static constexpr size_t volume_dim = 3; 19 0 : static constexpr bool is_in_flux_conservative_form = false; 20 : /* shifting_shift and f should be created from options in the future */ 21 : // whether to add the advective terms in the Gamma-driver condition 22 0 : static constexpr bool shifting_shift = false; 23 : 24 : // The free parameter f in the Gamma-driver condition. 25 0 : static constexpr double f = 0.75; 26 : 27 : // the order of the following evolved variables is important 28 : // as it is assumed in the filter 29 0 : using variables_tag = ::Tags::Variables<tmpl::list< 30 : ::Ccz4::Tags::ConformalMetric<DataVector, 3>, 31 : ::Ccz4::Tags::ConformalFactor<DataVector>, 32 : ::Ccz4::Tags::ATilde<DataVector, 3>, 33 : gr::Tags::TraceExtrinsicCurvature<DataVector>, 34 : ::Ccz4::Tags::Theta<DataVector>, ::Ccz4::Tags::GammaHat<DataVector, 3>, 35 : // gauge variables 36 : gr::Tags::Lapse<DataVector>, gr::Tags::Shift<DataVector, 3>, 37 : ::Ccz4::Tags::AuxiliaryShiftB<DataVector, 3>>>; 38 : 39 0 : using variables_tag_list = typename variables_tag::tags_list; 40 : 41 0 : using gradients_tags = variables_tag_list; 42 : }; 43 : } // namespace Ccz4::fd