using quoFEM for a 5-story reinforced concrete building...
- silviamazzoni
- Mar 8
- 4 min read
The two example scenarios for EE-UQ and quoFEM were nice, and they showed their strength. However, they were for very different systems, so I asked ChatGPT to give me an example using a 5-story RC building using quoFEM because it had given me such an example using EE-UQ which I showed in a previous blog: Simulate the seismic response of a 5-story reinforced concrete building, considering uncertainty in material properties and ground motion variability.
how would we use quoFEM for the building?
Great choice! Let's go through a step-by-step example of using quoFEM for a 5-story reinforced concrete (RC) building, focusing on uncertainty quantification (UQ) and model calibration.
📌 Problem Statement:
You have a 5-story RC building modeled in OpenSees, and you want to calibrate the material properties (such as concrete strength and damping) using experimental data. The goal is to reduce modeling uncertainty and make the predictions more accurate.
🛠 Step-by-Step Guide: Using quoFEM for UQ & Calibration on a 5-Story RC Building
📌 Step 1: Load Your Structural Model in quoFEM
Open quoFEM and go to the "GI" (General Information) tab.
Enter Project Title (e.g., “5-Story RC Building Calibration”).
Choose Units (e.g., SI or Imperial).
📌 Step 2: Define the Finite Element Model (FEM)
Go to the "FEM" (Finite Element Model) tab.
Select the modeling tool (e.g., OpenSees).
Upload your OpenSees model file (.tcl or .py).
💡 Example OpenSees Model for a 5-Story RC BuildingHere's a simplified OpenSees Tcl script for the building:
model BasicBuilder -ndm 3 -ndf 6
# Define nodes
for {set i 1} {$i <= 5} {incr i} {
node $i 0.0 [expr $i*3.0] 0.0
}
node 0 0.0 0.0 0.0
# Define constraints
fix 0 1 1 1 1 1 1
# Define material properties (to be calibrated)
set fc -4000 ; # Concrete compressive strength (psi)
set fy 60000 ; # Steel yield strength (psi)
set Es 29000000 ; # Steel modulus of elasticity (psi)
# Define elements
element elasticBeamColumn 1 0 1 10 29000000 1000 1
element elasticBeamColumn 2 1 2 10 29000000 1000 1
element elasticBeamColumn 3 2 3 10 29000000 1000 1
element elasticBeamColumn 4 3 4 10 29000000 1000 1
element elasticBeamColumn 5 4 5 10 29000000 1000 1
# Define loading
pattern Plain 1 Linear {
load 5 0.0 -10.0 0.0 0.0 0.0 0.0
}
# Run analysis
system BandGeneral
constraints Plain
numberer RCM
algorithm Linear
integrator LoadControl 1.0
analysis Static
analyze 1
# Get max displacement at top story
recorder Node -file disp.out -time -node 5 -dof 2 disp
📌 In quoFEM, we'll calibrate fc (concrete strength) and fy (steel strength) using real data.
📌 Step 3: Define Random Variables (Uncertainties)
Go to the "RV" (Random Variables) tab.
Define material properties as uncertain parameters:
Concrete Strength (fc) → Normally distributed (mean = -4000 psi, std = 500 psi).
Steel Yield Strength (fy) → Normally distributed (mean = 60000 psi, std = 5000 psi).
Damping Ratio (ξ) → Normally distributed (mean = 5%, std = 1%).
📌 Step 4: Define Experimental Data for Calibration
Go to the "EDP" (Engineering Demand Parameters) tab.
Define output parameters that will be compared with real data, such as:
Maximum Roof Displacement (u_max)
Interstory Drift Ratio (IDR)
Base Shear Force (V_base)
Import experimental data from shaking table tests or real earthquake monitoring:
Story | Measured Displacement (in) ----------------------------------- Roof | 1.5 4th | 1.2 3rd | 0.9 2nd | 0.5 1st | 0.2
📌 Step 5: Select Calibration Method
Go to the "UQ" (Uncertainty Quantification) tab.
Choose "Bayesian Calibration".
Select the algorithm:
Markov Chain Monte Carlo (MCMC) → Finds the best parameter values based on probability.
Gaussian Process Regression (GPR) → Adjusts model based on experimental trends.
Set the number of iterations (e.g., 500 samples).
📌 Step 6: Run the Analysis
Click "RUN" to start the calibration.
quoFEM will:
Modify fc and fy values across different runs.
Compare simulated roof displacement with experimental data.
Adjust material properties to minimize the difference.
📌 Step 7: View & Interpret Results
Go to the "RES" (Results) tab.
Look at the updated material properties after calibration:
Parameter | Initial Guess | Calibrated Value |
Concrete Strength (fc) | -4000 psi | -4200 psi |
Steel Yield Strength (fy) | 60000 psi | 58500 psi |
Damping Ratio (ξ) | 5% | 4.8% |
Compare measured vs. simulated displacements:
Before calibration: Simulated roof displacement = 1.2 in (too low).
After calibration: Simulated roof displacement = 1.48 in (closer to 1.5 in from experiment).
📌 Final Insights
The concrete strength was slightly underestimated, so increasing fc in the model improves accuracy.
The steel yield strength was slightly overestimated, leading to a minor adjustment.
The calibrated model now matches real-world earthquake response better, making it more reliable for future analysis.
🚀 Summary of Key Actions
Step | Action |
Step 1 | Load the 5-story RC building model into quoFEM |
Step 2 | Define structural behavior using OpenSees |
Step 3 | Set uncertainties for concrete & steel properties |
Step 4 | Import experimental data for comparison |
Step 5 | Select Bayesian Calibration for model updating |
Step 6 | Run the simulation |
Step 7 | Analyze calibrated material properties |
🎯 What’s Next?
Want to optimize the building for seismic performance? Try Genetic Algorithm optimization.
Want to predict damage probabilities? Use Reliability Analysis.
Need to analyze multiple ground motions? Integrate with PEER NGA-West2 earthquake records.
Would you like help setting up ground motion uncertainty or damage assessment? 😊
Comments