The momentum matrix elements is available as a low level entity in QuantumATK and can be accesses in the following way:

"

p_matrix = calculateMomentumMatrixElements(

configuration,

kpoint=None,

number_of_states=None):

"

The function calculates the momentum matrix elements for a bulk configuration at a specified k-point (fractional).

The x-component of the momentum matrix elements is defined as

p_nm(k) = <mk | -i * hbar * d/dx | nk>,

where |nk> is a Bloch state in band 'n' at the k-point 'k', and likewise for the y- and z-components.

For Unpolarized, Noncolliner and Spin-orbit calculations, each matrix has a shape (3, *N*, *N*), where *N* is the number of bands included.

For Polarized calculations, the shape is (2, 3, *N*, *N*) with the first index corresponding to Spin.Up and Spin.Down.