DPM Numerics and Solver Settings in ANSYS Fluent 2024 R1
#+CATEGORY: cfd
#+TAGS: DPM Fluent numerics solver convergence max steps timescale
#+MATURITY: growing
DPM Numerics :: Solver Settings and Convergence for ANSYS Fluent 2024 R1
This page covers all the numerical knobs that control DPM tracking in Fluent 2024 R1: time-step, max steps, tolerance, tracking modes, coupling iterations, and convergence diagnostics. Target application: shisha PM2.5 simulation (3D, steady-state, inert).
Maximum Number of Steps
Models > Discrete Phase > Edit... > Tracking tab > Max. Number of Steps
This is the most common cause of incomplete particles in the DPM Summary. If a particle has not hit a boundary (escape, trap, reflect) within this many integration steps, Fluent stops tracking it and reports it as incomplete.
Default: 500 Recommendation for shisha: 5000--20,000
Why more steps? In a large 3D domain with slow-moving recirculation zones, a particle can spend thousands of steps in the flow without hitting a wall. The default 500 steps is far too low.
How to diagnose: 1. Run the DPM 2. Report > Discrete Phase > Summary 3. Check the incomplete line -- if > 0, increase the max steps
Tie to timescale: Max steps x time-step = max tracking time. The max tracking time must be longer than the residence time in the domain:
: t_residence ~ V_domain / Q_flow
For shisha: V ~ 1 L = 10^-3 m^3, Q ~ 5 L/min = 8.3e-5 m^3/s : t_residence ~ 12 seconds
Particle velocity ~ 0.01--0.1 m/s, so a particle travels 0.01--0.1 m per step (depending on dt). Over 500 steps, distance = 5--50 m. This should be enough, but with strong recirculation and small dt in fine-mesh regions, the particle may not have traversed the domain.
Tracking Time Step (Steady Tracking)
Models > Discrete Phase > Edit... > Tracking tab > Time Step Size
When tracking in a steady flow:
- Fluent uses a Lagrangian time step (independent of the Eulerian time step)
- Default:
Length scale/ characteristic velocity (computed automatically) - User-override: set manually in seconds
Length scale vs time step:
Length scale: the distance a particle moves per step; Fluent computes dt = length_scale / |u_p - u_f|- If you set
Time Step Sizedirectly, the length scale is computed from it
Time-step guidance for PM2.5: The particle response time is: : tau_p = rho_p * d_p^2 / (18 * mu) For 1 \mu m particle in air: tau_p ~ 3.5e-6 s
The Lagrangian dt should resolve this: dt < 10 * tau_p is a safe choice, so dt < 3.5e-5 s. Fluent's default length-scale approach typically gives dt ~ 1e-4 s, which is adequate.
For transient tracking: The Lagrangian dt must be smaller than the Eulerian dt. Fluent enforces this automatically. The Time Step Size is then the maximum allowed Lagrangian sub-step.
Tolerance
Models > Discrete Phase > Edit... > Tracking tab > Tolerance
Controls the accuracy of the particle trajectory integration (Runge-Kutta or implicit method). Default = 1e-6.
Lower tolerance = more accurate but slower. For PM2.5, the default is fine. Tighten only if particle tracks look unphysically jagged.
Steady vs Transient Tracking
Models > Discrete Phase > Edit... > Tracking tab > Tracking Mode
Steady Tracking
- Particles are tracked in a frozen flow field (the converged steady solution)
- One pass tracks all injections from start to boundary
- Use for: steady-state problems (continuous draw, continuous emission)
For shisha (steady): Select Steady Tracking. The converged continuous-phase solution provides the steady velocity field. DPM iterations track parcels through this fixed field.
Transient Tracking
- Particles are tracked through the time-varying flow field
- Each Eulerian time step advances all particles by one Lagrangian dt
- Use for: unsteady flows (puff, start-up, transient combustion)
For shisha (transient, future): Select Transient Tracking and run the continuous phase in transient mode first. DPM will then ride the evolving flow.
DPM Iterations and Under-Relaxation
For two-way coupling (when DPM feeds back onto the continuous phase):
Run Calculation > Number of Iterations > Iterations per DPM update
- DPM iterations: how many times to retrack particles within each continuous-phase iteration
- Under-relaxation factor: how strongly DPM source terms affect the continuous phase (default = 1.0)
For one-way coupling: DPM is run after the continuous phase has converged. No iterations needed. Just run the DPM once on the converged flow field.
How to run DPM on a converged flow (one-way): 1. Run continuous phase to convergence (residuals < 1e-4) 2. Run > Iterate DPM (or solve > set > dpm-iterations) 3. DPM runs once through all injections; output = DPM Summary + particle data
Coupling Iterations (Two-Way)
For two-way coupling: 1. Solve continuous phase 2. Track DPM particles 3. Compute momentum/heat/mass source terms 4. Add source terms to continuous-phase equations 5. Repeat from step 1
Convergence of the coupling loop requires:
- Source terms stop changing (check residuals)
- DPM Summary mass balance closes (injected = escaped + trapped + evaporated)
- Number of iterations needed: 5--50 typically
Under-relaxation for DPM source terms:
- Default = 1.0 (full update)
- If coupling diverges: reduce to 0.5--0.8
- TUI:
solve/set/dpm-under-relaxation <factor>
Convergence Diagnostics
DPM Summary check:
Checks: 1. incomplete should be exactly 0 (or negligibly small) 2. injected should equal escaped + trapped + evaporated (mass conservation) 3. Re-run with 2x parcels: concentration field should change < 5% 4. Re-run with 2x max steps: incomplete should remain 0
Red flags:
incomplete > 0: increase max steps, check for zero-velocity cellsinjected !escaped + trapped=: check for periodic/recirculating losses- Concentration field changes more than 10% when doubling parcels: under-resolved; increase parcel count
Length Scale Setting
Models > Discrete Phase > Edit... > Tracking tab > Length Scale
Defines the distance a particle travels per integration step (used when "Length Scale" is selected as the step-size basis).
- Default: computed from mesh (typically = 0.1 x min(cell_size))
- Manual: set a value in meters
Guidance:
- Too large: trajectories jump over flow features; inaccurate
- Too small: excessive steps; slow computation
- Rule of thumb: length scale ~ 1/10 of the smallest cell in the tracking region
For shisha PM2.5:
- Typical mesh: cells ~ 1--5 mm
- Length scale ~ 0.1--0.5 mm
- Fluent default is usually adequate
TUI Commands for Numerics
| Command | Purpose |
| --------- | --------- |
solve/set/dpm-iterations | Set the number of DPM iteration passes |
solve/set/dpm-under-relaxation | Set the DPM under-relaxation factor |
solve/set/dpm-tolerance | Set the trajectory integration tolerance |
define/models/dpm/set-tracking-parameters | Set time step, max steps, length scale |
define/models/dpm/set-tracking-mode | Switch between steady and transient tracking |
solve/set/dpm-max-steps | Set the maximum number of tracking steps |
Full Numerics Setup for Shisha PM2.5 (Steady)
| Parameter | Value | Reasoning |
| ----------- | ------- | ----------- |
| Tracking mode | Steady | Continuous draw under steady-state conditions |
| Max steps | 10,000 | Large domain, recirculation zones |
| Length scale | 0.5 mm (or Fluent default) | Mesh-dependent; 0.1 x min cell size |
| Tolerance | 1e-6 (default) | Adequate for sub-micron particles |
| DPM iterations | 1 (one-way coupling) | No iteration needed with one-way |
| Under-relaxation | 1.0 | Not applicable in one-way mode |
| Number of Tries (DRW) | 10 | 10 stochastic trajectories per parcel |
--- :PROPERTIES: :seeAlso: cfd_dpm-setup-activation, cfd_dpm-turbulence-interaction, cfd_dpm-coupling, cfd_dpm-shisha-pm25 :END: