e_ioniz_n Function

public function e_ioniz_n(eb, n) result(sigma)

Calculates cross section for a electron-Hydrogen impact ionization from the n state at energy eb

Equation

References

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []


Calls

proc~~e_ioniz_n~~CallsGraph proc~e_ioniz_n e_ioniz_n proc~e_ioniz_3_janev e_ioniz_3_janev proc~e_ioniz_n->proc~e_ioniz_3_janev proc~e_ioniz_2_janev e_ioniz_2_janev proc~e_ioniz_n->proc~e_ioniz_2_janev proc~e_ioniz_1_janev e_ioniz_1_janev proc~e_ioniz_n->proc~e_ioniz_1_janev

Called by

proc~~e_ioniz_n~~CalledByGraph proc~e_ioniz_n e_ioniz_n proc~e_ioniz e_ioniz proc~e_ioniz->proc~e_ioniz_n proc~write_bb_h_e write_bb_H_e proc~write_bb_h_e->proc~e_ioniz program~generate_tables generate_tables program~generate_tables->proc~write_bb_h_e

Contents

Source Code


Source Code

function e_ioniz_n(eb, n) result(sigma)
    !+Calculates cross section for a electron-Hydrogen impact ionization from
    !+the `n` state at energy `eb`
    !+
    !+###Equation
    !+$$ e + H(n) \rightarrow e + H^+ + e$$
    !+
    !+###References
    !+* Eq. 14 and Table 3 in Ref. 2 [[atomic_tables(module)]]
    !+* Eq. 15-16 in Ref. 2 [[atomic_tables(module)]]
    !+
    real(Float64), intent(in) :: eb
        !+ Collision energy [keV]
    integer, intent(in)       :: n
        !+ Initial atomic energy level/state
    real(Float64)             :: sigma
        !+ Cross Section [\(cm^2\)]

    real(Float64) :: rn, xn, Edn2
    real(Float64) :: g0, g1, g2, An, b, Bn

    select case (n)
        case (0)
            stop
        case (1)
            sigma = e_ioniz_1_janev(eb)
        case (2)
            sigma = e_ioniz_2_janev(eb)
        case (3)
            sigma = e_ioniz_3_janev(eb)
        case DEFAULT
            rn = 1.94/n**1.57
            Edn2 = 13.6/n**2.0
            xn = (eb*1.d3)/Edn2

            g0 = 0.9935 + 0.2328/n - 0.1296/n**2.0
            g1 = -(1.0/n)*(0.6282 - 0.5598/n + 0.5299/n**2.0)
            g2 =  (1.0/n**2.0)*(0.3887 - 1.181/n + 1.47/n**2.0)

            An = 32.0*n/(3.0*sqrt(3.0)*PI)*(g0/3.0 + g1/4.0 + g2/5.0)
            b  = (1.0/n)*(4.0 - 18.63/n + 36.24/n**2.0 - 28.09/n**3.0)
            Bn = (2.0/3.0)*(n**2.0)*(5.0 + b)

            if(xn.gt.1) then
                sigma = 1.76*n**2/xn*(1.0 - exp(-rn*xn)) * &
                        (An*log(xn) + (Bn - An*log(2.0*n**2)) * &
                        (1.0 - 1.0/xn)**2)*1.e-16
            else
                sigma = 0.d0
            endif
    end select

end function e_ioniz_n