Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include "DataStructures/Tensor/TypeAliases.hpp"
7 : #include "Utilities/Gsl.hpp"
8 :
9 : /// \cond
10 : namespace gsl {
11 : template <typename T>
12 : class not_null;
13 : } // namespace gsl
14 :
15 : class DataVector;
16 :
17 : template<size_t Dim>
18 : class Mesh;
19 : /// \endcond
20 :
21 : namespace Particles::MonteCarlo {
22 :
23 : /// Proper 4-volume of a cell for a time step time_step.
24 : /// We assume that determinant_spatial_metric is given
25 : /// in inertial coordinates, hence the need for
26 : /// det_jacobian_logical_to_inertial
27 1 : void cell_proper_four_volume_finite_difference(
28 : gsl::not_null<Scalar<DataVector>*> cell_proper_four_volume,
29 : const Scalar<DataVector>& lapse,
30 : const Scalar<DataVector>& sqrt_determinant_spatial_metric, double time_step,
31 : const Mesh<3>& mesh,
32 : const Scalar<DataVector>& det_jacobian_logical_to_inertial);
33 :
34 : /// 3-volume of a cell in inertial coordinate. Note that this is
35 : /// the coordinate volume, not the proper volume. This quantity
36 : /// is needed as a normalization factor for the terms coupling
37 : /// Monte-Carlo transport to the fluid evolution (as we evolved
38 : /// densitized fluid variables in inertial coordinates).
39 1 : void cell_inertial_coordinate_three_volume_finite_difference(
40 : gsl::not_null<Scalar<DataVector>* > cell_inertial_three_volume,
41 : const Mesh<3>& mesh,
42 : const Scalar<DataVector>& det_jacobian_logical_to_inertial);
43 :
44 : } // namespace Particles::MonteCarlo
|