SpECTRE
v2025.03.17
|
A Rusanov/local Lax-Friedrichs Riemann solver. More...
#include <Rusanov.hpp>
Public Types | |
using | options = implementation defined |
using | dg_package_field_tags = implementation defined |
using | dg_package_data_temporary_tags = implementation defined |
using | dg_package_data_primitive_tags = implementation defined |
using | dg_package_data_volume_tags = implementation defined |
using | dg_boundary_terms_volume_tags = implementation defined |
![]() | |
using | creatable_classes = implementation defined |
Public Member Functions | |
Rusanov (const Rusanov &)=default | |
Rusanov & | operator= (const Rusanov &)=default |
Rusanov (Rusanov &&)=default | |
Rusanov & | operator= (Rusanov &&)=default |
void | pup (PUP::er &p) override |
std::unique_ptr< BoundaryCorrection > | get_clone () const override |
![]() | |
BoundaryCorrection (const BoundaryCorrection &)=default | |
BoundaryCorrection & | operator= (const BoundaryCorrection &)=default |
BoundaryCorrection (BoundaryCorrection &&)=default | |
BoundaryCorrection & | operator= (BoundaryCorrection &&)=default |
virtual std::unique_ptr< BoundaryCorrection > | get_clone () const =0 |
Static Public Member Functions | |
static double | dg_package_data (gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > packaged_tilde_e, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > packaged_tilde_b, gsl::not_null< Scalar< DataVector > * > packaged_tilde_psi, gsl::not_null< Scalar< DataVector > * > packaged_tilde_phi, gsl::not_null< Scalar< DataVector > * > packaged_tilde_q, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > packaged_normal_dot_flux_tilde_e, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > packaged_normal_dot_flux_tilde_b, gsl::not_null< Scalar< DataVector > * > packaged_normal_dot_flux_tilde_psi, gsl::not_null< Scalar< DataVector > * > packaged_normal_dot_flux_tilde_phi, gsl::not_null< Scalar< DataVector > * > packaged_normal_dot_flux_tilde_q, gsl::not_null< Scalar< DataVector > * > packaged_abs_char_speed, const tnsr::I< DataVector, 3, Frame::Inertial > &tilde_e, const tnsr::I< DataVector, 3, Frame::Inertial > &tilde_b, const Scalar< DataVector > &tilde_psi, const Scalar< DataVector > &tilde_phi, const Scalar< DataVector > &tilde_q, const tnsr::IJ< DataVector, 3, Frame::Inertial > &flux_tilde_e, const tnsr::IJ< DataVector, 3, Frame::Inertial > &flux_tilde_b, const tnsr::I< DataVector, 3, Frame::Inertial > &flux_tilde_psi, const tnsr::I< DataVector, 3, Frame::Inertial > &flux_tilde_phi, const tnsr::I< DataVector, 3, Frame::Inertial > &flux_tilde_q, const Scalar< DataVector > &lapse, const tnsr::I< DataVector, 3, Frame::Inertial > &shift, const tnsr::i< DataVector, 3, Frame::Inertial > &normal_covector, const tnsr::I< DataVector, 3, Frame::Inertial > &normal_vector, const std::optional< tnsr::I< DataVector, 3, Frame::Inertial > > &, const std::optional< Scalar< DataVector > > &normal_dot_mesh_velocity) |
static void | dg_boundary_terms (gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > boundary_correction_tilde_e, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > boundary_correction_tilde_b, gsl::not_null< Scalar< DataVector > * > boundary_correction_tilde_psi, gsl::not_null< Scalar< DataVector > * > boundary_correction_tilde_phi, gsl::not_null< Scalar< DataVector > * > boundary_correction_tilde_q, const tnsr::I< DataVector, 3, Frame::Inertial > &tilde_e_int, const tnsr::I< DataVector, 3, Frame::Inertial > &tilde_b_int, const Scalar< DataVector > &tilde_psi_int, const Scalar< DataVector > &tilde_phi_int, const Scalar< DataVector > &tilde_q_int, const tnsr::I< DataVector, 3, Frame::Inertial > &normal_dot_flux_tilde_e_int, const tnsr::I< DataVector, 3, Frame::Inertial > &normal_dot_flux_tilde_b_int, const Scalar< DataVector > &normal_dot_flux_tilde_psi_int, const Scalar< DataVector > &normal_dot_flux_tilde_phi_int, const Scalar< DataVector > &normal_dot_flux_tilde_q_int, const Scalar< DataVector > &abs_char_speed_int, const tnsr::I< DataVector, 3, Frame::Inertial > &tilde_e_ext, const tnsr::I< DataVector, 3, Frame::Inertial > &tilde_b_ext, const Scalar< DataVector > &tilde_psi_ext, const Scalar< DataVector > &tilde_phi_ext, const Scalar< DataVector > &tilde_q_ext, const tnsr::I< DataVector, 3, Frame::Inertial > &normal_dot_flux_tilde_e_ext, const tnsr::I< DataVector, 3, Frame::Inertial > &normal_dot_flux_tilde_b_ext, const Scalar< DataVector > &normal_dot_flux_tilde_psi_ext, const Scalar< DataVector > &normal_dot_flux_tilde_phi_ext, const Scalar< DataVector > &normal_dot_flux_tilde_q_ext, const Scalar< DataVector > &abs_char_speed_ext, dg::Formulation dg_formulation) |
Static Public Attributes | |
static constexpr Options::String | help |
A Rusanov/local Lax-Friedrichs Riemann solver.
Let
where "int" and "ext" stand for interior and exterior, and
For the GRFFE system the largest characteristic speeds
which correspond to fast mode waves.
dg_boundary_terms
function returns
|
overridevirtual |
|
staticconstexpr |