The spatial distribution of facies is a crucial part of any reservoir model since it is often one of the main sources of variability in flow (Skorstad et al., 2005). Multipoint statistics is one class of methods for geological facies modeling, proposed nearly two decades ago (Guardiano and Srivastava 1993), and it has developed along two main paths: the statistical model approach (Tjelmeland and Besag 1998) and the algorithmic approach (Strebelle and Journel 2000). Common to many multipoint methods is the use of a training image that represents the geologic patterns typically found in the reservoir of study. The multipoint methods aim at reproducing the essential aspects of these patterns, but with a variability that can be adapted to the case at hand. During simulation, algorithmic multipoint methods create situations where the conditioning event is not found in the training image. This creates artifacts in the simulations (Strebelle and Remy 2005). Statistical models on the other hand, can interpolate between observed patterns to compute the probability of patterns that are not explicitly present in the training image, and hence artifacts can potentially be reduced. With the introduction of the Markov mesh model (Stien and Kolbjørnsen 2011), the statistical model based approach also overcame its original time-consumption problems in parameter estimation and simulation. In this paper, we proceed yet another step, and formulate a multigrid Markov mesh model.

The use of multiple grids has previously been used in the algorithmic approach to multipoint methods (Strebelle 2002), and for general geostatistical approaches (Tran 1994). The strategy has proved invaluable for capturing patterns at different scales. With a multigrid Markov mesh model, we combine an advantage developed for algorithmic methods—the use of multiple grids, with the consistency and flexibility of the statistical model. Combining multiple grids with Markov random fields was recently explored by Toftaker and Tjelmeland (2013). Markov mesh models are a subclass of Markov random fields (Tjelmeland and Besag 1998) defined through a unilateral path (Daly 2005; Daly and Knudby 2007). In Stien and Kolbjørnsen (2011), the authors propose to model facies geometries through a single-grid Markov mesh model defined using the framework of generalized linear models (McCullagh and Nelder 1989; Cressie and Davidson 1998). In this paper, a hierarchy of grids is defined, and a Markov mesh model analogous to that of Stien and Kolbjørnsen (2011) is defined for each grid, but such that it takes into account information also from coarser grids. The result is what we denote a multigrid Markov mesh model. The framework of generalized linear models and systematic grid specification enable fast parameter estimation. The estimation is done once per grid level. During simulation, the coarse patterns are first laid out, and by simulating increasingly finer grids we are able to create patterns at different scales. We present several three-dimensional examples, illustrating that the multigrid Markov mesh model can be successfully applied for a range of training images. For each training image, the simulation results are quantitatively evaluated by comparing facies fractions and up-scaled permeability tensors of realizations and training images.

Multigrid Markov Mesh Model

Multigrid Markov mesh models are defined by a hierarchy of grids, a unilateral path per grid level, and a conditional probability for each cell value given the cell values in a sequential neighborhood. Mathematically, the multigrid Markov mesh model is nothing but a single-grid Markov mesh model where the cells are visited according to the overall path, and the sequential neighborhood for any cell consists only of cells from the past part of this path. It is nevertheless useful to explicitly discuss the model in terms of the multiple grid levels, since it is the systematic model specification in terms of these levels that makes it an efficient and useful tool for capturing patterns at different scales.

The Single-Grid Model

Single-grid Markov mesh models are defined by a unilateral path and a conditional probability for each cell value given the cell values in a sequential neighborhood. Consider a finite, regular grid in two or more dimensions and let the one-dimensional index i label the cells of the grid. The set of all cells is {1,2,…,N}. For the single-grid Markov mesh models, this is also the order in which cells are visited during simulation. For each cell i, we let the cell value x i represent the facies of the cell. Assuming that the conditional probability for facies at cell i depends only on a subset Γ i of all cells j<i, we can write this probability as

$$ \pi(x_i|x_{j<i}) = \pi(x_i|x_{\varGamma_i}), $$

where \(x_{\varGamma_{i}}\) is the set of facies values for the cells in the sequential neighborhood. Equation (1) expresses the Markov property of the model. Figure 1 gives an illustration of a sequential neighborhood on a two-dimensional grid. The single-grid Markov mesh model is fully specified through the conditional probabilities

$$ \pi(x_1,x_2,\ldots,x_N) = \prod _{i=1}^N \pi(x_i|x_{\varGamma_i}). $$

Simulation from the Markov mesh model is performed by following the path i=1,2,…,N throughout the grid. For each cell, the facies value is drawn according to the conditional probability \(\pi (x_{i}|x_{\varGamma_{i}})\). Each cell is visited once, and the resulting grid configuration follows the joint probability distribution in Eq. (2).

Fig. 1
figure 1

Illustration of sequential neighborhood. A snapshot of a simulation is displayed, and the gray cells have not yet been simulated

Capturing Large Scale Patterns

The main purpose of using a multigrid formulation is to detect and reproduce patterns at a large scale with a relatively small neighborhood. Figure 2 illustrates how this works for a simple two-dimensional example. The left figure pane shows a sequential neighborhood Γ i of a cell i on the grid . The right figure pane shows the analogous neighborhood, but applied to the coarser grid level l. The grid consists of every 2nd and every 4th cell of , in the horizontal and vertical direction, respectively. Relative to the grids and , respectively, the neighborhoods of the left and right figure pane are identical. However, relative to the cells on the finest grid, , the neighborhood on reach much farther. It is a significantly faster to use a model with a small neighborhood at each grid level than to use a single-grid model with a single large neighborhood. So, by using multiple grids, we can capture patterns on large scales while retaining a model that is computationally efficient.

Fig. 2
figure 2

Left: a sequential neighborhood. Right: the same sequential neighborhood, but on a coarser grid

Defining the Multigrid Markov Mesh Model

We are now ready to present the formulation of the multigrid Markov mesh model. Consider again a finite, regular grid in two or more dimensions, with the one-dimensional index i labeling the cells of the grid. The set of all cells is {1,2,…,N}. We define a sequence of regular grids where each grid is a subset of cells in such that


We will refer to as the grid on level l, with the coarsest grid level being for l=1 and the finest for l=L. Define furthermore the disjoint sets by


The set consists of the cells of that are not on any of the coarser grid levels. Also note that . Figure 3 illustrates a two-dimensional example of how a grid can be refined. We first select a coarsest level and then refine one direction at the time until we reach the finest grid level. Details on how the grid refinement directions are determined is described in Sect. 3.4.

Fig. 3
figure 3

A hierarchy of grids, displayed as subsets of the set of cells of the finest grid 

For each set , let s(l) denote the number of cells in , and let p l be the ordered version of the set of cells on


Here, i q is the original one-dimensional cell index. The last condition says the cells on are ordered with increasing one-dimensional index. But be aware that p l consists only of cells that are on . The ordered set p l is the unilateral path for grid level l. The total path of the multigrid Markov mesh model is defined to be the concatenation of the level-wise paths

$$ p = (p_1, p_2,\ldots, p_L). $$

The right-hand side of Fig. 4 shows the order of visiting the cells in a two-dimensional grid, given that the one-dimensional cell indices are as shown in the left-most figure pane, and the grid sequence is as in the example of Fig. 3.

Fig. 4
figure 4

Left: one-dimensional cell index. Right: path order of cells, given the grid sequence of Fig. 3

Since the sets are disjoint and their union equals , for each grid cell i, there exists a unique grid level l such that and if kl. We write l(i) for this mapping from cell index to grid level, that is . Given that we follow the path p, all cells that are listed before cell i are given by the set




That is, any cell listed before cell i either belongs to a coarser grid, or is listed before cell i in the unilateral path p l(i) for the grid level associated with i. For each cell i, we let the cell value x i represent the facies of the cell. The joint probability distribution can always be written as


since this only amounts to a reordering of the grid cells on the left-hand side of the expression, followed by repeated use of the general relation π(A,B)=π(A|B)π(B). Equation (9) shows how the joint probability distribution of all cells can be expressed in terms of a systematic grid refinement, where the conditional probability depends only on cells from the present or coarser grid levels, never on cells from finer grid levels. Now we introduce the Markov condition: We assume that the conditional probability for facies at cell i depends only on a certain subset of the cells from earlier in the path, that is we assume that there exists a such that


Then the joint probability can be written

$$ \pi(x_1,x_2,\ldots,x_N) = \prod_{l=1}^L \prod _{i\in p_l} \pi (x_i|x_{\varGamma_i}). $$

The set Γ i is denoted the sequential neighborhood of cell i. It consists of cells from the coarser grids and cells that are listed before cell i on the path p l . Equation (11) is a multigrid Markov mesh model. It is fully specified by the sequence of grid levels and the conditional probabilities \(\pi(x_{i}|x_{\varGamma_{i}})\). Simulation from the model is carried out by starting at the coarsest grid level, then using increasingly finer grids. At each grid level, the unilateral path p l is followed, and for each cell the facies value is drawn according to the conditional probability \(\pi (x_{i}|x_{\varGamma_{i}})\). Each cell is visited once, and the resulting grid configuration follows the joint probability distribution in Eq. (11).

Data Conditioning

Since our methodology requires a systematic scan of the grid, the issue of data conditioning of irregular patterns arise. This issue is not unique to the multigrid Markov mesh approach, but arise also when using multiple grids in standard multipoint algorithms. The common solution to this problem for snesim type of algorithms is to relocate the hard data to the nearest simulation grid node (Strebelle 2002). An alternative solution for the data conditioning that is applicable to many multiple grid models was proposed by Kjønsberg and Kolbjørnsen (2008). The general expression to be evaluated is the probability of a specific facies in cell i, conditioned to previously simulated cells and well data ahead in the path, \(\textbf {x}_{d_{i}}\). Following Kjønsberg and Kolbjørnsen (2008), we write the posterior probability as


where the right-hand side is a trivial rewriting of the left-hand side. The posterior probability is the product of a marginal likelihood for the remaining well data (leftmost factor) and the unconditional probability (rightmost factor). The unconditional probability is obtained from the multigrid Markov mesh model as described in Eq. (10), whereas the probabilities in the numerator and denominator in the leftmost factor is approximated by predictions obtained from indicator Kriging. The resulting expression becomes


where is the predictor for x i given by indicator Kriging conditioned on cells already simulated and is the Kriging predictor conditioned also on future data points. The proportional sign in the relation indicates that the result must be renormalized due to the approximation introduced by the indicator Kriging predictions. The methodology can be used to condition on both soft and hard data. A statistical correct data conditioning can be achieved by integrating the approximation in a Metropolis–Hastings algorithm according to Kjønsberg and Kolbjørnsen (2008).

Model Specification

The statistical model is defined by specifying the path and parameterization of the conditional probabilities in Eq. (10). The path is uniquely determined by the sequence of grid. The statistical model specification is based on generalized linear models (McCullagh and Nelder 1989). The formulation is such that the parameters are efficient to estimate and simple to interpret.

Specifying the Sequential Neighborhood

The multigrid sequential neighborhood is a generalization of the sequential neighborhood of the single-grid Markov mesh formulation, the latter being illustrated on the left-hand side of Fig. 2. The generalization consists of including in the neighborhood cells with a higher one-dimensional index, provided they belong to the past path of the reference cell. We illustrate this with an example in Fig. 5, where the one-dimensional indices and path of Fig. 4 are reused. The figure gives an example of the sequential neighborhood Γ 42. In the example, the sequential neighborhood has a maximal extension of two cells in each direction from the reference cell. Now, cell 42 is ordered as number 64 in the path, as indicated in the right-hand figure pane. The sequential neighborhood includes only cells with a lower path order number, but as shown by the left-hand figure pane, some of the cells have a one-dimensional index larger than 42: cells 43, 50, 52, 59, and 61 in this example.

Fig. 5
figure 5

Example of sequential neighborhood Γ 42. Left pane: one-dimensional cell indices; Right pane: order of cells in the path

For each grid level, we specify the maximal extension in different directions, and then include all cells inside these limits provided they belong to the past path. Since each grid is a regular grid, assuming the one-dimensional indexing is also regular, all cells are then assigned sequential neighborhoods of exactly the same shape. This is important for the efficiency of the model. When all cells have the same neighborhood, we only have to estimate one model at each grid level. This is faster than estimating several models and the estimates are more precise since we have more available data. For a sequential neighborhood bounded by a rectangular box, six parameters are sufficient for parameterization, the extent of the box and the location of the reference cell. If the box is assumed symmetric around the reference cell, three parameters describing the extent of the box (l x ,l y ,l z ) establishes the neighborhood.

Figure 6 illustrates symmetrically bounded sequential neighborhood in three-dimensional by displaying four z-layers for a given grid . Only cells on grid are shown so only cells already simulated or cells simulated at the current level are displayed. In this example l x =l y =3 and l z =2, and the one-dimensional cell index loops first over the x-direction, then the y-direction, and last the z-direction. In this situation, three different types of a sequential neighborhood may occur depending on whether the refinement from grid to grid is done in direction z, y, or x. In Case 1, it is assumed that the refinement in the z-direction. In mathematical terms, this means that if consists of each \(2^{k_{x}}\), \(2^{k_{y}}\), \(2^{k_{z}}\) cells of the finest grid , then consists of each \(2^{k_{x}}\), \(2^{k_{y}}\), \(2^{k_{z}-1}\) cells. In Case 2, the refinement was done in the y-direction, and in Case 3 the refinement was done in the x-direction. Figure 6 gives the three generic alternative neighborhoods, for refinement from grid . Only one of these is selected for the model building. See Sect. 3.4 for further discussion.

Fig. 6
figure 6

The sequential neighborhood for each of three alternative grid refinement cases, provided the neighborhood’s maximal extension is l x =l y =3 and l z =2. The sequential neighborhood consists of the cells in the past path

Using the Framework of Generalized Linear Models

The use of a generalized linear model (GLM) for specifying Markov mesh models for facies modeling was first suggested in Stien and Kolbjørnsen (2011). The idea in GLM is that the distribution of a response variable depends on a linear combination of explanatory variables through a nonlinear link function. We let the facies x i be the response variable, and the explanatory variables be functions of the sequential neighborhood Γ i . Consider a given grid level l and let the cell i be on this grid level that is . Let z i be a P l -dimensional vector of explanatory variables with elements that are functions of cells from the sequential neighborhood Γ i . We propose particular functions below, but for now simply write \(z_{ij} = f_{j}(x_{\varGamma_{i}})\) for j∈{1,2,…,P l }. The same set of P l functions is used for any neighborhood Γ i if . The value \(f_{j}(x_{\varGamma_{i}})\) varies with i, since it depends on the facies configuration in the neighborhood Γ i . In the model, we propose there is one model parameter for every pair of neighborhood function and facies value at each grid level l. Assuming there are K different facies values, we let the K vectors \(\mathbf{\theta}_{l}^{1},\ldots,\mathbf{\theta}_{l}^{K}\) hold the parameters. Each vector is P l -dimensional.

We encode the cell value x i ∈{1,2,…,K} with binary variables \(x_{i}^{k}\) such that

$$ x_i^k = \begin{cases} 1 & \mbox{if}\ x_i = k,\\ 0 & \mbox{else}. \end{cases} $$

The conditional probability in Eq. (10) is then

$$ \pi(x_i | \varGamma_i)= \pi\bigl(x_i| \mathbf{z}_i,\mathbf{\theta}_{l(i)}^1,\ldots ,\mathbf{\theta}_{l(i)}^K\bigr) = \frac{ \prod_{k_1=1}^K \exp \{ x_i^{k_1} \mathbf{z}_i^T \mathbf{\theta}_{l(i)}^{k_1} \}}{\sum_{k_2 = 1}^{K}\exp\{\mathbf{z}_i^T\mathbf{\theta}_{l(i)}^{k_2}\}}, $$

and the joint probability in Eq. (11) is

$$ \pi(x_1,x_2,\ldots,x_N) = \prod_{l=1}^L \prod _{i\in p_l} \frac{ \prod_{k_1=1}^K \exp \{ x_i^{k_1} \mathbf{z}_i^T \mathbf{\theta}_l^{k_1} \}}{\sum_{k_2 = 1}^{K}\exp\{\mathbf{z}_i^T\mathbf{\theta}_l^{k_2}\}}. $$

Here, p l is the path on grid level l. Equation (16) is a GLM for each grid level. The maximum likelihood estimation of the parameters in the multigrid Markov mesh formulation is solved with the iterative weighted least squares scheme. This is the same approach which is used in Stien and Kolbjørnsen (2011). The way our model is formulated makes it possible to estimate the model independently at each grid level. The only change which is made in comparison to Stien and Kolbjørnsen (2011) is the selected neighborhood functions.

Neighborhood Functions

As noticed by Stien and Kolbjørnsen (2011), the challenge with multipoint statistics is that there generally are too many possible patterns. A finite training image does not hold information about all possibilities. To overcome this problem, we extract a subset of properties, represented by neighborhood functions that are important in order to reproduce geological structures and aim at making robust choices. The specification of the neighborhood functions is similar to the specification of Stien and Kolbjørnsen (2011) in the sense that the three-dimensional model consists of combining three two-dimensional models. For each of three orthogonal grid slices, intersecting at the reference cell, we add off-two-dimensional extensions and consider two point interactions, multipoint interactions representing continuity and transitions of facies, and multipoint interactions representing all possible patterns for a very limited number of cells.

Two-Dimensional Specification

For each two-dimensional grid slice of the sequential neighborhood of the reference cell i, the two-dimensional two-point interactions are restricted to a subset of the slice in question. For each cell j of this subset, indicator functions f k(x j ) are included, one for each facies k∈{1,2,…,K}. The functions are defined by

$$ f^k(x_j) = \begin{cases} 1 & \mbox{if}\ x_j = k,\\ 0 & \mbox{else}. \end{cases} $$

This gives one function per facies per two-point interaction cell, with one model parameter per function. For each two-dimensional grid slice, the multipoint functions representing connectivity and transition of facies are also represented by indicator functions. Each function is defined relative to a certain set of cells. Let \(\gamma_{i}^{ l-1}\) be a set of l−1 neighbors of the reference cell i, corresponding to an l-point interaction term (Stien and Kolbjørnsen 2011). The indicator function \(f^{k}(x_{\gamma_{i}^{ l-1}})\) is then defined by

$$ f^k(x_{\gamma_i^{ l-1}}) = \begin{cases} 1 & \text{if}\ x_j = k,\, \forall j \in\gamma_i^{ l-1},\\ 0 & \text{else.} \end{cases} $$

The sets \(\gamma_{i}^{ l-1}\) are defined by considering strips of cells in the horizontal, vertical, and diagonal directions of the two-dimensional slice (Stien and Kolbjørnsen 2011). When the size of the sequential neighborhood increases, more functions are included and the number of parameters to be estimated increase. Indicator functions are also used for the multipoint interactions representing all possible patterns for a very limited number of cells in the two-dimensional grid slice. There is one function per facies per pattern of the neighboring cells, resulting in K n functions if n−1 neighbors participate to this kind of multipoint interaction.

Three-Dimensional Specification

The three-dimensional model is defined by using the combined set of indicator functions from the three two-dimensional grid slices. We also include strips in the off-two-dimensional diagonal directions of each of the eight octants centered around the reference cell i, using only the octant cells that are part of the multigrid sequential neighborhood. This is analogous to the specification of Stien and Kolbjørnsen (2011). The resulting number of functions for the three-dimensional model is denoted P l , where l labels the grid level. The set of neighborhood functions generally differs across the grid levels, but for a given level l the same set of P l functions is used for all cells . Figure 7 illustrates some of the two-dimensional neighborhood functions for the case of a grid that is assumed related to grid by a refinement in the y-direction (second row of Fig. 6). Only the z-plane of the reference cell is shown in Fig. 7. The left column of the figure illustrates functions that are used when the sequential neighborhood is identical to its symmetrical bounding box; the rightmost column illustrates what the actual neighborhood functions look like after the form of the sequential neighborhood for this grid level is taken into account, and the middle column illustrates the filtering that takes us from the general functions of the left column to the grid level specific functions of the right. The arrows indicate the directions and in which order the number of interaction terms increases. The cells marked by the x means that this cell is included as a 2-particle interaction with the center cell, and for the bottom-most row as an n-particle interaction with all the other cells marked by x and the center cell.

Fig. 7
figure 7

A two-dimensional example of how general pattern recognition functions are modified by the sequential neighborhood to form the grid specific neighborhood functions

Grid Refinement

The purpose of the multigrid formulation is to be able to reproduce patterns on large scales using small neighborhoods or templates. This is done by initially applying the neighborhood or template on a coarse grid and applying the same neighborhood or template on successively finer grids. The grids are refined by inserting grid levels to increase the grid resolution (Fig. 3). There is no unique way of refining the grid that will work equally well for all training images. Two different grid refinement sequences will represent two different models. We will proceed by selecting one refinement scheme that is adapted to the training image and estimate the parameters for this model. The alternative of using multiple refinement schemes, each with an attached probability, is abandoned in order to have a parsimonious model representation. The challenge is therefore to find a nice way of obtaining grid from the grid at the previous level, by a refinement in the x-, y-, and z-directions. It is possible to refine in a single direction or to combine two or three directions at the same time. The simplest is either to choose a single refinement in one direction or single refinement in all three directions. Treating all directions equal is possible, but training images are seldom isotropic so we have chosen to refine in one direction at a time. This also gives the most flexible model and the additional computational cost is acceptable since most of the CPU time is spent on the final grid resolutions. Refining in one direction means that grid has twice as many grid cells as the grid at the previous level, . We start by selecting a coarse grid and choose the direction of refinement along the direction of the weakest spatial correlation. This has the consequence that the direction of refinement will change several times so that spatial structures in all directions interact at several resolutions. This consequence is not obvious and is best explained by considering the opposite approach: Assume that all directional correlations are monotonically decreasing with distance. If the direction of maximum correlation is selected, then the direction that have the maximum correlation at the coarsest grid level will be refined until the finest grid level before any of the two other directions are refined. So, this approach will prevent structures in different directions from interacting. The second important property is that by selecting the direction of the weakest spatial correlation we keep more randomness after more steps in the refinement sequence. This will hopefully reduce the chance of getting stuck into improbable patterns at an early stage of the simulation.

The algorithm used for selecting the grid refinement schemes starts with a grid level, (g x ,g y ,g z ), where g k is the number of times the grid has been coarsened in the k-direction. So, choosing for instance grid level (3,3,2) means that the grid must be refined 3+3+2=8 times to obtain the original fine resolution grid. This also means that the fine resolution grid has 23⋅23⋅22=256 times more grid cells than the starting grid. The starting grid level must be chosen manually as we have not been able to find a robust way to estimate starting values for an arbitrary training image. The selection of grid refinement as used in our approach is summarized in the following algorithm:

  1. 1.

    Estimate the three directional correlation functions, c x (h x ), c y (h y ), and c z (h z ), in the x-, y-, or z-directions from the training image. The lags, h x ,h y , and h z , are measured as distances in terms of the finest grid resolution in each direction.

  2. 2.

    Compute the absolute value of these functions: g k (h)=|c k (h)|, for k∈{x,y,z}.

  3. 3.

    Compute monotonized correlation functions: r k (h)=max uh g k (u), for k∈{x,y,z}.

  4. 4.

    For grid level (g x ,g y ,g z ) to grid level (0,0,0):

    • Get refinement direction \(k_{s}=\text{arg}\min_{k\in\{ x, y, z\}} r_{k}(2^{g_{k}}-1) \).

    • Set \(g_{k_{s}}=g_{k_{s}}-1\).

The monotonization in the second and third step is a practical solution to avoid problems with oscillating correlation functions. The algorithm is illustrated in Fig. 8 for a two-dimensional example. The top figure shows the absolute value of the estimated correlation functions, whereas the bottom function shows the monotonized function. For the selection, we have two proposal lags, one for x-direction and one for y-direction, and we see that by choosing to refine in the x-direction first we get a slightly lower increase in correlation than by refining in the y-direction.

Fig. 8
figure 8

Directional correlation functions of a two-dimensional training image. This is used to determine how far the neighborhood must reach in order to capture large scale patterns


This section presents results obtained by using the multigrid Markov mesh model. We consider four different three-dimensional training images, three with two facies classes, and one with three facies classes. The training images are displayed in Figs. 9 to 12. We provide a comparison between the results of the multigrid Markov mesh model and the snesim approach (Strebelle and Journel, 2000 and Strebelle, 2002). The latter is obtained by running the multipoint module of the RMS modeling software ( Settings for the generation of realizations are summarized in Table 1 that also provides the dimensions of the training image and the simulation grid. Note that the settings found in Table 1 is somewhat arbitrary. We have chosen parameters so that both approaches give good results using acceptable amounts of memory and CPU time. Note in particular that we needed more grid refinements for the snesim approach than the Markov mesh approach to obtain acceptable simulated realizations in these four cases. For each training image, we have generated 100 realizations with the multigrid Markov mesh model, and 100 realizations with the snesim algorithm. We compare the results qualitatively and quantitatively by comparing the single cell upscaled permeability and the facies volume fractions. There are no conditioning data so all simulations are unconditional in these tests.

Fig. 9
figure 9

Conceptual geology, turbidite case. Training image: left, multigrid Markov mesh model: middle, snesim algorithm: right

Table 1 Listing of the test cases, and settings for the simulation runs. Column 1 is the simulation name of the test case. Column 2 is the dimensions of the training image and simulation grid (which are identical). Column 3 gives the maximum neighborhood extension for the Markov mesh model. Column 5 gives the number of cells in the template used by the snesim algorithm. Column 4 and 6 gives the number of grid refinements in the x- y- and z-direction for the Markov mesh model and the snesim algorithm. The number of grid levels where chosen to obtain similar results

Conceptual Geology

Conceptual geology is assessed by visual inspection and comparison between the training image and the realizations. Figures 9, 10, 11, and 12 compare the conceptual geology of multigrid Markov mesh realizations, snesim realizations, and the training images for each of the test cases. Each of the four figures show the training image to the left, a realization obtained by the multigrid Markov mesh model in the middle, and a realization obtained by the snesim algorithm to the right. The training images represent, respectively, a turbidite system (Fig. 9), a channels system where the main correlations are along the x,y-diagonal, and where the channels are somewhat narrow and irregular (Fig. 10), a system of irregular channels with crevasses (Fig. 11), and a system of regular channels with fairly low sinuosity (Fig. 12). The realization displayed for the proposed approach and the snesim approach are representative for the set 100 realizations obtained. The simulated realizations clearly illustrate that the multigrid Markov mesh model reproduces main aspects of the training image, such as correlation directions and body shapes. There is no major difference between the visual appearance of the multigrid Markov mesh realizations and the realizations obtained by the multigrid snesim approach.

Fig. 10
figure 10

Conceptual geology, azimuth channels case. Training image: left, multigrid Markov mesh model: middle, snesim algorithm: right

Fig. 11
figure 11

Conceptual geology, channel crevasse case. Training image: left, multigrid Markov mesh model: middle, snesim algorithm: right

Fig. 12
figure 12

Conceptual geology, isolated channels case. Training image: left, multigrid Markov mesh model: middle, snesim algorithm: right

Upscaled Permeability

The purpose of generating facies realizations is to be able to model the large contrasts in the permeability field in an efficient way. The difference in high and low permeability facies can be several orders of magnitude. The most important factor for modeling of flow response is the geometric continuity of the most permeable facies. The single cell upscaled permeability tensor gives a measure of the directional flow properties of the realizations, and is sensitive to the continuity of objects in the specified flow direction. To compute the single cell upscaled permeability, we generate the full scale permeability field by populating the facies realizations with a homogeneous permeability for each facies class; see Table 2 for values. The computations are performed using single phase assumptions, periodic boundary conditions, and executed using the open source software “Opm-upscaling,” The resulting tensors are symmetric, 3-dimensional tensors of second order. In the comparison, we only include the diagonal elements, representing permeability in the xx-, yy-, and zz-direction. The off-diagonal elements provide no further insight, and are hence omitted. The upscaled permeability is calculated also for the training image for comparison. Note that a direct comparison requires that the dimensions of the training image and the simulated realizations are identical.

Table 2 The permeability values in milli Darcy used for each facies in the test cases when computing the upscaled permeability

Figures 13 and 14 display the histogram for the upscaled permeability tensors obtained form the 100 realizations together with the similar response from the training image. For each training image, the results for the multigrid Markov mesh model are displayed in the top row, and the results for the snesim algorithm are displayed in the bottom row. For each tensor component, the probability distributions obtained from simulations are shown as blue histograms, and the red line is the corresponding permeability of the training image. All cases are able to recreate the large difference between horizontal and vertical flow. This reflects the horizontal continuity in the training images. For the turbidite case in particular (left pane Fig. 13) both the multigrid Markov mesh model and the snesim algorithm reproduce the training image’s permeability tensor well; the red line is well inside the distributions, often corresponding to the mean of each distribution. There is a small exception for the snesim zz-permeability, but the percent-wise deviation to the training image permeability is almost negligible. For the azimuth channels case, the distributions for the xx- and yy-permeability contain the training image permeability for both the multigrid Markov mesh model and the snesim algorithm. But for both methods the training image permeability is in the tail of the distributions. The multigrid Markov mesh model tends to make realizations with too little connectivity, the snesim approach tends to make too much connectivity. It is reasonable that the results for the xx-permeability is similar to the results for the yy-permeability, since the training image in this case has its main correlations along the x,y-diagonal, and hence is symmetric for x and y. The training image permeability in the zz-direction is under-estimated/over-estimated by the multigrid Markov mesh model and the snesim algorithm. For the channel crevasse case and the isolated channels, both the multigrid Markov mesh model and the snesim algorithm capture the scale of the permeabilities, with small percent-wise deviations from the training image permeabilities. For these training images, the two methods behave very similar: They both have a tendency to underestimate the xx- and yy-permeabilities for the channel crevasse case and for the yy-permeability of the isolated channels; they both overestimate the xx-permeability of the isolated channels; and they both tend to slightly overestimate the zz-permeabilities.

Fig. 13
figure 13

Upscaled permeability. Left: turbidite case, right: azimuth channels case. Upper row: multigrid Markov mesh model (MMM); lower row: snesim algorithm (MPS). Red line: training image’s upscaled permeability

Fig. 14
figure 14

Upscaled permeability. Left: channels crevasse case, right: isolated channels case. Upper row: multigrid Markov mesh model (MMM); lower row: snesim algorithm (MPS). Red line: training image’s upscaled permeability

Volume Fractions

For each realization, we also compute the facies volume fractions, and compare this to the volume fractions of the training image. Statistical distributions for upscaled permeability and volume fractions is obtained separately for the multigrid Markov mesh model and for the snesim approach, one distribution per training image. Table 3 displays the mean and standard deviation of the sand volume fraction in the realizations. Both multigrid Markov mesh model and snesim are all very close to the target and the variability is small for both methods, and smallest for the multigrid Markov mesh.

Table 3 Comparison of sand fraction in training image av realizations

Time Usage

Figure 15 show histograms of the time it took to estimate and simulate the first realization and subsequent realizations. Generating subsequent realizations is faster for the multigrid Markov mesh model once the model is estimated. The isolated channels case is a special case where the channels are very regularly shaped. This gives little variation in patterns so that the search tree build by snesim is small. For this case, the snesim algorithm becomes very efficient. This comparison is done using the snesim implementation available in Irap RMS. For this implementation, the building of the search tree takes approximately 25 % of the CPU time. Other implementations may exploit this and there are possibly more efficient implementations available. One should also note that there has been a long development of various (commercial) snesim implementations whereas the Markov mesh model still is an immature approach.

Fig. 15
figure 15

Time usage in minutes for the four cases


We have presented a multigrid Markov mesh model for geological facies modeling. This combines an advantage originally developed for algorithmic multipoint methods—the use of multiple grids—with the flexibility and consistency of the statistical approach to multipoint methods. The model consists of a hierarchy of nested grids, with a single-grid Markov mesh model for each grid, but such that information from coarser grids are taken into account. We have adopted the specification of earlier published single-grid Markov mesh models, by using the framework of generalized linear models and a parameterization that captures continuity/discontinuity of geological structures. The result is a model that gives results that are comparable to the established snesim algorithm for several test cases.