Skip to content

Gaia Batch Operators

rbf28pml

Runs the f28pml operator on a remote model in batch mode. Requires a model to have been uploaded on to the remote server. See modelUpload operator.

import gaia

gaia.rbf28pml(remote_file, shotbox, sweep, shot, shotxyz, recxxyyz, deltas, pml, destination)

Properties

  • Accuracy: 2 temporal, 8 spatial
  • Absorbing Boundary Conditions: PML

Inputs

  • remote_file - File on remote server.
remote_file = 'atlantic_basin'
  • shotbox - A 1D numpy array, three values. Type INT32.
    • 1st value: x length
    • 2nd value: y length
    • 3rd value: z length
shotbox = np.array([shotbox_nx, shotbox_ny, shotbox_nz], dtype=np.int32)
  • sweep - 1D numpy array of 6 elements representing the span of the shotbox sweep in INT32. Assumes the sweep is a surface on the xy plane.
    • 1st value: starting x position
    • 2nd value: ending x position
    • 3rd value: step value for x
    • 4rd value: starting y position
    • 5th value: ending y position
    • 6th value: step value for y
sweep = np.array([x_start, x_end, x_step, y_start, y_end, y_step], dtype=np.int32)
  • 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)
  • 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)
  • pml - 1D numpy array of type INT32 with 2 values.
    • 1st value: Width of the PML layer in grid points. Ghost points excluded.
    • 2nd value: Magnitude of the PML layer at the edge. Uses a sine wave ramp from 0 to max magnitude across the width of the layer.
pml = numpy.array([pmlw, pmla], dtype=numpy.int32)

  • destination - folder to save the returning shot records.
destination = "results/"

Output

The operator returns a series of numpy files corresponding to each shot record executed during the sweep. File name corresponds to the location of the shot.