stemtool.sim package

Submodules

stemtool.sim.multislice module

stemtool.sim.multislice.FourierCalib(calibration, sizebeam)[source]
stemtool.sim.multislice.FourierCoords(calibration, sizebeam)[source]
stemtool.sim.multislice.aberration(fourier_coord, wavelength_ang, defocus=0, c3=0, c5=0)[source]
stemtool.sim.multislice.annular_stem(probe, trans_array, prop, pos, coll_angles, pixel_size, voltage_kv)[source]
stemtool.sim.multislice.atomic_potential(atom_no, pixel_size, sampling=16, potential_extent=4, datafile='Kirkland_Potentials.npy')[source]

Calculate the projected potential of a single atom

Parameters:
  • atom_no (int) – Atomic number of the atom whose potential is being calculated.
  • pixel_size (float) – Real space pixel size
  • datafile (string) – Load the location of the npy file of the Kirkland scattering factors
  • sampling (int, float) – Supersampling factor for increased accuracy. Matters more with big pixel sizes. The default value is 16.
  • potential_extent (float) – Distance in angstroms from atom center to which the projected potential is calculated. The default value is 4 angstroms.
Returns:

potential – Projected potential matrix

Return type:

ndarray

Notes

We calculate the projected screened potential of an atom using the Kirkland formula. Keep in mind however that this potential is for independent atoms only! No charge distribution between atoms occure here.

References

Kirkland EJ. Advanced computing in electron microscopy. Springer Science & Business Media; 2010 Aug 12.

Authors:

Debangshu Mukherjee <mukherjeed@ornl.gov>

stemtool.sim.multislice.diff_to_im(cbed_pattern, detector)[source]
stemtool.sim.multislice.find_uc_pos(atom_pos, cell_dim)[source]
stemtool.sim.multislice.fwxm(probe2D, psize, x=0.5)[source]
stemtool.sim.multislice.get_number_cells(miller_dir, length, cell_dim)[source]
stemtool.sim.multislice.make_probe(aperture, voltage, image_size, calibration_pm, defocus=0, c3=0, c5=0)[source]

This calculates an electron probe based on the size and the estimated Fourier co-ordinates with the option of adding spherical aberration in the form of defocus, C3 and C5

stemtool.sim.multislice.miller_inverse(miller)[source]
stemtool.sim.multislice.move_probe_mesh(probe, pos, fmeshy, fmeshx)[source]
stemtool.sim.multislice.pixellated_stem(probe, trans_array, prop, pos)[source]
stemtool.sim.multislice.propagation_func(imsize, thickness_ang, voltage_kV, calib_ang)[source]

Calculates the complex propgation function that results in the phase shift of the exit wave when it travels from one slice to the next in the multislice algorithm

Parameters:
  • imsize (tuple) – Size of the image of the propagator
  • thickness_ang (float) – Distance between the slices in angstroms
  • voltage_kV (float) – Accelerating voltage in kilovolts
  • calib_ang (float) – Calibration or pixel size in angstroms
Returns:

  • prop_shift (ndarray) – This is of the same size given by imsize
  • Authors:
  • Debangshu Mukherjee <mukherjeed@ornl.gov>

stemtool.sim.multislice.slabbing_2D(miller_dir, no_cells, max_hdist)[source]
stemtool.sim.multislice.transmission_func(pot_slice, voltage_kV)[source]

Calculates the complex transmission function from a single potential slice at a given e;ectron accelerating voltage

Parameters:
  • pot_slice (ndarray) – potential slice in Kirkland units
  • voltage_kV (float) – microscope operating voltage in kilo electronVolts
Returns:

  • trans (ndarray) – The transmission function of a single crystal slice
  • Authors:
  • Debangshu Mukherjee <mukherjeed@ornl.gov>

stemtool.sim.multislice.wavelength_ang(voltage_kV)[source]

Calculates the relativistic electron wavelength in angstroms based on the microscope accelerating voltage

Parameters:voltage_kV (float) – microscope operating voltage in kilo electronVolts
Returns:
  • wavelength (float) – relativistic electron wavelength in angstroms
  • Authors:
  • Debangshu Mukherjee <mukherjeed@ornl.gov>