Skip to main content
Steady-state simulation solves the graph once and returns a single value for every output port. Use it to answer questions like “at this supply voltage and load current, what does the system do?”

Basic run

SimulationDomain.STEADY_STATE is the default domain. You can omit config for simple runs:

Parameter sweeps

Run the engine repeatedly with different external inputs to sweep parameters:

Reading results

To attach this snapshot to a cloud-saved graph for the dashboard RESULTS tab, see Saving Graphs.

Fault-aware components

DCMotor and LiPoCell emit runtime diagnostics when limits are exceeded. Check health and fault_code output ports, or filter result.get_faults().

How execution works

engine.run() calls graph.topological_order() to get a safe evaluation sequence, then for each component:
  1. Collects input values from upstream outputs, the inputs dict, or port defaults
  2. Calls the component solver and runs post_solve_diagnostics()
  3. Applies fault output degradation if the component is faulted
  4. Stores outputs for downstream components
ODE components in steady-state use their algebraic solve() fallback (not the frozen ODE integrator state). The result object wraps this output dict so you can query by (instance_id, port_name).

Next steps

Component Faults

Runtime warnings, faults, and health output ports

Transient Simulation

Step through time and collect time-series data

Solvers

Formula, ODE, lookup table, and ML solvers