Simulation, FEA & CFD

Ansys Workbench, Simulia Abaqus — discretize geometry, assign materials and boundary conditions, solve, and extract results. SET PROMISE / WAIT FOR is the same async pattern as FETCH — a real solve runs minutes to hours, so it was never going to be a blocking call.

Static Structural — Bracket Under Load
CAD ?bracket FACE AT 0,20,5 SET ?mountFace
AFTER CAD ?bracket FACE AT 80,20,5 SET ?loadFace

SIM MESH ?bracket ELEMENT TYPE "tet10" SIZE 2 SET ?femesh
NEW SIM MATERIAL "Steel-4140" YOUNGS MODULUS 205000 POISSON RATIO 0.29 DENSITY 7850 YIELD STRENGTH 415 SET ?steel
AFTER SIM ?femesh ASSIGN MATERIAL ?steel
AFTER SIM ?femesh FIXED SUPPORT ON FACE ?mountFace
AFTER SIM ?femesh FORCE 0,0,-500 ON FACE ?loadFace

NEW SIM STUDY "static_structural" ON ?femesh SET ?study
AFTER SIM ?study SOLVE SET PROMISE ?results
AFTER WAIT FOR ?results SET ?solution
AFTER SIM ?solution SAFETY FACTOR SET ?fos
AFTER SIM ?solution EXTRACT STRESS "von_mises" SET ?stress
AFTER SIM ?solution CONTOUR PLOT ?stress SCALE "rainbow" SET ?stressImage
CFD — Drag on a Car Body
SIM MESH ?car ELEMENT TYPE "tet10" SIZE 5 SET ?femesh
AFTER SIM ?femesh REFINE REGION ?carSurface FACTOR 4
NEW SIM FLUID "Air" DENSITY 1.225 VISCOSITY 0.0000181 SET ?air
AFTER SIM ?femesh ASSIGN FLUID ?air
AFTER SIM ?femesh VELOCITY INLET 30,0,0 ON FACE ?inletFace
AFTER SIM ?femesh PRESSURE OUTLET 0 ON FACE ?outletFace
AFTER SIM ?femesh NO SLIP WALL ON FACE ?carSurface

NEW SIM STUDY "cfd_steady" ON ?femesh TURBULENCE MODEL "k_epsilon" SET ?study
AFTER SIM ?study SOLVE SET PROMISE ?results
AFTER WAIT FOR ?results SET ?solution
AFTER SIM ?solution EXTRACT DRAG FORCE ON FACE ?carSurface SET ?drag
AFTER SIM ?solution EXTRACT STREAMLINES SET ?viz
Explicit Dynamics — Bumper Impact
SIM MESH ?bumper ELEMENT TYPE "shell" SIZE 5 SET ?femesh
AFTER SIM ?femesh ASSIGN MATERIAL ?steel
AFTER SIM ?femesh INITIAL VELOCITY -15,0,0
AFTER SIM ?femesh CONTACT BETWEEN ?bumperFace AND ?barrierFace FRICTION 0.2

NEW SIM STUDY "explicit_dynamics" ON ?femesh DURATION 0.05 SET ?study
AFTER SIM ?study SOLVE SET PROMISE ?results
AFTER WAIT FOR ?results SET ?solution
AFTER SIM ?solution EXTRACT PLASTIC STRAIN SET ?strain
AFTER SIM ?solution EXTRACT ENERGY "kinetic" HISTORY SET ?keCurve

Saving a Study and Its Results

A solve runs for minutes or hours, so neither the study nor what it produced should die with the script that started it. SAVE INTO writes either one as native OcaltQL source text, the canonical stored form described on Arrays & Objects; OPEN reads it back. The saved file is readable and hand-editable — a study is its mesh reference, materials and boundary conditions, not bulk geometry.

Set Up Once, Solve Later
NEW SIM STUDY "static_structural" ON ?femesh SET ?study
AFTER SIM ?femesh FIXED SUPPORT ON FACE ?mountFace
AFTER SIM ?femesh FORCE 0,0,-500 ON FACE ?loadFace
AFTER SIM ?study SAVE INTO "/root/studies/bracket.oql" SET ?path

(* ...a later script, or a scheduled job... *)

SIM OPEN "/root/studies/bracket.oql" SET ?study
AFTER SIM ?study SOLVE SET PROMISE ?results
AFTER WAIT FOR ?results SET ?solution
AFTER SIM ?solution SAVE INTO "/root/results/bracket.oql" SET ?respath
Re-Examine a Finished Solve Without Re-Solving
SIM RESULTS OPEN "/root/results/bracket.oql" SET ?solution
AFTER SIM ?solution SAFETY FACTOR SET ?fos
AFTER SIM ?solution EXTRACT STRESS "von_mises" SET ?stress
AFTER SIM ?solution CONTOUR PLOT ?stress SCALE "rainbow" SET ?stressImage
SIM OPEN reads a study; SIM RESULTS OPEN reads a solved solution. They are separate because a study can be re-solved and a solution cannot — opening the wrong one is an error rather than a silent reinterpretation.