Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <cstddef> 7 : 8 : /// \cond 9 : class DataVector; 10 : template <size_t Dim> 11 : class Index; 12 : namespace gsl { 13 : template <typename T> 14 : class not_null; 15 : } // namespace gsl 16 : /// \endcond 17 : 18 : namespace evolution::dg::subcell { 19 : /// @{ 20 : /*! 21 : * \brief Compute and add the 2nd-order flux divergence on a Cartesian mesh to 22 : * the cell-centered time derivatives. 23 : */ 24 1 : void add_cartesian_flux_divergence(gsl::not_null<DataVector*> dt_var, 25 : double one_over_delta, 26 : const DataVector& inv_jacobian, 27 : const DataVector& boundary_correction, 28 : const Index<1>& subcell_extents, 29 : size_t dimension); 30 : 31 1 : void add_cartesian_flux_divergence(gsl::not_null<DataVector*> dt_var, 32 : double one_over_delta, 33 : const DataVector& inv_jacobian, 34 : const DataVector& boundary_correction, 35 : const Index<2>& subcell_extents, 36 : size_t dimension); 37 : 38 1 : void add_cartesian_flux_divergence(gsl::not_null<DataVector*> dt_var, 39 : double one_over_delta, 40 : const DataVector& inv_jacobian, 41 : const DataVector& boundary_correction, 42 : const Index<3>& subcell_extents, 43 : size_t dimension); 44 : /// @} 45 : } // namespace evolution::dg::subcell