Fluxes.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
7 #include "Utilities/TMPL.hpp"
8 
9 /// \cond
10 class DataVector;
11 // IWYU pragma: no_forward_declare Tensor
12 namespace Burgers {
13 namespace Tags {
14 struct U;
15 } // namespace Tags
16 } // namespace Burgers
17 namespace gsl {
18 template <typename T>
19 class not_null;
20 } // namespace gsl
21 /// \endcond
22 
23 namespace Burgers {
24 /// The flux of \f$U\f$ is \f$\frac{1}{2} U^2\f$.
25 struct Fluxes {
26  using argument_tags = tmpl::list<Tags::U>;
27  static void apply(gsl::not_null<tnsr::I<DataVector, 1>*> flux,
28  const Scalar<DataVector>& u) noexcept;
29 };
30 } // namespace Burgers
Implementations from the Guideline Support Library.
Definition: ConservativeFromPrimitive.hpp:10
constexpr auto apply(F &&f, const DataBox< BoxTags > &box, Args &&... args)
Apply the function f with argument Tags TagsList from DataBox box
Definition: DataBox.hpp:1595
The flux of is .
Definition: Fluxes.hpp:25
Definition: DataBoxTag.hpp:29
Defines a list of useful type aliases for tensors.
Stores a collection of function values.
Definition: DataVector.hpp:46
Wraps the template metaprogramming library used (brigand)
Items related to evolving the Burgers equation .
Definition: Equations.cpp:20
Tensor< T, Symmetry<>, index_list<> > Scalar
Scalar type.
Definition: TypeAliases.hpp:21
Require a pointer to not be a nullptr
Definition: ConservativeFromPrimitive.hpp:12