thermal_transient_submit
Submit asynchronous transient thermal FEM jobs via Elmer for analytic slabs, FreeCAD solids, or prepared cases; poll for temperatures.
Instructions
Transient thermal FEM via Elmer, asynchronous. Requires ElmerSolver (apt
elmerfem-csc / conda); when absent this returns {ok:false, reason, install}
rather than raising. Three modes:
Build the analytic-slab case (no solver case prep needed): pass the plane-wall transient —
half_thickness_mm,h_conv(W/m²K),duration_s, and eitherk+rho+cp(SI) or amaterialname, with optionalt_initial_c/t_ambient_cand mesh/step countsn_elements/n_steps. The handler writes the 1-D conduction case (symmetry at the centre, convection at the surface), runs ElmerSolver, and returns the centre/surface temperatures — the same plane-wall BVPthermal_transient_1dsolves analytically, so the two are directly comparable (the kickoff's relative gate).Solve a real FreeCAD solid — the geometry bridge: pass a
bodyhandle plusconvection_faces(1-based indices into the solid's faces; those faces get theh_conv/t_ambient_cconvective BC, every other face is adiabatic), the physics (h_conv,duration_s,k+rho+cpormaterial), and an optionalchar_length_mmGmsh element size andelement_order('1st'|'2nd'). The solid is Gmsh-meshed and solved as a true 3-D body (ElmerGrid + ElmerSolver); the result's {t_max_c, t_min_c} are the interior/convective-surface temperatures (for a slab-like body, directly gateable against thermal_transient_1d). Preferelement_order='2nd'for a sharp transient — quadratic tets resolve the wall gradient accurately even on a coarse mesh.Run a prepared
case_dircontaining its own.sif+ mesh.
Returns the degradation dict, or {job_id, status, cache_hit}; poll job_result for {ok, returncode, solver, case_dir, stdout_tail} plus, for the slab case, {t_center_c, t_surface_c, n_steps_written}, for a body {t_max_c, t_min_c, nodes, tets} (or {scalars_final} for a prepared case).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | ||
| cp | No | ||
| rho | No | ||
| sif | No | case.sif | |
| body | No | ||
| h_conv | No | ||
| n_steps | No | ||
| case_dir | No | ||
| material | No | ||
| duration_s | No | ||
| n_elements | No | ||
| t_ambient_c | No | ||
| t_initial_c | No | ||
| element_order | No | ||
| char_length_mm | No | ||
| convection_faces | No | ||
| half_thickness_mm | No |