A sweep with figures
This tutorial runs an external-aerodynamics case at two angles of attack in one job: one mesh, two freestream conditions, an early stop at each, and a rendered figure set per point. It assumes you finished your first job.
You need a case whose 0/U has a freestreamVelocity patch, a forceCoeffs function object named coeffs, and runTimeModifiable true. Cases written by TerraHawk’s cfd_case.py have all three. Stage it on the server first, its STL files included, as Stage a case without a shell shows.
-
Submit the sweep.
submit_sweep({"case_name": "flight-a6.7-b0-coarse","points": [{"alpha": 6.7}, {"alpha": 8}],"stop": "watcher"})The steps it returns show the shape of the job: the mesh chain once, then for each point a
setPointstep that rewrites the freestream on the decomposed fields, a solver step, and a render step, then a strip that puts every point’s view A side by side. -
Follow the mesh. While
snappyHexMeshruns, the summary line names its phase and cell count:snappyHexMesh (4/9) snapping 2.86M cellsIf you pass
expected_cells, a final count more than 3% above it raises thecell_count_leakcheck after meshing, which usually means the surface leaked. -
Watch the first point converge. Use
wait_forwithuntil: "converged". The watcher computes the spread of Cd, Cl and CmPitch over the trailing 200 iterations, and once all three are steady it lowersendTimeso the point ends early. The summary line then ends withconverged, ends at 620(the new end), and the eventsolver.convergedrecords the iteration and the rule. -
Let the second point run. It starts from the first point’s converged fields, so it settles in a fraction of the iterations.
job_statuslists both points with their window means. -
Read the coefficients.
job_coeffswithpoint: 1returns mean, standard deviation, min, max and spread for every column over the trailing window of the alpha 8 point.job_forcessplits the forces by patch group. -
Look at the figures.
job_figureslists one set per point. Ask forfigures/p1/A.pngand Claude reads it through thejob://resource.

What you did
Section titled “What you did”You ran a two-point polar on one mesh, stopped each point on a convergence rule rather than a guessed iteration count, and got figures without opening a desktop. Add points to a finished sweep shows how to fill in a gap later without meshing again.