This notebook enables the user to generate capacity curves (in terms of spectral acceleration vs. spectral displacement) using the Displacement-based Earthquake Loss Assessment (DBELA) approach. The DBELA methodology permits the calculation of the displacement capacity of a collection of structures at a number of limit states (which could be structural or non-structural). These displacements are derived based on the capacity of an equivalent SDOF structure, following the principles of structural mechanics (Crowley et al., 2004; Bal et al., 2010; Silva et al., 2013). The figure below illustrates various capacity curves generated using this approach.
Note: To run the code in a cell:
SHIFT+ENTER
on your keyboard or press the play button () in the toolbar above.
In [ ]:
from rmtk.vulnerability.model_generator.DBELA_approach import DBELA
from rmtk.vulnerability.common import utils
%matplotlib inline
In order to use this methodology it is necessary to define a building model, which specifies the probabilistic distribution of the geometrical and material properties. These models need to be defined according to the format described in the RMTK manual. Please specify below the paths for the input files containing the building model and damage model:
In [ ]:
building_model_file = "../../../../../rmtk_data/DBELA/bare_frames.csv"
damage_model_file = "../../../../../rmtk_data/DBELA/damage_model_dbela_low_code.csv"
In [ ]:
no_assets = 100
In [ ]:
building_class_model = DBELA.read_building_class_model(building_model_file)
assets = DBELA.generate_assets(building_class_model, no_assets)
damage_model = utils.read_damage_model(damage_model_file)
capacity_curves = DBELA.generate_capacity_curves(assets, damage_model)
In [ ]:
utils.plot_capacity_curves(capacity_curves)
Additional information can be added to the capacity curves generated using the above method. For instance, by setting appropriate values for the parameters gamma
and yielding_point_index
in the cell below, the add_information
function can be used to include this data in the previously generated capacity curves.
In [ ]:
gamma = 1.2
yielding_point_index = 1.0
In [ ]:
capacity_curves = utils.add_information(capacity_curves, "gamma", "value", gamma)
capacity_curves = utils.add_information(capacity_curves, "yielding point", "point", yielding_point_index)
In [ ]:
output_file = "../../../../../rmtk_data/capacity_curves_dbela.csv"
In [ ]:
utils.save_SdSa_capacity_curves(capacity_curves, output_file)