SpECTRE  v2024.05.11
evolution::dg::subcell::Actions::SendDataForReconstruction< Dim, GhostDataMutator, LocalTimeStepping > Struct Template Reference

Sets the local data from the relaxed discrete maximum principle troubled-cell indicator and sends ghost zone data to neighboring elements. More...

#include <ReconstructionCommunication.hpp>

Public Types

using inbox_tags = tmpl::list< evolution::dg::Tags::BoundaryCorrectionAndGhostCellsInbox< Dim > >
 

Static Public Member Functions

template<typename DbTags , typename... InboxTags, typename ArrayIndex , typename ActionList , typename ParallelComponent , typename Metavariables >
static Parallel::iterable_action_return_t apply (db::DataBox< DbTags > &box, tuples::TaggedTuple< InboxTags... > &, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &, const ActionList, const ParallelComponent *const)
 

Detailed Description

template<size_t Dim, typename GhostDataMutator, bool LocalTimeStepping>
struct evolution::dg::subcell::Actions::SendDataForReconstruction< Dim, GhostDataMutator, LocalTimeStepping >

Sets the local data from the relaxed discrete maximum principle troubled-cell indicator and sends ghost zone data to neighboring elements.

The action proceeds as follows:

  1. Determine in which directions we have neighbors
  2. Slice the variables provided by GhostDataMutator to send to our neighbors for ghost zones
  3. Send the ghost zone data, appending the max/min for the TCI at the end of the DataVector we are sending.
Warning
This assumes the RDMP TCI data in the DataBox has been set, it does not calculate it automatically. The reason is this way we can only calculate the RDMP data when it's needed since computing it can be pretty expensive.

Some notes:

  • In the future we will need to send the cell-centered fluxes to do high-order FD without additional reconstruction being necessary.

GlobalCache:

  • Uses:
    • ParallelComponent proxy

DataBox:


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