|
SpECTRE
v2025.08.19
|
The inbox tag for boundary correction communication and DG-subcell ghost zone cells. More...
#include <InboxTags.hpp>
Public Types | |
| using | stored_type = evolution::dg::BoundaryData< Dim > |
| using | temporal_id = TimeStepId |
| using | type_map = evolution::dg::InboxBoundaryData< Dim > |
| using | type_spsc = evolution::dg::AtomicInboxBoundaryData< Dim > |
| using | type = tmpl::conditional_t< UseNodegroupDgElements, type_spsc, type_map > |
| using | value_type = type |
Static Public Member Functions | |
| static bool | insert_into_inbox (gsl::not_null< type_spsc * > inbox, const temporal_id &time_step_id, std::pair< DirectionalId< Dim >, evolution::dg::BoundaryData< Dim > > data) |
| static bool | insert_into_inbox (gsl::not_null< type_map * > inbox, const temporal_id &time_step_id, std::pair< DirectionalId< Dim >, evolution::dg::BoundaryData< Dim > > data) |
| static std::string | output_inbox (const type_spsc &inbox, size_t padding_size) |
| static std::string | output_inbox (const type_map &inbox, size_t padding_size) |
The inbox tag for boundary correction communication and DG-subcell ghost zone cells.
The stored data consists of the following:
The TimeStepId is the neighboring element's next time step. When using local time stepping, the neighbor's boundary data is valid up until this time, which may include multiple local time steps. By receiving and storing the neighbor time step, the local element knows whether or not it should remove boundary data and expect new data to be sent from the neighbor.
The ghost cell data will be valid whenever a DG-subcell scheme is being used. Whenever a DG-subcell scheme is being used, elements using DG and not FD/FV always send both the ghost cells and boundary correction data together. Elements using FD/FV send the ghost cells first followed by the boundary correction data once the element has received all neighbor ghost cell data. Note that the second send/receive only modifies the flux and the TimeStepId used for the flux validity range.
When only a DG scheme (not a DG-subcell scheme) is used the ghost cell data will never be valid.
In the DG-subcell scheme this tag is used both for communicating the ghost cell data needed for the FD/FV reconstruction step and the data needed for the boundary corrections.
If you are using the DgElementCollection then you must set UseNodegroupDgElements to true. The actions that use this tag check that the parallel component and the UseNodegroupDgElements is consistent.