CFD Time-Step & Simulation Runtime Estimator - CFL, Cells & Cores to Wall-Clock (Free)

"How long will this CFD run take?" — the question every engineer asks before hitting Solve, and the one nobody can answer confidently. Guess too low and you blow your deadline (or your cloud-compute budget); guess too high and you over-provision expensive HPC nodes. This free CFD Time-Step & Runtime Estimator turns that guess into an engineering estimate: enter your CFL target, mesh size, physical time and core count, and it computes the stable time step, the number of steps, and a wall-clock time — plus a calibration mode that uses a short test run to make the estimate genuinely accurate.

CFD Time Step and Run Time Calculator
Figure 1 CFD Time Step and Run time Calculator

The Runtime Estimator

Use Estimate mode for a first-principles projection, or Calibrate mode to back-calculate your solver's true speed from a short test run (far more accurate). All times are for transient simulations.

⏱️ CFD Time-Step & Runtime Estimator

CFL time step + wall-clock estimate from cells, cores & efficiency
Estimate (first principles)
Calibrate (from test run)
Projects the time step and wall-clock time from your case & hardware.
Time step (CFL)
Cost & hardware
Run a short test (say 10–50 steps), enter what it took, and get a calibrated solve-time-per-cell — then the full-run projection.
Your short test run
Full run you want to project
estimated wall-clock time
time step Δt (s)
time steps
single-core time
cells / core
Δt = CFL·Δx/U. Steps = T/Δt. Single-core time = steps × cells × (µs/cell/step). Wall time = single-core time / (cores × efficiency). Calibration back-solves µs/cell/step from a real test: (µs/cell/step) = test-wall × cores × eff / (test-steps × cells). Estimates are order-of-magnitude unless calibrated; solver, physics, hardware and mesh quality all shift the per-cell cost.
Validation note: the runtime model follows the standard method used by CFD practitioners. As a reference point, a case totalling ~110,000 core-seconds run on 32 cores at 60% parallel efficiency lands at about 110,000 / (32 × 0.6) ≈ 5,700 s ≈ 1.6 hours of wall-clock — matching the widely cited worked example. The calibration mode removes most of the guesswork by measuring your solver's real per-cell speed.

Why Estimate Runtime?

A runtime estimate is one of the most practically valuable things you can compute before a CFD job — yet it's rarely taught. Knowing it lets you:

  • Plan deadlines — will this finish overnight, or take a week?
  • Budget cloud/HPC cost — core-hours translate directly to money on AWS, Azure or a cluster allocation.
  • Right-size the hardware — find the core count that's fast and efficient.
  • Sanity-check the setup — an absurd estimate often reveals a meshing or time-step mistake.

Step 1: The CFL Time Step

For a transient simulation, the time step is set by the Courant–Friedrichs–Lewy (CFL) condition:

Δt = CFL · Δx / U

where Δx is the smallest cell size and U the maximum velocity. The Courant number measures how many cells information crosses per step. For explicit solvers, CFL must stay below 1; implicit solvers tolerate more but accuracy still limits it. This is the same quantity explored in depth in our CFL / Courant number calculator — the estimator builds directly on it.

The fine-mesh trap: halving your cell size doesn't just double the cell count — it also halves the time step, doubling the number of steps. So runtime can scale far worse than linearly with mesh refinement. This is why the first-cell height and overall mesh strategy have such a huge cost impact.

Step 2: Number of Time Steps

Nₛₜₑₙₛ = Tₚₕₑₛₓ₋ₛ / Δt

Simply the physical time you want to simulate divided by the time step. Want 2 seconds of physics at a 1×10−4 s step? That's 20,000 steps — every one of which the solver must grind through.

Step 3: Cost Per Step

Each time step costs roughly:

cost/step = N₣ₑₗₗₛ × (solve time per cell per step)

The per-cell time folds in the inner iterations (pressure–velocity coupling), turbulence model, and solver overhead. It typically ranges from about 1–20 microseconds per cell per step on modern CPUs — but it varies so much by solver and physics that measuring it beats guessing (see calibration below).

Step 4: Parallel Scaling

Finally, running on multiple cores divides the work — but never perfectly:

Wall time = single-core time / (Nₛₒₕ₋ₛ × efficiency)

Parallel efficiency captures the communication overhead between cores. It's typically 50–80% up to tens or hundreds of cores, and it drops when there are too few cells per core.

Cells per coreTypical efficiency
< 20,000Poor — communication-bound
20,000 – 100,000Good — the sweet spot
> 200,000Fine, but you could add cores
Rule of thumb: aim for ~20,000–100,000 cells per core. Below that, adding cores mostly adds communication overhead rather than speed — the classic diminishing return of parallel CFD. Confirming this on your hardware is part of a proper grid independence and scaling study.

The Calibration Trick

Here's what makes this estimator trustworthy rather than a wild guess. The one uncertain number is the solve time per cell per step — so measure it instead of guessing:

  1. Run your real case for just a few time steps (say 10–50).
  2. Note the wall time it took and the cores/efficiency used.
  3. The calculator back-solves your solver's true per-cell speed.
  4. It then projects the full run using that calibrated value.
µs/cell/step = (test wall × cores × eff) / (test steps × cells)
Why this works: the per-step cost stays remarkably constant once a simulation is running, so a short measured sample projects the full run well. This single step typically takes a first-principles estimate from "order of magnitude" to "accurate within a modest margin" — the difference between a guess and a plan.

Worked Example

Transient case: CFL = 1, Δx = 2 mm, U = 30 m/s, simulate 1 s, mesh 2,000,000 cells, 16 cores at 75% efficiency, ~2 µs/cell/step:

  • Δt = 1 × 0.002 / 30 = 6.67×10−5 s
  • Steps = 1 / 6.67e-5 = 15,000
  • Single-core time = 15,000 × 2,000,000 × 2e-6 s = 60,000 core-s (16.7 core-hr)
  • Wall = 60,000 / (16 × 0.75) = 5,000 s ≈ 1.4 hr
  • Cells/core = 2,000,000 / 16 = 125,000 — good efficiency range ✓

Common Mistakes

  • Guessing the per-cell time. It varies 10× by solver/physics — calibrate from a short run.
  • Ignoring the mesh–timestep coupling. Finer cells shrink Δt too, so cost grows faster than cell count.
  • Assuming 100% parallel scaling. Efficiency is 50–80%, and worse with few cells per core.
  • Forgetting inner iterations. Each step may need several — fold them into the per-cell time.
  • Timing from a tiny sample with heavy start-up. Initialisation/I-O can dominate 5–10 steps; use enough steps.
  • Neglecting I/O and write intervals. Frequent field writes add real wall-clock time.
  • Using someone else's scaling. Scaling is solver- and hardware-specific — test your own.

Frequently Asked Questions

How do you estimate CFD simulation time?

Find the CFL time step, count steps as physical time / Δt, multiply cells by a per-cell solve time for the cost per step, multiply by steps for single-core time, then divide by cores × efficiency for wall-clock time. Calibrate the per-cell time from a short test run for accuracy.

How is the CFD time step calculated from the CFL number?

Δt = CFL · Δx / U, where Δx is the smallest cell and U the max velocity. Explicit solvers need CFL < 1; implicit allow more but accuracy still limits it.

Why does CFD take so long to run?

Runtime = steps × cost/step. Fine meshes raise both cell count and step count (smaller Δt), so cost grows faster than cells alone. Inner iterations and physics models add more per-cell cost.

Does doubling the cores halve the runtime?

Only at 100% efficiency. Real efficiency is 50–80% and falls with too few cells per core, so beyond a point extra cores give diminishing returns.

What is a good number of cells per core?

Roughly 20,000–100,000 cells per core for good efficiency. Too few and communication dominates; the ideal depends on solver and hardware, so run a short scaling test.

How accurate is a CFD runtime estimate?

First-principles gives the right order of magnitude. Calibrating from a short test run — measuring real per-cell speed — typically brings it within a modest margin.

Conclusion

Estimating CFD runtime is a chain of four simple steps: the CFL time step, the number of steps, the cost per step, and parallel scaling. Do it from first principles for a ballpark, then calibrate from a short test run to turn that ballpark into a dependable plan. Either way, you'll walk into your next simulation knowing roughly what it will cost in time and money — instead of hitting Solve and hoping.

Use the estimator above before your next transient run, keep an eye on your cells-per-core, and let a quick calibration make the number one you can actually schedule around.


For more CFD, meshing and simulation tutorials plus free engineering calculators, explore Free CFD Tutorial. If this tool helped you, please share it with your fellow CFD engineers and students.

vikas sharma

I am M.Tech. in Energy Engineering from MNIT, Jaipur. My keen interest is in CFD training and development of CFD tutorials on opensource software OPENFOAM. I am always ready to take challenges in CFD research area.

Post a Comment

Previous Post Next Post