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=0.01, MM=150, T=473, p0=100.0, s0=1e-18, 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