MATLAB Implementation of the IOPER Methodology (Inverse-Optimized Pushover with Energy Redistribution)

Published: 18 August 2026| Version 1 | DOI: 10.17632/hdtww83j5b.1
Contributor:

Description

This dataset contains the MATLAB script implementing the IOPER quasi-adaptive pushover methodology, including energy redistribution logic, residual rigidity coefficients, and modal preprocessing steps.

Files

Steps to reproduce

1. Prepare the SeismoStruct output files Run a nonlinear static analysis (pushover) in SeismoStruct and export: baseshear.txt — global base shear vs. displacement curve for Run 1 baseshear_corrida2.txt — global base shear for Run 2 nivelX_nodoY.txt files — nodal displacement histories for each story and node Each file must contain at least two columns: step index and displacement The first 7 header lines are skipped by the script Place all files inside a folder named: curvas_histereticas/ 2. Run the MATLAB script Execute the provided MATLAB script (IOPER_script.m). The script automatically: loads the global pushover curve, reads all nodal displacement files, computes hysteretic energy per node using trapezoidal integration, aggregates energy by story, computes residual rigidity coefficients using the logarithmic law 𝛼 𝑖 = 1 1 + log ⁡ ( 1 + 𝐸 𝑑 , 𝑖 / 𝐸 max ⁡ ) generates the IOPER lateral force vector 𝐹 𝑖 = 𝐸 𝑑 , 𝑖   𝛼 𝑖 max ⁡ ( 𝐸 𝑑   𝛼 ) 3. Outputs generated automatically The script produces: alpha1.txt — residual rigidity coefficients for Run 1 vector_corrida2.txt — IOPER lateral force vector for Run 1 alpha2.txt — residual rigidity coefficients for Run 2 vector_corrida3.txt — IOPER lateral force vector for Run 2 These files can be directly used as input load patterns in SeismoStruct or any other pushover-capable solver. 4. Visualizations The script generates several figures: residual rigidity profiles per story, comparison of IOPER vectors between runs, comparison between logarithmic, linear, and square-root stiffness laws, comparison of lateral load vectors, energy dissipated per story (MN·m), elevation-based visualization of lateral force patterns. These plots allow verification of: correct energy aggregation, correct computation of αᵢ, correct normalization of the IOPER vector, consistency between runs. 5. Reproducing the full IOPER workflow To reproduce the quasi-adaptive IOPER procedure: Run pushover analysis in SeismoStruct (Run 1). Export all required files. Run the MATLAB script → obtain vector_corrida2.txt. Use vector_corrida2.txt as the load pattern for Run 2. Export Run 2 results. Run the MATLAB script again → obtain vector_corrida3.txt. Compare Run 1 and Run 2 profiles using the generated plots. Optionally compare with uniform, triangular, and mode‑1 patterns. This reproduces the full quasi-adaptive redistribution logic described in the manuscript. 6. File structure required Código curvas_histereticas/ │– baseshear.txt │– baseshear_corrida2.txt │– nivel01_nodo01.txt │– nivel01_nodo02.txt │– nivel02_nodo01.txt │– ... │– nivel12_nodo05_corrida2.txt 7. MATLAB version The script is compatible with: MATLAB R2018a or later No toolboxes required

Categories

Civil Engineering, Earthquake Engineering, Structural Analysis

Funders

Licence