Skip to content

Add microfluidic device and biology tutorials - #6

Open
marpaia wants to merge 1 commit into
marpaia/microfluidics-device-assetsfrom
marpaia/microfluidics-tutorials
Open

Add microfluidic device and biology tutorials#6
marpaia wants to merge 1 commit into
marpaia/microfluidics-device-assetsfrom
marpaia/microfluidics-tutorials

Conversation

@marpaia

@marpaia marpaia commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Purpose

This final layer supplies runnable reference compositions for the new wall, flow, device, coupling, and washout APIs. It introduces no new core discretization; its methodological contribution is to make cross-subsystem assembly and scientific assumptions inspectable.

Key methodological contributions

  • Consistent device assembly: the trap examples use one device definition to create mechanics walls, a conservative solid mask, fixed media reservoirs, gap-height mobility, and a solved flow field. The pillar example applies the same consistency rule to curved geometry: the smooth mechanics wall encloses the staircase obstacle mask, leaving fluid sites available at every mechanically reachable sampling position.
  • Closed phenomenological feedback loop: at a fixed cadence, current cell volumes are rasterized into Brinkman resistance, depth-averaged flow is re-solved, and the live velocity field is replaced. That field then transports signals and kinematically drifts released cells; cells beyond the outlet are removed while lineage is retained. This is a bidirectional model loop, not force-balanced fluid-structure interaction.
  • Biological-device compositions: microfluidic_trap.py couples nutrient delivery, consumption, growth, flow, and washout; danino_clock.py places the SimBOL quorum clock and a state-dependent AHL loss field in that device; biopixel_trap.py models one Prindle trapping region; and pillar_channel.py combines cylinder walls, conservative voxelization, adhered founders, released daughters, colony feedback, and washout.
  • Evidence-separated Prindle model: the publication supplies the 100 x 85 x 1.65 micrometer trapping region and nominal 500-biopixel context; the supplied CAD supplies an exact 496-outline, 16 x 31 layout and source-specific scale evidence; the adjacent channel, numerical wall thickness, flow, transport, drag, and refresh cadence are labeled model choices. The previous guessed 5-micrometer inset and 100 x 95 cavity are removed. The example validates the CAD layout but does not derive cavity geometry from it.
  • Solver-selection guidance: the tutorials distinguish the depth-averaged closure used for shallow-device authoring and frequent feedback from the resolved MAC solver used for wall shear and cross-channel profiles when the mesh resolves the gap.

Scientific scope

  • These are qualitative reference models, not reproductions or validations of the Prindle or Danino experiments.
  • The biopixel example simulates one trap under one chosen local inlet condition. It does not assert uniform flow across the array, reproduce the array manifold, or include inter-trap coupling.
  • The documented CAD scale is an inference corroborated by the publication, not a generic DXF unit convention. The drawing is not asserted to be the publication's exact fabrication revision, and unplaced block geometry is not assigned a fabrication role without a process map.
  • The configured channel-scale Péclet number characterizes the model only; no experimental flow or diffusivity measurements are fitted, so no experimental Péclet-number fidelity is claimed.
  • Colony blockage uses a center-voxel, Kozeny-Carman-style closure with chosen drag and refresh parameters; cell response remains PR Add experimental kinematic flow coupling #4's kinematic rule.
  • Quantitative biological or device claims require measured boundary conditions and material properties, grid and timestep convergence, and parameter sensitivity studies.

Stack

PR 5 of 5.

Base: #5 (marpaia/microfluidics-device-assets)

This is the top of the five-PR stack.

Validation

  • Focused mask, device, tutorial, and long-run signal tests: 51 passed
  • CPU-only Python suite: 254 passed, 63 skipped
  • Metal application suite with the pinned original CellModeller source: 289 passed, 29 skipped; CPU/Metal legacy example matrix passed
  • Metal native conformance: 21 of 21 passed
  • CUDA 12.8 compile check: all kernels and conformance executables compiled and linked; no NVIDIA runtime was exercised
  • Viewer: 13 tests passed; formatting, TypeScript, and production build passed
  • Full pre-commit suite, including Ruff, clang-format, and Pyright: passed

@marpaia
marpaia force-pushed the marpaia/microfluidics-tutorials branch from 18ec62b to 8d78d1f Compare August 20, 2026 17:08
@marpaia
marpaia force-pushed the marpaia/microfluidics-tutorials branch from 8d78d1f to 27a3c97 Compare August 20, 2026 17:10
@marpaia
marpaia force-pushed the marpaia/microfluidics-tutorials branch 2 times, most recently from 11fd9a5 to 8a21217 Compare August 20, 2026 21:14
@marpaia
marpaia force-pushed the marpaia/microfluidics-tutorials branch from 8a21217 to d130f70 Compare August 20, 2026 21:38
@marpaia
marpaia force-pushed the marpaia/microfluidics-tutorials branch from d130f70 to 84c95bb Compare August 20, 2026 22:05
@marpaia
marpaia marked this pull request as ready for review August 20, 2026 23:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant