SpECTRE
v2021.01.11
Documentation
Introduction
Releases
Installation
User Tutorials
Dev Guide
Code of Conduct
Contributing Guide
Code Reference
Topics
Namespaces
Files
Bibliography
View on GitHub
src
Evolution
TagsDomain.hpp
1
// Distributed under the MIT License.
2
// See LICENSE.txt for details.
3
4
#pragma once
5
6
#include <
cstddef
>
7
#include <
optional
>
8
#include <
string
>
9
10
#include "DataStructures/DataBox/Tag.hpp"
11
#include "
DataStructures/Tensor/TypeAliases.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>
26
struct
DivMeshVelocityCompute
:
db::ComputeTag
,
27
::domain::Tags::DivMeshVelocity
{
28
using
base = DivMeshVelocity;
29
using
return_type =
typename
base::type;
30
31
static
void
function
(
32
gsl::not_null<std::optional<Scalar<DataVector>
>*> div_mesh_velocity,
33
const
std::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<
40
::domain::Tags::MeshVelocity<Dim, Frame::Inertial>
,
41
::domain::Tags::Mesh<Dim>
,
42
::domain::Tags::InverseJacobian<Dim, Frame::Logical, Frame::Inertial>
>;
43
};
44
}
// namespace Tags
45
}
// namespace domain
46
}
// namespace evolution
db::ComputeTag
Mark a struct as a compute tag by inheriting from this.
Definition:
Tag.hpp:157
evolution
Functionality for evolving hyperbolic partial differential equations.
Definition:
AddMeshVelocityNonconservative.hpp:29
Tags.hpp
domain::Tags::MeshVelocity< Dim, Frame::Inertial >
domain::Tags::Mesh
The computational grid of the Element in the DataBox.
Definition:
Tags.hpp:107
evolution::domain::Tags::DivMeshVelocityCompute
The divergence of the frame velocity.
Definition:
TagsDomain.hpp:26
cstddef
domain::Tags::InverseJacobian< Dim, Frame::Logical, Frame::Inertial >
DataVector
Stores a collection of function values.
Definition:
DataVector.hpp:42
domain::Tags::DivMeshVelocity
The divergence of the mesh velocity.
Definition:
TagsTimeDependent.hpp:165
Gsl.hpp
TypeAliases.hpp
optional
TMPL.hpp
gsl::not_null
Require a pointer to not be a nullptr
Definition:
ReadSpecThirdOrderPiecewisePolynomial.hpp:13
string
© Copyright 2017 - 2020
SXS Collaboration
,
Distributed under the
MIT License