|
<< Click to Display Table of Contents >> Navigation: Modeling > FD 2D modeling |
FD 2D modeling performs 2D acoustic finite-difference forward seismic modeling. Starting from a user-supplied depth-domain interval velocity model, the module simulates the propagation of a seismic wave for each source position along the profile and records the resulting wavefield at a set of receiver positions, producing a full synthetic pre-stack dataset in the time domain.
The finite-difference scheme advances the acoustic wave equation forward in time step by step. At each time step, the wavelet is injected at the source location and the wavefield is propagated through the velocity grid. Absorbing sponge boundary conditions attenuate energy at the model edges to suppress artificial reflections. The module supports both CPU multi-threading and GPU acceleration, making it practical for typical 2D profile lengths. The primary use case is generating synthetic shot gathers for algorithm testing, velocity model validation, and full-waveform inversion studies.
The output is a standard pre-stack seismic file (.gsd) containing one shot gather per modeled source location. Each gather holds traces recorded by the set of active receivers around that source. The output sample interval is fixed at 4 ms regardless of the internal modeling time step, so the file is immediately compatible with standard processing workflows.
Path and file name for the output pre-stack synthetic seismic dataset, written in g-Platform native .gsd format. The file will be created or overwritten when the module runs. All modeled shot gathers are appended sequentially to this file in source order. Make sure the target directory exists and has sufficient disk space before running, as the output size scales with the number of sources, receivers, and recording time.
The 2D depth-domain interval velocity model that drives the simulation. Connect a velocity gather (depth axis in metres, lateral axis in traces). The number of lateral positions in this model determines the total number of source locations that will be modeled. The vertical sample interval of the velocity gather sets the internal depth step DZ used by the finite-difference engine, overriding the constant model DZ parameter. Ensure the model covers the full depth range of interest and that velocities are geologically reasonable; large velocity contrasts between adjacent cells will generate strong reflections in the synthetic data.
Selects the execution engine for the finite-difference propagation. When enabled (default), the module uses the standard CPU finite-difference engine with sponge boundary absorption. When disabled, the module activates the RTM-based engine and respects the Execute on setting to choose between CPU and GPU acceleration. For most routine synthetic modeling tasks, the default CPU engine is sufficient. Disable this option and select GPU execution when working with large velocity models or when computation speed is the priority and a compatible GPU is available.
This group contains the grid geometry parameters that define the spatial discretisation of the finite-difference model. The lateral grid spacing (Delta X) is always applied. The vertical grid spacing (Delta Z) and the lateral cell count (Count X) are informational when a velocity gather is connected, because the engine derives those values directly from the input velocity model geometry. The depth cell count (Count Z) is likewise taken from the velocity gather when present.
Number of lateral grid cells in the finite-difference model. Default: 500. When a depth velocity gather is connected, this value is automatically overridden by the number of traces in that gather; the displayed value becomes informational only. Minimum: 1.
Number of depth cells in the finite-difference model. Default: 1000. When a depth velocity gather is connected, this value is automatically overridden by the number of depth samples in that gather. Minimum: 5.
Lateral (horizontal) spatial grid spacing in metres. Default: 5 m. This value is always applied by the engine. It must satisfy the stability criterion for the finite-difference scheme: Delta X must be small enough relative to the dominant wavelength to avoid numerical dispersion. A common rule of thumb is at least 5 grid points per minimum wavelength (minimum wavelength = minimum velocity / maximum frequency). Minimum: 1 m.
Vertical (depth) spatial grid spacing in metres. Default: 5 m. When a depth velocity gather is connected, the engine reads the vertical sample interval directly from that gather and this parameter is overridden. The same dispersion criterion applies as for Delta X. Minimum: 1 m.
Controls how the module determines the surface elevation (topography) of each trace position and, consequently, where sources and receivers are placed vertically. Four options are available:
No topo — flat surface at depth zero. Use for flat-terrain models or when no topography information is available.
By air velocity (default) — the module scans each velocity column from the top and finds the first sample whose velocity exceeds the specified Air velocity value. That depth becomes the surface for the corresponding trace. Use this when the velocity model contains air or near-surface low-velocity values encoded at the top of each column to represent variable terrain.
By headers — the surface elevation is read from the trace headers of the velocity gather. All traces must share the same datum; the module validates this and returns an error if they do not. Use this when the velocity model was built on a common datum and header elevations are accurate.
OBN data — ocean-bottom node acquisition mode. The module scans each velocity column from the top looking for the first value exceeding the Air velocity threshold, and sources are placed at the water surface (depth zero). Use for OBN geometry where receivers are on the seafloor and sources are at the surface.
The velocity threshold used to identify the subsurface surface when Detect topography is set to By air velocity or OBN data. Units: m/s. Default: 310 m/s. Any velocity column cell at or below this value is treated as air (or water), and the surface is placed at the first cell that exceeds it. For land data with air-filled columns, 310–350 m/s is typical. For marine OBN data, set this to the water velocity (approximately 1480–1500 m/s) so the module correctly identifies the water bottom. This parameter is hidden when Detect topography is set to No topo or By headers.
The reference datum elevation in metres, used when Detect topography is set to By headers. Default: 2000 m. The module validates that the datum stored in the velocity gather headers matches this value; a mismatch causes an error. Set this to match the datum at which the velocity model was built. Minimum: -9000 m (negative values indicate depth below sea level).
Extra lateral extent in metres added beyond the receiver spread on each side when extracting the velocity sub-model for a given shot. Units: m. Default: 500 m. Increasing this value gives the finite-difference wavefield more room to propagate laterally before reaching the absorbing boundaries, which reduces edge-reflection artefacts at the cost of slightly more memory. Set to zero if the full velocity model is always used, or increase it when steep dips near the model edges cause artefacts. Minimum: 0 m.
Interval between modeled source positions, in grid cells (not metres). Default: 5. The actual source spacing in metres equals Source step multiplied by Delta X. For example, with Delta X = 5 m and Source step = 5, sources are placed every 25 m along the profile. A value of 1 models every grid column as a source. Increasing this value reduces the total number of shots and speeds up computation proportionally, at the cost of coarser source sampling. Minimum: 1.
Half-spread receiver count: the number of receiver positions placed on each side of the source. Default: 100. The total number of traces per shot gather is at most 2 times this value (clipped at the model boundary). The maximum offset of the spread in metres equals Receivers count multiplied by Receivers step multiplied by Delta X. Ensure the spread is wide enough to capture reflections from the deepest target horizon. Minimum: 1.
Interval between receiver positions within each spread, in grid cells. Default: 1 (every grid column has a receiver). The receiver spacing in metres equals Receivers step multiplied by Delta X. A value of 1 samples receivers at every grid node, matching fine-scale modeling. Increasing this value sub-samples the receiver spread, reducing the number of traces per shot and the output file size. Minimum: 1.
Width of the absorbing (sponge) boundary zone, in grid cells, added around all four sides of the finite-difference grid. Default: 20 cells. The sponge layer attenuates the wavefield exponentially toward the grid edges, suppressing artificial reflections that would otherwise contaminate the synthetic data. Larger values provide stronger attenuation at low frequencies but increase memory usage. Values in the range 10–40 are typical; 20 is appropriate for most models. Minimum: 0 (no sponge — not recommended).
Scaling coefficient that controls the width of the effective attenuation taper relative to the Padding size. Default: 4. The sponge decay envelope width is defined as 4 times the padding size divided by this coefficient. A higher coefficient narrows the effective attenuation zone, while a lower coefficient broadens it. The default value of 4 produces a well-behaved Gaussian taper. Adjust this value only if boundary reflections persist after increasing the padding size. Minimum: 0.
When enabled, applies a free-surface boundary condition at the top of the model, causing the wavefield to reflect back downward as if from an air-earth interface. Default: disabled. Enable this option when you want to include surface multiples and ghost reflections in the synthetic data — for example, when modelling land acquisition where the earth surface acts as a strong reflector. Leave disabled when modeling absorbing surface conditions (e.g., marine data or when multiples are not of interest).
Peak (dominant) frequency of the Ricker wavelet used as the source signature when no external wavelet is supplied. Units: Hz. Default: 20 Hz. The Ricker wavelet is the second derivative of a Gaussian; its spectrum is concentrated around the peak frequency. Higher frequencies produce sharper wavelets and better temporal resolution, but they require a finer grid spacing and smaller time step to avoid numerical dispersion. Ensure that Delta X satisfies the sampling criterion for the chosen frequency at the minimum velocity in the model. This parameter has no effect when Use wavelet is enabled and a valid external wavelet gather is connected. Minimum: 1 Hz.
When enabled (default), the module replaces the internally generated Ricker wavelet with the waveform loaded from the Wavelet gather input. If the external wavelet sample interval does not match the modeling time step, the wavelet is automatically resampled before use. When no valid wavelet gather is connected, the module falls back to the internal Ricker wavelet regardless of this setting. Enable this option when you want to model the response to a realistic or measured source signature rather than a synthetic Ricker pulse.
An external source wavelet supplied as a time-domain gather. Connect a single-trace gather containing the wavelet waveform you want to use as the injection signal. The gather must be in the time domain. The module reads the first trace of this gather as the wavelet. If the sample interval of the wavelet differs from the Time step, the wavelet is resampled automatically. This parameter is active only when Use wavelet is enabled.
Controls whether the time-domain simulation parameters are specified directly or computed from a desired total recording time. Default: enabled.
When enabled, only Max t is shown. The time step and sample count are derived internally from the velocity model and stability constraints.
When disabled, Time step and Samples count are shown for manual control. Use manual mode when you need exact control over the finite-difference time step to satisfy a specific stability or dispersion criterion.
The finite-difference time increment used for each propagation step of the wave equation, in seconds. Default: 0.004 s (4 ms). This parameter is visible only when Calculate params is disabled. The time step must satisfy the Courant-Friedrichs-Lewy (CFL) stability condition: DT < min(DX, DZ) / (sqrt(2) * V_max), where V_max is the maximum velocity in the model. Violating this condition causes the simulation to become unstable and produce meaningless amplitudes. Minimum: 1e-8 s.
Total number of time steps to simulate (internal modeling samples). Default: 100. This parameter is visible only when Calculate params is disabled. The total modeled time equals Samples count multiplied by Time step. Ensure this is long enough for reflections from the deepest target to arrive at the surface. For example, to record 5 s of data with a 1 ms time step, set Samples count to 5000. Minimum: 1.
Maximum desired recording time in seconds, used when Calculate params is enabled. Default: 5 s. The module uses this value together with the velocity model and stability constraints to automatically determine the internal time step and total sample count. Set this to match the two-way travel time to the deepest reflector of interest plus a small margin. Increasing this value proportionally increases computation time because more time steps must be simulated for every source. Minimum: 0.00001 s.