|
SpECTRE
v2025.08.19
|
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::RdmpTciData > | apply (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) |
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:
| Description | TCI status |
|---|---|
| the element is not troubled. |
|
if min(tilde_d) is less than tci_options.minimum_rest_mass_density_times_lorentz_factor, then we remain on FD. |
|
if min(tilde_ye) is less than tci_options.minimum_rest_mass_density_times_lorentz_factor times tci_options.minimum_ye, then we remain on FD. |
|
if min(tilde_tau) is less than tci_options.minimum_tilde_tau, then we remain on FD. |
|
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. |
|
apply the Persson TCI to \(\tilde{D}\) if the maximum of rest mass density on FD grid is greater than tci_options.atmosphere_density. |
|
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. |
|
apply the Persson TCI to pressure if the maximum of rest mass density on FD grid is greater than tci_options.atmosphere_density. |
|
apply the RDMP TCI to TildeD |
|
apply the RDMP TCI to TildeYe |
|
apply the RDMP TCI to TildeTau |
|
apply the RDMP TCI to TildeB |
|
apply the Persson TCI to the magnitude of \(\tilde{B}^{n+1}\) if its magnitude is greater than tci_options.magnetic_field_cutoff. |
|
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 tenth check (RDMP TCI to TildeTau) fails and cell is marked as troubled, an integer with value +10 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.