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.
Model |
Parameters |
Units and limits |
|---|---|---|
|
|
Positive radius in metres; fraction strictly between zero and one. |
|
|
Positive values in m, m/s, and kg/m³. Unit syntax for density is |
|
|
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.