SpECTRE
v2024.04.12
|
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 | |
LimitLorentzFactor & | operator= (const LimitLorentzFactor &)=default |
LimitLorentzFactor (LimitLorentzFactor &&)=default | |
LimitLorentzFactor & | operator= (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) |
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}
|
staticconstexpr |