SpECTRE
v2024.12.16
|
Computes the upwind multipenalty boundary correction for scalar wave in curved spacetime. More...
#include <UpwindPenalty.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_volume_tags = implementation defined |
using | dg_boundary_terms_volume_tags = implementation defined |
Public Types inherited from CurvedScalarWave::BoundaryCorrections::BoundaryCorrection< Dim > | |
using | creatable_classes = implementation defined |
Public Member Functions | |
UpwindPenalty (const UpwindPenalty &)=default | |
UpwindPenalty & | operator= (const UpwindPenalty &)=default |
UpwindPenalty (UpwindPenalty &&)=default | |
UpwindPenalty & | operator= (UpwindPenalty &&)=default |
void | pup (PUP::er &p) override |
std::unique_ptr< BoundaryCorrection< Dim > > | get_clone () const override |
double | dg_package_data (gsl::not_null< Scalar< DataVector > * > packaged_v_psi, gsl::not_null< tnsr::i< DataVector, Dim, Frame::Inertial > * > packaged_v_zero, gsl::not_null< Scalar< DataVector > * > packaged_v_plus, gsl::not_null< Scalar< DataVector > * > packaged_v_minus, gsl::not_null< Scalar< DataVector > * > packaged_gamma2, gsl::not_null< tnsr::i< DataVector, Dim, Frame::Inertial > * > packaged_interface_unit_normal, gsl::not_null< tnsr::a< DataVector, 3, Frame::Inertial > * > packaged_char_speeds, const Scalar< DataVector > &psi, const Scalar< DataVector > &pi, const tnsr::i< DataVector, Dim, Frame::Inertial > &phi, const Scalar< DataVector > &lapse, const tnsr::I< DataVector, Dim, Frame::Inertial > &shift, const Scalar< DataVector > &constraint_gamma1, const Scalar< DataVector > &constraint_gamma2, const tnsr::i< DataVector, Dim, Frame::Inertial > &interface_unit_normal, const tnsr::I< DataVector, Dim, Frame::Inertial > &interface_unit_normal_vector, const std::optional< tnsr::I< DataVector, Dim, Frame::Inertial > > &, const std::optional< Scalar< DataVector > > &normal_dot_mesh_velocity) const |
void | dg_boundary_terms (gsl::not_null< Scalar< DataVector > * > psi_boundary_correction, gsl::not_null< Scalar< DataVector > * > pi_boundary_correction, gsl::not_null< tnsr::i< DataVector, Dim, Frame::Inertial > * > phi_boundary_correction, const Scalar< DataVector > &v_psi_int, const tnsr::i< DataVector, Dim, Frame::Inertial > &v_zero_int, const Scalar< DataVector > &v_plus_int, const Scalar< DataVector > &v_minus_int, const Scalar< DataVector > &gamma2_int, const tnsr::i< DataVector, Dim, Frame::Inertial > &interface_unit_normal_int, const tnsr::a< DataVector, 3, Frame::Inertial > &char_speeds_int, const Scalar< DataVector > &v_psi_ext, const tnsr::i< DataVector, Dim, Frame::Inertial > &v_zero_ext, const Scalar< DataVector > &v_plus_ext, const Scalar< DataVector > &v_minus_ext, const Scalar< DataVector > &gamma2_ext, const tnsr::i< DataVector, Dim, Frame::Inertial > &interface_unit_normal_ext, const tnsr::a< DataVector, 3, Frame::Inertial > &char_speeds_ext, dg::Formulation) const |
Public Member Functions inherited from CurvedScalarWave::BoundaryCorrections::BoundaryCorrection< Dim > | |
BoundaryCorrection (const BoundaryCorrection &)=default | |
BoundaryCorrection & | operator= (const BoundaryCorrection &)=default |
BoundaryCorrection (BoundaryCorrection &&)=default | |
BoundaryCorrection & | operator= (BoundaryCorrection &&)=default |
virtual std::unique_ptr< BoundaryCorrection< Dim > > | get_clone () const =0 |
Static Public Attributes | |
static constexpr Options::String | help |
Computes the upwind multipenalty boundary correction for scalar wave in curved spacetime.
This implements the upwind multipenalty boundary correction term. The general form is given by:
where
The superscripts
with weights
|
overridevirtual |
|
staticconstexpr |