crispy icon indicating copy to clipboard operation
crispy copied to clipboard

Transition operators for quadrupolar transitions are wrong

Open mretegan opened this issue 4 years ago • 0 comments

The function that calculates the transition operators for an arbitrary polarization and k-vector has wrong prefactors. Isotropic spectra are correct, but the XMCD and XMLD are not.

The correct function is:

function CalculateT(e, k)
    -- Calculate the transition operator for arbitrary
    -- polarization and wave vectors.
    if k == nil then
        T = e[1] * Tx_1s_4p + e[2] * Ty_1s_4p + e[3] * Tz_1s_4p
    else
        T = (e[1] * k[2] + e[2] * k[1]) * Txy_1s_3d / math.sqrt(3)
          + (e[1] * k[3] + e[3] * k[1]) * Txz_1s_3d / math.sqrt(3)
          + (e[2] * k[3] + e[3] * k[2]) * Tyz_1s_3d / math.sqrt(3)
          + (e[1] * k[1] - e[2] * k[2]) * Tx2y2_1s_3d / math.sqrt(3)
          + e[3] * k[3] * Tz2_1s_3d
    end
    return Chop(T)
end

mretegan avatar Oct 16 '19 15:10 mretegan