SpECTRE  v2026.06.30
Loading...
Searching...
No Matches
grmhd::ValenciaDivClean::BoundaryConditions::CartoonGhost Class Referencefinal

Apply parity-respecting FD ghost values for internal boundaries in a Cartoon evolution. More...

#include <CartoonGhost.hpp>

Public Types

using options = tmpl::list<>
using dg_interior_evolved_variables_tags = tmpl::list<>
using dg_interior_primitive_variables_tags = tmpl::list<>
using dg_interior_temporary_tags = tmpl::list<>
using dg_gridless_tags = tmpl::list<>
using fd_interior_evolved_variables_tags = tmpl::list<>
using fd_interior_temporary_tags
using fd_interior_primitive_variables_tags
using fd_gridless_tags = tmpl::list<fd::Tags::Reconstructor>

Public Member Functions

 CartoonGhost (CartoonGhost &&)=default
CartoonGhostoperator= (CartoonGhost &&)=default
 CartoonGhost (const CartoonGhost &)=default
CartoonGhostoperator= (const CartoonGhost &)=default
 CartoonGhost (CkMigrateMessage *msg)
 WRAPPED_PUPable_decl_base_template (domain::BoundaryConditions::BoundaryCondition, CartoonGhost)
auto get_clone () const -> std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > override
void pup (PUP::er &p) override
Public Member Functions inherited from grmhd::ValenciaDivClean::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)
Public Member Functions inherited from domain::BoundaryConditions::MarkAsCartoon
 MarkAsCartoon (MarkAsCartoon &&)=default
MarkAsCartoonoperator= (MarkAsCartoon &&)=default
 MarkAsCartoon (const MarkAsCartoon &)=default
MarkAsCartoonoperator= (const MarkAsCartoon &)=default

Static Public Member Functions

static std::optional< std::stringdg_ghost (gsl::not_null< Scalar< DataVector > * >, gsl::not_null< Scalar< DataVector > * >, gsl::not_null< Scalar< DataVector > * >, gsl::not_null< tnsr::i< DataVector, 3, Frame::Inertial > * >, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * >, gsl::not_null< Scalar< DataVector > * >, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * >, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * >, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * >, gsl::not_null< tnsr::Ij< DataVector, 3, Frame::Inertial > * >, gsl::not_null< tnsr::IJ< DataVector, 3, Frame::Inertial > * >, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * >, gsl::not_null< Scalar< DataVector > * >, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * >, gsl::not_null< tnsr::i< DataVector, 3, Frame::Inertial > * >, gsl::not_null< Scalar< DataVector > * >, gsl::not_null< Scalar< DataVector > * >, gsl::not_null< Scalar< DataVector > * >, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * >, gsl::not_null< tnsr::II< DataVector, 3, Frame::Inertial > * >, const std::optional< tnsr::I< DataVector, 3, Frame::Inertial > > &, const tnsr::i< DataVector, 3, Frame::Inertial > &, const tnsr::I< DataVector, 3, Frame::Inertial > &)
static void fd_ghost (gsl::not_null< Scalar< DataVector > * > rest_mass_density, gsl::not_null< Scalar< DataVector > * > electron_fraction, gsl::not_null< Scalar< DataVector > * > temperature, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > lorentz_factor_times_spatial_velocity, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > magnetic_field, gsl::not_null< Scalar< DataVector > * > divergence_cleaning_field, gsl::not_null< std::optional< Variables< db::wrap_tags_in< Flux, typename grmhd::ValenciaDivClean::System::flux_variables > > > * > cell_centered_ghost_fluxes, const Direction< 3 > &direction, const Mesh< 3 > &subcell_mesh, const tnsr::I< DataVector, 3, Frame::Inertial > &interior_shift, const Scalar< DataVector > &interior_lapse, const tnsr::ii< DataVector, 3, Frame::Inertial > &interior_spatial_metric, const Scalar< DataVector > &interior_rest_mass_density, const Scalar< DataVector > &interior_electron_fraction, const Scalar< DataVector > &interior_temperature, const Scalar< DataVector > &interior_pressure, const Scalar< DataVector > &interior_specific_internal_energy, const Scalar< DataVector > &interior_lorentz_factor, const Scalar< DataVector > &interior_divergence_cleaning_field, const tnsr::I< DataVector, 3, Frame::Inertial > &interior_spatial_velocity, const tnsr::I< DataVector, 3, Frame::Inertial > &interior_magnetic_field, const fd::Reconstructor &reconstructor)
static void fd_ghost_impl (gsl::not_null< Scalar< DataVector > * > rest_mass_density, gsl::not_null< Scalar< DataVector > * > electron_fraction, gsl::not_null< Scalar< DataVector > * > temperature, gsl::not_null< Scalar< DataVector > * > pressure, gsl::not_null< Scalar< DataVector > * > specific_internal_energy, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > lorentz_factor_times_spatial_velocity, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > spatial_velocity, gsl::not_null< Scalar< DataVector > * > lorentz_factor, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > magnetic_field, gsl::not_null< Scalar< DataVector > * > divergence_cleaning_field, gsl::not_null< tnsr::ii< DataVector, 3, Frame::Inertial > * > spatial_metric, gsl::not_null< tnsr::II< DataVector, 3, Frame::Inertial > * > inv_spatial_metric, gsl::not_null< Scalar< DataVector > * > sqrt_det_spatial_metric, gsl::not_null< Scalar< DataVector > * > lapse, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > shift, const Direction< 3 > &direction, const Mesh< 3 > &subcell_mesh, const Scalar< DataVector > &interior_rest_mass_density, const Scalar< DataVector > &interior_electron_fraction, const Scalar< DataVector > &interior_temperature, const Scalar< DataVector > &interior_pressure, const Scalar< DataVector > &interior_specific_internal_energy, const Scalar< DataVector > &interior_lorentz_factor, const Scalar< DataVector > &interior_divergence_cleaning_field, const tnsr::I< DataVector, 3, Frame::Inertial > &interior_spatial_velocity, const tnsr::I< DataVector, 3, Frame::Inertial > &interior_magnetic_field, const tnsr::ii< DataVector, 3, Frame::Inertial > &interior_spatial_metric, const Scalar< DataVector > &interior_lapse, const tnsr::I< DataVector, 3, Frame::Inertial > &interior_shift, size_t ghost_zone_size, bool need_tags_for_fluxes)

Static Public Attributes

static constexpr Options::String help
static constexpr evolution::BoundaryConditions::Type bc_type

Detailed Description

Apply parity-respecting FD ghost values for internal boundaries in a Cartoon evolution.

Domains using the cartoon method have boundaries at \(x = 0\), which require ghost data for FD evolution. We fill this FD ghost data by reflecting the data appropriately: due to the symmetry of cartoon simulations, we can determine the parity of each component of an arbitrary tensor, allowing us to either reflect the data or reflect and negate the data.

This only has fd_ghost() implemented because this boundary uses ZernikeB1 bases in DG elements which do not require a boundary condition.

Member Typedef Documentation

◆ fd_interior_primitive_variables_tags

using grmhd::ValenciaDivClean::BoundaryConditions::CartoonGhost::fd_interior_primitive_variables_tags
Initial value:
tmpl::list<RestMassDensity, ElectronFraction, Temperature,
The divergence-cleaning field .
Definition Tags.hpp:99
The Lorentz factor , where is the spatial velocity of the fluid.
Definition Tags.hpp:181
The fluid pressure .
Definition Tags.hpp:234
The spatial velocity of the fluid, where . Here is the spatial part of the 4-velocity of the fluid,...
Definition Tags.hpp:257
The specific internal energy .
Definition Tags.hpp:292

◆ fd_interior_temporary_tags

using grmhd::ValenciaDivClean::BoundaryConditions::CartoonGhost::fd_interior_temporary_tags
Initial value:
tmpl::list<evolution::dg::subcell::Tags::Mesh<3>, Shift, Lapse,
SpatialMetric>

Member Function Documentation

◆ get_clone()

auto grmhd::ValenciaDivClean::BoundaryConditions::CartoonGhost::get_clone ( ) const -> std::unique_ptr< domain::BoundaryConditions::BoundaryCondition >
overridevirtual

Member Data Documentation

◆ bc_type

evolution::BoundaryConditions::Type grmhd::ValenciaDivClean::BoundaryConditions::CartoonGhost::bc_type
staticconstexpr
Initial value:
=
evolution::BoundaryConditions::Type::Ghost

◆ help

Options::String grmhd::ValenciaDivClean::BoundaryConditions::CartoonGhost::help
staticconstexpr
Initial value:
{
"Sets FD ghost data based off tensor-component parity. This should only "
"be used with cartoon evolution and is automatically handled by the "
"domain creators. This class should never be specified as a boundary "
"condition in an input file."}

The documentation for this class was generated from the following file:
  • src/Evolution/Systems/GrMhd/ValenciaDivClean/BoundaryConditions/CartoonGhost.hpp