Source code for sfsimodels.loader
__author__ = 'maximmillen'
import numpy as np
from sfsimodels import models
[docs]def load_sample_data(sss):
"""
Sample data for the SoilStructureSystem object
:param sss:
:return:
"""
load_soil_sample_data(sss.sp) # soil
load_foundation_sample_data(sss.fd) # foundation
load_structure_sample_data(sss.bd) # structure
load_hazard_sample_data(sss.hz) # hazard
[docs]def load_soil_sample_data(sp):
"""
Sample data for the Soil object
:param sp: Soil Object
:return:
"""
# soil
sp.g_mod = 60.0e6 # [Pa]
sp.phi = 30 # [degrees]
sp.relative_density = .40 # [decimal]
sp.gwl = 2. # [m], ground water level
sp.unit_dry_weight = 17000 # [N/m3]
sp.unit_sat_weight = 18000 # [N/m3]
sp.unit_weight_water = 9800 # [N/m3]
sp.cohesion = 10.0 # [Pa]
sp.poissons_ratio = 0.22
sp.e_min = 0.55
sp.e_max = 0.95
sp.e_critical0 = 0.79 # Jin et al. 2015
sp.p_critical0 = 0.7 # Jin et al. 2015
sp.lamb_crl = 0.015 # Jin et al. 2015
[docs]def load_foundation_sample_data(fd):
"""
Sample data for the Foundation object
:param fd: Foundation Object
:return:
"""
# foundation
fd.width = 16.0 # m
fd.length = 18.0 # m
fd.depth = 0.0 # m
fd.mass = 0.0
[docs]def load_structure_sample_data(st):
"""
Sample data for the Structure object
:param st: Structure Object
:return:
"""
# structure
st.h_eff = 9.0 # m
st.mass_eff = 120e3 # kg
st.t_eff = 1.0 # s
st.mass_ratio = 1.0 # ratio of mass acting horizontal to vertically
[docs]def load_hazard_sample_data(hz):
"""
Sample data for the Hazard object
:param hz: Hazard Object
:return:
"""
# hazard
hz.z_factor = 0.3 # Hazard factor
hz.r_factor = 1.0 # Return period factor
hz.n_factor = 1.0 # Near-fault factor
hz.magnitude = 7.5 # Magnitude of earthquake
hz.corner_period = 4.0 # s
hz.corner_acc_factor = 0.55
return hz
[docs]def load_building_sample_data(bd):
"""
Sample data for the Building object
:param bd:
:return:
"""
number_of_storeys = 6
interstorey_height = 3.4 # m
masses = 40.0e3 # kg
bd.interstorey_heights = interstorey_height * np.ones(number_of_storeys)
bd.floor_length = 18.0 # m
bd.floor_width = 16.0 # m
bd.storey_masses = masses * np.ones(number_of_storeys) # kg
[docs]def load_frame_building_sample_data():
"""
Sample data for the BuildingFrame object
:return:
"""
number_of_storeys = 6
interstorey_height = 3.4 # m
masses = 40.0e3 # kg
n_bays = 3
fb = models.BuildingFrame(number_of_storeys, n_bays)
fb.interstorey_heights = interstorey_height * np.ones(number_of_storeys)
fb.floor_length = 18.0 # m
fb.floor_width = 16.0 # m
fb.storey_masses = masses * np.ones(number_of_storeys) # kg
fb.bay_lengths = [6., 6.0, 6.0]
fb.set_beam_prop("depth", [0.5, 0.5, 0.5], repeat="up")
fb.set_beam_prop("width", [0.4, 0.4, 0.4], repeat="up")
fb.set_column_prop("width", [0.5, 0.5, 0.5, 0.5], repeat="up")
fb.set_column_prop("depth", [0.5, 0.5, 0.5, 0.5], repeat="up")
fb.n_seismic_frames = 3
fb.n_gravity_frames = 0
return fb