SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
VariableFixing::FixToAtmosphere< Dim > Class Template Reference

Fix the primitive variables to an atmosphere in low density regions. More...

#include <FixToAtmosphere.hpp>

Classes

struct  DensityCutoff
 Rest mass density at which to impose the atmosphere. Should be greater than or equal to the density of the atmosphere. More...
 
struct  DensityOfAtmosphere
 Rest mass density of the atmosphere. More...
 
struct  KappaLimiting
 If set then we apply a limiting precodure on the temperature near the atmosphere based on essentially limiting the polytropic constant in a Gamma-law equation of state. More...
 
struct  KappaLimitingOptions
 Options for limiting the temperature in the atmosphere by effectively limiting the polytropic constant, with a generalization for finite temperature equations of state. More...
 
struct  VelocityLimiting
 
struct  VelocityLimitingOptions
 Limit the velocity in and near the atmosphere. More...
 

Public Types

using options = implementation defined
 
using return_tags = implementation defined
 
using argument_tags = implementation defined
 

Public Member Functions

 FixToAtmosphere (double density_of_atmosphere, double density_cutoff, std::optional< VelocityLimitingOptions > velocity_limiting, std::optional< KappaLimitingOptions > kappa_limiting, const Options::Context &context={})
 
 FixToAtmosphere (const FixToAtmosphere &)=default
 
FixToAtmosphereoperator= (const FixToAtmosphere &)=default
 
 FixToAtmosphere (FixToAtmosphere &&)=default
 
FixToAtmosphereoperator= (FixToAtmosphere &&)=default
 
void pup (PUP::er &p)
 
template<size_t ThermodynamicDim>
void operator() (gsl::not_null< Scalar< DataVector > * > rest_mass_density, gsl::not_null< Scalar< DataVector > * > specific_internal_energy, gsl::not_null< tnsr::I< DataVector, Dim, Frame::Inertial > * > spatial_velocity, gsl::not_null< Scalar< DataVector > * > lorentz_factor, gsl::not_null< Scalar< DataVector > * > pressure, gsl::not_null< Scalar< DataVector > * > temperature, const Scalar< DataVector > &electron_fraction, const tnsr::ii< DataVector, Dim, Frame::Inertial > &spatial_metric, const EquationsOfState::EquationOfState< true, ThermodynamicDim > &equation_of_state) const
 
double density_of_atmosphere () const
 Other algorithmic decisions may depend on the atmosphere treatment so provide access to the values.
 
double density_cutoff () const
 Other algorithmic decisions may depend on the atmosphere treatment so provide access to the values.
 
const std::optional< VelocityLimitingOptions > & velocity_limiting () const
 Other algorithmic decisions may depend on the atmosphere treatment so provide access to the values.
 
const std::optional< KappaLimitingOptions > & kappa_limiting () const
 Other algorithmic decisions may depend on the atmosphere treatment so provide access to the values.
 

Static Public Attributes

static constexpr Options::String help
 

Friends

template<size_t SpatialDim>
bool operator== (const FixToAtmosphere< SpatialDim > &lhs, const FixToAtmosphere< SpatialDim > &rhs)
 

Detailed Description

template<size_t Dim>
class VariableFixing::FixToAtmosphere< Dim >

Fix the primitive variables to an atmosphere in low density regions.

If the rest mass density is below ρcutoff (DensityCutoff), it is set to ρatm (DensityOfAtmosphere), and the pressure, and specific internal energy (for one-dimensional equations of state) are adjusted to satisfy the equation of state. For a two-dimensional equation of state, the specific internal energy is set to zero.

Member Data Documentation

◆ help

template<size_t Dim>
constexpr Options::String VariableFixing::FixToAtmosphere< Dim >::help
staticconstexpr
Initial value:
= {
"If the rest mass density is below DensityCutoff, it is set\n"
"to DensityOfAtmosphere, and the pressure, and specific internal energy\n"
"(for one-dimensional equations of state) are\n"
"adjusted to satisfy the equation of state. For a two-dimensional\n"
"equation of state, the specific internal energy is set to zero.\n"
"In addition, the spatial velocity is set to zero, and the Lorentz\n"
"factor is set to one.\n"}

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