SpECTRE  2021.08.02
NewtonianEuler::subcell::PrimitiveGhostDataToSlice< Dim > Class Template Reference

Projects the mass density, velocity, and pressure to the subcells so they can be sent to the neighbors for their reconstructions. More...

#include <PrimitiveGhostData.hpp>

Public Types

using return_tags = tmpl::list<>
 
using argument_tags = tmpl::list<::Tags::Variables< prim_tags >, domain::Tags::Mesh< Dim >, evolution::dg::subcell::Tags::Mesh< Dim > >
 

Static Public Member Functions

static Variables< prims_to_reconstruct_tags > apply (const Variables< prim_tags > &prims, const Mesh< Dim > &dg_mesh, const Mesh< Dim > &subcell_mesh) noexcept
 

Detailed Description

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

Projects the mass density, velocity, and pressure to the subcells so they can be sent to the neighbors for their reconstructions.

Computes the data on the subcells that other generic code will slice before sending it to the neighbors. That is, a ghost_zone_size * y_points * z_points is sent to the x-direction neighbors.

The computation just copies the data from the primitive variables tag to a new Variables, then projects that Variables to the subcells. In the future we will likely want to elide this copy but that requires support from the actions.

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

Note
This projects 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.