CMIM Curvature and Surface Tension
The cmim_avof module computes curvature for one oriented material pair in
an exactly two-material case. Specify the material names from
materialModels in sigma_ij:
sigma_ij: <matA__matB=0.072 N/m>
momentumInterpolationOptions: <form=new,conservativePressure>
vof_curvature_type: faceDivergence
vof_curvature_smoothing_passes: 2
vof_contact_angle_model: static
vof_contact_angle_deg: 30.0
The first material defines color one and the side through which the contact
angle is measured. Reversing the pair requires the supplementary angle.
The momentum-interpolation form must be new or Denner when surface
tension is active. A nonzero global sigma is rejected because it does
not identify the material pair.
Curvature Selection
|
Method |
|---|---|
|
Existing gradient interpolation and face-normal divergence. |
|
Optional face-based color smoothing, then face-normal divergence. |
|
Optional nodal color smoothing, then curvature from nodal normals. |
|
Taylor-fit derivatives and curvature averaging; requires |
|
Geometric reconstruction and integrated paraboloid fit. Requires
|
|
Prescribed constant |
The two differential methods accept vof_curvature_smoothing_passes, a
nonnegative integer with default 2. Zero passes preserves the input color.
Smoothing affects a separate field used to calculate curvature; it does not
change the transported volume fractions. These are CMIM discretizations,
not options that reproduce every internal choice of a commercial solver.
Their scope is fixed Cartesian-coordinate 2-D and 3-D meshes with symmetry, no-slip or fixed-pressure outlet boundaries. The outlet treatment extrapolates the curvature geometry from adjacent cells; checks cover outlets separated from the interface by pure fluid. Interface passage through an outlet, mixed-phase backflow and wetting at an outlet corner are not qualified. The configuration checks reject other boundary types, moving meshes, axisymmetry and dynamic angles. Curvature accuracy and coupled capillary stability remain under qualification; method selection does not establish mesh convergence.
Wall Contact Angle
vof_contact_angle_model: none is the default. With static, use
vof_contact_angle_deg (default 90 degrees), or a boundary override:
boundary_conditions: <wall=noslip(adiabatic,contactAngle=30 deg)>
Each curvature method enforces the angle within its own reconstruction. The differential methods correct the boundary normal used in the divergence. They also accept an optional correction of the adjacent cell gradients:
vof_curvature_type: nodalDivergence
vof_contact_angle_model: static
vof_curvature_wall_treatment: cellGradient
cellGradient applies the angle before gradients are interpolated to
vertices or faces. It works with nodalDivergence and faceDivergence.
The default boundary retains boundary-only enforcement. Gradient
magnitudes and transported fractions remain unchanged.
For cells touching several walls, the correction uses all prescribed angle conditions together. If they cannot define a compatible unit normal, or if the gradient provides no needed tangential direction, the cell keeps its original gradient while each boundary face retains its angle condition. This numerical fallback does not model contact-line pinning at corners.
The geometric method supports static wall contact only in fixed 2-D geometry.
The existing direct method also provides the dynamic model; selecting
that model does not enable dynamic contact in the other methods.
Verification
The companion stream_cases case 111_differential_curvature compares
the production methods against independent geometric fixtures. Case
103_capillary_startup accepts either new selection through --curvature
and the smoothing count through --smoothing-passes. Use
--wall-treatment cellGradient for the corrected-wall comparison and
--grid to select the same mesh in both runs. Its computed-curvature
profile checks nonlinear convergence and reports curvature error and spurious
velocity separately.