Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Example: venturi_cavitation

Figure 6.2 — Example: Venturi Cavitation

Crate: cfd-suite (workspace root)
Run: cargo run --example venturi_cavitation
Source: examples/venturi_cavitation.rs

What This Example Demonstrates

Selective cavitation screening for a venturi flow with biologically-realistic cell populations — healthy RBCs, CTCs (circulating tumour cells), and WBCs — showing differential inception thresholds driven by membrane mechanics.

PopulationRadiusStiffnessNucleation weight
Healthy RBC3.3 μm72 kPa1.0
CTC8.0 μm28 kPa1.0
Healthy WBCvariesvaries1.0

Key Code Snippet

use cfd_1d::{evaluate_venturi_screening, VenturiScreeningInput};
use cfd_core::physics::cavitation::{
    SelectiveCavitationInput, SelectiveCavitationPopulation, CellMechanicalState,
};

let selective = SelectiveCavitationInput {
    base_vapor_pressure_pa: 3_170.0,
    density_kg_m3:          1_025.0,
    populations: vec![
        SelectiveCavitationPopulation { identity: CellPopulationIdentity::HealthyRbc, .. },
        SelectiveCavitationPopulation { identity: CellPopulationIdentity::CirculatingTumorCell, .. },
    ],
};
let result = evaluate_venturi_screening(VenturiScreeningInput {
    selective: Some(selective), ..
})?;

Physics Background

Selective cavitation exploits the difference in membrane stiffness and size between healthy and malignant cells. A CTC (stiffer, larger nucleus) has a lower cavitation inception number than a healthy RBC. A well-tuned venturi geometry can therefore selectively lyse CTCs while leaving erythrocytes intact.

Book Chapter

← Turbulence Models and Cavitation