Reservoir simulators are CPU intensive applications that can take considerable elapsed time to run, even given the performance of today's servers, workstations and PCs.

Depending on such considerations as the data available, the number of wells, the complexity of the geology and the project objectives, simulation models can vary in size from small models of a few thousand cells (grid blocks) through to multi-million cell models with complex highly faulted corner point grid geometries.

Simulation run times can range from a few minutes for a small model scaling up to days or weeks of run time for very large models.

Over the past few decades the industry has progressed from the building and history matching of a single model to take through to prediction to the use of multiple related simulation datasets aimed at representing and understanding the uncertainty around the reservoir.

One of the problems with modelling this uncertainty is the large number of simulation model instances (what we call "decks") that can be generated. For example, if we identify nine key simulation model variables and assign each of these variables three values, a low value, a middle value and high value, then a full factorial combination will generate 3**9 = 19,683 simulation decks. If each of these simulation decks has a run time of 2 hours that is approximately 40,000 hours or over 2 years to run all the models. Clearly this is not a realistic proposition for a reservoir engineer.

The use of **Experimental Design**, also known as **Design of Experiments (DOE)**, can help to provide a practical solution to this problem of not having enough compute or time resources to run all the simulation decks required. The aim of experimental design is to extract as much information as possible about how the selected variables affect the results of the simulation model while making as few simulation deck runs as possible.

With experimental design we change the value of one or more variables (or factors) in the simulation model. Each combination of variable values generated by the chosen experimental design algorithm is used to create a simulation deck. So the process of running the experimental design algorithm generates an ensemble of simulation decks, each of which is a variation around an original core model. We then run these simulation decks through the simulator and then process the output data to analyse and observe what effect those simulation variables have on the model. Typically rather than looking at all the output data we select or define one or more objective functions. What those objective functions are will depend on the objective of our simulation project. For example, if we are using experimental design to help our history matching process then our objective functions may include minimizing the pressure and rate differences between our model and historical observed data.In a forecasting scenario our objective functions may include maximizing the oil and /or gas production.

Clearly the use of experimental design in reservoir simulation requires

- determining the objective of the simulation project
- identifying the simulation variables we wish to vary
- identifying the objective functions (model responses) for which we wish to observe the sensitivity to simulation variables

Of course it is quite possible that at the start of the simulation project we don't actually know which simulation variables the model will be most sensitive to. However experimental design can again be useful here. We can use the Tornado algorithm which is a one-variable-at-a-time algorithm to investigate the model sensitivity to each of a large number of variables. We can then dispose of those variables that have a lesser effect and retain the **big hitter** variables. we can then move on to a more advanced experimental design algorithm to investigate these big hitter variables in more detail.

The following algorithms are implemented in Rezen

- Tornado
- Plackett-Burman
- Box-Behnken
- Central Composite Face
- Monte Carlo
- Latin-Hypercube
- Full Factorial
- Fractional Factorial