Fluid substitution

The Fluid substitution wizard models how replacing the pore fluid changes elastic well-log curves. It estimates the dry rock frame from the input elastic logs and their original fluid state, inserts a target fluid, and prepares substituted curves without changing the input logs.

The calculation uses isotropic, low-frequency Gassmann substitution with the selected fluid mixing law. Its results are modelled, not measured.

Launching the wizard

Open the Petrophysics ribbon bar and click Fluid substitution in the Rock Physics section; the button caption is shortened to Fluid sub. Choose one Well, or select Batch calculate and choose All wells, a well filter, a Data Manager well folder, or a well section. Limit the interval on the MD range, TVD range, TVDSS range, Markers range, or Zones range tab, complete the Inputs, Fluids, and Scenarios tabs, and click Run.

Fluid_substitution_wizard.png

Drag the horizontal and vertical dividers to give the interval, parameters, preview, or QC area more room. Their positions are restored the next time the wizard opens.

Setting up the substitution

On the Inputs tab, every curve list offers all curves of the selected well and preselects a recognized curve type where one is available. The unit follows the selected curve where possible.

  • Compressional velocity — select the P-wave velocity or slowness curve and set its unit to m/s, ft/s, µs/ft, or µs/m.
  • Shear velocity — select the S-wave velocity or slowness curve in the same units. This wizard does not predict a missing shear curve.
  • Bulk density — select the density curve and set its unit to g/cc or kg/m3.
  • Porosity source — choose Curve, Constant, or Derived from density. The density-derived value is φ = (ρgrain − ρbulk) / (ρgrain − ρfluid). Total and effective porosity are separate curve types, so select the one that represents the rock model.
  • Matrix modulus source — choose a Constant Km, a Curve in GPa or MPa, or Mineral mixing (VRH). Mineral mixing uses matching Mineral Volume Estimation curves from one LAS set and the editable bulk-modulus values in Mineral table.... A mineral with no bulk modulus is excluded and reported rather than treated as zero.
  • Where to substitute — enable the shale-volume, porosity, or reservoir-flag checks needed to select reservoir samples within the chosen interval. A sample must pass every enabled check. For Other samples, choose Keep original values to preserve the surrounding logs for seismic modelling, or Leave empty. Samples failing a QC check within the reservoir remain empty.

Curves written by Elastic properties are recognized by their curve types. If a required shear curve is missing, create it there with Predicted from Vp, then reopen Fluid substitution so the new curve can be selected. Mineral mixing (VRH) similarly consumes curves written by Mineral Volume Estimation.

The line below Shear velocity reports the selected curve's provenance:

  • measured — the Elastic properties settings identify a measured DTS source;
  • predicted (Greenberg-Castagna) — the substituted Vs inherits a prediction from Vp;
  • constant Vp/Vs — the shear modulus and substitution depend on the constant ratio;
  • unknown — the curve carries no Elastic properties run settings, so the wizard cannot establish whether it was measured or modelled.

The prediction and provenance warnings are informative; they do not block the calculation.

Defining the fluids

The Fluids tab defines Brine, Oil, and Gas bulk moduli and densities shared by the Original and all scenarios. Select the source independently for each component; changing one component's source leaves the others unchanged:

  • Constant — applies the entered component properties throughout the selected interval. Choose Curve to read component properties from logs, or From conditions to calculate them from reservoir pressure, temperature, salinity, oil gravity, gas-oil ratio, and gas gravity.
  • Per zone — uses a separate row for each selected zone. Select zones in the interval selector, choose Per zone, and use Define per zone... to edit the values. An empty zone row falls back to the constants, and the completion report identifies the fallback.

For a component set to Curve on Fluids, select its bulk-modulus and density curves from the intended LAS set. A blank modulus or density picker keeps the corresponding typed constant. Once a curve is selected, missing values produce MISSING_INPUT; the calculation does not replace them with constants, zone values, or neighboring samples.

For the Original and every target scenario, Sw, So, and Sg must be between 0 and 1 and must sum to 1. The wizard displays the sum and does not normalize it. With Uniform (Wood), Kf = 1 / (Sw/Kbrine + So/Koil + Sg/Kgas) and ρf = Sw·ρbrine + So·ρoil + Sg·ρgas. Alternatively, choose Brie and set the Brie exponent for effective fluid mixing representing patchy saturation.

On Scenarios, the fixed Original row describes the fluid in the input logs. Enter constant saturations there, or independently select each component's source under Original saturations. Choose Curve to read that component's saturation from a selected curve and LAS set, or Per zone for zone values. A Curve saturation source requires a selected curve; missing values produce MISSING_INPUT without falling back to constants or neighboring samples. These saturation curves apply only to the Original; target scenarios use their entered Sw, So, and Sg with the shared component properties from Fluids. Use Add and Remove to manage up to eight target scenarios, each with a name and Sw, So, and Sg. Saturation sweep... adds scenarios that replace brine with gas or oil in steps. One Run calculates all target scenarios.

Calculation and assumptions

For each valid sample, the original saturated bulk modulus and shear modulus are Ksat original = ρ1·(Vp1² − 4/3·Vs1²) and μ = ρ1·Vs1². The inverse Gassmann step removes the original fluid to obtain Kdry; the forward step inserts the target fluid to obtain Ksat substituted. The target density is ρ2 = ρ1 + φ·(ρf target − ρf original), and the wizard derives the substituted Vp and Vs from the new density and moduli.

The shear modulus is unchanged by the fluid, but Vs can still change because the density changes. The calculation does not clamp non-physical moduli, porosity, or saturations. Null input gaps and values outside an input curve's depth range remain null.

The Assumptions area states the model scope and selected mixing law: isotropic, low-frequency Gassmann behavior; unchanged rock frame, shear modulus, and porosity; and equilibrated pore-fluid pressure.

Output curves

Select the outputs in the Output curves table. Every selected row has an editable curve name and a unit list.

  • Selected by default — Vp, Vs, Density, AI, SI, and VpVs.
  • Optional — Kdry, Ksat original, Ksat substituted, Shear modulus, Kf original, Kf target, Fluid density original, Fluid density target, and Poisson's ratio.

Vp and Vs can be written as velocity or slowness in m/s, ft/s, µs/ft, or µs/m. Density outputs use g/cc or kg/m3; AI and SI use (g/cc)*(m/s) or (kg/m3)*(m/s); moduli use GPa or MPa; VpVs and Poisson's ratio are unitless. Poisson's ratio remains null where the substituted Vp is not greater than √2·Vs.

Output curve names are base names. Each scenario saves its own set as <name> - FS <scenario>. For example, scenario Gas_20pct produces Vp - FS Gas_20pct.

The saved results are ordinary typed well-log curves. Substituted Vp or slowness together with substituted Density can be selected by name in Well-Tie; AI and SI are not Well-Tie inputs. The curves can also be displayed in well-log views, used in cross-plots, or exported. The AVO tab uses prestack seismic rather than well logs and does not consume these outputs.

After a successful Run, click Seismic response... to compare synthetics and AVO from the selected well's Original and calculated scenarios without saving the curves first. See Seismic response for setup, comparison views, and saving.

Running, quality control, and saving

  • Save to workflow — adds the current wells or batch scope, interval, inputs and units, porosity and matrix sources, shared fluid properties, each component's property and Original saturation sources and selected curves and LAS sets, mixing law, Original saturations, target scenarios, reservoir selection, outputs, names, and units to the project Workflow for later replay.
  • Run — calculates the selected curves and updates the Input/Output preview and QC flags report without writing curves to the well.
  • Save — stores all calculated outputs. If a destination name already exists, one confirmation covers the affected output set; if no current result exists, the wizard reports Nothing to save.
  • Close — closes the wizard.

Changing an input, unit, parameter, fluid value, output, or zone selection clears the previous result so an obsolete preview cannot be saved. While you edit calculation parameters, the interval selected through MD range, TVD range, TVDSS range, Markers range, or Zones range remains active until you explicitly change or clear it. Click Run to recalculate within that interval.

The report counts every evaluated sample as OK or under one of these QC flags:

  • MISSING_INPUT — a required curve value, porosity, matrix modulus, or mineral volume is unavailable.
  • LOW_POROSITY and INVALID_POROSITY — porosity is below the cut-off or outside the physical range from 0 inclusive to 1 exclusive.
  • INVALID_SATURATION, INVALID_FLUID_MODULUS, and INVALID_DENSITY — a fluid definition or density is not physically valid.
  • INVALID_VELOCITY, INVALID_KSAT, and KSAT_EXCEEDS_MATRIX — the input velocity relationship or original saturated modulus is non-physical, including an original Ksat at or above Km.
  • INVALID_KDRY, INVALID_TARGET_KSAT, and NUMERIC_SINGULARITY — the inverse or forward substitution cannot produce a finite physical modulus.
  • UNIT_ERROR — the selected units put velocity or density outside a plausible rock range.
  • MINERAL_MODULUS_MISSING — mineral mixing has no usable bulk-modulus value for the available mineral volumes.

The completion report gives totals for all wells and a separate QC breakdown for each well. A batch continues when one well is missing a required curve; the well is skipped and the reason is reported. It also names zones that used constant fluid values and minerals excluded from a VRH mix.

Scope and limitations

The fluid components are brine, oil, and gas. The wizard does not apply anisotropic, invasion, pressure-dependent frame, or dynamic-to-static corrections. It never silently normalizes saturations, clamps porosity or moduli, fills input gaps, or modifies the original logs.

See Also