Aq_cx_n_janev Function

public function Aq_cx_n_janev(eb, q, n) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the n state colliding with a ion with charge q at energy eb

Equation

References

Arguments

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

Relative collision energy [keV/amu]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []


Calls

proc~~aq_cx_n_janev~~CallsGraph proc~aq_cx_n_janev Aq_cx_n_janev proc~b5_cx_1_janev B5_cx_1_janev proc~aq_cx_n_janev->proc~b5_cx_1_janev proc~c6_cx_1_janev C6_cx_1_janev proc~aq_cx_n_janev->proc~c6_cx_1_janev

Called by

proc~~aq_cx_n_janev~~CalledByGraph proc~aq_cx_n_janev Aq_cx_n_janev proc~aq_cx_n Aq_cx_n proc~aq_cx_n->proc~aq_cx_n_janev proc~aq_cx Aq_cx proc~aq_cx->proc~aq_cx_n proc~write_bb_h_aq write_bb_H_Aq proc~write_bb_h_aq->proc~aq_cx program~generate_tables generate_tables program~generate_tables->proc~write_bb_h_aq

Contents

Source Code


Source Code

function Aq_cx_n_janev(eb, q, n) result(sigma)
    !+ Calculates the total charge exchange cross section for a Neutral Hydrogen atom
    !+in the `n` state colliding with a ion with charge `q` at energy `eb`
    !+
    !+###Equation
    !+$$ A^{q+} + H(n) \rightarrow A^{(q-1)+} + H^+, q \gt 3 $$
    !+
    !+###References
    !+* Page 166 in Ref. 5 [[atomic_tables(module)]]
    !+* Page 168 in Ref. 5 [[atomic_tables(module)]]
    !+* Page 174 in Ref. 5 [[atomic_tables(module)]]
    real(Float64), intent(in) :: eb
        !+ Relative collision energy [keV/amu]
    integer, intent(in)       :: q
        !+ Ion charge
    integer, intent(in)       :: n
        !+ Initial atomic energy level/state
    real(Float64)             :: sigma
        !+ Cross Section [\(cm^2\)]

    real(Float64), parameter :: A = 1.507d5
    real(Float64), parameter :: B = 1.974d-5

    real(Float64) :: etil, nf, qf

    nf = real(n)
    qf = real(q)

    if((n.eq.1).and.(q.eq.5)) then
        sigma = B5_cx_1_janev(eb)
        return
    endif

    if((n.eq.1).and.(q.eq.6)) then
        sigma = C6_cx_1_janev(eb)
        return
    endif

    if(n.le.1) then
        sigma = 0.d0
        return
    endif

    etil = eb*(nf**2.0)/(qf**0.5)

    sigma = qf*nf**4 * 7.04d-16 * A/(etil**3.5 * (1.0 + B*etil**2)) * &
            (1.0 - exp(-2.0*etil**3.5 * (1.0 + B*etil**2)/(3.0*A)))

end function Aq_cx_n_janev