Skip to content
SHD Sim
Menu

Validation/Cavitating flow

A cavitating throttle

A water throttle that cavitates hard, judged on boundedness, a measured mass balance and an inviscid inception bound — and explicitly not on the vapour fraction or the cavity length.

VerificationVapour fraction bounded to −4.42 × 10⁻⁷ … 1.00000061 — six parts in ten million — on a run that turns 10.73 % of the duct to vapour

What cannot be done here, first

Every other fluids case on this site is measured against something that exists independently of this product — an exact Riemann solution, a closed-form profile, a published measurement. Cavitation has none of those. There is no closed form for a Schnerr–Sauer bubble-number-density mass-transfer model, and any “reference” vapour fraction quoted here would be another code’s answer with a citation stapled to it.

So this page does not claim a vapour fraction, a cavity length or a shedding frequency. It claims the things that are true of the equations whatever the model is, and it labels which of them stand on their own and which one does not.

Three stand on their own. A volume fraction lies in [0, 1]. The mass inside an open duct changes by exactly the mass that crossed its boundary. And Bernoulli fixes an inviscid bound on where vapour can first appear. Those three are the case, and they are what the headline is taken from.

A fourth measurement is on this page and is not one of them: the reduction to single-phase flow is a comparison against another solver in this same product. It is reported in its own section, below the exact statements, and it is described as what it is.

PhysicsIncompressible cavitating volume-of-fluid, Schnerr–Sauer mass transfer, kOmegaSST
GeometryAn 80 × 20 × 10 mm duct pinched to a 4 mm throat at x = 20–30 mm
Contraction5:1 — inlet area 2 × 10⁻⁴ m² to a 4 × 10⁻⁵ m² throat
Mesh16 000 cells
FluidWater 998.2 against vapour 0.02308 kg/m³; pSat 2300 Pa
PressuresInlet p_rgh 301 325 Pa, outlet totalPressure 101 325 Pa
TimeTo 0.024 s cavitating; the reduction pair to 0.0048 s at a fixed 4 × 10⁻⁶ s
ReferenceExact statements about the equations rather than a closed-form flow: a volume fraction lies in [0, 1]; the mass in an open duct changes by exactly the mass crossing its boundary; and Bernoulli fixes an inviscid inception speed of 24.72 m/s at the throat, which a real flow must stay below
AgreementVapour fraction inside [0, 1] to 6.1 × 10⁻⁷ on a run that turns 10.73 % of the duct to vapour

Boundedness — the one that is exact

A vapour fraction is a volume fraction. It lives in [0, 1] and no reference is needed to say so. Two runs are measured against that.

In the cavitating run the phase fraction spans −4.418734 × 10⁻⁷ to 1.000000610161 — an overshoot of six parts in ten million, on a run in which 10.726 % of the duct by volume is vapour. That is the limiter working, and it is a measurement against a bound rather than against a band somebody chose.

In the lifted run — every pressure raised by 10 MPa, which puts the minimum at 4332 × pSat — the statement is sharper still. With p above pSat everywhere the mass-transfer source is identically zero and a phase fraction of 1 is inflowed, so the phase fraction must be exactly 1 in every cell. It is: 1.000000 to 1.000000, and 0.000000 % of the duct in vapour. That check is banded at 10⁻⁹ and the band is not zero only because a per cent of a volume integral is a floating-point quantity.

Mass — a balance, both sides measured

Liquid lost to vapour reappears as vapour. The duct is open, so the exact statement is a balance rather than a constant:

    d/dt INT (alpha rho_l + (1 - alpha) rho_v) dV  =  - INT_S rho_f phi_f

Both sides are measured rather than one being assumed. The contents come from the product’s own volume integral of the phase fraction and the mesh volume; the flux comes from the density-weighted face flux summed over the inlet and the outlet at every timestep and integrated in time. Nothing is assumed about how much of the duct cavitates.

How far the two sides of the balance disagree, as a per cent of throughput
RunVapour in the ductClosure
Staged, cavitating10.726 %3.638 %
The same case above pSat, no phase change0.000 %7.9 × 10⁻⁶ %
From the fixture. Throughput is the mass that crossed the boundary over the run.

The second row is the control that makes the first row mean anything. Without it, a harness that simply measured the flux wrongly would produce the same 3.638 % and there would be no way to tell instrumentation from physics. With the phase change switched off the same instrument closes to eight parts in a hundred million, so the 3.638 % is the solver’s own volume-source bookkeeping. It is reported as measured and is not asserted to be a fault.

Where the vapour starts — a bound, not a value

In a converging passage the liquid accelerates and the pressure falls, and inception is where the pressure first reaches pSat. For an inviscid incompressible flow, continuity and Bernoulli alone fix the throat speed at which that happens, from the inlet pressure and the pSat the product itself wrote: 24.72 m/s.

That is used for exactly two things.

  • The vapour must appear in and downstream of the throat, not upstream of it. It spans x = 0.0205 to 0.0795 m, against a throat mouth at x = 0.02 m.
  • The measured throat speed must be below the inviscid value, because an inviscid passage is a bound and a real one loses head to viscosity and to the cavity itself. Measured 17.31 m/s against 24.72 — a ratio of 0.700.

It establishes where, and nothing else. It cannot say how long the cavity is, how much vapour there is, or how often it sheds, and nothing here pretends it can.

The reduction — measured, and NOT a reference

The 1.289 % was chased rather than assumed. Two controls were run, each changing one thing and nothing else.

What the residual disagreement is not
RunWorst cellr.m.s.
The accepted pair1.2889 %0.0606 %
Every solver tolerance at 10⁻¹², every relTol 01.2889 %0.0608 %
Turbulence off in both cases1.2888 %0.0608 %
From the fixtures. The product stages a pressure tolerance of 1e-06 with relTol 0.01 inside two outer correctors, which is loose enough that linear-solver noise was the first guess.

Tightening every tolerance by six orders of magnitude moved the worst cell by nothing at all, and neither did switching the turbulence models off in both runs. So it is neither linear-solver noise nor the turbulence wrapper. It is local — the worst cells sit at x = 0.0195 m, the last row before the contraction mouth, where the convection limiter is most active — and it does not grow, falling from 1.289 % at t = 0.0016 s to 0.745 % by the end of the run. It was not identified further. The band is set to the measurement and to nothing else.

Two further runs say the comparison can see anything at all. With the pressure lift taken away so the case cavitates, the same metric reads 13.084 % and 1.042 % — ten and seventeen times the accepted values — and 0.144 % of the duct turns to vapour in a run that was supposed to be unable to. And with the incompressible solver left on the convection scheme the application stages for it instead of the one the cavitating solver uses, the difference is 12.172 % and 2.852 %: as large as the difference cavitation itself makes. That is why the schemes are matched, and why a results file that did not match them is rejected outright — at these magnitudes a discretisation difference is easy to mistake for a phase-change one.

What this page does not establish

  • The magnitude of the vapour fraction is not verified. 10.726 % of the duct is what the run produced. Nothing on this page says that is the right amount.
  • The cavity length is not verified. Vapour spans x = 0.0205 to 0.0795 m. The Bernoulli bound fixes where it may begin and says nothing about where it ends.
  • The mass-transfer model itself is not verified. The choice of Schnerr–Sauer over the alternatives, its coefficients, and its nucleation site density are all unjudged, because none of them has a reference behind it here.
  • The 3.638 % mass closure is reported, not explained. The control says it is the solver’s volume-source bookkeeping rather than the instrument. It does not say which term produces it.
  • And the headline reduction is not a reference at all. It is repeated here because it is the thing a reader is most likely to over-trust: two of our solvers agreeing is evidence about the code they do not share, and nothing more.

Repeat this yourself

Every case here is set up from the worked examples in the product, with no hand-editing of solver files — so you can run it, and get the same numbers. The free tier runs real cases up to 250,000 cells of fluids, or 100,000 nodes of solid, with no account needed to download and no time limit.

All validation cases · Written by the team building SHD Sim.