FLAC3D Theory and Background • Fluid-Mechanical Interaction

Unsteady Groundwater Flow in a Confined Layer

Note

To view this project in FLAC3D, use the menu command Help ► Examples…. Choose “Fluid/UnsteadyGroundwaterFlowConfinedLayer” and select “UnsteadyGroundwaterFlowConfinedLayer.f3dprj” to load. The project’s main data files are shown at the end of this example.

A long embankment of width \(L\) = 100 m rests on a shallow saturated layer of soil. The width (\(L\)) of the embankment is large in comparison to the layer thickness, and its permeability is negligible when compared to the permeability, \(k\) = 10-12 m2/(Pa sec), of the soil. The Biot modulus for the soil is measured to be \(M\) = 10 GPa. Initial steady-state conditions are reached in the homogeneous layer. The purpose is to study the pore-pressure change in the layer as the water level is raised instantaneously upstream by an amount \(H_0\) = 2 m. This corresponds to a pore-pressure rise of \(p_1 = H_0 {\rho}_w g\) (with the water density \({\rho}_w\) = 1000 kg/m3 and acceleration of gravity \(g\) = 10 m/s2) at the upstream side of the embankment. Figure 1 shows the geometry of the problem:

../../../../../_images/confinedlayer-profile.png

Figure 1: Confined flow in a soil layer.

The flow in the layer may be assumed to be one-dimensional. The model has width \(L\). The excess pore pressure, \(p\), initially zero, is raised suddenly to the value \(p_1\) at one end of the model. The corresponding analytical solution has the form

\[\hat{p}(\hat{z},t)\ =\ 1 - \hat{z} - {2 \over {\pi}} \sum_{n=1}^\infty e^{- n^2\pi^2 \hat{t}}\left({\sin {n \pi \hat{z}} \over n}\right)\]

where the \(z\)-axis is running along the embankment width and has its origin at the upstream side, \(\hat{p} = {p\over p_1}\), \(\hat{z} = {z \over {L}}\), \(\hat{t} = c t/L^2\), and \(c = M k\).

In the FLAC3D model, the layer is defined as a column of 25 zones. The excess pore pressure is fixed at the value of 2 × 104 Pa at the face located at \(z\) = 0, and at zero at the face located at \(z\) = 100 m. The model grid is shown in Figure 2.

The analytical solution is programmed as a FISH function for direct comparison to the numerical results at selected fluid-flow times corresponding to \(\hat{t}\) = 0.05, 0.1, 0.2 and 1.0. The analytical and numerical pore-pressure results for these times are stored in tables.

../../../../../_images/confinedlayer-grid.png

Figure 2: FLAC3D grid for fluid flow in a confined soil layer.

UnsteadyGroundwaterFlowConfinedLayer-Explicit.dat contains the FLAC3D data file for this problem, using the explicit formulation to obtain the solution. UnsteadyGroundwaterFlowConfinedLayer-Implicit.dat contains the data file using the implicit formulation. The comparison of analytical and numerical excess pore pressures at four fluid-flow times for the explicit solution is shown in Figure 3, and for the implicit solution in Figure 4. Normalized excess pore pressure (\(p/p_1\)) is plotted versus normalized distance (\(z/L\)) in the two figures, where Tables 2, 4, and 6 contain the analytical solution for excess pore pressures, and Tables 1, 3, and 5 contain the FLAC3D solutions. The four flow times are 5 × 104, 105, 2 × 105, and 106 seconds for both explicit and implicit solutions. Steady-state conditions are reached by the last time considered. For both solution formulations, the difference between analytical and numerical pore pressures at steady state is less than 0.1%.

break
../../../../../_images/confinedlayer-explicit-pp.png

Figure 3: Comparison of excess pore pressures for the explicit-solution algorithm (analytical values = lines; numerical values = crosses).

../../../../../_images/confinedlayer-implicit-pp.png

Figure 4: Comparison of excess pore pressures for the implicit-solution algorithm (analytical values = lines; numerical values = crosses).

Data File

UnsteadyGroundwaterFlowConfinedLayer-Explicit.dat

model new
model large-strain off
model title 'Unsteady groundwater flow in a confined layer: Explicit Method'
fish automatic-create off
model configure fluid
program call 'fishFunctions'
[constants]
zone create brick size 1 1 25 point 1 (10 0 0) point 2 (0 10 0) ...
                              point 3 (0 0 [length])
; --- fluid flow model ---
zone fluid cmodel assign isotropic
zone fluid biot on
zone fluid property permeability [c_cond] 
zone gridpoint initialize biot [c_biom]
zone face apply pore-pressure [dp1] range position-z 0
zone face apply pore-pressure 0    range position-z 100
; --- settings ---
model mechanical active off
model fluid active on
;
model solve fluid time-total  5e4
zone gridpoint list fluid range position-x -0 position-y 0
[num_sol]
[ana_sol]
model solve fluid time-total 10e4
[num_sol]
[ana_sol]
model solve fluid time-total 20e4
[num_sol]
[ana_sol]
model solve fluid time-total 100e4
[num_sol]
[ana_sol]
model save 'confinedlayer-explicit'

UnsteadyGroundwaterFlowConfinedLayer-Implicit.dat

model new
model large-strain off
model title 'Unsteady groundwater flow in a confined layer: Implicit Method'
fish automatic-create off
model configure fluid
program call 'fishFunctions'
[constants]
zone create brick size 1 1 25 point 1 (10 0 0) point 2 (0 10 0) ...
                              point 3 (0 0 [length])
; --- fluid flow model ---
zone fluid cmodel assign isotropic
zone fluid biot on
zone fluid property permeability [c_cond]
zone gridpoint initialize biot [c_biom]
zone face apply pore-pressure [dp1] range position-z 0
zone face apply pore-pressure 0    range position-z 100
; --- settings ---
model mechanical active off
model fluid active on
zone fluid implicit on
model fluid timestep fix 1e3
;
model solve fluid time-total 5e4
zone gridpoint list fluid range position-x 0 position-y 0
[num_sol]
[ana_sol]
model solve fluid time-total 10e4
[num_sol]
[ana_sol]
model solve fluid time-total 20e4
[num_sol]
[ana_sol]
model solve fluid time-total 100e4
[num_sol]
[ana_sol]
model save 'confinedlayer-implicit'

;; Now do again with an attach layer
model new
model large-strain off
model title 'Unsteady groundwater flow in a confined layer: Implicit Method'
fish automatic-create off
model configure fluid
program call 'fishFunctions'
[constants]
zone create brick size 1 1 25 point 1 (10 0 0) point 2 (0 10 0) ...
                              point 3 (0 0 [length])
zone separate by-face range position-z 52.0
zone attach by-face
; --- fluid flow model ---
zone fluid cmodel assign isotropic
zone fluid biot on
zone fluid property permeability [c_cond]
zone gridpoint initialize biot [c_biom]
zone face apply pore-pressure [dp1] range position-z 0
zone face apply pore-pressure 0    range position-z 100
; --- settings ---
model mechanical active off
model fluid active on
zone fluid implicit on
model fluid timestep fix 1e3
;
model solve fluid time-total 5e4
zone gridpoint list fluid range position-x 0 position-y 0
[num_sol]
[ana_sol]
model solve fluid time-total 10e4
[num_sol]
[ana_sol]
model solve fluid time-total 20e4
[num_sol]
[ana_sol]
model solve fluid time-total 100e4
[num_sol]
[ana_sol]
model save 'confinedlayer-implicit-att'