# Development History — Verification & Validation Evidence This directory contains research scripts from the development of MIME's confined hydrodynamic drag solver. Each subdirectory documents a specific approach that was explored, validated, and either adopted or superseded by a better method. These scripts are **verification evidence**, not dead code. They prove that alternatives were systematically tested and document the reasoning behind architectural decisions. When a reviewer asks "did you try X?", the answer is here. ## Directory Index ### `bem_mfs_exploration/` Method of Fundamental Solutions (MFS) and Liron-Shahar cylindrical Green's function development. The MFS approach (discrete wall sources) was explored first (Phase 0) and found to have a fundamental Fx-Fz source-ratio trade-off at accessible resolutions. This motivated the analytical Liron-Shahar approach (Phase 1), which achieves <4% on all 6 resistance matrix entries for a sphere at κ=0.3. - `experiment_mfs_phase0.py` — Phase 0: discrete MFS sphere-in-cylinder - `experiment_helix_phase1.py` — Phase 1: helix confined drag + convergence study - `experiment_wall_matvec.py` — Phase 2: discrete MFS at 5k-10k pts (confirms non-convergence) - `test_cylinder_greens.py` — Cylindrical Green's function unit tests - `validate_calibrated.py` — Calibrated IB-BEM wall correction (superseded by twin-LBM) ### `defect_correction/` IB-BEM defect correction approach: use LBM with immersed boundary to compute the wall correction, subtract the free-space BEM contribution. Explored extensively with multiple variants (blob kernels, matched regularisation, ratio methods). Found to be direction-dependent due to Peskin delta anisotropy — this was the key finding that motivated the pivot to BEM+Liron-Shahar. - `experiment_bb_defect.py` — Bouzidi BB body defect correction - `experiment_bb_mismatch.py` — Free-space BB-BEM mismatch diagnostic - `experiment_bb_onepass.py` — One-pass BB (no iteration) - `experiment_blob_kernel.py` — Matched blob kernel (Cortez regularised) - `experiment_convergence.py` — Resolution convergence 48³-128³ - `experiment_matched_eps.py` — Matched regularisation experiments - `experiment_ratio.py` — Drag ratio approach (K=u_walled/u_free) - `experiment_single_method.py` — Single method for all R entries - `diagnose_velocity_arrival.py` — Velocity development diagnostics - `validate_ib_bem_mismatch.py` — IB-BEM mismatch quantification - `run_defect_correction_validation.py` — Resolution sweep (48³-128³) ### `schwarz_coupling/` Schwarz decomposition: BEM body + LBM wall with iterative coupling. Multiple variants tested (Bouzidi IBB, Faxén force extraction, open BCs, iterated coupling). Works qualitatively but the IB-LBM wall correction inherits the Peskin delta direction-dependence. - `experiment_schwarz_bb.py` — Schwarz with BB at rest - `experiment_schwarz_bouzidi.py` — Schwarz with Bouzidi IBB - `experiment_schwarz_diag.py` — Diagnostics + Poiseuille test - `experiment_schwarz_faxen.py` — Faxén force extraction variant - `experiment_schwarz_iterated.py` — Two-way iterative coupling - `experiment_schwarz_openbc.py` — Corrected open BCs - `experiment_schwarz_v2.py` — One-pass no-body Schwarz (cleanest) - `run_schwarz_sweep.py` — VER-029 drag multiplier sweep ### `lbm_methods/` LBM-specific method exploration: periodic boundary conditions, twin-LBM ratio approach, fixed-step convergence. - `experiment_periodic_corrected.py` — Periodic ratio with mean-velocity correction - `experiment_periodic_long.py` — Periodic stability at long times - `experiment_periodic_ratio.py` — Periodic box twin-LBM ratio - `validate_fixed_steps.py` — Fixed-step defect correction ### `cloud_infrastructure/` Cloud GPU validation scripts and job configurations from the A40/H100 validation campaigns. - `validate_3configs.py` — 3 wall correction configs comparison - `validate_3kernel.py` — Triton vs JAX backend on A40 - `a40_*.yaml` — A40 cloud job configurations