Equations.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
7 #include "Options/Options.hpp"
8 #include "Utilities/Gsl.hpp"
9 #include "Utilities/TMPL.hpp"
10 
11 /// \cond
12 class DataVector;
13 // IWYU pragma: no_forward_declare Tensor
14 template <typename>
15 class Variables;
16 namespace Burgers {
17 namespace Tags {
18 struct U;
19 } // namespace Tags
20 } // namespace Burgers
21 namespace PUP {
22 class er;
23 } // namespace PUP
24 namespace Tags {
25 template <typename>
26 struct NormalDotFlux;
27 } // namespace Tags
28 /// \endcond
29 
30 namespace Burgers {
31 /// \ingroup NumericalFluxesGroup
33  using options = tmpl::list<>;
34  static constexpr OptionString help{
35  "Computes the Local LF flux for the Burgers system."};
36 
37  // NOLINTNEXTLINE(google-runtime-references)
38  void pup(PUP::er& /*p*/) noexcept {}
39 
40  using package_tags = tmpl::list<::Tags::NormalDotFlux<Tags::U>, Tags::U>;
41 
42  using argument_tags = tmpl::list<::Tags::NormalDotFlux<Tags::U>, Tags::U>;
43 
44  void package_data(
45  gsl::not_null<Variables<package_tags>*> packaged_data,
46  const Scalar<DataVector>& normal_dot_flux_u,
47  const Scalar<DataVector>& u) const noexcept;
48 
49  void operator()(
50  gsl::not_null<Scalar<DataVector>*> normal_dot_numerical_flux_u,
51  const Scalar<DataVector>& normal_dot_flux_u_interior,
52  const Scalar<DataVector>& u_interior,
53  const Scalar<DataVector>& minus_normal_dot_flux_u_exterior,
54  const Scalar<DataVector>& u_exterior) const noexcept;
55 };
56 
58  using argument_tags = tmpl::list<Tags::U>;
59  static double apply(const Scalar<DataVector>& u) noexcept;
60 };
61 } // namespace Burgers
Definition: Equations.hpp:57
Definition: Strahlkorper.hpp:14
Defines classes and functions for making classes creatable from input files.
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
const char *const OptionString
The string used in option structs.
Definition: Options.hpp:27
Definition: DataBoxTag.hpp:29
Defines classes for Tensor.
Stores a collection of function values.
Definition: DataVector.hpp:46
Wraps the template metaprogramming library used (brigand)
Defines functions and classes from the GSL.
Items related to evolving the Burgers equation .
Definition: Equations.cpp:20
Tensor< T, Symmetry<>, index_list<> > Scalar
Scalar type.
Definition: TypeAliases.hpp:21
Definition: Tags.hpp:14
Require a pointer to not be a nullptr
Definition: ConservativeFromPrimitive.hpp:12
Definition: Equations.hpp:32