Monte Carlo (metered)
simulate_monte_carloRun a multi-trial Monte Carlo tolerance analysis entirely server-side. Randomizes component tolerances (supporting Uniform, Gaussian, or Bimodal distributions; draws are clamped to each property's registry min/max bounds) and simulates circuit yield, statistical distributions of voltages/currents/powers/temperatures, and worst-case thermal violation rates. Result carries seed (replay it for a byte-identical run), failedTrials (thrown trials — counted and excluded from trials and every statistic), unconvergedTrials (informational). Percentiles (median/p99/p1) use the nearest-rank method. A design containing a node type this build does not recognize is refused with an error rather than simulated as zeros. Each run counts against the account's monthly Monte Carlo quota, like a run from the editor; get_account_usage shows what is left. BY DEFAULT THE RESULT IS A DIGEST, not the trials: the run counts, summary (system power and efficiency percentiles, thermal violation rate, protection trips) and nodeStats — for every node, min / mean / max / p1 / p99 of voltage, current, power and temperature across the trials, and how many trials broke that node's thermal limit. The per-trial array is omitted because it is about 3 KB per trial for a fifteen-node design — a default 1000-trial run is 3.5 MB, more than a client can read. Pass includeTrials: true only when you need the per-trial inputs (keyed "::") for sensitivity analysis, and keep options.trials at 50 or fewer when you do.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Optional Monte Carlo settings. | |
| designId | No | A saved design's id from create_design or list_designs — needs the signed-in account. Give this or `designJson`. | |
| designJson | No | Full circuit design JSON (Sheet.serialize() format; design schema v1 at https://electronics-architect.com/schema/design-v1.json — SI base units, numbers not strings). Give this or `designId`. | |
| includeTrials | No | Also return the raw per-trial array (nodes, inputs, violations per trial). Default false — it is large, so keep options.trials small when you set this. |