IWAVE is a software framework written in ISO C99 for construction of regular grid finite difference and finite element methods for time-dependents partial differential equations. It includes utility software for parameter parsing, spatial vectors and constants, and interaction with MPI; i/o methods for regularly gridded data and seismic trace data, sampling operators, definitions of distributed spatial arrays and groupings of arrays defining discretized models, and initialization and destruction functions for all of these data structures.

IWAVE applications parallelize either at loop level (domain decomposition) or task level (parallelization over simulations/shots/sources) or both simultaneously, via MPI - see Parallel Simulation with IWAVE. Support for shared memory parallelization via OpenMP is also available for properly instrumented application code.

Along with IWAVE come two complete applications, a solver for variable density acoustic wave propagation in 1, 2 or 3 spatial dimensions, and a solver for isotropic linear elasticity in 2 or 3 spatial dimensions. These applications output specified stress or velocity traces at specified sample rates and geometry, and/or movie frames of stress or particle velocity components. The code uses staggered grid finite difference schemes of order 2 in time and 2k in space, k=1,...,7, derived from the stress-velocity form of elastodynamics or the pressure-velocity form of acoustodynamics. Either pressure-free (reflecting) or absorbing (PML) boundary conditions may be specified on boundary faces of the simulation hypercube

**Obtaining IWAVE:**

See the TRIP software page for current download instructions and release notes.

**Installing IWAVE:**
See installation instructions here.

**Dependencies:**

IWAVE proper (libraries and executables, serial option) is self-contained. Parallel installation depends on MPI and/or OpenMP libraries and requires definitions of appropriate paths and compiler options - see install notes for details. The demonstration package uses Seismic Un*x commands for data construction and manipulation. Construction of HTML documentation requires doxygen.

**Authors:**

Igor S. Terentyev, Tetyana Vdovina, William W. Symes, Xin Wang, Dong Sun

**Acknowledgements:**

Development of IWAVE was supported by the SEG Advanced Modeling (SEAM) project, by the National Science Foundation under awards 0620821 and 0714193, and by the sponsors of The Rice Inversion Project. The IWAVE project owes a great deal to several open source seismic software packages (Seismic Un*x, SEPlib, Madagascar), debts which we gratefully acknowledge.

**
Package Directory:**

- install, build - installation instructions, notes on TRIP build system
- base - parameter parsinng, file handling, and other utilities
- grid - grid (RSF) data structures and i/o functions
- sucore - subset of the SU library used in trace
- trace - trace (SEGY) data structures and i/o functions
- sample - functions for sampling trace data from/to grid data
- iwave - functions and structs for expressing regular grid finite difference methods
- asg - staggered grid finite difference (pressure, velocity) acoustic modeling package
- esg - staggered grid finite difference (stress, velocity) elastic modeling package
- demo - example simulations, illustrating various asg use cases

Maintained by William W. Symessymes@caam.rice.edu Photo courtesy Ivy Gonzalez

Last modified: Sun Nov 21 12:02:44 CST 2010