Generation of capacity curves using SP-BELA

The Simplified Pushover-based Earthquake Loss Assessment (SP-BELA) methodology allows the calculation of the displacement capacity (i.e. spectral displacement) and collapse multiplier (i.e. spectral acceleration) using a simplified mechanics-based procedure, similar to what has been proposed by Cosenza et al. 2005. The methodology currently implemented in the Risk Modeller's Toolkit only supports reinforced concrete frames.

Note: To run the code in a cell:

  1. Click on the cell to select it.
  2. Press SHIFT+ENTER on your keyboard or press the play button () in the toolbar above.

In [ ]:
from rmtk.vulnerability.model_generator.SPBELA_approach import SPBELA
from rmtk.vulnerability.common import utils
%matplotlib inline

Load geometric and material properties

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/SPBELA/bare_frames.csv"
damage_model_file = "../../../../../rmtk_data/damage_model_spbela.csv"

Number of samples

The parameter no_assets below controls the number of synthetic structural models or assets (each one with unique geometrical and material properties) that will be generated using a Monte Carlo sampling process:


In [ ]:
no_assets = 200

Generate the capacity curves


In [ ]:
building_class_model = SPBELA.read_building_class_model(building_model_file)
assets = SPBELA.generate_assets(building_class_model, no_assets)
damage_model = utils.read_damage_model(damage_model_file)
capacity_curves = SPBELA.generate_capacity_curves(assets, damage_model)

Plot the capacity curves


In [ ]:
utils.plot_capacity_curves(capacity_curves)

Adding additional information

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)

Save capacity curves

Please specify below the path for the output file to save the capacity curves:


In [ ]:
output_file = "../../../../../rmtk_data/capacity_curves_spbela.csv"

In [ ]:
utils.save_SdSa_capacity_curves(capacity_curves, output_file)