TagsDomain.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <boost/optional.hpp>
7 #include <cstddef>
8 #include <string>
9 
10 #include "DataStructures/DataBox/Tag.hpp"
12 #include "Domain/Tags.hpp"
13 #include "Domain/TagsTimeDependent.hpp"
14 #include "Utilities/Gsl.hpp"
15 #include "Utilities/TMPL.hpp"
16 
17 /// \cond
18 class DataVector;
19 /// \endcond
20 
21 namespace evolution {
22 namespace domain {
23 namespace Tags {
24 /// The divergence of the frame velocity
25 template <size_t Dim>
28  using base = DivMeshVelocity;
29  using return_type = typename base::type;
30 
31  static void function(
33  const boost::optional<tnsr::I<DataVector, Dim, Frame::Inertial>>&
34  mesh_velocity,
35  const ::Mesh<Dim>& mesh,
36  const ::InverseJacobian<DataVector, Dim, Frame::Logical, Frame::Inertial>&
37  inv_jac_logical_to_inertial) noexcept;
38 
39  using argument_tags = tmpl::list<
43 };
44 } // namespace Tags
45 } // namespace domain
46 } // namespace evolution
The computational grid of the Element in the DataBox.
Definition: Tags.hpp:105
Definition: BlockId.hpp:16
Marks a DataBoxTag as being a compute item that executes a function.
Definition: Tag.hpp:109
Definition: DataBoxTag.hpp:27
Defines a list of useful type aliases for tensors.
The divergence of the mesh velocity.
Definition: TagsTimeDependent.hpp:165
Stores a collection of function values.
Definition: DataVector.hpp:42
Wraps the template metaprogramming library used (brigand)
The divergence of the frame velocity.
Definition: TagsDomain.hpp:26
Defines functions and classes from the GSL.
Defines tags related to domain quantities.
Require a pointer to not be a nullptr
Definition: Gsl.hpp:182
Functionality for evolving hyperbolic partial differential equations.
Definition: AddMeshVelocitySourceTerms.hpp:28