Inertial Particles¶
Introduction¶
Inertial particles have mass and move according to Newton’s second law, meaning the instantaneous acceleration of each individual particle is related to the sum of the external forces acting upon it. Common forces acting on particles include gravity, buoyancy, and fluid drag. Particles may also include a virtual mass force, which accounts for the displacement of any surrounding fluid. Additional forces can be specified via user-defined functions.

Inertial particles can be coupled to fluid scalar fields and participate in chemical reactions, and they can shrink or swell (e.g., dissolve or crystalize) due to interactions with fluid scalar fields. Inertial particle momentum can be either one- or two-way coupled to the fluid. Particle breakup and coalescense can be modeled directly or indirectly using a parcel method. Inertial particles can also be assigned particle variables, which can be used to investigate the system from the perspective of a moving particle (e.g., cell or crystal grain).
Download Sample File: Particle Buildup
For more on this topic, check out these webinars.
Adding Inertial Particles¶
When adding particles to a system, there are two factors to consider: (1) the number of particles entering the system, and (2) the location of the particles entering the system.
The number of particles entering the system is defined by an injection rate and an injection duration. Pay close attention to the appropriate number of particles added to the system as very large particle counts can slow performance. Various injection options are provided for defining these parameters.
The location of the particle injection is typically defined using children geometry, an injection zone, an inlet boundary condition, or a background injection:
A child geometry injection represents the superposition of particles on the fluid field within a sub-volume of the fluid domain. Fluid flow sweeps these particles from the initial positions within the child geometry to other regions in the system. The particle properties, such as initial size distribution, composition, and injection rate, are all inherited from the parent. All children inherit the same properties.
An injection zone allows users to define custom injection regions with local injection rates, injection size distributions, and initial particle compositions that differ from those defined on the particle parent. Particle injection zones allow for differentiated particle injection characteristics within a particle family. Children geometry can be added to the injection zone to control where localize where particles associated with the injection zone are added to the system.
An inlet boundary condition represents the superposition of particles on the fluid field along the boundary condition surface. Boundary condition flow sweeps these particles from the initial positions along the boundary condition to other regions in the system.
A background injection produces a uniform distribution of particles across the full fluid field. This addition, if applied at the start of a process, represents a system with an initially well-dispersed ensemble of particles.
When using a child geometry injection, users have three options for adding geometry to the particle parent: (1) via the Add Geometry form, which opens automatically when a new particle parent is created; (2) by importing geometry through the Assembly Explorer; or (3) by importing geometry from a spreadsheet. See the Geometry page for more details.
For an already-existing parent component, you can add children via the Add Geometry command found on the Context Specific Toolbar. Children geometry can also be extracted from an assembly file.
Inertial particles can also enter the system through Eularian conversion and volumetric generation via a user-defined function. Eularian conversion is used to model fluid-to-fluid conversion processes, as realized during jet breakup, air entrainment, and two-fluid dispersion processes. Volumetric generation is used to model particle nucleation, particle crystallization, and so forth.
Note
Use caution when adding more than a billion particles. System memory limits the total number of particles that can be tracked. On a single workstation, this limit is 50–100 million particles. On a GPU cluster, this limit is about 1 billion particles.
Property Grid¶
General
¶
This option controls the type of particle injections and the density of the particles which will be added to the system. Consider both the number and the location of the particles when adding particles to the system. The injection options are listed below and discussed in greater detail in the injection options overview.
- Injection Option
This setting contains the different selections for introducing particles into a system. The number of particles added to the system is determined by an injection rate and an injection duration.
- Dump
A single impulse addition of particles into the injection geometry. The dump defines the total number of particles added to the system at a single user-defined time.
- Feed
A continuous feed of particles into the injection geometry at a user-defined number flow rate over a user-defined period. The feed rate can vary per user-defined expression.
- Volume Feed
A continuous feed of particles into the injection geometry at a user-defined volume flow rate for a user-defined period.
- Initial Mass Fraction
A single impulse addition of particles into the injection geometry at a user-defined fraction of the mass of the injection geometry.
- Initial Volume Fraction
A single impulse addition of particles into the injection geometry at a user-defined fraction of the volume of the injection geometry.
- Total Mass
A single impulse addition of particles into the injection geometry at a user-defined total mass.
- No Injection
The particle feed rate is not directly controlled by the user. Particles are dynamically generated across the system via free-surface Eularian-Lagrangian conversion, immiscible two fluid Eularian-Lagrangian conversion, or volumetric particle generation.
- Density
kg/m 3 | The density of the particles added via this injection.
Volumetric Generation
¶
This functionality is used to dynamically generate particles across the fluid domain according to user-defined generation criteria. The generation criteria are applied on a voxel-by-voxel basis and can be a function of local fluid properties and/or system-level variables. Volumetric generation is typically used to model nucleation processes.
- Enabled
This enables volumetric generation based on local fluid conditions.
- On
Volumetric generation enabled.
- Interval
s | The time interval at which the generation criteria are tested. Shortening this interval increases the frequency at which the injection criteria are tested.
- Injection Condition UDF
dimensionless and m | This UDF defines the local conditions for particle injection as part of a volumetric particle generation routine. It requires two output variables: a Boolean named
inject
and a floating-point variable namedd
.The
inject
Boolean determines whether particle injection occurs in each voxel. Ifinject
is true,d
specifies the diameter of the particle added to the voxel, with the addition position randomized within the voxel. In this way,inject
controls where injection occurs across the simulation domain, whiled
sets the local diameter of the injected particles.The output Boolean
inject
is dimensionless while the output floating point valued
has units of meters. Both variables are voxel-based local UDFs, calculated on a voxel-by-voxel basis using the local fluid properties.Download Sample File:
Injection Condition
- Off
No volumetric generation.
Initial Size Distribution
¶
Particle sizes are described by the diameter. The specified size distribution of particles can be previewed by clicking on the plot distribution icon in the property grid. See additional size distribution overview.
- Distribution Type
The following are the options for initial particle size distribution.
- Single
The diameter of the particles is set by the user and assigned to all particles. This condition represents the addition of monodispersed particles.
- Uniform
The diameter of each particle is randomly sampled at runtime from a uniform probability density function with a user-set minimum and maximum diameter.
- Normal
The diameter of each particle is randomly sampled at runtime from a normal probability density function with a user-set mean and standard deviation.
- Log Normal
The diameter of each particle is randomly sampled at runtime from a log-normal probability density function with a user-set log mean and log standard deviation.
- Rayleigh
The diameter of each particle is randomly sampled at runtime from a Rayleigh probability density function with a user-set scale parameter.
- Discrete Diameter Distribution
The diameter of each particle added to the system is randomly sampled at runtime from a user-specified particle diameter probability mass function.
- Discrete Superquadric Distribution
A discrete superquadric (SQ) is a mathematical shape used to represent particles that are not perfectly spherical.
- Discrete Volume Distribution
The diameter of each particle added to the system is randomly sampled at runtime from a user-specified particle volume probability mass function.
- Initial Diameter UDF
This UDF defines the initial diameters of the particles entering the system.
Forces and Fluid Coupling
¶
See additional forces and fluid coupling overview.
- Gravity Force
This force represents the net effect of gravity and buoyancy.
- Virtual Mass
The virtual mass refers to the virtual increase in the effective mass of a particle moving through fluid due to the inertia of the surrounding fluid.
- Lift Saffman
The Saffman lift force arises when a particle experiences a cross-flow induced by the rotation of the particle.
- Drag Force Model
The drag force is the resistance encountered by particles as they move through the fluid medium.
- Two-way Coupling
Two-way coupling describes the mutual interaction between fluid flow and particle motion.
- Fluid-Particle Force UDF
This UDF defines custom vectors for fluid and external forces acting on particles.
If a static body is present, the following section will launch:
Static Body Interaction
¶
- Static Body Option
This parameter specifies how each particle set interacts with each solid body family.
- Bounce
The particles bounce off the solid body family.
- Stick
The particles stick to the solid body family.
- Pass Thru
The particles pass through the solid body family.
Breakup/Coalesce¶
Particle breakup and coalescence can be modeled using either discrete or parcel-based representations.
In the discrete representation, particle breakup occurs on a particle-by-particle basis and generates a new particle that is explicitly tracked in the simulation; this new particle inherits the properties of the mother particle from which it was broken off. Particle coalescence is regulated at the level of individual particle pairs by comparing the approach Reynold’s number to a critical coalescence parameter. Coalescence events reduce the number of explicitly tracked bubbles.
In the parcel-based representation, both particle breakup and coalescence are regulated implicitly by adjusting the number scale associated with each parcel. Changes in diameter are informed by the local fluid properties which, when combined with surface tension and density, define an equilibrium particle diameter. With this approach, the number of explicitly tracked particles does not change due to breakup or coalescence events. See additional breakup/coalesce overview.
- Breakup Enabled
Particle breakup typically occurs on the level of individual particles. It is informed by the physical properties of the particle and the kinematic properties of the fluid.
- Coalesce Enabled
Coalescence typically occurs at the level of particle pairs. It is informed by the kinematic properties of the two particles.
See also
For more on this subject, check out the following publications:
Interfacial Mass Transfer
¶
Interfacial mass transfer is calculated on a particle-by-particle basis using the local and instantaneous fluid and particle properties. This can be represented as either a convective transfer coefficient, \(k_L\), or a particle dissolution rate. In principle, the convective transfer coefficient and the dissolution rate describe very similar physical transport processes. In practice, a convective transfer coefficient is typically applied to gas bubbles and a dissolution rate is applied to solid particles.

Mechanically speaking, the convective transfer coefficient describes the rate at which mass is transferred (via convection) through the fluid boundary layer surrounding the particle. This rate is often written in terms of the local fluid energy dissipation rate, fluid viscosity, and fluid diffusion coefficient; although, in many cases a constant transfer coefficient may be suitable.
Theoretically speaking, most convective mass transfer models are developed under the assumption that the fluid immediately surrounding the particle remains fully saturated throughout the transport process. The rate at which mass is transferred into the system is therefore a function of the rate at which the saturated fluid adjacent to the bubble surface can be engulfed into the fluid bulk. These transfer functions can be derived from semi-empirical boundary layer theory.
Conversely, particle dissolution rates are developed under the assumption that the dissolved species concentration is low relative to the solid phase concentration. As such, the transfer rate is often related to the system temperature and the physiochemical properties of the solid rather than to the convective properties of the fluid surrounding the solid. In many cases, the dissolution rate is set to a constant value determined empirically.
- Framework
This parameter determines whether mass transfer is modeled using the convective transfer coefficient or the particle dissolution rate. These values are calculated on a particle-by-particle basis using the local and instantaneous particle and/or fluid properties.
- None
No mass transfer coefficient or dissolution rate is calculated.
- Convection
This calculates a convective mass transfer coefficient for each particle. Input to this expression includes the local and instantaneous properties of the particle and surrounding fluid.
- kL UDF
m/s | This UDF defines the convective mass transfer coefficient in the fluid surrounding a particle. One output must be defined within the UDF: a floating-point variable named
kl_{Particles}
, where {Particles} is the dynamic name of the particle set. This output value is used when predicting convective mass transfer processes, including mass exchange with coupled scalar fields. This is a particle-based local UDF, calculated on a particle-by-particle basis using the local particle/fluid properties.Download Sample File:
kL
- Dissolution
This calculates a dissolution rate for each particle. Possible input to this expression includes the local and instantaneous properties of the particle and surrounding fluid.
- Dissolution Rate UDF
\(\frac{kg}{m^2 \cdot s}\) | This UDF defines the particle dissolution rate, defined here as the rate at which mass is exchanged between the solid phase (particles) and the dissolved phase/solute (coupled scalar field). One output must be defined as within the UDF: a floating point variable named
dr_{Particle Set Name}
, where {Particle Set Name} is the dynamic name of the particle set parent.This output value defines the particle-specific dissolution rate. Positive values imply dissolution (mass leaving the particle). Negative values imply precipitation or crystallization. The units on the output variable are kg/m 2 /s. This is a particle-based local UDF, calculated on a particle-by-particle basis using the local particle/fluid properties.
Download Sample File:
Dissolution Rate
If Interfacial Mass Transfer is on and a scalar is added, the following section will launch:
Scalar Coupling
¶
- Coupling Method
This option determines if particle-fluid scalar coupling is active in the simulation and whether it is modeled using built-in or user-defined functions. See additional scalar coupling overview.
- Disabled
No particle-fluid scalar coupling is considered. Although a convective transfer coefficient or dissolution rate may be defined, no species will be transferred between the particles and fluid.
- Automatic
Predefined convection and/or dissolution models determine scalar transport rate, calculated on a particle-by-particle basis. The units on these properties depend on system setup and must be dimensionally homogeneous. Transport by convection is calculated from the user-specified convective transfer coefficient, the particle surface area, and the differences between the local concentration and the saturation limit. Transport by dissolution is calculated using the dissolution rate and the particle surface area. The same transport model is applied to all species participating in interfacial mass transfer.
- Custom
User-defined transport models determine scalar transport rate, calculated on a particle-by-particle basis. These models could include the user-defined convective transfer coefficient, the user-defined dissolution rate, particle custom variables, or arbitrary functions of the local fluid/properties. A unique transport model can be specified for each species. The user must confirm that the transport parameters are dimensionally homogeneous.
If a thermal field is added, the following section will launch:
Thermal
¶
- Track Temperature
This option determines if particle temperature is tracked during the simulation. Temperature changes can be caused by either (i) endothermic/exothermic intra-particle reactions, (ii) convective heat exchange with the surrounding fluid, and (iii) particle-particle conduction between DEM particles. This function can be turned off or on.
- Off
Particle temperature is not tracked during the simulation.
- On
Particle temperature is tracked during the simulation.
- Initial Temperature
K | This parameter defines the initial temperature of the particles in the set.
- Heat Capacity
J/m 3 K | This parameter defines the heat capacity of the particles. The heat capacity informs how changes in the thermal energy affect changes in temperature.
- Fluid Particle Heat Transfer Coupling Method
This option specifies whether energy will exchange with the surrounding fluid via interfacial heat transfer.
- None
No particle-fluid heat transfer is considered. The particle temperature will change only due to either endothermic/exothermic intra-particle reactions or particle-particle conduction between DEM particles.
- Convection
Predefined convection model determines heat transport rate, calculated on a particle-by-particle basis. The functional form of the heat transfer model is discussed in the particle heat transfer overview.
- UDF
The user defines a custom fluid-particle heat transfer rate.
- Heat Transfer UDF
W | This UDF defines the heat transfer between particles and the surrounding fluid. One output must be defined within the UDF: a floating-point variable named
Qdot
. This output variable defines heat flow between the particle and the surrounding fluid. Positive values imply heat transfer into the particle (from the surrounding fluid). Negative values imply heat transfer away from the particle (into the surrounding fluid). The functional form of the heat transfer model is discussed in the particle heat transfer overview. This is a particle-based local UDF, calculated on a particle-by-particle basis using the local particle/fluid properties.
Download Sample File:
Heat Flux
Advanced
¶
- Injection Downsampling
This parameter reduces the number of particles added to the system relative to the user-specified dump value, feed rate, initial volume fraction, initial mass fraction, or initial mass. Specifying a downsampling value transforms the particles into sampling parcels. These parcels are characterized by a parcel number scale and parcel diameter. The number scale quantifies the number of equal-sized particles contained within each parcel. The parcel diameter is equal to the particle diameter, as defined by the size distribution. To ensure that the mass represented by the parcels equals the user-specified dump or feed rate, all parcels entering the system are assigned an initial number scale equal to this injection downsampling parameter. The amplifying effects of the number scale on all particle-to-fluid forces, local particle volume fraction calculations, and interfacial mass transfer rates are handled internally and automatically.
With injection downsampling, not all particles are represented explicitly, so systems with injection downsampling are typically paired with the parcel-based breakup and coalescence representation. Thus the model underpredicts pair-wise collisions and explicit coalescence events.
The purpose of the downsampling is to reduce the memory requirements of a simulation. Increasing the number scale (the number of equal-sized particles contained within each parcel) will have the effect of reducing the number of explicitly tracked parcels in the system. The downsampling number should be kept as small as possible, which can minimize the effects of improper course graining and undersampling. In practice, we recommend keeping the number of parcels within the system order-of-magnitude consistent with the lattice count.
This parcel-based representation is also applied to the parcel-based breakup and coalescence representation and discussed in our webinars and reference literature.
- Initial Velocity Type
By default, particles enter the system with zero velocity. Users may override this setting by assigning the particles a non-zero velocity. This velocity can be specified as either a constant value or a user-defined function of local fluid properties, particle properties, system variables, etc.
- Constant
Under this option, all particles in the family entering the system will have the initial velocity defined below. By default, this value is set to a zero vector, implying no initial velocity.
- Initial Velocity
m/s | This is the initial translational velocity vector of the particles entering the system. The three fields define the x, y, and z components of the velocity vector. These vectors are aligned with the basis x, y, and z unit vectors within the system.
- Custom UDF
Under this option, all particles in the family entering the system will have an initial velocity computed at runtime from the UDF.
- Initial Velocity UDF
m/s | The UDF defines the initial velocity of particles as they are added to the system. Three outputs must be defined within the UDF: floating point variables
vx_p
,vy_p
, andvz_p
. These output variables define the components of the initial velocity vector of the particles entering the system. This is a particle-based local UDF, calculated on a particle-by-particle basis using the local particle/fluid properties.Download Sample File:
Initial Velocity
Note
For injections at inlet boundary conditions, the initial particle velocity may be set to the inlet velocity to model a set of pre-entrained particles.
- Compute Nearest Neighbor Distribution
Computes the average nearest neighbor separation distance and nearest neighbor separation distance probability distribution function. See additional discussion in Theory: Nearest Neighbor Distribution.
- On
Particle distribution data is computed.
- Off
Particle distribution data is not computed.
- Enable Movement Control
With this option, users can define a UDF that conditionally controls whether particles are moving or fixed. Particle motion can be reactivated as part of the UDF.
- On
Movement control of particles is enabled. Individual particles may become fixed in space per some user-defined condition.
- Movement Control UDF
none | This UDF defines if individual particles move or remain fixed in space. One of two possible boolean outputs can be defined as part of the UDF:
makeFixed
andmakeMoving
. The values assigned to each value can change over time. If the booleanmakeMoving
is set to true, the particle will evolve through space. Only one boolean should be true at each time step. This is a local UDF, calculated on a particle-by-particle basis using the local particle/fluid properties.Download Sample File:
Movement Contol
- Off
No controlled movement of particles. Particles always have the ability to move through space.
- Compute Pressure Gradient Force
When this option is active, the pressure gradient force on the particle is calculated. This force acts from regions of higher pressure toward regions of lower pressure, influencing the motion of particles immersed in the fluid.
For a small particle within a fluid, the pressure gradient force can be expressed as:
\[F_p = - V_p \nabla P\]where \(V_p\) is the volume of the particle and \(\nabla P\) is the pressure gradient and the location of the particle.
- Off
Does not compute pressure gradient force.
- On
Computes pressure gradient force.
- Enable Removal UDF
Enable removal user-defined function.
- Off
Removal UDF not enabled.
- On
Removal UDF enabled.
- Removal UDF
no units | This UDF removes particles based on particle properties or local fluid conditions. One output must defined within the UDF: a Boolean variable named
remove
. This output value determines if a particle is to be removed from the simulation. If set to true, the particle is removed. This is a local UDF, calculated on a particle-by-particle basis using the local particle/fluid properties.
Download Sample File:
Removal
Inertial Particles 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 Add Particle Injection adds an injection to a particle parent. |
|
The Edit Boundary Conditions Table edits the fluid types (in tabular form) associated with each boundary condition. |
|
The Diagnostics form reports the position, orientation, and moments of inertia associated with a static body. |
|
The Help command launches the M-Star reference documentation in your web browser. |
For a full description of each selection on the Context-Specific Toolbar, see Toolbar Selections.
Additional Resources¶
Webinars¶
For more on this subject, check out the following: