SpECTRE  v2024.04.12
evolution::dg::Initialization::ProjectMortars< Metavariables > Struct Template Reference

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

#include <Mortars.hpp>

Public Types

using dt_variables_tag = typename db::add_tag_prefix< ::Tags::dt, typename Metavariables::system::variables_tag >
 
using mortar_data_history_type = typename Tags::MortarDataHistory< dim, typename dt_variables_tag::type >::type
 
using return_tags = tmpl::list< Tags::MortarData< dim >, Tags::MortarMesh< dim >, Tags::MortarSize< dim >, Tags::MortarNextTemporalId< dim >, evolution::dg::Tags::NormalCovectorAndMagnitude< dim >, Tags::MortarDataHistory< dim, typename dt_variables_tag::type > >
 
using argument_tags = tmpl::list< domain::Tags::Mesh< dim >, domain::Tags::Element< dim >, amr::Tags::NeighborInfo< dim > >
 

Static Public Member Functions

static void apply (const gsl::not_null<::dg::MortarMap< dim, evolution::dg::MortarData< dim > > * > mortar_data, const gsl::not_null<::dg::MortarMap< dim, Mesh< dim - 1 > > * > mortar_mesh, const gsl::not_null< ::dg::MortarMap< dim, std::array< Spectral::MortarSize, dim - 1 > > * > mortar_size, const gsl::not_null< ::dg::MortarMap< dim, TimeStepId > * >, const gsl::not_null< DirectionMap< dim, std::optional< Variables< tmpl::list< evolution::dg::Tags::MagnitudeOfNormal, evolution::dg::Tags::NormalCovector< dim > > > > > * > normal_covector_and_magnitude, const gsl::not_null< mortar_data_history_type * >, const Mesh< dim > &new_mesh, const Element< dim > &new_element, const std::unordered_map< ElementId< dim >, amr::Info< dim > > &neighbor_info, const std::pair< Mesh< dim >, Element< dim > > &)
 
template<typename... Tags>
static void apply (const gsl::not_null<::dg::MortarMap< dim, evolution::dg::MortarData< dim > > * >, const gsl::not_null<::dg::MortarMap< dim, Mesh< dim - 1 > > * >, const gsl::not_null< ::dg::MortarMap< dim, std::array< Spectral::MortarSize, dim - 1 > > * >, const gsl::not_null< ::dg::MortarMap< dim, TimeStepId > * >, const gsl::not_null< DirectionMap< dim, std::optional< Variables< tmpl::list< evolution::dg::Tags::MagnitudeOfNormal, evolution::dg::Tags::NormalCovector< dim > > > > > * >, const gsl::not_null< mortar_data_history_type * >, const Mesh< dim > &, const Element< dim > &, const std::unordered_map< ElementId< dim >, amr::Info< dim > > &, const tuples::TaggedTuple< Tags... > &)
 
template<typename... Tags>
static void apply (const gsl::not_null<::dg::MortarMap< dim, evolution::dg::MortarData< dim > > * >, const gsl::not_null<::dg::MortarMap< dim, Mesh< dim - 1 > > * >, const gsl::not_null< ::dg::MortarMap< dim, std::array< Spectral::MortarSize, dim - 1 > > * >, const gsl::not_null< ::dg::MortarMap< dim, TimeStepId > * >, const gsl::not_null< DirectionMap< dim, std::optional< Variables< tmpl::list< evolution::dg::Tags::MagnitudeOfNormal, evolution::dg::Tags::NormalCovector< dim > > > > > * >, const gsl::not_null< mortar_data_history_type * >, const Mesh< dim > &, const Element< dim > &, const std::unordered_map< ElementId< dim >, amr::Info< dim > > &, const std::unordered_map< ElementId< dim >, tuples::TaggedTuple< Tags... > > &)
 

Static Public Attributes

static constexpr size_t dim = Metavariables::volume_dim
 

Detailed Description

template<typename Metavariables>
struct evolution::dg::Initialization::ProjectMortars< Metavariables >

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

Mutates:

  • Tags::MortarData<dim>
  • Tags::MortarMesh<dim>
  • Tags::MortarSize<dim>
  • Tags::MortarNextTemporalId<dim>
  • evolution::dg::Tags::NormalCovectorAndMagnitude<dim>
  • Tags::MortarDataHistory<dim, typename dt_variables_tag::type>>

For p-refinement:

  • Does nothing to MortarDataHistory (only valid for global time-stepping) or MortarNextTemporalId (only valid for no h-refinement)
  • Sets the other Mortar tags to be default initialized for each neighbor
  • Sets the NormalCovectorAndMagnitude to std::nullopt

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