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