Repository navigation
v0.3.5 — RWI velocity gradient for AcousticLSRTM
sweep-solver 0.3.5
AcousticLSRTM / AcousticLSRTM3D with impl='c' now return the velocity gradient, and run under domain decomposition. Upgrade with pip install -U sweep-solver. sweepx stays at 0.3.4: a fresh pip install sweepx resolves to solver 0.3.5, but pip install -U sweepx on an existing install does not upgrade the solver.
Added
- RWI velocity gradient (#108).
vp.gradused to be zero. The full and boundary-saving backwards now compute the tomographic gradient of Wu & Alkhalifah (2015), terms II+III+IV.- Paid for only when
vprequires grad, decided per call. A classic LSRTM (reflectivity only) keeps 0.3.4's buffers and speed. With the vp gradient, a V100 backward takes 1.5–1.8× the time and 1.4–2.0× the memory. - Matches eager to rel 2.4e-4 (2-D) and 6.2e-4 (3-D), with the reflectivity reaching the absorbing band.
- The checkpointing modes still return
vp.grad = 0.
- Paid for only when
- Term III on its own. With
SWEEP_LSRTM_SPLIT_III=1,vp.gradholds II+IV andsweep.propagator.last_grad_split_iii()returns III, for the paper's(II+IV) + β·III. - Domain decomposition for AcousticLSRTM 2-D/3-D (
ModelParallel). Record and gradients are bit-identical to one GPU on 4× V100, with and without the vp gradient.
Documentation
- Notebook 31: frequency-selection FWI on a towed-streamer Marmousi (#107).
- Notebook 32: where the RWI velocity gradient comes from, in 2-D and 3-D (#108).
- One citation style for every notebook's references (#109).
The CUDA cores are rebuilt (manylinux_2_28, ABI 2): cu12 0800bee2, cu13 903902ae. BackwardInput gains a field, so a 0.3.4 core and a 0.3.5 package refuse each other.
Full changelog: v0.3.4...v0.3.5