SpECTRE  v2024.04.12
VariableFixing::LimitLorentzFactor Class Reference

Limit the maximum Lorentz factor to LorentzFactorCap in regions where the density is below MaxDensityCutoff. More...

#include <LimitLorentzFactor.hpp>

Classes

struct  Enable
 Whether or not the limiting is enabled. More...
 
struct  LorentzFactorCap
 Largest Lorentz factor allowed. If a larger one is found, normalize velocity to have the Lorentz factor be this value. More...
 
struct  MaxDensityCutoff
 Do not apply the Lorentz factor cap above this density. More...
 

Public Types

using options = tmpl::list< MaxDensityCutoff, LorentzFactorCap, Enable >
 
using return_tags = tmpl::list< hydro::Tags::LorentzFactor< DataVector >, hydro::Tags::SpatialVelocity< DataVector, 3 > >
 
using argument_tags = tmpl::list< hydro::Tags::RestMassDensity< DataVector > >
 

Public Member Functions

 LimitLorentzFactor (double max_density_cutoff, double lorentz_factor_cap, bool enable)
 
 LimitLorentzFactor (const LimitLorentzFactor &)=default
 
LimitLorentzFactoroperator= (const LimitLorentzFactor &)=default
 
 LimitLorentzFactor (LimitLorentzFactor &&)=default
 
LimitLorentzFactoroperator= (LimitLorentzFactor &&)=default
 
void pup (PUP::er &p)
 
void operator() (gsl::not_null< Scalar< DataVector > * > lorentz_factor, gsl::not_null< tnsr::I< DataVector, 3, Frame::Inertial > * > spatial_velocity, const Scalar< DataVector > &rest_mass_density) const
 

Static Public Attributes

static constexpr Options::String help
 

Friends

bool operator== (const LimitLorentzFactor &lhs, const LimitLorentzFactor &rhs)
 

Detailed Description

Limit the maximum Lorentz factor to LorentzFactorCap in regions where the density is below MaxDensityCutoff.

The Lorentz factor is set to LorentzFactorCap and the spatial velocity is adjusted according to:

\begin{align} v^i_{(\textrm{new})} = \sqrt{\left(1 - \frac{1}{W_{(\textrm{new})}^2}\right) \left(1 - \frac{1}{W_{(\textrm{old})}^2}\right)^{-1}} v^i_{(\textrm{old})} \end{align}

Member Data Documentation

◆ help

constexpr Options::String VariableFixing::LimitLorentzFactor::help
staticconstexpr
Initial value:
= {
"Limit the maximum Lorentz factor to LorentzFactorCap in regions where "
"the\n"
"density is below MaxDensityCutoff. The Lorentz factor is set to\n"
"LorentzFactorCap and the spatial velocity is adjusted accordingly."}

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