structures.atoms

Classes

  • Atom

  • AtomMixed

class udkm1Dsim.structures.atoms.Atom(symbol, **kwargs)

Bases: object

The atom class is the smallest structural unit of which one can build larger structures. It holds real physical properties of atoms defined in the attributes section and can return parameters and data necessary for different simulation types.

Parameters

symbol (str) – symbol of the atom.

Keyword Arguments
  • id (str) – id of the atom, may differ from symbol and/or name.

  • ionicity (int) – ionicity of the atom.

  • atomic_form_factor_path (str) – path to atomic form factor coeffs.

  • magnetic_form_factor_path (str) – path to magnetic form factor coeffs.

Attributes
  • symbol (str) – symbol of the element.

  • id (str) – id of the atom, may differ from symbol and/or name.

  • name (str) – name of the element (generic).

  • atomic_number_z (int) – Z atomic number.

  • mass_number_a (float) – A atomic mass number.

  • ionicity (int) – ionicity of the atom.

  • mass (float) – mass of the atom [kg].

  • atomic_form_factor_coeff (ndarray[float]) – atomic form factor. coefficients for energy-dependent atomic form factor.

  • cromer_mann_coeff (ndarray[float]) – cromer-mann coefficients for angular-dependent atomic form factor.

  • magnetic_form_factor_coeff (ndarray[float]) – magnetic form factor coefficients for energy-dependent magnetic form factor.

  • mag_amplitude (float) – magnetization amplitude -1 .. 1.

  • mag_phi (float) – phi angle of magnetization [deg].

  • mag_gamma (float) – gamma angle of magnetization [deg].

References

1

B. L. Henke, E. M. Gullikson & J. C. Davis, X-Ray Interactions: Photoabsorption, Scattering, Transmission, and Reflection at E = 50-30,000 eV, Z = 1-92, Atomic Data and Nuclear Data Tables, 54(2), 181–342, (1993).

2

C.T. Chantler, K. Olsen, R.A. Dragoset, J. Chang, A.R. Kishore, S.A. Kotochigova, & D.S. Zucker, Detailed Tabulation of Atomic Form Factors, Photoelectric Absorption and Scattering Cross Section, and Mass Attenuation Coefficients for Z = 1-92 from E = 1-10 eV to E = 0.4-1.0 MeV, `NIST Standard Reference Database 66. < https://dx.doi.org/10.18434/T4HS32>`_

3(1,2,3)

J. Als-Nielson, & D. McMorrow, Elements of Modern X-Ray Physics. New York: John Wiley & Sons, Ltd. (2001)

4(1,2,3)

D. T. Cromer & J. B. Mann, X-ray scattering factors computed from numerical Hartree–Fock wave functions, Acta Crystallographica Section A, 24(2), 321–324 (1968).

read_atomic_form_factor_coeff(source='chantler', filename='')

The coefficients for the atomic form factor \(f\) in dependence of the photon energy \(E\) is read from a parameter file given by 1 or by 2 as default.

Parameters
  • source (str, optional) – source of atmoic form factors can be either _henke_ or _chantler_. Defaults to _chantler_.

  • filename (str, optional) – full path and filenameto the atomic form factor coefficients.

Returns

f (ndarray[float]) – atomic form factor coefficients.

get_atomic_form_factor(energy)

The complex atomic form factor for the photon energy \(E\) [eV] is calculated by:

\[f(E)=f_1 - i f_2\]

Convention of Ref. 3 (p. 11, footnote) is a negative \(f_2\).

Parameters

energy (ndarray[float]) – photon energy [eV].

Returns

f (ndarray[complex]) – energy-dependent atomic form factors.

read_cromer_mann_coeff()

The Cromer-Mann coefficients (Ref. 4) are read from a parameter file and are returned in the following order:

\[a_1\; a_2\; a_3\; a_4\; b_1\; b_2\; b_3\; b_4\; c\]
Returns

cm (ndarray[float]) – Cromer-Mann coefficients.

get_cm_atomic_form_factor(energy, qz)

The atomic form factor \(f\) is calculated in dependence of the photon energy \(E\) [eV] and the \(z\)-component of the scattering vector \(q_z\)\(^{-1}\)] (Ref. 4). Note that the Cromer-Mann coefficients are fitted for \(q_z\) in [Å \(^{-1}\)]!

See Ref. 3 (p. 235).

\[f(q_z,E) = f_{CM}(q_z) + \delta f_1(E) -i f_2(E)\]

\(f_{CM}(q_z)\) is given in Ref. 4:

\[f_{CM}(q_z) = \sum(a_i \, \exp(-b_i \, (q_z/4\pi)^2))+ c\]

\(\delta f_1(E)\) is the dispersion correction:

\[\delta f_1(E) = f_1(E) - \left(\sum^4_i(a_i) + c\right)\]

Thus:

\[f(q_z,E) = \sum(a_i \, \exp(-b_i \, q_z/2\pi)) + c + f_1(E)-i f_2(E) - \left(\sum(a_i) + c\right)\]
\[f(q_z,E) = \sum(a_i \, \exp(-b_i \, q_z/2\pi)) + f_1(E) -i f_2(E) - \sum(a_i)\]
Parameters
  • energy (ndarray[float]) – photon energy [eV].

  • qz (ndarray[float]) – scattering vector [1/m].

Returns

f (ndarray[complex]) – energy- and qz-dependent Cromer-Mann atomic form factors.

read_magnetic_form_factor_coeff(filename='')

The coefficients for the magnetic form factor \(m\) in dependence of the photon energy \(E\) is read from a parameter file.

Parameters

filename (str) – optional full path and filename to the magnetic form factor coefficients.

Returns

m (ndarray[float]) – magnetic form factor coefficients.

get_magnetic_form_factor(energy)

The complex magnetic form factor is claculated by:

\[m(E) = m_1 - i m_2\]

for the photon energy \(E\) [eV].

Convention of Ref. 3 (p. 11, footnote) is a negative \(m_2\)

Parameters

energy (ndarray[float]) – photon energy [eV].

Returns

m (ndarray[complex]) – energy-dependent magnetic form factors.

class udkm1Dsim.structures.atoms.AtomMixed(symbol, **kwargs)

Bases: udkm1Dsim.structures.atoms.Atom

The AtomMixed class inherits from Atom and enables mixed atoms for certain alloys and stochiometric mixtures. All properties of the included sub-atoms of class Atom are averaged and weighted with their stochiometric ratio.

Parameters

symbol (str) – symbol of the atom.

Keyword Arguments
  • id (str) – id of the atom, may differ from symbol and/or name.

  • name (str) – name of the mixed atom, default is symbol.

Attributes
  • symbol (str) – symbol of the element.

  • id (str) – id of the atom, may differ from symbol and/or name.

  • name (str) – name of the mixed atom, default is symbol.

  • atomic_number_z (int) – Z atomic number.

  • mass_number_a (float) – A atomic mass number.

  • ionicity (int) – ionicity of the atom.

  • mass (float) – mass of the atom [kg].

  • mag_amplitude (float) – magnetization amplitude -1 .. 1.

  • mag_phi (float) – phi angle of magnetization [deg].

  • mag_gamma (float) – gamma angle of magnetization [deg].

  • atoms (list[Atoms]) – list of Atoms.

  • num_atoms (int) – number of atoms.

add_atom(atom, fraction)

Add an Atom instance with its stochiometric fraction and recalculate averaged properties.

Parameters
  • atom (Atom) – atom to add.

  • fraction (float) – fraction of the atom - sum of all fractions must be 1.

get_atomic_form_factor(energy)

Averaged energy dependent atomic form factor.

Parameters

energy (ndarray[float]) – photon energy [eV].

Returns

f (ndarray[complex]) – energy-dependent atomic form factors.

get_cm_atomic_form_factor(energy, qz)

Averaged energy and qz-dependent atomic form factors.

Parameters
  • energy (ndarray[float]) – photon energy [eV].

  • qz (ndarray[float]) – scattering vector [1/m].

Returns

f (ndarray[complex]) – energy- and qz-dependent Cromer-Mann atomic form factors.

get_magnetic_form_factor(energy)

Mixed energy dependent magnetic form factors.

Parameters

energy (ndarray[float]) – photon energy [eV].

Returns

f (ndarray[complex]) – energy-dependent magnetic form factors.