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