Class QuasiLinearTheory
Defined in File Acceleration.h
Inheritance Relationships
Base Type
public StepLengthModifier(Class StepLengthModifier)
Class Documentation
-
class QuasiLinearTheory : public StepLengthModifier
Scales the steplength according to quasi linear theory.
Following quasi-linear theory [Schlickeiser1989], the mean free path \f$\lambda\f$ of a particle with energy \f$E\f$ and charge \f$Z\f$ in a field with turbulence spectrum \f$\frac{k}{k_{\min}}^{-q}\f$ is \f$ \lambda = {\left(\frac{B}{\delta B}\right)}^2 {\left(R_G\; k_{\min}\right)}^{1-q} R_G \equiv \lambda_0 {\left( \frac{E}{1 EeV}\frac{1}{Z} \right)}^{2-q} \f$ where \f$R_G = \frac{E}{B Z}\f$ is the gyro-radius of the particles. This class implements the rigidity dependent scaling factor used to modify the base step length.
[Schlickeiser1989] R. Schlickeiser, Cosmic-Ray Transport and Acceleration. II. Cosmic Rays in Moving Cold Media with Application to Diffusive Shock Wave Acceleration, The Astrophysical Journal 336 (1989) 264. doi:10.1086/167010.
Public Functions
-
QuasiLinearTheory(double referenecEnergy = 1. * EeV, double turbulenceIndex = 5. / 3, double minimumRigidity = 0)
Constructor
- Parameters:
referenecEnergy – reference energy - break of power spectrum
turbulenceIndex – power law index of the isotropic magnetic turbulence power spectrum; default is set to Kolmogorov turbulence.
minimumRigidity – minimal rigidity
-
virtual double modify(double steplength, Candidate *candidate)
Returns an update of the steplength.
- Parameters:
steplength – Modifies step length, e.g., based on scattering model.
candidate – Additional candidate properties are usually included in the calculation of the updated step length.
-
inline size_t addReference() const
-
inline size_t removeReference() const
-
inline int removeReferenceNoDelete() const
-
inline size_t getReferenceCount() const
Protected Attributes
-
mutable size_t _referenceCount