SpECTRE  v2024.05.11
ScalarTensor::BoundaryConditions::ProductOfConditions< DerivedGhCondition, DerivedScalarCondition > Class Template Referencefinal

Apply a boundary condition to the combined Generalized Harmonic (GH) and CurvedScalarWave (CSW) system using the boundary conditions defined separately for the GH and CSW systems. More...

#include <ProductOfConditions.hpp>

Classes

struct  GhCondition
 
struct  ScalarCondition
 

Public Types

using dg_interior_evolved_variables_tags = tmpl::remove_duplicates< tmpl::append< typename DerivedGhCondition::dg_interior_evolved_variables_tags, typename DerivedScalarCondition::dg_interior_evolved_variables_tags > >
 
using dg_interior_temporary_tags = tmpl::remove_duplicates< tmpl::append< typename DerivedGhCondition::dg_interior_temporary_tags, typename DerivedScalarCondition::dg_interior_temporary_tags > >
 
using dg_gridless_tags = tmpl::remove_duplicates< tmpl::append< typename DerivedGhCondition::dg_gridless_tags, typename DerivedScalarCondition::dg_gridless_tags > >
 
using dg_interior_dt_vars_tags = tmpl::append< evolution::dg::Actions::detail::get_dt_vars_from_boundary_condition< DerivedGhCondition >, evolution::dg::Actions::detail::get_dt_vars_from_boundary_condition< DerivedScalarCondition > >
 
using dg_interior_deriv_vars_tags = tmpl::append< evolution::dg::Actions::detail::get_deriv_vars_from_boundary_condition< DerivedGhCondition >, evolution::dg::Actions::detail::get_deriv_vars_from_boundary_condition< DerivedScalarCondition > >
 
using options = tmpl::list< GhCondition, ScalarCondition >
 

Public Member Functions

 ProductOfConditions (DerivedGhCondition gh_condition, DerivedScalarCondition scalar_condition)
 
 ProductOfConditions (const ProductOfConditions &)=default
 
ProductOfConditionsoperator= (const ProductOfConditions &)=default
 
 ProductOfConditions (ProductOfConditions &&)=default
 
ProductOfConditionsoperator= (ProductOfConditions &&)=default
 
void pup (PUP::er &p) override
 
auto get_clone () const -> std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > override
 
std::optional< std::stringdg_demand_outgoing_char_speeds (const std::optional< tnsr::I< DataVector, dim, Frame::Inertial > > &face_mesh_velocity, const tnsr::i< DataVector, dim, Frame::Inertial > &outward_directed_normal_covector, const tnsr::I< DataVector, dim, Frame::Inertial > &outward_directed_normal_vector, const Scalar< DataVector > &gamma_1, const Scalar< DataVector > &lapse, const tnsr::I< DataVector, dim, Frame::Inertial > &shift, const Scalar< DataVector > &gamma1_scalar) const
 
std::optional< std::stringdg_ghost (const gsl::not_null< tnsr::aa< DataVector, dim, Frame::Inertial > * > spacetime_metric, const gsl::not_null< tnsr::aa< DataVector, dim, Frame::Inertial > * > pi, const gsl::not_null< tnsr::iaa< DataVector, dim, Frame::Inertial > * > phi, const gsl::not_null< Scalar< DataVector > * > psi_scalar, const gsl::not_null< Scalar< DataVector > * > pi_scalar, const gsl::not_null< tnsr::i< DataVector, dim, Frame::Inertial > * > phi_scalar, const gsl::not_null< Scalar< DataVector > * > gamma1, const gsl::not_null< Scalar< DataVector > * > gamma2, const gsl::not_null< Scalar< DataVector > * > lapse, const gsl::not_null< tnsr::I< DataVector, dim, Frame::Inertial > * > shift, const gsl::not_null< Scalar< DataVector > * > gamma1_scalar, const gsl::not_null< Scalar< DataVector > * > gamma2_scalar, const gsl::not_null< tnsr::II< DataVector, dim, Frame::Inertial > * > inv_spatial_metric, const std::optional< tnsr::I< DataVector, dim, Frame::Inertial > > &face_mesh_velocity, const tnsr::i< DataVector, dim, Frame::Inertial > &normal_covector, const tnsr::I< DataVector, dim, Frame::Inertial > &normal_vector, const tnsr::I< DataVector, dim, Frame::Inertial > &coords, const Scalar< DataVector > &interior_gamma1, const Scalar< DataVector > &interior_gamma2, const tnsr::II< DataVector, dim, Frame::Inertial > &inverse_spatial_metric_interior, const Scalar< DataVector > &gamma1_interior_scalar, const Scalar< DataVector > &gamma2_interior_scalar, const Scalar< DataVector > &lapse_interior, const tnsr::I< DataVector, dim > &shift_interior, const double time) const
 
std::optional< std::stringdg_ghost (const gsl::not_null< tnsr::aa< DataVector, dim, Frame::Inertial > * > spacetime_metric, const gsl::not_null< tnsr::aa< DataVector, dim, Frame::Inertial > * > pi, const gsl::not_null< tnsr::iaa< DataVector, dim, Frame::Inertial > * > phi, const gsl::not_null< Scalar< DataVector > * > psi_scalar, const gsl::not_null< Scalar< DataVector > * > pi_scalar, const gsl::not_null< tnsr::i< DataVector, dim, Frame::Inertial > * > phi_scalar, const gsl::not_null< Scalar< DataVector > * > gamma1, const gsl::not_null< Scalar< DataVector > * > gamma2, const gsl::not_null< Scalar< DataVector > * > lapse, const gsl::not_null< tnsr::I< DataVector, dim, Frame::Inertial > * > shift, const gsl::not_null< Scalar< DataVector > * > gamma1_scalar, const gsl::not_null< Scalar< DataVector > * > gamma2_scalar, const gsl::not_null< tnsr::II< DataVector, dim, Frame::Inertial > * > inv_spatial_metric, const std::optional< tnsr::I< DataVector, dim, Frame::Inertial > > &face_mesh_velocity, const tnsr::i< DataVector, dim, Frame::Inertial > &normal_covector, const tnsr::I< DataVector, dim, Frame::Inertial > &normal_vector, const Scalar< DataVector > &interior_gamma1, const Scalar< DataVector > &interior_gamma2, const tnsr::II< DataVector, dim, Frame::Inertial > &inverse_spatial_metric_interior, const Scalar< DataVector > &gamma1_interior_scalar, const Scalar< DataVector > &gamma2_interior_scalar, const Scalar< DataVector > &lapse_interior, const tnsr::I< DataVector, dim > &shift_interior) const
 
- Public Member Functions inherited from ScalarTensor::BoundaryConditions::BoundaryCondition
 BoundaryCondition (BoundaryCondition &&)=default
 
BoundaryConditionoperator= (BoundaryCondition &&)=default
 
 BoundaryCondition (const BoundaryCondition &)=default
 
BoundaryConditionoperator= (const BoundaryCondition &)=default
 
 BoundaryCondition (CkMigrateMessage *msg)
 
void pup (PUP::er &p) override
 
- Public Member Functions inherited from domain::BoundaryConditions::BoundaryCondition
 BoundaryCondition (BoundaryCondition &&)=default
 
BoundaryConditionoperator= (BoundaryCondition &&)=default
 
 BoundaryCondition (const BoundaryCondition &)=default
 
BoundaryConditionoperator= (const BoundaryCondition &)=default
 
 BoundaryCondition (CkMigrateMessage *const msg)
 
 WRAPPED_PUPable_abstract (BoundaryCondition)
 
virtual auto get_clone () const -> std::unique_ptr< BoundaryCondition >=0
 

Static Public Member Functions

static std::string name ()
 

Static Public Attributes

static constexpr size_t dim = 3
 
static constexpr evolution::BoundaryConditions::Type bc_type
 
static constexpr Options::String help
 

Detailed Description

template<typename DerivedGhCondition, typename DerivedScalarCondition>
class ScalarTensor::BoundaryConditions::ProductOfConditions< DerivedGhCondition, DerivedScalarCondition >

Apply a boundary condition to the combined Generalized Harmonic (GH) and CurvedScalarWave (CSW) system using the boundary conditions defined separately for the GH and CSW systems.

Member Function Documentation

◆ get_clone()

template<typename DerivedGhCondition , typename DerivedScalarCondition >
auto ScalarTensor::BoundaryConditions::ProductOfConditions< DerivedGhCondition, DerivedScalarCondition >::get_clone
overridevirtual

Member Data Documentation

◆ bc_type

template<typename DerivedGhCondition , typename DerivedScalarCondition >
constexpr evolution::BoundaryConditions::Type ScalarTensor::BoundaryConditions::ProductOfConditions< DerivedGhCondition, DerivedScalarCondition >::bc_type
staticconstexpr
Initial value:
=
detail::UnionOfBcTypes<DerivedGhCondition::bc_type,
DerivedScalarCondition::bc_type>::bc_type

◆ help

template<typename DerivedGhCondition , typename DerivedScalarCondition >
constexpr Options::String ScalarTensor::BoundaryConditions::ProductOfConditions< DerivedGhCondition, DerivedScalarCondition >::help
staticconstexpr
Initial value:
= {
"Direct product of a GH and CurvedScalarWave boundary conditions. "
"See the documentation for the two individual boundary conditions for "
"further details."}

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