Reduced-order modeling of particle-triggered 100 µm soft-gel formation in a shallow rectangular flow chamber, and of the gel count at which those gels first form a cluster that spans the channel width.
The headline result: particle concentration alone does not predict clogging — the topology and orientation of the particle-rich regions dominate. A dense streak aligned with the flow leaves open lanes and stays comparatively safe, while a meandering cross-channel streak clogs with roughly an order of magnitude fewer gels.
Important
This is not a Navier–Stokes/CFD calculation, and the numbers are not validated device-performance predictions. They are hypothesis-generating engineering estimates, valid only until calibrated against experiment. See Limitations.
- Quick start
- Geometry and working assumptions
- What is being estimated
- Results
- Model layers
- Limitations
- Recommended next measurements
- Repository layout
- Citing
- License
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Full reference run (under a minute); reproduces the committed results/ directory
python clogging_model.py --static-trials 30 --dynamic-trials 10 --out resultsFor a fast smoke test (~5 s):
python clogging_model.py --static-trials 5 --dynamic-trials 2 --out results_smokeOptions:
| Flag | Default | Meaning |
|---|---|---|
--static-trials |
30 |
Monte-Carlo trials per static exposure scenario |
--dynamic-trials |
10 |
Trials for the flow-edge feedback scenario (slower) |
--seed |
20260820 |
Master seed; all randomness is derived from it |
--out |
results |
Output directory for the CSVs and figure |
Each run writes transport_regime.csv, clogging_threshold_summary.csv, and
clogging_probability.png into --out. Runs are deterministic for a fixed seed
and trial count.
Tests:
pip install pytest
pytest tests -q| Quantity | Value |
|---|---|
| Channel width | 20 mm |
| Channel length | 50 mm |
| Channel height | 100 µm |
| Gel diameter | ≈ 100 µm |
| Suspended particle diameter | ≈ 10 µm |
| Particle density | near water, somewhat aggregated |
| Fluid | 10% gelatin solution at 30 °C |
| Representative viscosity | 20 mPa·s |
| Flow regime | low flow, evaluated at 0.01–0.2 mL/min |
Because the gel diameter is approximately equal to the channel height, each gel is treated as a full-depth obstacle occupying one 100 µm × 100 µm cell.
A clog is defined as the first connected cluster of gel-occupied cells that spans the full 20 mm channel width, blocking a continuous side-to-side path.
The model compares four spatial regimes:
- Uniform random gel formation — the null case.
- Longitudinal particle streaks aligned primarily with the flow.
- Longitudinal streaks + local flow-edge feedback around existing gels.
- Cross-channel/branched streak — a deliberately adverse topology.
From the committed reference run (results/clogging_threshold_summary.csv,
30 static trials, 10 dynamic trials, seed 20260820). N50 is the median number
of gels at first spanning clog; N10/N90 are the 10th and 90th percentiles.
| Scenario | Median f90 |
N10 | N50 | N90 |
|---|---|---|---|---|
| Uniform random | 1.00 | 38,853 | 39,934 | 40,455 |
| Longitudinal particle streaks | 0.41 | 59,044 | 62,168 | 65,264 |
| Longitudinal + flow-edge feedback | 0.41 | 50,900 | 58,250 | 60,625 |
| Cross-channel / branched streak | 0.85 | 3,430 | 4,043 | 4,919 |
The uniform scenario is reported with f90 = 1.00 as a sentinel for "no spatial
concentration"; evaluating the metric literally on a perfectly flat field gives
0.90, since 90% of a uniform signal necessarily occupies 90% of the area.
Two things are worth reading carefully:
- The longitudinal-streak cases are the most spatially concentrated
(
f90 ≈ 0.41, i.e. 90% of particle exposure falls in 41% of the area) yet they clog later than uniform deposition. Concentrating gels into flow-aligned lanes leaves the remaining lanes open. - The cross-channel case is less concentrated (
f90 ≈ 0.85) but clogs about 10× sooner, because its particle-rich path already connects the two side walls. Only a sparse set of gels along that path is needed to complete a spanning cluster.
This is why f — or any single concentration metric — is insufficient, and why
the most valuable experimental input is an image showing the shape of the
streaks rather than just their intensity.
The transport regime over the same flow range
(results/transport_regime.csv):
| Flow (mL/min) | Mean velocity (mm/s) | Residence time (s) | Re | Brownian RMS, 10 µm (µm) | Settling, 10 µm (µm) | Settling, 30 µm aggregate (µm) |
|---|---|---|---|---|---|---|
| 0.01 | 0.083 | 600 | 4.2 × 10⁻⁴ | 1.63 | 8.2 | 73.6 |
| 0.05 | 0.417 | 120 | 2.1 × 10⁻³ | 0.73 | 1.6 | 14.7 |
| 0.10 | 0.833 | 60 | 4.2 × 10⁻³ | 0.52 | 0.8 | 7.4 |
| 0.20 | 1.667 | 30 | 8.3 × 10⁻³ | 0.37 | 0.4 | 3.7 |
Flow is deeply laminar (Re ≲ 10⁻²) and Brownian motion is negligible on the scale of the 100 µm channel height. Settling is the transport mechanism that matters, and it is strongly aggregate-size dependent: at the lowest flow rate a 30 µm aggregate settles ~74 µm during its transit, comparable to the full channel height, while a 10 µm primary particle settles only ~8 µm.
An earlier analytical estimate treated gels as randomly overlapping disks in a continuous 2-D area and gave a much higher characteristic count. This simulation uses a 100 µm lattice with non-overlapping full-depth gel sites and 8-neighbour connectivity, which shifts the percolation threshold substantially. The lattice model is the more appropriate choice when one 100 µm gel effectively occupies one 100 µm × 100 µm region and gels cannot overlap arbitrarily.
Mean speed, Reynolds number, Stokes–Einstein diffusivity, and Stokes settling:
The d² dependence in v_s is why aggregation matters so much: a 30 µm
aggregate settles about 9× faster than a 10 µm primary particle at the same
density mismatch.
The 20 mm × 50 mm chamber is discretized at 100 µm resolution, giving a 200 × 500 grid (100,000 cells). Three exposure fields are generated — uniform, longitudinal streaks (random-walk centrelines with lognormal amplitudes), and a meandering side-to-side streak — each normalized to unit mean.
f90 is defined as the fraction of grid area containing 90% of the integrated
particle exposure, so lower f90 means more spatially concentrated exposure.
One gel occupies one grid cell. Cell order is sampled without replacement in proportion to local exposure, via an exponential-race transform. Cells are added incrementally to a union–find structure with 8-neighbour connectivity and two virtual nodes representing the side walls; the clog threshold is the first count at which those two nodes become connected.
The feedback model is phenomenological, not CFD. Existing gel cells raise the
deposition probability near their edges through a smoothed local influence field
(strength beta), representing particle redirection around full-depth obstacles.
Its purpose is to test whether deposition can become self-reinforcing — not to
compute a velocity field.
This is not a Navier–Stokes/COMSOL/ANSYS CFD calculation. It does not solve:
- pressure increase as the open cross-section shrinks;
- the local velocity field around individual gels;
- gel permeability or deformation;
- particle interception efficiency at gel surfaces;
- the true aggregate size distribution;
- gelatin viscosity as a measured function of shear rate and temperature;
- wall adhesion and bottom-surface interactions;
- gel growth kinetics;
- depletion of particle concentration after capture.
The absolute clog counts are therefore model-dependent. The relative ordering between topologies is the robust output.
The model becomes substantially more predictive with four measured quantities:
- A top-view image of the particle streaks before gel formation — the highest-value input by a wide margin, since the exposure field and its cross-channel connectivity can then be extracted directly instead of being synthesized.
- The aggregate size distribution, not only the primary particle diameter.
- Measured viscosity of the 10% gelatin solution at 30 °C at the relevant shear rate.
- Pressure drop or flow-rate change as gel coverage increases.
See docs/ROADMAP.md for the prioritized development plan.
clogging_model.py Reduced-order simulation (single-file, CLI)
tests/ Test suite (connectivity, sampling, limiting cases)
results/ Committed reference run: 2 CSVs + probability figure
docs/ROADMAP.md Scientific context, modeling contract, roadmap
CONTRIBUTING.md Development setup and ground rules for model changes
requirements.txt Python dependencies
If this model informs published work, please cite it via
CITATION.cff — GitHub renders a ready-made citation under
Cite this repository in the sidebar.
