Skip to content
SHD Sim
Menu
Documentation menu

Draft. This manual is new and still growing. If something here does not match what you see in the software, the software is right — tell us and we will fix the page.

Run a parameter study or a DoE

Vary one or more properties of a case systematically, get one simulation per row of the design, and read the answers back in a table.

Runs on the free tier, but every row is a full mesh and solve and is capped like any other run.

Where

Select Study, at the bottom of the setup tree beside Comparison. It belongs to the case rather than to any simulation in it: it reads the open study, generates a matrix of copies, and is then done. Unlike Comparison it is offered from the start, because it does not need anything to compare yet.

Name what varies

Under WHAT TO VARY, press + Factor and fill in the card:

  • Property — the name of a property of the open study. A dot goes into a nested value, e.g. structural.material.youngsModulus. The dot beside the field is green when the name resolves and red when nothing in the open study is called that.
  • Called and Unit — labels for the results table. The unit is not checked against anything.
  • Values — an explicit list, commas or spaces. Or leave it empty and give From, To and Steps instead; Steps counts values with both ends included, so 5 from 0 to 100 gives 0, 25, 50, 75, 100.

Setting a list clears the range and setting a range clears the list. They are two ways of saying the same thing, and the list wins where both are present.

Choose a design

Under DESIGN, Design offers four:

Design What it does
Full factorial Every combination of every level. Exhaustive, and it explodes.
One factor at a time Each factor moved on its own from the baseline.
Latin hypercube Samples points drawn to cover the factors' ranges.
Sobol sensitivity Variance decomposition: which factors account for the spread.

One factor at a time never moves two factors together, so it cannot show an interaction between them. The pane says so on the page rather than leaving it to be found out. It is the cheap survey: it finds which factors matter at all.

The two sampled designs take ranges rather than levels, and add:

  • Samples. For a Latin hypercube this is the number of runs. For Sobol it is N, the size of each base sample — the design asks for N × (factors + 2) runs, which is not the same number.
  • Seed, saved with the case. The same seed gives the same points on any machine, which is what makes a study's results checkable.
  • Sampled as, per factor: Uniform draws across the range, Normal draws from a Mean and a Std dev and turns the same machinery into uncertainty propagation. A normal factor is sampled by its own tails, so the From/To bounds are not used for it. The discrete designs ignore this entirely — levels have no distribution.

Look before you generate

The box under the design says how many runs the plan asks for and that each one meshes and solves on its own; it turns red past the point limit, and any problem with the plan is listed beneath it in plain sentences. THE RUNS previews the first twenty-four rows and says how many more there are.

That preview is on screen the whole time the plan is being edited on purpose: 17 runs and 170 runs look identical as four numbers on a form and differ by an afternoon of solving.

Press Generate the runs. It reports how many simulations were added. The button stays disabled while any factor names something the open study has not got, and the pane says that is why.

Generating is not cheaply reversible — it adds simulations to the tree and undoing means deleting them one at a time. Check the count first.

Read it back

RESULTS fills in as runs finish rather than waiting for all of them, one row per generated simulation with whatever that family reports as its headline number — a study over a thermal conductivity has no drag coefficient.

THE SPREAD appears for the two sampled designs and waits for every run: a spread over half a sample answers a different question. Judge against a limit turns it into the reliability question — give a Limit and say whether Beyond is Above it or Below it, and it reports what fraction of the plausible inputs put the answer the wrong side of it.

WHICH FACTORS MATTERED appears for a Sobol design once the whole design has finished, and gives each factor's share of the spread on its own and with interactions. Equal means the factor acts independently; a large gap means it only matters alongside another one, which is the finding no one-factor-at-a-time study can make.

Search instead of sweeping

OPTIMISE, further down the same pane, runs the same factors through a search rather than a matrix: one simulation per evaluation, moving towards the best headline result. Every factor needs a From and a To, and the search stays inside them.

  • GoalMinimise the result or Maximise the result.
  • Budget — the most runs the search may spend. Each one is a mesh and a solve, so it is a cost ceiling rather than a quality knob.
  • Start the search, and Stop while it is running.

The line under the buttons counts evaluations against the budget, names the phase, and gives the best value so far and the factor values that produced it.

From the command line

The same designs, for a scripted or CI run:

--sweep=incidenceAlpha:-4,0,4          one simulation per value
--study=factorial:a=1,2;b=3,4          every combination
--study=ofat:a=1,2,3;b=4,5             one factor at a time
--study=lhs:8:a=0..10;b=1..5           Latin hypercube, 8 samples
--study=sobol:64:a=0..10;b=1..5        Sobol, 64 x (factors + 2) runs
--study-out=<file.csv>                 write the design matrix out

.. is a range and a comma is a list; /n after a range gives its step count.

Check it worked

  • The count in the box matches the number of simulations that appeared in the tree.
  • Every generated simulation shows an outcome rather than not run in RESULTS and in Comparison.
  • For a Sobol study, the first-order and total indices are reported against the whole design — a partial design gives numbers that are noise.