Skip to content

Get the results out

The rule of thumb: reduce on the server, move only small files through the client. Every byte get_job_file returns passes through the model’s context as base64, so it suits files of a few kilobytes.

job_coeffs returns mean, standard deviation, min, max and spread for every column of a function object’s .dat file over the trailing window:

job_coeffs({"job_id": "flight-a6.7-b0-coarse-200a7882", "last_n": 200, "point": 1})

It reads coeffs by default; pass function_object and file for any other, such as forces_wing and force.dat. A relative spread is reported only when the mean is clearly away from zero.

job_forces gives each patch group’s force and moment, in newtons and newton-metres:

  • Forces come as drag, lift and side force, projected on the directions the forceCoeffs object recorded for that point, plus each group’s share of the drag.
  • Moments come as pitch, roll and yaw about the centre of rotation, projected on the same object’s axes. Pitch is nose-up positive, the same sign as CmPitch.
  • A check block compares the summed drag and pitch moment against Cd and CmPitch times the reference scales. It must agree within a few percent, or the axes are wrong.

job_archive writes a .tar.gz inside the job directory:

job_archive({"job_id": "...", "include": ["postProcessing/coeffs", "postProcessing/forces_wing", "log.simpleFoam"]})

By default it packs the coefficient and force tables, solverInfo, the logs, case.json and system/. Surface samples are hundreds of megabytes and go in only when named.

Size Route
a few KB get_job_file(job_id, rel_path), base64 in slices
text tables the resource job://<job_id>/postProcessing/<fo>/<file>
images job://<job_id>/figures/<set>/<file>
anything, from a remote host GET /jobs/<job_id>/files/<path> on the HTTP server, or rsync from the jobs directory

job_files lists what a job has, with sizes, before you choose.