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) if boundary 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.