Skip to content

Worked examples

The repository contains calibration drivers that can be copied and adapted. Run them from the repository root and keep the Windows multiprocessing guard in place.

BMU sand: Hardening Soil

The four optimiser examples use the same BMU sand workbook and the same eight free parameters. This makes their evaluation counts and final fits directly comparable.

Optimiser When to use it Source
DEEM broad global search when the starting parameters are uncertain view the driver
IPOP-CMA-ES rugged continuous calibration with strongly coupled parameters view the driver
SMAC-style search global search with a strict limit on numgeo evaluations view the driver
Local pattern search deterministic refinement from a credible parameter set view the driver

Save the supplied workbook as example/calibration/database-kfs-monotonic-cyclic.xlsx. It is kept as one shared file rather than copied for every algorithm. Launch one example as a module from the repository root:

.venv\Scripts\python -m example.calibration.hardening_soil_deem
.venv\Scripts\python -m example.calibration.hardening_soil_cmaes
.venv\Scripts\python -m example.calibration.hardening_soil_smac
.venv\Scripts\python -m example.calibration.hardening_soil_local
.venv/bin/python -m example.calibration.hardening_soil_deem
.venv/bin/python -m example.calibration.hardening_soil_cmaes
.venv/bin/python -m example.calibration.hardening_soil_smac
.venv/bin/python -m example.calibration.hardening_soil_local

Run one driver at a time. Each script has its own result directory. The shared setup is kept in _hardening_soil_bmu.py; change the parameter bounds or test selection there when comparing the algorithms on another problem.

Why the examples select monotonic tests

The workbook also contains cyclic records, but these examples deliberately pass the available oedometric, drained triaxial and undrained triaxial lists to globals.setup. These monotonic paths directly identify the primary loading, unloading/reloading, stress-level, strength and dilatancy response used by the Hardening Soil family. Merely storing another sheet in the workbook does not add it to the objective: a test contributes only when its reader list is passed to setup.

The examples vary E50, Eoed, Eur, m, phi, psi, K0nc and Eiref. The remaining parameters stay fixed at the values listed in the shared setup. See the model guidance before changing the parameter set.

Illustrative bounds are not universal

The example bounds are suitable starting intervals for this dataset, not general recommendations for every sand. Check parameter units, stress units, initial states and model constraints before running a large budget.

Hypoplastic and HCA examples

Additional research examples are kept in the repository's example directory, including monotonic and cyclic Hypo-IGS/Hypo-ISA drivers and an HCA-Sand driver. Some are retained to reproduce earlier studies; use the Quickstart for the recommended imports, setup and the Windows main guard when adapting them.

The repository also contains a Hardening Soil Bricks driver for the small-strain extension: view the driver.

Before optimisation, change the final call in a copied driver to:

DEEM.optimize(method="no_optimization")

Review the simulation plots, then restore the optimiser call. A successful single pass verifies the workbook, model, solver path and output location while using only one parameter set.