6.10. Incremental Dynamic Analysis

modeller.do_ida_analysis(fnames, dt_gm, t_max, dt_ansys, target_drift=0.05, initial_sf=0.1, hunt_step=2.0, max_fill_gap=0.2, max_runs=15, capping_drift=0.10, xi=0.05, pFlag=False)[source]

Performs Incremental Dynamic Analysis (IDA) using the ‘Hunt, Trace and Fill’ algorithm as per Vamvatsikos and Cornell (2002, 2004).

The algorithm first ‘hunts’ for the collapse capacity by increasing the scale factor (SF) geometrically. Once collapse or the target drift is reached, it ‘traces’ back with smaller steps for the scaling factor and ‘fills’ the gaps between successful runs to refine the IDA curve.

Parameters:
  • fnames (list) – List of file paths to the ground motion records for each direction.

  • dt_gm (float) – Time-step of the ground motion records.

  • t_max (float) – The maximum time duration for each individual analysis run.

  • dt_ansys (float) – The integration time-step at which the structural analysis will be conducted.

  • target_drift (float, optional, default=0.05) – The drift ratio threshold considered as structural collapse (e.g., 5%).

  • initial_sf (float, optional, default=0.1) – The starting scale factor for the first simulation run.

  • hunt_step (float, optional, default=2.0) – The geometric multiplier used to increase the scale factor during the ‘Hunt’ phase.

  • max_fill_gap (float, optional, default=0.2) – The maximum allowable gap between scale factors. If a gap is larger, the ‘Fill’ phase will bisect it.

  • max_runs (int, optional, default=15) – Maximum total number of nonlinear time-history simulations allowed.

  • capping_drift (float, optional, default=0.10) – The drift value assigned to failed or collapsed runs for visualization (flatlining).

  • xi (float, optional, default=0.05) – The damping ratio used in the analysis (default is 5%).

Returns:

  • ida_data (dict) – A dictionary where keys are scale factors and values are dictionaries containing results (peak drift, acceleration, convergence state, etc.) for that run.

  • ordered_sfs (list) – A list of all scale factors tested, in the order they were executed.

Note

The current method assumes the acceleration time-history is in m/s2. Therefore, the acceleration values are multiplied by a factor of g.

References

[1] Vamvatsikos, D. and Cornell, C.A. (2002), Incremental

dynamic analysis. Earthquake Engng. Struct. Dyn., 31: 491-514. https://doi.org/10.1002/eqe.141

[2] Vamvatsikos D, Cornell CA. Applied Incremental Dynamic

Analysis. Earthquake Spectra. 2004;20(2):523-553. doi:10.1193/1.1737737

Theoretical Background

Incremental dynamic analysis (IDA) repeats the nonlinear time-history analysis of one ground-motion record at increasing scale factors (SF) to trace the IM–EDP curve up to collapse (Vamvatsikos and Cornell, 2002). To limit the number of runs, the method uses the Hunt, Trace and Fill algorithm (Vamvatsikos and Cornell, 2004):

  1. Hunt: starting from initial_sf, the SF is multiplied by hunt_step until the peak drift reaches target_drift or the run collapses.

  2. Trace: the SF is then reduced in smaller steps, back towards the last non-collapsing level, to locate the collapse capacity.

  3. Fill: gaps between successful runs larger than max_fill_gap are bisected until the curve is resolved or max_runs is reached.

Runs that fail to converge or collapse are assigned capping_drift so the IDA curve flatlines for visualisation. The method returns one result dictionary per scale factor (keys such as 'peak_drift', 'peak_accel' and 'conv_index') and the list of scale factors in the order they were run; these are the inputs to postprocessor.process_ida_results.

Example

m.compile_model()
m.do_gravity_analysis()
record_ida_results, ordered_sfs = m.do_ida_analysis(
    fnames=["openquake/vmtk/tests/test_data/acceleration.txt"],
    dt_gm=0.005,
    t_max=30.0,
    dt_ansys=0.005,
    target_drift=0.05,
    initial_sf=0.1,
    hunt_step=2.0,
    max_fill_gap=0.2,
    max_runs=15,
    xi=0.05,
)
for sf in sorted(record_ida_results):
    print(sf, record_ida_results[sf]["conv_index"])

6.10.1. References

  1. Vamvatsikos, D. and Cornell, C.A. (2002). “Incremental dynamic analysis”, Earthquake Engineering & Structural Dynamics, 31(3), 491–514. https://doi.org/10.1002/eqe.141

  2. Vamvatsikos, D. and Cornell, C.A. (2004). “Applied incremental dynamic analysis”, Earthquake Spectra, 20(2), 523–553. https://doi.org/10.1193/1.1737737