11 #include "PointwiseFunctions/AnalyticSolutions/AnalyticSolution.hpp"
13 #include "Utilities/TaggedTuple.hpp"
40 using tags = tmpl::list<ScalarWave::Pi, ScalarWave::Phi<1>,
ScalarWave::Psi>;
45 "Number of wave periods across the domain";
51 "Amplitudes of the independent modes of the harmonic";
54 using options = tmpl::list<Harmonic, Amplitudes>;
57 "A solution of the semidiscretized DG system on linear elements\n"
58 "with spatial period 2 pi.";
66 template <
typename... Tags>
69 tmpl::list<Tags...> )
const
73 "At least one of the requested tags is not supported. The requested "
74 "tags are listed as template parameters of the `variables` function.");
75 return {get<Tags>(
variables(x, t, tmpl::list<Tags>{}))...};
80 const tnsr::I<DataVector, 1>& x,
double t,
81 tmpl::list<ScalarWave::Pi> )
const noexcept;
84 const tnsr::I<DataVector, 1>& x,
double t,
92 void pup(PUP::er& p) noexcept;
96 std::array<
double, 4> amplitudes_;
tuples::TaggedTuple< Tags... > variables(const tnsr::I< DataVector, 1 > &x, double t, tmpl::list< Tags... >) const noexcept
Retrieve the evolution variables at time t and spatial coordinates x
Definition: SemidiscretizedDg.hpp:67
constexpr bool flat_all_v
A non-short-circuiting logical AND between bools 'B"".
Definition: TMPL.hpp:507
Definition: SemidiscretizedDg.hpp:48
Definition: SemidiscretizedDg.hpp:42
An associative container that is indexed by structs.
Definition: TaggedTuple.hpp:271
Stores a collection of function values.
Definition: DataVector.hpp:42
Type aliases to construct common Tensors.
Definition: TypeAliases.hpp:31
An exact solution to the semidiscretized DG ScalarWave system with an upwind flux.
Definition: SemidiscretizedDg.hpp:38
const char *const String
The string used in option structs.
Definition: Options.hpp:32
Items related to evolving the scalar wave equation.
Definition: Characteristics.cpp:16