FEM Run Submit
fem_run_submitRun a CalculiX simulation asynchronously to avoid blocking the channel: write input, start solver in background, then poll job_status until 'done' and retrieve results with fem_results.
Instructions
Run the CalculiX solver on an analysis OFF the MCP channel — the submit→poll form of fem_run, for solves long enough to stall the channel (see fem_run for which to use).
The solver input is written before this returns, so a missing solver, material or mesh fails here, synchronously, exactly as fem_run would. ccx then runs in the background. Poll job_status: once ccx exits, the results are imported into the analysis on your NEXT poll (FreeCAD work runs on the worker's main thread, which a poll gives a turn) — so keep polling until status is 'done'; a job nobody polls never finishes. A ccx error fails the job with its *ERROR lines.
When done, read results with fem_results / fem_result_probe / fem_modal_results /
fem_buckling_results / fem_thermal_results passing either analysis or this
job_id (don't job_result(discard=True) first if you plan to use the job_id).
While the job runs, fem_run or another submit on the same analysis or workdir is
refused. Returns {job_id, status, cache_hit}; job_result's result is fem_run's
return dict.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| workdir | No | ||
| analysis | Yes |