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/DataBox/Prefixes.hpp"
7 : #include "DataStructures/Tensor/TypeAliases.hpp"
8 : #include "Utilities/TMPL.hpp"
9 :
10 : /// \cond
11 : class DataVector;
12 :
13 : namespace Burgers {
14 : namespace Tags {
15 : struct U;
16 : } // namespace Tags
17 : } // namespace Burgers
18 : namespace gsl {
19 : template <typename T>
20 : class not_null;
21 : } // namespace gsl
22 : /// \endcond
23 :
24 : namespace Burgers {
25 : /// The flux of \f$U\f$ is \f$\frac{1}{2} U^2\f$.
26 1 : struct Fluxes {
27 0 : using argument_tags = tmpl::list<Tags::U>;
28 0 : using return_tags =
29 : tmpl::list<::Tags::Flux<Tags::U, tmpl::size_t<1>, Frame::Inertial>>;
30 0 : static void apply(gsl::not_null<tnsr::I<DataVector, 1>*> flux,
31 : const Scalar<DataVector>& u);
32 : };
33 : } // namespace Burgers
|