Propagators¶
Propagators connect an equation object, grid configuration, acquisition geometry, and model tensors into a callable solver.
Main Propagator APIs¶
sweep.propagator.torch.PropTorchsweep.propagator.jax.PropJax
Recommended Entry Points¶
- For Torch-family workflows, prefer
PropTorch(...).backend="eager"uses the Python/Torch implementation, whilebackend="cuda"dispatches to the compiled CUDA backend. PropCUDAremains available as the lower-level CUDA-specific class when you need to work directly with CUDA-only runtime behavior.- Use
PropJaxfor JAX-based propagation.
Backend-Specific Options¶
EagerOptions: groups compile-related Torch options such asuse_compileandcompile_modeCUDAOptions: groups CUDA-only runtime optionsMemoryOptions: selects one CUDA memory-saving strategyBoundaryOptions: controls CUDA boundary savingCkptOptions: controls CUDA checkpointing mode and tuning parameters
Geometry Conventions¶
sources: shape(nshots, ndim)or backend-specific batched variantsreceivers: shape(nshots, nreceivers, ndim)- 2D coordinates use
(x, z)in example scripts - 3D coordinates use
(x, y, z)in example scripts
Memory-Saving Features¶
- PyTorch eager checkpointing
torch.compileon the eager backend- CUDA boundary saving
- CUDA checkpointing in
chunkandrecursivemodes
See examples/reducingmemory/ for runnable comparisons of these options.