Gaia Operators
ertm18abc
The ertm18abc operator takes in elastic background models and returns p-velocity and a s-velocity gradients.
import gaia
dvp, dvs = gaia.ertm18abc(vpb, vsb, rho, shot, vx, vy, vz, shotxyz, recxxyyz, deltas, abc)
Properties
- Uses the first order velocity field formulation
- Accuracy: 1 temporal, 8 spatial
- Absorbing Boundary Conditions: Absorbing sponge
Inputs
- vpb - 3D numpy array (p-velocity model).
- Max size: 1024 x 1024 x 1024
- Min size: 10 x 10 x 10
vp = numpy.full((nx, ny, nz), c1, dtype=numpy.float32)
- vsb - 3D numpy array (s-velocity model).
- Max size: 1024 x 1024 x 1024
- Min size: 10 x 10 x 10
vp = numpy.full((nx, ny, nz), c2, dtype=numpy.float32)
- rho - 3D numpy array (density model).
- Max size: 1024 x 1024 x 1024
- Min size: 10 x 10 x 10
rho = numpy.full((nx, ny, nz), density, dtype=numpy.float32)
- shot - A 1D numpy array of type FP32 representing the time series of the shot being simulated. The time series should span the entire length of the simulation. See demo code for a function that creates this array using the ricker waveform.
shot = ricker(frequency, nt, dt)
-
vx - x-velocity values observed at the receiver locations. 3D numpy array of type FP32.
- dim 1: time
- dim 2: x position
- dim 3: y posiiton
-
vy - y-velocity values observed at the receiver locations. 3D numpy array of type FP32.
- dim 1: time
- dim 2: x position
- dim 3: y posiiton
-
vz - z-velocity values observed at the receiver locations. 3D numpy array of type FP32.
- dim 1: time
- dim 2: x position
- dim 3: y posiiton
-
shotxyz - 1D numpy array of 3 elements representing the location of the shot within the velocity model. Cannot lie outside the model. Type INT32
Note: Ensure that the shot does not lie within the ghost cells
shotxyz = numpy.array([xs, ys, zs], dtype=numpy.int32)
- recxxyyz - 1D numpy array of 5 elements. Type INT32. Assumes the receiver array is a surface on the xy plane.
- 1st value: starting x position
- 2nd value: ending x position
- 3rd value: starting y position
- 4th value: ending y position
- 5th value: z position
recxxyyz = numpy.array([xt1, xt2, yt1, yt2, zt], dtype=numpy.int32)
- deltas - 1D numpy array of type FP32 with 4 values.
- 1st value: dx
- 2nd value: dy
- 3rd value: dz
- 4th value: dt
deltas = numpy.array([dx, dy, dz, dt], dtype=numpy.float32)
- abc - 1D numpy array of type INT32 with 2 values.
- 1st value: Width of the sponge in grid points. Excludes ghost points.
- 2nd value: Magnitude of the sponge layer.
abc = np.array([abc_width, abc_amplitude], dtype=np.int32)
Output
- dvp - p-velocity gradient. 3D numpy array of type FP32. Same size as velocity models.
- dvs - s-velocity gradient. 3D numpy array of type FP32. Same size as velocity models.