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
|