Month: December 2013

Structural uncertainty in time migration

December 7, 2013 Documentation No comments

A new paper is added to the collection of reproducible documents:
Structural uncertainty of time-migrated seismic images

Structural information in seismic images is uncertain. The main cause of this uncertainty is uncertainty in velocity estimation. We adopt the technique of velocity continuation for estimating velocity uncertainties and corresponding structural uncertainties in time-migrated images. Data experiments indicate that structural uncertainties can be significant even when both structure and velocity variations are mild.

Parallel sweeping preconditioner for 3D Helmholtz

December 6, 2013 Documentation No comments

A new paper is added to the collection of reproducible documents:
A parallel sweeping preconditioner for heterogeneous 3D Helmholtz equations

A parallelization of a sweeping preconditioner for 3D Helmholtz equations without large cavities is introduced and benchmarked for several challenging velocity models. The setup and application costs of the sequential preconditioner are shown to be $ O(\gamma ^2 N^{4/3})$ and $ O(\gamma N \log N)$, where $ \gamma(\omega)$ denotes the modestly frequency-dependent number of grid points per Perfectly Matched Layer. Several computational and memory improvements are introduced relative to using black-box sparse-direct solvers for the auxiliary problems, and competitive runtimes and iteration counts are reported for high-frequency problems distributed over thousands of cores. Two open-source packages are released along with this paper: Parallel Sweeping Preconditioner (PSP) and the underlying distributed multifrontal solver, Clique.

Program of the month: sfcausint

December 1, 2013 Programs No comments

sfcausint implements an operation of causal numerical integration. This is a simple operation, which mathematically amounts to recursion
$$yn = y{n-1} + x_n$$
or to inversion of a simple bidiagonal matrix. See Geophysical Image Estimation by Example for more explanation.

The only parameter in sfcausint is adj=, the flag for adjoint computation. The adjoint operation applies recursion backwards
$$x{n-1} = xn + y_{n-1}$$

The following example from gee/ajt/causint illustrates forward and ajoint causal integration with sfcausint:

10 previous programs of the month