Namespaces | Classes | Typedefs | Enumerations | Functions
dg Namespace Reference

Functionality related to discontinuous Galerkin schemes. More...

Namespaces

 FirstOrderScheme
 Functionality related to the first-order DG scheme.
 
 protocols
 Protocols related to Discontinuous Galerkin functionality
 

Classes

struct  FluxesInboxTag
 The inbox tag for flux communication. More...
 
struct  SimpleBoundaryData
 Distinguishes between field data, which can be projected to a mortar, and extra data, which will not be projected. More...
 
class  SimpleMortarData
 Storage of boundary data on two sides of a mortar. More...
 

Typedefs

template<size_t VolumeDim>
using MortarId = std::pair<::Direction< VolumeDim >, ElementId< VolumeDim > >
 
template<size_t MortarDim>
using MortarSize = std::array< Spectral::MortarSize, MortarDim >
 
template<size_t VolumeDim, typename ValueType >
using MortarMap = std::unordered_map< MortarId< VolumeDim >, ValueType, boost::hash< MortarId< VolumeDim > >>
 

Enumerations

enum  Formulation { StrongInertial, WeakInertial }
 The DG formulation to use. More...
 

Functions

std::ostreamoperator<< (std::ostream &os, const Formulation t) noexcept
 
template<typename... BoundaryCorrectionTags>
void lift_flux (const gsl::not_null< Variables< tmpl::list< BoundaryCorrectionTags... >> * > boundary_correction_terms, const size_t extent_perpendicular_to_boundary, Scalar< DataVector > magnitude_of_face_normal) noexcept
 Lifts the flux contribution from an interface to the volume. More...
 
template<typename... FluxTags>
auto lift_flux (Variables< tmpl::list< FluxTags... >> flux, const size_t extent_perpendicular_to_boundary, Scalar< DataVector > magnitude_of_face_normal) noexcept -> Variables< tmpl::list< db::remove_tag_prefix< FluxTags >... >>
 
template<size_t Dim>
void metric_identity_jacobian (const gsl::not_null< InverseJacobian< DataVector, Dim, Frame::Logical, Frame::Inertial > * > det_jac_times_inverse_jacobian, const Mesh< Dim > &mesh, const tnsr::I< DataVector, Dim, Frame::Inertial > &inertial_coords, const Jacobian< DataVector, Dim, Frame::Logical, Frame::Inertial > &jacobian) noexcept
 
template void metric_identity_jacobian (gsl::not_null< InverseJacobian< DataVector, 1, Frame::Logical, Frame::Inertial > * > det_jac_times_inverse_jacobian, const Mesh< 1 > &mesh, const tnsr::I< DataVector, 1, Frame::Inertial > &inertial_coords, const Jacobian< DataVector, 1, Frame::Logical, Frame::Inertial > &jacobian) noexcept
 
template void metric_identity_jacobian (gsl::not_null< InverseJacobian< DataVector, 2, Frame::Logical, Frame::Inertial > * > det_jac_times_inverse_jacobian, const Mesh< 2 > &mesh, const tnsr::I< DataVector, 2, Frame::Inertial > &inertial_coords, const Jacobian< DataVector, 2, Frame::Logical, Frame::Inertial > &jacobian) noexcept
 
template void metric_identity_jacobian (gsl::not_null< InverseJacobian< DataVector, 3, Frame::Logical, Frame::Inertial > * > det_jac_times_inverse_jacobian, const Mesh< 3 > &mesh, const tnsr::I< DataVector, 3, Frame::Inertial > &inertial_coords, const Jacobian< DataVector, 3, Frame::Logical, Frame::Inertial > &jacobian) noexcept
 
template<size_t Dim>
void metric_identity_jacobian (gsl::not_null< InverseJacobian< DataVector, Dim, Frame::Logical, Frame::Inertial > * > det_jac_times_inverse_jacobian, const Mesh< Dim > &mesh, const tnsr::I< DataVector, Dim, Frame::Inertial > &inertial_coords, const Jacobian< DataVector, Dim, Frame::Logical, Frame::Inertial > &jacobian) noexcept
 Compute the Jacobian determinant times the inverse Jacobian so that the result is divergence-free. More...
 
template<size_t Dim>
Mesh< Dim > mortar_mesh (const Mesh< Dim > &face_mesh1, const Mesh< Dim > &face_mesh2) noexcept
 
template<size_t Dim>
std::array< Spectral::MortarSize, Dim - 1 > mortar_size (const ElementId< Dim > &self, const ElementId< Dim > &neighbor, const size_t dimension, const OrientationMap< Dim > &orientation) noexcept
 
template<size_t Dim>
MortarSize< Dim - 1 > mortar_size (const ElementId< Dim > &self, const ElementId< Dim > &neighbor, size_t dimension, const OrientationMap< Dim > &orientation) noexcept
 
template<size_t Dim>
bool needs_projection (const Mesh< Dim > &face_mesh, const Mesh< Dim > &mortar_mesh, const MortarSize< Dim > &mortar_size) noexcept
 
template<typename Tags , size_t Dim>
Variables< Tags > project_to_mortar (const Variables< Tags > &vars, const Mesh< Dim > &face_mesh, const Mesh< Dim > &mortar_mesh, const MortarSize< Dim > &mortar_size) noexcept
 
template<typename Tags , size_t Dim>
Variables< Tags > project_from_mortar (const Variables< Tags > &vars, const Mesh< Dim > &face_mesh, const Mesh< Dim > &mortar_mesh, const MortarSize< Dim > &mortar_size) noexcept
 
template<typename InboxTag , size_t Dim, typename TemporalIdType , typename... InboxTags>
bool has_received_from_all_mortars (const TemporalIdType &temporal_id, const Element< Dim > &element, const tuples::TaggedTuple< InboxTags... > &inboxes) noexcept
 Determines if data on all mortars has been received for the InboxTag at time temporal_id. More...
 

Detailed Description

Functionality related to discontinuous Galerkin schemes.