CFD tutorial no. 15 — Industrial fan CFD
When the machine is enclosed

This industrial fan CFD tutorial covers the closed duct : cylindrical domain, dedicated presets, Phase 2 under close watch.

Start with tutorial no. 1

Industrial fan CFD: tutorial for the closed-duct calculation

CFD tutorial no. 15 of 20. The steps described here are those of the HELICIEL CFD Tool window, opened from Heliciel : they assume the PRO CFD/BEM upgrade is active. This tutorial follows a real case, based on the fan model shipped with the software ; every figure and every screenshot comes from it. Test machine : desktop PC with an i7-8086K, 6 cores, 64 GB RAM, 11 processes.

A confined axial machine — duct fan, bulb turbine, propeller pump, ducted thruster — cannot be calculated like a propeller in free air. The entire flow rate passes through the duct, the duct wall is part of the problem, and the blade tip clearance becomes a first-order quantity. This tutorial shows what that costs, what it delivers, and where the current chain reaches its limits — because this is the hardest configuration on the test bench, and it's better to know that before launching a two-hour run.

  1. Four configurations, not one
  2. The machine under study, and its BEM reference
  3. The cylindrical domain and its cost
  4. The duct presets
  5. The wall conditions applied
  6. Reading the result — and putting it in perspective
  7. Recognizing a duct mesh that won't hold
  8. Phase 2 in a duct, and its warning

1: Four configurations, not one

The bench distinguishes four case families, and the choice is made at creation :

When you create the case from a ducted propeller, Heliciel asks the question : free stream or duct ? Answer duct for a duct fan, a penstock turbine, a propeller pump. The answer changes the domain, the boundary conditions and the preset catalogue — it cannot be corrected afterwards.

2: The machine under study, and its BEM reference

The fan model shipped with Heliciel is used as the example. Like every shipped model, it opens with a design point at zero : run Analyze operating point before switching to CFD, otherwise the BEM reference in the case folder will read zero.

Diameter1 250 mm (hub ∅ 400 mm), ducted
Number of blades7
Rotation speed960 rpm — blade tip 64,3 m/s, Mach 0,19
Flow velocity13,62 m/s — J = 0,681
Fluidair, ρ = 1,3 kg/m³, 0 °C
Thrust / torque (BEM)113,7 N / 74,84 N·m
Shaft power (BEM)7 524 W — efficiency 0,206
Pressure rise (BEM)103,2 Pa

An efficiency of 0,206 is not an anomaly : for a fan, the "propulsive efficiency" in the propeller sense doesn't carry the meaning it has on an aircraft. What matters for a duct machine is the pressure/flow-rate coupling — and it's the pressure rise, 103 Pa here, that the CFD calculation needs to reproduce.

3: The cylindrical domain and its cost

In a closed duct, the domain is no longer a box : it is a cylinder meshed as an O-grid, five blocks, with an inlet, an outlet and a duct wall. The machine's geometry is inserted into it along with its duct. Direct consequence : the mesh is much heavier than for a free propeller, at a nominally equivalent preset.

For our fan, at the Duct Level 1 preset — the one called "Smoke: quick test" — :

Cells1 183 855
Meshing duration1 h 35 min 21 s on 11 processes (6,5 core-hours)
STL triangles189 126 for the blades, 338 646 for the hub — the duct itself does not come from an STL
Phase 1 MRF3 min 35 s

For comparison, the lightest preset for a free propeller meshes in 50 seconds for 15 000 cells. The ratio is a hundred to one. Plan your time accordingly : in a closed duct, there is no "just to see" preset. The lightest one in the catalogue is already an evening-long run.

4: The duct presets

The catalogue changes with the configuration. In a closed duct, there are only four levels, and they are much more closely spaced than the eight levels for the free propeller :

PresetBackgroundSurface refin.EdgesLayersCostWhat it targets
Duct Level 18×6×64-450×1Smoke : domain convergence
Duct Level 28×6×64-460×1,1Refined snapping and sharp edges
Duct Level 38×6×64-561×1,5Ceiling : tip clearance trimmed to keep Phase 2 fast
Duct Level 48×6×64-561×1,5Reinforced : same mesh, more careful snap/layer convergence

Two useful remarks. Levels 3 and 4 share the same mesh geometry : what separates them is the care taken over snapping and layer-stack convergence, not the resolution. And the background grid doesn't change from one level to the next : in a duct, most of the cost comes from refinement around the machine, not from the domain.

5: The wall conditions applied

The results panel displays the boundary conditions actually applied, and this is a habit worth adopting in a closed duct — they are not the same as for a free propeller :

Hubslip — no boundary layer on the hub
Ductclosed duct (pipeWall from blockMesh, not from the STL)
Duct wallslip — no boundary layer on the wall

The frictionless wall is a deliberate choice of the chain : stacking boundary layers on the duct wall, on top of those on the blades, produces cells that cross over at the tip clearance in this context and makes the mesh fail. That's the reason for the next section. It comes at a price : head losses from wall friction are not modelled. For a fan, that means the calculation gives you the machine, not the ductwork network.

6: Reading the result — and putting it in perspective

flow lines in a fan in a closed duct calculated by CFD
The fan inside its duct, flow lines and surface pressures. The pressure rise can be read on either side of the rotor plane : downstream in red, upstream in green.

surface pressure map of a fan in a closed duct
Surface pressures, 3D model hidden. As everywhere in the bench : uncheck the 3D model to see the field, otherwise the grey STL draws over it.

The forces, on the other hand, call for caution. For our case :

BEMCFD Phase 1gap
Thrust113,7 N245,4 N+115,7 %
Torque74,84 N·m52,12 N·m−30,4 %
Shaft power7 524 W5 239 W−30,4 %

The bench provides a second, independent line of evidence here, separate from the wall forces : it compares the torque read on the surfaces with the torque derived from the angular momentum balance of the fluid crossing the rotor. The two should coincide. They give 52,2 N·m against 34,0 N·m, a ratio of 1,53 where 1 is expected — and the bench flags it as a warning. A gap like this cannot be fixed with a solver setting : it means the mesh isn't faithfully transporting momentum through the rotor zone.

Thrust doubled, torque cut by a third : these two gaps don't point the same way, and that's the sign this isn't a simple resolution shortfall. The field even contains a maximum velocity of 565 m/s for a machine whose blade tip turns at 64 m/s — a local extremum, produced by a handful of degenerate cells, and it's enough to throw off any automatic colour scale. This result is a result of the configuration, not a result of the machine : it should not be quoted as the fan's performance.

CFD results panel of a fan in a closed duct with boundary conditions
The results panel in a closed duct : it recalls the applied wall conditions before giving the forces. Read those first.

7: Recognizing a duct mesh that won't hold

The bench analyzes checkMesh and returns a reliability score. For our mesh, 52 %, with the following detail :

Maximum skewness7,07 (OpenFOAM 12 threshold : 4)
Maximum non-orthogonality67,5° (threshold : 50°)
Near-degenerate cells26 (determinant < 0,001)
Concave cells14 967
Faces with interpolation weight < 0,05570
Faces with volume ratio < 0,0111

The two rows that matter are the skewness and the near-degenerate cells. A cell with a near-zero determinant has an effective volume close to zero : gradients blow up there, and that's where the 565 m/s comes from. The bench's diagnostic is unambiguous on this point — it flags a structural divergence in Phase 2.

These flaws concentrate in a known area : the blade tip clearance, where the mesh has to fit cells between the rotating blade and the duct wall, over a gap only a few millimetres thick. It's the hard point of the whole configuration, and it's the subject of ongoing work : if your duct case produces these signatures, it is not a mistake on your part.

vertical cut of axial velocities in a ducted fan
Vertical cut of the axial velocities inside the duct : the flow is confined, it has nowhere to expand — that's the whole difference with a free propeller.

cylindrical cut in a fan in a closed duct
Cylindrical cut at 40 % of the radius : the unrolled surface slices through all seven blades and shows the duct along its full length.

8: Phase 2 in a duct, and its warning

Sliding-mesh Phase 2 is possible in a closed duct, but it requires a healthy mesh. With a skewness of 7 and cells of near-zero volume, the time step collapses within the first few revolutions and the run stalls : that's what the bench's diagnostic warns of, and it's right to say so before rather than after a two-hour run.

The recommended course of action, in order :

  1. read the reliability score and the checkMesh detail before launching Phase 2 ;
  2. if near-degenerate cells are flagged, don't launch : remesh at the next level up, which takes more care over snapping convergence ;
  3. the "problem cells" overlay in the Show menu highlights very small-volume cells in red and writes a full report to the log — it's the tool that tells you where the mesh gave way ;
  4. if the tip clearance is the cause, the Level 3 preset deliberately trims it to keep the mesh healthy : that's a trade-off, not a flaw.

For confined machines where Phase 2 succeeds, everything described in tutorial no. 5 applies unchanged. And for an energy-capturing machine in a duct — bulb turbine, Kaplan, penstock — the sign reading is the same as in tutorial no. 14 : positive torque, a machine that produces.

The collection of twenty CFD tutorials

« Previous: Wind turbine and tidal turbine  |  Next: Aircraft propeller, cruise and static thrust »

  1. First CFD propeller simulation
  2. Reading the OpenFOAM case folder
  3. Choosing the mesh preset
  4. The MRF zone and Phase 1
  5. Phase 2 with sliding mesh
  6. Comparing BEM and CFD
  7. Reading the convergence of a run
  8. Turbulence models
  9. Boundary layer and y+
  10. Reading a pressure map
  11. Where the forces come from
  12. Checking an airfoil polar
  13. Marine propeller and cavitation
  14. Wind turbine and tidal turbine
  15. Fan in a closed duct (you are here)
  16. Aircraft propeller, cruise and static thrust
  17. The optimisation loop
  18. Calibrating on a reference
  19. From the hull to the propeller
  20. The deliverable calculation file

This series accompanies the Heliciel design tutorials, which cover the BEM side: blade design, choosing the rotation speed, performance curves. CFD comes after them, to verify and to see.