photon_transition¶
- edrixs.photon_transition.dipole_polvec_rixs(thin, thout, phi=0, alpha=0, beta=0, local_axis=None, pol_type=None)[source]¶
Return polarization vector of incident and scattered photons, for RIXS calculation.
- Parameters:
- thin: float
The incident angle (radian).
- thout: float
The scattered angle (radian).
- phi: float
The azimuthal angle (radian).
- alpha: float
The angle between the polarization vector of the incident photon and the scattering plane (radian)
- beta: float
The angle between the polarization vector of the scattered photon and the scattering plane (radian)
- local_axis: 3*3 float array
The local axis defining the scattering geometry.
\(x\)-axis: local_axis[:,0]
\(y\)-axis: local_axis[:,1]
\(z\)-axis: local_axis[:,2]
It will be an identity matrix if not provided.
- pol_type: tuple of two strings
Specify types of polarization for incident and scattered photons. case[0] for incident photon, case[1] for scattered photon. Options can be
‘linear’: Linear polarization
‘left’ : Left-circular polarization.
‘right’ : Right-circular polarization.
It will set pol_type=(‘linear’, ‘linear’) if not provided.
- Returns:
- ei_in_global: 3-length complex array
The linear polarization vector of the incident photon, with respect to the global \(xyz\) -axis.
- ef_out_global: 3-length complex array
The linear polarization vector of the scattered photon with respect to the global \(xyz\) -axis.
- edrixs.photon_transition.dipole_polvec_xas(thin, phi=0, alpha=0, local_axis=None, pol_type='linear')[source]¶
Return the linear polarization vector of incident photons, for XAS calculation.
- Parameters:
- thin: float
The incident angle (radian).
- phi: float
The azimuthal angle (radian).
- alpha: float
The angle between the polarization vector of the incident photon and the scattering plane (radian)
- local_axis: 3*3 float array
The local axis defining the scattering geometry.
\(x\)-axis: local_axis[:,0]
\(y\)-axis: local_axis[:,1]
\(z\)-axis: local_axis[:,2]
It will be an identity matrix if not provided.
- pol_type: string
‘linear’: Linear polarization.
‘left’ : Left-circular polarization.
‘right’ : Right-circular polarization.
- Returns:
- ei_global: 3-length float array
The linear polarization vector of the incident photon, with resepct to the global \(xyz\) -axis.
- edrixs.photon_transition.get_trans_oper(case)[source]¶
Get the matrix of transition operators between two atomic shell in the complex spherical harmonics basis.
- Parameters:
- case: string
A string indicating the two atomic shells, possible transitions are:
‘ss’: \(s \rightarrow s\)
‘ps’: \(s \rightarrow p\)
‘t2gs’: \(s \rightarrow t2g\)
‘ds’: \(s \rightarrow d\)
‘fs’: \(s \rightarrow f\)
‘sp’: \(p \rightarrow s\)
‘sp12’: \(p_{1/2} \rightarrow s\)
‘sp32’: \(p_{3/2} \rightarrow s\)
‘pp’: \(p \rightarrow p\)
‘pp12’: \(p_{1/2} \rightarrow p\)
‘pp32’: \(p_{3/2} \rightarrow p\)
‘t2gp’: \(p \rightarrow t_{2g}\)
‘t2gp12’: \(p_{1/2} \rightarrow t_{2g}\)
‘t2gp32’: \(p_{3/2} \rightarrow t_{2g}\)
‘dp’: \(p \rightarrow d\)
‘dp12’: \(p_{1/2} \rightarrow d\)
‘dp32’: \(p_{3/2} \rightarrow d\)
‘fp’: \(p \rightarrow f\)
‘fp12’: \(p_{1/2} \rightarrow f\)
‘fp32’: \(p_{3/2} \rightarrow f\)
‘sd’: \(d \rightarrow s\)
‘sd32’: \(d_{3/2} \rightarrow s\)
‘sd52’: \(d_{5/2} \rightarrow s\)
‘pd’: \(d \rightarrow p\)
‘pd32’: \(d_{3/2} \rightarrow p\)
‘pd52’: \(d_{5/2} \rightarrow p\)
‘t2gd’: \(d \rightarrow t_{2g}\)
‘t2gd32’: \(d_{3/2} \rightarrow t_{2g}\)
‘t2gd52’: \(d_{5/2} \rightarrow t_{2g}\)
‘dd’: \(d \rightarrow d\)
‘dd32’: \(d_{3/2} \rightarrow d\)
‘dd52’: \(d_{5/2} \rightarrow d\)
‘fd’: \(d \rightarrow f\)
‘fd32’: \(d_{3/2} \rightarrow f\)
‘fd52’: \(d_{5/2} \rightarrow f\)
‘sf’: \(f \rightarrow s\)
‘sf52’: \(f_{5/2} \rightarrow s\)
‘sf72’: \(f_{7/2} \rightarrow s\)
‘pf’: \(f \rightarrow p\)
‘pf52’: \(f_{5/2} \rightarrow p\)
‘pf72’: \(f_{7/2} \rightarrow p\)
‘t2gf’: \(f \rightarrow t_{2g}\)
‘t2gf52’: \(f_{5/2} \rightarrow t_{2g}\)
‘t2gf72’: \(f_{7/2} \rightarrow t_{2g}\)
‘df’: \(f \rightarrow d\)
‘df52’: \(f_{5/2} \rightarrow d\)
‘df72’: \(f_{7/2} \rightarrow d\)
‘ff’: \(f \rightarrow f\)
‘ff52’: \(f_{5/2} \rightarrow f\)
‘ff72’: \(f_{7/2} \rightarrow f\)
- Returns:
- res: 2d complex array
The calculated transition matrix.
Examples
>>> import edrixs p to d transition >>> trans_dp = get_trans_oper('dp') p to t2g transition >>> trans_t2gp = get_trans_oper('t2gp') p_{3/2} to d transition >>> trans_dp32 = get_trans_oper('dp32')
- edrixs.photon_transition.get_wavevector_rixs(thin, thout, phi, ein, eout, local_axis=None)[source]¶
Return the wave vector of incident and scattered photons, for RIXS calculation.
- Parameters:
- thin: float
The incident angle in radian.
- thout: float
The scattered angle in radian.
- phi: float
The azimuthal angle in radian.
- ein: float
Energy of the incident photon (eV).
- eout: float
Energy of the scattered photon (eV).
- local_axis: :math:`3 times 3` float array
The local \(z\) -axis, the angle thin and thout are defined with respect to this axis.
\(x\)-axis: local_axis[:,0]
\(y\)-axis: local_axis[:,1]
\(z\)-axis: local_axis[:,2]
It will be an identity matrix if not provided.
- Returns:
- k_in_global: 3-length float array
The wave vector of the incident photon, with respect to the global \(xyz\) -axis.
- k_out_global: 3-length float array
The wave vector of the scattered photon, with respect to the global \(xyz\) -axis.
- edrixs.photon_transition.linear_polvec(theta, phi, alpha, local_axis=None, direction='in')[source]¶
Return linear polarization vector.
- Parameters:
- theta: float number
Incident or scattered angle (in radian) with respect to local_axis.
- phi: float number
Azimuthal angle (in radian) with respect to the \(x\) of local_axis.
- alpha: float number
The angle (in radian) between the polarization vector and the scattering plane.
- local_axis: 3*3 float array
The local axis defining the scattering geometry.
\(x\)-axis: local_axis[:,0]
\(y\)-axis: local_axis[:,1]
\(z\)-axis: local_axis[:,2]
It will be an identity matrix if not provided.
- direction: string
The direction of photon wave, options can be
‘in’: incident photon
‘out’: scattered photon
- Returns:
- polvec: list of 3 float number
The polarization vector.
- edrixs.photon_transition.quadrupole_polvec(polvec, wavevec)[source]¶
Given dipolar polarization vector and wave-vector, return quadrupolar polarization vector.
- Parameters:
- polvec: 3 elements of complex array
Dipolar polarization vector of photon, \(\epsilon_{x}, \epsilon_{y}, \epsilon_{z}\), NOTE: they can be complex when the polarization is circular.
- wavevec: 3 elements of float array
Wavevector of photon, \(k_{x}, k_{y}, k_{z}\).
- Returns:
- quad_vec: 5 elements of float array
Quadrupolar polarization vector.
- edrixs.photon_transition.unit_wavevector(theta, phi, local_axis=None, direction='in')[source]¶
Given incident or scattered angle, and azimuthal angle, return unit wavevector with respect to global \(xyz\)-axis.
- Parameters:
- theta: float number
Incident or scattered angle (in radian), with respect to local_aixs.
- phi: float number
Azimuthal angle (in radian), with respect to the \(x\) of local_axis.
- local_axis: 3*3 float array
The local axis defining the scattering geometry.
\(x\)-axis: local_axis[:,0]
\(y\)-axis: local_axis[:,1]
\(z\)-axis: local_axis[:,2]
It will be an identity matrix if not provided.
- direction: string
The direction of photon wave, options can be
‘in’: incident photon
‘out’: scattered photon
- Returns:
- unit_k: list of 3 float numbers
The unit wavevector.
- edrixs.photon_transition.wavevector_with_length(theta, phi, energy, local_axis=None, direction='in')[source]¶
Given incident or scattered angle, azimuthal angle, energy of photon, return wavevector with respect to global \(xyz\)-axis.
- Parameters:
- theta: float number
Incident or scattered angle (in radian), with respect to local_aixs.
- phi: float number
Azimuthal angle (in radian), with respect to the \(x\) of local_axis.
- energy: float number
Energy of photon (in eV).
- local_axis: 3*3 float array
The local axis defining the scattering geometry.
\(x\)-axis: local_axis[:,0]
\(y\)-axis: local_axis[:,1]
\(z\)-axis: local_axis[:,2]
It will be an identity matrix if not provided.
- direction: string
The direction of photon wave, options can be
‘in’: incident photon
‘out’: scattered photon
- Returns:
- k_with_length: list of 3 float numbers
The wavevector with length.