Skip to content

Muskat problem

Supporting files

  • The input files for the benchmark simulation can be downloaded here
  • The GiD model (geometry, material and loading conditions etc.) is available here

In the following example we consider the unconfined groundwater flow through a section of a homogeneous earth dam with vertical slopes with the dimensions given in Figure 1. In the present example, the embankment has a height of 4 m. For this problem, also known as the "Muskat Problem", an analytical solution is presented in Polubarinova-Kochina (1962)1 for the calculation of the height of the seepage face. A graphical solution if provided in Lee and Leap (1997)2 and also given in Figure 1. For the water table locations depicted in Figure 1, the seepage height is \(s \approx 1.55\) m according to 1\(^,\)2.

Figure 1. Problem statement unconfined groundwater flow, Right: Graphical solution for the estimation of the seepage face height \(s\) according to Lee and Leap (1997)2.

The displacements are constrained at all nodes (only the flow of water is investigated in this example). The initial pore water pressure is assumed to be linearly distributed with the water table located at 0.48 m above the bottom boundary. Above 0.48 m the soil is initially partially saturated. During the analysis, the water table on left side of the dam is elevated up to a height of 3.22 m above the bottom boundary of the model.

The distribution of the phreatic surface in the dam and the height of the seepage face (size of the saturated area above the water table on the right-hand side of the dam) are the sought-after variables of this simulation.

The finite element model including information about later used set names as well as the initial distribution of pore water pressure \(p^w\) and degree of saturation \(S^w\).

Figure 2. Finite element model with final water levels (left) and initial conditions (right).

The soil was discretized using stabilized linear elements for the simulation of partially saturated soils. These elements use equal order interpolation for the displacements (u) and pore water pressures (p). The corresponding element types are u3p3-stab, u6p6-stab, u8p8-stab for the triangular (linear and quadratic) and rectangular (quadratic) elements, respectively. The keyword stab refers to the use of stabilisation techniques to allow for the use of equal order interpolation without suffering from oscillations in pore water pressure \(p^w\) due to the violation of the LBB (inf-sup) condition.

Simplified element formulation

With above element choice, changes in pore air pressure are judged as negligible, a reduced set of governing equations is used - namely the up-formulation. These elements consider negative pore water pressures as suction \(s=-p^w\) (instead of calculating it from the pore water pressure and the pore air pressure \(p^a\) as \(s=p^a-p^w\)).


Material definition

For the solid a linear elastic constitutive model is chosen. As no soil deformation is considered in this simulation this choice is completely arbitrary. The Young's modulus is 50 MPa and the Poisson's ratio \(0.3\). No information about the bulk modulus of the pore water \(K^w\) is provided, thus the bulk modulus is assumed to correspond to the one of pure water \(K^w = 2.2\cdot 10^6\) kPa. The density of the grains, water and air are assumed to be \(\rho^s=2.65\) t/m³, \(\rho^w=1.0\) t/m³ and \(\rho^a=0.0015\) t/m³.

*Material, name = elastic, phases = 3

*Mechanical = linear_elasticity
50d3, 0.3

*Density
2.65, 1.0, 0.0015

*Bulk modulus
2.2d6, 100.

Both the soil-water-retention curve and the dependence of the relative permeability on the effective degree of saturation are modelled using the well known van Genuchten model. The hydraulic conductivity \(K\) and the parameters of the van Genuchten model are chosen to: \(K= 1.7604 \cdot 10^{-6}\) m/s, \(n^{vG} = 1.377\) and \(\alpha^{vG}=0.383\). The residual degree of saturation is \(S^{res}=0.063\).

Soil-water-retention curve and relative permeability used for the simulation

The corresponding code for the specification of the hydraulic models and the permeability is given below.

*Dynamic viscosity
1d-6, 1d-8

*Permeability = isotropic
1.157407d-12

*Hydraulic = van Genuchten, Swr=0.063
0.383, 1.377
*Jacobian = Smoothed

*Relative permeability = van Genuchten
1d-6, 1d-6, 1.377

Permeability vs. hydraulic conductivity

Note that numgeo requires the prescription of the permeability \(K^s\) of the solid and the dynamic viscosity of the pore fluids \(\mu^f\) instead of the hydraulic conductivity \(K^f\), which are related as follows:

\[ K^f = \dfrac{K^s \gamma^f}{\mu^f} \]

Therein, \(\gamma^f\) and \(\mu^f\) are the specific weight and the dynamic viscosity of the fluid \(f\), respectively.

The dynamic viscosity of pore water is \(\mu^w=10^{-6}\) m\(\cdot\)s and of the pore air \(\mu^a=10^{-8}\) m\(\cdot\)s. Assuming a specific weight of 10 kN/m\(^3\) for the pore water, the permeability of the soil is calculated to \(1.157407 \cdot 10^{-12}\) m\(^2\).

Since the calculation of changes in effective stress are not of interest in this example, we neglect the contribution of the capillary pressure \(p^c=-p^w\) to the effective stress by choosing the crude-switch option for the Bishop effective stress:

*Bishop effective stress = Crude-Switch

Initial conditions

For the initial pore water pressure the water level is assumed to be located at a height of 0.48 m above the bottom of the model. This results in a linear distribution of pore water pressure taking values of \(p^w_0=4.8\) kPa at the bottom, \(p^w_0=0\) kPa at 0.48 m and \(p^w_0=-35.2\) kPa at the top of the dam.

*Initial conditions, type=pore water pressure, default
all, 0.0d0, 4.8d0, 4.d0, -35.2d0

The initial void ratio is \(e_0 = 0.5\).

*Initial conditions, type=void ratio, default
all, 0.5

Although it is not theoretically necessary for this simulation, we also define the initial stress state. The reason for this is that numgeo expects an initial stress to be specified for elements that discretise displacement as a degree of freedom. As this is of no further importance here (all displacements are fixed), we initialise it to zero.

*Initial conditions, type=stress, geostatic
all, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0

Calculation phases

Geostatic step

During the Geostatic step, the self weight of the soil (grains and pore water) is applied without generating any deformation. A gravitational body force of \(g=10\) m/s² acting in vertical (y) direction is considered. As stated previously, no deformation of the soil skeleton is expected. We therefore constrain the displacements of all nodes in \(x\) and \(y\) direction. In addition, we use boundary conditions to prescribe the pore water pressure. As in the initial conditions, the pore water pressure is assumed to vary linearly with depth for which the hydrostatic option is used.

*Step, name=Geostatic, inc=1, maxiter=100
*Geostatic

*Body force, instant
all, grav, 10.0, 0., -1, 0.

*Boundary
all, u1, 0
all, u2, 0

*Boundary, type=hydrostatic
all, pw, 10.0, 0.48

Next we define which quantities we want to display as a result of the simulation. For this example, we are interested in the degree of saturation sat (calculated and stored at the element level) and the pore water pressure pw (calculated and stored at the nodes). The step definition is closed by *End Step.

*Output, field, vtk, ascii
*Element, elset = all
sat
*Node, nset = all
pw

*End Step

Infiltration: (1) Transient solution

During the transient step we simulate the water supply at the left side of the dam. This is done by prescribing the pore water pressure at the corresponding nodes using a user defined subroutine. The total step time is chosen 172,800 seconds, corresponding to 2 days. Due to the strong non-linearities resulting from the saturation-suction relation and the relative permeability function, we limit the maximum allowed time increment size to 1000 seconds.

*Step, name=Saturation, inc=1e4, maxiter=32

*Transient
100, 172800, 1, 1000

*Body force, instant
all, grav, 10.0, 0., -1, 0.

*Boundary
all, u1, 0.
all, u2, 0.

During the transient step, the water level on the left-hand-side of the model left-sat is increased from initially 0.48 m to 3.22 m over a time period of 2.4 hours (8,640 seconds). Since the prescribed pore water pressure not only varies with time but also in space \(\tilde{p}^w(y,t)\) we use a time- and space-dependent Flexible Boundary Condition of type Moving-hydrostatic. This boundary condition will elevate the water table from 0.48 m to 3.22 m in 2.4 hours. The pore water pressure along the boundary left-sat follows a hydrostatic distribution with a slope of 10 kN/m³ and zero crossing at the height of the water table. On the right-hand-side (right-sat) the water level stays at 0.48 m which is enforced using a boundary condition.

*Boundary-Flexible, type=Moving-hydrostatic
left-sat, pw, 2, 10, 0.48, 0, 3.22, 8640

*Boundary, type=hydrostatic
right-sat, pw, 10.0, 0.48

A special boundary condition is needed if the phreatic surface reaches an open, freely draining surface. In the present simulation this is the case on the right-hand-side of the model since the seepage height \(s\) varies with time until it eventually reaches its final value. In such a case the pore fluid can drain freely down the face of the dam, so \(p^w=0\) at all points on this surface below its intersection with the phreatic surface. Above this point negative pore water pressures occur, with their particular value depending on the solution. This drainage-only flow condition consists of prescribing the flow velocity on the freely draining surface in a way that approximately satisfies the requirement of \(p^w=0\) on the completely saturated portion of this surface:

\[ q^w = \begin{cases} \tilde{k}_s \left(p^w - p^w_{target} \right) & \text{if}~~ p^w > p^w_{target} \\ 0 & \text{else}\end{cases} \]

where \(p^w_{target}\) is the target pore water pressure at the considered surface and \(\tilde{k}_s\) is the proportionality coefficient. In the present case \(p^w_{target}=0\) kPa and \(\tilde{k}_s\) can be estimated based on the characteristic element size \(c \approx 0.1\) m, the saturated hydraulic conductivity \(K\) and the specific unit weight of pore water \(\gamma^w=10\) kN/m³ as \(\tilde{k}_s = 10^3 K/\gamma^w c \approx 0.0015\) m³/Ns.

In numgeo this can be realized using the *DSLoad option:

*DSload, instant
surf-right, drainage-w, 0.0015

Upcoming release

With the upcoming release of numgeo, the characteristic element size of the underlying element will be automatically determined by numgeo.

Finally, we enable the convergence controls of the pore water pressure and disable the "global" convergence controls. The step is closed with *End Step and the input file with *End Input

*End Step
*End Input

Infiltration: (2) Steady-state solution

If we are only interested in the final stage of the simulation, the steady-state, a *Transient analysis is not required. To obtain a steady-state solution for prescribed boundary conditions, a *Static simulation can be performed. Steady-state analyses assume that there are no transient effects in the wetting liquid continuity equation, i.e. the steady-state solution corresponds to constant wetting liquid velocities and constant volume of wetting liquid per unit volume in the continuum.

In analyses of type Static, time (and time increments) have no physical meaning and are used to define "load increments", with \(t_{step}=1\) corresponding to 100 %. In the present example, we use the increments to gradually increase the water label height on the left-hand side of the soil body. Only minor changes are required compared to the transient simulation, starting with the step definition:

*Step, name=Saturation, inc=1e4, maxiter=32

*Static
1e-2, 1, 1e-3, 1e-2

The second modification concerns the boundary condition of the raising water table. Here also the physical times have to be replaced by "percentage of load" (replace 86400 by 1):

*Boundary-Flexible, type=Moving-hydrostatic
left-sat, pw, 2, 10, 0.48, 0, 3.22, 1

With these changes, the infiltration step will calculate the steady state solution only.


Results

The following figure presents the the simulation results obtained with numgeo for three different meshes by means of the distribution of pore water pressure in steady state conditions. Following the phreatic surface (line/surface at which \(p^w=0\) kPa holds) the seepage face \(s\) can be identified. The calculated seepage face by means of FEM fit reasonably well to the reference analytical solution (Muskat).

Distributions of pore water pressure and heights of the seepage face \(s\) (m) obtained for different element formulations and discretisations. The estimated seepage height from the nomograms of Lee and Leap (1997)2 is \(s^{Ll} \approx 1.55\).



  1. P. Y. Polubarinova-Kochina, Theory of ground water movement. Princeton university press, 1962. 

  2. K.-K. Lee and D. I. Leap, ‘Simulation of a free-surface and seepage face using boundary-fitted coordinate system method’, Journal of Hydrology, vol. 196, no. 1–4, pp. 297–309, Sep. 1997, doi: 10.1016/S0022-1694(96)03246-5.