SpECTRE  v2024.04.12
NewtonianEuler::subcell::TciOnFdGrid< Dim > Class Template Reference

Troubled-cell indicator applied to the finite difference subcell solution to check if the corresponding DG solution is admissible. More...

#include <TciOnFdGrid.hpp>

Public Types

using return_tags = tmpl::list<::Tags::Variables< tmpl::list< MassDensity, Velocity, SpecificInternalEnergy, Pressure > > >
 
using argument_tags = tmpl::list< ::Tags::Variables< tmpl::list< MassDensityCons, MomentumDensity, EnergyDensity > >, hydro::Tags::EquationOfState< false, 2 >, domain::Tags::Mesh< Dim >, evolution::dg::subcell::Tags::Mesh< Dim >, evolution::dg::subcell::Tags::DataForRdmpTci, evolution::dg::subcell::Tags::SubcellOptions< Dim > >
 

Static Public Member Functions

static std::tuple< bool, evolution::dg::subcell::RdmpTciDataapply (gsl::not_null< Variables< tmpl::list< MassDensity, Velocity, SpecificInternalEnergy, Pressure > > * > subcell_grid_prim_vars, const Variables< tmpl::list< MassDensityCons, MomentumDensity, EnergyDensity > > &subcell_vars, const EquationsOfState::EquationOfState< false, 2 > &eos, const Mesh< Dim > &dg_mesh, const Mesh< Dim > &subcell_mesh, const evolution::dg::subcell::RdmpTciData &past_rdmp_tci_data, const evolution::dg::subcell::SubcellOptions &subcell_options, double persson_exponentconst, bool need_rdmp_data_only)
 

Detailed Description

template<size_t Dim>
class NewtonianEuler::subcell::TciOnFdGrid< Dim >

Troubled-cell indicator applied to the finite difference subcell solution to check if the corresponding DG solution is admissible.

Computes the primitive variables on the DG and subcell grids, mutating the subcell/active primitive variables in the DataBox. Then,

  • apply RDMP TCI to the mass and energy density
  • if the minimum density or pressure on either the DG or subcell mesh are below \(10^{-18}\), marks the element as troubled and returns. We check both the FD and DG grids since when a discontinuity is inside the element oscillations in the DG solution can result in negative values that aren't present in the FD solution.
  • runs the Persson TCI on the mass and energy density on the DG grid. The reason for applying the Persson TCI to both the mass and energy density is to flag cells at contact discontinuities. The Persson TCI only works with spectral-type methods and is a direct check of whether or not the DG solution is a good representation of the underlying data.

Please note that the TCI is run after the subcell solution has been reconstructed to the DG grid, and so Inactive<Tag> is the updated DG solution.


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