Weighting of tests¶
When a calibration honours several tests — and several quantities within each
test — numgeo-ACT needs to know how to balance them. This is controlled by a
weights structure: a nested dictionary that assigns a weight to each test
type and to each compared quantity within it. Sensible defaults are used unless
you pass your own via the Weights argument of
globals.setup.
Two levels of weighting¶
-
Global level — splits the total weight between monotonic and cyclic behaviour. By default each receives one half:
Group Default weight monotonic0.5 cyclic0.5 -
Per-test level — within each test type, weights distribute the importance across the individual curves/quantities being compared (these must sum to 1).
Default per-test weights¶
The defaults below are what numgeo-ACT uses if you do not supply your own. They reflect typical good practice; adjust them to emphasize the behaviour most relevant to your application.
| Key | Default | Meaning |
|---|---|---|
eps1-q |
⅔ | axial strain vs. deviatoric stress |
eps1-epsV |
⅓ | axial strain vs. volumetric strain |
penalty-peak-q-eps1 |
0 | penalty on the deviatoric-stress peak |
cutoff-triaxCD-expdata-after-max-q |
True |
ignore experimental data after peak \(q\) |
| Key | Default | Meaning |
|---|---|---|
eps1-q |
½ | axial strain vs. deviatoric stress |
eps1-p |
½ | axial strain vs. mean stress |
p-eta |
0 | stress ratio vs. mean stress |
| Key | Default | Meaning |
|---|---|---|
p-q |
0 | stress path |
eps1-q |
0 | stress–strain |
N-pw |
½ | pore pressure vs. cycles |
N-eps1 |
0 | axial strain vs. cycles |
pmin |
½ | minimum mean pressure |
Nru |
0 | cycles to a pore-pressure ratio |
penalty-hull |
1000 | penalty for leaving the admissible region |
Nru_Factor |
0.8 | pore-pressure-ratio level (e.g. \(N_{80}\)) |
penalty-critical-state-line |
0 | penalty relative to the CSL |
| Key | Default | Meaning |
|---|---|---|
N-eps1_acc |
0 | accumulated axial strain vs. cycles |
N-eps_acc |
1 | accumulated total strain vs. cycles |
N-epsv_acc |
0 | accumulated volumetric strain vs. cycles |
N-epsq_acc |
0 | accumulated deviatoric strain vs. cycles |
N-pw_acc |
0 | accumulated pore pressure vs. cycles |
N-eps_ampl |
0 | strain amplitude vs. cycles |
| Key | Default | Meaning |
|---|---|---|
N-eps1_acc |
0 | accumulated axial strain vs. cycles |
N-eps_acc |
0 | accumulated total strain vs. cycles |
N-epsv_acc |
0 | accumulated volumetric strain vs. cycles |
N-epsq_acc |
0 | accumulated deviatoric strain vs. cycles |
N-pw_acc |
1 | accumulated pore pressure vs. cycles |
N-eps_ampl |
0 | strain amplitude vs. cycles |
| Key | Default | Meaning |
|---|---|---|
N-ru |
1 | pore-pressure ratio vs. cycles |
N-gamma, N-tau, N-stressN, N-strainDA, N-ru_acc, gamma-tau, stressN-tau, stressN |
0 | further optional planes |
penalty-critical-state-line |
0 | penalty relative to the CSL |
Scaling
A global switch scale_max_min (default True) scales the compared planes
to a common range for the triaxial and cyclic test types, so quantities of
different magnitude contribute comparably to the objective.
Validation¶
Before a calibration runs, the weights are validated: for each active test type the relevant per-quantity weights must sum to 1 (a small tolerance is allowed). If they do not, numgeo-ACT reports which test's weights are inconsistent and stops — so a misconfigured weighting is caught immediately rather than silently skewing the result.
Customizing the weights¶
Start from the defaults and adjust only what you need:
from ACT.utilities import weights
w = weights.initialize() # nested dict with the defaults above
# emphasize the volumetric response in drained triaxial tests
w["triaxCD"]["eps1-q"] = 1./2.
w["triaxCD"]["eps1-epsV"] = 1./2. # the two must still sum to 1
# shift the global balance towards cyclic behaviour
w["global"]["monotonic"] = 0.4
w["global"]["cyclic"] = 0.6
globals.setup(..., Weights=w)
Turn quantities on and off
Setting a per-quantity weight to 0 removes that curve from the objective;
giving it a larger share emphasizes it. This is how you tell the optimizer
what matters for your material and application — for instance weighting
pore-pressure accumulation heavily when calibrating for liquefaction.