SpECTRE  v2021.10.04
grmhd::ValenciaDivClean::subcell::PrimitiveGhostDataToSlice Class Reference

Projects the rest mass density \(\rho\), pressure \(p\), Lorentz factor times the spatial velocity \(W v^i\), magnetic field \(B^i\), and the divergence cleaning field \(\Phi\) so they can be projected to the subcells and sent to neighbors for subcell reconstruction. More...

#include <PrimitiveGhostData.hpp>

Public Types

using return_tags = tmpl::list<>
 
using argument_tags = tmpl::list<::Tags::Variables< hydro::grmhd_tags< DataVector > >, domain::Tags::Mesh< 3 >, evolution::dg::subcell::Tags::Mesh< 3 > >
 

Static Public Member Functions

static Variables< prims_to_reconstruct_tags > apply (const Variables< hydro::grmhd_tags< DataVector > > &prims, const Mesh< 3 > &dg_mesh, const Mesh< 3 > &subcell_mesh)
 

Detailed Description

Projects the rest mass density \(\rho\), pressure \(p\), Lorentz factor times the spatial velocity \(W v^i\), magnetic field \(B^i\), and the divergence cleaning field \(\Phi\) so they can be projected to the subcells and sent to neighbors for subcell reconstruction.

The computation copies the data from the primitive variables to a new Variables and computes \(W v^i\), then does the projection. In the future we will likely want to elide this copy but that requires support from the actions.

This mutator is passed what Metavars::SubcellOptions::GhostDataToSlice must be set to.

Note
We are ultimately projecting the primitive variables rather than computing them on the subcells. This introduces truncation level errors, but from tests so far this seems to be fine and is what is done with local time stepping ADER-DG.

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