You are viewing the documentation for an older COMSOL version. The latest version is available here.
PDF

Reservoir with Horizontal Wells
Introduction
This example models a thin oil reservoir with two horizontal wells, as described in the Seventh SPE Comparative Solution Projects, case 1a, see Ref. 1. The reservoir contains two phases, water and oil. The oil is recovered by injecting water through the bottom well. The model is used to compute the oil production rate and the water-oil production ratio over time.
Model Definition
The reservoir measures 2700 ft by 2700 ft by 160 ft, and consist of 6 horizontal layers with different initial oil saturations. The thickness of each layer and the initial oil saturation is given in Table 1. The porosity of the reservoir is 0.2 and the horizontal and vertical permeabilities are 300 mD and 30 mD, respectively. The density and the viscosity of both phases are given in Table 2, while the relative permeabilities and capillary pressure (as functions of the water saturation) are given in Table 3.
In the bottom layer water is injected into the reservoir through a horizontal well with a length of 2700 ft. The water pressure at this well is maintained at 3700 psi. The injection well is located at the following coordinates: x = 1350 ft, 0 ft < y < 2700 ft, z = 25 ft.
In the top layer a horizontal well, with a length of 900 ft, produces the fluids at a constant mass flow rate of 5.4181 kg/s, which is the equivalent of 3000 STB of water per day (1 STB, or stock tank barrel, is 0.159 m3). This production well is located at the coordinates x = 1350 ft, 300 ft < y < 1200 ft, z = 150 ft.
The simulation time is 1500 days.
0.96·10-3 Pa·s
0.954·10-3 Pa·s
Results and Discussion
As water is injected through the bottom well, water will start to infiltrate the higher, more oil saturated reservoir layers. This happens especially near the two horizontal wells, as can be seen in Figure 1, where the oil saturation is plotted after the production period of 1500 days: the water table is much higher in between the two wells. This phenomenon is known as coning, and it usually causes a reduction of the oil production rate and an increase in the water-oil production ratio over time. Figure 2 illustrates this and clearly shows these trends in the present simulation. The results for the oil production and the water-oil ratio agree nicely with the simulation results reported in Ref. 1.
Notes About the COMSOL Implementation
The prescribed production rate at the production well of 3000 STB/day constitutes a boundary condition for the total mass flow rate, but to solve the model also a boundary condition for the mass flow rate of the oil phase is needed. In the COMSOL model, the oil mass flow rate is determined by requiring that the oil saturation at the production well equals the residual oil saturation (which is equal to 0.2, see Table 3). This condition is implemented using a Well multiphysics edge feature.
Figure 1: Oil saturation at the end of the 1500 day production period. Note the elevated water table near the production well.
Figure 2: The oil production rate (left y-axis), and the water-oil production ratio (right y-axis) over time.
Reference
1. L.S. Nghiem, D.A. Collins, and R. Sharma (1991), Seventh SPE Comparative Solution Project: Modelling of Horizontal Wells in Reservoir Simulation, SPE 21221, The 11th SPE Symposium on Reservoir Simulation, Anaheim, CA.
Application Library path: Subsurface_Flow_Module/Fluid_Flow/reservoir_horizontal_wells
Modeling Instructions
From the File menu, choose New.
New
In the New window, click  Model Wizard.
Model Wizard
1
In the Model Wizard window, click  3D.
2
In the Select Physics tree, select Fluid Flow>Porous Media and Subsurface Flow>Multiphase Flow in Porous Media.
3
Click Add.
4
In the Added physics interfaces tree, select Phase Transport in Porous Media (phtr).
5
In the Volume fractions table, enter the following settings:
6
Click  Study.
7
In the Select Study tree, select General Studies>Time Dependent.
8
Geometry 1
Block 1 (blk1)
1
In the Geometry toolbar, click  Block.
2
In the Settings window for Block, locate the Size and Shape section.
3
In the Width text field, type 2700[ft].
4
In the Depth text field, type 2700[ft].
5
In the Height text field, type 160[ft].
6
Click to expand the Layers section. Find the Layer position subsection. Clear the Bottom check box.
7
Select the Top check box.
8
Work Plane 1 (wp1)
1
In the Geometry toolbar, click  Work Plane.
2
In the Settings window for Work Plane, locate the Plane Definition section.
3
From the Plane list, choose xz-plane.
4
In the y-coordinate text field, type 300[ft].
Work Plane 1 (wp1)>Plane Geometry
In the Model Builder window, click Plane Geometry.
Work Plane 1 (wp1)>Cross Section 1 (cro1)
In the Work Plane toolbar, click  Cross Section.
Work Plane 2 (wp2)
1
In the Model Builder window, right-click Geometry 1 and choose Work Plane.
2
In the Settings window for Work Plane, locate the Plane Definition section.
3
From the Plane list, choose zy-plane.
4
In the x-coordinate text field, type 1350[ft].
Work Plane 2 (wp2)>Plane Geometry
In the Model Builder window, click Plane Geometry.
Work Plane 2 (wp2)>Cross Section 1 (cro1)
In the Work Plane toolbar, click  Cross Section.
Work Plane 3 (wp3)
1
In the Model Builder window, right-click Geometry 1 and choose Work Plane.
2
In the Settings window for Work Plane, locate the Plane Definition section.
3
From the Plane list, choose xz-plane.
4
In the y-coordinate text field, type 1200[ft].
Work Plane 3 (wp3)>Plane Geometry
In the Model Builder window, click Plane Geometry.
Work Plane 3 (wp3)>Cross Section 1 (cro1)
1
In the Work Plane toolbar, click  Cross Section.
2
Right-click Cross Section 1 (cro1) and choose Build All Objects.
Global Definitions
Parameters 1
1
In the Model Builder window, under Global Definitions click Parameters 1.
2
In the Settings window for Parameters, locate the Parameters section.
3
Click  Load from File.
4
Interpolation 1 (int1)
1
In the Home toolbar, click  Functions and choose Global>Interpolation.
2
In the Settings window for Interpolation, locate the Definition section.
3
Click  Load from File.
4
5
In the Function name text field, type krw.
6
Locate the Interpolation and Extrapolation section. From the Interpolation list, choose Piecewise cubic.
Interpolation 2 (int2)
1
In the Home toolbar, click  Functions and choose Global>Interpolation.
2
In the Settings window for Interpolation, locate the Definition section.
3
Click  Load from File.
4
5
In the Function name text field, type krn.
6
Locate the Interpolation and Extrapolation section. From the Interpolation list, choose Piecewise cubic.
Interpolation 3 (int3)
1
In the Home toolbar, click  Functions and choose Global>Interpolation.
2
In the Settings window for Interpolation, locate the Definition section.
3
Click  Load from File.
4
5
In the Function name text field, type pc.
6
Locate the Interpolation and Extrapolation section. From the Interpolation list, choose Piecewise cubic.
Phase Transport in Porous Media (phtr)
1
In the Model Builder window, under Component 1 (comp1) click Phase Transport in Porous Media (phtr).
2
In the Settings window for Phase Transport in Porous Media, locate the Gravity Effects section.
3
Select the Include gravity check box.
Phase and Porous Media Transport Properties 1
1
In the Model Builder window, under Component 1 (comp1)>Phase Transport in Porous Media (phtr) click Phase and Porous Media Transport Properties 1.
2
In the Settings window for Phase and Porous Media Transport Properties, locate the Capillary Pressure section.
3
In the pcsn text field, type pc(sw)[psi].
4
Locate the Phase 1 Properties section. From the ρsw list, choose User defined. In the associated text field, type rhow.
5
From the μsw list, choose User defined. In the associated text field, type muw.
6
In the κrsw text field, type krw(sw).
7
Locate the Phase 2 Properties section. From the ρsn list, choose User defined. In the associated text field, type rhoo.
8
From the μsn list, choose User defined. In the associated text field, type muo.
9
In the κrsn text field, type krn(sw).
Initial Values 2
1
In the Physics toolbar, click  Domains and choose Initial Values.
2
3
In the Settings window for Initial Values, locate the Initial Values section.
4
In the s0,sn text field, type 0.711.
Initial Values 3
1
In the Physics toolbar, click  Domains and choose Initial Values.
2
3
In the Settings window for Initial Values, locate the Initial Values section.
4
In the s0,sn text field, type 0.652.
Initial Values 4
1
In the Physics toolbar, click  Domains and choose Initial Values.
2
3
In the Settings window for Initial Values, locate the Initial Values section.
4
In the s0,sn text field, type 0.527.
Initial Values 5
1
In the Physics toolbar, click  Domains and choose Initial Values.
2
3
In the Settings window for Initial Values, locate the Initial Values section.
4
In the s0,sn text field, type 0.351.
Initial Values 6
1
In the Physics toolbar, click  Domains and choose Initial Values.
2
3
In the Settings window for Initial Values, locate the Initial Values section.
4
In the s0,sn text field, type 0.131.
Darcy’s Law (dl)
1
In the Model Builder window, under Component 1 (comp1) click Darcy’s Law (dl).
2
In the Settings window for Darcy’s Law, click to expand the Discretization section.
3
From the Pressure list, choose Linear.
Porous Matrix 1
1
In the Model Builder window, under Component 1 (comp1)>Darcy’s Law (dl)>Porous Medium 1 click Porous Matrix 1.
2
In the Settings window for Porous Matrix, locate the Matrix Properties section.
3
From the εp list, choose User defined. In the associated text field, type 0.2.
4
From the κ list, choose User defined. From the list, choose Diagonal.
5
In the κ table, enter the following settings:
Initial Values 1
1
In the Model Builder window, under Component 1 (comp1)>Darcy’s Law (dl) click Initial Values 1.
2
In the Settings window for Initial Values, locate the Initial Values section.
3
In the p text field, type 3700[psi].
Multiphysics
Well 1 (wellmpe1)
1
In the Physics toolbar, click  Multiphysics Couplings and choose Edge>Well.
2
In the Settings window for Well, locate the Edge Selection section.
3
Click  Paste Selection.
4
In the Paste Selection dialog box, type 100 126 152 in the Selection text field.
5
6
In the Settings window for Well, locate the Well section.
7
From the Specify list, choose Pressure.
8
In the p0 text field, type 3700[psi].
Well 2 (wellmpe2)
1
In the Physics toolbar, click  Multiphysics Couplings and choose Edge>Well.
2
In the Settings window for Well, locate the Edge Selection section.
3
Click  Paste Selection.
4
In the Paste Selection dialog box, type 144 in the Selection text field.
5
6
In the Settings window for Well, locate the Well section.
7
From the Well type list, choose Production.
8
In the M0 text field, type massflow.
9
Locate the Phase 2 section. From the Specify list, choose Volume fraction.
10
In the s0,sn text field, type 0.2.
Mesh 1
Free Triangular 1
1
In the Mesh toolbar, click  Boundary and choose Free Triangular.
2
In the Settings window for Free Triangular, click to expand the Scale Geometry section.
3
In the z-direction scale text field, type 10.
4
Size
1
In the Model Builder window, click Size.
2
In the Settings window for Size, locate the Element Size section.
3
From the Predefined list, choose Finer.
Size 1
1
In the Model Builder window, right-click Free Triangular 1 and choose Size.
2
In the Settings window for Size, locate the Geometric Entity Selection section.
3
From the Geometric entity level list, choose Point.
4
Click  Paste Selection.
5
In the Paste Selection dialog box, type 44 in the Selection text field.
6
7
In the Settings window for Size, locate the Element Size section.
8
Click the Custom button.
9
Locate the Element Size Parameters section.
10
Select the Maximum element size check box. In the associated text field, type 2.
11
Select the Minimum element size check box. In the associated text field, type 0.04.
12
Select the Maximum element growth rate check box. In the associated text field, type 1.1.
Swept 1
In the Mesh toolbar, click  Swept.
Distribution 1
1
Right-click Swept 1 and choose Distribution.
2
In the Settings window for Distribution, locate the Domain Selection section.
3
Click  Clear Selection.
4
Click  Paste Selection.
5
In the Paste Selection dialog box, type 1-8, 25-32 in the Selection text field.
6
7
In the Settings window for Distribution, locate the Distribution section.
8
In the Number of elements text field, type 2.
Distribution 2
1
In the Model Builder window, right-click Swept 1 and choose Distribution.
2
In the Settings window for Distribution, locate the Domain Selection section.
3
Click  Clear Selection.
4
Click  Paste Selection.
5
In the Paste Selection dialog box, type 9-24, 33-48 in the Selection text field.
6
7
In the Settings window for Distribution, locate the Distribution section.
8
In the Number of elements text field, type 8.
9
Click  Build All.
Study 1
Step 1: Time Dependent
1
In the Model Builder window, under Study 1 click Step 1: Time Dependent.
2
In the Settings window for Time Dependent, locate the Study Settings section.
3
From the Time unit list, choose d.
4
In the Output times text field, type range(0,50,1500).
Solution 1 (sol1)
1
In the Study toolbar, click  Show Default Solver.
2
In the Model Builder window, expand the Solution 1 (sol1) node, then click Dependent Variables 1.
3
In the Settings window for Dependent Variables, locate the Scaling section.
4
From the Method list, choose Initial value based.
5
Click  Compute.
Results
Slice
1
In the Model Builder window, expand the Volume Fraction (phtr) node.
2
Right-click Slice and choose Disable.
Volume Fraction (phtr)
In the Model Builder window, click Volume Fraction (phtr).
Multislice 1
1
In the Volume Fraction (phtr) toolbar, click  More Plots and choose Multislice.
2
In the Settings window for Multislice, locate the Expression section.
3
In the Expression text field, type sn.
4
Locate the Multiplane Data section. Find the x-planes subsection. In the Planes text field, type 5.
5
Find the y-planes subsection. In the Planes text field, type 5.
6
Find the z-planes subsection. In the Planes text field, type 0.
7
In the Volume Fraction (phtr) toolbar, click  Plot.
1D Plot Group 5
1
In the Home toolbar, click  Add Plot Group and choose 1D Plot Group.
2
In the Settings window for 1D Plot Group, locate the Data section.
3
From the Time selection list, choose Interpolated.
4
In the Times (d) text field, type range(100,50,1500).
Point Graph 1
1
Right-click 1D Plot Group 5 and choose Point Graph.
2
In the Settings window for Point Graph, locate the Selection section.
3
Click  Paste Selection.
4
In the Paste Selection dialog box, type 62 in the Selection text field.
5
6
In the Settings window for Point Graph, locate the y-Axis Data section.
7
In the Expression text field, type wellmpe2.M0_sn/rhoo/STB.
8
In the Unit field, type 1/d.
9
Select the Description check box. In the associated text field, type Oil rate (STB/day).
10
Click to expand the Legends section. Select the Show legends check box.
11
From the Legends list, choose Manual.
12
Point Graph 2
1
In the Model Builder window, right-click 1D Plot Group 5 and choose Point Graph.
2
In the Settings window for Point Graph, locate the Selection section.
3
Click  Paste Selection.
4
In the Paste Selection dialog box, type 62 in the Selection text field.
5
6
In the Settings window for Point Graph, locate the y-Axis Data section.
7
In the Expression text field, type (massflow-wellmpe2.M0_sn)/rhow/(wellmpe2.M0_sn/rhoo).
8
Select the Description check box. In the associated text field, type Water-oil ratio.
9
Locate the Legends section. Select the Show legends check box.
10
From the Legends list, choose Manual.
11
1D Plot Group 5
1
In the Model Builder window, click 1D Plot Group 5.
2
In the Settings window for 1D Plot Group, locate the Plot Settings section.
3
Select the Two y-axes check box.
4
In the table, select the Plot on secondary y-axis check box for Point Graph 2.
5
Select the y-axis label check box. In the associated text field, type Oil rate (STB/day).
6
In the 1D Plot Group 5 toolbar, click  Plot.