SpECTRE
v2025.03.17
|
Initialize the geometry on faces and mortars for the elliptic DG operator. More...
#include <Initialization.hpp>
Public Types | |
using | return_tags = implementation defined |
using | argument_tags = implementation defined |
using | volume_tags = implementation defined |
Static Public Member Functions | |
template<typename... AmrData> | |
static void | apply (const gsl::not_null< DirectionMap< Dim, Direction< Dim > > * > face_directions, const gsl::not_null< DirectionMap< Dim, tnsr::I< DataVector, Dim > > * > faces_inertial_coords, const gsl::not_null< DirectionMap< Dim, tnsr::i< DataVector, Dim > > * > face_normals, const gsl::not_null< DirectionMap< Dim, tnsr::I< DataVector, Dim > > * > face_normal_vectors, const gsl::not_null< DirectionMap< Dim, Scalar< DataVector > > * > face_normal_magnitudes, const gsl::not_null< DirectionMap< Dim, Scalar< DataVector > > * > face_jacobians, const gsl::not_null< DirectionMap< Dim, InverseJacobian< DataVector, Dim, Frame::ElementLogical, Frame::Inertial > > * > face_jacobian_times_inv_jacobian, const gsl::not_null< DirectionMap< Dim, tnsr::ij< DataVector, Dim > > * > deriv_unnormalized_face_normals, const gsl::not_null<::dg::MortarMap< Dim, Mesh< Dim - 1 > > * > mortar_meshes, const gsl::not_null<::dg::MortarMap< Dim, ::dg::MortarSize< Dim - 1 > > * > mortar_sizes, const gsl::not_null<::dg::MortarMap< Dim, tnsr::I< DataVector, Dim > > * > all_mortar_inertial_coords, const gsl::not_null<::dg::MortarMap< Dim, Scalar< DataVector > > * > mortar_jacobians, const gsl::not_null<::dg::MortarMap< Dim, Scalar< DataVector > > * > penalty_factors, const Mesh< Dim > &mesh, const Element< Dim > &element, const DirectionalIdMap< Dim, Mesh< Dim > > &neighbor_meshes, const ElementMap< Dim, Frame::Inertial > &element_map, const InverseJacobian< DataVector, Dim, Frame::ElementLogical, Frame::Inertial > &inv_jacobian, const Domain< Dim > &domain, const domain::FunctionsOfTimeMap &functions_of_time, const double penalty_parameter, const AmrData &... amr_data) |
template<typename Background , typename Metavariables , typename... AmrData> | |
static void | apply (const gsl::not_null< DirectionMap< Dim, Direction< Dim > > * > face_directions, const gsl::not_null< DirectionMap< Dim, tnsr::I< DataVector, Dim > > * > faces_inertial_coords, const gsl::not_null< DirectionMap< Dim, tnsr::i< DataVector, Dim > > * > face_normals, const gsl::not_null< DirectionMap< Dim, tnsr::I< DataVector, Dim > > * > face_normal_vectors, const gsl::not_null< DirectionMap< Dim, Scalar< DataVector > > * > face_normal_magnitudes, const gsl::not_null< DirectionMap< Dim, Scalar< DataVector > > * > face_jacobians, const gsl::not_null< DirectionMap< Dim, InverseJacobian< DataVector, Dim, Frame::ElementLogical, Frame::Inertial > > * > face_jacobian_times_inv_jacobian, const gsl::not_null< DirectionMap< Dim, tnsr::ij< DataVector, Dim > > * > deriv_unnormalized_face_normals, const gsl::not_null<::dg::MortarMap< Dim, Mesh< Dim - 1 > > * > mortar_meshes, const gsl::not_null<::dg::MortarMap< Dim, ::dg::MortarSize< Dim - 1 > > * > mortar_sizes, const gsl::not_null<::dg::MortarMap< Dim, tnsr::I< DataVector, Dim > > * > all_mortar_inertial_coords, const gsl::not_null<::dg::MortarMap< Dim, Scalar< DataVector > > * > mortar_jacobians, const gsl::not_null<::dg::MortarMap< Dim, Scalar< DataVector > > * > penalty_factors, const Mesh< Dim > &mesh, const Element< Dim > &element, const DirectionalIdMap< Dim, Mesh< Dim > > &neighbor_meshes, const ElementMap< Dim, Frame::Inertial > &element_map, const InverseJacobian< DataVector, Dim, Frame::ElementLogical, Frame::Inertial > &inv_jacobian, const Domain< Dim > &domain, const domain::FunctionsOfTimeMap &functions_of_time, const double penalty_parameter, const Background &background, const Metavariables &, const AmrData &...) |
Initialize the geometry on faces and mortars for the elliptic DG operator.
To normalize face normals this function needs the inverse background metric. Pass the tag representing the inverse background metric to the InvMetricTag
template parameter, and the tag representing the analytic background from which it can be retrieved to the BackgroundTag
template parameter. Set InvMetricTag
and BackgroundTag
to void
to normalize face normals with the Euclidean magnitude.
Mortar Jacobians are added only on nonconforming internal element boundaries, i.e., when Spectral::needs_projection()
is true.
The Tags::deriv<domain::Tags::UnnormalizedFaceNormal<Dim>>
is only added on external boundaries, for use by boundary conditions.