SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
NewtonianEuler::BoundaryConditions::Reflection< Dim > Class Template Referencefinal

Reflecting boundary conditions for Newtonian hydrodynamics. More...

#include <Reflection.hpp>

Public Types

using options = tmpl::list<>
using dg_interior_evolved_variables_tags = tmpl::list<>
using dg_interior_temporary_tags = tmpl::list<>
using dg_interior_primitive_variables_tags
using dg_gridless_tags = tmpl::list<>

Public Member Functions

 Reflection (Reflection &&)=default
Reflectionoperator= (Reflection &&)=default
 Reflection (const Reflection &)=default
Reflectionoperator= (const Reflection &)=default
 Reflection (CkMigrateMessage *msg)
 WRAPPED_PUPable_decl_base_template (domain::BoundaryConditions::BoundaryCondition, Reflection)
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< Scalar< DataVector > * > mass_density, gsl::not_null< tnsr::I< DataVector, Dim, Frame::Inertial > * > momentum_density, gsl::not_null< Scalar< DataVector > * > energy_density, gsl::not_null< tnsr::I< DataVector, Dim, Frame::Inertial > * > flux_mass_density, gsl::not_null< tnsr::IJ< DataVector, Dim, Frame::Inertial > * > flux_momentum_density, gsl::not_null< tnsr::I< DataVector, Dim, Frame::Inertial > * > flux_energy_density, gsl::not_null< tnsr::I< DataVector, Dim, Frame::Inertial > * > velocity, gsl::not_null< Scalar< DataVector > * > specific_internal_energy, const std::optional< tnsr::I< DataVector, Dim, Frame::Inertial > > &face_mesh_velocity, const tnsr::i< DataVector, Dim, Frame::Inertial > &outward_directed_normal_covector, const Scalar< DataVector > &interior_mass_desity, const tnsr::I< DataVector, Dim, Frame::Inertial > &interior_velocity, const Scalar< DataVector > &interior_specific_internal_energy, const Scalar< DataVector > &interior_pressure) const
Public Member Functions inherited from NewtonianEuler::BoundaryConditions::BoundaryCondition< Dim >
 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)

Static Public Attributes

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

Detailed Description

template<size_t Dim>
class NewtonianEuler::BoundaryConditions::Reflection< Dim >

Reflecting boundary conditions for Newtonian hydrodynamics.

Ghost (exterior) data 'mirrors' interior volume data with respect to the boundary interface. i.e. reverses the normal component of velocity while using same values for other scalar quantities.

In the frame instantaneously moving with the same velocity as face mesh, the reflection condition reads

\begin{align*}\vec{u}_\text{ghost} = \vec{u}_\text{int} - 2 (\vec{u}_\text{int} \cdot \hat{n}) \hat{n} \end{align*}

where \(\vec{u}\) is the fluid velocity in the moving frame, "int" stands for interior, and \(\hat{n}\) is the outward normal vector on the boundary interface.

Substituting \(\vec{u} = \vec{v} - \vec{v}_m\), we get

\begin{align*}v_\text{ghost}^i &= v_\text{int}^i - 2[(v_\text{int}^j-v_m^j)n_j]n^i \end{align*}

where \(v\) is the fluid velocity and \(v_m\) is face mesh velocity.

Member Typedef Documentation

◆ dg_interior_primitive_variables_tags

template<size_t Dim>
using NewtonianEuler::BoundaryConditions::Reflection< Dim >::dg_interior_primitive_variables_tags
Initial value:
tmpl::list<hydro::Tags::RestMassDensity<DataVector>,
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:286

Member Function Documentation

◆ get_clone()

Member Data Documentation

◆ bc_type

template<size_t Dim>
evolution::BoundaryConditions::Type NewtonianEuler::BoundaryConditions::Reflection< Dim >::bc_type
staticconstexpr
Initial value:
=
evolution::BoundaryConditions::Type::Ghost

◆ help

template<size_t Dim>
Options::String NewtonianEuler::BoundaryConditions::Reflection< Dim >::help
staticconstexpr
Initial value:
{
"Reflecting boundary conditions for Newtonian hydrodynamics."}

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