Final Report Team 19
Final Report Team 19
Team 19
Mohammed Alnahas
Michael Cavazza
Khalid Dosary
Derek Fron
Ali Madi
Joshua Malloy
Abstract
The project focused on understanding the coalbed methane reservoir that was given. The
goal was finding the sweet spot by mapping and calculating the amount of methane gas in the
reservoir. The main methods used in reaching the goal were the ability of reading the contour
maps and getting the depth of each grid. The ability of reading the well logs and getting the
petrophysical property from them. The ability of using the values of net pay, maximum and
minimum porosities, maximum and minimum saturation to figure out the depth and get a good
estimation of the OGIP. Matlab program was used effectively during the process. Using these
methods, a regional Monte Carlo simulation was performed in order to identify the sweet spots.
3D maps were created for P90, P50 and P10 simulations. In conclusion, this course gave the
ability to characterize the reservoir in an efficient way by collecting and analyzing the data given
and other related data provided by the operators. The project helped in considering the factors
involving economic, environmental, social, health and safety considerations.
Introduction
Our project focused on our understanding of a coalbed methane reservoir we were given.
The problem that needed to be solved was an extensive look, mapping, and calculate of how
much methane gas the reservoir contained. Looking at the entire reservoir and correctly
mapping it out is crucial to getting a better spot at the hot spots of the gas field. The reason we
had to take an in depth look at the reservoir because our problem was where to drill. Given to
help us are logs and data that we can use to calculate these spots and simulate to find the best
locations. Some of our data was determined from reading the logs of the reservoir. We had to
take a look at the reservoir and determine where the exact sweet sports were. It is important to
know where they are because these are the spots that are going to provide optimal and reliable
extraction and production of gas. These spots are where we recommended a company to drill
because that is the specific spot in the reservoir where the most production can come from.
The scope of the problem is larger than just the sweet spots because off all the data and
calculations needed to find them. Contour maps, well logs, OGIP calculations, and Matlab
simulations are just some of the steps necessary in determining the sweet spot. Also, our Monte
Carlo simulations helped us determine all the possible outcomes of our calculations. Also,
before our OGIP calculations, we needed to look at property distributions which helped us find
the net pay, porosity, and water saturation which are all crucial for the calculations. The scope of
the problem is to record reliable data and correctly calculate it to find the sweet spots where the
reservoir flourishes.
Over the span of this report we will discuss everything our group accomplished, all of our
methods, and discuss all our results and data collection. Our report will consist of materials and
methods which we will discuss how we retrieved our data and the calculations and tables the
ended up with. That will transition into our results which we will go over all our finals data from
calculation and our Monte Carlo simulations. After that, discussions will pull together all of our
results and methods. Also it will be explain our results and any implications of our results.
Lastly, the conclusion will finish our report bringing all our info, predictions, and results. Also,
we will discuss the repercussions of this course leading into next semester and 491.
Materials
We started this project first with receiving contour maps for the geological location of the
wells. On these contour maps were contour lines, which would indicate a given depth along that
line. From there we were in charge of adding major and minor gridlines to the contour map,
which where to enclose all of the wells. This process was done using Microsoft Excel, which
involved making the contour map transparent and fitting it over the grid lines of excel. From
there we moved the gridline accordingly to enclose all 11 wells (Figures 4 and 5).
From here we filled in the rest of the cells by interpolating the depths of the empty cells
from the existing contour lines. After all the depth values were entered we added a colored depth
gradient to make sure our depths were accurate (Figures 6 and 7).
Now that we had all of our depths determined, we assigned a dx and dy value to each
cell. This was done by calibrating the cell widths in Excel to the scale on the countour map.
Once calibrated, a proportion was used to determine the actual distance of each grid block in
feet. Once completed, Matlab was used to produce a 3-D structural map of both the top and
bottom part of the reservoir. Figures 8, 9 and 10 show display the Matlab plots (Ertekin).
Now that we have our 3-D structure maps produced it was now our task to read through
the well logs of all 11 wells to receive petrophysical properties, which in return will be needed to
determine the OGIP (original gas in place) and our sweet spot. First, we divided all 11 wells
between the 6 of us (Matlab coder only receiving 1) and began reading them. To retrieve the
petrophysical properties we desired, we had to first determine our well depths (difference
between top depth and bottom depth). From this depth interval, we then proceeded to read
gamma ray logs. We focused on dips in API below 60 (this indicated low radioactivity, which is
indicative of coal beds). Any dip below 60 API was our gross pay zone, which is where our
point of emphasis was due to the API readings. Figure 1, shown below, showcases and example
of the cutoff.
Where
n: saturation exponent, usually 2
a: empirical constant, 1 for carbonates
: is the true porosity
Rw: resistivity of formation water, typically 0.02-0.1
Rt: formation density, acquired from well logs
m: cementation exponent, usually 2 to 4 for carbonates
With the well log readings, and the calculations performed, each well had several property values
tabulated. Table 1 shown below shows an example of the readings and calculations for a well,
Well 1 (Morgan).
4
Top
Dept
h
(ft)
Bottom
Depth
(ft)
3384
3400
3470
3479
3492
3494
3558
3568
3668
3675
3689
3691
3785
3790
Gross
Pay
(ft)
Neutron
Porosity
(%)
Density
Porosity
(%)
Rd
(ohm
-m)
True
Porosity
(ft)
16
0.46
0.35
2000
0.405
0.57
0.55
500
0.56
0.35
0.25
15
0.3
10
0.6
0.35
600
0.475
0.58
0.54
700
0.56
0.59
0.56
750
0.575
0.58
0.53
500
0.555
Sw
(%)
0.02
1
0.02
6
0.38
4
0.03
0
0.02
2
0.02
0
0.02
6
Net
Pay
(ft)
16
9
0
10
7
2
5
f ( 1Swf ) m ( 1S wm )
VLP
+
]+1.359 Ah
( 1f a )
B gi
B gi
P+ P L c
Where
A = Area of Reservoir [acres], constant
h = Net Pay Thickness [ft.], normal distribution
f
S wf
0.02827ZTres
Pres
Where Z was calculated from finding Tres (geothermal gradient of 15/1000 ft.), Pres
(gh) and obtaining the pseudo reduced values from assuming that the composition of the
reservoir was 100% Methane
m = Matrix Porosity [fraction], normal distribution
S wm = Matrix Water Saturation [fraction], normal distribution
V L = Langmuir Volume [scf/ton], uniform distribution
P = Reservoir Pressure [psi], normal distribution
have all of our depths (of both top and bottom following the same procedure) we assigned the
corresponding dx/dy values to each cell. We then entered these values into Matlab and
constructed a 3-D representation of our reservoir. With the 3-D structure now constructed we
needed to add the petrophysical properties to it. This was done by first acquiring the well logs of
all 11 wells and reading off the desired data. We started by first determining the depths of each
well (the difference between the top and bottom depths). Now that we had the depth intervals of
all our wells we needed to determine our gross pay zone, which is found from the gamma ray
log. The gamma ray log indicates an interval of the well being in the gross pay zone by having a
reading of API less than that of 60. This indicates low radioactivity, which is a characteristic of a
coalbed. Knowing our gross pay zone we then determined our net pay zone, which was done by
looking for spikes in resistivity of over 50 ohm-m within the gross pay zone. A resistivity of
over 50 ohm-m is representative of hydrocarbons in place. Knowing our net pay zone we, then
determined the neutron and density porosity of this zone by reading the porosity logs. Taking the
dashed-line porosity reading (neutron) and the solid-line porosity (density) we were able to solve
for the true or average porosity used in calculations. Finally, after acquiring all the data we
can from the well logs, we used this information to solve for water saturation within the net pay
zone using Archies equation. With all this data we were now able to solve for OGIP and our
sweet spot by using the max and min values of water saturation, max and min values of true
porosity and our net pay. Matlab took this data and calculated an OGIP value along with 3-D
structures of our OGIP/acre-ft (our sweet spot).
Results
The first results were obtained after creating structure maps of both the top and bottom
sections of the reservoir using the provided contour maps. MATLAB was used to create the
structure map (Figures 8, 9 and 10).
From the well log data, values for average porosity, water saturation and net way were
recorded for each well (Table 14). From these data points, the OGIP equation showed in the
methods section of this report could be solved. The values shown in Table 2 are the result of
well log calculations, and variable defined in the course.
Variable
Area (acres)
Coal Density (gm/cc)
Gas Formation Volume Factor (cu ft/scf)
Net Pay Thickness mean (ft)
Net Pay Thickness std. dev. (ft)
Matrix Porosity mean (fraction)
Matrix Porosity std. dev. (fraction)
Matrix Water Saturation mean (fraction)
Matrix Water Saturation std. dev. (fraction)
Pressure mean (psi)
Pressure std. dev. (psi)
Fracture Porosity min (fraction)
Input
3434
1.33
0
30.9
16.5
0.39
0.11
0.13
0.13
1731
99.7
0.001
7
0.01
325.8
750.7
318.2
862.5
0
0.536
0.1
0.5
Refer back to the Methods section to see which variables were assumed constant, and
which ones had a uniform or normal distribution. Referring to Figure 14, 1000 random numbers
were generated. The graph shows that anything after this amount was a waste of time as the
standard deviation did not change. The results of the simulation can be found in Table 3. Also,
histograms of net pay, porosity, water saturation, and OGIP can be found in Figures 12-15.
P90
18 MMMSCF
P10
108 MMMSCF
Next, distribution maps for net pay, max/min water saturation, and max/min porosity
were created using the values of the characteristics obtained from analyzing the wells (Figures
17-21). Using these values, a regional Monte Carlo simulation was performed in order to identify
the sweet spots. 3D maps were created for P90, P50 and P10 simulations (Figures 22-24).
Using these distributions, three locations were identified as potential sweet spots in Figure 3
below.
Location 1
3 MMMSCF/
ac-ft
Location 2
Location 3
3.25
MMMSCF/
ac-ft
4.2
MMMSCF/
ac-ft
Discussion
The process leading up to the sweet spot identification was carried out cautiously and to
the best of our abilities. With each step building on the previous, it was paramount that each data
point was double check to reduce the chance of errors. Having said that, we are very confident
that the research that was performed is accurate. Certain variables that may have hindered the
accurateness were out of our control. These include difficulties in well log readings, mainly
wrap around areas, and incorrect formulas. The well log readings were reviewed by several
members of the group, and the best estimations were made in cases that the data was not clear.
Also, the use of incorrect formulas altered our results. Once the error was caught, the
simulations were performed again, the new results were recorded.
The results show this CBM reservoir has an OGIP P50 reading of 54 MMM SCF. P50
was chosen as the represented amount due to our companys vision. We felt that P10 was not a
realistic amount because of their being so much uncertainty in the calculation. However, a
certain amount of risk should be taken, thus why the P90 result was not used either.
As for the sweet spot of the reservoir, three spots were identified (Figure 3). We feel that
location 1 is the optimal spot to drill, even though the models indicate that locations 2 and 3 have
a higher OGIP/acre-ft. Location 3 displayed the highest OGIP/ac-ft, however there is already a
high density of wells in the area. This poses two separate challenges. One, the majority of the
original gas in place may have already been produced. Two, placing wells in this area would
pose as risk. The likelihood of wellbore communication subsurface is too high to drill more
wells here. Figure 23, the P50 model for the OGIP/ac-ft simulation, shows a local high at
location 2. This area could possibly yield a large amount of gas. This however may be a result
of the model gently decreasing from the high area around location 3. As you can see in the
figure, there is a sharp dip in OGIP/ac-ft between locaitons 2 and 3.
This leaves location 1 as the optimal location to drill. There is a large amount of area to
work with, all with relatively constant OGIP/ac-ft. Also, this is the shallowest portion of the
reservoir and will decrease drilling costs. Location 1 is the candidate for future production.
After seeing several other results and models on this CBM reservoir presented by other
groups, we feel that our data agrees with the majority. The sweet spots seem to mostly be in
location 3 where the cluster of wells is. The difference is that we are choosing to not drill in this
area as some groups are.
Conclusion
We concluded after finishing our first capstone engineering design course, and after
analyzing the physical data with respect to error and using this data in design and looking at the
wells and the located reservoir that now we can characterize the reservoir in a right and efficient
way by collecting and analyzing the data given and other related data provided by the operators.
And this project helped us to consider the factors involving economic, environmental, social,
health and safety considerations. This part of the capstone project was done by team effort and
we assumed every member has a specific responsibility as a assume responsibilities as petro
physicist, drilling engineer, geologist, geophysicist production engineer, reservoir engineer. In
9
our model, we focused generally on vertical wells rather than horizontal, because the horizontal
wells are placed mostly in areas with high water saturation. Although the horizontal wells are
dolomite high porosity zones. Moreover, the vertical wells were distributed in the whole region
of the reservoir; in both high and low water saturation zones.
So to demonstrate the overall steps we did in a short way: We first started with the
Contour Maps/3D Structure Maps. Then we used the 11 Well logs, and these wells were used to
acquire petro physical properties of each well. After that we calculated the OGIP and obtained
Bg, Z factor etc. When we got the calculations, and Net Pay, Max/Min for Porosity and Water
Saturation from Well logs We entered the codes in the matlab values into our grid where the
wells are located
After finishing this semester we will go to the next step, which is Reservoir engineering
design (PNG 491) in the next fall semester with professor Wang. This engineering design project
is the integration of knowledge and skills acquired through experience, reading and formal
instruction into a final product, the design. To that end, this course is the second course of a 3course, 3-semester, sequence that will result in a comprehensive capstone-engineering project. In
that course we will be applying the concepts of reservoir and drilling engineering to petroleum
engineering design projects, focusing on the design and economic analysis of different drilling
and completion options. And after finishing with Wangs capstone class we will be able to gain
the ability and confidence in applying petroleum engineering to solve real-world problems for
the industry.
Acknowledgements
We would like to thank several people for helping us through this process. It was very
knew to us, and without the help of the following people, would not have been possible.
Dr. Ertekin
Dr. Morgan
Rajput Vaibhav
Qian Sun
Jian Zhang
Other Teams that we collaborated with
References
Ertekin, Turgay. Matlab Tutorial 1: Surface Plots [pdf]. Retrieved from
https://cms.psu.edu/section/default.asp?id=201415SPUP___RP_N_G490_001
Morgan, Eugene. PNG 490 Interpreting Well Logs [PowerPoint slides]. Retrieved from
https://cms.psu.edu/section/content/default.asp?WCI=pgDisplay&WCU=CRSCNT&EN
TRY_ ID=F260626D513647938C12CC602C73351B
10
Sun, Qian. Introduction to Data Interpolation and Sweet Spot Identification [PowerPoint slides].
Retrieved from
https://cms.psu.edu/section/content/default.asp?
WCI=pgDisplay&WCU=CRSCNT&EN
TRY_ID=B6DC6CEB2AD94C92A21DA08197590B14
Sun, Qian. Introduction to Property Distribution Maps Generation and Monte Carlo Simulation
[PowerPoint slides]. Retrieved from https://cms.psu.edu/section/content/default.asp?
WCI=pgDisplay&WCU=CRSCNT&EN
TRY_ID=369A609DF4C24FC1A08A3E39073628A1
11
Figures/Illustrations
12
13
14
15
20.0
15.0
10.0
5.0
0.0
10
100
1000
10000
100000
1000000
19
20
P10
P50
P90
Figure 16: Plot of OGIP Identifying Monte Carlo P90 P50 P10
21
22
23
24
25
Tables
Top
Depth
(ft)
Bottom
Depth
(ft)
Gross
Pay (ft)
Neutron
Porosity
(%)
Density
Porosity
(%)
Rd
(ohm-m)
True
Porosity
(ft)
Sw
(%)
Net Pay
(ft)
3415
3435
3460
3480
3515
3580
3600
3417
3446
3464
3500
3518
3583
3602
2
11
4
20
3
3
2
0.27
0.2
0.56
0.3
0.59
0.58
0.55
0.19
0.11
0.53
0.24
0.51
0.47
0.49
30
80
2000
70
600
747
90
0.23
0.155
0.545
0.27
0.55
0.525
0.52
0.405
0.448
0.013
0.208
0.024
0.023
0.068
0
11
4
20
3
3
2
Top
Depth
(ft)
Bottom
Depth
(ft)
3827
3832
3869
3874
3922
3924
3979
3987
3989
3993
4007
4021
4032
4036
4061
4063
Gross Pay
(ft)
Neutron
Porosity
(%)
Density
Porosity
(%)
Rd
(ohmm)
True Porosity
(ft)
0.65
0.6
2000
0.44
0.65
0.6
2500
0.44
0.57
0.55
2000
0.40
0.6
0.5
2250
0.39
0.5
0.55
2500
0.37
14
0.27
0.18
180
0.16
0.4
0.29
35
0.25
0.65
0.55
2000
0.43
Sw
(%)
0.0
0
0.0
0
0.0
0
0.0
0
0.0
0
0.3
2
0.4
6
0.0
0
Net
Pay
(ft)
5
5
2
8
4
14
0
2
26
4086
4101
4153
4158
4187
4189
4208
4210
4283
4288
15
0.4
0.3
170
0.25
0.55
0.6
2000
0.41
0.45
0.4
2000
0.30
0.4
0.4
2000
0.28
0.54
0.6
2500
0.40
0.0
9
0.0
0
0.0
0
0.0
1
0.0
0
15
5
2
2
5
Bottom
Depth
(ft)
3787
3789
3852
3858
3871
3874
4037
4041
4069
4072
4092
4094
4170
4174
4213
4217
4282
4286
Gross Pay
(ft)
Neutron
Porosity
(%)
Density
Porosity
(%)
Rd
(ohmm)
True Porosity
(ft)
0.55
0.5
160
0.371
0.65
0.6
1000
0.442
0.6
0.65
380
0.442
0.65
0.65
560
0.459
0.55
0.6
300
0.406
0.5
0.5
990
0.353
0.6
0.6
1500
0.424
0.58
0.6
2000
0.417
0.7
0.65
260
0.477
Sw
(%)
0.02
9
0.00
2
0.00
7
0.00
4
0.01
2
0.00
5
0.00
2
0.00
1
0.00
8
Net
Pay
(ft)
2
6
3
4
3
2
4
5
4
27
Top
Depth
(ft)
Bottom
Depth
(ft)
4314
4320
4346
4358
4366
4374
Gross Pay
(ft)
Neutron
Porosity
(%)
Density
Porosity
(%)
Rd
(ohmm)
True Porosity
(ft)
Sw
(%)
0.2
-0.04
15
0.08
12
0.25
0.16
40
0.205
0.25
0.25
20
0.25
0.79
0
0.18
9
0.21
9
Sw
(%)
Net
Pay
(ft)
6
12
Net
Pay
(ft)
Bottom
Depth
(ft)
4060
4062
4064
4068
4106
4112
4136
4140
4240
4244
Gross Pay
(ft)
Neutron
Porosity
(%)
Density
Porosity
(%)
Rd
(ohmm)
True Porosity
(ft)
0.24
0.27
400
0.255
0.3
0.2
700
0.25
0.28
0.22
600
0.25
0.28
0.2
100
0.24
0.3
0.27
100
0.285
0.30
6
0.23
6
0.25
5
0.65
0
0.54
7
Sw
(%)
2
4
6
4
4
Top
Depth
(ft)
Bottom
Depth
(ft)
4000
4010
4026
4030
Gross Pay
(ft)
Neutron
Porosity
(%)
Density
Porosity
(%)
Rd
(ohmm)
True Porosity
(ft)
10
0.3
0.13
60
0.215
0.27
0.19
90
0.23
0.04
4
0.03
6
Net
Pay
(ft)
0
4
28
4098
4102
4120
4122
4136
4140
4148
4151
4194
4197
0.6
0.6
550
0.6
0.6
0.6
350
0.6
0.14
0.1
60
0.12
0.6
0.6
110
0.6
0.7
0.7
190
0.7
0.01
5
0.01
8
0.04
4
0.03
3
0.02
5
0
3
4
3
3
Top
Depth
(ft)
4000
4020
4074
4106
4162
4164
4166
Bottom
Depth
(ft)
4002
4022
4076
4108
4164
4166
4168
Gross Pay
(ft)
2
2
2
2
2
2
2
Neutron
Porosity
(%)
0.364
0.328
0.4
0.37
0.335
0.38
0.7
Density
Porosity
(%)
0.6
0.24
0.42
0.32
0.34
0.44
0.7
Rd
(ohm-m)
20
14
30
19
57
85
40
True
Porosity
(ft)
0.482
0.284
0.41
0.345
0.3375
0.41
0.7
Sw
(%)
Net Pay
(ft)
0.075
0.089
0.061
0.076
0.044
0.036
0.053
2
0
2
0
0
2
2
Top
Depth
(ft)
Bottom
Depth
(ft)
Gross Pay
(ft)
Neutron
Porosity
(%)
Density
Porosity
(%)
Rd
(ohmm)
True Porosity
(ft)
Sw
(%)
Net
Pay
(ft)
29
3826
3830
3842
3844
3878
3880
3922
3924
3946
3950
4122
4128
4142
4144
4162
4164
4190
4192
4246
4250
0.5
0.06
1500
0.28
0.6
0.12
110
0.36
0.5
0.18
95
0.34
0.6
0.06
2000
0.33
0.65
0.18
200
0.415
0.57
0.08
2000
0.325
0.55
0.06
2000
0.305
0.5
0.1
700
0.3
0.6
-0.04
300
0.28
0.55
0.06
1000
0.305
0.04
3
0.10
8
0.12
7
0.02
9
0.06
5
0.03
0
0.03
3
0.05
6
0.09
5
0.04
6
Sw
(%)
4
2
2
4
4
6
2
2
2
4
Top
Depth
(ft)
Bottom
Depth
(ft)
3976
3978
4002
4006
4064
4066
Gross Pay
(ft)
Neutron
Porosity
(%)
Density
Porosity
(%)
Rd
(ohmm)
True Porosity
(ft)
0.56
0.42
220
0.49
4
2
0.65
0.55
0.52
0.45
1800
990
0.585
0.5
0.04
8
0.01
3
0.02
Net
Pay
(ft)
2
4
2
30
4210
4212
4230
4232
4278
4280
4304
4308
0.6
0.5
600
0.55
0.65
0.6
800
0.625
0.7
0.65
300
0.675
0.65
0.55
2000
0.6
2
0.02
5
0.01
8
0.02
6
0.01
2
Sw
(%)
2
2
2
4
Bottom
Depth
(ft)
3974
3979
4008
4011
4054
4057
4090
4095
4159
4162
4250
4256
Gross Pay
(ft)
Neutron
Porosity
(%)
Density
Porosity
(%)
Rd
(ohmm)
True Porosity
(ft)
0.87
0.2
500
0.535
0.82
0.1
100
0.46
0.89
0.25
100
0.57
0.88
0.25
1000
0.565
0.86
0.2
150
0.53
0.88
0.25
1500
0.565
0.10
0
0.25
0
0.15
0
0.10
0
0.15
0
0.10
0
Min
Porosity
(%)
Max
Sw
(%)
Net
Pay
(ft)
5
3
3
5
3
6
Well
#
True
Porosity
Mean
Net
Pay
(ft)
Min
Sw
(%)
31
(%)
1
3380
3850
470
0.49
49
0.08
0.58
0.30
0.38
0.02
3400
3625
225
0.40
43
0.17
0.55
0.16
0.45
0.01
3850
4250
400
0.35
69
0.07
0.44
0.16
0.46
0.00
3775
4220
445
0.42
33
0.01
0.48
0.35
0.03
0.00
4300
4410
110
0.18
26
0.40
0.25
0.08
0.79
0.19
4005
4255
250
0.26
20
0.40
0.29
0.24
0.65
0.24
3800
4000
200
0.44
17
0.03
0.70
0.12
0.04
0.01
3945
4195
250
0.42
0.06
0.70
0.28
0.09
0.04
3800
4250
450
0.32
32
0.06
0.42
0.28
0.13
0.03
10
3900
4305
405
0.58
18
0.02
0.68
0.49
0.05
0.01
11
4010
4305
295
0.5375
25
0.14
0.57
0.46
0.25
0.1
dx
(ft.)
dy
(ft.)
Net Pay
(ft)
Max Porosity
(%)
Min Porosity
(%)
Max Sw
(%)
Min Sw (%)
Well 1
Well 2
Well 3
Well 4
Well 5
Well 6
Well 7
Well 8
Well 9
Well 10
2747
4957
14467
12370
14467
12841
12841
13768
13768
14952
6861
6861
2771
3083
6153
3875
2438
49
43
69
33
26
20
17
8
32
18
0.58
0.55
0.44
0.48
0.25
0.29
0.70
0.70
0.42
0.68
0.30
0.16
0.16
0.35
0.08
0.24
0.12
0.28
0.28
0.49
0.38
0.45
0.46
0.03
0.79
0.65
0.04
0.09
0.13
0.05
0.02
0.01
0.00
0.00
0.19
0.24
0.01
0.04
0.03
0.01
3875
2063
2063
32
Well 11
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Category
Boundary
14952
406
406
406
406
406
406
406
406
406
406
406
406
406
406
406
406
406
406
813
1219
1625
2032
2438
2747
3153
3559
3966
dx
(ft.)
4274
3875
9069
8514
7972
7417
6861
6153
5799
5403
4847
4292
3875
3083
2771
2438
2063
1625
1083
479
479
479
479
479
479
479
479
479
479
dy
(ft.)
479
25
22
22
22
25
25
25
22
22
22
22
22
22
22
20
20
20
20
20
20
20
20
20
22
22
22
20
20
Net Pay
(ft)
20
0.57
0.50
0.51
0.53
0.53
0.53
0.53
0.54
0.54
0.54
0.54
0.55
0.55
0.55
0.56
0.56
0.53
0.53
0.52
0.54
0.55
0.58
0.57
0.58
0.60
0.61
0.62
0.62
Max Porosity
(%)
0.60
0.46
0.25
0.25
0.25
0.26
0.26
0.26
0.27
0.27
0.26
0.26
0.27
0.27
0.27
0.27
0.28
0.27
0.27
0.27
0.30
0.31
0.31
0.31
0.31
0.31
0.29
0.26
0.24
Min Porosity
(%)
0.23
0.25
0.35
0.35
0.36
0.36
0.36
0.37
0.37
0.37
0.38
0.38
0.38
0.38
0.37
0.39
0.39
0.39
0.40
0.40
0.40
0.40
0.41
0.42
0.42
0.42
0.42
0.43
0.43
Max Sw
(%)
0.45
0.10
0.01
0.01
0.01
0.01
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.03
0.03
0.03
0.03
0.03
0.03
0.03
0.03
0.03
0.03
0.03
0.03
0.03
0.03
0.03
Min Sw (%)
0.02
33
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
4583
4957
5364
5770
6176
6583
6989
7396
7802
8208
8615
9021
9427
9834
10240
10647
11053
11459
11866
12370
12841
13297
13768
13995
14467
14561
14952
15472
15992
16496
16496
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
1083
1625
22
22
22
20
20
20
20
20
20
20
18
18
18
16
16
16
15
15
15
15
12
15
20
25
35
18
15
15
15
14
13
0.59
0.59
0.58
0.58
0.57
0.58
0.58
0.58
0.59
0.59
0.59
0.60
0.61
0.61
0.62
0.62
0.60
0.62
0.63
0.60
0.58
0.54
0.50
0.48
0.49
0.52
0.62
0.62
0.62
0.62
0.62
0.22
0.22
0.22
0.21
0.22
0.22
0.22
0.21
0.20
0.19
0.18
0.15
0.15
0.15
0.16
0.15
0.15
0.14
0.15
0.14
0.14
0.18
0.24
0.24
0.22
0.14
0.08
0.08
0.12
0.14
0.14
0.46
0.48
0.48
0.48
0.48
0.49
0.49
0.49
0.50
0.50
0.51
0.52
0.53
0.53
0.54
0.54
0.48
0.40
0.40
0.32
0.10
0.10
0.14
0.15
0.20
0.55
0.92
0.68
0.60
0.54
0.58
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.02
0.03
0.03
0.02
0.01
0.01
0.01
0.01
0.01
0.01
0.01
34
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Category
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
16496
16496
16496
16496
16496
16496
16496
16496
dx
(ft.)
16496
16496
16496
16496
16496
16496
16496
16496
15992
15472
14952
14561
14467
13995
13768
13297
12841
12370
11866
11459
11053
2063
2438
2771
3083
3875
4292
4847
5403
dy
(ft.)
5799
6153
6861
7417
7972
8514
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
13
13
18
30
18
15
15
15
Net Pay
(ft)
15
15
15
15
15
15
15
15
15
15
15
15
15
15
10
10
10
15
15
17
17
0.62
0.62
0.62
0.59
0.59
0.58
0.59
0.60
Max Porosity
(%)
0.60
0.59
0.58
0.58
0.58
0.57
0.57
0.58
0.55
0.52
0.50
0.46
0.45
0.48
0.52
0.53
0.52
0.57
0.58
0.60
0.59
0.14
0.15
0.15
0.16
0.17
0.18
0.19
0.18
Min Porosity
(%)
0.20
0.21
0.20
0.24
0.24
0.24
0.22
0.20
0.21
0.22
0.23
0.08
0.08
0.10
0.12
0.15
0.21
0.20
0.20
0.20
0.20
0.60
0.67
0.56
0.54
0.52
0.49
0.48
0.48
Max Sw
(%)
0.50
0.51
0.50
0.50
0.50
0.53
0.52
0.52
0.54
0.66
0.77
0.68
0.88
0.65
0.62
0.60
0.60
0.59
0.58
0.55
0.54
0.01
0.01
0.02
0.03
0.05
0.10
0.09
0.08
Min Sw (%)
0.06
0.04
0.03
0.02
0.02
0.01
0.01
0.01
0.01
0.02
0.02
0.02
0.02
0.02
0.01
0.02
0.02
0.02
0.02
0.01
0.01
35
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Category
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
Boundary
10647
10240
9834
9427
9021
8615
8208
7802
7396
6989
6583
6176
5770
5364
4957
4583
4274
3966
3559
dx
(ft.)
3153
2747
2438
2032
1625
1219
813
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
9069
dy
(ft.)
9069
9069
9069
9069
9069
9069
9069
18
18
18
18
18
20
20
22
22
23
24
24
25
25
25
25
25
25
25
Net Pay
(ft)
25
25
25
25
25
25
22
0.59
0.59
0.58
0.58
0.57
0.56
0.56
0.56
0.56
0.56
0.56
0.56
0.55
0.55
0.55
0.56
0.55
0.55
0.57
Max Porosity
(%)
0.56
0.55
0.56
0.56
0.56
0.55
0.53
0.19
0.19
0.19
0.18
0.18
0.18
0.18
0.17
0.17
0.17
0.17
0.17
0.16
0.16
0.16
0.18
0.20
0.26
0.28
Min Porosity
(%)
0.28
0.30
0.30
0.29
0.29
0.28
0.29
0.53
0.53
0.53
0.52
0.50
0.50
0.47
0.47
0.47
0.47
0.46
0.45
0.45
0.45
0.45
0.45
0.43
0.42
0.41
Max Sw
(%)
0.40
0.38
0.38
0.37
0.36
0.36
0.36
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.02
0.02
Min Sw (%)
0.02
0.02
0.02
0.02
0.02
0.02
0.01
Table 15: Property Distribution Coordinates and Boundary Conditions for Interpolation
36
37
Appendices
OGIP Calculation Matlab Calculation with Monte Carlo Simulation
%% OGIP Calculation with Monte Carlo Sim
% This program will calculate OGIP and Monte Carlo P90 P50 P10
% Team 19 - DM inc.
%% OGIP Calculation
%Number of random numbers
n = 1000;
%Area [acre] constant
A = 3434.39;
%Net pay Thickness [ft] normal distribution
h = 30.91 + 16.49.*randn(n,1);
%Matrix Porosity [fraction] normal distribution
phim = .40 + .11.*randn(n,1);
%Fracture Porosity [fraction] normal distribution
phif = unifrnd(.001,.01, [n,1]);
%Matrix Water Saturation [fraction] normal distribution
Swm = .13 + .13.*randn(n,1);
%Fracture Water Saturation [fraction] normal distribution
Swf = unifrnd(0.1,0.5,[n,1]);
%Langmuir Volume [scf/ton]
VL = unifrnd(325.8, 750.7, [n,1]);
%Langmuir Pressure [psi]
PL =unifrnd(318.2, 862.5, [n,1]);
38
%Pressure [psi]
P = unifrnd(1523, 1889, [n,1]);
%Coal Density [gm/cc] constant
rhoc = 1.33;
%Ash contents [fraction] uniform distribution
fa = unifrnd(0, 0.536, [n,1]);
%Gas formation volume factor [cu ft/SCF] constant
Bgi = 0.0067;
%OGIP Calculation [SCF]
OGIP = ((43560*A.*h.*((phif.*(1-Swf)./Bgi)+(phim.*(1-Swm)./Bgi))/1000)+(A.*h.*1.359.*((VL.*P)./
(P+PL))*rhoc.*(1-fa))*1000);
%% Graphing of OGIP
figure(1);
hist(OGIP);
title('Histogram of OGIP Simulations');
xlabel('OGIP [SCF]');
ylabel('Frequency');
P90=quantile(OGIP, .1);
P50=quantile(OGIP, .5);
P10=quantile(OGIP, .9);
figure(2);
cdfplot(OGIP);
hold on;
x = [P90; P50; P10];
y = [.1; .5; .9];
plot(x,y,'o','Markersize',10,'MarkerFaceColor','r');
title('Cumulative Probability of OGIP');
xlabel('OGIP (SCF)');
ylabel('Probability');
figure(3);
39
hold on;
hist(h);
title('Histogram of Net Pay Simulations');
xlabel('Height [ft.]');
ylabel('Frequency');
figure(4);
hold on;
hist(phim);
title('Histogram of Porosity Simulations');
xlabel('Porosity [unitless]');
ylabel('Frequency');
figure(5);
hold on;
hist(Swm);
title('Histogram of Water Saturation Simulations');
xlabel('Water Saturation [unitless]');
ylabel('Frequency');
40
41
42
surf(IMaxSw);
title('Max Water Saturation Distribution');
xlabel('dx [ft]');
ylabel('dy [ft]');
%Max Sw 3D Map
figure(5);
surf(IMinSw);
title('Min Water Saturation Distribution');
xlabel('dx [ft]');
ylabel('dy [ft]');
43
top_depth= dlmread('TpNew.txt');
%Water Saturation
saturation_min = xlsread('MinSw');
saturation_max = xlsread('MaxSw');
%% Calculations
%Gas Formation Volume Factor [cu ft/SCF]
B_gi=.00671;
%Fracture Porosity [unitless]
fracture_porosity=unifrnd(0.001,0.01,[10000,1]);
%Fracture Saturation [unitless]
fracture_saturation=unifrnd(0.1,0.5,[10000,1]);
%Density of Coal [gm/cc]
rho_c=1.33;
%Clear Variables to speed up code
P_max=zeros();
P_min=zeros();
P90=zeros();
P50=zeros();
P10=zeros();
%% Loop will calculate P90 P50 and P10 for each grid block
for i=1:18
for j=1:41
%Pressure [psi]
P_max=bot_depth(i,j)*0.433;
P_min=top_depth(i,j)*0.433;
%Input Program for Langmuir Pressure [unitless]
PL_bot=getPL(bot_depth(i,j));
PL_top=getPL(top_depth(i,j));
%Input Program for Langmuir Volume [unitless]
VL_bot=getVL(bot_depth(i,j));
VL_top=getVL(top_depth(i,j));
44
end
%Monte Carlo
P90(i,j)=quantile(OGIP,.1);
P50(i,j)=quantile(OGIP,.5);
P10(i,j)=quantile(OGIP,.9);
end
45
dx = dlmread('Delta_x.txt');
dy = dlmread('Delta_y.txt');
%Regional OGIP for P90
figure(1)
surface(dx,dy,P90);
xlabel('x (feet)');
ylabel('y (feet)');
zlabel('OGIP [SCF/acre-ft]');
title('Regional OGIP (P90)');
hold on
plot3([2560 2560],[4960 4960],[1000000 5000000],'k','LineWidth',1)
text(2560,4960,5000000, 'Well 1')
plot3([5280 5280],[4960 4960],[1000000 5000000],'k','LineWidth',1)
text(5280,4960,5000000, 'Well 2')
plot3([15320 15320],[2000 2000],[1000000 5000000],'k','LineWidth',1)
text(15320,2000,5000000, 'Well 3')
plot3([13000 13000],[2480 2480],[1000000 5000000],'k','LineWidth',1)
text(13000,2480,5000000, 'Well 4')
plot3([15320 15320],[4640 4640],[1000000 5000000],'k','LineWidth',1)
text(15320,4640,5000000, 'Well 5')
plot3([13640 13640],[3040 3040],[1000000 5000000],'k','LineWidth',1)
text(13640,3040,5000000, 'Well 6')
plot3([13640 13640],[2000 2000],[1000000 5000000],'k','LineWidth',1)
text(13640,2000,5000000, 'Well 7')
plot3([14440 14440],[2800 2800],[1000000 5000000],'k','LineWidth',1)
text(14440,2800,5000000, 'Well 8')
plot3([14440 14440],[2000 2000],[1000000 5000000],'k','LineWidth',1)
text(14440,2000,5000000, 'Well 9')
plot3([15880 15880],[1600 1600],[1000000 5000000],'k','LineWidth',1)
text(15880,1600,5000000, 'Well 10')
plot3([15880 15880],[3040 3040],[1000000 5000000],'k','LineWidth',1)
text(15880,3040,5000000, 'Well 11')
%Regional OGIP for P50
figure(2)
surface(dx,dy,P50);
xlabel('x (feet)');
ylabel('y (feet)');
zlabel('OGIP [SCF/acre-ft]');
46
47
5000000],'k','LineWidth',1)
5000000],'k','LineWidth',1)
5000000],'k','LineWidth',1)
5000000],'k','LineWidth',1)
5000000],'k','LineWidth',1)
5000000],'k','LineWidth',1)
5000000],'k','LineWidth',1)
48