ALD models

This module contains the implementations of different ALD processes. For now, it is limited to an ideal self-limited kinetics with an optional surface recombination pathway.

class machball.aldmodels.ALDIdeal(beta0, MM, T, p0, s0, betarec=0)

Model for an ideal self-limited process

ALDIdeal implements a self-limited process as an irreversible first order langmuir kinetics. The evolution of the surface coverage with time is given by:

\[\frac{d\Theta}{dt} = s_0 \frac{1}{4}v_{th}\frac{p_0}{k_BT}\beta_0 (1-\Theta)\]
Parameters:
  • beta0 (float) – Bare sticking probability
  • MM (float) – Molecular mass in amu
  • T (float) – Process temperature in K
  • p0 (float) – Precursor pressure in Pa
  • s0 (float) – Area of a surface site in sq. meters
  • betarec (float, optional) – Recombination probability
coverage_flat(t)

Return the surface coverage on a flat surface

Calculate the surface coverage on a flat surface for a dose time of duration t

Parameters:t (float) – Dose time in seconds
Returns:Fractional surface coverage
Return type:float
saturation_ballistic(st, endcov=0.95, verbose=True)

Calculate the evolution of the coverage profile inside a structure

Solve the ballistic transport of precursor inside a structure st, such as a trench or via.

Parameters:
  • st (Structure) – The structure model to be modeled
  • covend (float, optional) – The final surface coverage at the bottom of the structure
Returns:

A pair of numpy arrays, representing the dose times (in seconds), and a 2D array containing the fractional surface coverage for each element of the structure for every time step.

Return type:

Tuple

saturation_flat()

Return the saturation curve on a flat surface

Returns:Tuple of numpy arrays, containing the dose time in seconds and the fractional surface coverage at the surface
Return type:Tuple