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