Current statusThe synthetic examples run and have numerical checks. Experimental validation is still pending. DEZ transport inputs remain placeholders.
What I wanted to compare
A well-mixed model assigns one gas state to the reactor. That makes it simpler, but it leaves out differences along the channel. I wanted to see how much that assumption changes the predicted surface completion, especially near the outlet.
The model also follows the purge. Delivery can stop while precursor is still present in the reactor.
My contribution
I coupled precursor delivery and gas transport to surface-reaction kinetics in Python. The desktop app and command-line interface use the same solver, so changing the interface does not change the calculation.
Saved runs include their inputs and results, with source hashes to identify the code used. I can return to a run and compare it with another recipe rather than reconstructing the setup from memory.
Inside a cycle
A cycle follows an A pulse, purge, B pulse, and second purge. Gas balances account for precursor entering and leaving; the surface model tracks site termination and turnover through two effective reaction events.
The spatial version resolves the channel. In the figure below, the gas clears after the A pulse while the surface retains its A termination until the B exposure.

The fictional A/B case reports surface turnover without assigning a thickness. The separate synthetic ZnO-equivalent example used for these figures also has a conditional model mass trace; it is not an experimental QCM prediction.
Where the models differ
With matched synthetic inputs, the well-mixed model gives 97.8% A completion. At the channel outlet, the spatial model gives 91.1%. The difference is easy to miss if I look only at the reactor average.

Checking the calculation
I check whether the result changes on finer spatial grids or with tighter integration tolerances. Cycle recurrence, precursor accounting, and physical bounds provide additional checks.
A synthetic study covered 63 recipe/scenario pairs. Every calculation passed its numerical checks, yet no recipe met the acceptance criteria in every scenario. Numerical convergence alone was not enough.
Nine earlier high-Peclet cases and one capacity-profile point remain unverified. Experimental agreement is a separate question and has not been established.
What is still unresolved
DEZ transport is the main unfinished input. The separate molecular-property work has not produced an accepted interaction energy or diffusivity for this model. I need those values before I can replace the placeholders and recheck the affected runs.
After that, I plan to compare predictions with published ZnO growth data, keeping fitting and test conditions separate. TMA/H₂O remains the reference chemistry, so agreement for ZnO would not validate TMA kinetics.
For now, this is an offline model for simulation and comparison. Experimental QCM comparison is still future work.
Code and documentation
The repository includes the model and example workflows. The input reference records units and assumptions, including which inputs are synthetic.
Figures and project documentation reviewed September 10, 2026. Figure provenance and display methods.