DPM Drag Models -- All Drag Laws, Validity Ranges, and UDF Implementation
#+CATEGORY: cfd
#+TAGS: DPM drag-model particle-Reynolds Schiller-Naumann Haider-Levenspel UDF
#+MATURITY: growing
DPM Drag Models :: Complete Reference for All Fluent Drag Laws
The drag force is the single most important term in the particle momentum equation. For most DPM applications, drag dominates the particle trajectory by one to three orders of magnitude over all other forces combined. Getting the drag law right is the first and highest-impact modelling decision. This page documents every drag law Fluent ships, the mathematics behind each, the validity regime, and the selection logic.
Particle Drag -- The Fundamental Relationship
The drag force on a single spherical particle is:
where:
- $C_D$ = drag coefficient (dimensionless)
- $\rho$ = fluid density [kg/m^3]
- $A_p = \pi d_p^2 / 4$ = particle projected area [m^2]
- $\mathbf{u}$ = fluid velocity at particle location [m/s]
- $\mathbf{u}_p$ = particle velocity [m/s]
Fluent rewrites this in per-unit-mass form for integration:
The entire modelling problem reduces to: what is $C_D$ as a function of $Re_p$? The answer depends on particle shape, Reynolds regime, and surface roughness.
Particle Reynolds Number
The particle Reynolds number is:
This is the key dimensionless group. All drag correlations are parameterized by $Re_p$.
Typical range for shisha PM2.5:
- $d_p = 1$ \mu m, $|\mathbf{u} - \mathbf{u}_p| \approx 0.01$ m/s (slip velocity is small for fine particles)
- $\rho_{\text{air}} = 1.2$ kg/m^3, $\mu_{\text{air}} = 1.8 \times 10^{-5}$ Pa.s
- $Re_p = \frac{1.2 \times 10^{-6} \times 0.01}{1.8 \times 10^{-5}} \approx 7 \times 10^{-4}$
This is well below 0.1. The particle is deep in the Stokes regime.
Drag Law 1: Stokes (Linear Drag)
Validity: $Re_p < 0.1$
Formula:
This gives the well-known Stokes drag:
Physics: At very low $Re_p$, the flow around the particle is purely viscous (creeping flow). The Navier-Stokes equations simplify to the Stokes equations, and the analytical solution for a sphere gives this exact result.
When to use:
- Sub-micron particles in air or liquid
- Nanoparticle tracking ($d_p < 0.1$ \mu m)
- Any application where $Re_p$ stays below 0.1
When NOT to use:
- Coarse particles ($d_p > 50$ \mu m in air at moderate velocity)
- High-speed gas-particle flows
- Any application where $Re_p$ exceeds 0.1; the drag is underpredicted
Notes:
- Fluent's implementation includes a damping function for $Re_p \to 0$ to avoid division by zero.
- This is the drag law for the ideal "spherical particle in infinite quiescent fluid" case.
- Wall effects (Faxen corrections) are not included.
Drag Law 2: Standard Drag Law (Fluent Default)
Validity: All $Re_p$ (composite correlation)
Formula:
Fluent's built-in "spherical" drag law is a piecewise correlation:
| $Re_p$ range | $C_D$ formula |
|---|---|
| $Re_p \le 0.1$ | $24 / Re_p$ (Stokes) |
| $0.1 < Re_p \le 1000$ | $24/Re_p \times (1 + 0.15\,Re_p^{0.687})$ (Schiller-Naumann) |
| $Re_p > 1000$ | $0.44$ (Newton's constant-drag regime) |
This is the Schiller-Naumann correlation with a high-$Re_p$ cutoff to the constant $C_D$ regime.
Physics: The Schiller-Naumann correction $(1 + 0.15\,Re_p^{0.687})$ accounts for the onset of inertial effects in the boundary layer around the sphere. At $Re_p \sim 1000$, the wake becomes turbulent and $C_D$ drops to a near-constant value (the "drag crisis" happens at higher $Re_p$ for smooth spheres, around $2 \times 10^5$).
When to use:
- Default choice for spherical particles
- Covers the full range from sub-micron to coarse particles
- Works well for water droplets, fuel spray, sand, and most industrial powders
When NOT to use:
- Highly non-spherical particles (fibers, flakes, agglomerates)
- Very high $Re_p$ where the drag crisis matters
For shisha PM2.5: this is the correct default choice. Particles are sub-micron to 2.5 \mu m, $Re_p \ll 0.1$, and the Stokes limit is recovered automatically.
Drag Law 3: Schiller-Naumann (Explicit Selection)
Validity: $Re_p < 1000$ (explicitly limited)
Same formula as the Standard law in the low-$Re_p$ range. Selecting "Schiller-Naumann" explicitly in Fluent caps the high-$Re_p$ cutoff, preventing the constant $C_D = 0.44$ extrapolation.
When to use:
- When you know $Re_p$ stays below 1000 and want to prevent accidental extrapolation.
When NOT to use:
- If particles may enter the $Re_p > 1000$ regime (coarse sand in gas flows). The Standard law handles this.
Drag Law 4: Haider-Levenspiel
Validity: All $Re_p$; accounts for particle sphericity $\phi$
Formula:
where the coefficients $A$, $B$, $C$, $D$ are functions of the particle sphericity $\phi$:
Sphericity $\phi$: defined as the ratio of the surface area of a sphere with the same volume as the particle to the actual surface area of the particle. $\phi = 1$ for a perfect sphere; $\phi < 1$ for all other shapes.
| Particle shape | Typical $\phi$ |
| ---------------- | ---------------- |
| Sphere | 1.00 |
| Crushed coal | 0.70--0.80 |
| Sand (natural) | 0.80--0.90 |
| Wood chips | 0.40--0.60 |
| Fibers (aspect ratio 3:1) | 0.50--0.70 |
| Platelets (aspect ratio 10:1) | 0.20--0.40 |
When to use:
- Non-spherical particles (crushed minerals, biomass, metal flakes)
- When you have an independent measurement of sphericity
When NOT to use:
- Spherical particles (reduces to Standard law at $\phi = 1$)
- When sphericity is unknown (you cannot use this law without $\phi$)
- Fibers and extreme aspect-ratio particles (the correlation breaks down for $\phi < 0.3$)
For shisha PM2.5: Smoke particles are approximately spherical at the sub-micron scale (surface tension minimizes area). If agglomerates form, sphericity may drop to 0.7--0.8. Use Haider-Levenspiel with $\phi = 0.8$ as a sensitivity check against the default spherical law.
Drag Law 5: Non-Spherical (User-Specified Sphericity)
Validity: Same as Haider-Levenspiel, but Fluent takes $\phi$ as a direct input rather than computing it.
When to use:
- You know the sphericity from measurements.
- You want to do a parametric study over $\phi$.
When NOT to use:
- Same caveats as Haider-Levenspiel.
Drag Law 6: User-Defined (UDF)
Validity: Whatever you implement. Full control over $C_D(Re_p, \text{shape}, \text{other parameters})$.
UDF macro: DEFINE_DPM_DRAG
#include "udf.h"
DEFINE_DPM_DRAG(my_drag, p, Re_p, Cd)
{
real Vrel = P_VREL(p); /* relative velocity magnitude */
real dp = P_DIAM(p); /* particle diameter */
real rho = C_R(P_CELL(p), P_CELL_THREAD(p));
real mu = C_MU_EFF(P_CELL(p), P_CELL_THREAD(p));
real Rep = rho * dp * Vrel / mu;
/* Example: custom correlation */
if (Rep < 0.1)
*Cd = 24.0 / Rep;
else if (Rep < 1000.0)
*Cd = (24.0 / Rep) * (1.0 + 0.15 * pow(Rep, 0.687));
else
*Cd = 0.44;
/* Return 0 to indicate Cd was set via pointer */
return 0;
}
When to use:
- Published correlations not available in Fluent (e.g., Oseen, Klyachko, Morsi-Ahmed 3-zone)
- Shape-dependent drag where the standard sphericity corrections fail
- Drag in non-Newtonian fluids
- Experimental drag data fit to a polynomial
When NOT to use:
- When the built-in laws are sufficient (UDF adds code complexity and debugging overhead).
Advanced: Return drag as a force directly using DEFINE_DPM_BODY_FORCE for full momentum-source control.
Drag Law Selection -- Decision Table
| Application | Particle shape | $Re_p$ range | Recommended law |
|---|---|---|---|
| PM2.5 smoke (shisha) | Spherical | $\ll 0.1$ | Standard (Schiller-Naumann) |
| Water mist / spray | Spherical | $0.1$--$1000$ | Standard |
| Fuel injection (diesel) | Spherical (droplets) | $10$--$1000$ | Standard |
| Sand blasting | Sub-angular | $10$--$5000$ | Haider-Levenspiel ($\phi = 0.8$) |
| Biomass particles | Fibrous/flaky | $100$--$5000$ | Haider-Levenspiel or UDF |
| Nanoparticles | Spherical | $\ll 0.1$ | Stokes (linear drag) |
| Fluidized bed | Sub-angular | $0.1$--$100$ | Standard or UDF (Ergun correction at high packing) |
| Cyclone separator | Sub-angular | $100$--$5000$ | Standard (or Haider-Levenspiel for high accuracy) |
Application to Shisha PM2.5 -- Why Schiller-Naumann (Standard) Is Correct
For the shisha simulation:
1. Particles are sub-micron to 2.5 \mu m. At these sizes, surface tension dominates shape formation during condensation. The result is near-spherical morphology.
2. $Re_p \ll 0.1$ throughout the domain. The slip velocity between smoke and air is tiny because the Stokes number is $\sim 10^{-4}$. Even in the worst case (high-speed jet at bowl outlet, $|\mathbf{u} - \mathbf{u}_p| = 0.5$ m/s), $Re_p$ for a 2.5 \mu m particle is:
3. All drag laws reduce to Stokes at $Re_p = 0.08$, so the choice of correlation is moot for the trajectory. However, the Standard (Schiller-Naumann) law is the correct robust default because it handles the transition seamlessly.
4. Agglomerate sensitivity: If PM2.5 agglomerates form (common in real smoke), the effective sphericity drops. Run a sensitivity study: compare Standard ($\phi = 1$) vs Haider-Levenspiel ($\phi = 0.7$) to quantify the drag-law uncertainty on concentration.
Drag Model Validation
Single-particle validation (analytical):
For a sphere falling under gravity in quiescent fluid, the terminal velocity is:
Set up a 1D Fluent case with one particle, compare simulated $u_t$ against this formula. All drag laws should match to within 1% in the Stokes regime.
Ensemble validation (experimental):
- Compare simulated particle penetration through a known flow field against laser-Doppler or PIV measurements.
- Compare concentration profiles against cascade impactor data.
Mesh independence:
The drag law accuracy is mesh-independent (it depends only on $Re_p$, which is a local quantity). However, the fluid velocity at the particle location depends on mesh resolution. Ensure the continuous phase is converged on a suitable mesh before evaluating drag.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Particles pass through walls | Drag too low; particles not decelerating near wall | Check mesh resolution near wall; enable Brownian force if $d_p < 1$ \mu m |
| Particles cluster at inlet | Excessive drag; particles stop too quickly | Check particle density; verify material properties |
| Unphysical trajectory oscillations | Time step too large for particle response time | Reduce DPM time step; check $\Delta t < \tau_p$ |
| DPM diverges after coupling | Two-way coupling source terms too aggressive | Reduce DPM under-relaxation factor; increase coupling iterations |
| Concentration field is noisy | Too few parcels | Increase number of parcels; increase number of tries |
Summary
1. Drag is the dominant force for most DPM applications. Choosing the right law is critical. 2. For spherical particles at any $Re_p$, the Standard (Schiller-Naumann) law is the correct default. 3. For non-spherical particles, use Haider-Levenspiel with measured sphericity. 4. For PM2.5 in shisha, $Re_p \ll 0.1$ everywhere; Stokes drag dominates. The Standard law recovers this automatically. 5. UDF drag is available for custom correlations or experimental data. 6. Validate drag by comparing single-particle terminal velocity against analytical solutions. 7. Drag-law uncertainty is small compared to mesh resolution and injection-property uncertainty for PM2.5.
See Also
- DPM Theory -- Governing Equations (parent theory page)
- Shisha PM2.5 Case Study (application of drag law)
- DPM Turbulence Interaction -- DRW Deep Dive
- DPM UDF Programming
- DPM Physical Models -- Fluent Panel Walkthrough
- DPM Setup and Activation in Fluent