In this chapter we start to address dynamical processes that generate percolation-like disordered structures. We will address the scaling behavior of diffusion fronts for diffusion in disordered media, and develop a theory for the front width. We will address the slow displacement of fluids in porous media with the invasion-percolation model. For this model, we will map the model onto a percolation system and demonstrate how the model changes with the introduction of an additional aspects, gravity.

12.1 Introduction

So far, we have studied the behavior and properties of systems with disorder, such as a model porous material in the form of a percolation system. That is, we have studied properties that depend on the existing disorder of the material. In this chapter, we will start to address dynamical processes that generate percolation-like disordered structures, but where the structures evolve, develop, and change in time.

The first dynamic problem we will address is the formation diffusion fronts, and we will demonstrate that the front of a system of diffusing particles can be described as a percolation system.

The second dynamic problem we will address is the slow displacement of one fluid by another in a porous medium. We will in particular demonstrate that the invasion percolation process generates a fractal structure similar to the percolation cluster by itself - it is a process that drives itself to a critical state, similar to the notion of Self-Organized Criticality [3]. We will then address how we can study similar processes in the gravity field, and, in particular, the influence of stabilizing and destabilizing mechanisms.

12.2 Diffusion Fronts

The first dynamical problem we will address is the structure of a diffusion front [31] on a square lattice. One example of such a process is the two-dimensional diffusion of particles from a source at \(x=0\) into the \(x>0\) plane, when particles are not allowed to overlap. The system of diffusing particles is illustrated in Fig. 12.1.

Fig. 12.1
Two graphs of the diffusion front. Left. It presents the process of the two-dimensional diffusion of particles from a source, from a distance of X c. The width of the front is marked as Xi. Right. Presents a close-up view of a section of the left graph. It reveals the colored checkered patterns.

Illustration of the diffusion front. Particles are diffusing from a source at the left side. We address the front separating the particles connected to the source from the particles not connected to the source. (a) The average distance is given by \(x:c\) shown in the figure. The width of the front, \(\xi (x_c)\), as \(x:c\) is also illustrated. The different clusters are colored to distinguish them from each other. The close-up in figure (b) illustrates the finer details of the diffusion fronts and the local cluster geometries

Exact Solution

For this problem we know the exact solution for the concentration, \(c(x,t)\), of particles, corresponding to the occupation probability \(P(x,t)\). The solution to the diffusion equation with a constant concentration at one boundary, here \(P(x=0,t) = 1\), is the error function, which is the integral over a Gaussian function:

$$\displaystyle \begin{aligned} P(x,t) = 1 - \text{erf}(\frac{x}{\sqrt{Dt}} ) \; , \end{aligned} $$
(12.1)

where the error function is defined as the integral:

$$\displaystyle \begin{aligned} \text{erf}(u) = \frac{2}{\sqrt{2 \pi}} \int_{0}^{u} e^{\frac{-v^2}{2}} dv \; . \end{aligned} $$
(12.2)

This solution produces the expected variance \(\langle x^2 \rangle = Dt\), where D is the diffusion constant for the particles. There is no y (or z) dependence for the solution.

Structure of Clusters Connected to Diffusion Front

We will address the structure of connected clusters of diffusing particles. Two particles are connected if they are neighbors so that they inhibit each others diffusion in a particular direction. If we fix t, we notice that the system will be compact close to \(x=0\), and that there only will be a few thinly spread particles when \(x \gg \sqrt {Dt}\). In this system, the occupation probability varies with both time t and spatial position x. However, we expect the system of diffusing particles to be connected to the source out to a distance \(x:c\) corresponding to the point where the occupation probability is equal to the percolation threshold \(p:c\) for the lattice type studied. That is:

$$\displaystyle \begin{aligned} P(x_c,t) = p_c \; , \end{aligned} $$
(12.3)

defines the center of the diffusion front: the front separating the particles that are connected to the source from the particles that are not connected to the source. We notice that \(x_c(t) = \sqrt {Dt}\).

Width of the Diffusion Front

What is the width of the diffusion front? For a given time t, the occupation probability decreases with distance from \(x:c\). The correlation length will therefore depend on the distance \(\delta x = x - x_c\) to \(x:c\). We expect that a cluster may be connected to the front if it is within a distance \(\xi \) of \(x:c\). Particles that are further away than the local correlation length, \(\xi \), will not be connected over such distances, and will therefore not be connected. Particles that are closer to \(x:c\) than \(\xi \) will typically by connected through some connecting path. We will therefore introduce \(\xi \) as the width of the front, corresponding to the distance at which the local correlation length, due to the occupation probability \(P(x,t)\), is equal to the distance from \(x:c\). The local correlation length at a position x, \(\xi (x)\), is given as

$$\displaystyle \begin{aligned} \xi(x) = \xi_0 | P(x,t) - p_c|^{-\nu} \; , \end{aligned} $$
(12.4)

The distance w at which \(\xi (x_c + w) = w\) gives the width of the front. We can write this self-consistency equation for w as

$$\displaystyle \begin{aligned} w = \xi_0 | P(x+w,t) - p_c|^{-\nu} \; . {} \end{aligned} $$
(12.5)

Let us introduce a Taylor expansion of \(P(x)\) around \(x=x:c\):

$$\displaystyle \begin{aligned} P(x,t) \simeq P(x_c,t) + \left. \frac{d P}{dx} \right|_{x_c} (x - x_c) \; , \end{aligned} $$
(12.6)

where we recognize that \(x_c \propto \sqrt {Dt}\) gives

$$\displaystyle \begin{aligned} \left. \frac{dP}{dx} \right|_{x_c} \propto \frac{1}{\sqrt{Dt}} \propto \frac{1}{x_c} \; . \end{aligned} $$
(12.7)

We insert this into the self-consistency Eq. 12.5) getting

$$\displaystyle \begin{aligned} w = \xi_0 | w \left. \frac{dP}{dx} \right|_{x_c} | ^{-\nu} \propto (w/x_c)^{-\nu} \; , \end{aligned} $$
(12.8)

which gives

$$\displaystyle \begin{aligned} w \propto x_c^{\nu/(1 + \nu)} \; . \end{aligned} $$
(12.9)

The width of the front therefore scales with the average position of the front, and the scaling exponent is related to the scaling exponent of the correlation length for the percolation problem.

Time Development

What happens in this system with time? Since \(x:c\) is increasing with time, we see that the relative width decreases:

$$\displaystyle \begin{aligned} \frac{w}{x_c} \propto \frac{x_c^{\nu/(1 + \nu)}}{x_c} \propto x_c^{-\frac{1}{1 + \nu}} \; . \end{aligned} $$
(12.10)

This effect will also become apparent under renormalization. Applying a renormalization scheme with length b, will result in a change in the front width by a factor \(b^{\nu /(1 + \nu )}\), but along the y-direction the rescaling will simply be by a factor b. Successive applications will therefore make the front narrower and narrower.

12.3 Invasion Percolation

We will now study the slow injection of a non-wetting fluid into a porous medium saturated with a wetting fluid. In the limit of infinitely slow injection, this process is termed invasion percolation for reasons that will soon become obvious [12, 38].

Physical System: Fluid Saturated Porous Medium

When a non-wetting fluid is injected slowly into a saturated porous medium, the pressure in the non-wetting fluid must exceed the capillary pressure in a pore-throat for the fluid to propagate from one pore to the next, as illustrated in Fig. 12.2. The pressure difference, \(\delta P\) needed corresponds to the capillary pressure \(P:c\), given as

$$\displaystyle \begin{aligned} P_c = \frac{\varGamma}{\epsilon} \; , \end{aligned} $$
(12.11)

where \(\varGamma \) is the interfacial surface tension, and \(\epsilon \) is the characteristic size of the pore-throats in the porous medium. However, there will be some disorder present in the porous medium corresponding to local variation in the characteristic pore sizes \(\epsilon \). This will lead to a distribution of the capillary pressure thresholds, \(P:c\), needed to invade a particular pore. We will assume that the medium can be described as a set of pores connected with pore throats with a uniform distribution of capillary pressure thresholds, and we will assume that the capillary pressure thresholds are not correlated but statistically independent. We can therefore rescale the pressure scale, by subtracting the minimum pressure threshold and dividing by the range of pressure thresholds, and describe the system as a matrix of critical pressures \(P:i\) required to invade a particular site.

Fig. 12.2
2 illustrations. Left. A diagram presents how the non-wetting fluid is injected slowly into a saturated porous medium, the fluid propagates from one pore to the next. The pore size is marked as epsilon. Right. An array of square boxes presents a set of pores connected with pore throats with a uniform distribution.

Illustration of the invasion percolation process in which a non-wetting fluid is slowly displacing a wetting fluid. The left figure shows the interface in a pore throat: the pressure in the invading fluid must exceed the pressure in the displaced fluid by an amount corresponding to the capillary pressure \(P_c = \varGamma /\epsilon \), where \(\varGamma \) is the interfacial surface tension, and \(\epsilon \) is a characteristic length for the pore throat. The right figure illustrates the invasion front after injection has started. The fluid may invade any of the sites along the front indicated by small circles. The site with the smallest capillary pressure threshold will be invaded first, changing the front and exposing new boundary sites

Modeling the Fluid Displacement Process

The fluid displacement process can be modeled by assuming that all the sites on the left side of the matrix are in contact with the invading fluid. The pressure in the invading fluid is increased slowly, until the fluid invades the connected site with the lowest pressure threshold. This generates a new set of invaded sites in contact with the inlet, and a new set of neighboring sites. The invasion process continues until the invading fluid reaches the opposite side. Further injection will then not produce any further fluid displacement, the fluid will flow through the system through the open path generated.

Computational Implementation

How can we transfer this model description to a computational model? We introduce a lattice of pores to represent the pore throat sizes. For each lattice site, there is a critical pore size into that pore, with a critical pressure, \(p:i\), needed to push the fluid into this pore. We map the pressure onto a scale from \(0.0\) to \(1.0\), where \(1.0\) represents the pressure needed to invade all pores in the lattice.

We then start to gradually increase the pressure in the fluid and allow the fluid to invade from the left side of the lattice. Let us say we have increased the pressure to the value p (\(0 \leq p \leq 1\)). This would mean that all sites that have \(p_i \leq p\)and that are connected to the left side would be invaded.

This corresponds to a percolation problem. If we make a percolation system with occupation probability p, then the fluid will have invaded all the clusters that are connected to the left side. Thus, we have mapped the invasion percolation problem onto a percolation problem. Let us implement this approach.

First, we generate a random lattice of critical pressures and an array of pressures p that we will loop through:

We step gradually through this set of p-values, finding the clusters of connected sites that have p-values smaller than p[npstep]

Then, we find the labels of all the clusters on the left side of the lattice. All the clusters with these labels are connected to the left side and are part of the invasion percolation cluster called cluster. We do this in two steps. First, we find a list of unique labels that are on the left side. Then we find all the clusters with labels that are in this list using the numpy-function isin:

Then we make a matrix that stores at what time t (pressure value \(p(t)\)) a particular site was invaded. This is done by simply adding a 1 for all set sites at time t to a matrix pcluster. The first clusters invaded will then have the highest value in the pcluster matrix. We use the pcluster matrix to visualize the dynamics.

Finally, we check if the fluid has reached the right-hand side by comparing the labels on the left-hand side with those on the right-hand side. If any labels are the same, there is a cluster connecting the two sides (a spanning cluster), and the fluid invasion process stops:

The whole program for the simulation, including initialization of pcluster is then:

Results for Fluid Displacement Process

The resulting pattern of injected nodes is illustrated in Fig. 12.3, where the colors indicate the pressure at which the injection took place. It can be seen from the figure that the injection occurs in bursts. When a site is injected, many new connected neighbors are available as possible sites to invade. As the pressure approaches the pressure needed to percolate to the other side, these newly appearing sites of the front will typically also be invaded, and invasion will occur in gradually larger regions. These bursts have been characterized by Furuberg et al. [12], and it can be argued that the distribution of burst sizes as well as the time between bursts are power-law distributed.

Fig. 12.3
A plot presents the colored patterns of injected nodes. The colors indicate the pressure at which the injection took place. The injection occurs in bursts.

Illustration of the invasion percolation cluster. The color-scale indicates normalized pressure at which the site was invaded

Mapping Invasion Percolation onto Percolation

Based on this algorithmic model for the fluid displacement process, it is also easy to relate the invasion percolation problem to ordinary percolation. For an injection pressure of p, all sites with critical pressure below or equal to p are in principle available for the injection process. However, it is only the clusters of such sites connected to the left side that will actually be invaded, since the invasion process requires a connected path from the inlet to the site for a site to be filled. We will therefore expect that the width of the invasion percolation front corresponds to the correlation length \(\xi = \xi _0 (p_c - p)^{-\nu }\) as p approaches the percolation threshold \(p:c\), because this is the length at which clusters are connected. That is, clusters that are a distance \(\xi \) from the left side will typically be connected to the left side, and therefore connected, whereas clusters that are further away than \(\xi \) will typically not be connected and therefore not invaded. This shows that the critical pressure will correspond to \(p:c\). This also shows that when the fluid reaches the opposite side, the system is exactly at \(p:c\), and we expect the invasion percolation cluster to have the same scaling properties as the spanning cluster at \(p=p:c\). There will be small differences, because the invasion percolation cluster also contains smaller clusters connected to the left side, but we do not expect these to change the scaling behavior of the cluster. That is, we expect the fractal dimension of the invasion percolation cluster to be D. This implies that the density of the displaced fluid decreases with system size.

Invasion Percolation with and Without Trapping

The process outlined above does, however, not contain all the essential physics of the fluid displacement process. For displacement of an incompressible fluid, a region that is fully bounded by the invading fluid cannot be invaded, since the displaced fluid does not have any place to go. Instead, we should study the process called invasion percolation with trapping. It has been found that when trapping is included, the fractal dimension of the invasion percolation cluster is slightly smaller [10]. In two dimensions, the dimension is \(D \simeq 1.82\).

This difference between the process with and without trapping disappears for three-dimensional geometries because trapping become unlikely in dimensions higher than 2. Indeed, direct numerical modeling shows that the fractal dimension for both the ordinary percolation system and invasion percolation is \(D \simeq 2.5\) for invasion percolation with and without trapping.

12.3.1 Gravity Stabilization

The invasion percolation cluster displays self-similar scaling similar to that of ordinary percolation. This implies that the position \(h(x,p)\) of the fluid front as a function of the non-dimensional applied pressure p is given as the correlation length—since this is how far clusters connected to the left side typically are connected. That is, when p approaches \(p:c\), the average position of the front is \(\bar {h}(x,p) = \xi (p) = \xi _0 (p_c - p)^{-\nu }\). The width, \(w(p)\) of the front is also given as the correlation length:

$$\displaystyle \begin{aligned} w(p) = \xi_0 (p_c - p)^{-\nu} \; , \end{aligned} $$
(12.12)

as p approaches \(p:c\) both the front position and the front width diverges, that is, both the front position \(\bar {h}\) and the width, w, are proportional to the system size L:

$$\displaystyle \begin{aligned} \bar{h} \propto w \propto L \; , \end{aligned} $$
(12.13)

However, when the system size increases, we would expect other stabilizing effects to become important. For a very small, but finite fluid injection velocity, the viscous pressure drop will eventually become important and comparable to the capillary pressure. Also, for any deviation from a completely flat system for a system with a slight different in densities, the effect of the hydrostatic pressure term will eventually become important. We will now demonstrate how we may address the effect of such a stabilizing (or destabilizing) effect [6, 25].

Invasion Percolation in a Gravity Field

Let us assume that the invasion percolation occurs in the gravity field. This implies that the pressure needed to invade a pore depends both on the capillary pressure, and on a hydrostatic term. The pressure \(P^c:i\) needed to invade site i at vertical position \(x:i\) in the gravity field is:

$$\displaystyle \begin{aligned} P^c_i = \frac{\varGamma}{\epsilon} + \varDelta \rho g x_i \; , \end{aligned} $$
(12.14)

We can again normalize the pressures, resulting in

$$\displaystyle \begin{aligned} p^C_i = p^0_i + \frac{\varDelta \rho g}{\varGamma \epsilon^2} x_i^{\prime} \; , \end{aligned} $$
(12.15)

where the coordinates are measured in units of the pore size, \(\epsilon \), which is the unit of length in our system. The last term is called the Bond number:

$$\displaystyle \begin{aligned} Bo = \frac{\varDelta \rho g}{\varGamma \epsilon^2} \; , \end{aligned} $$
(12.16)

Here, we will include the effect of the bond number in a single number g, so that the critical pressure at site i is:

$$\displaystyle \begin{aligned} p_i^c = p_i^0 + g x_i^{\prime} \; , \end{aligned} $$
(12.17)

where \(p:i^0\) is a random number between 0 and 1.

Computational Implementation

We implement this by changing the values of the pressure threshold \(p:i\) in the computational code:

The whole program then becomes

Visualization of Results

The resulting invasion percolation fronts for various numbers of g is illustrated in Fig. 12.4. How can we understand the gradual flattening of the front as g increases from g?

Fig. 12.4
4 plots present invasion percolation fronts for various numbers of g, 0.0, 0.0001, 0.001, and 0.01. The plots depict colors and burst patterns. For g = 0.01, it depicts the vertical arrangement of percolation fronts.

Illustration of the gravity stabilized invasion percolation cluster for \(g=0\), \(g=10^{-4}\), \(g=10^{-3}\), and \(g = 10^{-2}\). The color-scale indicates the normalized pressure at which the site was invaded

Front Width Analysis

This problem is similar to the diffusion front problem. For an applied pressure p the front will typically be connected up to an average distance \(x:c\) given as

$$\displaystyle \begin{aligned} p = p^0 + x_c g \; . \end{aligned} $$
(12.18)

The front will also extend beyond the average front position. The occupation probability at a distance a from the front is \(p' = p_c - a g\), since fewer sites will be set beyond the front due to the stabilizing term g. A site at a distance a is connected to the front if this distance a is shorter to or equal to the correlation length for the occupation probability \(p'\) at this distance. The maximum distance a for which a site is connected back to the front therefore occurs when

$$\displaystyle \begin{aligned} a = \xi(p') = \xi_0 (p_c - p')^{-\nu} \; . \end{aligned} $$
(12.19)

This gives

$$\displaystyle \begin{aligned} a = \xi(p') = \xi_0 (p_c - p')^{-\nu} = \xi_0 (p_c - (p_c - ag))^{-\nu} = \xi_0 (ag)^{-\nu}a \; , \end{aligned} $$
(12.20)

and

$$\displaystyle \begin{aligned} a \propto g^{-\nu/(1 + \nu)} \; , \end{aligned} $$
(12.21)

We leave it as an exercise to find the form of the position \(h(p,g)\), and the width, \(w(p,g)\), as a function of p and g. We observe that the width has a reasonable dependence on g. When g approaches 0, the width diverges. This is exactly what we expect since the limit \(g = 0\) corresponds to the limit of ordinary invasion percolation.

This discussion demonstrates a general principle that we can use to study several stabilizing effects, such as the effect of viscosity or other material or process parameters that affect the pressure needed to advance the front. The introduction of a finite width or characteristic length \(\xi \) that can systematically be varied in order to address the behavior of the system when the characteristic length diverges is also a powerful method of both experimental and theoretical use.

12.3.2 Gravity Destabilization

The gravity destabilized invasion percolation process corresponds to the case when a less dense fluid is injected at the bottom of a denser fluid. This is similar to the process known as secondary migration, where the produced oil is migrating up through the sediments filled with denser water. Examples of the destabilizing front is shown in Fig. 12.5.

Fig. 12.5
4 plots present gravity-destabilized invasion percolation fronts for various numbers of g, 0.0, 0.0001, 0.001, and 0.01. The plots depict colors and burst patterns.

Illustration of the gravity de-stabilized invasion percolation cluster for \(g=0\), \(g=-10^{-4}\), \(g=-10^{-3}\), and \(g = -10^{-2}\). The color-scale indicates normalized pressure at which the site was invaded

We can make a similar argument for the case when \(g<0\), but in this case the front is destabilized, and the correlation length \(\xi \propto (-g)^{-\nu /(1 + \nu )}\) corresponds to the width of the finger extending front the front. The extending finger can be modeled as a sequence of blobs of size \(\xi \) extending from the flat surface. This implies that the region responsible for the transport of oil in secondary migration is essentially a one-dimensional structure: lines with a finite width w. The amount of hydrocarbons left in the sediments during this process is therefore negligible. However, there will be other effects, such as the finite viscosity and the rate of production compared to the rate of flow, which will induce more than one finger.Gravity destabilized invasion percolation is used as a modeling tool in studies of petroleum plays and commercial software packages are available for such simulation.