RunMat
GitHub

Finite element analysis in RunMat

FEA: Run Math on Geometry.

Bring CAD or mesh geometry into RunMat, define physics in .fea files or MATLAB-syntax code, validate the study before solving, inspect the result, and use an agent that can see the project, runtime, plots, and artifacts.

.fea or .m
check before solve
artifacts and provenance

The FEA workflow in one project

RunMat keeps geometry, code, study definitions, diagnostics, artifacts, post-processing, and agent changes in the same engineering loop.

01

Bring in geometry

Open CAD or mesh geometry and keep the source asset, units, revision, and import metadata attached to the study.

02

Inspect regions

Review bodies, faces, named regions, bounds, statistics, and visual evidence before assigning physics.

03

Define physics

Use a .fea study file or MATLAB-syntax code to assign domains, materials, loads, constraints, and analysis steps.

04

Check the model

Run static validation before a solve so missing selectors, invalid properties, and unsupported combinations are caught early.

05

Solve and sweep

Run one study, a named project entrypoint, or a parameter sweep from Desktop, CLI, CI, or the runtime API.

06

Trust the result

Inspect fields, convergence, diagnostics, quality gates, backend metadata, provenance, and artifacts from the same project.

Define studies as files or as code.

Use a .fea YAML study when you want a portable, reviewable definition. Use MATLAB-syntax code when model construction belongs inside a larger computation, sweep, notebook, or post-processing workflow.

bracket.fea

name: bracket_static_load
geometry:
  source: ./geometry/bracket.step
  units: mm

materials:
  aluminum_6061:
    youngs_modulus: 68.9e9
    poissons_ratio: 0.33
    density: 2700

model:
  physics: structural.static
  domains:
    - region: solid_body
      material: aluminum_6061
  boundary_conditions:
    - region: mounting_faces
      fixed: true
  loads:
    - region: load_pad
      force: [0, -1250, 0]

solve:
  mesh: standard
  outputs:
    - displacement
    - von_mises_stress

run_bracket.m

geometry = geometry.load("./geometry/bracket.step", "units", "mm");
regions = geometry.regions(geometry);

study = fea.study("bracket_static_load", ...
  "geometry", geometry, ...
  "physics", "structural.static");

study = fea.material(study, "aluminum_6061", ...
  "youngs_modulus", 68.9e9, ...
  "poissons_ratio", 0.33, ...
  "density", 2700);

study = fea.domain(study, "solid_body", "aluminum_6061");
study = fea.fixed(study, "mounting_faces");
study = fea.force(study, "load_pad", [0 -1250 0]);

result = fea.run(study);
fea.plot(result, "von_mises_stress");

Designed around the hard parts of FEA

Most failures happen before or after the solver: geometry ambiguity, invalid assignments, missing evidence, and slow iteration.

I have CAD, but I do not know what is usable for a study.

Load the geometry into a structured asset, inspect regions and metadata, and keep visual evidence beside the source file.

Boundary conditions are fragile because region names and selectors are hidden.

Make selectors explicit in the study, validate them before solving, and surface missing or ambiguous regions as diagnostics.

Setup errors burn solver time.

Use runmat check to validate geometry, materials, loads, constraints, solver settings, artifact paths, and entrypoints first.

The solve result is hard to trust.

Attach convergence, diagnostics, backend metadata, quality gates, provenance, and validation evidence to the result.

Iteration is slow once the first solve works.

Run sweeps, compare variants, post-process fields, and ask the agent to modify studies while keeping changes reviewable.

Trust and post-processing

Results are available for engineering work, not just viewing.

Study outputs are available as fields, diagnostics, figures, tables, and artifacts that can be inspected in Desktop, consumed from MATLAB-syntax code, replayed from run history, or referenced from a notebook.

Start with the workflow.

Learn the study format, check command, geometry selectors, supported physics families, validation evidence, and runtime operation contracts.