CMIM Volumetric Cavitation

The cmim_avof module supports zwart, merkle, and schnerrSauer pressure-driven cavitation models. Select one liquid/vapor species pair in phaseChangeModels. Each species must belong to its named material.

phaseChangeModels: <hydrogen=volumetricTransfer(
  liquidMaterial=Liquid,vaporMaterial=Ullage,
  constituents=[map(liquidSpecies=LH2,vaporSpecies=H2)],
  model=zwart(
    saturation=antoine(A=3.54314,B=99.395,C=7.726,
      pressureUnit=bar,temperatureUnit=K,Tmin=17 K,Tmax=32.27 K),
    bubbleRadius=1e-6 m,nucleationVolumeFraction=5e-4,
    vaporizationCoefficient=50,condensationCoefficient=0.01
  )
)>

Define Liquid and Ullage in materialModels with compatible liquid and vapor EOS and enthalpy references. These example coefficients require qualification for the fluid and operating conditions. Load cmim_avof and the required EOS module; no separate cavitation module is needed.

Use flowCompressibility: compressible, timeIntegrator: BDF, and form=totalEnthalpy in energyEquationOptions. The two material names may be identical for conversion between distinct phase-labelled species in one material. That material must use diffusion_model=none. The liquid and vapor molecular masses must agree. One channel and one constituent map are supported. Multispecies materials require laminar flow; CMIM’s SST profile currently permits only one species per material.

Model Parameters

All three models require saturation=antoine(...), vaporizationCoefficient, and condensationCoefficient. Coefficients are dimensionless, nonnegative, and cannot both be zero. No model coefficients are supplied by default.

Additional required parameters

Model

Parameters

Units and limits

zwart

bubbleRadius, nucleationVolumeFraction

Positive radius in metres; fraction strictly between zero and one.

merkle

referenceLength, referenceVelocity, referenceDensity

Positive values in m, m/s, and kg/m³. Unit syntax for density is kg/m/m/m.

schnerrSauer

bubbleNumberDensity, nucleationRadius

Positive bubble count per m³ of liquid, entered as a real number; positive radius in metres.

For Merkle, the pressure/time scale is \(2/(\rho_{ref}L_{ref}U_{ref})\). To reproduce the cavitation_nist coefficient convention, use vaporizationCoefficient=1/tauVap and condensationCoefficient=1/tauCond with the same reference quantities. Enter the evaluated numbers in the control file.

Antoine requires A, B, C, pressureUnit, temperatureUnit, Tmin, and Tmax. Pressure units are Pa, kPa, MPa, or bar; coefficient temperatures use kelvin. The entire cell-temperature range must lie within the saturation correlation and both phase EOS ranges, including where a phase is initially absent.

Behavior and Output

Positive transfer evaporates liquid; negative transfer condenses vapor through the same mapping. Only the mapped species exchange mass. The EOS and total-enthalpy solve determine the temperature change. Accepted phase volumes supply the rate support for each timestep; reduce the timestep if the source would exhaust a constituent. Rates are not clipped.

Zwart and Merkle can create either missing phase. Schnerr–Sauer nucleates vapor in pure liquid, but its rate is zero in pure vapor because no liquid bubble population remains. Nuclei parameters do not add transported mass.

Other constituents, including helium, keep their own EOS and species transport. These models use total mechanical pressure for bubble growth and collapse. They do not model helium dissolution, vapor partial-pressure equilibrium, or heat-limited cryogenic evaporation.

Add cmimPhaseChange to diagnostics to write output/cmimPhaseChange.dat. The ledger reports signed transfer, evaporation, condensation, and conservative material/species sources. Intramaterial transfer has zero material mass source and nonzero mapped species sources. The intrinsic-volume diagnostic uses the two phase EOS densities.

The legacy names donorMaterial, receiverMaterial, donorSpecies, and receiverSpecies remain accepted aliases. Do not specify an alias and its liquid/vapor equivalent together.