SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/GrMhd/ValenciaDivClean/Subcell - FixConservativesAndComputePrims.hpp Hit Total Coverage
Commit: e93d8312de4f331d36b5aa00ea83a894e26dfcb7 Lines: 1 5 20.0 %
Date: 2021-09-24 22:40:29
Legend: Lines: hit not hit

          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             : #include "DataStructures/Tensor/TypeAliases.hpp"
       9             : #include "Evolution/Systems/GrMhd/ValenciaDivClean/FixConservatives.hpp"
      10             : #include "Evolution/Systems/GrMhd/ValenciaDivClean/System.hpp"
      11             : #include "Evolution/Systems/GrMhd/ValenciaDivClean/Tags.hpp"
      12             : #include "Evolution/VariableFixing/Tags.hpp"
      13             : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
      14             : #include "PointwiseFunctions/Hydro/Tags.hpp"
      15             : #include "Utilities/TMPL.hpp"
      16             : 
      17             : /// \cond
      18             : class DataVector;
      19             : namespace EquationsOfState {
      20             : template <bool IsRelativistic, size_t ThermodynamicDim>
      21             : class EquationOfState;
      22             : }  // namespace EquationsOfState
      23             : namespace gsl {
      24             : template <typename T>
      25             : class not_null;
      26             : }  // namespace gsl
      27             : template <typename TagsList>
      28             : class Variables;
      29             : /// \endcond
      30             : 
      31             : namespace grmhd::ValenciaDivClean::subcell {
      32             : /*!
      33             :  * \brief Fix the conservative variables and compute the primitive variables.
      34             :  *
      35             :  * Sets `ValenciaDivClean::Tags::VariablesNeededFixing` to `true` if the
      36             :  * conservative variables needed fixing, otherwise sets the tag to `false`.
      37             :  */
      38             : template <typename OrderedListOfRecoverySchemes>
      39           1 : struct FixConservativesAndComputePrims {
      40           0 :   using return_tags = tmpl::list<ValenciaDivClean::Tags::VariablesNeededFixing,
      41             :                                  typename System::variables_tag,
      42             :                                  typename System::primitive_variables_tag>;
      43           0 :   using argument_tags = tmpl::list<
      44             :       ::Tags::VariableFixer<grmhd::ValenciaDivClean::FixConservatives>,
      45             :       hydro::Tags::EquationOfStateBase,
      46             :       gr::Tags::SpatialMetric<3, Frame::Inertial, DataVector>,
      47             :       gr::Tags::InverseSpatialMetric<3, Frame::Inertial, DataVector>,
      48             :       gr::Tags::SqrtDetSpatialMetric<DataVector>>;
      49             : 
      50             :   template <size_t ThermodynamicDim>
      51           0 :   static void apply(
      52             :       gsl::not_null<bool*> needed_fixing,
      53             :       gsl::not_null<typename System::variables_tag::type*> conserved_vars_ptr,
      54             :       gsl::not_null<Variables<hydro::grmhd_tags<DataVector>>*>
      55             :           primitive_vars_ptr,
      56             :       const grmhd::ValenciaDivClean::FixConservatives& fix_conservatives,
      57             :       const EquationsOfState::EquationOfState<true, ThermodynamicDim>& eos,
      58             :       const tnsr::ii<DataVector, 3, Frame::Inertial>& spatial_metric,
      59             :       const tnsr::II<DataVector, 3, Frame::Inertial>& inv_spatial_metric,
      60             :       const Scalar<DataVector>& sqrt_det_spatial_metric) noexcept;
      61             : };
      62             : }  // namespace grmhd::ValenciaDivClean::subcell

Generated by: LCOV version 1.14