Characteristics.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <array>
7 #include <string>
8 
11 #include "Domain/FaceNormal.hpp"
12 #include "Utilities/Gsl.hpp"
13 #include "Utilities/TMPL.hpp"
14 
15 /// \cond
16 class DataVector;
17 // IWYU pragma: no_forward_declare Tensor
18 namespace Burgers {
19 namespace Tags {
20 struct U;
21 } // namespace Tags
22 } // namespace Burgers
23 /// \endcond
24 
25 namespace Burgers {
26 namespace Tags {
27 /// Computes the characteristic speeds
29  static std::string name() noexcept { return "CharacteristicSpeeds"; }
30 
31  using argument_tags = tmpl::list<Tags::U, ::Tags::UnnormalizedFaceNormal<1>>;
32 
34  static void function(gsl::not_null<return_type*> result,
35  const Scalar<DataVector>& u,
36  const tnsr::i<DataVector, 1>& normal) noexcept;
37 };
38 } // namespace Tags
39 
41  using argument_tags = tmpl::list<Tags::U>;
42  static double apply(const Scalar<DataVector>& u) noexcept;
43 };
44 } // namespace Burgers
Definition: Characteristics.hpp:40
Marks a DataBoxTag as being a compute item that executes a function.
Definition: DataBoxTag.hpp:154
Definition: DataBoxTag.hpp:29
Defines classes for Tensor.
Declares function unnormalized_face_normal.
constexpr auto apply(F &&f, const DataBox< BoxTags > &box, Args &&... args) noexcept
Apply the invokable f with argument Tags TagsList from DataBox box
Definition: DataBox.hpp:1623
Computes the characteristic speeds.
Definition: Characteristics.hpp:28
Stores a collection of function values.
Definition: DataVector.hpp:42
Wraps the template metaprogramming library used (brigand)
Defines functions and classes from the GSL.
Defines classes SimpleTag, PrefixTag, ComputeTag and several functions for retrieving tag info...
Items related to evolving the Burgers equation .
Definition: Characteristics.hpp:25
Tensor< T, Symmetry<>, index_list<> > Scalar
Scalar type.
Definition: TypeAliases.hpp:21
Require a pointer to not be a nullptr
Definition: ConservativeFromPrimitive.hpp:12