Free Surface¶
Introduction¶
A free surface configuration is a single fluid with a dynamic interface. These configurations are simulations involving a moving free surface with a single Newtonian or non-Newtonian rheology. A free surface is the first type of multi-phase where you model the interface explicitly. Within this configuration, users must specify the fluid density and surface tension and define the constitutive relationship between fluid stress and fluid strain. Fluid mechanics in the fluid phase are modeled explicitly via the Navier-Stokes equations. Although the (time-varying) pressure of the empty region can be specified by the user, fluid dynamics in the empty space are not modeled explicitly. These models use a volume-of-fluid approach to define the interface between the fluid and the empty regions of the domain. The effects on the fluid are informed via the pressure in the headspace and the surface tension. The Navier-Stokes and species transport equations are not solved directly in the empty regions. Although these regions when empty can act as sources for species and pressure, any spatio-temporal variations within the empty regions are not considered. If transport in empty regions need to be considered, apply a two-fluid configuration.

Conceptually speaking, the initial expression of the free surface across the simulation domain is described by tuning the background fluid and the properties of the child geometry attached to the fluid, as well as adding initial condition fill points to the simulation. The background condition represents the empty headspace filling the domain. The child and fill points define where the fluid initially exists across the system. Fluids can also enter the system via inlets and outlets, as well as via particle-fluid conversion.

Common applications include filling or draining simulations, jet sprays, sloshing, vortex formation, coating processes, or anything that involves free surface mechanics. See the Free Surface Dynamics Tutorial.
The context-specific free surface toolbar can be used to add children geometry, as well as move, rotate, and/or scale all the child geometry attached to the fluid parent. In addition to these operations related to child geometry, options are presented for adding child fill points and editing inlet/outlet boundary condition tables.
For convenience, a fluid height box child geometry is added to the system when setting up a free surface configuration. This child geometry can be deleted, modified, or combined with other child geometry to match the required initial conditions.
Property Grid¶
Fluid Properties
¶
The free surface property grid is customized based on your fluid properties. Select the rheology type from the selections below.
- Rheology Type
Newtonian - A fluid with a constant and uniform viscosity.
Power-law - Local fluid viscosity is calculated from the local shear rate using a user-defined flow consistency index, flow behavior index, and yield stress.
Carreau - Local fluid viscosity is calculated from the local shear rate using a user-defined characteristic time, power index, and infinite/zero share rate viscosities.
Cross - Local fluid viscosity is calculated from the local shear rate using a user-defined rate constant, time constant, and infinite/zero share rate viscosities.
Bingham Plastic - A viscoelastic fluid with a user-defined yield-stress and viscosity.
Custom Fluid - A user-defined expression for the local fluid viscosity.
Configuration
¶
These properties define the configuration of the fluid, including the turbulence type and any external acceleration.
- Turbulence Model Type
Fluid turbulence model model to be applied to the simulation.
DNS - These simulations attempt to capture all fluid motion across all eddy scales. DNS simulations will diverge if the eddy size approaches the lattice spacing.
LES - These models compute a local eddy viscosity using the local shear rate to capture the effects of sub-grid turbulence. This eddy viscosity is then superimposed on the molecular viscosity when solving the Navier-Stokes equations. LES models tend to be stable at arbitrary Reynolds numbers. The effects of the filter on fluid flow decrease with increasing resolution.
Smagorinsky Coefficient - Only relevant for LES simulation. This value is set to 0.1, a value motivated by predictions from direct numerical simulation.
ILES - These models use a larger (27-vector) lattice stencil and a cumulant-based momentum integrator to maintain stability at higher Reynolds numbers. No modification to the viscosity. ILES may be superior for systems with very low Reynolds numbers.
- Lattice Type
This setting defines the number of discrete microscopic velocity vectors considered at each lattice point. The D3Q19 and D3Q27 lattice models differ primarily in the number of discrete velocity directions. The D3Q19 model has 19 possible velocity directions, while the D3Q27 model has 27. The additional directions in the D3Q27 lattice allow it to capture more complex flow details, particularly in simulations involving higher Reynolds numbers or intricate boundary interactions.
However, this increased complexity comes at a cost: the D3Q27 model typically requires about 40% more memory and runs about 40% slower than the D3Q19 model, making it more computationally demanding. When choosing between them, consider the trade-off between accuracy and computational efficiency. D3Q27 may be preferred for simulations which require high precision in flow characteristics, whereas D3Q19 may be preferable when the priority is computational efficiency.
D3Q19 - Uses a D3Q19 lattice.
D3Q27 - Uses a D3Q27 lattice.
Note
These options are only available for DNS and LES Turbulence Model Types. The ILES Turbulence Model requires a D3Q27 lattice and is set automatically by the solver at runtime.
- Headspace Pressure
Pa | Expression for free surface headspace pressure. May be a function of time or a Global Variable.
- Enable Surface Tension
Surface tension of the fluid in the gas.
Off - No surface tension is enabled.
On - Launches option for surface tension.
Surface Tension - N/m | Surface tension of the gas/liquid interface.
- Enforce Conservation
This option activates an algorithm to correct any conservation error. Because the scalar advection algorithm is not conservative near the free surface, the scalar field throughout the system is adjusted so that the total amount of scalar matches the initial amount plus or minus any injection or removal.
Off - Algorithm deactivated.
On - Activates algorithm to correct conservation error.
- VOF-Moving Body Interaction
This option will apply additional forcing to prevent the multiphase interface from penetrating a moving body. Due to the nature of the immersed boundary method used for moving bodies, fluid can leak through these geometries over the course of a simulation. This is particularly undesirable when one phase in a multiphase simulation needs to be contained within a moving body. The magnitude of this parameters controls the magnitude of the forcing applied; increase or decrease as needed.
Off - No additional forcing applied to prevent penetration.
On - Additional forcing applied to prevent penetration.
Vof Ibm Normal Force Value - Additional force value applied to prevent penetration.
- Enable Evaporation
This option can be used to model mass loss across the free surface interface. Enabling this feature will cause the fluid volume to decrease (or increase in the case of condensation) according to a volume transfer rate UDF.
Off - No mass transfer across the interface
On - Calculates mass transfer across the interface.
Evaporation UDF - m3 /s | This UDF defines the evaporation rate at the interface. Positive values add fluid and negative values remove fluid. This transfer rate is applied uniformly across the fluid interface. This is a System UDF.
Download Sample File: Evaporation Expression UDF
Initial Conditions
¶
With a free surface fluid, users must specify which portions of the interior zone (if any) are initially filled with fluid. The default background initial condition is assumed to be empty headspace, while the fluid height box is assumed to be fluid.
Any initial fluid configuration can be specified using any combination of parametric geometry and/or user-imported geometry. An arbitrary number of initial condition regions can be added to the model. For example, for each child geometry you add, you can specify the initial condition associated with it. By default, the initial condition is a parametric fluid height box. This cuboid geometry is anchored to the main lattice domain, but the height of the box aligned with the UP Direction can be adjusted.
Users can specify this initial configuration by either (1) setting the initial condition default, (2) adding child geometry to the fluid parent, or (3) adding fill points to the fluid parent. Fill points are described in detail below.
- Initial Condition Default
The default value for the simulation domain. Initially it is set to empty with the liquid region to be defined via the children geometry.
Empty - The domain is filled with gas.
Fluid - The domain is filled with liquid.
- Enable Fill Volume
Sets the initial fluid level using a user-defined initial fill volume. The process mimics filling a vessel from the top with a specific volume of fluid: the filling starts at the bottommost region(s) of the interior zones and extends upward (in the direction opposite gravity). Since the algorithm uses the results of the flood fill, it automatically respects the contours and topology of the vessel surface.
On - Uses enable fill volume.
Fill Volume - m 3 | Target fluid volume realized during the fill process.
Off - Does not use enable fill volume.
Note
This fill volume will be overwritten by any child geometry initial conditions.
If child geometry is added to the free surface parent, the following section will launch:
Child Geometry Initial Conditions
¶
By default, a fluid height box is automatically added as a child geometry to a free surface model. The condition inside this child geometry is set to fluid. The initial conditions default for the simulation domain is set to empty headspace. Additional child geometry can be added to the free surface model parent via the Add Geometry form on the context-specific toolbar. For each child geometry added to the free surface parent, users specify independently whether the child geometry defines fluid or empty headspace.
As a convenience feature, we preload the free surface model with a child geometry fluid height box. This box can be set to fluid or empty, just as all other fluid geometry have the same option. It can be deleted or additional geometry can be superimposed upon it.
- Fluid Height Box Condition
This is the default geometry assigned to a free surface simulation. It represents a certain depth of fluid. Additional child geometry will add additional rows to the combo box options.
Empty - Child geometry does not contain fluid.
Fluid - Child geometry contains fluid.
Additional child geometry conditions are listed accordingly (i.e., “Child Geometry Name” Condition).
The free surface parent may contain multiple children geometry, which can create complex initial conditions. In the example below, the Initial Condition Default is set to Empty and the cuboid child geometry is set to Fluid. For illustration purposes, the density of fluid is set to 1000 kg/m3. The resulting initial condition is a stratified system, with a layer of water below an empty headspace.

In the next example, the Initial Condition Default is set to Empty, and two child geometry are set to Fluid. The resulting initial condition is shown. This configuration represents adding a droplet of water into a vessel that contains a layer of water on the bottom.

In the final example, we add a third child geometry to the system, which is positioned inside the second child geometry and set to Empty. Note that the order of the child geometry informs the initial structure of the fluid. This configuration represents adding a hollow water bubble to a vessel containing a layer of water on the bottom.

If fill points are defined, the following section will launch:
Fill Point Initial Conditions
¶
When static bodies are present, users can specify if fluid fills the static bodies or the interior via the Add Fill Point form.
In the example below, a static body named heatExchanger is added to the simulation domain. A fill point is added to the system and placed inside the child geometry. The result is that the child geometry is filled with empty headspace and the initial condition of the vessel is filled with fluid.

If a static inlet or outlet is defined, the following section will launch:
{Static Inlet Outlet}
¶
This defines which fluid is entering the system through each inlet and outlet. For free surface simulations, this can be either the modeled fluid or empty space. A row is added for each inlet/outlet defined in the model tree. Each boundary condition can vary in time. Some boundary conditions can vary along the boundary condition surface, as discussed on a case-by-case basis below.
Other boundary conditions are defined separately with their respective families, including fluid, scalar field, miscible scalar, immiscible two fluid volume fraction, thermal, and particle boundary conditions.
- Boundary Condition Type
Boundary condition type.
Fluid - Fluid volume fraction is maintained at 1 throughout the simulation.
Empty - Fluid volume fraction is maintained at 0 throughout the simulation. Any fluid that arrives at the outlet will be removed from the simulation.
Zero Gradient - A zero gradient boundary condition is applied to the fluid volume fraction. Appropriate for simulations with covered inlets/outlets.
Specified Value UDF -
Static Inlet Fluid Type UDF - unitless | This UDF defines the fluid type boundary condition. A value of 1 indicates fluid1 and a value of 0 indicates empty headspace. This may be an expression of the form f(x,y,z,t), where x,y,z are positions relative to the:ref:inlet seed point <inlet-outlet-location> and in the Si unit system. The orientation of this local basis set is illustrated in the view panel. This condition is particularly useful when defining partially filled inlets, as illustrated in the example below. This is a System UDF.
Download Sample File:
Free Surface Volume Fraction
Single Pulse - Defines a pulse of fluid from the inlet.
Pulse Time - s | Start time of the pulse.
Pulse Duration - s | Duration of the pulse of fluid.
- Pulse Value
Fluid - Fluid volume fraction is maintained at 1 throughout the simulation.
Empty - Fluid volume fraction is maintained at 0 throughout the simulation.
The Drip boundary condition is used for low-velocity, gravity-driven inlets, typically located in the upper portions of vessels. This prevents fluid leakage that can occur with the Fluid boundary condition.
Fluid Drip - Fluid volume fraction is maintained at 1 throughout the simulation.
If a moving inlet/outlet is defined, the following section will launch:
{Moving Inlet Outlet}
¶
- Moving Inlet Fluid Type UDF
unitless | This UDF defines a fluid type boundary condition with a moving inlet. A value of 1 indicates fluid and a value of 0 indicates empty headspace. The fluid type is applied across the entire moving inlet surface. This is a System UDF.
Download Sample File:
Moving Inlet Fluid Type
If particles are defined, the following section will launch:
Fluid Particle Convert
¶
The fluid-particle conversion (a.k.a. Eularian-Lagrangian conversion) algorithm can be used to convert portions of the continuous fluid into discrete particles and/or convert discrete particles into a region of continuous fluid.
The continuous-to-discrete conversion is useful when describing physics such as jet break-up, bubble break-up, and immiscible fluid dispersion processes, wherein initially continuous fluid structures may decompose into structures that are smaller than the grid resolution of the continuous phase fluid.
The discrete-to-continuous conversion is useful when describing physics such as agglomeration, coalescence, droplet simulations, and so forth, wherein initially discrete fluid particles may aggregate and coalesce into structures that are larger than the grid resolution of the continuous phase fluid.

Download Sample File: Fluid Particle Convert
Option¶
This feature allows you to convert either phase of the free surface model into discrete Langrangian molecules.
- Off
Algorithm disabled.
- Auto
Algorithm active using the default parameters specified below.
Particle Set - Identifies the particle set that will participate in fluid-particle conversion.
Phase - This is the continuous phase that will be converted into the selected particle set.
Fluid - Convert fluid into droplets with the properties defined on the particle set.
Empty - Convert empty headspace into bubbles properties defined on the particle set.
Start Time - This is the time to begin conversion.
Convert Fluid to Particles - This setting controls the direction of conversion. If active, continuous (Eularian) fluid structures will convert into discrete (Lagrangian) particles.
Off - Algorithm disabled.
On - Algorithm active.
Convert Particles to Fluid - This setting controls the direction of conversion. If active, discrete (Lagrangian) particles will convert into continuous (Eularian) fluid structures.
Off - Algorithm disabled.
On - Algorithm active.
- Custom
Custom algorithm enabled.
Particle Set - Identifies the particle set that will participate in fluid-particle conversion.
Phase - This is the continuous phase that will be converted into the selected particle set.
Fluid - Convert fluid into droplets with the properties defined on the particle set.
Empty - Convert empty headspace into bubbles properties defined on the particle set.
Start Time - This is the time to begin conversion.
Convert Fluid to Particles - This setting controls the direction of conversion. If active, continuous (Eularian) fluid structures will convert into discrete (Lagrangian) particles.
Off - Algorithm disabled.
On - Algorithm active.
Convert Particles to Fluid - This setting controls the direction of conversion. If active, discrete (Lagrangian) particles will convert into continuous (Eularian) fluid structures.
Off - Algorithm disabled.
On - Algorithm active.
Particle to Fluid Diameter Cutoff - m | Discrete (Lagrangian) particles with diameters larger than this value will convert into a continuous (Eularian) fluid structure.
Particle Immersion Cutoff - dimensionless | Discrete (Lagrangian) particles will be absorbed into the continuous (Eularian) fluid at this volume fraction cut-off. The default value is set to 0.5.
Fluid to Particle Diameter Cutoff - m | Continuous (Eularian) fluid structures with characteristic diameters smaller than this value will convert into discrete (Lagrangian) particles.
Fluid to Particle Vol Frac Cutoff - dimensionless | This is the fluid volume fraction used to characterize the effective diameter of the fluid structure. The default value is set to 0.5.
Fluid to Particle Diameter Min Diameter Cutoff - m |
If bubbles are present in the system, the following section will launch:
Bubble Coupling
¶
Bubble coupling describes the behavior of the bubbles in the system and how they exit the system.
- Bubble Volume Coupling
The volume of the fluid changes based on volume of gas bubbles in the system. This allows the calculation of gas holdup in the system.
On - Liquid volume changes with gas addition. This is the default value.
Off - Liquid volume does not change with gas addition.
- Bubble Free Surface Interaction
Describes how the bubble interacts with the free surface.
Remove - Bubbles are removed from the system when the volume fraction of the liquid is less than the threshold defined below. This is the default value.
- Bubble Removal Condition
All Bubbles - All bubbles are removed from the system when the volume fraction of the liquid is less than the threshold defined below. This is the default value.
Diameter Dependent - Only bubbles larger than the Bubble Removal Diameter are removed.
Bubble Removal Diameter - m | Defines the smallest bubble diameter that is removed from the system.
Bubble Removal Volume Fraction - Describes at what fluid volume fraction (at the free surface interface) the bubbles are removed. The default is 0.5. This value can range from greater than 0 to 1.
Contain - Bubbles will not leave the system.
Free Surface Toolbar¶
Context-Specific Toolbar Forms |
Description |
---|---|
|
The Add Geometry form adds child geometry by importing from external CAD files, extracting from external CAD assemblies, or defining internally using built-in parametric geometry. |
|
The Move form enables three-dimensional rigid body transform of object through free drag or point-to-point snapping. |
|
The Rotate form enables three-dimensional rotation of geometry. |
|
The Scale form enables volumetric scaling of a geometry about a set anchor point. |
|
The Mate form allows surface-to-surface mating and alignment. |
|
The Edit Boundary Conditions Table edits the fluid types (in tabular form) associated with each boundary condition. |
|
The Add Child Fill Point selects which space will initially be 3D-filled with a liquid. |
|
The Help command launches the M-Star reference documentation in your web browser. |
For a full description of each option, see Context-Specific Toolbar selections.