├── Graphical-Output ├── Graphical-Output.md ├── Pcontour1.png ├── Pcontour2.png ├── RateVTime.png ├── 3d_contour.png └── CumulativeOilProduction.png ├── T_frac.m ├── P_analytical.m ├── reservoir.m ├── LICENSE ├── TBQ_box_f.m ├── README.md ├── poro_perm.dat ├── Project_1_Main.m ├── Project_1_Main.asv ├── Nechelik.dat ├── Nechelik_perm.dat └── Nechelik_poro.dat /Graphical-Output/Graphical-Output.md: -------------------------------------------------------------------------------- 1 | Matlab output 2 | -------------------------------------------------------------------------------- /Graphical-Output/Pcontour1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FracThePermian/Reservoir-Simulation-Part-B/HEAD/Graphical-Output/Pcontour1.png -------------------------------------------------------------------------------- /Graphical-Output/Pcontour2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FracThePermian/Reservoir-Simulation-Part-B/HEAD/Graphical-Output/Pcontour2.png -------------------------------------------------------------------------------- /Graphical-Output/RateVTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FracThePermian/Reservoir-Simulation-Part-B/HEAD/Graphical-Output/RateVTime.png -------------------------------------------------------------------------------- /Graphical-Output/3d_contour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FracThePermian/Reservoir-Simulation-Part-B/HEAD/Graphical-Output/3d_contour.png -------------------------------------------------------------------------------- /Graphical-Output/CumulativeOilProduction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FracThePermian/Reservoir-Simulation-Part-B/HEAD/Graphical-Output/CumulativeOilProduction.png -------------------------------------------------------------------------------- /T_frac.m: -------------------------------------------------------------------------------- 1 | function T_frick = T_frac(cha,chacha,Ax,mu,Bw,dx) 2 | global k 3 | k_frac = 2*(1/k(cha)+1/k(chacha))^-1; 4 | T_frick = 6.33e-3*k_frac*Ax/(Bw*mu*dx); 5 | -------------------------------------------------------------------------------- /P_analytical.m: -------------------------------------------------------------------------------- 1 | function P = P_analytical(r,t) 2 | Pi = 1000;q = 1000/5.615;mu = 1;k = 25;h = 10;phi = 0.2;ct = 1e-6 3 | P = Pi -70.6*q*mu/(h*k)*expint((39.516*phi*mu*ct*(r).^2)/(k*t)); 4 | -------------------------------------------------------------------------------- /reservoir.m: -------------------------------------------------------------------------------- 1 | function [para] = reservoir 2 | 3 | para.NX = 54; % number of blocks 4 | para.NY = 22; 5 | para.N = para.NX *para.NY; 6 | para.h = 100; %ft 7 | para.W = 5753; %ft 8 | para.L = 7060.5; %ft 9 | para.ct = 1e-6; %psi^-1 10 | para.mu = 1; %cP 11 | para.Bw = 1; %RB/STB 12 | para.dx = para.L/para.NX; %ft 13 | para.dy = para.W/para.NY; %ft 14 | para.Ax = para.dy*para.h; %ft^2 15 | para.Ay = para.dx*para.h; %ft^2 16 | 17 | global k phi 18 | % A = importdata(''); just another way to do this I guess 19 | % phi = A(:,1)'; 20 | % k = A(:,2)'; 21 | k = load('Nechelik_perm.dat') 22 | phi = load('Nechelik_poro.dat') 23 | para.k = k; 24 | para.phi = phi; 25 | 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Samuel Petzold 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /TBQ_box_f.m: -------------------------------------------------------------------------------- 1 | function [ T,B,Q,J ] = TBQ_box_f(BC,P_B,para_wells,q_wells) 2 | global k phi 3 | [para] = reservoir; N = para.N; NX = para.NX; NY = para.NY; mu = para.mu; Bw = para.Bw; dx = para.dx; dy = para.dy; Ax = para.Ax; Ay = para.Ay; 4 | h = para.h; ct = para.ct; Bw = para.Bw 5 | T = sparse(N,N); B = sparse(N,N); Q = sparse(N,1); Q(para_wells) = Q(para_wells) + q_wells; J = sparse(N,N); 6 | 7 | for i = 1:N 8 | if i+NX <= N 9 | T_diag = T_frac(i,i+NX,Ay,mu,Bw,dy); 10 | T(i,i+NX) = T(i,i+NX)-T_diag; 11 | T(i+NX,i) = T(i+NX,i)-T_diag; 12 | end 13 | 14 | % This is for diagonals toward the inside of sparsity 15 | if (mod(i,NX) ~= 0) && (i+1 <= N) 16 | T_diag = T_frac(i,i+1,Ax,mu,Bw,dx); 17 | T(i,i+1) = T(i,i+1)-T_diag; 18 | T(i+1,i) = T(i+1,i)-T_diag; 19 | end 20 | 21 | T(i,i) = abs(sum(T(i,:)));%Sum up every row on every iteration 22 | 23 | if BC(i) == 1 %if and only if the boundary condition exists 24 | T(i,i) = T(i,i)+2*T_frac(i,i,Ax,mu,Bw,dx); 25 | Q(i) = Q(i) + 2*P_B(i)*T_frac(i,i,Ax,mu,Bw,dx); 26 | end 27 | 28 | if BC(i) == -1 %Because of the boundary conditions 29 | J(i,i) = 6.33e-3*2*pi*para.h*k(i)/(para.mu*para.Bw*log(4*(0.28*(para.dx^2+para.dy^2)^0.5/2))) 30 | Q(i) = Q(i) + P_B(i)*J(i,i) 31 | end 32 | 33 | B(i,i) = dx*dy*h*phi(i)*ct/Bw; %phi as such for next project '2' 34 | 35 | end 36 | end 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Reservoir-Simulation-Part-B 2 | 3 | Compares analytical/numerical results for the drainage of multiple wells w/n the dimensions that you define (drainage area and depth). The Nechelik (.dat) files provide porosity and permeability for each unit block of reservoir. Modify the following variables to your liking. 4 | 5 | Control the placement of wells and whether they are injecting and/or producing. 6 | 7 | It is written in Matlab, is self-contained, and no external dependencys. 8 | 9 | ### Assumptions 10 | * Incompressible Fluid 11 | * Homogeneous/Heterogeneous Reservoir 12 | * Neumann boundary (Reservoir side) 13 | * Dirichlet boundary (Well side) 14 | ### Modify Parameters 15 | * Reservoir Depth, Area, and Volume (ft ; ft^2 ; ft^3) 16 | * Reservoir Pressure (psi) 17 | * Time and/or Iterations (days) 18 | * Porosity (phi) 19 | * Permeability (k) 20 | * Compressibility (ct) 21 | * Flow Rate (+/- Q) 22 | * Damage (hk) 23 | 24 | ## Method and Materials 25 | * The Finite Element Method (FEM) is an essential numerical tool for solving boundary value problems of PDE's. 26 | 27 | **Snippet of module that generates sparsity matrix** 28 | ```matlab 29 | for i = 1:N %Generate sparsity matrix 30 | if i+NX <= N 31 | T_diag = T_frac(i,i+NX,Ay,mu,Bw,dy); 32 | T(i,i+NX) = T(i,i+NX)-T_diag; 33 | T(i+NX,i) = T(i+NX,i)-T_diag; 34 | end 35 | 36 | % This is for diagonals toward the inside of sparsity 37 | if (mod(i,NX) ~= 0) && (i+1 <= N) 38 | T_diag = T_frac(i,i+1,Ax,mu,Bw,dx); 39 | T(i,i+1) = T(i,i+1)-T_diag; 40 | T(i+1,i) = T(i+1,i)-T_diag; 41 | end 42 | T(i,i) = abs(sum(T(i,:)));%Sum up every row on every iteration 43 | if BC(i) ~= 0 %if and only if the boundary condition exists 44 | T(i,i) = T(i,i)+BC(i)*2*T_frac(i,i,Ax,mu,Bw,dx); 45 | end 46 | ``` 47 | 48 | **Analytical Solution to Pressure Profile** 49 | ```matlab 50 | function P = P_analytical(r,t) 51 | Pi = 1000;q = 1000/5.615;mu = 1;k = 25;h = 10;phi = 0.2;ct = 1e-6 52 | P = Pi -70.6*q*mu/(h*k)*expint((39.516*phi*mu*ct*(r).^2)/(k*t)); 53 | ``` 54 | 55 | ## Installation 56 | 57 | Download package: 58 | ```git 59 | git clone https://github.com/FracThePermian/Reservoir-Simulation-Part-B 60 | ``` 61 | 62 | Navigate to folder from Matlab (~/Reservoir-Simulation-Part-B/) and run the Project_1_Main.m script. 63 | 64 | 65 | ## Results 66 | 67 | **3D Pressure Profile** 68 | 69 | ![Pressure Visualization](https://github.com/FracThePermian/Reservoir-Simulation-Part-B/blob/master/Graphical-Output/3d_contour.png?raw=true "Pressure Gain/Reduction Profile") 70 | 71 | **Pressure topology** 72 | 73 | ![Pressure Contours](https://github.com/FracThePermian/Reservoir-Simulation-Part-B/blob/master/Graphical-Output/Pcontour1.png?raw=true "Pressure Contours") 74 | 75 | **3D Pressure Profile** 76 | 77 | ![Pressure Contour 2](https://github.com/FracThePermian/Reservoir-Simulation-Part-B/blob/master/Graphical-Output/Pcontour2.png?raw=true "Pressure Contour 2") 78 | 79 | **Flow Rate vs. Time** 80 | 81 | ![Rate vs. Time](https://github.com/FracThePermian/Reservoir-Simulation-Part-B/blob/master/Graphical-Output/RateVTime.png?raw=true "Q vs. Time") 82 | 83 | **Cumulative Oil Production** 84 | 85 | ![Cumulative Oil Production](https://github.com/FracThePermian/Reservoir-Simulation-Part-B/blob/master/Graphical-Output/CumulativeOilProduction.png?raw=true "Cumulative Oil Production") 86 | 87 | 88 | ### License 89 | [MIT](https://opensource.org/licenses/MIT "MIT") 90 | -------------------------------------------------------------------------------- /poro_perm.dat: -------------------------------------------------------------------------------- 1 | 0.105 47.46 2 | 0.105 29.75 3 | 0.112 37.56 4 | 0.085 18.38 5 | 0.138 75.03 6 | 0.1 30.69 7 | 0.115 46.22 8 | 0.116 48.75 9 | 0.12 54.97 10 | 0.117 52.73 11 | 0.147 102.68 12 | 0.11 47.62 13 | 0.1 39.42 14 | 0.1 40.67 15 | 0.114 42.14 16 | 0.109 37.89 17 | 0.121 100.90 18 | 0.119 52.63 19 | 0.131 88.28 20 | 0.12 56.88 21 | 0.112 47.98 22 | 0.118 57.00 23 | 0.135 85.95 24 | 0.113 53.28 25 | 0.13 80.08 26 | 0.123 70.07 27 | 0.118 64.11 28 | 0.121 69.95 29 | 0.105 36.55 30 | 0.111 44.92 31 | 0.119 57.28 32 | 0.134 84.85 33 | 0.068 31.19 34 | 0.101 38.64 35 | 0.1 38.85 36 | 0.108 49.16 37 | 0.113 57.05 38 | 0.122 72.19 39 | 0.113 59.78 40 | 0.113 61.15 41 | 0.106 53.24 42 | 0.121 76.37 43 | 0.129 78.53 44 | 0.134 90.55 45 | 0.117 60.11 46 | 0.108 48.33 47 | 0.122 89.43 48 | 0.115 61.15 49 | 0.102 44.64 50 | 0.113 60.82 51 | 0.101 45.97 52 | 0.036 11.47 53 | 0.043 13.55 54 | 0.087 35.38 55 | 0.108 60.18 56 | 0.122 84.67 57 | 0.121 44.56 58 | 0.11 34.26 59 | 0.072 11.41 60 | 0.109 35.97 61 | 0.116 63.55 62 | 0.11 39.61 63 | 0.099 31.14 64 | 0.101 34.01 65 | 0.105 38.77 66 | 0.097 33.28 67 | 0.094 32.25 68 | 0.075 22.45 69 | 0.075 23.55 70 | 0.083 28.69 71 | 0.092 21.59 72 | 0.104 32.83 73 | 0.108 38.15 74 | 0.08 17.55 75 | 0.081 39.22 76 | 0.083 21.50 77 | 0.092 28.72 78 | 0.081 22.60 79 | 0.089 28.88 80 | 0.092 32.29 81 | 0.083 27.18 82 | 0.091 33.89 83 | 0.086 31.43 84 | 0.089 34.73 85 | 0.09 22.66 86 | 0.095 27.96 87 | 0.089 24.24 88 | 0.084 21.80 89 | 0.083 43.27 90 | 0.077 19.72 91 | 0.074 19.19 92 | 0.082 25.01 93 | 0.079 24.23 94 | 0.086 30.10 95 | 0.079 26.46 96 | 0.09 35.59 97 | 0.088 35.12 98 | 0.088 36.29 99 | 0.084 20.36 100 | 0.081 67.37 101 | 0.078 18.52 102 | 0.086 25.32 103 | 0.08 44.06 104 | 0.084 26.06 105 | 0.08 24.30 106 | 0.136 105.05 107 | 0.085 30.27 108 | 0.081 28.37 109 | 0.103 50.93 110 | 0.105 54.78 111 | 0.098 47.47 112 | 0.076 29.42 113 | 0.08 12.49 114 | 0.084 15.56 115 | 0.084 16.70 116 | 0.083 17.33 117 | 0.084 41.99 118 | 0.075 15.86 119 | 0.088 23.55 120 | 0.086 23.53 121 | 0.082 22.48 122 | 0.036 11.04 123 | 0.076 21.80 124 | 0.08 24.82 125 | 0.084 28.12 126 | 0.086 30.45 127 | 0.081 14.72 128 | 0.085 18.14 129 | 0.094 25.46 130 | 0.083 19.23 131 | 0.087 46.85 132 | 0.098 32.38 133 | 0.088 25.84 134 | 0.104 40.51 135 | 0.077 21.54 136 | 0.139 95.50 137 | 0.118 61.27 138 | 0.138 96.89 139 | 0.12 67.00 140 | 0.103 47.14 141 | 0.119 54.41 142 | 0.127 68.66 143 | 0.059 8.80 144 | 0.126 69.99 145 | 0.121 88.24 146 | 0.115 55.71 147 | 0.117 60.00 148 | 0.124 72.60 149 | 0.126 77.61 150 | 0.119 67.32 151 | 0.059 17.17 152 | 0.13 89.79 153 | 0.171 209.45 154 | 0.175 228.18 155 | 0.15 128.99 156 | 0.154 142.84 157 | 0.143 113.69 158 | 0.127 125.26 159 | 0.161 158.19 160 | 0.145 124.44 161 | 0.125 79.96 162 | 0.128 87.43 163 | 0.149 141.46 164 | 0.131 96.93 165 | 0.141 122.69 166 | 0.141 124.45 167 | 0.125 89.02 168 | 0.155 170.46 169 | 0.12 43.40 170 | 0.186 188.46 171 | 0.138 71.62 172 | 0.139 75.01 173 | 0.124 41.20 174 | 0.14 80.20 175 | 0.167 142.58 176 | 0.138 80.15 177 | 0.146 96.90 178 | 0.156 120.85 179 | 0.178 186.28 180 | 0.187 221.74 181 | 0.118 58.20 182 | 0.116 57.14 183 | 0.118 47.04 184 | 0.148 100.25 185 | 0.139 83.43 186 | 0.147 101.79 187 | 0.137 72.03 188 | 0.135 80.97 189 | 0.136 84.50 190 | 0.132 78.82 191 | 0.145 106.59 192 | 0.14 97.56 193 | 0.149 119.71 194 | 0.126 74.85 195 | 0.12 67.00 196 | 0.148 122.97 197 | 0.124 62.12 198 | 0.117 52.94 199 | 0.118 55.80 200 | 0.113 50.22 201 | 0.141 107.49 202 | 0.117 58.59 203 | 0.116 58.53 204 | 0.139 102.19 205 | 0.127 79.42 206 | 0.144 117.58 207 | 0.125 78.86 208 | 0.132 93.81 209 | 0.152 144.86 210 | 0.129 90.97 211 | 0.134 88.91 212 | 0.17 198.83 213 | 0.173 213.46 214 | 0.134 139.83 215 | 0.095 18.52 216 | 0.157 160.65 217 | 0.157 162.74 218 | 0.18 257.79 219 | 0.159 173.82 220 | 0.178 253.72 221 | 0.164 196.55 222 | 0.181 273.67 223 | 0.136 113.42 224 | 0.183 289.44 225 | 0.199 234.37 226 | 0.161 115.83 227 | 0.151 95.67 228 | 0.181 177.27 229 | 0.156 93.52 230 | 0.191 218.93 231 | 0.141 83.74 232 | 0.165 139.43 233 | 0.179 184.28 234 | 0.175 173.78 235 | 0.194 247.02 236 | 0.142 94.46 237 | 0.172 171.83 238 | 0.114 54.77 239 | 0.108 35.51 240 | 0.14 83.62 241 | 0.156 121.32 242 | 0.134 75.87 243 | 0.128 45.33 244 | 0.133 77.36 245 | 0.138 88.35 246 | 0.124 65.64 247 | 0.171 179.25 248 | 0.161 149.92 249 | 0.137 93.17 250 | 0.146 114.41 251 | 0.144 111.62 252 | 0.141 106.70 253 | 0.144 101.25 254 | 0.132 77.71 255 | 0.142 100.24 256 | 0.128 73.50 257 | 0.143 118.13 258 | 0.141 103.25 259 | 0.141 105.01 260 | 0.146 118.95 261 | 0.143 113.32 262 | 0.134 94.70 263 | 0.147 127.13 264 | 0.135 100.13 265 | 0.147 130.87 266 | 0.131 94.97 267 | 0.135 91.10 268 | 0.149 128.07 269 | 0.144 116.29 270 | 0.136 98.35 271 | 0.13 106.85 272 | 0.145 124.44 273 | 0.136 103.37 274 | 0.142 120.02 275 | 0.156 163.56 276 | 0.144 128.99 277 | 0.132 100.75 278 | 0.131 100.12 279 | 0.144 134.44 280 | 0.129 98.89 281 | 0.127 52.07 282 | 0.14 73.23 283 | 0.139 73.28 284 | 0.138 73.32 285 | 0.124 34.20 286 | 0.116 45.95 287 | 0.12 52.07 288 | 0.122 56.05 289 | 0.119 53.73 290 | 0.125 63.06 291 | 0.138 85.27 292 | 0.135 81.71 293 | 0.136 85.11 294 | 0.142 98.01 295 | 0.122 52.35 296 | 0.115 44.72 297 | 0.125 59.63 298 | 0.13 69.02 299 | 0.126 41.18 300 | 0.12 56.88 301 | 0.112 47.98 302 | 0.111 48.15 303 | 0.105 42.82 304 | 0.121 64.11 305 | 0.107 47.56 306 | 0.135 90.92 307 | 0.122 70.00 308 | 0.099 43.16 309 | 0.109 41.13 310 | 0.119 55.84 311 | 0.099 32.88 312 | 0.101 77.13 313 | 0.105 15.71 314 | 0.103 40.77 315 | 0.108 47.85 316 | 0.117 61.41 317 | 0.1 41.35 318 | 0.115 61.26 319 | 0.101 44.91 320 | 0.094 39.12 321 | 0.093 39.40 322 | 0.111 61.07 323 | 0.108 44.38 324 | 0.117 58.70 325 | 0.102 39.58 326 | 0.103 42.03 327 | 0.117 84.93 328 | 0.107 49.63 329 | 0.122 74.37 330 | 0.103 47.11 331 | 0.11 57.73 332 | 0.097 42.68 333 | 0.1 47.30 334 | 0.103 52.20 335 | 0.108 60.18 336 | 0.115 72.25 337 | 0.111 33.88 338 | 0.112 36.21 339 | 0.109 34.65 340 | 0.109 35.97 341 | 0.109 63.30 342 | 0.093 25.56 343 | 0.098 30.37 344 | 0.1 33.19 345 | 0.109 42.60 346 | 0.107 41.95 347 | 0.096 33.74 348 | 0.098 36.52 349 | 0.097 36.95 350 | 0.096 37.38 351 | 0.094 23.06 352 | 0.092 22.78 353 | 0.106 36.08 354 | 0.098 29.91 355 | 0.097 5.30 356 | 0.1 34.15 357 | 0.097 32.74 358 | 0.096 33.12 359 | 0.101 38.83 360 | 0.1 39.14 361 | 0.103 43.32 362 | 0.108 50.00 363 | 0.098 41.00 364 | 0.095 39.54 365 | 0.096 27.63 366 | 0.091 24.62 367 | 0.094 28.30 368 | 0.092 27.80 369 | 0.097 40.43 370 | 0.099 36.60 371 | 0.093 32.23 372 | 0.102 42.22 373 | 0.104 45.71 374 | 0.101 43.65 375 | 0.097 40.77 376 | 0.099 44.03 377 | 0.094 40.32 378 | 0.103 50.94 379 | 0.098 32.70 380 | 0.095 30.89 381 | 0.097 34.12 382 | 0.103 42.03 383 | 0.102 56.11 384 | 0.105 47.04 385 | -------------------------------------------------------------------------------- /Project_1_Main.m: -------------------------------------------------------------------------------- 1 | close all 2 | clear all 3 | clc 4 | 5 | %1. When inserting a well, add the x,y location on line 14,15 with the 6 | %BHP ratio inserted on line 16. Then change the rates on line 219. 7 | global k phi 8 | [para] = reservoir; %class to help clean up program 9 | x = linspace(para.dx,para.L-para.dx/2,para.NX); y = linspace(para.dy,para.W-para.dy/2,para.NY); %for graphing 10 | P = 3700*ones(para.N,1); BC = sparse(para.N,1); P_B = zeros(para.N,1); 11 | well_location = [2500,4050]; q_well = [1000]; %multiple constant 'rate-wells' locations. 12 | inj_well_locations = ceil(well_location(1)/para.dx)+floor(well_location(2)/para.dy)*para.NX; %which is 5050 13 | 14 | x_loc_constBHP_well = [5536,5474,3600,2352,2000]; %2000 for 6th well 15 | y_loc_constBHP_well = [3500,4708,4937,3322,5000]; %5000 for 6th well 16 | P_prod_well = 2000*[1,1,1,1,1.025]; %1.025 for 6th well 17 | BHP_well_locations = ceil(x_loc_constBHP_well/para.dx)+floor(y_loc_constBHP_well/para.dy)*para.NX; 18 | BC(BHP_well_locations) = -1; 19 | P_B(BHP_well_locations) = P_prod_well; 20 | 21 | [T, B, Q, J] = TBQ_box_f(BC,P_B,inj_well_locations,q_well); %a box that spits out matrices T, B, Q 22 | 23 | dt = 1; t = 0; t_end = 201; n = 1; inv = sparse(T+J+B/dt); %change 24 | P_array = zeros(t_end/dt,para.N); elim_k = find(k<0.001); %No other option than to use find function 25 | while t < t_end 26 | P_2 = P; P = inv\(B*P_2/dt+Q); 27 | P(elim_k,:) = NaN; 28 | P_array(n,:) = P; 29 | t = t + dt; n = n + 1; 30 | end 31 | 32 | [Xx,Yy] = meshgrid(x,y); %Makes the meshgrid 33 | 34 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 35 | P_days_plot2 = reshape(P_array(2,:),para.NX,para.NY); P_days_plot2 = P_days_plot2'; 36 | P_days_plot10 = reshape(P_array(10,:),para.NX,para.NY); P_days_plot10 = P_days_plot10'; 37 | P_plot20 = reshape(P_array(20,:),para.NX,para.NY); P_plot20 = P_plot20'; 38 | P_days_plot100 = reshape(P_array(100,:),para.NX,para.NY); P_days_plot100 = P_days_plot100'; 39 | %Figure 1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 40 | subplot(2,2,1),surf(Xx,Yy,P_days_plot2) 41 | set(gca,'Ydir','reverse') %I did this because others told me my res. looked backward 42 | colorbar 43 | colormap jet 44 | shading interp 45 | xlabel('Reservoir Length (ft)','FontSize',14) 46 | ylabel('Reservoir Width (ft)','FontSize',14) 47 | zlabel('Res. Pressure (psi)','FontSize',14) 48 | title ('t = 2 days','FontSize',20) 49 | view (-35,75) 50 | subplot(2,2,2),surf(Xx,Yy,P_days_plot10) 51 | set(gca,'Ydir','reverse') 52 | colorbar 53 | colormap jet 54 | shading interp 55 | xlabel('Reservoir Length (ft)','FontSize',14) 56 | ylabel('Reservoir Width (ft)','FontSize',14) 57 | zlabel('Res. Pressure (psi)','FontSize',14) 58 | title ('t = 10 days','FontSize',20) 59 | view (-35,75) 60 | subplot(2,2,3),surf(Xx,Yy,P_plot20) 61 | set(gca,'Ydir','reverse') 62 | colorbar 63 | colormap jet 64 | shading interp 65 | xlabel('Reservoir Length (ft)','FontSize',14) 66 | ylabel('Reservoir Width (ft)','FontSize',14) 67 | zlabel('Res. Pressure (psi)','FontSize',14) 68 | title ('t = 20 days','FontSize',20) 69 | view (-35,75) 70 | subplot(2,2,4),surf(Xx,Yy,P_days_plot100) 71 | set(gca,'Ydir','reverse') 72 | colorbar 73 | colormap jet 74 | shading interp 75 | xlabel('Reservoir Length (ft)','FontSize',14) 76 | ylabel('Reservoir Width (ft)','FontSize',14) 77 | zlabel('Res. Pressure (psi)','FontSize',14) 78 | title ('t = 100 days','FontSize',20) 79 | view (-35,75) 80 | 81 | figure %Figure 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 82 | subplot(2,2,1),surf(Xx,Yy,P_days_plot2) 83 | set(gca,'Ydir','reverse') 84 | colorbar 85 | colormap jet 86 | shading interp 87 | xlabel('Reservoir Length (ft)','FontSize',14) 88 | ylabel('Reservoir Width (ft)','FontSize',14) 89 | zlabel('Res. Pressure (psi)','FontSize',14) 90 | title ('t = 2 days','FontSize',20) 91 | view (-35,15) 92 | subplot(2,2,2),surf(Xx,Yy,P_days_plot10) 93 | set(gca,'Ydir','reverse') 94 | colorbar 95 | colormap jet 96 | shading interp 97 | xlabel('Reservoir Length (ft)','FontSize',14) 98 | ylabel('Reservoir Width (ft)','FontSize',14) 99 | zlabel('Res. Pressure (psi)','FontSize',14) 100 | title ('t = 10 days','FontSize',20) 101 | view (-35,15) 102 | subplot(2,2,3),surf(Xx,Yy,P_plot20) 103 | set(gca,'Ydir','reverse') 104 | colorbar 105 | colormap jet 106 | shading interp 107 | xlabel('Reservoir Length (ft)','FontSize',14) 108 | ylabel('Reservoir Width (ft)','FontSize',14) 109 | zlabel('Res. Pressure (psi)','FontSize',14) 110 | title ('t = 20 days','FontSize',20) 111 | view (-35,15) 112 | subplot(2,2,4),surf(Xx,Yy,P_days_plot100) 113 | set(gca,'Ydir','reverse') 114 | colorbar 115 | colormap jet 116 | shading interp 117 | xlabel('Reservoir Length (ft)','FontSize',14) 118 | ylabel('Reservoir Width (ft)','FontSize',14) 119 | zlabel('Res. Pressure (psi)','FontSize',14) 120 | title ('t = 100 days','FontSize',20) 121 | view (-35,15) 122 | 123 | 124 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 125 | %%%%%%%%%%%%%%%%%%%%CONTOUR MAP SECTION%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 126 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 127 | 128 | figure %Figure 3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 129 | subplot(2,2,1),contourf(Xx,Yy,P_days_plot2) 130 | set(gca,'Ydir','reverse') 131 | colorbar 132 | colormap jet 133 | shading interp 134 | xlabel('Reservoir Length (ft)','FontSize',14) 135 | ylabel('Reservoir Width (ft)','FontSize',14) 136 | zlabel('Res. Pressure (psi)','FontSize',14) 137 | title ('t = 2 days','FontSize',20) 138 | 139 | subplot(2,2,2),contourf(Xx,Yy,P_days_plot10) 140 | set(gca,'Ydir','reverse') 141 | colorbar 142 | colormap jet 143 | shading interp 144 | xlabel('Reservoir Length (ft)','FontSize',14) 145 | ylabel('Reservoir Width (ft)','FontSize',14) 146 | zlabel('Res. Pressure (psi)','FontSize',14) 147 | title ('t = 10 days','FontSize',20) 148 | 149 | subplot(2,2,3),contourf(Xx,Yy,P_plot20) 150 | set(gca,'Ydir','reverse') 151 | colorbar 152 | colormap jet 153 | shading interp 154 | xlabel('Reservoir Length (ft)','FontSize',14) 155 | ylabel('Reservoir Width (ft)','FontSize',14) 156 | zlabel('Res. Pressure (psi)','FontSize',14) 157 | title ('t = 20 days','FontSize',20) 158 | 159 | subplot(2,2,4),contourf(Xx,Yy,P_days_plot100) 160 | set(gca,'Ydir','reverse') 161 | colorbar 162 | colormap jet 163 | shading interp 164 | xlabel('Reservoir Length (ft)','FontSize',14) 165 | ylabel('Reservoir Width (ft)','FontSize',14) 166 | zlabel('Res. Pressure (psi)','FontSize',14) 167 | title ('t = 100 days','FontSize',20) 168 | 169 | 170 | J_well1 = full(J(745,745)); 171 | J_well2 = full(J(1014,1014)); 172 | J_well3 = full(J(1000,1000)); 173 | J_well4 = full(J(666,666)); 174 | J_well5 = full(J(1042,1042)); 175 | 176 | p1 = P_array(1:100,745); 177 | p2 = P_array(1:100,1014); 178 | p3 = P_array(1:100,1000); 179 | p4 = P_array(1:100,666); 180 | p5 = P_array(1:100,1042); 181 | t = 1:100; 182 | q1 = J_well1*(p1-P_prod_well(1)) 183 | q2 = J_well2*(p2-P_prod_well(2)) 184 | q3 = J_well3*(p3-P_prod_well(3)) 185 | q4 = J_well4*(p4-P_prod_well(4)) 186 | q5 = J_well5*(p5-P_prod_well(5)) 187 | 188 | figure %Figure 4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 189 | subplot(2,2,1),plot(t,q1) 190 | xlabel('Time (days)','FontSize',14) 191 | ylabel('Well Rate (STB/day)','FontSize',14) 192 | title('Producing Well #1','FontSize',14) 193 | subplot(2,2,2),plot(t,q2) 194 | xlabel('Time (days)','FontSize',14) 195 | ylabel('Well Rate (STB/day)','FontSize',14) 196 | title('Producing Well #2','FontSize',14) 197 | subplot(2,2,3),plot(t,q3) 198 | xlabel('Time (days)','FontSize',14) 199 | ylabel('Well Rate (STB/day)','FontSize',14) 200 | title('Producing Well #3','FontSize',14) 201 | subplot(2,2,4),plot(t,q4) 202 | xlabel('Time (days)','FontSize',14) 203 | ylabel('Well Rate (STB/day)','FontSize',14) 204 | title('Producing Well #4','FontSize',14) 205 | figure 206 | plot(t,q5) 207 | xlabel('Time (days)','FontSize',14) 208 | ylabel('Well Rate (STB/day)','FontSize',14) 209 | title('Producing Well #5','FontSize',14) 210 | 211 | figure %Figure 5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 212 | total_q = q1+q2+q3+q4+q5 213 | J0 = 6.33e-3*2*pi*para.h*k(830)/(para.mu*para.Bw*log(4*(0.28*(para.dx^2+para.dy^2)^0.5/2))) 214 | P1_XXX = P_array(1:100,830) 215 | P_wfXXX = P1_XXX+q_well/J0 216 | plot(t,P_wfXXX) 217 | xlabel('Time (days)','FontSize',14) 218 | ylabel('BottomHole Pressure (psi)','FontSize',14) 219 | title('Injector Well #1','FontSize',20) 220 | 221 | figure %Cumulative Production 222 | Np_before = cumsum(total_q) 223 | plot(t,Np_before) 224 | xlabel('Time (days)','FontSize',12) 225 | ylabel('Cumulative Oil produced (STB)','FontSize',12) 226 | title('Cumulative Oil Production vs. Time','FontSize',12) 227 | 228 | %For project 1a plotting. 229 | % P_plot50 = reshape(P_days(50,:),para.NX,para.NY); 230 | % surf(I,J,P_plot50) %This is the 3-D plot of well pressure wrt res. dimensions 231 | % colorbar 232 | % xlabel('Reservoir Length (ft)','FontSize',14) 233 | % ylabel('Reservoir Width (ft)','FontSize',14) 234 | % zlabel('Reservoir Pressure(psi)','FontSize',14) 235 | % title('3-D Pressure Visualization','FontSize',20) 236 | % 237 | % figure %This prints our the contour map of pressures over the well 238 | % contourf(I,J,P_plot50) 239 | % colorbar 240 | % xlabel('Reservoir Length(ft)','FontSize',14) 241 | % ylabel('Reservoir Width(ft)','FontSize',14) 242 | % title('Reservoir Contour','FontSize',20) 243 | % 244 | % figure %This plots the final analytical and numerical reservoir pressure wrt length 245 | % P_1 = P_days(1,:); P_10 = P_days(10,:); P_50 = P_days(50,:); 246 | % P1=P_1(5001:5100); P10=P_10(5001:5100); P50=P_50(5001:5100); 247 | % plot(x,P1,'r+',x,P_analytical(x-10000,1),'r-',x,P10,'b+',x,P_analytical(x-10000,10),'b-',x,P50,'k+',x,P_analytical(x-10000,50),'k-'); 248 | % xlabel('Reservoir Length(ft)','FontSize',14) 249 | % ylabel('Reservoir Pressure(psi)','FontSize',14) 250 | % title('Reservoir Pressure vs Reservoir Length (Numerical vs. Analytical)','FontSize',20) 251 | % legend('t = 1 day','Analytical 1 day','t = 10 days','Analytical 10 days','t = 50days','Analytical 50 days') 252 | % 253 | -------------------------------------------------------------------------------- /Project_1_Main.asv: -------------------------------------------------------------------------------- 1 | close all 2 | clear all 3 | clc 4 | %Keep in mind there are two parts: 5 | %1. When inserting a well, add the x,y location on line 13,14 with the 6 | %BHP ratio inserted on line 14,15. Then change the rates on line 219. 7 | global k phi 8 | [para] = reservoir; %class to help clean up program 9 | x = linspace(para.dx,para.L-para.dx/2,para.NX); y = linspace(para.dy,para.W-para.dy/2,para.NY); %for graphing 10 | P = 3700*ones(para.N,1); BC = sparse(para.N,1); P_B = zeros(para.N,1); 11 | well_location = [2500,4050]; q_well = [1000]; %multiple constant 'rate-wells' locations. 12 | inj_well_locations = ceil(well_location(1)/para.dx)+floor(well_location(2)/para.dy)*para.NX; %which is 5050 13 | 14 | x_loc_constBHP_well = [5536,5474,3600,2352,2000]; %2000 for 6th well 15 | y_loc_constBHP_well = [3500,4708,4937,3322,5000]; %5000 for 6th well 16 | P_constBHP_well = 2000*[1,1,1,1,1.025]; %1.025 for 6th well 17 | BHP_well_locations = ceil(x_loc_constBHP_well/para.dx)+floor(y_loc_constBHP_well/para.dy)*para.NX; 18 | BC(BHP_well_locations) = -1; 19 | P_B(BHP_well_locations) = P_constBHP_well; 20 | 21 | [T, B, Q, J] = TBQ_box_f(BC,P_B,inj_well_locations,q_well); %a box that spits out matrices T, B, Q 22 | 23 | dt = 1; t = 0; t_end = 201; n = 1; inv = sparse(T+J+B/dt); %change 24 | P_array = zeros(t_end/dt,para.N); elim_k = find(k<0.001); %change 25 | while t < t_end 26 | P_2 = P; P = inv\(B*P_2/dt+Q); 27 | P(elim_k,:) = NaN; 28 | P_array(n,:) = P; 29 | t = t + dt; n = n + 1; 30 | end 31 | 32 | [Xx,Yy] = meshgrid(x,y); %Makes the meshgrid 33 | 34 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 35 | P_days_plot2 = reshape(P_array(2,:),para.NX,para.NY); 36 | P_days_plot2 = P_days_plot2'; 37 | P_days_plot10 = reshape(P_array(10,:),para.NX,para.NY); 38 | P_days_plot10 = P_days_plot10'; 39 | P_plot20 = reshape(P_array(20,:),para.NX,para.NY); 40 | P_plot20 = P_plot20'; 41 | P_days_plot100 = reshape(P_array(100,:),para.NX,para.NY); 42 | P_days_plot100 = P_days_plot100'; 43 | %Figure 1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 44 | subplot(2,2,1),surf(Xx,Yy,P_days_plot2) 45 | set(gca,'Ydir','reverse') %I did this because others told me my res. looked backward 46 | colorbar 47 | colormap jet 48 | shading interp 49 | xlabel('Reservoir Length (ft)','FontSize',14) 50 | ylabel('Reservoir Width (ft)','FontSize',14) 51 | zlabel('Res. Pressure (psi)','FontSize',14) 52 | title ('t = 2 days','FontSize',20) 53 | view (-35,75) 54 | subplot(2,2,2),surf(Xx,Yy,P_days_plot10) 55 | set(gca,'Ydir','reverse') 56 | colorbar 57 | colormap jet 58 | shading interp 59 | xlabel('Reservoir Length (ft)','FontSize',14) 60 | ylabel('Reservoir Width (ft)','FontSize',14) 61 | zlabel('Res. Pressure (psi)','FontSize',14) 62 | title ('t = 10 days','FontSize',20) 63 | view (-35,75) 64 | subplot(2,2,3),surf(Xx,Yy,P_plot20) 65 | set(gca,'Ydir','reverse') 66 | colorbar 67 | colormap jet 68 | shading interp 69 | xlabel('Reservoir Length (ft)','FontSize',14) 70 | ylabel('Reservoir Width (ft)','FontSize',14) 71 | zlabel('Res. Pressure (psi)','FontSize',14) 72 | title ('t = 20 days','FontSize',20) 73 | view (-35,75) 74 | subplot(2,2,4),surf(Xx,Yy,P_days_plot100) 75 | set(gca,'Ydir','reverse') 76 | colorbar 77 | colormap jet 78 | shading interp 79 | xlabel('Reservoir Length (ft)','FontSize',14) 80 | ylabel('Reservoir Width (ft)','FontSize',14) 81 | zlabel('Res. Pressure (psi)','FontSize',14) 82 | title ('t = 100 days','FontSize',20) 83 | view (-35,75) 84 | 85 | figure %Figure 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 86 | subplot(2,2,1),surf(Xx,Yy,P_days_plot2) 87 | set(gca,'Ydir','reverse') 88 | colorbar 89 | colormap jet 90 | shading interp 91 | xlabel('Reservoir Length (ft)','FontSize',14) 92 | ylabel('Reservoir Width (ft)','FontSize',14) 93 | zlabel('Res. Pressure (psi)','FontSize',14) 94 | title ('t = 2 days','FontSize',20) 95 | view (-35,15) 96 | subplot(2,2,2),surf(Xx,Yy,P_days_plot10) 97 | set(gca,'Ydir','reverse') 98 | colorbar 99 | colormap jet 100 | shading interp 101 | xlabel('Reservoir Length (ft)','FontSize',14) 102 | ylabel('Reservoir Width (ft)','FontSize',14) 103 | zlabel('Res. Pressure (psi)','FontSize',14) 104 | title ('t = 10 days','FontSize',20) 105 | view (-35,15) 106 | subplot(2,2,3),surf(Xx,Yy,P_plot20) 107 | set(gca,'Ydir','reverse') 108 | colorbar 109 | colormap jet 110 | shading interp 111 | xlabel('Reservoir Length (ft)','FontSize',14) 112 | ylabel('Reservoir Width (ft)','FontSize',14) 113 | zlabel('Res. Pressure (psi)','FontSize',14) 114 | title ('t = 20 days','FontSize',20) 115 | view (-35,15) 116 | subplot(2,2,4),surf(Xx,Yy,P_days_plot100) 117 | set(gca,'Ydir','reverse') 118 | colorbar 119 | colormap jet 120 | shading interp 121 | xlabel('Reservoir Length (ft)','FontSize',14) 122 | ylabel('Reservoir Width (ft)','FontSize',14) 123 | zlabel('Res. Pressure (psi)','FontSize',14) 124 | title ('t = 100 days','FontSize',20) 125 | view (-35,15) 126 | 127 | 128 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 129 | %%%%%%%%%%%%%%%%%%%%CONTOUR MAP SECTION%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 130 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 131 | 132 | figure %Figure 3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 133 | subplot(2,2,1),contourf(Xx,Yy,P_days_plot2) 134 | set(gca,'Ydir','reverse') 135 | colorbar 136 | colormap jet 137 | shading interp 138 | xlabel('Reservoir Length (ft)','FontSize',14) 139 | ylabel('Reservoir Width (ft)','FontSize',14) 140 | zlabel('Res. Pressure (psi)','FontSize',14) 141 | title ('t = 2 days','FontSize',20) 142 | 143 | subplot(2,2,2),contourf(Xx,Yy,P_days_plot10) 144 | set(gca,'Ydir','reverse') 145 | colorbar 146 | colormap jet 147 | shading interp 148 | xlabel('Reservoir Length (ft)','FontSize',14) 149 | ylabel('Reservoir Width (ft)','FontSize',14) 150 | zlabel('Res. Pressure (psi)','FontSize',14) 151 | title ('t = 10 days','FontSize',20) 152 | 153 | subplot(2,2,3),contourf(Xx,Yy,P_plot20) 154 | set(gca,'Ydir','reverse') 155 | colorbar 156 | colormap jet 157 | shading interp 158 | xlabel('Reservoir Length (ft)','FontSize',14) 159 | ylabel('Reservoir Width (ft)','FontSize',14) 160 | zlabel('Res. Pressure (psi)','FontSize',14) 161 | title ('t = 20 days','FontSize',20) 162 | 163 | subplot(2,2,4),contourf(Xx,Yy,P_days_plot100) 164 | set(gca,'Ydir','reverse') 165 | colorbar 166 | colormap jet 167 | shading interp 168 | xlabel('Reservoir Length (ft)','FontSize',14) 169 | ylabel('Reservoir Width (ft)','FontSize',14) 170 | zlabel('Res. Pressure (psi)','FontSize',14) 171 | title ('t = 100 days','FontSize',20) 172 | 173 | 174 | J_well1 = full(J(745,745)); 175 | J_well2 = full(J(1014,1014)); 176 | J3 = full(J(1000,1000)); 177 | J4 = full(J(666,666)); 178 | J5 = full(J(1042,1042)); 179 | 180 | P1_w1 = P_array(1:100,745); 181 | P1_w2 = P_array(1:100,1014); 182 | P1_w3 = P_array(1:100,1000); 183 | P1_w4 = P_array(1:100,666); 184 | P1_w5 = P_array(1:100,1042); 185 | t = 1:100; 186 | rate_w1 = J_well1*(P1_w1-P_constBHP_well(1)) 187 | rate_w2 = J_well2*(P1_w2-P_constBHP_well(2)) 188 | rate_w3 = J3*(P1_w3-P_constBHP_well(3)) 189 | rate_w4 = J4*(P1_w4-P_constBHP_well(4)) 190 | rate_w5 = J5*(P1_w5-P_constBHP_well(5)) 191 | 192 | figure %Figure 4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 193 | subplot(2,2,1),plot(t,rate_w1) 194 | xlabel('Time (days)','FontSize',14) 195 | ylabel('Well Rate (ft^3/day)','FontSize',14) 196 | title('Producing Well #1','FontSize',14) 197 | subplot(2,2,2),plot(t,rate_w2) 198 | xlabel('Time (days)','FontSize',14) 199 | ylabel('Well Rate (ft^3/day)','FontSize',14) 200 | title('Producing Well #2','FontSize',14) 201 | subplot(2,2,3),plot(t,rate_w3) 202 | xlabel('Time (days)','FontSize',14) 203 | ylabel('Well Rate (ft^3/day)','FontSize',14) 204 | title('Producing Well #3','FontSize',14) 205 | subplot(2,2,4),plot(t,rate_w4) 206 | xlabel('Time (days)','FontSize',14) 207 | ylabel('Well Rate (ft^3/day)','FontSize',14) 208 | title('Producing Well #4','FontSize',14) 209 | figure 210 | plot(t,rate_w5) 211 | xlabel('Time (days)','FontSize',14) 212 | ylabel('Well Rate (ft^3/day)','FontSize',14) 213 | title('Producing Well #5','FontSize',14) 214 | 215 | figure %Figure 5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 216 | total_rate = rate_w1+rate_w2+rate_w3+rate_w4+rate_w5 217 | J0 = 6.33e-3*2*pi*para.h*k(251)/(para.mu*para.Bw*log(4*(0.28*(para.dx^2+para.dy^2)^0.5/2))) 218 | P1_w0 = P_array(1:100,251) 219 | P_wf0 = P1_w0+q_well/J0 220 | plot(t,P_wf0) 221 | xlabel('Time (days)','FontSize',14) 222 | ylabel('Res. Pressure (psi)','FontSize',14) 223 | title('Injector Well #1','FontSize',20) 224 | 225 | figure %Cumulative Production 226 | Np_before = cumsum(total_rate) 227 | plot(t,Np_before) 228 | xlabel('Time (days)','FontSize',12) 229 | ylabel('Cumulative Oil produced (STB)','FontSize',12) 230 | title('Cumulative Oil Production vs. Time','FontSize',12) 231 | 232 | %For project 1a plotting. 233 | % P_plot50 = reshape(P_days(50,:),para.NX,para.NY); 234 | % surf(I,J,P_plot50) %This is the 3-D plot of well pressure wrt res. dimensions 235 | % colorbar 236 | % xlabel('Reservoir Length (ft)','FontSize',14) 237 | % ylabel('Reservoir Width (ft)','FontSize',14) 238 | % zlabel('Reservoir Pressure(psi)','FontSize',14) 239 | % title('3-D Pressure Visualization','FontSize',20) 240 | % 241 | % figure %This prints our the contour map of pressures over the well 242 | % contourf(I,J,P_plot50) 243 | % colorbar 244 | % xlabel('Reservoir Length(ft)','FontSize',14) 245 | % ylabel('Reservoir Width(ft)','FontSize',14) 246 | % title('Reservoir Contour','FontSize',20) 247 | % 248 | % figure %This plots the final analytical and numerical reservoir pressure wrt length 249 | % P_1 = P_days(1,:); P_10 = P_days(10,:); P_50 = P_days(50,:); 250 | % P1=P_1(5001:5100); P10=P_10(5001:5100); P50=P_50(5001:5100); 251 | % plot(x,P1,'r+',x,P_analytical(x-10000,1),'r-',x,P10,'b+',x,P_analytical(x-10000,10),'b-',x,P50,'k+',x,P_analytical(x-10000,50),'k-'); 252 | % xlabel('Reservoir Length(ft)','FontSize',14) 253 | % ylabel('Reservoir Pressure(psi)','FontSize',14) 254 | % title('Reservoir Pressure vs Reservoir Length (Numerical vs. Analytical)','FontSize',20) 255 | % legend('t = 1 day','Analytical 1 day','t = 10 days','Analytical 10 days','t = 50days','Analytical 50 days') 256 | % 257 | -------------------------------------------------------------------------------- /Nechelik.dat: -------------------------------------------------------------------------------- 1 | NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.100020514000000 0.0807330630000000 0.0807330630000000 0.0807330630000000 0.0932025040000000 0.0982886140000000 0.112700776000000 0.122389019000000 NaN NaN NaN NaN NaN NaN NaN NaN 2 | NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.100020514000000 0.0807330630000000 0.0807330630000000 0.0807330630000000 0.0932025040000000 0.0982886140000000 0.112700776000000 0.122389019000000 NaN NaN NaN NaN NaN NaN NaN NaN 3 | NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0794330480000000 0.0794330480000000 0.0794330480000000 0.0931996180000000 0.109166270000000 0.0876914600000000 0.0876914600000000 0.0876914600000000 0.100020514000000 0.0807330630000000 0.0807330630000000 0.0807330630000000 0.0932025040000000 0.0982886140000000 0.112700776000000 0.122389019000000 NaN NaN NaN NaN NaN NaN NaN NaN 4 | NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0794330480000000 0.0794330480000000 0.0794330480000000 0.0931996180000000 0.109166270000000 0.0876914600000000 0.0876914600000000 0.0876914600000000 0.100020514000000 0.107550411000000 0.0807330630000000 0.0807330630000000 0.0932025040000000 0.0982886140000000 0.112700776000000 0.122389019000000 NaN NaN NaN NaN NaN NaN NaN NaN 5 | NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0794330480000000 0.0794330480000000 0.0794330480000000 0.0931996180000000 0.109166270000000 0.111640436000000 0.0876914600000000 0.0876914600000000 0.100020514000000 0.107550411000000 0.118505988000000 0.0807330630000000 0.0932025040000000 0.0982886140000000 0.112700776000000 0.122389019000000 NaN NaN NaN NaN NaN NaN NaN NaN 6 | NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.111373185000000 0.0794330480000000 0.0794330480000000 0.0931996180000000 0.109166270000000 0.111640436000000 0.118472892000000 0.0876914600000000 0.100020514000000 0.107550411000000 0.118505988000000 0.131641750000000 0.132160735000000 0.135981631000000 0.135041015000000 0.133828645000000 NaN NaN NaN NaN NaN NaN NaN NaN 7 | NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0764262940000000 0.0764262940000000 0.0791847430000000 0.0920274640000000 0.111373185000000 0.117719723000000 0.0794330480000000 0.0931996180000000 0.109166270000000 0.111640436000000 0.118472892000000 0.133666925000000 0.135870026000000 0.133148594000000 0.139318977000000 0.142741880000000 0.140853671000000 0.137657798000000 0.135350155000000 0.133546440000000 0.131765837000000 0.132575701000000 0.121460118000000 0.104428022000000 NaN NaN NaN NaN 8 | NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.108577956000000 0.0764262940000000 0.0791847430000000 0.0920274640000000 0.111373185000000 0.117719723000000 0.127968532000000 0.134037962000000 0.140915501000000 0.139772862000000 0.134588985000000 0.141081507000000 0.141448669000000 0.140242212000000 0.140026788000000 0.138386242000000 0.138176114000000 0.134031961000000 0.132246427000000 0.130020321000000 0.128763024000000 0.131505522000000 0.128237209000000 0.122636089000000 NaN NaN NaN NaN 9 | NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0845601150000000 0.0954150390000000 0.105898546000000 0.0771884030000000 0.0771884030000000 0.0805049210000000 0.0952589780000000 0.100909424000000 0.118524777000000 0.0762450000000000 0.0824563680000000 0.0936899040000000 0.108577956000000 0.121663048000000 0.127926488000000 0.133220500000000 0.133166560000000 0.143765526000000 0.142829671000000 0.140985260000000 0.141637556000000 0.140141371000000 0.139976166000000 0.139217232000000 0.138512785000000 0.137016591000000 0.136319556000000 0.134368507000000 0.132119909000000 0.130120179000000 0.128838941000000 0.127935696000000 0.125917003000000 0.123484596000000 0.122804624000000 0.117866951000000 0.108511023000000 0.104787389000000 0.0923808260000000 0.0923808260000000 10 | NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0845601150000000 0.0954150390000000 0.105898546000000 0.112251864000000 0.0771884030000000 0.0805049210000000 0.0952589780000000 0.100909424000000 0.118524777000000 0.123001199000000 0.125250031000000 0.126906894000000 0.135610849000000 0.139835735000000 0.142688773000000 0.141625117000000 0.139637607000000 0.141199061000000 0.139845738000000 0.139074190000000 0.138085573000000 0.137400874000000 0.137299699000000 0.135929506000000 0.133905322000000 0.131982521000000 0.130647114000000 0.129633044000000 0.128829144000000 0.127388668000000 0.126232828000000 0.124466329000000 0.121521158000000 0.117062643000000 0.111136413000000 0.103785554000000 0.0968701320000000 0.0938424940000000 0.0897449330000000 0.0897449330000000 11 | 0.103587636000000 0.103587636000000 0.0802055810000000 0.0802055810000000 0.0802055810000000 0.0897427590000000 0.100672744000000 0.0766710900000000 0.0766710900000000 0.0840517500000000 0.101023148000000 0.111347503000000 0.114449205000000 0.0784188430000000 0.0845601150000000 0.0954150390000000 0.105898546000000 0.112251864000000 0.123978054000000 0.127679732000000 0.136190681000000 0.142484568000000 0.141170533000000 0.136128627000000 0.133487418000000 0.135172187000000 0.137436641000000 0.140498439000000 0.140547490000000 0.140089046000000 0.139442479000000 0.138271460000000 0.136836878000000 0.135806750000000 0.134208758000000 0.132967581000000 0.131935947000000 0.130375493000000 0.129327658000000 0.128307532000000 0.127594490000000 0.127049047000000 0.125476279000000 0.124035355000000 0.121923327000000 0.118573784000000 0.113264109000000 0.106930207000000 0.100612907000000 0.0939433660000000 0.0877297860000000 0.0817030170000000 NaN NaN 12 | 0.103587636000000 0.103587636000000 0.109432961000000 0.0802055810000000 0.0802055810000000 0.0897427590000000 0.100672744000000 0.118099555000000 0.0766710900000000 0.0840517500000000 0.101023148000000 0.111347503000000 0.114449205000000 0.125971201000000 0.134077113000000 0.135094732000000 0.141890902000000 0.145436577000000 0.151257041000000 0.158901287000000 0.156174474000000 0.149854097000000 0.143675142000000 0.138459512000000 0.138437023000000 0.138965470000000 0.139348664000000 0.139561396000000 0.138498733000000 0.137016662000000 0.136180858000000 0.134456767000000 0.132941692000000 0.131475290000000 0.130064159000000 0.128927153000000 0.128012641000000 0.127246168000000 0.125987120000000 0.125312191000000 0.124365464000000 0.122866900000000 0.120946637000000 0.117802432000000 0.113944946000000 0.108339532000000 0.102376518000000 0.0965164300000000 0.0904862290000000 0.0844063120000000 0.0844063120000000 0.0817030170000000 NaN NaN 13 | 0.103587636000000 0.103587636000000 0.109432961000000 0.123322919000000 0.0802055810000000 0.0897427590000000 0.100672744000000 0.118099555000000 0.118707606000000 0.125416749000000 0.137672966000000 0.144024254000000 0.155485360000000 0.160253254000000 0.155107611000000 0.155824485000000 0.160827215000000 0.160820932000000 0.159046121000000 0.154201345000000 0.149463040000000 0.144538412000000 0.140647542000000 0.139134061000000 0.137765922000000 0.136882485000000 0.136412180000000 0.135961621000000 0.134160343000000 0.133003286000000 0.131474832000000 0.130116140000000 0.128945740000000 0.127957243000000 0.126933913000000 0.125770063000000 0.124797776000000 0.123437708000000 0.122412488000000 0.121054649000000 0.119033157000000 0.115796714000000 0.111788684000000 0.107908389000000 0.102459907000000 0.0972200290000000 0.0916905110000000 0.0861242480000000 0.0808154410000000 0.0808154410000000 0.0844063120000000 0.0817030170000000 NaN NaN 14 | 0.103587636000000 0.103587636000000 0.109432961000000 0.123322919000000 0.124990833000000 0.129504567000000 0.134930004000000 0.142694619000000 0.150106256000000 0.157312069000000 0.158079887000000 0.156151356000000 0.164943228000000 0.163666942000000 0.160699207000000 0.158729291000000 0.157393229000000 0.155073448000000 0.149415432000000 0.141474346000000 0.139206376000000 0.138614870000000 0.138353342000000 0.137744623000000 0.136086589000000 0.134522633000000 0.133022258000000 0.131586951000000 0.130239956000000 0.128946974000000 0.127707007000000 0.126252019000000 0.124624315000000 0.123646432000000 0.122832645000000 0.121759340000000 0.120116184000000 0.117821284000000 0.114721190000000 0.112164408000000 0.109433527000000 0.105513724000000 0.101270059000000 0.0962534880000000 0.0906970620000000 0.0854318700000000 0.0809226780000000 0.0809226780000000 0.0808154410000000 0.0808154410000000 0.0808154410000000 0.0844063120000000 NaN NaN 15 | 0.157534184000000 0.140157033000000 0.145446819000000 0.149831812000000 0.153037962000000 0.155004139000000 0.156053809000000 0.154901483000000 0.158771804000000 0.165422998000000 0.163719954000000 0.160316150000000 0.159475256000000 0.157471898000000 0.154963868000000 0.151651759000000 0.148369869000000 0.144166257000000 0.139631620000000 0.138205485000000 0.136987060000000 0.135976983000000 0.135137850000000 0.134914090000000 0.134349518000000 0.132598398000000 0.130931788000000 0.129212432000000 0.127652662000000 0.125939840000000 0.124136246000000 0.122104597000000 0.119860402000000 0.118243294000000 0.116561249000000 0.114714809000000 0.111826422000000 0.107239123000000 0.103916690000000 0.100895435000000 0.0980066050000000 0.0947733470000000 0.0901155490000000 0.0846716780000000 0.0809354370000000 0.0809354370000000 0.0809226780000000 0.0809226780000000 0.0808154410000000 0.0808154410000000 0.0808154410000000 0.0808154410000000 NaN NaN 16 | 0.157534184000000 0.160438231000000 0.160702486000000 0.161428945000000 0.162659649000000 0.163922410000000 0.163796959000000 0.161949952000000 0.160468642000000 0.159844252000000 0.158712477000000 0.157119483000000 0.154442127000000 0.150268269000000 0.145807053000000 0.143089943000000 0.140238593000000 0.138665439000000 0.137475777000000 0.136513560000000 0.135481999000000 0.134876821000000 0.134097945000000 0.133064407000000 0.132047208000000 0.130864560000000 0.129198538000000 0.127601055000000 0.125869048000000 0.123872865000000 0.121359872000000 0.118158694000000 0.114362322000000 0.110743609000000 0.107946324000000 0.105324394000000 0.101211414000000 0.0978112800000000 0.0937110170000000 0.0900543590000000 0.0872802690000000 0.0834231670000000 0.0800402120000000 0.0792370080000000 0.0792370080000000 0.0809354370000000 0.0809226780000000 0.0809226780000000 0.0809226780000000 0.0808154410000000 0.0808154410000000 0.0808154410000000 NaN NaN 17 | 0.162872531000000 0.162872531000000 0.163107945000000 0.163174601000000 0.162181993000000 0.161673209000000 0.160148958000000 0.158828678000000 0.157694400000000 0.155740228000000 0.153268545000000 0.151350210000000 0.148747432000000 0.144790722000000 0.141076543000000 0.138875872000000 0.137465274000000 0.136591235000000 0.135915716000000 0.135301415000000 0.134474485000000 0.133843268000000 0.133507682000000 0.132624011000000 0.131275614000000 0.129583391000000 0.127964337000000 0.126204288000000 0.124333878000000 0.121965601000000 0.118878822000000 0.114484828000000 0.109945024000000 0.104599007000000 0.100275426000000 0.0967062090000000 0.0933320940000000 0.0896464750000000 0.0844693840000000 0.0810626630000000 0.0788948560000000 0.0786430440000000 0.0786430440000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0809354370000000 0.0809226780000000 0.0809226780000000 0.0808154410000000 0.0808154410000000 0.0808154410000000 NaN NaN 18 | 0.160847739000000 0.160847739000000 0.161336054000000 0.160578262000000 0.158970457000000 0.157462493000000 0.155618292000000 0.153769862000000 0.152794506000000 0.150779634000000 0.148082625000000 0.145173292000000 0.142998561000000 0.140173109000000 0.138406168000000 0.137177624000000 0.136325830000000 0.134791407000000 0.134578080000000 0.134302221000000 0.133708074000000 0.133030198000000 0.132631422000000 0.132040833000000 0.130749743000000 0.128981995000000 0.127247474000000 0.125440899000000 0.122997502000000 0.119994860000000 0.115966337000000 0.111020551000000 0.105860691000000 0.0998808180000000 0.0946539840000000 0.0902978500000000 0.0865513650000000 0.0820324310000000 0.0784207110000000 0.0790542220000000 0.0816032950000000 0.0816032950000000 0.0786430440000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0809226780000000 0.0809226780000000 0.0809226780000000 0.0808154410000000 0.0808154410000000 NaN NaN 19 | 0.156595383000000 0.156595383000000 0.157253163000000 0.155646744000000 0.153922396000000 0.152239072000000 0.149864487000000 0.147953952000000 0.146728441000000 0.144591294000000 0.142442921000000 0.140581022000000 0.139125550000000 0.138086029000000 0.137266367000000 0.136513164000000 0.135849289000000 0.134681147000000 0.133340265000000 0.133255635000000 0.132906505000000 0.132220946000000 0.131698117000000 0.130904963000000 0.129671008000000 0.128266090000000 0.126608550000000 0.124502376000000 0.121838483000000 0.117996969000000 0.112868673000000 0.107271386000000 0.101864903000000 0.0962798340000000 0.0906270400000000 0.0852101650000000 0.0806538140000000 0.0787281620000000 0.0800373740000000 0.0800373740000000 0.0816032950000000 0.0816032950000000 0.0816032950000000 0.0786430440000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0809226780000000 0.0809226780000000 0.0808154410000000 0.0808154410000000 NaN NaN 20 | 0.156595383000000 0.151443259000000 0.151443259000000 0.149579138000000 0.148504134000000 0.146414087000000 0.144230097000000 0.142561049000000 0.140960194000000 0.139679430000000 0.138647238000000 0.137666219000000 0.136696846000000 0.135907769000000 0.135895138000000 0.135878875000000 0.135366238000000 0.134751181000000 0.133311586000000 0.132236705000000 0.131820747000000 0.131143441000000 0.130377253000000 0.129368069000000 0.128233156000000 0.127112843000000 0.125166550000000 0.122790037000000 0.119785714000000 0.115450527000000 0.110266357000000 0.104815259000000 0.0979719460000000 0.0924204630000000 0.0869075780000000 0.0815426320000000 0.0802285960000000 0.0802285960000000 0.0800373740000000 0.0800373740000000 0.0816032950000000 0.0816032950000000 0.0816032950000000 0.0816032950000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0809226780000000 0.0809226780000000 0.0809226780000000 0.0808154410000000 NaN NaN 21 | 0.145139183000000 0.145139183000000 0.145139183000000 0.144157431000000 0.142742271000000 0.141105207000000 0.139693097000000 0.138530955000000 0.137550968000000 0.136796353000000 0.136338305000000 0.135946972000000 0.135517239000000 0.134976737000000 0.134334139000000 0.133845179000000 0.133971366000000 0.133459185000000 0.132424184000000 0.131393529000000 0.130439621000000 0.129514462000000 0.128544075000000 0.127414704000000 0.126019753000000 0.124452596000000 0.122507688000000 0.119436146000000 0.115605544000000 0.111622759000000 0.107674028000000 0.100945041000000 0.0938587680000000 0.0875953670000000 0.0832353360000000 0.0806570110000000 0.0806570110000000 0.0802285960000000 0.0800373740000000 0.0800373740000000 0.0800373740000000 0.0816032950000000 0.0816032950000000 0.0816032950000000 0.0816032950000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0809226780000000 0.0809226780000000 0.0808154410000000 NaN NaN 22 | 0.145139183000000 0.145139183000000 0.145139183000000 0.144157431000000 0.142742271000000 0.141105207000000 0.139693097000000 0.138530955000000 0.137550968000000 0.136796353000000 0.136338305000000 0.135946972000000 0.135517239000000 0.134976737000000 0.134334139000000 0.133845179000000 0.133971366000000 0.133459185000000 0.132424184000000 0.131393529000000 0.130439621000000 0.129514462000000 0.128544075000000 0.127414704000000 0.126019753000000 0.124452596000000 0.122507688000000 0.119436146000000 0.115605544000000 0.111622759000000 0.107674028000000 0.100945041000000 0.0938587680000000 0.0875953670000000 0.0832353360000000 0.0806570110000000 0.0806570110000000 0.0806570110000000 0.0802285960000000 0.0800373740000000 0.0800373740000000 0.0816032950000000 0.0816032950000000 0.0816032950000000 0.0816032950000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0792370080000000 0.0809226780000000 0.0809226780000000 NaN NaN 23 | -------------------------------------------------------------------------------- /Nechelik_perm.dat: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | 0 4 | 0 5 | 0 6 | 0 7 | 0 8 | 0 9 | 0 10 | 0 11 | 0 12 | 0 13 | 0 14 | 0 15 | 0 16 | 0 17 | 0 18 | 0 19 | 0 20 | 0 21 | 0 22 | 0 23 | 0 24 | 0 25 | 0 26 | 0 27 | 0 28 | 0 29 | 0 30 | 0 31 | 0 32 | 0 33 | 0 34 | 0 35 | 0 36 | 0 37 | 0 38 | 0 39 | 32.28552987 40 | 16.27334742 41 | 16.27334742 42 | 16.27334742 43 | 25.73167219 44 | 30.51971085 45 | 47.5167146 46 | 62.20555162 47 | 0 48 | 0 49 | 0 50 | 0 51 | 0 52 | 0 53 | 0 54 | 0 55 | 0 56 | 0 57 | 0 58 | 0 59 | 0 60 | 0 61 | 0 62 | 0 63 | 0 64 | 0 65 | 0 66 | 0 67 | 0 68 | 0 69 | 0 70 | 0 71 | 0 72 | 0 73 | 0 74 | 0 75 | 0 76 | 0 77 | 0 78 | 0 79 | 0 80 | 0 81 | 0 82 | 0 83 | 0 84 | 0 85 | 0 86 | 0 87 | 0 88 | 0 89 | 0 90 | 0 91 | 0 92 | 0 93 | 32.28552987 94 | 16.27334742 95 | 16.27334742 96 | 16.27334742 97 | 25.73167219 98 | 30.51971085 99 | 47.5167146 100 | 62.20555162 101 | 0 102 | 0 103 | 0 104 | 0 105 | 0 106 | 0 107 | 0 108 | 0 109 | 0 110 | 0 111 | 0 112 | 0 113 | 0 114 | 0 115 | 0 116 | 0 117 | 0 118 | 0 119 | 0 120 | 0 121 | 0 122 | 0 123 | 0 124 | 0 125 | 0 126 | 0 127 | 0 128 | 0 129 | 0 130 | 0 131 | 0 132 | 0 133 | 0 134 | 0 135 | 0 136 | 0 137 | 0 138 | 0 139 | 15.45606083 140 | 15.45606083 141 | 15.45606083 142 | 25.72911791 143 | 42.84281421 144 | 21.17358085 145 | 21.17358085 146 | 21.17358085 147 | 32.28552987 148 | 16.27334742 149 | 16.27334742 150 | 16.27334742 151 | 25.73167219 152 | 30.51971085 153 | 47.5167146 154 | 62.20555162 155 | 0 156 | 0 157 | 0 158 | 0 159 | 0 160 | 0 161 | 0 162 | 0 163 | 0 164 | 0 165 | 0 166 | 0 167 | 0 168 | 0 169 | 0 170 | 0 171 | 0 172 | 0 173 | 0 174 | 0 175 | 0 176 | 0 177 | 0 178 | 0 179 | 0 180 | 0 181 | 0 182 | 0 183 | 0 184 | 0 185 | 0 186 | 0 187 | 0 188 | 0 189 | 0 190 | 0 191 | 0 192 | 0 193 | 15.45606083 194 | 15.45606083 195 | 15.45606083 196 | 25.72911791 197 | 42.84281421 198 | 21.17358085 199 | 21.17358085 200 | 21.17358085 201 | 32.28552987 202 | 40.82016184 203 | 16.27334742 204 | 16.27334742 205 | 25.73167219 206 | 30.51971085 207 | 47.5167146 208 | 62.20555162 209 | 0 210 | 0 211 | 0 212 | 0 213 | 0 214 | 0 215 | 0 216 | 0 217 | 0 218 | 0 219 | 0 220 | 0 221 | 0 222 | 0 223 | 0 224 | 0 225 | 0 226 | 0 227 | 0 228 | 0 229 | 0 230 | 0 231 | 0 232 | 0 233 | 0 234 | 0 235 | 0 236 | 0 237 | 0 238 | 0 239 | 0 240 | 0 241 | 0 242 | 0 243 | 0 244 | 0 245 | 0 246 | 0 247 | 15.45606083 248 | 15.45606083 249 | 15.45606083 250 | 25.72911791 251 | 42.84281421 252 | 46.07792289 253 | 21.17358085 254 | 21.17358085 255 | 32.28552987 256 | 40.82016184 257 | 55.97421907 258 | 16.27334742 259 | 25.73167219 260 | 30.51971085 261 | 47.5167146 262 | 62.20555162 263 | 0 264 | 0 265 | 0 266 | 0 267 | 0 268 | 0 269 | 0 270 | 0 271 | 0 272 | 0 273 | 0 274 | 0 275 | 0 276 | 0 277 | 0 278 | 0 279 | 0 280 | 0 281 | 0 282 | 0 283 | 0 284 | 0 285 | 0 286 | 0 287 | 0 288 | 0 289 | 0 290 | 0 291 | 0 292 | 0 293 | 0 294 | 0 295 | 0 296 | 0 297 | 0 298 | 0 299 | 0 300 | 0 301 | 45.72029 302 | 15.45606083 303 | 15.45606083 304 | 25.72911791 305 | 42.84281421 306 | 46.07792289 307 | 55.92313569 308 | 21.17358085 309 | 32.28552987 310 | 40.82016184 311 | 55.97421907 312 | 79.06585296 313 | 80.10038978 314 | 88.02391269 315 | 86.02247539 316 | 83.49212038 317 | 0 318 | 0 319 | 0 320 | 0 321 | 0 322 | 0 323 | 0 324 | 0 325 | 0 326 | 0 327 | 0 328 | 0 329 | 0 330 | 0 331 | 0 332 | 0 333 | 0 334 | 0 335 | 0 336 | 0 337 | 0 338 | 0 339 | 0 340 | 0 341 | 0 342 | 0 343 | 0 344 | 0 345 | 0 346 | 0 347 | 0 348 | 0 349 | 0 350 | 0 351 | 13.67701022 352 | 13.67701022 353 | 15.30331129 354 | 24.70659136 355 | 45.72029 356 | 54.76971016 357 | 15.45606083 358 | 25.72911791 359 | 42.84281421 360 | 46.07792289 361 | 55.92313569 362 | 83.15875349 363 | 87.78467928 364 | 82.09681894 365 | 95.40085451 366 | 103.4277094 367 | 98.9409609 368 | 91.67460804 369 | 86.67655203 370 | 82.91101927 371 | 79.3123139 372 | 80.9346548 373 | 60.6714001 374 | 37.10701816 375 | 0 376 | 0 377 | 0 378 | 0 379 | 0 380 | 0 381 | 0 382 | 0 383 | 0 384 | 0 385 | 0 386 | 0 387 | 0 388 | 0 389 | 0 390 | 0 391 | 0 392 | 0 393 | 0 394 | 0 395 | 0 396 | 0 397 | 0 398 | 0 399 | 0 400 | 0 401 | 0 402 | 0 403 | 0 404 | 0 405 | 42.09825857 406 | 13.67701022 407 | 15.30331129 408 | 24.70659136 409 | 45.72029 410 | 54.76971016 411 | 72.01967231 412 | 83.92505356 413 | 99.08557471 414 | 96.43799759 415 | 85.07258049 416 | 99.47461123 417 | 100.3390416 418 | 97.51914964 419 | 97.02182054 420 | 93.29521861 421 | 92.82559941 422 | 83.91261917 423 | 80.27215186 424 | 75.89643368 425 | 73.50329266 426 | 78.79592111 427 | 72.5189315 428 | 62.61829426 429 | 0 430 | 0 431 | 0 432 | 0 433 | 0 434 | 0 435 | 0 436 | 0 437 | 0 438 | 0 439 | 0 440 | 0 441 | 0 442 | 0 443 | 0 444 | 0 445 | 0 446 | 0 447 | 18.85571164 448 | 27.74327046 449 | 38.82417889 450 | 14.11354034 451 | 14.11354034 452 | 16.12777114 453 | 27.597839 454 | 33.21958299 455 | 56.00323499 456 | 13.57457957 457 | 17.4030369 458 | 26.1655957 459 | 42.09825857 460 | 61.00418932 461 | 71.94177109 462 | 82.24354127 463 | 82.13346038 464 | 105.9216508 465 | 103.639889 466 | 99.24891932 467 | 100.7858918 468 | 97.28611688 469 | 96.90522469 470 | 95.16948923 471 | 93.5788709 472 | 90.26522575 473 | 88.75119392 474 | 84.6120585 475 | 80.01865228 476 | 76.08890516 477 | 73.64621289 478 | 71.95882733 479 | 68.28946043 480 | 64.05088472 481 | 62.90097556 482 | 54.99381533 483 | 42.01414229 484 | 37.52153153 485 | 25.01175014 486 | 25.01175014 487 | 0 488 | 0 489 | 0 490 | 0 491 | 0 492 | 0 493 | 0 494 | 0 495 | 0 496 | 0 497 | 0 498 | 0 499 | 0 500 | 0 501 | 18.85571164 502 | 27.74327046 503 | 38.82417889 504 | 46.90369263 505 | 14.11354034 506 | 16.12777114 507 | 27.597839 508 | 33.21958299 509 | 56.00323499 510 | 63.23185434 511 | 67.10757445 512 | 70.07133837 513 | 87.23094401 514 | 96.58231245 515 | 103.2995128 516 | 100.7564192 517 | 96.12807501 518 | 99.7507772 519 | 96.60528748 520 | 94.84491523 521 | 92.6237809 522 | 91.1079654 523 | 90.88553043 524 | 87.91212058 525 | 83.65052364 526 | 79.74403379 527 | 77.11043392 528 | 75.15333365 529 | 73.62775781 530 | 70.95068372 531 | 68.85434909 532 | 65.73789928 533 | 60.77136277 534 | 53.77755818 535 | 45.4051153 536 | 36.37413918 537 | 29.12561855 538 | 26.3025063 539 | 22.7986691 540 | 22.7986691 541 | 36.15047229 542 | 36.15047229 543 | 15.93815741 544 | 15.93815741 545 | 15.93815741 546 | 22.79690328 547 | 32.9690238 548 | 13.81617838 549 | 13.81617838 550 | 18.49712747 551 | 33.34045846 552 | 45.68602851 553 | 49.95940611 554 | 14.83884186 555 | 18.85571164 556 | 27.74327046 557 | 38.82417889 558 | 46.90369263 559 | 64.89486868 560 | 71.48581071 561 | 88.47331378 562 | 102.8076628 563 | 99.68370663 564 | 88.33973871 565 | 82.78985766 566 | 86.2995659 567 | 91.18669455 568 | 98.11311143 569 | 98.22711864 570 | 97.16535768 571 | 95.68224522 572 | 93.03847492 573 | 89.87307633 574 | 87.64925304 575 | 84.27952614 576 | 81.72830902 577 | 79.6510962 578 | 76.58262227 579 | 74.57111345 580 | 72.65002277 581 | 71.32878862 582 | 70.3299699 583 | 67.50681132 584 | 64.99339406 585 | 61.43295668 586 | 56.07896629 587 | 48.29411937 588 | 40.06233964 589 | 32.90589235 590 | 26.39329073 591 | 21.20313605 592 | 16.90261335 593 | 0 594 | 0 595 | 36.15047229 596 | 36.15047229 597 | 43.18342726 598 | 15.93815741 599 | 15.93815741 600 | 22.79690328 601 | 32.9690238 602 | 55.34922478 603 | 13.81617838 604 | 18.49712747 605 | 33.34045846 606 | 45.68602851 607 | 49.95940611 608 | 68.38615838 609 | 84.00621151 610 | 86.13587039 611 | 101.3875247 612 | 110.0875533 613 | 125.5452594 614 | 148.2156955 615 | 139.8075829 616 | 121.6815727 617 | 105.6996843 618 | 93.45937936 619 | 93.40897021 620 | 94.59876122 621 | 95.46843937 622 | 95.95376746 623 | 93.54734111 624 | 90.26538003 625 | 88.45215818 626 | 84.79619166 627 | 81.67570464 628 | 78.73610803 629 | 75.98088548 630 | 73.81253361 631 | 72.10146294 632 | 70.68975841 633 | 68.41458002 634 | 67.21709005 635 | 65.56310424 636 | 63.00566419 637 | 59.83520637 638 | 54.89552557 639 | 49.24585349 640 | 41.79917694 641 | 34.80314869 642 | 28.78519128 643 | 23.40640939 644 | 18.74671109 645 | 18.74671109 646 | 16.90261335 647 | 0 648 | 0 649 | 36.15047229 650 | 36.15047229 651 | 43.18342726 652 | 63.77610221 653 | 15.93815741 654 | 22.79690328 655 | 32.9690238 656 | 55.34922478 657 | 56.28614213 658 | 67.40159765 659 | 91.70814039 660 | 106.5589359 661 | 137.7399867 662 | 152.5210532 663 | 136.6162668 664 | 138.7546301 665 | 154.37669 666 | 154.3562885 667 | 148.6725439 668 | 133.9480476 669 | 120.6204491 670 | 107.8337478 671 | 98.45996636 672 | 94.98066778 673 | 91.91384491 674 | 89.9724762 675 | 88.95130324 676 | 87.98098583 677 | 84.1789339 678 | 81.80090287 679 | 78.73520231 680 | 76.08111244 681 | 73.84761447 682 | 71.99874956 683 | 70.12044254 684 | 68.02779234 685 | 66.31466717 686 | 63.97110695 687 | 62.24467354 688 | 60.01040473 689 | 56.79245103 690 | 51.90274638 691 | 46.27717204 692 | 41.2622215 693 | 34.89474605 694 | 29.46519315 695 | 24.418072 696 | 19.98977514 697 | 16.32613879 698 | 16.32613879 699 | 18.74671109 700 | 16.90261335 701 | 0 702 | 0 703 | 36.15047229 704 | 36.15047229 705 | 43.18342726 706 | 63.77610221 707 | 66.65230421 708 | 74.90799014 709 | 85.78848218 710 | 103.3136187 711 | 122.3694483 712 | 143.271057 713 | 145.6444595 714 | 139.7378497 715 | 168.1811644 716 | 163.8061729 717 | 153.9613905 718 | 147.6745231 719 | 143.5205644 720 | 136.5149779 721 | 120.4917332 722 | 100.3997012 723 | 95.14482816 724 | 93.80815776 725 | 93.221575 726 | 91.86668164 727 | 88.24933542 728 | 84.93379634 729 | 81.83949365 730 | 78.95718931 731 | 76.32023648 732 | 73.84994312 733 | 71.53610614 734 | 68.88878348 735 | 66.01236276 736 | 64.32679739 737 | 62.94806401 738 | 61.16256068 739 | 58.50053052 740 | 54.92423212 741 | 50.34735684 742 | 46.78493077 743 | 43.18415164 744 | 38.36943252 745 | 33.60397469 746 | 28.53396033 747 | 23.58133288 748 | 19.48199829 749 | 16.39504155 750 | 16.39504155 751 | 16.32613879 752 | 16.32613879 753 | 16.32613879 754 | 18.74671109 755 | 0 756 | 0 757 | 143.9546624 758 | 97.32228245 759 | 110.1134529 760 | 121.6209205 761 | 130.5796565 762 | 136.3096515 763 | 139.4438919 764 | 136.005959 765 | 147.80815 766 | 169.8481132 767 | 163.9861849 768 | 152.7235839 769 | 150.032312 770 | 143.7627189 771 | 136.1904547 772 | 126.6484613 773 | 117.6903858 774 | 106.9099054 775 | 96.11437366 776 | 92.89113675 777 | 90.2007007 778 | 88.01394007 779 | 86.22696937 780 | 85.75497782 781 | 84.57248231 782 | 80.98046739 783 | 77.66645004 784 | 74.35229019 785 | 71.43591913 786 | 68.33019333 787 | 65.16713053 788 | 61.73285728 789 | 58.09382245 790 | 55.56968153 791 | 53.02926122 792 | 50.33823085 793 | 46.32799238 794 | 40.43852869 795 | 36.52288063 796 | 33.20473628 797 | 30.23884561 798 | 27.1487523 799 | 23.10109694 800 | 18.93505558 801 | 16.40325342 802 | 16.40325342 803 | 16.39504155 804 | 16.39504155 805 | 16.32613879 806 | 16.32613879 807 | 16.32613879 808 | 16.32613879 809 | 0 810 | 0 811 | 143.9546624 812 | 153.1172699 813 | 153.9720172 814 | 156.3400955 815 | 160.4136584 816 | 164.6750146 817 | 164.2479305 818 | 158.0550771 819 | 153.2154543 820 | 151.2089008 821 | 147.621698 822 | 142.6802887 823 | 134.6531556 824 | 122.8129229 825 | 111.0272344 826 | 104.2708092 827 | 97.51078031 828 | 93.92189219 829 | 91.27289574 830 | 89.17070974 831 | 86.95660934 832 | 85.67654586 833 | 84.04941952 834 | 81.9252792 835 | 79.87324827 836 | 77.53487895 837 | 74.3259348 838 | 71.34087294 839 | 68.20398183 840 | 64.71428652 841 | 60.50749126 842 | 55.43985214 843 | 49.835935 844 | 44.88569025 845 | 41.30926694 846 | 38.14710635 847 | 33.54125192 848 | 30.04539539 849 | 26.18450962 850 | 23.05096978 851 | 20.85831534 852 | 18.06043281 853 | 15.83408205 854 | 15.33537415 855 | 15.33537415 856 | 16.40325342 857 | 16.39504155 858 | 16.39504155 859 | 16.39504155 860 | 16.32613879 861 | 16.32613879 862 | 16.32613879 863 | 0 864 | 0 865 | 161.126227 866 | 161.126227 867 | 161.9169607 868 | 162.141377 869 | 158.8233694 870 | 157.1423963 871 | 152.1856524 872 | 147.9870557 873 | 144.4492608 874 | 138.5020208 875 | 131.242232 876 | 125.8050145 877 | 118.6963728 878 | 108.4634165 879 | 99.46296078 880 | 94.39625455 881 | 91.2497563 882 | 89.33907985 883 | 87.8825604 884 | 86.57318806 885 | 84.83319216 886 | 83.52231206 887 | 82.83144241 888 | 81.0321886 889 | 78.34188808 890 | 75.0584469 891 | 72.0118953 892 | 68.80316237 893 | 65.50843584 894 | 61.50280254 895 | 56.55201556 896 | 50.01009594 897 | 43.84286768 898 | 37.30383023 899 | 32.55144509 900 | 28.96749361 901 | 25.84654067 902 | 22.71879998 903 | 18.79135651 904 | 16.48529359 905 | 15.12632879 906 | 14.97376434 907 | 14.97376434 908 | 15.33537415 909 | 15.33537415 910 | 15.33537415 911 | 16.40325342 912 | 16.39504155 913 | 16.39504155 914 | 16.32613879 915 | 16.32613879 916 | 16.32613879 917 | 0 918 | 0 919 | 154.4433558 920 | 154.4433558 921 | 156.0357943 922 | 153.5697672 923 | 148.4337478 924 | 143.7337536 925 | 138.1370538 926 | 132.6913417 927 | 129.8827787 928 | 124.2204626 929 | 116.9292729 930 | 109.4233219 931 | 104.0489691 932 | 97.35941545 933 | 93.33984109 934 | 90.61767435 935 | 88.76473756 936 | 85.49699645 937 | 85.04975875 938 | 84.47396291 939 | 83.24348515 940 | 81.85564953 941 | 81.04715789 942 | 79.86050808 943 | 77.31054909 944 | 73.91607493 945 | 70.69214658 946 | 67.4442667 947 | 63.22561993 948 | 58.30736348 949 | 52.15117566 950 | 45.25145893 951 | 38.77927459 952 | 32.14046238 953 | 27.03917218 954 | 23.25089496 955 | 20.30763672 956 | 17.12016539 957 | 14.83996236 958 | 15.22344629 959 | 16.83714065 960 | 16.83714065 961 | 14.97376434 962 | 15.33537415 963 | 15.33537415 964 | 15.33537415 965 | 15.33537415 966 | 16.39504155 967 | 16.39504155 968 | 16.39504155 969 | 16.32613879 970 | 16.32613879 971 | 0 972 | 0 973 | 141.0817382 974 | 141.0817382 975 | 143.0901672 976 | 138.2221501 977 | 133.1345978 978 | 128.3031966 979 | 121.7098601 980 | 116.5895067 981 | 113.3898695 982 | 107.965498 983 | 102.7075638 984 | 98.30511103 985 | 94.96136167 986 | 92.62479659 987 | 90.81233673 988 | 89.16985203 989 | 87.74027857 990 | 85.26562305 991 | 82.48834476 992 | 82.31530408 993 | 81.60424313 994 | 80.22105062 995 | 79.17773929 996 | 77.61393102 997 | 75.22594374 998 | 72.57274949 999 | 69.53078214 1000 | 65.8004496 1001 | 61.29295093 1002 | 55.19227383 1003 | 47.74746493 1004 | 40.47796381 1005 | 34.24492918 1006 | 28.55906239 1007 | 23.52313476 1008 | 19.32134869 1009 | 16.22267438 1010 | 15.02521281 1011 | 15.83230009 1012 | 15.83230009 1013 | 16.83714065 1014 | 16.83714065 1015 | 16.83714065 1016 | 14.97376434 1017 | 15.33537415 1018 | 15.33537415 1019 | 15.33537415 1020 | 15.33537415 1021 | 16.39504155 1022 | 16.39504155 1023 | 16.32613879 1024 | 16.32613879 1025 | 0 1026 | 0 1027 | 141.0817382 1028 | 126.0648317 1029 | 126.0648317 1030 | 120.9347631 1031 | 118.0474017 1032 | 112.5796766 1033 | 107.0679662 1034 | 102.9916746 1035 | 99.19020315 1036 | 96.22382807 1037 | 93.88094481 1038 | 91.69322379 1039 | 89.56837993 1040 | 87.86553058 1041 | 87.83846744 1042 | 87.80362973 1043 | 86.71067886 1044 | 85.41253115 1045 | 82.42967496 1046 | 80.25265249 1047 | 79.42155575 1048 | 78.0817332 1049 | 76.58603421 1050 | 74.64796761 1051 | 72.51138275 1052 | 70.44626568 1053 | 66.96069764 1054 | 62.87647188 1055 | 57.97545147 1056 | 51.39837548 1057 | 44.26035981 1058 | 37.55381628 1059 | 30.20445434 1060 | 25.04614622 1061 | 20.5754501 1062 | 16.7973999 1063 | 15.95268 1064 | 15.95268 1065 | 15.83230009 1066 | 15.83230009 1067 | 16.83714065 1068 | 16.83714065 1069 | 16.83714065 1070 | 16.83714065 1071 | 15.33537415 1072 | 15.33537415 1073 | 15.33537415 1074 | 15.33537415 1075 | 16.39504155 1076 | 16.39504155 1077 | 16.39504155 1078 | 16.32613879 1079 | 0 1080 | 0 1081 | 109.3374866 1082 | 109.3374866 1083 | 109.3374866 1084 | 106.8880665 1085 | 103.4286541 1086 | 99.53024376 1087 | 96.2551359 1088 | 93.6196506 1089 | 91.43868215 1090 | 89.78481849 1091 | 88.79167333 1092 | 87.94956896 1093 | 87.03157667 1094 | 85.88693136 1095 | 84.54043727 1096 | 83.52625856 1097 | 83.78713488 1098 | 82.73194734 1099 | 80.62930741 1100 | 78.57451272 1101 | 76.70699823 1102 | 74.9268658 1103 | 73.09223221 1104 | 70.9984323 1105 | 68.47286962 1106 | 65.71408069 1107 | 62.40354775 1108 | 57.42374666 1109 | 51.62378557 1110 | 46.05420518 1111 | 40.97242767 1112 | 33.25740621 1113 | 26.31713721 1114 | 21.09960573 1115 | 17.93136598 1116 | 16.22471683 1117 | 16.22471683 1118 | 15.95268 1119 | 15.83230009 1120 | 15.83230009 1121 | 15.83230009 1122 | 16.83714065 1123 | 16.83714065 1124 | 16.83714065 1125 | 16.83714065 1126 | 15.33537415 1127 | 15.33537415 1128 | 15.33537415 1129 | 15.33537415 1130 | 16.39504155 1131 | 16.39504155 1132 | 16.32613879 1133 | 0 1134 | 0 1135 | 109.3374866 1136 | 109.3374866 1137 | 109.3374866 1138 | 106.8880665 1139 | 103.4286541 1140 | 99.53024376 1141 | 96.2551359 1142 | 93.6196506 1143 | 91.43868215 1144 | 89.78481849 1145 | 88.79167333 1146 | 87.94956896 1147 | 87.03157667 1148 | 85.88693136 1149 | 84.54043727 1150 | 83.52625856 1151 | 83.78713488 1152 | 82.73194734 1153 | 80.62930741 1154 | 78.57451272 1155 | 76.70699823 1156 | 74.9268658 1157 | 73.09223221 1158 | 70.9984323 1159 | 68.47286962 1160 | 65.71408069 1161 | 62.40354775 1162 | 57.42374666 1163 | 51.62378557 1164 | 46.05420518 1165 | 40.97242767 1166 | 33.25740621 1167 | 26.31713721 1168 | 21.09960573 1169 | 17.93136598 1170 | 16.22471683 1171 | 16.22471683 1172 | 16.22471683 1173 | 15.95268 1174 | 15.83230009 1175 | 15.83230009 1176 | 16.83714065 1177 | 16.83714065 1178 | 16.83714065 1179 | 16.83714065 1180 | 15.33537415 1181 | 15.33537415 1182 | 15.33537415 1183 | 15.33537415 1184 | 15.33537415 1185 | 16.39504155 1186 | 16.39504155 1187 | 0 1188 | 0 1189 | -------------------------------------------------------------------------------- /Nechelik_poro.dat: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | 0 4 | 0 5 | 0 6 | 0 7 | 0 8 | 0 9 | 0 10 | 0 11 | 0 12 | 0 13 | 0 14 | 0 15 | 0 16 | 0 17 | 0 18 | 0 19 | 0 20 | 0 21 | 0 22 | 0 23 | 0 24 | 0 25 | 0 26 | 0 27 | 0 28 | 0 29 | 0 30 | 0 31 | 0 32 | 0 33 | 0 34 | 0 35 | 0 36 | 0 37 | 0 38 | 0 39 | 0.100020514 40 | 0.080733063 41 | 0.080733063 42 | 0.080733063 43 | 0.093202504 44 | 0.098288614 45 | 0.112700776 46 | 0.122389019 47 | 0 48 | 0 49 | 0 50 | 0 51 | 0 52 | 0 53 | 0 54 | 0 55 | 0 56 | 0 57 | 0 58 | 0 59 | 0 60 | 0 61 | 0 62 | 0 63 | 0 64 | 0 65 | 0 66 | 0 67 | 0 68 | 0 69 | 0 70 | 0 71 | 0 72 | 0 73 | 0 74 | 0 75 | 0 76 | 0 77 | 0 78 | 0 79 | 0 80 | 0 81 | 0 82 | 0 83 | 0 84 | 0 85 | 0 86 | 0 87 | 0 88 | 0 89 | 0 90 | 0 91 | 0 92 | 0 93 | 0.100020514 94 | 0.080733063 95 | 0.080733063 96 | 0.080733063 97 | 0.093202504 98 | 0.098288614 99 | 0.112700776 100 | 0.122389019 101 | 0 102 | 0 103 | 0 104 | 0 105 | 0 106 | 0 107 | 0 108 | 0 109 | 0 110 | 0 111 | 0 112 | 0 113 | 0 114 | 0 115 | 0 116 | 0 117 | 0 118 | 0 119 | 0 120 | 0 121 | 0 122 | 0 123 | 0 124 | 0 125 | 0 126 | 0 127 | 0 128 | 0 129 | 0 130 | 0 131 | 0 132 | 0 133 | 0 134 | 0 135 | 0 136 | 0 137 | 0 138 | 0 139 | 0.079433048 140 | 0.079433048 141 | 0.079433048 142 | 0.093199618 143 | 0.10916627 144 | 0.08769146 145 | 0.08769146 146 | 0.08769146 147 | 0.100020514 148 | 0.080733063 149 | 0.080733063 150 | 0.080733063 151 | 0.093202504 152 | 0.098288614 153 | 0.112700776 154 | 0.122389019 155 | 0 156 | 0 157 | 0 158 | 0 159 | 0 160 | 0 161 | 0 162 | 0 163 | 0 164 | 0 165 | 0 166 | 0 167 | 0 168 | 0 169 | 0 170 | 0 171 | 0 172 | 0 173 | 0 174 | 0 175 | 0 176 | 0 177 | 0 178 | 0 179 | 0 180 | 0 181 | 0 182 | 0 183 | 0 184 | 0 185 | 0 186 | 0 187 | 0 188 | 0 189 | 0 190 | 0 191 | 0 192 | 0 193 | 0.079433048 194 | 0.079433048 195 | 0.079433048 196 | 0.093199618 197 | 0.10916627 198 | 0.08769146 199 | 0.08769146 200 | 0.08769146 201 | 0.100020514 202 | 0.107550411 203 | 0.080733063 204 | 0.080733063 205 | 0.093202504 206 | 0.098288614 207 | 0.112700776 208 | 0.122389019 209 | 0 210 | 0 211 | 0 212 | 0 213 | 0 214 | 0 215 | 0 216 | 0 217 | 0 218 | 0 219 | 0 220 | 0 221 | 0 222 | 0 223 | 0 224 | 0 225 | 0 226 | 0 227 | 0 228 | 0 229 | 0 230 | 0 231 | 0 232 | 0 233 | 0 234 | 0 235 | 0 236 | 0 237 | 0 238 | 0 239 | 0 240 | 0 241 | 0 242 | 0 243 | 0 244 | 0 245 | 0 246 | 0 247 | 0.079433048 248 | 0.079433048 249 | 0.079433048 250 | 0.093199618 251 | 0.10916627 252 | 0.111640436 253 | 0.08769146 254 | 0.08769146 255 | 0.100020514 256 | 0.107550411 257 | 0.118505988 258 | 0.080733063 259 | 0.093202504 260 | 0.098288614 261 | 0.112700776 262 | 0.122389019 263 | 0 264 | 0 265 | 0 266 | 0 267 | 0 268 | 0 269 | 0 270 | 0 271 | 0 272 | 0 273 | 0 274 | 0 275 | 0 276 | 0 277 | 0 278 | 0 279 | 0 280 | 0 281 | 0 282 | 0 283 | 0 284 | 0 285 | 0 286 | 0 287 | 0 288 | 0 289 | 0 290 | 0 291 | 0 292 | 0 293 | 0 294 | 0 295 | 0 296 | 0 297 | 0 298 | 0 299 | 0 300 | 0 301 | 0.111373185 302 | 0.079433048 303 | 0.079433048 304 | 0.093199618 305 | 0.10916627 306 | 0.111640436 307 | 0.118472892 308 | 0.08769146 309 | 0.100020514 310 | 0.107550411 311 | 0.118505988 312 | 0.13164175 313 | 0.132160735 314 | 0.135981631 315 | 0.135041015 316 | 0.133828645 317 | 0 318 | 0 319 | 0 320 | 0 321 | 0 322 | 0 323 | 0 324 | 0 325 | 0 326 | 0 327 | 0 328 | 0 329 | 0 330 | 0 331 | 0 332 | 0 333 | 0 334 | 0 335 | 0 336 | 0 337 | 0 338 | 0 339 | 0 340 | 0 341 | 0 342 | 0 343 | 0 344 | 0 345 | 0 346 | 0 347 | 0 348 | 0 349 | 0 350 | 0 351 | 0.076426294 352 | 0.076426294 353 | 0.079184743 354 | 0.092027464 355 | 0.111373185 356 | 0.117719723 357 | 0.079433048 358 | 0.093199618 359 | 0.10916627 360 | 0.111640436 361 | 0.118472892 362 | 0.133666925 363 | 0.135870026 364 | 0.133148594 365 | 0.139318977 366 | 0.14274188 367 | 0.140853671 368 | 0.137657798 369 | 0.135350155 370 | 0.13354644 371 | 0.131765837 372 | 0.132575701 373 | 0.121460118 374 | 0.104428022 375 | 0 376 | 0 377 | 0 378 | 0 379 | 0 380 | 0 381 | 0 382 | 0 383 | 0 384 | 0 385 | 0 386 | 0 387 | 0 388 | 0 389 | 0 390 | 0 391 | 0 392 | 0 393 | 0 394 | 0 395 | 0 396 | 0 397 | 0 398 | 0 399 | 0 400 | 0 401 | 0 402 | 0 403 | 0 404 | 0 405 | 0.108577956 406 | 0.076426294 407 | 0.079184743 408 | 0.092027464 409 | 0.111373185 410 | 0.117719723 411 | 0.127968532 412 | 0.134037962 413 | 0.140915501 414 | 0.139772862 415 | 0.134588985 416 | 0.141081507 417 | 0.141448669 418 | 0.140242212 419 | 0.140026788 420 | 0.138386242 421 | 0.138176114 422 | 0.134031961 423 | 0.132246427 424 | 0.130020321 425 | 0.128763024 426 | 0.131505522 427 | 0.128237209 428 | 0.122636089 429 | 0 430 | 0 431 | 0 432 | 0 433 | 0 434 | 0 435 | 0 436 | 0 437 | 0 438 | 0 439 | 0 440 | 0 441 | 0 442 | 0 443 | 0 444 | 0 445 | 0 446 | 0 447 | 0.084560115 448 | 0.095415039 449 | 0.105898546 450 | 0.077188403 451 | 0.077188403 452 | 0.080504921 453 | 0.095258978 454 | 0.100909424 455 | 0.118524777 456 | 0.076245 457 | 0.082456368 458 | 0.093689904 459 | 0.108577956 460 | 0.121663048 461 | 0.127926488 462 | 0.1332205 463 | 0.13316656 464 | 0.143765526 465 | 0.142829671 466 | 0.14098526 467 | 0.141637556 468 | 0.140141371 469 | 0.139976166 470 | 0.139217232 471 | 0.138512785 472 | 0.137016591 473 | 0.136319556 474 | 0.134368507 475 | 0.132119909 476 | 0.130120179 477 | 0.128838941 478 | 0.127935696 479 | 0.125917003 480 | 0.123484596 481 | 0.122804624 482 | 0.117866951 483 | 0.108511023 484 | 0.104787389 485 | 0.092380826 486 | 0.092380826 487 | 0 488 | 0 489 | 0 490 | 0 491 | 0 492 | 0 493 | 0 494 | 0 495 | 0 496 | 0 497 | 0 498 | 0 499 | 0 500 | 0 501 | 0.084560115 502 | 0.095415039 503 | 0.105898546 504 | 0.112251864 505 | 0.077188403 506 | 0.080504921 507 | 0.095258978 508 | 0.100909424 509 | 0.118524777 510 | 0.123001199 511 | 0.125250031 512 | 0.126906894 513 | 0.135610849 514 | 0.139835735 515 | 0.142688773 516 | 0.141625117 517 | 0.139637607 518 | 0.141199061 519 | 0.139845738 520 | 0.13907419 521 | 0.138085573 522 | 0.137400874 523 | 0.137299699 524 | 0.135929506 525 | 0.133905322 526 | 0.131982521 527 | 0.130647114 528 | 0.129633044 529 | 0.128829144 530 | 0.127388668 531 | 0.126232828 532 | 0.124466329 533 | 0.121521158 534 | 0.117062643 535 | 0.111136413 536 | 0.103785554 537 | 0.096870132 538 | 0.093842494 539 | 0.089744933 540 | 0.089744933 541 | 0.103587636 542 | 0.103587636 543 | 0.080205581 544 | 0.080205581 545 | 0.080205581 546 | 0.089742759 547 | 0.100672744 548 | 0.07667109 549 | 0.07667109 550 | 0.08405175 551 | 0.101023148 552 | 0.111347503 553 | 0.114449205 554 | 0.078418843 555 | 0.084560115 556 | 0.095415039 557 | 0.105898546 558 | 0.112251864 559 | 0.123978054 560 | 0.127679732 561 | 0.136190681 562 | 0.142484568 563 | 0.141170533 564 | 0.136128627 565 | 0.133487418 566 | 0.135172187 567 | 0.137436641 568 | 0.140498439 569 | 0.14054749 570 | 0.140089046 571 | 0.139442479 572 | 0.13827146 573 | 0.136836878 574 | 0.13580675 575 | 0.134208758 576 | 0.132967581 577 | 0.131935947 578 | 0.130375493 579 | 0.129327658 580 | 0.128307532 581 | 0.12759449 582 | 0.127049047 583 | 0.125476279 584 | 0.124035355 585 | 0.121923327 586 | 0.118573784 587 | 0.113264109 588 | 0.106930207 589 | 0.100612907 590 | 0.093943366 591 | 0.087729786 592 | 0.081703017 593 | 0 594 | 0 595 | 0.103587636 596 | 0.103587636 597 | 0.109432961 598 | 0.080205581 599 | 0.080205581 600 | 0.089742759 601 | 0.100672744 602 | 0.118099555 603 | 0.07667109 604 | 0.08405175 605 | 0.101023148 606 | 0.111347503 607 | 0.114449205 608 | 0.125971201 609 | 0.134077113 610 | 0.135094732 611 | 0.141890902 612 | 0.145436577 613 | 0.151257041 614 | 0.158901287 615 | 0.156174474 616 | 0.149854097 617 | 0.143675142 618 | 0.138459512 619 | 0.138437023 620 | 0.13896547 621 | 0.139348664 622 | 0.139561396 623 | 0.138498733 624 | 0.137016662 625 | 0.136180858 626 | 0.134456767 627 | 0.132941692 628 | 0.13147529 629 | 0.130064159 630 | 0.128927153 631 | 0.128012641 632 | 0.127246168 633 | 0.12598712 634 | 0.125312191 635 | 0.124365464 636 | 0.1228669 637 | 0.120946637 638 | 0.117802432 639 | 0.113944946 640 | 0.108339532 641 | 0.102376518 642 | 0.09651643 643 | 0.090486229 644 | 0.084406312 645 | 0.084406312 646 | 0.081703017 647 | 0 648 | 0 649 | 0.103587636 650 | 0.103587636 651 | 0.109432961 652 | 0.123322919 653 | 0.080205581 654 | 0.089742759 655 | 0.100672744 656 | 0.118099555 657 | 0.118707606 658 | 0.125416749 659 | 0.137672966 660 | 0.144024254 661 | 0.15548536 662 | 0.160253254 663 | 0.155107611 664 | 0.155824485 665 | 0.160827215 666 | 0.160820932 667 | 0.159046121 668 | 0.154201345 669 | 0.14946304 670 | 0.144538412 671 | 0.140647542 672 | 0.139134061 673 | 0.137765922 674 | 0.136882485 675 | 0.13641218 676 | 0.135961621 677 | 0.134160343 678 | 0.133003286 679 | 0.131474832 680 | 0.13011614 681 | 0.12894574 682 | 0.127957243 683 | 0.126933913 684 | 0.125770063 685 | 0.124797776 686 | 0.123437708 687 | 0.122412488 688 | 0.121054649 689 | 0.119033157 690 | 0.115796714 691 | 0.111788684 692 | 0.107908389 693 | 0.102459907 694 | 0.097220029 695 | 0.091690511 696 | 0.086124248 697 | 0.080815441 698 | 0.080815441 699 | 0.084406312 700 | 0.081703017 701 | 0 702 | 0 703 | 0.103587636 704 | 0.103587636 705 | 0.109432961 706 | 0.123322919 707 | 0.124990833 708 | 0.129504567 709 | 0.134930004 710 | 0.142694619 711 | 0.150106256 712 | 0.157312069 713 | 0.158079887 714 | 0.156151356 715 | 0.164943228 716 | 0.163666942 717 | 0.160699207 718 | 0.158729291 719 | 0.157393229 720 | 0.155073448 721 | 0.149415432 722 | 0.141474346 723 | 0.139206376 724 | 0.13861487 725 | 0.138353342 726 | 0.137744623 727 | 0.136086589 728 | 0.134522633 729 | 0.133022258 730 | 0.131586951 731 | 0.130239956 732 | 0.128946974 733 | 0.127707007 734 | 0.126252019 735 | 0.124624315 736 | 0.123646432 737 | 0.122832645 738 | 0.12175934 739 | 0.120116184 740 | 0.117821284 741 | 0.11472119 742 | 0.112164408 743 | 0.109433527 744 | 0.105513724 745 | 0.101270059 746 | 0.096253488 747 | 0.090697062 748 | 0.08543187 749 | 0.080922678 750 | 0.080922678 751 | 0.080815441 752 | 0.080815441 753 | 0.080815441 754 | 0.084406312 755 | 0 756 | 0 757 | 0.157534184 758 | 0.140157033 759 | 0.145446819 760 | 0.149831812 761 | 0.153037962 762 | 0.155004139 763 | 0.156053809 764 | 0.154901483 765 | 0.158771804 766 | 0.165422998 767 | 0.163719954 768 | 0.16031615 769 | 0.159475256 770 | 0.157471898 771 | 0.154963868 772 | 0.151651759 773 | 0.148369869 774 | 0.144166257 775 | 0.13963162 776 | 0.138205485 777 | 0.13698706 778 | 0.135976983 779 | 0.13513785 780 | 0.13491409 781 | 0.134349518 782 | 0.132598398 783 | 0.130931788 784 | 0.129212432 785 | 0.127652662 786 | 0.12593984 787 | 0.124136246 788 | 0.122104597 789 | 0.119860402 790 | 0.118243294 791 | 0.116561249 792 | 0.114714809 793 | 0.111826422 794 | 0.107239123 795 | 0.10391669 796 | 0.100895435 797 | 0.098006605 798 | 0.094773347 799 | 0.090115549 800 | 0.084671678 801 | 0.080935437 802 | 0.080935437 803 | 0.080922678 804 | 0.080922678 805 | 0.080815441 806 | 0.080815441 807 | 0.080815441 808 | 0.080815441 809 | 0 810 | 0 811 | 0.157534184 812 | 0.160438231 813 | 0.160702486 814 | 0.161428945 815 | 0.162659649 816 | 0.16392241 817 | 0.163796959 818 | 0.161949952 819 | 0.160468642 820 | 0.159844252 821 | 0.158712477 822 | 0.157119483 823 | 0.154442127 824 | 0.150268269 825 | 0.145807053 826 | 0.143089943 827 | 0.140238593 828 | 0.138665439 829 | 0.137475777 830 | 0.13651356 831 | 0.135481999 832 | 0.134876821 833 | 0.134097945 834 | 0.133064407 835 | 0.132047208 836 | 0.13086456 837 | 0.129198538 838 | 0.127601055 839 | 0.125869048 840 | 0.123872865 841 | 0.121359872 842 | 0.118158694 843 | 0.114362322 844 | 0.110743609 845 | 0.107946324 846 | 0.105324394 847 | 0.101211414 848 | 0.09781128 849 | 0.093711017 850 | 0.090054359 851 | 0.087280269 852 | 0.083423167 853 | 0.080040212 854 | 0.079237008 855 | 0.079237008 856 | 0.080935437 857 | 0.080922678 858 | 0.080922678 859 | 0.080922678 860 | 0.080815441 861 | 0.080815441 862 | 0.080815441 863 | 0 864 | 0 865 | 0.162872531 866 | 0.162872531 867 | 0.163107945 868 | 0.163174601 869 | 0.162181993 870 | 0.161673209 871 | 0.160148958 872 | 0.158828678 873 | 0.1576944 874 | 0.155740228 875 | 0.153268545 876 | 0.15135021 877 | 0.148747432 878 | 0.144790722 879 | 0.141076543 880 | 0.138875872 881 | 0.137465274 882 | 0.136591235 883 | 0.135915716 884 | 0.135301415 885 | 0.134474485 886 | 0.133843268 887 | 0.133507682 888 | 0.132624011 889 | 0.131275614 890 | 0.129583391 891 | 0.127964337 892 | 0.126204288 893 | 0.124333878 894 | 0.121965601 895 | 0.118878822 896 | 0.114484828 897 | 0.109945024 898 | 0.104599007 899 | 0.100275426 900 | 0.096706209 901 | 0.093332094 902 | 0.089646475 903 | 0.084469384 904 | 0.081062663 905 | 0.078894856 906 | 0.078643044 907 | 0.078643044 908 | 0.079237008 909 | 0.079237008 910 | 0.079237008 911 | 0.080935437 912 | 0.080922678 913 | 0.080922678 914 | 0.080815441 915 | 0.080815441 916 | 0.080815441 917 | 0 918 | 0 919 | 0.160847739 920 | 0.160847739 921 | 0.161336054 922 | 0.160578262 923 | 0.158970457 924 | 0.157462493 925 | 0.155618292 926 | 0.153769862 927 | 0.152794506 928 | 0.150779634 929 | 0.148082625 930 | 0.145173292 931 | 0.142998561 932 | 0.140173109 933 | 0.138406168 934 | 0.137177624 935 | 0.13632583 936 | 0.134791407 937 | 0.13457808 938 | 0.134302221 939 | 0.133708074 940 | 0.133030198 941 | 0.132631422 942 | 0.132040833 943 | 0.130749743 944 | 0.128981995 945 | 0.127247474 946 | 0.125440899 947 | 0.122997502 948 | 0.11999486 949 | 0.115966337 950 | 0.111020551 951 | 0.105860691 952 | 0.099880818 953 | 0.094653984 954 | 0.09029785 955 | 0.086551365 956 | 0.082032431 957 | 0.078420711 958 | 0.079054222 959 | 0.081603295 960 | 0.081603295 961 | 0.078643044 962 | 0.079237008 963 | 0.079237008 964 | 0.079237008 965 | 0.079237008 966 | 0.080922678 967 | 0.080922678 968 | 0.080922678 969 | 0.080815441 970 | 0.080815441 971 | 0 972 | 0 973 | 0.156595383 974 | 0.156595383 975 | 0.157253163 976 | 0.155646744 977 | 0.153922396 978 | 0.152239072 979 | 0.149864487 980 | 0.147953952 981 | 0.146728441 982 | 0.144591294 983 | 0.142442921 984 | 0.140581022 985 | 0.13912555 986 | 0.138086029 987 | 0.137266367 988 | 0.136513164 989 | 0.135849289 990 | 0.134681147 991 | 0.133340265 992 | 0.133255635 993 | 0.132906505 994 | 0.132220946 995 | 0.131698117 996 | 0.130904963 997 | 0.129671008 998 | 0.12826609 999 | 0.12660855 1000 | 0.124502376 1001 | 0.121838483 1002 | 0.117996969 1003 | 0.112868673 1004 | 0.107271386 1005 | 0.101864903 1006 | 0.096279834 1007 | 0.09062704 1008 | 0.085210165 1009 | 0.080653814 1010 | 0.078728162 1011 | 0.080037374 1012 | 0.080037374 1013 | 0.081603295 1014 | 0.081603295 1015 | 0.081603295 1016 | 0.078643044 1017 | 0.079237008 1018 | 0.079237008 1019 | 0.079237008 1020 | 0.079237008 1021 | 0.080922678 1022 | 0.080922678 1023 | 0.080815441 1024 | 0.080815441 1025 | 0 1026 | 0 1027 | 0.156595383 1028 | 0.151443259 1029 | 0.151443259 1030 | 0.149579138 1031 | 0.148504134 1032 | 0.146414087 1033 | 0.144230097 1034 | 0.142561049 1035 | 0.140960194 1036 | 0.13967943 1037 | 0.138647238 1038 | 0.137666219 1039 | 0.136696846 1040 | 0.135907769 1041 | 0.135895138 1042 | 0.135878875 1043 | 0.135366238 1044 | 0.134751181 1045 | 0.133311586 1046 | 0.132236705 1047 | 0.131820747 1048 | 0.131143441 1049 | 0.130377253 1050 | 0.129368069 1051 | 0.128233156 1052 | 0.127112843 1053 | 0.12516655 1054 | 0.122790037 1055 | 0.119785714 1056 | 0.115450527 1057 | 0.110266357 1058 | 0.104815259 1059 | 0.097971946 1060 | 0.092420463 1061 | 0.086907578 1062 | 0.081542632 1063 | 0.080228596 1064 | 0.080228596 1065 | 0.080037374 1066 | 0.080037374 1067 | 0.081603295 1068 | 0.081603295 1069 | 0.081603295 1070 | 0.081603295 1071 | 0.079237008 1072 | 0.079237008 1073 | 0.079237008 1074 | 0.079237008 1075 | 0.080922678 1076 | 0.080922678 1077 | 0.080922678 1078 | 0.080815441 1079 | 0 1080 | 0 1081 | 0.145139183 1082 | 0.145139183 1083 | 0.145139183 1084 | 0.144157431 1085 | 0.142742271 1086 | 0.141105207 1087 | 0.139693097 1088 | 0.138530955 1089 | 0.137550968 1090 | 0.136796353 1091 | 0.136338305 1092 | 0.135946972 1093 | 0.135517239 1094 | 0.134976737 1095 | 0.134334139 1096 | 0.133845179 1097 | 0.133971366 1098 | 0.133459185 1099 | 0.132424184 1100 | 0.131393529 1101 | 0.130439621 1102 | 0.129514462 1103 | 0.128544075 1104 | 0.127414704 1105 | 0.126019753 1106 | 0.124452596 1107 | 0.122507688 1108 | 0.119436146 1109 | 0.115605544 1110 | 0.111622759 1111 | 0.107674028 1112 | 0.100945041 1113 | 0.093858768 1114 | 0.087595367 1115 | 0.083235336 1116 | 0.080657011 1117 | 0.080657011 1118 | 0.080228596 1119 | 0.080037374 1120 | 0.080037374 1121 | 0.080037374 1122 | 0.081603295 1123 | 0.081603295 1124 | 0.081603295 1125 | 0.081603295 1126 | 0.079237008 1127 | 0.079237008 1128 | 0.079237008 1129 | 0.079237008 1130 | 0.080922678 1131 | 0.080922678 1132 | 0.080815441 1133 | 0 1134 | 0 1135 | 0.145139183 1136 | 0.145139183 1137 | 0.145139183 1138 | 0.144157431 1139 | 0.142742271 1140 | 0.141105207 1141 | 0.139693097 1142 | 0.138530955 1143 | 0.137550968 1144 | 0.136796353 1145 | 0.136338305 1146 | 0.135946972 1147 | 0.135517239 1148 | 0.134976737 1149 | 0.134334139 1150 | 0.133845179 1151 | 0.133971366 1152 | 0.133459185 1153 | 0.132424184 1154 | 0.131393529 1155 | 0.130439621 1156 | 0.129514462 1157 | 0.128544075 1158 | 0.127414704 1159 | 0.126019753 1160 | 0.124452596 1161 | 0.122507688 1162 | 0.119436146 1163 | 0.115605544 1164 | 0.111622759 1165 | 0.107674028 1166 | 0.100945041 1167 | 0.093858768 1168 | 0.087595367 1169 | 0.083235336 1170 | 0.080657011 1171 | 0.080657011 1172 | 0.080657011 1173 | 0.080228596 1174 | 0.080037374 1175 | 0.080037374 1176 | 0.081603295 1177 | 0.081603295 1178 | 0.081603295 1179 | 0.081603295 1180 | 0.079237008 1181 | 0.079237008 1182 | 0.079237008 1183 | 0.079237008 1184 | 0.079237008 1185 | 0.080922678 1186 | 0.080922678 1187 | 0 1188 | 0 1189 | --------------------------------------------------------------------------------