Repository navigation
v0.3.3 — ViscoElastic: 2-D visco-elastic with Qp and Qs
sweep-solver 0.3.3
A feature release on top of 0.3.2: a 2-D visco-elastic equation. Upgrade with pip install -U sweep-solver; sweepx 0.3.3 requires it, so pip install -U sweepx brings it too.
Added
ViscoElastic: 2-D visco-elastic propagation with Qp and Qs, on eager andimpl='c'. (#103)- Rheology: the one SPECFEM2D (and SeisFlows) uses, a generalized standard linear solid.
n_slsZener bodies (default 3) with relaxation times fixed by the band. - Models:
vp, vs, rho, Qp, Qs, all five with gradients. Velocities are phase velocities at a reference frequencyf_ref. - Constant-Q fit: a least-squares fit holds Q within ~5% of target over the band for Q ≥ 10.
Q = infreproducesElastic. - Free surface: on any subset of the four edges, with the traction kept zero through the memory variables.
- Memory strategies:
full, chunk and recursive checkpointing, bitwise equal to each other. Boundary saving is refused, because the attenuation is dissipative; the default falls back to full storage. - CFL:
ViscoElastic.unrelaxed_velocities()gives the velocities to check it against. - Accuracy: checked against the exact 2-D Green's function and against SPECFEM2D. Compiled and eager gradients agree at
Elastic's own level (≤ 8.8e-5 over 72 source × receiver × geometry × free-surface combinations). - New notebook: Wavefield · Visco-elastic · GSLS (Qp, Qs).
- Rheology: the one SPECFEM2D (and SeisFlows) uses, a generalized standard linear solid.
The CUDA cores are rebuilt for the new equation (manylinux_2_28, ABI 2): cu12 68a9e84e, cu13 91ac17e4.
Full changelog: v0.3.2...v0.3.3