# rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings- architecture

> Architecture diagram of the GitHub repository rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-
- Repository: https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-

## Overview

This repository supports research on reduced-order seismic design of suspended piping systems. The main workflow is to run an archetype’s 2D equivalent-linear-static pushover, which delegates model and procedure work to shared functions and writes displacement, force, and modal-result rows. Separate archetype-specific SDOF scripts perform nonlinear pushover analyses. Supplied result files and notebooks preserve displacement and displaced-shape outputs for review. The excerpts show the 2D runner’s call and output, but not the notebooks’ data-loading details, so those links are left unspecified.

Main entry points: [`Pushover2D/CS_Lumped_Iter_M30y_cont_PO.py`](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover2D/CS_Lumped_Iter_M30y_cont_PO.py) (Archetype Runner), [`Pushover2D/Functions.py`](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover2D/Functions.py) (Static Procedure), [`Pushover_SDOF/M30y_SDOF.py`](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover_SDOF/M30y_SDOF.py) (SDOF Archetype), [`Pushover2D/pushover_results_M30y.txt`](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover2D/pushover_results_M30y.txt) (Pushover Rows)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_pushover["2D Pushover"]
  node_runner2d["Archetype Runner"]
  node_procedure["Static Procedure<br/>[Functions.py]"]
  node_opensees2d["OpenSeesPy"]
  node_pushoverdata["Pushover Rows"]
end

subgraph group_sdof["SDOF Analysis"]
  node_sdofrunner["SDOF Archetype<br/>[M30y_SDOF.py]"]
  node_openseessdof["OpenSeesPy"]
  node_sdofdata["SDOF Outputs<br/>[DispC.out]"]
end

subgraph group_published["Research Results"]
  node_resultsnotebook["Archetype Results<br/>[M30_biron.ipynb]"]
  node_displacements["Displacement Data"]
  node_shapes["Displaced Shapes"]
  node_peakdata["Peak Displacements"]
end

node_researcher(("Researcher"))

node_researcher -->|"runs archetype"| node_runner2d
node_runner2d -->|"calls procedure"| node_procedure
node_procedure -->|"builds and analyzes"| node_opensees2d
node_runner2d -->|"writes results"| node_pushoverdata
node_researcher -->|"runs archetype"| node_sdofrunner
node_sdofrunner -->|"models and analyzes"| node_openseessdof

click node_runner2d "https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover2D/CS_Lumped_Iter_M30y_cont_PO.py"
click node_procedure "https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover2D/Functions.py"
click node_pushoverdata "https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover2D/pushover_results_M30y.txt"
click node_sdofrunner "https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover_SDOF/M30y_SDOF.py"
click node_sdofdata "https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover_SDOF/ResultsM30y_SDOF/DispC.out"
click node_resultsnotebook "https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Results/M30_biron.ipynb"
click node_displacements "https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Results/M30_biron_DispX.txt"
click node_shapes "https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Results/M30_bironDispShapeX.npy"
click node_peakdata "https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Results/M30_peak_displacements.npy"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_runner2d,node_procedure,node_opensees2d,node_pushoverdata toneBlue
class node_sdofrunner,node_openseessdof,node_sdofdata toneAmber
class node_resultsnotebook,node_displacements,node_shapes,node_peakdata toneMint
class node_researcher toneIndigo
```

## Components

### 2D Pushover

- [Archetype Runner](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover2D/CS_Lumped_Iter_M30y_cont_PO.py): `Pushover2D/CS_Lumped_Iter_M30y_cont_PO.py`
- [Static Procedure](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover2D/Functions.py): `Pushover2D/Functions.py`
- **OpenSeesPy**
- [Pushover Rows](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover2D/pushover_results_M30y.txt): `Pushover2D/pushover_results_M30y.txt`

### SDOF Analysis

- [SDOF Archetype](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover_SDOF/M30y_SDOF.py): `Pushover_SDOF/M30y_SDOF.py`
- **OpenSeesPy**
- [SDOF Outputs](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Pushover_SDOF/ResultsM30y_SDOF/DispC.out): `Pushover_SDOF/ResultsM30y_SDOF/DispC.out`

### Research Results

- [Archetype Results](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Results/M30_biron.ipynb): `Results/M30_biron.ipynb`
- [Displacement Data](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Results/M30_biron_DispX.txt): `Results/M30_biron_DispX.txt`
- [Displaced Shapes](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Results/M30_bironDispShapeX.npy): `Results/M30_bironDispShapeX.npy`
- [Peak Displacements](https://github.com/rmerinovela/a-reduced-order-model-for-performance-based-seismic-design-of-suspended-piping-systems-in-buildings-/blob/main/Results/M30_peak_displacements.npy): `Results/M30_peak_displacements.npy`

### Other components

- **Researcher**

## Connections

- Researcher → Archetype Runner: runs archetype
- Archetype Runner → Static Procedure: calls procedure
- Static Procedure → OpenSeesPy: builds and analyzes
- Archetype Runner → Pushover Rows: writes results
- Researcher → SDOF Archetype: runs archetype
- SDOF Archetype → OpenSeesPy: models and analyzes
