Pre-flight checks
submit_case and submit_sweep check a case before copying it. An error refuses the submit with "reason": "preflight" and the list of findings; a warn or info is returned with the queued job. Each finding has a level, a code to branch on, a message and the path it concerns.
A few checks run after meshing instead, on the cell count and the checkMesh result: cell_count_leak, cell_count_low, mesh_regions, mesh_checks_failed and snappy_error.
This table is extracted from the code. Messages are templates: the parts in braces are filled in with the case’s values.
| Code | Level | Message (as the server phrases it) |
|---|---|---|
cell_count_leak | error | {cells} cells, more than {CELL_LEAK_FACTOR:.0%} of the expected {expected}: the surface probably leaked |
cell_count_low | warn | {cells} cells, under {CELL_LOW_FACTOR:.0%} of the expected {expected} |
coeffs_write_interval | error or warninfoerror | no functions.coeffs.writeInterval; the stop rule reads postProcessing/coeffs/*/coefficient.dat |
copy_zero_required | error | boundaryField entries {odd} are not blockMesh patches; decomposePar without -copyZero would drop them |
dict_unreadable | warn | missing |
disk_low | warn | {free_gb:.1f} GB free on the jobs disk, below the {settings.min_free_gb:g} GB floor; the job will wait (prune_job or delete_job frees space) |
emesh_source_missing | warn | eatures list {emesh} but surfaceFeatureExtractDict has no {stem}.* entry to produce it |
end_time_mismatch | errorwarn | endTime {end_time} differs from the requested {spec.end_time_cap} |
figures_no_patches | warn | no wall patches found (snappy geometry or noSlip in 0/U); figures disabled for this job |
figures_tail | info | tail_iterations raised to {fig.window} so the figure sampling window fits after the watcher stop |
location_in_mesh_on_centre | warn | locationInMesh {loc} sits exactly on a blockMesh cell centre |
location_in_mesh_on_face | infoerror | check skipped: {box} |
location_in_mesh_outside_box | error | castellatedMeshControls.locationInMesh missing or not a point |
mesh_checks_failed | error or warn | detail |
mesh_regions | error | mesh has {regions} disconnected regions; expected 1 |
processor_dirs_present | error or warn | {len(procs)} processor directories present" + ( " (resume keeps them)" if spec.resume else "; submit without resume would rebuild the mesh over a stale decomposition" ) |
residual_control_present | info | {algo}.residualControl {entries}: the solver may stop on its own" + tail |
run_time_modifiable_off | error or warn | runTimeModifiable is off; " + ( "the watcher cannot stop the run early" if watcher else "set_end_time will refuse to edit this case" ) |
sampler_starts_after_stop | warn | unction objects start after the earliest possible stop ({stop.min_iteration}): {late}; set tail_iterations and retime_function_objects so they still sample |
set_constraint_types_missing | error | 'boundaryField lacks #includeEtc "caseDicts/setConstraintTypes";' " the processor patches would have no type |
snappy_error | error | snappy_error |
solver_stop_reference_missing | warn | no reference magnitude for {missing}; the runTimeControl tolerance falls back to absolute bands that fit keelA-scale coefficients only |
stl_missing | error | geometry {key} needs constant/triSurface/{fname} |
stop_at_not_end_time | error or warn | stopAt is {control.get('stopAt')!r}; " + ( "the first point resets it to endTime" if spec.sweep else "endTime edits would be ignored" ) |
stop_window_unreachable | warn | endTime {spec.end_time_cap} is below min_iteration {stop.min_iteration} + margin {stop.margin}; the {stop.mode} stop can never fire and the run goes to endTime (window {stop.window}, tail {stop.tail_iterations}) |
subdomains_mismatch | error | numberOfSubdomains {n} but the job asks for {spec.nproc} ranks |
sweep_iters | info | each point runs {iters} iterations; endTime is rewritten per point |