Skip to content

Implemented Collisions

Binary Collisions

These binary interactions have currently been implemented:

Emission Interactions

These emissive interactions have currently been implemented:

  • Synchrotron (cyclotron) emission

Adding New Binary Collisions

Users may add their own binary interaction cross sections to the /src/commom/DifferentialCrossSectionFunctions.jl file of DiplodocusCollisions.jl. 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, Grids and Units). 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=(p1μ+p2μ)2, t=(p1μp3μ)2 and u=(p2μp3μ)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=(m1+m2)2

  • t=tSmol+tBig where tBig=(m1m3)2

  • u=uSmol+uBig where uBig=(m2m3)2

The "Big" part typically cancels with terms in the cross sections, leading to better accuracy. Therefore the function should defined as follows:

julia
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.

WARNING

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.

Internal Collision Functions

DiplodocusCollisions.sigma_SphSphSphSph Function
julia
sigma_SphSphSphSph(sSmol,sBig)

returns the total cross section for the binary interaction of hard spheres with normalised masses (wrt electron mass) m1,m2,m3,m4=mSph. Normalised by πRSph2=σT.

σ=12

Arguments

  • sSmol::Float64 : s - sBig

  • sBig::Float64 : (m1+m2)^2

source
DiplodocusCollisions.dsigmadt_SphSphSphSph Function
julia
dsigmadt_SphSphSphSph(sSmol,sBig,tSmol,tBig,uSmol,uBig)

returns the differential cross section for the binary interaction of hard spheres with normalised masses m1,m2,m3,m4=mSph. Normalised by πRSph2=σT.

dσdt=1s4mSph2

Arguments

  • sSmol::Float64 : ssBig

  • sBig::Float64 : (m1+m2)2=4mSph2

  • tSmol::Float64 : ttBig

  • tBig::Float64 : (m3m1)2=0

  • uSmol::Float64 : uuBig

  • uBig::Float64 : (m2m3)2=0

source
DiplodocusCollisions.sigma_ElePosPhoPho Function
julia
sigma_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 mEle and the cross section is normalised by σT.

σe+eγγ=34s2(s4)((s2+4s8)log(s+s4ss4)(s+4)s(s4))

Arguments

  • sSmol::Float64 : ssBig

  • sBig::Float64 : (m1+m2)2=4s=sSmol+4

source
DiplodocusCollisions.dsigmadt_ElePosPhoPho Function
julia
dsigmadt_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 mEle and the cross section is normalised by σT.

dσe+eγγdt=3s(s4)((1t1+1u1)2+(1t1+1u1)14(t1u1+u1t1))

Arguments

  • sSmol::Float64 : ssBig

  • sBig::Float64 : (m1+m2)2=4s=sSmol+4

  • tSmol::Float64 : ttBig

  • tBig::Float64 : (m3m1)2=1t=tSmol+1

  • uSmol::Float64 : uuBig

  • uBig::Float64 : (m2m3)2=1u=uSmol+1

source
DiplodocusCollisions.sigma_PhoPhoElePos Function
julia
sigma_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 mEle and the cross section is normalised by σT.

σγγe+e=32s3((s2+4s8)log((s)+(s4)(s)(s4))(s+4)s(s4))

Arguments

  • sSmol::Float64 : ssBig

  • sBig::Float64 : (m1+m2)2=0s=sSmol

source
DiplodocusCollisions.dsigmadt_PhoPhoElePos Function
julia
dsigmadt_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 mEle and the cross section is normalised by σT.

dσγγe+edt=3s2((1t1+1u1)2+(1t1+1u1)14(t1u1+u1t1))

Arguments

  • sSmol::Float64 : ssBig

  • sBig::Float64 : (m1+m2)2=0s=sSmol

  • tSmol::Float64 : ttBig

  • tBig::Float64 : (m3m1)2=1t=tSmol+1

  • uSmol::Float64 : uuBig

  • uBig::Float64 : (m2m3)2=1u=uSmol+1

source
DiplodocusCollisions.sigma_ElePhoElePho Function
julia
sigma_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 mEle and the cross section is normalised by σT.

σeγeγ(s)=34(s1)[(14(s1)8me4(s1)2)log(s)+12+8s112s2]

Arguments

  • sSmol::Float64 : ssBig

  • sBig::Float64 : (m1+m2)2=1s=sSmol+1

source
DiplodocusCollisions.dsigmadt_ElePhoElePho Function
julia
dsigmadt_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 mEle and the cross section is normalised by σT.

dσeγeγdt(s,t)=3(s1)2[(1s1+1u1)2+(1s1+1u1)14(s1u1+u1s1)]

Arguments

  • sSmol::Float64 : ssBig

  • sBig::Float64 : (m1+m2)2=1s=sSmol+1

  • tSmol::Float64 : ttBig

  • tBig::Float64 : (m3m1)2=0t=tSmol

  • uSmol::Float64 : uuBig

  • uBig::Float64 : (m2m3)2=1u=uSmol+1

source
DiplodocusCollisions.SyncKernel Function
julia
SyncKernel(p3v,p1v,m1,z1,B)

Returns the emission rate for a single photon p3v state emitted by a charged particle in state p1v with charge z1 relative to the fundamental charge and mass m1 relative to the mass of the electron, in a uniform magnetic field B.

source