SpECTRE  v2024.04.12
grmhd::ValenciaDivClean::subcell::TciOnFdGrid Struct Reference

The troubled-cell indicator run on the FD grid to check if the corresponding DG solution is admissible. More...

#include <TciOnFdGrid.hpp>

Public Types

using return_tags = tmpl::list<>
 
using argument_tags = tmpl::list< grmhd::ValenciaDivClean::Tags::TildeD, grmhd::ValenciaDivClean::Tags::TildeYe, grmhd::ValenciaDivClean::Tags::TildeTau, grmhd::ValenciaDivClean::Tags::TildeB<>, hydro::Tags::RestMassDensity< DataVector >, hydro::Tags::Pressure< DataVector >, grmhd::ValenciaDivClean::Tags::VariablesNeededFixing, domain::Tags::Mesh< 3 >, evolution::dg::subcell::Tags::Mesh< 3 >, evolution::dg::subcell::Tags::DataForRdmpTci, Tags::TciOptions, evolution::dg::subcell::Tags::SubcellOptions< 3 > >
 

Static Public Member Functions

static std::tuple< int, evolution::dg::subcell::RdmpTciDataapply (const Scalar< DataVector > &subcell_tilde_d, const Scalar< DataVector > &subcell_tilde_ye, const Scalar< DataVector > &subcell_tilde_tau, const tnsr::I< DataVector, 3, Frame::Inertial > &subcell_tilde_b, const Scalar< DataVector > &subcell_rest_mass_density, const Scalar< DataVector > &subcell_pressure, bool vars_needed_fixing, const Mesh< 3 > &dg_mesh, const Mesh< 3 > &subcell_mesh, const evolution::dg::subcell::RdmpTciData &past_rdmp_tci_data, const TciOptions &tci_options, const evolution::dg::subcell::SubcellOptions &subcell_options, double persson_exponent, bool need_rdmp_data_only)
 

Detailed Description

The troubled-cell indicator run on the FD grid to check if the corresponding DG solution is admissible.

The following checks are done in the order they are listed:

List of checks
Description

TCI status

if min(tilde_d) is less than tci_options.minimum_rest_mass_density_times_lorentz_factor, or if min(tilde_ye) is less than tci_options.minimum_rest_mass_density_times_lorentz_factor times tci_options.minimum_ye, or if min(tilde_tau) is less than tci_options.minimum_tilde_tau, then the we remain on FD.

+1

if grmhd::ValenciaDivClean::Tags::VariablesNeededFixing is true and the maximum of rest mass density on FD grid is greater than tci_options.atmosphere_density, then we remain on FD.

+2

apply the Persson TCI to \(\tilde{D}\), \(\tilde{Y}_e\), and pressure if the maximum of rest mass density on FD grid is greater than tci_options.atmosphere_density.

+3

apply the Persson TCI to \(\tilde{Y}_e\) if the maximum of rest mass density on FD grid is greater than tci_options.atmosphere_density.

+4

apply the Persson TCI to pressure if the maximum of rest mass density on FD grid is greater than tci_options.atmosphere_density.

+5

apply the RDMP TCI to TildeD

+6

apply the RDMP TCI to TildeYe

+7

apply the RDMP TCI to TildeTau

+8

apply the RDMP TCI to TildeB

+9

apply the Persson TCI to the magnitude of \(\tilde{B}^{n+1}\) if its magnitude is greater than tci_options.magnetic_field_cutoff.

+10

The second column of the table above denotes the value of an integer stored as the first element of the returned std::tuple, which indicates the particular kind of check that failed. For example, if the fifth check (RDMP TCI to TildeTau) fails and cell is marked as troubled, an integer with value +5 is stored in the first slot of the returned tuple. Note that this integer is marking only the first check to fail, since checks are done in a particular sequence as listed above. If all checks are passed and cell is not troubled, it is returned with the value 0.

Note
We adopt positive integers to mark TCI status from FD grid returned by TciOnFdGrid class. Negative integers are reserved for TCIs on DG grid; see TciOnDgGrid and its documentation.

The documentation for this struct was generated from the following file: