v2026.11.16174
Reference / Input deck / solver / convergence control / cfl / cfl ramp

cfl ramp

How the CFL climbs toward 'cfl'. A list of ramps, each naming its shape — one entry for a single ramp, several to run in order. Alternatively a function, called as f(*, cycle, current_cfl); it returns the new CFL as a number, or a dict of any of 'cfl', 'cfl_turbulence' and 'cfl_coarse'. Keys a returned dict leaves out keep their static value.

initial
float·not set by default·> 0

CFL this ramp starts from, returned at its own start cycle. Leave unset to carry on from wherever the previous ramp left off.

Guidance: Choosing a time-marching scheme →
start cycle
int·default 1·>= 1

First solve cycle this ramp acts on.

Guidance: Choosing a time-marching scheme →
end cycle
int·not set by default·>= 1

Last solve cycle this ramp acts on. Unset runs to the end of the run.

Guidance: Choosing a time-marching scheme →
typerequired
required

How the ramp changes the CFL in its window: exponential multiplies it, linear and stepped_linear add to it.

Options
ValueWhat it does
exponential

Multiplies the CFL by factor (>= 1.0) each cycle, capped at max_allowed.

linear

Adds increment to the CFL every cycle between start_cycle and end_cycle.

stepped_linear

Adds increment every step_cycles cycles.

Guidance: Choosing a time-marching scheme →
factorrequiredexponential only
float·required·>= 1.0

Multiplied into the CFL every cycle. Must be at least 1.

max allowedadvancedexponential only
float·default 1000000·> 0

Ceiling on the ramp itself, guarding against overflow.

incrementrequiredlinear / stepped_linear only
float·required

Added to the CFL every cycle in the window. An increment of 0 holds the CFL steady.

step cyclesrequiredstepped_linear only
int·required·> 0

Cycles between steps.