SpECTRE  v2026.09.05
Loading...
Searching...
No Matches
evolution::dg::Actions::SendAuxiliaryData< Dim, EvolutionSystem, UseNodegroupDgElements, VariablesTag > Struct Template Reference

Packages and sends the auxiliary-pass data for the local discontinuous Galerkin (LDG) method for auxiliary boundary corrections. More...

#include <SendAuxiliaryData.hpp>

Static Public Member Functions

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

Detailed Description

template<size_t Dim, typename EvolutionSystem, bool UseNodegroupDgElements, typename VariablesTag = typename EvolutionSystem::variables_tag>
struct evolution::dg::Actions::SendAuxiliaryData< Dim, EvolutionSystem, UseNodegroupDgElements, VariablesTag >

Packages and sends the auxiliary-pass data for the local discontinuous Galerkin (LDG) method for auxiliary boundary corrections.

This action performs the send half of the LDG auxiliary communication. It mirrors the boundary-data portion of ComputeTimeDerivative::apply (without the time-derivative computation) but uses the auxiliary package-data interface (dg_auxiliary_package_field_tags, dg_auxiliary_package_data, dg_auxiliary_package_data_volume_tags) and sends to the auxiliary inbox channel evolution::dg::Tags::BoundaryCorrectionAndGhostCellsInbox with IsAuxiliary set to true.

The action does NOT compute the volume time derivative, fluxes, flux divergence, or partial derivatives. It only:

  1. Computes the internal mortar data in auxiliary mode (detail::internal_mortar_data with ComputeAuxiliary set to true).
  2. Applies the auxiliary external boundary conditions (detail::apply_boundary_conditions_on_all_external_faces with ComputeAuxiliary set to true).
  3. Sends the packaged auxiliary mortar data to the neighbors on the auxiliary inbox channel by the shared implementation (ComputeTimeDerivative_detail::Impl with IsAuxiliary set to true).

Only pure-DG executables (no DG-FD subcell) and global time stepping are supported for now. The subcell restriction is enforced by a static_assert; global time stepping is enforced by a runtime error unless Tags::LtsMode is LtsMode::Off. Nonconforming meshes flow through the same shared mortar machinery as the physical pass, but are not yet exercised by tests; until they are, a runtime error rejects elements with nonconforming neighbors.


The documentation for this struct was generated from the following file:
  • src/Evolution/DiscontinuousGalerkin/Actions/SendAuxiliaryData.hpp