MATLAB Implementation of the IOPER Methodology (Inverse-Optimized Pushover with Energy Redistribution)
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
Funders
- Agencia Nacional de Investigación e InnovaciónMontevideo Department, MontevideoGrant ID: POSNAC20221173763