|
SpECTRE
v2025.08.19
|
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 |