SpECTRE  v2024.03.19
grmhd::GhValenciaDivClean::BoundaryConditions::DirichletFreeOutflow Class Referencefinal

Sets Dirichlet boundary conditions using the analytic solution or analytic data on the spacetime variables and hydro free outflow on the GRMHD variables. More...

#include <DirichletFreeOutflow.hpp>

Classes

struct  AnalyticPrescription
 What analytic solution/data to prescribe. More...
 

Public Types

using options = tmpl::list< AnalyticPrescription >
 
using dg_interior_evolved_variables_tags = tmpl::list<>
 
using dg_interior_temporary_tags = tmpl::list< domain::Tags::Coordinates< 3, Frame::Inertial >, ::gh::ConstraintDamping::Tags::ConstraintGamma1, ::gh::ConstraintDamping::Tags::ConstraintGamma2 >
 
using dg_interior_primitive_variables_tags = tmpl::list< hydro::Tags::RestMassDensity< DataVector >, hydro::Tags::ElectronFraction< DataVector >, hydro::Tags::SpecificInternalEnergy< DataVector >, hydro::Tags::SpatialVelocity< DataVector, 3 >, hydro::Tags::MagneticField< DataVector, 3 >, hydro::Tags::LorentzFactor< DataVector >, hydro::Tags::Pressure< DataVector > >
 
using dg_gridless_tags = tmpl::list<::Tags::Time >
 
using fd_interior_evolved_variables_tags = tmpl::list<>
 
using fd_interior_temporary_tags = tmpl::list< evolution::dg::subcell::Tags::Mesh< 3 > >
 
using fd_interior_primitive_variables_tags = tmpl::list< hydro::Tags::RestMassDensity< DataVector >, hydro::Tags::ElectronFraction< DataVector >, hydro::Tags::Temperature< DataVector >, hydro::Tags::Pressure< DataVector >, hydro::Tags::SpecificInternalEnergy< DataVector >, hydro::Tags::LorentzFactor< DataVector >, hydro::Tags::SpatialVelocity< DataVector, 3 >, hydro::Tags::MagneticField< DataVector, 3 > >
 
using fd_gridless_tags = tmpl::list<::Tags::Time, ::domain::Tags::FunctionsOfTime, domain::Tags::ElementMap< 3, Frame::Grid >, domain::CoordinateMaps::Tags::CoordinateMap< 3, Frame::Grid, Frame::Inertial >, fd::Tags::Reconstructor >
 

Public Member Functions

 DirichletFreeOutflow (DirichletFreeOutflow &&)=default
 
DirichletFreeOutflowoperator= (DirichletFreeOutflow &&)=default
 
 DirichletFreeOutflow (const DirichletFreeOutflow &)
 
DirichletFreeOutflowoperator= (const DirichletFreeOutflow &)
 
 DirichletFreeOutflow (CkMigrateMessage *msg)
 
 DirichletFreeOutflow (std::unique_ptr< evolution::initial_data::InitialData > analytic_prescription)
 
 WRAPPED_PUPable_decl_base_template (domain::BoundaryConditions::BoundaryCondition, DirichletFreeOutflow)
 
auto get_clone () const -> std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > override
 
void pup (PUP::er &p) override
 
std::optional< std::stringdg_ghost (gsl::not_null< tnsr::aa< DataVector, 3, Frame::Inertial > * > spacetime_metric, gsl::not_null< tnsr::aa< DataVector, 3, Frame::Inertial > * > pi, gsl::not_null< tnsr::iaa< DataVector, 3, Frame::Inertial > * > phi, gsl::not_null< Scalar< DataVector > * > tilde_d, gsl::not_null< Scalar< DataVector > * > tilde_ye, gsl::not_null< Scalar< DataVector > * > tilde_tau, gsl::not_null< tnsr::i< DataVector, 3, Frame::Inertial > * > tilde_s, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > tilde_b, gsl::not_null< Scalar< DataVector > * > tilde_phi, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > tilde_d_flux, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > tilde_ye_flux, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > tilde_tau_flux, gsl::not_null< tnsr::Ij< DataVector, 3, Frame::Inertial > * > tilde_s_flux, gsl::not_null< tnsr::IJ< DataVector, 3, Frame::Inertial > * > tilde_b_flux, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > tilde_phi_flux, gsl::not_null< Scalar< DataVector > * > gamma1, gsl::not_null< Scalar< DataVector > * > gamma2, gsl::not_null< Scalar< DataVector > * > lapse, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > shift, gsl::not_null< tnsr::II< DataVector, 3, Frame::Inertial > * > inv_spatial_metric, const std::optional< tnsr::I< DataVector, 3, Frame::Inertial > > &face_mesh_velocity, const tnsr::i< DataVector, 3, Frame::Inertial > &normal_covector, const tnsr::I< DataVector, 3, Frame::Inertial > &normal_vector, const Scalar< DataVector > &interior_rest_mass_density, const Scalar< DataVector > &interior_electron_fraction, const Scalar< DataVector > &interior_specific_internal_energy, const tnsr::I< DataVector, 3, Frame::Inertial > &interior_spatial_velocity, const tnsr::I< DataVector, 3, Frame::Inertial > &interior_magnetic_field, const Scalar< DataVector > &interior_lorentz_factor, const Scalar< DataVector > &interior_pressure, const tnsr::I< DataVector, 3, Frame::Inertial > &coords, const Scalar< DataVector > &interior_gamma1, const Scalar< DataVector > &interior_gamma2, double time) const
 
void fd_ghost (gsl::not_null< tnsr::aa< DataVector, 3, Frame::Inertial > * > spacetime_metric, gsl::not_null< tnsr::aa< DataVector, 3, Frame::Inertial > * > pi, gsl::not_null< tnsr::iaa< DataVector, 3, Frame::Inertial > * > phi, 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, 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 tnsr::I< DataVector, 3, Frame::Inertial > &interior_spatial_velocity, const tnsr::I< DataVector, 3, Frame::Inertial > &interior_magnetic_field, double time, const std::unordered_map< std::string, std::unique_ptr<::domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time, const ElementMap< 3, Frame::Grid > &logical_to_grid_map, const domain::CoordinateMapBase< Frame::Grid, Frame::Inertial, 3 > &grid_to_inertial_map, const fd::Reconstructor &reconstructor) const
 
- Public Member Functions inherited from grmhd::GhValenciaDivClean::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 Attributes

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

Detailed Description

Sets Dirichlet boundary conditions using the analytic solution or analytic data on the spacetime variables and hydro free outflow on the GRMHD variables.

Member Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ bc_type

constexpr evolution::BoundaryConditions::Type grmhd::GhValenciaDivClean::BoundaryConditions::DirichletFreeOutflow::bc_type
staticconstexpr
Initial value:
=
evolution::BoundaryConditions::Type::Ghost

◆ help

constexpr Options::String grmhd::GhValenciaDivClean::BoundaryConditions::DirichletFreeOutflow::help
staticconstexpr
Initial value:
{
"DirichletFreeOutflow boundary conditions using either analytic solution "
"or analytic data for GH variables and hydro free outflow for GRMHD"}

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