Reliabibility analysis for snow load and wind load by using US, Canadian, and gamma process models
This repository contains programs to perform reliability analysis for snow load and wind load based on US, Canadian, and gamma process models. Code is composed of R scripts and C++ source files.
git clone https://github.com/yyang97/Multimodel-Reliability.git
cd Multimodel-Reliability/src
make all
cd ..
The MCMC draws for US model, Canadian mode and Gamma process model are provdied in US_theta.csv, Can_theta.csv and GP-theta.RData, respectively. All contain 500 parameters draws.
We set up three load profiles: snow load in Vancouver, snow load in Quebec City and wind load (in Halifax).
Reliability analysis is performed by the compiled C++ programs 'USADM_snow_Van', 'USADM_snow_Queb', 'USADM_wind'
Example:
./USADM_snow_Van US_theta.csv 1.2
Using the values of theta listed in "US_theta.csv", this program will estimate the probability of failure after 50 years based on a large number of replications with the snow load in Vancouver profile using phi=1.2.
General usage:
USADM theta_file_name phi
- The parameter vectors to use for reliability analysis are supplied via theta_file_name, usually the output of the parameter estimation done in model fitting above. The thetas will then be used to solve the US ADM for time-to-failure T_f and probability of failure P_f. T_f and P_f for each theta will be written into files with suffix “csv”.
- Output files: probability of failure with and without DOL effect.
There are some additional parameters in USADM (solveUSODE_snow_Van.cpp, solveUSODE_snow_Queb.cpp, solveUSODE_wind.cpp) that can be modified:
- n_per_theta: number of load profile replications to use for estimation of P_f. Default is 100000.
- t_end: reference timeframe (in hours). Default is 50 years.
- dt: time-step used for numerical integration. Default is 100 hours.
We only provide one example for snow load in Quebec City and wind load as all the other settings are similiar.
Example:
./USADM_snow_Queb US_theta.csv 1.2
Using the values of theta listed in "US_theta.csv", this program will estimate the probability of failure after 50 years based on a large number of replications with the snow load in Quebec City using phi=1.2.
Example:
./USADM_wind US_theta.csv 1.2
Using the values of theta listed in "US_theta.csv", this program will estimate the probability of failure after 50 years based on a large number of replications with the wind load using phi=1.2.
Reliability analysis is performed by the compiled C++ programs 'CanADM_snow_Van', 'CanADM_snow_Queb', 'CanADM_wind'
Example:
./CanADM_snow_Van Can_theta.csv 1.2
Using the values of theta listed in "Can_theta.csv", this program will estimate the probability of failure after 50 years based on a large number of replications with the snow load in Vancouver profile using phi=1.2.
General usage:
CanADM theta_file_name phi
- The parameter vectors to use for reliability analysis are supplied via theta_file_name, usually the output of the parameter estimation done in model fitting above. The thetas will then be used to solve the Can ADM for time-to-failure T_f and probability of failure P_f. T_f and P_f for each theta will be written into files with suffix “csv”.
- Output files: probability of failure with and without DOL effect.
There are some additional parameters in USADM (solveCanODE_snow_Van.cpp, solveCanODE_snow_Queb.cpp, solveCanODE_wind.cpp) that can be modified:
- n_per_theta: number of load profile replications to use for estimation of P_f. Default is 100000.
- t_end: reference timeframe (in hours). Default is 50 years.
- dt: time-step used for numerical integration. Default is 100 hours.
We only provide one example for snow load in Quebec City and wind load as all the other settings are similiar.
Example:
./CanADM_snow_Queb Can_theta.csv 1.2
Using the values of theta listed in "Can_theta.csv", this program will estimate the probability of failure after 50 years based on a large number of replications with the snow load in Quebec City using phi=1.2.
Example:
./CanADM_wind Can_theta.csv 1.2
Using the values of theta listed in "Can_theta.csv", this program will estimate the probability of failure after 50 years based on a large number of replications with the wind load using phi=1.2.
Begin by generating snow load in Vancouver. You need to install R package 'desolve', 'tidyverse'. There might be some warnings or even errors by library(tidyverse). But you can ignore them.
R
source("R/setup-reliability-snow-Van.R")
The number load profile replications to generate (default: 100000). The result is saved as 'rel_loads_snow_Van.rda'.
Next step is to calculate the reliability estimate.
source("R/calc-reliability-GP-snowVan.R")
The default model file is R/gamma-2breaks.R, and should match the model used for fitting. The performance factor phi and reference time frame (default 50 years) can be set within the R script.
We only provide one example for snow load in Quebec City and wind load as all the other settings are similiar.
source("R/setup-reliability-snow-Queb.R")
source("R/calc-reliability-GP-snowQueb.R")
source("R/setup-reliability-wind.R")
source("R/calc-reliability-GP-wind.R")
Some code in this repository is adapted from the methods described in these papers:
Samuel WK Wong and James V Zidek (2019). The duration of load effect in lumber as stochastic degradation. IEEE Transactions on Reliability, 68(2), 410-419.
Chun-Hao Yang, James V Zidek, Samuel WK Wong (2019). Bayesian analysis of accumulated damage models in lumber reliability. Technometrics, 61(2), 233-245.