6.1. Initialisation
- modeller.__init__(number_storeys, storey_heights, floor_masses, storey_drifts, storey_forces, degradation, pinching4_params=None, minmax_multiplier=1.0)[source]
Initializes the modeller object and validates the input parameters.
- Parameters:
number_storeys (int) – The number of storeys in the building model.
storey_heights (list) – List of storey heights in meters (e.g., [2.5, 3.0]).
floor_masses (list) – List of floor masses in tonnes (e.g., [1000, 1200]).
storey_drifts (np.array) – Array of inter-storey displacements (size = number of storeys, CapPoints).
storey_forces (np.array) – Array of storey forces (size = number of storeys, CapPoints).
degradation (bool) – Boolean to enable or disable hysteresis degradation.
pinching4_params (dict, optional) – Overrides for the Pinching4 material parameters (rDispP, rForceP, uForceP, rDispN, rForceN, uForceN, gK1-4, gKLim, gD1-4, gDLim, gF1-4, gFLim, gE, dmgType). Any key omitted falls back to the toolkit’s default value. Default
Nonereproduces today’s hardcoded values exactly for bothdegradation=Trueanddegradation=False.minmax_multiplier (float, optional) – Factor applied to each storey’s ultimate displacement (
storey_drifts[:, -1]) to set the MinMax collapse-detection bound. Must be a positive number. Default1.0(today’s hardcoded behaviour).
- Raises:
TypeError – If any input has an incorrect type.
ValueError – If any input has an invalid value or inconsistent dimensions.
Example
import numpy as np
from openquake.vmtk.modeller import modeller
m = modeller(
number_storeys=2,
storey_heights=[3.0, 3.0],
floor_masses=[120.0, 100.0],
storey_drifts=np.array([[0., 0.005, 0.02, 0.06],
[0., 0.005, 0.02, 0.06]]),
storey_forces=np.array([[0., 250., 320., 200.],
[0., 220., 280., 180.]]),
degradation=True,
# Optional: override individual Pinching4 parameters; any
# key not provided falls back to the toolkit's default.
pinching4_params={'gK2': 0.15, 'gFLim': 0.8},
)