sfsimodels.models package¶
Submodules¶
sfsimodels.models.abstract_models module¶
-
class
sfsimodels.models.abstract_models.CustomObject[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObjectAn object to describe structures.
-
ancestor_types¶
-
base_type= 'custom_object'¶
-
id¶ Object id :return:
-
name= None¶
-
type= 'custom_object'¶
-
sfsimodels.models.buildings module¶
-
class
sfsimodels.models.buildings.Building(n_storeys, verbose=0, **kwargs)[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObjectAn object to define Buildings
Parameters: n_storeys (int) – Number of storeys -
ancestor_types¶
-
base_type= 'building'¶
-
concrete¶
-
floor_area¶
-
floor_length¶
-
floor_width¶
-
g¶
-
heights¶
-
id¶
-
interstorey_heights¶
-
max_height¶
-
n_storeys¶
-
name= None¶
-
storey_masses¶
-
type= 'building'¶
-
-
class
sfsimodels.models.buildings.Element(section_class=None)[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObject-
s¶
-
section_lengths= None¶
-
-
class
sfsimodels.models.buildings.Frame(n_storeys, n_bays)[source]¶ Bases:
object-
ancestor_types¶
-
bay_lengths¶
-
beam_depths¶
-
beam_section_ids¶
-
beam_sections¶
-
beam_widths¶
-
beams¶
-
column_depths¶
-
column_section_ids¶
-
column_sections¶
-
column_widths¶
-
columns¶
-
n_bays¶
-
n_cols¶
-
n_storeys¶
-
set_beam_prop(prop, values, repeat='up')[source]¶ Specify the properties of the beams
Parameters: - values –
- repeat – if ‘up’ then duplicate up the structure
Returns:
-
-
class
sfsimodels.models.buildings.FrameBuilding(n_storeys, n_bays)[source]¶ Bases:
sfsimodels.models.buildings.Frame,sfsimodels.models.buildings.Building-
ancestor_types¶
-
n_gravity_frames¶
-
n_seismic_frames¶
-
type= 'frame_building'¶
-
-
class
sfsimodels.models.buildings.FrameBuilding2D(n_storeys, n_bays)[source]¶ Bases:
sfsimodels.models.buildings.Frame,sfsimodels.models.buildings.Building-
ancestor_types¶
-
type= 'frame_building2D'¶
-
-
class
sfsimodels.models.buildings.SDOFBuilding(g=9.8)[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObjectAn object to describe structures.
-
ancestor_types¶
-
base_type= 'building'¶
-
h_eff¶
-
id¶
-
k_eff¶
-
mass_eff¶
-
mass_ratio¶
-
name= None¶
-
t_fixed¶
-
type= 'sdof'¶
-
weight¶
-
-
class
sfsimodels.models.buildings.Section[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObject-
base_type= 'section'¶
-
depth¶
-
id= None¶
-
type= 'section'¶
-
width¶
-
-
class
sfsimodels.models.buildings.SoilStructureSystem[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObject-
bd= <sfsimodels.models.buildings.SDOFBuilding object>¶
-
fd= <sfsimodels.models.foundations.Foundation object>¶
-
hz= <sfsimodels.models.hazards.SeismicHazard object>¶
-
inputs= ['name', 'id', 'name', 'base_type', 'type', 'h_eff', 'mass_eff', 't_fixed', 'mass_ratio', 'id', 'name', 'base_type', 'type', 'width', 'length', 'depth', 'height', 'density', 'mass', 'id', 'name', 'base_type', 'type', 'stype', 'g_mod', 'bulk_mod', 'poissons_ratio', 'phi', 'dilation_angle', 'e_min', 'e_max', 'e_curr', 'relative_density', 'specific_gravity', 'unit_dry_weight', 'unit_sat_weight', 'saturation', 'cohesion', 'plasticity_index', 'permeability', 'z_factor', 'r_factor', 'n_factor', 'magnitude', 'site_class', 'corner_period', 'corner_acc_factor']¶
-
name= 'Nameless'¶
-
sp= <sfsimodels.models.soils.Soil object>¶
-
sfsimodels.models.foundations module¶
-
class
sfsimodels.models.foundations.Foundation[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObjectAn object to describe building foundations
-
ancestor_types¶
-
area¶ Foundation area in plan :return:
-
base_type= 'foundation'¶
-
density¶ The mass density of the foundation [kg/m3] :return:
-
depth¶ Measure of the base of the foundation to the surface of the soil :return:
-
height¶ Measure of the base of the foundation to the top :return:
-
id¶
-
length¶ Length of the foundation (typically in the out-of-plane direction) :return:
-
mass¶ The mass of the whole foundation :return:
-
name= None¶
-
type= 'foundation'¶
-
weight¶ The weight of the foundation [N] :return:
-
width¶ Length of the foundation (typically in the in-plane direction) :return:
-
-
class
sfsimodels.models.foundations.PadFoundation[source]¶ Bases:
sfsimodels.models.foundations.FoundationAn extension to the Foundation Object to describe Pad foundations
-
ancestor_types¶
-
area¶ Contact area of the whole foundation in plan :return:
-
ftype= 'pad'¶
-
i_ll¶ Second moment of inertia around the length axis. :return:
-
i_ww¶ Second moment of inertia around the width axis. :return:
-
n_pads¶ Total number of pad footings :return:
-
n_pads_l= 4¶
-
n_pads_w= 3¶
-
pad_area¶ Area of a pad :return:
-
pad_i_ll¶ Second moment of inertia of a single pad around the length axis. :return:
-
pad_i_ww¶ Second moment of inertia of a single pad around the width axis. :return:
-
pad_length= 1.0¶
-
pad_position_l(i)[source]¶ Determines the position of the ith pad in the length direction. Assumes equally spaced pads.
Parameters: i – ith number of pad in length direction (0-indexed) Returns:
-
pad_position_w(i)[source]¶ Determines the position of the ith pad in the width direction. Assumes equally spaced pads.
Parameters: i – ith number of pad in width direction (0-indexed) Returns:
-
pad_width= 1.0¶
-
type= 'foundation_pad'¶
-
-
class
sfsimodels.models.foundations.RaftFoundation[source]¶ Bases:
sfsimodels.models.foundations.FoundationAn extension to the Foundation Object to describe Raft foundations
-
ancestor_types¶
-
ftype= 'raft'¶
-
i_ll¶ Contact moment-area around the length axis :return:
-
i_ww¶ Contact moment-area around the width axis :return:
-
type= 'foundation_raft'¶
-
sfsimodels.models.hazards module¶
-
class
sfsimodels.models.hazards.SeismicHazard[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObjectAn object to describe seismic hazard.
-
ancestor_types¶
-
corner_acc¶
-
corner_acc_factor= 0.0¶
-
corner_disp¶
-
corner_period= -1.0¶
-
inputs= ['z_factor', 'r_factor', 'n_factor', 'magnitude', 'site_class', 'corner_period', 'corner_acc_factor']¶
-
magnitude= 0.0¶
-
n_factor= 1.0¶
-
outputs= ['pga', 'corner_acc', 'corner_disp']¶
-
pga¶
-
r_factor= 1.0¶
-
site_class= None¶
-
type= 'seismic_hazard'¶
-
z_factor= 0.0¶
-
sfsimodels.models.material module¶
-
class
sfsimodels.models.material.Concrete(fc=30000000.0, fy=300000000.0, youngs_steel=200000000000.0, piossons_ratio=0.18)[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObjectAn object to describe reinforced concrete
-
base_type= 'material'¶
-
inputs= ['fy', 'youngs_steel']¶
-
type= 'concrete'¶
-
youngs_concrete¶
-
sfsimodels.models.soils module¶
-
class
sfsimodels.models.soils.CriticalSoil(pw=9800, **kwargs)[source]¶ Bases:
sfsimodels.models.soils.Soil-
ancestor_types¶
-
e_cr0= 0.0¶
-
lamb_crl= 0.0¶
-
p_cr0= 0.0¶
-
type= 'critical_soil'¶
-
-
class
sfsimodels.models.soils.Soil(pw=9800, **kwargs)[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObjectAn object to simulate an element of soil
-
ancestor_types¶ View list of types from inherited objects
-
base_type= 'soil'¶
-
bulk_mod¶ Bulk modulus of the soil
-
cohesion¶ Cohesive strength of the soil
-
dilation_angle¶ Internal dilation angle of the soil
peak_angle = phi + dilation_angle
-
e_curr¶ The current void ratio of the soil
-
e_max¶ The maximum void ratio
-
e_min¶ The minimum void ratio
-
g_mod¶ Shear modulus of the soil
-
get_shear_vel(saturated)[source]¶ Calculate the shear wave velocity
Parameters: saturated – bool, if true then use saturated mass Returns:
-
id¶ Object id
-
k_0¶
-
moisture_content¶ The moisture of the soil \((unit_moisture_weight) / (unit_dry_weight)\).
-
name= None¶
-
override(item, value)[source]¶ Can set a parameter to a value that is inconsistent with existing values.
This method sets the inconsistent value and then reapplies all existing values that are still consistent, all non-consistent (conflicting) values are removed from the object and returned as a list
Parameters: - item – name of parameter to be set
- value – value of the parameter to be set
Returns: list, conflicting values
-
permeability¶ The permeability of the soil
-
phi¶ Internal friction angle of the soil
-
phi_r¶ internal friction angle in radians
-
plasticity_index¶ The plasticity index of the soil
-
poissons_ratio¶ Poisson’s ratio of the soil
-
porosity¶ Soil porosity
-
pw¶ Specific weight of water
-
relative_density¶ math (e_max - e_curr) / (.e_max - .e_min)
Type: The relative density
-
saturation¶ The current saturation of the soil
-
specific_gravity¶ The specific gravity of the soil
-
stype= 'soil'¶
-
type= 'soil'¶
-
unit_bouy_weight¶ The unit moist weight of the soil (accounts for saturation level)
-
unit_dry_mass¶ The mass of the soil in dry state
-
unit_dry_weight¶ The unit weight of the soil if saturation=0
-
unit_moist_weight¶ The unit moist weight of the soil (accounts for saturation level)
-
unit_sat_mass¶ The mass of the soil when fully saturated
-
unit_sat_weight¶ The weight of the soil if saturation=1
-
unit_weight¶ The unit moist weight of the soil (accounts for saturation level) :return: float
-
-
class
sfsimodels.models.soils.SoilLayer(depth=0.0, height=1000, top_total_stress=0.0, top_pore_pressure=0.0)[source]¶ Bases:
sfsimodels.models.soils.Soil
-
class
sfsimodels.models.soils.SoilProfile[source]¶ Bases:
sfsimodels.models.abstract_models.PhysicalObjectAn object to describe a soil profile
-
add_layer(depth, soil)[source]¶ Adds a soil to the SoilProfile at a set depth.
Note, the soils are automatically reordered based on depth from surface.
Parameters: - depth – depth from surface to top of soil layer
- soil – Soil object
-
ancestor_types¶
-
base_type= 'soil_profile'¶
-
crust_effective_unit_weight¶
-
depths¶ An ordered list of depths. :return:
-
equivalent_crust_cohesion¶ Calculate the equivalent crust cohesion strength according to Karamitros et al. 2013 sett, pg 8 eq. 14
Returns: equivalent cohesion [Pa]
-
get_v_eff_stress_at_depth(y_c)[source]¶ Determine the vertical effective stress at a single depth z_c.
Parameters: y_c – float, depth from surface
-
get_v_total_stress_at_depth(z)[source]¶ Determine the vertical total stress at depth z, where z can be a number or an array of numbers.
-
gwl¶ Get the ground water level
-
height¶
-
hydrostatic= False¶
-
hydrostatic_pressure(y_c)[source]¶ Determine the vertical effective stress at a single depth y_c.
Parameters: y_c – float, depth from surface
-
id¶ Get the id number of the soil profile
-
inputs= ['id', 'name', 'gwl', 'unit_water_weight', 'layers', 'height']¶
-
layer_height(layer_int)[source]¶ Get the layer height by layer id number.
Parameters: layer_int – Returns: float, height of the soil layer
-
layers¶
-
n_layers¶ Number of soil layers :return:
-
name= None¶
-
one_vertical_total_stress(z_c)[source]¶ Determine the vertical total stress at a single depth z_c.
Parameters: z_c – depth from surface
-
shear_vel_at_depth(y_c)[source]¶ Get the shear wave velocity at a depth.
Parameters: y_c – float, depth from surface Returns:
-
type= 'soil_profile'¶
-
unit_water_weight= 9800.0¶
-
unit_weight_water= 9800.0¶
-
sfsimodels.models.systems module¶
sfsimodels.models.time module¶
-
class
sfsimodels.models.time.TimeSeries(values, dt, name='unnamed')[source]¶ Bases:
object-
cut(start=0, end=-1, index=False)[source]¶ The method cuts the time series to reduce its length. :param start: int or float, optional, New start point :param end: int or float, optional, New end point :param index: bool, optional, if False then start and end are considered values in time.
-
dt¶ The time step
-
npts¶ The number of points in the time series
-
time¶ An array of time of equal length to the time series
-
values¶
-
-
sfsimodels.models.time.time_indices(npts, dt, start, end, index)[source]¶ Determine the new start and end indices of the time series.
Parameters: - npts – Number of points in original time series
- dt – Time step of original time series
- start – int or float, optional, New start point
- end – int or float, optional, New end point
- index – bool, optional, if False then start and end are considered values in time.
Returns: tuple, start index, end index