FLAC3D Theory and Background • Fluid-Mechanical Interaction

Input Instructions for Fluid-Flow Analysis

Fluid Commands

The following commands are provided to run fluid problems. There is no fluid command. The commands used for fluid analysis take the form of fluid-related keywords on the commands used for standard mechanical analysis. The command model configure fluid must be the first fluid command given before any other commands for fluid analysis are issued. model configure fluid can be specified at any stage of a FLAC3D analysis.

Table 1: Fluid Commands
geometry generate from-faces fluid
model configure fluid
model history fluid
model results interval fluid
model solve fluid
model fluid
zone apply well
zone apply-remove well
zone face apply discharge
zone face apply leakage
zone face apply pore-pressure
zone face apply-remove discharge
zone face apply-remove leakage
zone face apply table fluid
zone face group fluid
zone gridpoint fix pore-pressure
zone gridpoint fix well
zone gridpoint free pore-pressure
zone gridpoint free well
zone gridpoint initialize pore-pressure
zone history property-fluid
zone list profile property-fluid
zone relax excavate table fluid
zone relax modify table fluid
zone results model-fluid
zone fluid
zone fluid zone-based-pp
zone water

Fluid FISH Variables

The following scalar variables are available in a FISH function to assist with fluid analysis.

Table 2: Fluid FISH Functions
gp.biot.modulus
gp.pp
gp.pp.fix
gp.flow
gp.fluid.modulus
gp.fluid.tension
gp.sat
zone.flux
zone.fluid.model
zone.fluid.prop
zone.fluid.ratio
zone.fluid.stress.normal
zone.fluid.time.total
zone.fluid.timestep

Zone-Based Pore Pressure

A feature that allows you to set zone based pore pressure using FISH has been added to FLAC3D. This allows for the rapid import of pore pressures from an external source. The stress increment resulting from this zone-based pore pressure change is also incorporated. This feature has been implemented strictly for calculating mechanical changes to a model that result from changes in pore pressure in a zone. Fluid flow should not to be active in FLAC3D when this zone-based pore pressure feature is active.

This feature assumes that FLAC3D is configured for fluid calculations (model configure fluid) and that fluid flow calculations are set to off (zone fluid active off).

Zone-based pore pressures are stored in a “fluid-zone” which is enabled by the model configure fluid command. The stress change generated by a change in zone-based pore pressure is determined by the following equations:

(1)\[\begin{split}\begin{matrix} \sigma_{11}^{new} = \sigma_{11}^{old} - \alpha \Delta p \\ \\ \sigma_{22}^{new} = \sigma_{22}^{old} - \alpha \Delta p \\ \\ \sigma_{33}^{new} = \sigma_{33}^{old} - \alpha \Delta p \\ \end{matrix}\end{split}\]

where \(\alpha\) is the Biot coefficient, a material property of a fluid model (the default is 1.0).

The command to signal the use of zone-based pore pressure to FLAC3D is zone fluid zone-based-pp on. When this command is used, the FISH function zone.pp will allow you to retrieve and assign pore pressure to a zone. Note that when zone fluid zone-based-pp on, FLAC3D keeps track of the last two pore pressures that were assigned to this zone with the zone.pp FISH function. This allows the computation of a pore pressure change (\(\Delta p = p^{new} - p^{old}\)). Each time a pore pressure is assigned to a zone with the zone.pp FISH function, the previously stored pore pressure becomes \(p^{old}\) and the newly assigned pore pressure becomes \(p^{new}\).

If zone fluid zone-based-pp is initially set to off, FLAC3D will use gridpoint-based pore pressures in its calculations (this is FLAC3D’s default mode).

If a zone fluid zone-based-pp on command is encountered, it automatically initializes the zone-based pore pressure (both \(p^{new}\) and \(p^{old}\)) with the average gridpoint-based pore pressures.

If zone fluid zone-based-pp was on and a zone fluid zone-based-pp off command is issued, then the zone-based pore pressures are not used to initialize the gridpoint-based pore pressures with the zone-based pore-pressures.

The commands zone gridpoint fix pore-pressure and zone gridpoint initialize pore-pressure do not alter the zone-based pore pressures. They only work with gridpoint-related quantities. Plotting “Zone -> Color by Contour -> Value: Pore Pressure” shows only gridpoint-related quantities. Instead, the zone-based pore pressure can be stored in zone.extra and then can be plotted through “Zone -> Color by Contour -> Extra; Source Zone.”

The following is one modeling sequence demonstrating the use of this feature.

  1. Create your model geometry (zones) — remembering model configure fluid.
  2. Assign mechanical model and properties to zones.
  3. Assign fluid model and Biot coefficient (1 by default) to zones.
  4. zone fluid active is set to off; zone mechanical active is set to on and zone fluid zone-based-pp is set to on.
  5. Assign a baseline pore pressure to each zone. Use the zone.pp function to do this.
  6. Assign updated pore pressure to each zone. Use the zone.pp function to do this.
  7. Solve to mechanical equilibrium.

A simple example case is provided in “\datafiles\Fluid\ZoneBasedPorePressure”; the main datafile is listed below.

ZoneBasedPorePressure.dat:

model new
model large-strain off
model configure fluid
;
zone create brick size 2 2 2 point 1 (1 0 0) point 2 (0 1 0) point 3 (0 0 1)
zone gridpoint fix velocity-x range union position-x 0 position-x 1
zone gridpoint fix velocity-y range union position-y 0 position-y 1
zone gridpoint fix velocity-z range position-z 0
; mechanical model
zone cmodel assign elastic
zone property density 1.0 bulk 400 shear 300
model gravity 0 0 -1
; fluid flow model
zone fluid cmodel assign isotropic
zone fluid property biot 1.0
;
model fluid active off
model mechanical active on
zone fluid zone-based-pp on
;
program call 'fishFunctions'
;
; read baseline pp from file basetp.dat and store in zones
[_baseline]
; read updated pp and temp from file updatetp.dat and store in zones
[_update]
;
model solve
; store zone-based pp to zone extra
[_pt2extra]
;
model save 'zonebased'