Implemented Grids, Particles and Binary Interactions
Grids
Three types of grids for momentum space and angular space have been implemented
Grid Spacing | Abr. String | Notes |
---|---|---|
Uniform | "u" | Uniform grid spacing between the upper and lower bounds |
Log10 | "l" | Exponentially increasing grid spacing, uniform in Log10 space from upper to lower bounds (bounds should be given as Log10(bound value)) |
Binary | "b" | Fractionally decreasing grid spacing for angular grids. Bin widths half as they move away from u=0 in both directions to u=+-1. |
Particles
Below is a table of the currently implemented particles (i.e. their particle properties are defined within the code)
Particle | Abr. String | Notes |
---|---|---|
Sphere | "Sph" | Mass taken to be the mass of the Proton |
Electron | "Ele" | |
Positron | "Pos" | |
Proton | "Pro" |
Implemented Interactions
These binary interactions have currently been implemented:
- Collision of hard spheres
SphSphSphSph
- Photon pair production from electron positron annihilation
ElePosPhoPho
- Electron positron pair production from photon pair annihilation
PhoPhoElePos
- Electron(or Positron)-Photon scattering (Compton Scattering)
ElePhoElePho
Adding User Defined Interactions
Users may add their own binary interaction cross sections to the /src/commom/DifferentialCrossSectionFunctions.jl
file. Functions should be named in the following format: "sigma_name1name2name3name4"
and "dsigmadt_name1name2name3name4"
where the names are three letter abbreviations of the particles involved (see Particles for examples). The named pairs name1name2
and name3name4
should be in alphabetical order. Both the total cross section and differential cross sections must be provided for a single interaction.
All cross sections are to be defined in terms of the Mandelstram variables $s=(p_1^\mu+p_2^\mu)^2$, $t=(p_1^\mu-p_3^\mu)^2$ and $u=(p_2^\mu-p_3^\mu)^2$. To maintain accuracy of cross sections and avoid DivZero issues when momenta is small compared to the mass of the particles (at Float64
precision), each Mandelstram variable in the cross sections should be split into two components:
s=sSmol+sBig
where $sBig = (m_1+m_2)^2$t=tSmol+tBig
where $tBig = (m_1-m_3)^2$u=uSmol+uBig
where $uBig = (m_2-m_3)^2$
The "Big" part typically cancels with terms in the cross sections, leading to better accuracy. Therefore the function should defined as follows:
function sigma_name1name2name3name4(sSmol::Float64,sBig::Float64,tSmol::Float64,tBig::Float64,uSmol::Float64,uBig::Float64)
...
end
function dsigmadt_name1name2name3name4(sSmol::Float64,sBig::Float64,tSmol::Float64,tBig::Float64,uSmol::Float64,uBig::Float64)
...
end
where all of sSmol
, sBig
, tSmol
, tBig
, uSmol
, and uBig
must be included in the function definition irrespective of if they actually appear in the cross section. It is also important to define a normalisation for the cross sections to avoid emission and absorption terms becoming small compared to the Float64
minimum.
Total cross sections may typically be defined/derived in textbooks and other sources to include division by $1/2$ if output states are identical. This factor should NOT be included here as this factor is included separably in the code.
Differential and Total Cross Section Functions
To ensure greater computational accuracy and prevent underflow of $Float64$ precision values, all cross sections have a normalisation defined in the function documentation.
BoltzmannCollisionIntegral.sigma_SphSphSphSph
— Functionsigma_SphSphSphSph(sSmol,sBig)
returns the total cross section for the binary interaction of hard spheres with normalised masses (wrt electron mass) $m_1,m_2,m_3,m_4=m_\text{Sph}$. Normalised by $πR_{Sph}^2$.
\[σ = \frac{1}{2}\]
Arguments
sSmol::Float64
: s - sBigsBig::Float64
: (m1+m2)^2
BoltzmannCollisionIntegral.dsigmadt_SphSphSphSph
— Functiondsigmadt_SphSphSphSph(sSmol,sBig,tSmol,tBig,uSmol,uBig)
returns the differential cross section for the binary interaction of hard spheres with normalised masses $m_1,m_2,m_3,m_4=m_{\text{Sph}}$. Normalised by $πR_{Sph}^2$.
\[\frac{dσ}{dt} = \frac{1}{s-4m_{\text{Sph}}^2}\]
Arguments
sSmol::Float64
: $s - sBig$sBig::Float64
: $(m_1+m_2)^2=4m_{\text{Sph}}^2$tSmol::Float64
: $t - tBig$tBig::Float64
: $(m_3-m_1)^2=0$uSmol::Float64
: $u - uBig$uBig::Float64
: $(m_2-m_3)^2=0$
BoltzmannCollisionIntegral.sigma_ElePosPhoPho
— Functionsigma_ElePosPhoPho(sSmol,sBig)
returns the total cross section for electron positron annihilation to two photons. Berestetskii 1982 (88.6). Masses and momenta are normalised by the rest mass of the electron $m_{\text{Ele}}$ and the cross section is normalised by $σ_T$.
\[σ_{e^+e^-\rightarrow\gamma\gamma} = \frac{3}{4s^2(s-4)}\left((s^2+4s-8)\log\left(\frac{\sqrt{s}+\sqrt{s-4}}{\sqrt{s}-\sqrt{s-4}}\right)-(s+4)\sqrt{s(s-4)}\right)\]
Arguments
sSmol::Float64
: $s - sBig$sBig::Float64
: $(m_1+m_2)^2 = 4 ∴ s = sSmol + 4$
BoltzmannCollisionIntegral.dsigmadt_ElePosPhoPho
— Functiondsigmadt_ElePosPhoPho(sSmol,sBig,tSmol,tBig,uSmol,uBig)
returns the differential cross section for electron positron annihilation to two photons. Berestetskii 1982 (88.4). Masses and momenta are normalised by the rest mass of the electron $m_{\text{Ele}}$ and the cross section is normalised by $σ_T$.
\[\frac{dσ_{e^+e^-\rightarrow\gamma\gamma}}{dt} = -\frac{3}{s(s-4)}\left(\left(\frac{1}{t-1}+\frac{1}{u-1}\right)^2+\left(\frac{1}{t-1}+\frac{1}{u-1}\right)-\frac{1}{4}\left(\frac{t-1}{u-1}+\frac{u-1}{t-1}\right)\right)\]
Arguments
sSmol::Float64
: $s - sBig$sBig::Float64
: $(m_1+m_2)^2 = 4 ∴ s = sSmol + 4$tSmol::Float64
: $t - tBig$tBig::Float64
: $(m_3-m_1)^2 = 1 ∴ t = tSmol + 1$uSmol::Float64
: $u - uBig$uBig::Float64
: $(m2-m3)^2 = 1 ∴ u = uSmol + 1$
BoltzmannCollisionIntegral.sigma_PhoPhoElePos
— Functionsigma_PhoPhoElePos(sSmol,sBig)
returns the total cross section for photon-photon annihilation to electron-positron pair. Masses and momenta are normalised by the rest mass of the electron $m_{\text{Ele}}$ and the cross section is normalised by $σ_T$.
\[σ_{\gamma\gamma\rightarrow e^+e^-} = \frac{3}{2s^3}\left((s^2+4s-8)\log\left(\frac{\sqrt(s)+\sqrt(s-4)}{\sqrt(s)-\sqrt(s-4)}\right)-(s+4)\sqrt{s(s-4)}\right)\]
Arguments
sSmol::Float64
: $s - sBig$sBig::Float64
: $(m_1+m_2)^2 = 0 ∴ s = sSmol$
BoltzmannCollisionIntegral.dsigmadt_PhoPhoElePos
— Functiondsigmadt_PhoPhoElePos(sSmol,sBig,tSmol,tBig,uSmol,uBig)
returns the differential cross section for photon-photon annihilation to electron-positron pair. (Inverse proceess of electron positron annihilation to two photons). Masses and momenta are normalised by the rest mass of the electron $m_{\text{Ele}}$ and the cross section is normalised by $σ_T$.
\[\frac{dσ_{\gamma\gamma\rightarrow e^+e^-}}{dt} = -\frac{3}{s^2}\left(\left(\frac{1}{t-1}+\frac{1}{u-1}\right)^2+\left(\frac{1}{t-1}+\frac{1}{u-1}\right)-\frac{1}{4}\left(\frac{t-1}{u-1}+\frac{u-1}{t-1}\right)\right)\]
Arguments
sSmol::Float64
: $s - sBig$sBig::Float64
: $(m_1+m_2)^2 = 0 ∴ s = sSmol$tSmol::Float64
: $t - tBig$tBig::Float64
: $(m_3-m_1)^2 = 1 ∴ t = tSmol + 1$uSmol::Float64
: $u - uBig$uBig::Float64
: $(m_2-m_3)^2 = 1 ∴ u = uSmol + 1$
BoltzmannCollisionIntegral.sigma_ElePhoElePho
— Functionsigma_ElePhoElePho(sSmol,sBig)
returns the total cross section for electron-photon (Compton) scattering. Berestetskii 1982 (86.16). Masses and momenta are normalised by the rest mass of the electron $m_{\text{Ele}}$ and the cross section is normalised by $σ_T$.
\[\sigma_{e\gamma\rightarrow e\gamma}(s)=\frac{3}{4(s-1)}\left[(1-\frac{4}{\left(s-1\right)}-\frac{8m_e^4}{\left(s-1\right)^2})\log\left(s\right)+\frac{1}{2}+\frac{8}{s-1}-\frac{1}{2s^2}\right]\]
Arguments
sSmol::Float64
: $s - sBig$sBig::Float64
: $(m_1+m_2)^2 = 1 ∴ s = sSmol + 1$
BoltzmannCollisionIntegral.dsigmadt_ElePhoElePho
— Functiondsigmadt_ElePhoElePho(sSmol,sBig,tSmol,tBig,uSmol,uBig)
returns the differential cross section for electron-photon scattering (Compton) scattering. Berestetskii 1982 (86.6). Masses and momenta are normalised by the rest mass of the electron $m_{\text{Ele}}$ and the cross section is normalised by $σ_T$.
\[\frac{d\sigma_{e\gamma\rightarrow e\gamma}}{dt}(s,t)=\frac{3}{(s-1)^2}\left[\left(\frac{1}{s-1}+\frac{1}{u-1}\right)^2+\left(\frac{1}{s-1}+\frac{1}{u-1}\right)-\frac{1}{4}\left(\frac{s-1}{u-1}+\frac{u-1}{s-1}\right)\right]\]
Arguments
sSmol::Float64
: $s - sBig$sBig::Float64
: $(m_1+m_2)^2 = 1 ∴ s = sSmol + 1$tSmol::Float64
: $t - tBig$tBig::Float64
: $(m_3-m_1)^2 = 0 ∴ t = tSmol$uSmol::Float64
: $u - uBig$uBig::Float64
: $(m_2-m_3)^2 = 1 ∴ u = uSmol + 1$