Source code for streng.codes.greek.eak2000.raw.ch2.seismic_action.spectra

import numpy as np


[docs]def T1(ground_type): """ Args: ground_type (str): Ground type (Α, Β, Γ, or Δ) Returns: float: The lower limit of the period of the constant spectral acceleration branch """ data = {'Α': 0.10, 'Β': 0.15, 'Γ': 0.20, 'Δ': 0.20} return data[ground_type]
[docs]def T2(ground_type): """ ground_type (str): Ground type (Α, Β, Γ, or Δ) Returns: float: The upper limit of the period of the constant spectral acceleration branch """ data = {'Α': 0.40, 'Β': 0.60, 'Γ': 0.80, 'Δ': 1.20} return data[ground_type]
[docs]def Φd(T, α, γI, T1, T2, q, η=1.0, θ=1.0, β0=2.5): """ Args: T (float): The vibration period of a linear single-degree-of-freedom system α (float): The design ground acceleration (A=α*g) γI (float): Importance factor (0.85, 1.0, 1.15, 1.30 for Σ1, Σ2, Σ3 and Σ4) T1 (float): The lower limit of the period of the constant spectral acceleration branch T2 (float): The upper limit of the period of the constant spectral acceleration branch q (float): The behaviour factor η (float): Correction factor when damping is not 5% θ (float): Foundation effect factor β0 (float): Spectral amplification factor. Recommended value for β0 is 2.5 Returns: float: Design spectrum. Given using the expressions: .. math:: :nowrap: \\begin{eqnarray} coming \\\\ soon \\\\ \\end{eqnarray} """ condlist = [T <= T1, T <= T2, T <= 4] choicelist = [γI * α * (1+(T/T1)*(η * θ * β0 / q - 1)), γI * α * (η * θ * β0 / q), γI * α * (η * θ * β0 / q) * (T2/T)**(2/3)] return np.select(condlist, choicelist)
[docs]def η(ζ): """ Args: ζ (float): the viscous damping ratio of the structure[%] Returns: float: The value of the damping correction factor. Given using the expressions: .. math:: η = \sqrt{\dfrac{7}{2+ζ}} \ge 0.55 """ return (7. / (2. + ζ)) ** 0.5