4.3. Efficiency — Incremental Dynamic Analysis

imselection.compute_efficiency_ida(ida_dict, ds_index=0)[source]

Classic efficiency βD|IM from an Incremental Dynamic Analysis result.

Uses the record-to-record dispersion of the fragility curve at the specified damage state.

Parameters:
  • ida_dict (dict) – Output of postprocessor.process_ida_results.

  • ds_index (int, optional) – Damage-state index (0 = first / least severe). Default 0.

Returns:

  • dict with keys

  • * 'beta_D_given_IM' — sigma_record2record at damage state ds_index

  • * 'method''IDA'

Theoretical Background

For IDA, efficiency is quantified by the dispersion of IM capacities across records at a given damage state (Shome & Cornell, 1999).

Definition

Given the IM capacity \(C_i^{(r)}\) of record \(r\) for damage state \(i\), the efficiency is the logarithmic standard deviation of those capacities:

\[\beta_{D|IM} = \sqrt{ \frac{1}{N-1} \sum_{r=1}^{N} \bigl(\ln C_i^{(r)} - \overline{\ln C_i}\bigr)^2 }\]

where \(\overline{\ln C_i} = \frac{1}{N}\sum_{r=1}^{N} \ln C_i^{(r)}\).

A smaller dispersion indicates that records scaled to the same IM level produce similar structural capacities — i.e. the IM is a more efficient predictor of structural performance.

Example

from openquake.vmtk.imselection import imselection

ims = imselection()
# ida_dict is the output of postprocessor.process_ida_results()
result = ims.compute_efficiency_ida(ida_dict)
print(f"Efficiency (beta_D|IM) = {result['efficiency']:.4f}")