Class QuasiLinearTheory

Inheritance Relationships

Base Type

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