SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
evolution::dg::Initialization::ProjectMortars< Dim, LocalTimeStepping > Struct Template Reference

Initialize/update items related to mortars after an AMR change. More...

#include <Mortars.hpp>

Public Types

using mortar_data_history_tag = Tags::MortarDataHistory<Dim>
using mortar_data_history_type = typename mortar_data_history_tag::type
using return_tags
using argument_tags

Static Public Member Functions

static void apply (gsl::not_null<::dg::MortarMap< Dim, evolution::dg::MortarDataHolder< Dim > > * > mortar_data, gsl::not_null<::dg::MortarMap< Dim, Mesh< Dim - 1 > > * > mortar_mesh, gsl::not_null<::dg::MortarMap< Dim, MortarInfo< Dim > > * > mortar_infos, gsl::not_null<::dg::MortarMap< Dim, TimeStepId > * > mortar_next_temporal_id, gsl::not_null< DirectionMap< Dim, std::optional< magnitude_and_normal_type > > * > normal_covector_and_magnitude, gsl::not_null< mortar_data_history_type * > mortar_data_history, const Domain< Dim > &domain, const Mesh< Dim > &new_mesh, const Element< Dim > &new_element, const ::dg::MortarMap< Dim, Mesh< Dim > > &neighbor_mesh, const TimeStepId &current_temporal_id, const std::pair< Mesh< Dim >, Element< Dim > > &old_mesh_and_element)
template<typename... ParentTags>
static void apply (const gsl::not_null< ::dg::MortarMap< Dim, evolution::dg::MortarDataHolder< Dim > > * > mortar_data, const gsl::not_null<::dg::MortarMap< Dim, Mesh< Dim - 1 > > * > mortar_mesh, const gsl::not_null<::dg::MortarMap< Dim, MortarInfo< Dim > > * > mortar_infos, const gsl::not_null<::dg::MortarMap< Dim, TimeStepId > * > mortar_next_temporal_id, const gsl::not_null< DirectionMap< Dim, std::optional< magnitude_and_normal_type > > * > normal_covector_and_magnitude, const gsl::not_null< mortar_data_history_type * > mortar_data_history, const Domain< Dim > &domain, const Mesh< Dim > &new_mesh, const Element< Dim > &new_element, const ::dg::MortarMap< Dim, Mesh< Dim > > &neighbor_mesh, const TimeStepId &, const tuples::TaggedTuple< ParentTags... > &parent_items)
template<typename... ChildTags>
static void apply (const gsl::not_null< ::dg::MortarMap< Dim, evolution::dg::MortarDataHolder< Dim > > * > mortar_data, const gsl::not_null<::dg::MortarMap< Dim, Mesh< Dim - 1 > > * > mortar_mesh, const gsl::not_null<::dg::MortarMap< Dim, MortarInfo< Dim > > * > mortar_infos, const gsl::not_null<::dg::MortarMap< Dim, TimeStepId > * > mortar_next_temporal_id, const gsl::not_null< DirectionMap< Dim, std::optional< magnitude_and_normal_type > > * > normal_covector_and_magnitude, const gsl::not_null< mortar_data_history_type * > mortar_data_history, const Domain< Dim > &domain, const Mesh< Dim > &new_mesh, const Element< Dim > &new_element, const ::dg::MortarMap< Dim, Mesh< Dim > > &neighbor_mesh, const TimeStepId &, const std::unordered_map< ElementId< Dim >, tuples::TaggedTuple< ChildTags... > > &children_items)

Detailed Description

template<size_t Dim, bool LocalTimeStepping>
struct evolution::dg::Initialization::ProjectMortars< Dim, LocalTimeStepping >

Initialize/update items related to mortars after an AMR change.

Mutates:

For p-refined interfaces:

  • Regenerates MortarData and MortarInfo (should have no effect)
  • Sets the NormalCovectorAndMagnitude to std::nullopt if the face mesh changed
  • Projects the local geometric data (but not the data on the mortar-mesh) in the MortarDataHistory, if present
  • Does nothing to MortarMesh and MortarNextTemporalId

For h-refined interfaces:

  • Regenerates MortarData and MortarInfo
  • Sets the NormalCovectorAndMagnitude to std::nullopt
  • Calculates MortarMesh
  • Sets MortarNextTemporalId to the current temporal id
  • For local time-stepping:
    • Removes MortarDataHistory data corresponding to split or joined elements
    • Projects MortarDataHistory data corresponding to non-h-refined elements onto refined mortars (both geometric and mortar-mesh data)
    • Creates empty histories for new mortars between two h-refined elements

Member Typedef Documentation

◆ argument_tags

template<size_t Dim, bool LocalTimeStepping>
using evolution::dg::Initialization::ProjectMortars< Dim, LocalTimeStepping >::argument_tags
Initial value:
tmpl::list<domain::Tags::Domain<Dim>, domain::Tags::Mesh<Dim>,
Tag for TimeStepId for the algorithm state.
Definition TimeStepId.hpp:14
The Element associated with the DataBox.
Definition Tags.hpp:52
The computational grid of the Element in the DataBox.
Definition Tags.hpp:62
Holds the mesh of each neighboring element, oriented to the host's logical frame.
Definition NeighborMesh.hpp:29

◆ return_tags

template<size_t Dim, bool LocalTimeStepping>
using evolution::dg::Initialization::ProjectMortars< Dim, LocalTimeStepping >::return_tags
Initial value:
tmpl::list<Tags::MortarData<Dim>, Tags::MortarMesh<Dim>,
History of the data on mortars, indexed by (Direction, ElementId) pairs, and used by the linear multi...
Definition MortarTags.hpp:50
The evolution::dg::MortarInfo for each mortar.
Definition MortarTags.hpp:69
Mesh on the mortars, indexed by (Direction, ElementId) pairs.
Definition MortarTags.hpp:61
The next temporal id at which to receive data on the specified mortar.
Definition MortarTags.hpp:77
The normal covector and its magnitude for all internal faces of an element.
Definition NormalVectorTags.hpp:35

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