equiv_linear#
- PySeismoSoil.helper_simulations.equiv_linear(vs_profile: ndarray, input_motion: ndarray, curve_matrix: ndarray, boundary: Literal['elastic', 'rigid'] = 'elastic', tol: float = 0.075, R_gamma: float = 0.65, max_iter: int = 10, verbose: bool = True) tuple[numpy.ndarray, ...] [source]#
Equivalent linear site response simulation.
- Parameters:
vs_profile (np.ndarray) –
Shear-wave velocity profile, as a 2D numpy array. It should have the following columns:
Thickness [m]
Vs [m/s]
Damping
Density [kg/m^3]
Material No.
…
…
…
…
…
(Damping unit: 1)
input_motion (np.ndarray) – Input acceleration on rock outcrop (unit: m/s/s). It should have two columns (time and acceleration). It should be the “rock outrcop” motion if
boundary
is set to"elastic"
, and it should be the recorded motion at the bottom of the Vs profile (i.e., the “borehole” motion) ifboundary
is set to"rigid"
.curve_matrix (np.ndarray) –
A 2D numpy array that represents G/Gmax and damping curves of each layer, in the following format:
strain [%]
G/Gmax
strain [%]
damping [%]
strain [%]
G/Gmax
…
…
…
…
…
…
…
…
boundary (Literal['elastic', 'rigid']) – Boundary condition. ‘Elastic’ means that the input motion is the “rock outcrop” motion, and ‘rigid’ means that the input motion is the recorded motion at the bottom of the Vs profile.
tol (float) – Tolerance level for convergence checking.
R_gamma (float) – A dimensionless ratio to determine the “effective shear strain” from the maximum shear strain in the strain time history. Do not change the default value unless you really know what you are doing.
max_iter (int) – Maximum number of iteration to run.
verbose (bool) – Whether t show the iteration progress on the console.
- Returns:
- A tuple of 11 numpy arrays:
- new_profile
Re-discretized Vs profile.
- freq_array
”Single-sided” frequency. Shape:
(half_N, )
or(half_N - 1, )
.- tf
Transfer function (complex-valued). Same shape as
freq_array
.- accel_on_surface
Simulated acceleration on the ground surface (two-columed).
- out_a
Simulated acceleration time history of every layer. Shape:
(num_time_step, n_layer)
.- out_v
Simulated velocity time history of every layer. Same shape as
out_a
.- out_d
Simulated displacement time history of every layer. Same shape as
out_a
.- out_gamma
Simulated shear strain time history of every layer. Shape:
(num_time_step, n_layer - 1)
.- out_tau
Simulated shear stress time history of every layer. Same shape as
out_gamma
.- max_avd
Maximum acceleration, velocity, and displacement during the shaking process, of each layer. Shape:
(n_layer, )
.- max_gt
Maximum shear strain and shear stress during the shaking process, of each layer. Shape:
(n_layer - 1, )
.
- Return type:
tuple[np.ndarray, …]
Notes
Based on the MATLAB function written by Wei Li and Jian Shi.