Public Types | Static Public Member Functions | Static Public Attributes | List of all members
dg::FirstOrderScheme::FirstOrderScheme< Dim, VariablesTag, NumericalFluxComputerTag, TemporalIdTag > Struct Template Reference

Boundary contributions for a first-order DG scheme. More...

#include <FirstOrderScheme.hpp>

Public Types

using variables_tag = VariablesTag
 
using numerical_flux_computer_tag = NumericalFluxComputerTag
 
using NumericalFlux = typename NumericalFluxComputerTag::type
 
using temporal_id_tag = TemporalIdTag
 
using receive_temporal_id_tag = temporal_id_tag
 
using dt_variables_tag = db::add_tag_prefix< TemporalIdTag::template step_prefix, variables_tag >
 
using BoundaryData = dg::FirstOrderScheme::BoundaryData< NumericalFlux >
 
using boundary_data_computer = detail::boundary_data_computer_impl< Dim, VariablesTag, NumericalFluxComputerTag >
 
using mortar_data_tag = Tags::SimpleMortarData< typename TemporalIdTag::type, BoundaryData, BoundaryData >
 
using magnitude_of_face_normal_tag = ::Tags::Magnitude< domain::Tags::UnnormalizedFaceNormal< volume_dim > >
 
using return_tags = tmpl::list< dt_variables_tag, ::Tags::Mortars< mortar_data_tag, Dim > >
 
using argument_tags = tmpl::list< domain::Tags::Mesh< Dim >, ::Tags::Mortars< domain::Tags::Mesh< Dim - 1 >, Dim >, ::Tags::Mortars<::Tags::MortarSize< Dim - 1 >, Dim >, NumericalFluxComputerTag, domain::Tags::Interface< domain::Tags::InternalDirections< Dim >, magnitude_of_face_normal_tag >, domain::Tags::Interface< domain::Tags::BoundaryDirectionsInterior< Dim >, magnitude_of_face_normal_tag > >
 

Static Public Member Functions

static void apply (const gsl::not_null< typename dt_variables_tag::type * > dt_variables, const gsl::not_null< typename ::Tags::Mortars< mortar_data_tag, Dim >::type * > all_mortar_data, const Mesh< Dim > &volume_mesh, const MortarMap< Dim, Mesh< Dim - 1 >> &mortar_meshes, const MortarMap< Dim, MortarSize< Dim - 1 >> &mortar_sizes, const NumericalFlux &normal_dot_numerical_flux_computer, const std::unordered_map< Direction< Dim >, Scalar< DataVector >> &face_normal_magnitudes_internal, const std::unordered_map< Direction< Dim >, Scalar< DataVector >> &face_normal_magnitudes_boundary) noexcept
 

Static Public Attributes

static constexpr size_t volume_dim = Dim
 

Detailed Description

template<size_t Dim, typename VariablesTag, typename NumericalFluxComputerTag, typename TemporalIdTag>
struct dg::FirstOrderScheme::FirstOrderScheme< Dim, VariablesTag, NumericalFluxComputerTag, TemporalIdTag >

Boundary contributions for a first-order DG scheme.

Computes Eq. (2.20) in [62] and lifts it to the volume (see dg::lift_flux) on all mortars that touch an element. The resulting boundary contributions are added to the DG operator data in db::add_tag_prefix<TemporalIdTag::template step_prefix, VariablesTag>.


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