Start from what you observed. Each symptom below runs cheapest checks first, so you spend a minute before you spend a cluster allocation.
This page complements Common Fatal Errors and Fixes, which is organized by error message. Use that page when you have an exact string to search for; use this one when you only have a behavior.
Good news: this is the cheapest failure mode, and it is the one the system is designed to produce.
dual_time_picard_jameson_rk block while selecting Newton Krylov is an error, not an ignored stanza.Establish where it fails before changing anything.
Dual Time Picard Jameson RK, look for "reached N total attempts without convergence". That counts total attempts, accepted plus rejected.dtau pinned at its floor? A pseudo-CFL collapsed to pseudo_cfl.minimum with a residual ratio plateauing near 1 is the signature of a stalled controller rather than a hard case.HEAD; you may be reproducing a known open issue rather than a configuration mistake.Explicit RK4, divergence within a few steps is the explicit stability limit; there is no recovery mechanism on that path. Reduce the timestep or change solver.t=0 before the loop. If early behavior looks wrong, suspect the seeding, not the ordering.<run.scheduler>/** as <run_id>_<prefix>.log — not <run.runtime_logs>/, which carries the solver's runtime logging. Solver success does not imply postprocessor success.Ucat is derived from Ucont. A visualization field is not the solver's evolved state — see Grid, Cell, and Variable Architecture Guide if a field looks inconsistent.--continue resumes the same run; --restart-from seeds a new one. See Run Artifact Lifecycle Contract.initial_flux, a restart restores the latched target from the checkpoint. A log line saying it re-measured instead means the checkpoint predates that metadata..err file before the solver log.mglevels at one rank count but not another, this is usually why.This is the hardest class, and the one where documentation helps least — but three checks are worth doing before anything else:
target_flux is a volumetric flux, not a velocity. A constant-factor error here produces plausible-looking wrong answers. See 5. Non-Dimensionalization Before C Input.The closure is quiet when it misbehaves: a wrong coefficient still produces a run that completes and plots that look plausible. Turn the diagnostics on (les.diagnostics.enabled: true) and read <run.runtime_logs>/les_coefficient.csv before anything else.
**cs_effective is zero for the whole run.** Expected for the first two steps of a run started from rest, because the procedure has no developed field to sample. Beyond that, check that the model is dynamic_smagorinsky; the constant model reports the coefficient you configured, not a measured one.
**cs_effective is far from 0.16-0.17 in isotropic turbulence.** Check the grid first, not the model. That value assumes the grid cutoff sits in an inertial range; at low Re_lambda a smaller coefficient is correct. Then check limited_fraction — if the clip is binding, the ceiling is setting the answer.
**cs_effective is noisy or oscillating.** Almost always averaging.mode: local, where the coefficient's denominator collapses wherever the resolved strain is briefly small. If the flow has a homogeneous direction, use averaging.mode: homogeneous.
**limited_fraction is large.** The max_cs ceiling is doing the modelling. Either the coefficient is genuinely diverging, which is a resolution or stability problem, or the ceiling is set too low for the flow.
**backscatter_fraction is large and the run is over-dissipative.** The clipping modes discard only the negative tail, which biases mean dissipation upward. Averaging over a homogeneous set lets forward and reverse transfer cancel the way the physics intends; clipping.mode: none keeps the sign and bounds the total viscosity instead.
**nu_t_over_nu_mean is far below one.** The model is contributing nothing. Check that LES is actually enabled, and that the grid is coarse enough for a subgrid model to be the right tool.
Validation rejected simpson_ik. That stencil averages over the central eta-plane only and assumes xi and zeta are homogeneous. The check requires both declared PERIODIC. Use volume_weighted_box on any other geometry.
More detail on every setting at Configuration Reference: Case YAML, and the reasoning at LES Turbulence Closure.