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