Path Scaling

The path scaling can be broken into geometric spreading – including the effects of near-source saturation – and anelastic attenuation. Within StochasticGroundMotionSimulation the PathParameters type holds custom structs that relate to each of these three components:

  • GeometricSpreadingParameters defines the geometric spreading model (spreading rates, transition distances, and functional scaling)
  • NearSourceSaturationParameters defines the near-source saturation model, or the finite fault factors
  • AnelasticAttenuationParameters defines the properties of the anelastic attenuation model.

Geometric Spreading

Parameters for representing geometric spreading are contained within a GeometricSpreadingParameters instance. To compute the actual geometric spreading for a given distance we make use of the geometric_spreading function:

This function takes different options that define different spreading functions. For example, the :CY14 option uses the functional form of Chiou & Youngs (2014), but uses an equivalent point-source distance throughout.

\[ \ln g(r_{ps}) = -\gamma_1 \ln(r_{ps}) + \frac{\left(\gamma_1 -\gamma_f\right)}{2} \ln\left( \frac{ r_{ps}^2 + r_t^2 }{r_{0}^2 + r_t^2} \right)\]

The alternative :CY14mod option combines a point-source distance in the near field, with r_rup scaling in the far field.

\[\ln g(r_{ps},r_{rup}) = -\gamma_1 \ln(r_{ps}) + \frac{\left(\gamma_1 -\gamma_f\right)}{2} \ln\left( \frac{ r_{rup}^2 + r_t^2 }{r_{0}^2 + r_t^2} \right)\]

In both of the above cases, the $r_{0}$ term is the reference distance that is used to define the source spectral amplitude.

The $r_{ps}$ is the equivalent point-source distance that can be defined using:

Near Source Saturation

The NearSourceSaturationParameters are crucial for computing the equivalent point-source distance metric. Generally, the equivalent point-source distance can be computed via:

\[ r_{ps} = \left( r_{rup}^n + h(\bm{M})^n \right)^{1/n}\]

and it is most common to follow Boore & Thompson (2015) and to use $n=2$ so that:

\[ r_{ps} = \sqrt{ r_{rup}^2 + h(\bm{M})^2 }\]

Functionality

StochasticGroundMotionSimulation.near_source_saturationFunction
near_source_saturation(m, sat::NearSourceSaturationParameters)

Near-source saturation term. Used to create equivalent point-source distance. Switches methods based upon sat.model.

Arguments

Options for sat.model are:

  • :BT15 for Boore & Thompson (2015) finite fault factor
  • :YA15 for Yenier & Atkinson (2014) finite fault factor
  • :CY14 for a model fitted to the Chiou & Youngs (2014) saturation lengths (over all periods)
  • :SEA21 for the Stafford et al. (2021) saturation model obtained from inversion of Chiou & Youngs (2014)
  • :None for zero saturation length
  • :ConstantConstrained for a constant value, sat.hconi[1], not subject to AD operations
  • :ConstantVariable for a constant value, sat.hvari[1], that is subject to AD operations

Any other symbol passed will return NaN.

See also: near_source_saturation

source
near_source_saturation(m, path::PathParameters)

Near-source saturation term taking a PathParameters struct.

See also: near_source_saturation

source
near_source_saturation(m, fas::FourierParameters)

Near-source saturation term taking a FourierParameters struct.

See also: near_source_saturation

source

Anelastic Attenuation

The anelastic attenuation filter has the general form:

\[ \exp\left[ -\frac{\pi f r}{Q(f) c_Q} \right]\]

where, normally, $Q(f)=Q_0 f^\eta$ such that:

\[ \exp\left[ -\frac{\pi f^{1-\eta} r}{Q_0 c_Q} \right]\]

The AnelasticAttenuationParameters type therefore holds the values of $Q0$, $\eta$, and $c_Q$. In addition, it holds a field rmetric that can take values of :Rrup and :Rps depending upon whether one wishes to interpret the distance within the exponential function as the rupture distance, :Rrup, or the equivalent point-source distance, :Rps.

Functionality

StochasticGroundMotionSimulation.anelastic_attenuationFunction
anelastic_attenuation(f::S, r::T, anelastic::AnelasticAttenuationParameters) where {S<:Float64,T<:Real}

Anelastic attenuation filter, computed using equivalent point source distance metric or a standard rupture distance.

source
anelastic_attenuation(f::Vector{S}, r::T, anelastic::AnelasticAttenuationParameters) where {S<:Float64,T<:Real}

Anelastic attenuation filter, computed using equivalent point source distance metric or a standard rupture distance.

source
StochasticGroundMotionSimulation.fourier_attenuationFunction
fourier_attenuation(f::S, r::T, ane::AnelasticAttenuationParameters{U,V}, site::SiteParameters{W}) where {S<:Float64,T<:Real,U<:Real,V<:Real,W<:Real}

Combined full-path attenuation, including Q(f) effects and κ0 filter for frequency f Distance defined in terms of an equivalent point source distance r_ps or rupture distance r_rup depending upon what metric is defined in ane.rmetric

source
fourier_attenuation(f::Vector{S}, r::T, ane::AnelasticAttenuationParameters{U,V}, site::SiteParameters{W}) where {S<:Float64,T<:Real,U<:Real,V<:Real,W<:Real}

Combined full-path attenuation, including Q(f) effects and κ0 filter for frequency f Distance defined in terms of an equivalent point source distance r_ps or rupture distance r_rup depending upon what metric is defined in ane.rmetric

source
StochasticGroundMotionSimulation.combined_kappa_frequencyFunction
combined_kappa_frequency(r::T, Af2target::Float64, ane::AnelasticAttenuationParameters, site::SiteParameters) where T<:Real

Frequency at which the combined κr and κ0 filters (squared versions) give a value of Af2target. r can be either r_ps or r_rup depending upon what matches ane.rmetric

source