SpECTRE  v2024.05.11
ScalarTensor::BoundaryCorrections::ProductOfCorrections< DerivedGhCorrection, DerivedScalarCorrection > Class Template Referencefinal

Apply a boundary condition to the combined Generalized Harmonic (gh) and scalar field (CurvedScalarWave) system using boundary corrections defined separately. More...

#include <ProductOfCorrections.hpp>

Classes

struct  GhCorrection
 
struct  ScalarCorrection
 

Public Types

using dg_package_field_tags = tmpl::append< typename DerivedGhCorrection::dg_package_field_tags, typename DerivedScalarCorrection::dg_package_field_tags >
 
using dg_package_data_temporary_tags = tmpl::remove_duplicates< tmpl::append< typename DerivedGhCorrection::dg_package_data_temporary_tags, typename DerivedScalarCorrection::dg_package_data_temporary_tags > >
 
using dg_package_data_primitive_tags = tmpl::list<>
 
using dg_package_data_volume_tags = tmpl::append< typename DerivedGhCorrection::dg_package_data_volume_tags, typename DerivedScalarCorrection::dg_package_data_volume_tags >
 
using dg_boundary_terms_volume_tags = tmpl::append< typename DerivedGhCorrection::dg_boundary_terms_volume_tags, typename DerivedScalarCorrection::dg_boundary_terms_volume_tags >
 
using options = tmpl::list< GhCorrection, ScalarCorrection >
 
- Public Types inherited from ScalarTensor::BoundaryCorrections::BoundaryCorrection
using creatable_classes = typename detail::AllProductCorrections< typename gh::BoundaryCorrections::BoundaryCorrection< 3 >::creatable_classes, typename CurvedScalarWave::BoundaryCorrections::BoundaryCorrection< 3 >::creatable_classes >::type
 

Public Member Functions

 ProductOfCorrections (DerivedGhCorrection gh_correction, DerivedScalarCorrection scalar_correction)
 
 ProductOfCorrections (const ProductOfCorrections &)=default
 
ProductOfCorrectionsoperator= (const ProductOfCorrections &)=default
 
 ProductOfCorrections (ProductOfCorrections &&)=default
 
ProductOfCorrectionsoperator= (ProductOfCorrections &&)=default
 
void pup (PUP::er &p) override
 
std::unique_ptr< BoundaryCorrectionget_clone () const override
 
double dg_package_data (const gsl::not_null< tnsr::aa< DataVector, dim, Frame::Inertial > * > packaged_char_speed_v_spacetime_metric, const gsl::not_null< tnsr::iaa< DataVector, dim, Frame::Inertial > * > packaged_char_speed_v_zero, const gsl::not_null< tnsr::aa< DataVector, dim, Frame::Inertial > * > packaged_char_speed_v_plus, const gsl::not_null< tnsr::aa< DataVector, dim, Frame::Inertial > * > packaged_char_speed_v_minus, const gsl::not_null< tnsr::iaa< DataVector, dim, Frame::Inertial > * > packaged_char_speed_n_times_v_plus, const gsl::not_null< tnsr::iaa< DataVector, dim, Frame::Inertial > * > packaged_char_speed_n_times_v_minus, const gsl::not_null< tnsr::aa< DataVector, dim, Frame::Inertial > * > packaged_char_speed_gamma2_v_spacetime_metric, const gsl::not_null< tnsr::a< DataVector, dim, Frame::Inertial > * > packaged_char_speeds, const gsl::not_null< Scalar< DataVector > * > packaged_v_psi_scalar, const gsl::not_null< tnsr::i< DataVector, dim, Frame::Inertial > * > packaged_v_zero_scalar, const gsl::not_null< Scalar< DataVector > * > packaged_v_plus_scalar, const gsl::not_null< Scalar< DataVector > * > packaged_v_minus_scalar, const gsl::not_null< Scalar< DataVector > * > packaged_gamma2_scalar, const gsl::not_null< tnsr::i< DataVector, dim, Frame::Inertial > * > packaged_interface_unit_normal_scalar, const gsl::not_null< tnsr::a< DataVector, dim, Frame::Inertial > * > packaged_char_speeds_scalar, const tnsr::aa< DataVector, dim, Frame::Inertial > &spacetime_metric, const tnsr::aa< DataVector, dim, Frame::Inertial > &pi, const tnsr::iaa< DataVector, dim, Frame::Inertial > &phi, const Scalar< DataVector > &psi_scalar, const Scalar< DataVector > &pi_scalar, const tnsr::i< DataVector, dim, Frame::Inertial > &phi_scalar, const Scalar< DataVector > &constraint_gamma1, const Scalar< DataVector > &constraint_gamma2, const Scalar< DataVector > &lapse, const tnsr::I< DataVector, dim, Frame::Inertial > &shift, const Scalar< DataVector > &constraint_gamma1_scalar, const Scalar< DataVector > &constraint_gamma2_scalar, const tnsr::i< DataVector, dim, Frame::Inertial > &normal_covector, const tnsr::I< DataVector, dim, Frame::Inertial > &normal_vector, const std::optional< tnsr::I< DataVector, dim, Frame::Inertial > > &mesh_velocity, const std::optional< Scalar< DataVector > > &normal_dot_mesh_velocity) const
 
void dg_boundary_terms (const gsl::not_null< tnsr::aa< DataVector, dim, Frame::Inertial > * > boundary_correction_spacetime_metric, const gsl::not_null< tnsr::aa< DataVector, dim, Frame::Inertial > * > boundary_correction_pi, const gsl::not_null< tnsr::iaa< DataVector, dim, Frame::Inertial > * > boundary_correction_phi, const gsl::not_null< Scalar< DataVector > * > psi_boundary_correction_scalar, const gsl::not_null< Scalar< DataVector > * > pi_boundary_correction_scalar, const gsl::not_null< tnsr::i< DataVector, dim, Frame::Inertial > * > phi_boundary_correction_scalar, const tnsr::aa< DataVector, dim, Frame::Inertial > &char_speed_v_spacetime_metric_int, const tnsr::iaa< DataVector, dim, Frame::Inertial > &char_speed_v_zero_int, const tnsr::aa< DataVector, dim, Frame::Inertial > &char_speed_v_plus_int, const tnsr::aa< DataVector, dim, Frame::Inertial > &char_speed_v_minus_int, const tnsr::iaa< DataVector, dim, Frame::Inertial > &char_speed_normal_times_v_plus_int, const tnsr::iaa< DataVector, dim, Frame::Inertial > &char_speed_normal_times_v_minus_int, const tnsr::aa< DataVector, dim, Frame::Inertial > &char_speed_constraint_gamma2_v_spacetime_metric_int, const tnsr::a< DataVector, dim, Frame::Inertial > &char_speeds_int, const Scalar< DataVector > &v_psi_int_scalar, const tnsr::i< DataVector, dim, Frame::Inertial > &v_zero_int_scalar, const Scalar< DataVector > &v_plus_int_scalar, const Scalar< DataVector > &v_minus_int_scalar, const Scalar< DataVector > &gamma2_int_scalar, const tnsr::i< DataVector, dim, Frame::Inertial > &interface_unit_normal_int_scalar, const tnsr::a< DataVector, dim, Frame::Inertial > &char_speeds_int_scalar, const tnsr::aa< DataVector, dim, Frame::Inertial > &char_speed_v_spacetime_metric_ext, const tnsr::iaa< DataVector, dim, Frame::Inertial > &char_speed_v_zero_ext, const tnsr::aa< DataVector, dim, Frame::Inertial > &char_speed_v_plus_ext, const tnsr::aa< DataVector, dim, Frame::Inertial > &char_speed_v_minus_ext, const tnsr::iaa< DataVector, dim, Frame::Inertial > &char_speed_normal_times_v_plus_ext, const tnsr::iaa< DataVector, dim, Frame::Inertial > &char_speed_normal_times_v_minus_ext, const tnsr::aa< DataVector, dim, Frame::Inertial > &char_speed_constraint_gamma2_v_spacetime_metric_ext, const tnsr::a< DataVector, dim, Frame::Inertial > &char_speeds_ext, const Scalar< DataVector > &v_psi_ext_scalar, const tnsr::i< DataVector, dim, Frame::Inertial > &v_zero_ext_scalar, const Scalar< DataVector > &v_plus_ext_scalar, const Scalar< DataVector > &v_minus_ext_scalar, const Scalar< DataVector > &gamma2_ext_scalar, const tnsr::i< DataVector, dim, Frame::Inertial > &interface_unit_normal_ext_scalar, const tnsr::a< DataVector, dim, Frame::Inertial > &char_speeds_ext_scalar, const dg::Formulation dg_formulation) const
 
const DerivedGhCorrection & gh_correction () const
 
const DerivedScalarCorrection & scalar_correction () const
 
- Public Member Functions inherited from ScalarTensor::BoundaryCorrections::BoundaryCorrection
 BoundaryCorrection (const BoundaryCorrection &)=default
 
BoundaryCorrectionoperator= (const BoundaryCorrection &)=default
 
 BoundaryCorrection (BoundaryCorrection &&)=default
 
BoundaryCorrectionoperator= (BoundaryCorrection &&)=default
 
virtual std::unique_ptr< BoundaryCorrectionget_clone () const =0
 

Static Public Member Functions

static std::string name ()
 

Static Public Attributes

static constexpr size_t dim = 3
 
static constexpr Options::String help
 

Detailed Description

template<typename DerivedGhCorrection, typename DerivedScalarCorrection>
class ScalarTensor::BoundaryCorrections::ProductOfCorrections< DerivedGhCorrection, DerivedScalarCorrection >

Apply a boundary condition to the combined Generalized Harmonic (gh) and scalar field (CurvedScalarWave) system using boundary corrections defined separately.

See also
gh::BoundaryCorrections and CurvedScalarWave::BoundaryCorrections.

Member Function Documentation

◆ get_clone()

template<typename DerivedGhCorrection , typename DerivedScalarCorrection >
std::unique_ptr< BoundaryCorrection > ScalarTensor::BoundaryCorrections::ProductOfCorrections< DerivedGhCorrection, DerivedScalarCorrection >::get_clone ( ) const
inlineoverridevirtual

Member Data Documentation

◆ help

template<typename DerivedGhCorrection , typename DerivedScalarCorrection >
constexpr Options::String ScalarTensor::BoundaryCorrections::ProductOfCorrections< DerivedGhCorrection, DerivedScalarCorrection >::help
staticconstexpr
Initial value:
= {
"Direct product of a GH and CurvedScalarWave boundary correction. "
"See the documentation for the two individual boundary corrections for "
"further details."}

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