SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/GrMhd/ValenciaDivClean/Subcell - TciOnFdGrid.hpp Hit Total Coverage
Commit: 3f09028930c0450a2fb61ee918b22882f5d03d2b Lines: 1 5 20.0 %
Date: 2021-10-22 20:52:16
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 "Domain/Tags.hpp"
      10             : #include "Evolution/DgSubcell/Tags/Inactive.hpp"
      11             : #include "Evolution/Systems/GrMhd/ValenciaDivClean/Subcell/TciOptions.hpp"
      12             : #include "Evolution/Systems/GrMhd/ValenciaDivClean/Tags.hpp"
      13             : #include "Evolution/VariableFixing/Tags.hpp"
      14             : #include "Utilities/TMPL.hpp"
      15             : 
      16             : /// \cond
      17             : class DataVector;
      18             : template <size_t Dim>
      19             : class Mesh;
      20             : /// \endcond
      21             : 
      22             : namespace grmhd::ValenciaDivClean::subcell {
      23             : /*!
      24             :  * \brief The troubled-cell indicator run on the FD grid to check if the
      25             :  * corresponding DG solution is admissible.
      26             :  *
      27             :  * The following checks are done in the order they are listed:
      28             :  *
      29             :  * - if `grmhd::ValenciaDivClean::Tags::VariablesNeededFixing` is `true` then we
      30             :  *   remain on FD. (Note: this could be relaxed in the future if we need to
      31             :  *   allow switching from FD to DG in the atmosphere and the current approach
      32             :  *   isn't working.)
      33             :  * - if `min(tilde_d)` is less than
      34             :  *   `tci_options.minimum_rest_mass_density_times_lorentz_factor` or if
      35             :  *   `min(tilde_tau)` is less than `tci_options.minimum_tilde_tau` then the we
      36             :  *   remain on FD.
      37             :  * - apply the Persson TCI to \f$\tilde{D}\f$ and \f$\tilde{\tau}\f$
      38             :  */
      39           1 : struct TciOnFdGrid {
      40           0 :   using return_tags = tmpl::list<>;
      41           0 :   using argument_tags =
      42             :       tmpl::list<evolution::dg::subcell::Tags::Inactive<
      43             :                      grmhd::ValenciaDivClean::Tags::TildeD>,
      44             :                  evolution::dg::subcell::Tags::Inactive<
      45             :                      grmhd::ValenciaDivClean::Tags::TildeTau>,
      46             :                  evolution::dg::subcell::Tags::Inactive<
      47             :                      grmhd::ValenciaDivClean::Tags::TildeB<>>,
      48             :                  grmhd::ValenciaDivClean::Tags::VariablesNeededFixing,
      49             :                  domain::Tags::Mesh<3>, Tags::TciOptions>;
      50           0 :   static bool apply(const Scalar<DataVector>& tilde_d,
      51             :                     const Scalar<DataVector>& tilde_tau,
      52             :                     const tnsr::I<DataVector, 3, Frame::Inertial>& tilde_b,
      53             :                     bool vars_needed_fixing, const Mesh<3>& dg_mesh,
      54             :                     const TciOptions& tci_options, double persson_exponent);
      55             : };
      56             : }  // namespace grmhd::ValenciaDivClean::subcell

Generated by: LCOV version 1.14