pystrata.propagation.FrequencyDependentEqlCalculator

class pystrata.propagation.FrequencyDependentEqlCalculator(method: str = 'ka02', strain_ratio: float = 0.65, tolerance: float = 0.01, max_iterations: int = 15, strain_limit: float = 0.05)[source]

Class for performing equivalent-linear elastic site response with frequency- dependent modulii and damping.

Parameters:
  • method (str) –

    method for computing the strain spectrum:
    • ka02: use the Kausel & Assimaki (2002) defined shape for a smooth spectrum for the strain.

    • zr15: use Zalachoris & Rathje (2015) approach of the strain

    spectrum - ko:##: use Konno-Omachi with a bandwith of ## to compute the smooth spectrum. The strain is then computed as a running maximum from high to low frequencies. A value of 20 or 30 is recommended based on limited studies.

  • strain_ratio (float, default=1.00) – ratio between the maximum strain and effective strain used to compute strain compatible properties. There is not clear guidance the use of the effective strain ratio. For the ka02 the recommended value is 0.65 – or consistent with an EQL approach. For zr15 and ko:##, there is no clear guidance but a value of 1.0 might make sense.

  • tolerance (float, default=0.01) – tolerance in the iterative properties, which would cause the iterative process to terminate.

  • max_iterations (int, default=15) – maximum number of iterations to perform.

  • strain_limit (float, default=0.05) – Limit of strain in calculations. If this strain is exceed, the iterative calculation is ended.

References

__init__(method: str = 'ka02', strain_ratio: float = 0.65, tolerance: float = 0.01, max_iterations: int = 15, strain_limit: float = 0.05)[source]

Initialize the class.

Methods

__init__([method, strain_ratio, tolerance, ...])

Initialize the class.

calc_accel_tf(lin, lout)

Compute the acceleration transfer function.

calc_strain_ratio(mag)

Compute the effective strain ratio using Idriss and Sun (1992).

calc_strain_tf(lin, lout)

Compute the strain transfer function from lout to location_in.

calc_stress_tf(lin, lout, damped)

Compute the stress transfer function.

wave_at_location(loc)

Compute the wave field at specific location.

Attributes

loc_input

max_iterations

method

motion

name

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

profile

strain_limit

strain_ratio

tolerance