specfem::attenuation::compute_tau_sigma

template<int N_SLS, typename T>
Kokkos::View<type_real[N_SLS], Kokkos::LayoutRight, Kokkos::HostSpace> specfem::attenuation::compute_tau_sigma(const specfem::utilities::Band<T> band)

Compute stress relaxation times \(\tau_{\sigma}\) equally spaced in log10 frequency.

The routine constructs a set of relaxation times corresponding to frequencies that are equally spaced in base-10 logarithmic scale. Let \(f_1\) and \(f_2\) be the minimum and maximum frequencies (Hz).

\[\Delta = \frac{\log_{10} f_2 - \log_{10} f_1}{N\_SLS - 1}.\]
For index \(i\in[0, N\_SLS-1]\) the relaxation time is
\[\tau_{\sigma,i} = \frac{1}{2\pi\,10^{\log_{10} f_1 + i\Delta}}.\]

Kokkos::HostSpace>

// Example: build 4 SLS between 0.1 Hz and 100 Hz
auto tau = specfem::attenuation::compute_tau_sigma<4>(0.1_rt, 100.0_rt);
for (int i = 0; i < 4; ++i) std::cout << tau(i) << "\n";
Template Parameters:

N_SLS – Number of standard linear solids (requires \(N\_SLS>1\))

Parameters:
  • min_frequency – Minimum frequency (Hz)

  • max_frequency – Maximum frequency (Hz)

Returns:

Kokkos::View<type_real[N_SLS], Kokkos::LayoutRight,