SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/GrMhd/ValenciaDivClean/Subcell - FixConservativesAndComputePrims.hpp Hit Total Coverage
Commit: eb45036e71ee786d31156fb02c6e736b9a032426 Lines: 1 5 20.0 %
Date: 2024-04-18 22:31:00
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/PrimitiveFromConservativeOptions.hpp"
      11             : #include "Evolution/Systems/GrMhd/ValenciaDivClean/System.hpp"
      12             : #include "Evolution/Systems/GrMhd/ValenciaDivClean/Tags.hpp"
      13             : #include "Evolution/VariableFixing/Tags.hpp"
      14             : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
      15             : #include "PointwiseFunctions/Hydro/Tags.hpp"
      16             : #include "Utilities/TMPL.hpp"
      17             : 
      18             : /// \cond
      19             : class DataVector;
      20             : namespace EquationsOfState {
      21             : template <bool IsRelativistic, size_t ThermodynamicDim>
      22             : class EquationOfState;
      23             : }  // namespace EquationsOfState
      24             : namespace gsl {
      25             : template <typename T>
      26             : class not_null;
      27             : }  // namespace gsl
      28             : template <typename TagsList>
      29             : class Variables;
      30             : /// \endcond
      31             : 
      32             : namespace grmhd::ValenciaDivClean::subcell {
      33             : /*!
      34             :  * \brief Fix the conservative variables and compute the primitive variables.
      35             :  *
      36             :  * Sets `ValenciaDivClean::Tags::VariablesNeededFixing` to `true` if the
      37             :  * conservative variables needed fixing, otherwise sets the tag to `false`.
      38             :  */
      39             : template <typename OrderedListOfRecoverySchemes>
      40           1 : struct FixConservativesAndComputePrims {
      41           0 :   using return_tags = tmpl::list<ValenciaDivClean::Tags::VariablesNeededFixing,
      42             :                                  typename System::variables_tag,
      43             :                                  typename System::primitive_variables_tag>;
      44           0 :   using argument_tags = tmpl::list<
      45             :       ::Tags::VariableFixer<grmhd::ValenciaDivClean::FixConservatives>,
      46             :       hydro::Tags::GrmhdEquationOfState, gr::Tags::SpatialMetric<DataVector, 3>,
      47             :       gr::Tags::InverseSpatialMetric<DataVector, 3>,
      48             :       gr::Tags::SqrtDetSpatialMetric<DataVector>,
      49             :       grmhd::ValenciaDivClean::Tags::PrimitiveFromConservativeOptions>;
      50             : 
      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, 3>& 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,
      61             :       const grmhd::ValenciaDivClean::PrimitiveFromConservativeOptions&
      62             :           primitive_from_conservative_options);
      63             : };
      64             : }  // namespace grmhd::ValenciaDivClean::subcell

Generated by: LCOV version 1.14