• No results found

4-Chemical Flood Exercises_Tutorial - OCT- 2012.pdf

N/A
N/A
Protected

Academic year: 2021

Share "4-Chemical Flood Exercises_Tutorial - OCT- 2012.pdf"

Copied!
37
0
0

Loading.... (view fulltext now)

Full text

(1)

Creating a Chemical core flood dataset

for

STARS; CMG Thermal/Chemical Simulator

using

Builder

(2)

Exercise 1 - Create a Model of the CoreFlood

1) Launch Builder and select as shown below:

Then Click OK twice.

2) Click on Reservoir >> Create Grid >> Cartesian, and then enter the information as

shown below:

(3)

Then click OK.

3) Change to Probe Mode, then click on the Specify Property. Then enter the following

values for the corresponding properties:

Grid Top :

1000 (layer 1)

Grid Thickness:

0.033375

Permeability (I, J and K) :

2591

Porosity :

0.2494

Pressure:

89 kPa

Temperature:

31 C

Then click OK. Save the dataset as ASP.dat .

4) Under I/O Control, double click on Simulation Results Output. Under Initial Well,

change the selection to Values in mass and volume units (MASS).

(4)

5) Click on the Select button next to the Select Grid Variable, and select the following

parameters:

Oil Saturation

Gas Saturation

Water Saturation

Temperature

Pressure

Composition in oil phase

Composition in water phase

Water viscosity

Oil viscosity

Water relative permeability

Oil relative permeability

Water phase molar density

Oil phase molar density

Water mass density

Oil mass density

Water phase resistance factor

Oil phase resistance factor

Local interfacial tension

Local capillary number

Natural logarithm of CAPN

Velocity vectors of oil, water, and

gas

at

reservoir

conditions

(VELOCRC)

Composition of key component

used in the calculation of adsorbing

component ->Special Unit = PPM.

Component Adsorbed

Click Ok once all the parameters are selected.

6) To create a fluid model, click on Components and select "Add/Edit Components".

Once the Components and Phase Properties window appears, click on the Add/Edit

(5)

7) In the Component Definition window, click Select from Library List, then select H2O then

click OK. Make sure the reference phase is set as Aqueous for this component. The

molecular weight, critical pressure and temperature are blanks so that the internal

defaults will be used. Click Apply when done.

8) Click the arrow next to the component name and add another component. Name the

new component “Dead_Oil”, set the reference phase to Oleic, critical temperature and

pressure to 0.0 and molecular weight to 0.4 kg/gmole. Then click Apply then OK.

(6)

9) Click on the “Density tab” and enter 869.2 kg/m3 for Dead_Oil and click the Apply

button. Once again, the water properties are blank so that the internal defaults will be

used.

(7)

Click Apply. A green check mark should appear for the Components section.

11) In the General tab, enter the reference and surface properties as seen below:

Once finished, click Apply then OK.

12) To create the relative permeability data, click on Rock Fluid on the tree view, then

double click on the Rock Fluid Types.

13) Click on the arrow next to Rock Type and select New Rock Type. Click on Tools, then

select Generate tables using Correlations. Enter the values as seen in the table below.

Click Apply then OK twice.

(8)

14) Click on the Initialization button, then select "Do Not Perform Vertical Equilibrium

(9)

15) Click on the Specify Property , find the property "Water Mole Fraction (H2O) and enter

a constant value of 1.0 Click OK twice.

16) Click on Numerical section, then double click on Numerical Controls to bring up the

Numerical window. Enter in the following values:

First Time Step Size after Well Change

DTWELL

0.001

Isothermal Option on

ISOTHERMAL

Model Modulation

TFORM ZT

Convergence Tolerance total residual

CONVERGE) TOTRES TIGHT

Maximum Average Scaled Residual for all Equations

TIGHT

Click Apply and then OK. Save the dataset.

17) Now that the base dataset is completed, the ASP wizard can be used to turn this into an

ASP dataset.

Click on Components >> Process Wizards. From the drop down menu, select "Alkaline,

Surfactant and/or Polymer". Information regarding the selected process will appear.

(10)

18) Under the Choose Model drop box, pick Alkaline, surfactant, polymer flood (add 3

components).

Once this option is selected, default values are used for the different parameters of this

process. We will keep the default values for most of them. The ones that need to be

change are shown in red boxes in the figure below. Click Next once the changes are

made.

19) In the next step, make sure the "Add new component for ...." are select for all 3

components. This will create surfactant, alkaline and polymer components in the fluid

model. Click Next when completed.

(11)

20) In step 4, select the Rock Fluid Region Number 1 then click Next. This will create

interpolation set based on the relativer permeability of this rock type.

21) In step 5, copy the tables from the IFT.xls for the concentrations versus interfacial

tensions as shown below, then click Next:

Note:These are generic chemical values, so you can change them based on your lab

data.

22) In step 6, enter the values for the table as shown below. This is adsorption values for

surfactant in the presence of different alkaline concentrations. Also change the polymer

adsorption value to 30 at 0.1 wt. %. Once again, this can be changed based on your

default values. Click Next when complete.

(12)

23) Step 7 is where you will enter viscosity of water at different polymer weight %. Once

again, the values below can be changed to your lab data. Click Finish when complete.

24) Now that all the components have been defined, we will go ahead and define the

injector and producer well, as well as the time span for the simulation run.

(13)

Define the new well as shown below:

Under the Contraints tab, add one constraint OPERATE MAX STW 10cm

3

/hr. For the

(14)

Under the Injected Fluid, make sure that it is injecting 100% water.

25) Repeat the process to define a producer with the name PRODN. The constraint for the

producer should be OPERATE MIN BHP 89.0 kPa.

(15)

26) For well perfoation, Expand the tree view for well INJTR and double click on 2006-01-01

PERF.

Change the Well index type to TUBE-END linear flow model and the radius to 0.05m

(5cm). Click Apply when complete

(16)

27) Under the perforation tab, insert a new perforation by clicking on the icon

Enter 1 1 1 then click Apply.

28) Click on the drop down menu at the top to change to the PRODN producer and repeat

the steps.

(17)

For the perforation, enter 11 1 1 then click Apply.

29) The last thing to do is to add a series of dates for the simulation run.

The range of dates are as follow:

0 to 1.144492 days

: Waterflood

1.144492 to 1.882667 days : first ASP slug

1.882667 to 4.774792 days : first water chase slug

4.774792 to 5.05075 days

: second ASP slug

5.05075 to 5.9170 days

: second water chase slug

The first set of dates will be for the water flood portion which ranges from 0 to 27.4678

hours (0 to 1.144492 days).

On the tree view, double click on Dates. On the Simulation Dates window, click on Add a

range of Dates.

Leave the From portion as 0, and click on the little calendar button next for the To

portion. In the CMG calendar window, enter 1.144492 in the Days Since Simulation

(18)

30) Change the step to 1 hour and click OK. There should be 28 new dates added.

31) Next, we will change the injection to ASP at the end of the water flood.

Expand the Wells tree view and double click on the injector INJTR. Change the date at

the top to 2006-01-02.125 (the last date).

Click on the Constraint tab, and check the Constraint Definition box. Then click on the

Injected Fluid and change the compositions to as follow:

(19)

These composition represent 500ppm polymer, 0.1 weight % surfactant and 0.1 weight

% alkaline. Click Apply when finished.

32) Next we need to add a range of dates to define the ASP period. Repeat steps 29 and 30,

except the date will start from 1.144492 days and the end date is at 1.882667 days.

Also remember to change the step to 1 Hour.

From

To

33) Once the ASP flood period had been defined, the injector will switch back to the first

water chase phase.

(20)

Repeat step 31, this time change the dates to 2006-01-02. 8528199 (last date), and

change the injected fluid composition to 100% water.

34) Next is to add a series of dates to define the water chase period. Repeat steps 29 and

30, this time the from date will be 1.882667 days and the to date will be at 4.774792

days. Once again, make sure the steps are in 1 hour increments.

35) The second ASP slug will start at the end of the first water chase (after 4.774792 days)

and will contain twice the alkaline concentrations.

Repeat step 31, this time change the dates to 2006-01-05.75766. Change the injected

fluid compositions to the values shown in the table below:

(21)

Click Apply and OK when finished.

36) Next add a range of dates from 4.774792 days to 5.05075 days for the ASP flood period.

37) Change the injected fluid composition at 5.05075 days (2006-01-06.00507398) to 100%

water.

38) Add a range of dates from 5.05075 days to 5.9170 days to define the water chase

period. Set the stop keyword at the end of this date. Save the dataset.

(22)

EXERCISE 2: History Matching the Waterflood

Now that a model of the core had been created, the next step is to history match it with the lab data. For the waterflood history match, first open up the model and set the stop date at 2006-01-02.125. Rename this dataset as ASP_WF.dat (or something like that) and then re-run the model.

To do the history match, the water-oil relative permeability curves will be changed as well as the relative permeability end points (KRWIRO and KROCW). However, the saturation endpoints will not be changed as these came from the lab data. CMOST will also be used to assist in the history matching of this core. Normally, multiple relative permeability curves will be generated as include files and these will be used as different parameters in CMOST to history match. However, the generations of these include files can be tedious and time consuming so we will use CMOST's ability to define a parameter with a function to generate the different relative permeability curves.

1. Open up the ASP_WF.dat file in a text editor. Use the find function to look for the keyword

(23)

2. Each of the values under the Krw and Krow column can be determined by the Corey equations:                    Pkrw oirw wcrit wcrit w rwiro rw S S 1 S S K K                    Pkro orw wcon orw o rocw row S S 1 S S K K

Since we are not changing the endpoints, the only variable that we will change in this case is the Pkrw and the Pkro.

3. Given the following parameters:

Swcrit = 0.306 Soirw = 0 Sorw = 0.313 Swcon = 0.306 Krwiro = 1 Krocw = 0.9062 So, the first krw value is defined as follow (using Pkrw = 3):

0 0 . 0 306 . 0 1 306 . 0 306 . 0 1 K 3 rw                   

And the second value is:

5 3 rw 4.0398 10 0 . 0 306 . 0 1 306 . 0 329813 . 0 1 K                      

Since CMOST allows for the definition of a parameter as a function, we will now input the

corey equation for each of the Krw and Krow values in the SWT table. The only number

that changes as you move down the Krw column is the



        orw wcon orw o S S 1 S S

value.

(24)

So you can manually put this in yourself, or copy and paste the tables from the CMOST-SWT.txt file.

4. Once this is completed, scroll down the the end of the first SLT table and enter the following lines:

KRWIRO <cmost>this[1]=Krwiro</cmost> KROCW <cmost>this[0.9062]=Krocw</cmost>

This allows to change the end point scaling of the rel-perm curves.

5. Rename the file as ASP_WF.cmm file. It is important to have the extension to be .cmm now so that it can be read by CMOST.

Open up Launcher and double click on the CMOST Studio 2011.** icon to open up CMOST Studio.

(25)

6. Click on File >> New . Under the Task Type menu, select History Matching. Click on Browse ands elect the base irf file (ASP_WF.irf). Click OK once finished.

7. Next is the CMOST main screen. On the left are the different sections that will need to be completed before CMOST can be run.

For the Master dataset, browse and select the ASP_WF.cmm file. The base dataset should be

ASP_WF.dat and the base session file should be ASP.ses. Once these are selected, there should

(26)

8. Click on Parameters on the left hand side of the screen. This is where the parameters their ranges of values will be set.

Click on the Import button. This import all the parameters from the CMM file. Alternatively, you can also set up new parameters either directly in the CMM file or using Builder.

Once you have clicked Import, there should be 4 parameters that show up. They are: - Krocw

- Krwiro - Pkro - Pkrw

The range of values for these parameters can be set in the candidate values section at the bottom of the window.

Select Krocw and under the enter 1.0, 0.9062, and 0.8 as it's candidate values.

(27)

10. Select Pkro, and click on the Generate button. Enter the Minimum Value as 1.5, Maximum

Value as 2.5, and the number of values as 11. This will enter a range of values from 1.5 to 2.5 in

(28)

11. Repeat the steps for Pkrw. Once this is done, the red x should disappear from the parameter section and we can move on to the next section.

12. For the Optimization, we will leave is as DECE. Note the other potential optimization methods that are also available.

(29)

13. Next thing that will be defined will be the objective functions. Objective functions are what will be matched in the task. In this case we want to match 2 things: oil production and injection pressure.

Click on Insert on the right handside to define a new objective function. Rename the objectie function to CumOil. At the bottom is the objective function terms that make up the objective functions. For this term, leave the Origin Type as Well, Origin Name to PRODN, Property to

Cumulative Oil SC, and select the Prod.fhf as the field history file.

Click Insert again to defined a new objective function and this time name it BHP. For the objective function terms, set it as Well - INJTR - Well Bottom-Hole Pressure . Select the

Inject.fhf as the field history file.

There should now be 2 objective functions (CumOil and BHP) and each with one objective function terms.

(30)

14. The Influence matrix will be leave as default.

15. Results observers allows for graphs of results from different runs to be displayed as CMOST is running. For this case we want to see the cummulative oil produced as well as the injector BHP (the 2 objective functions) during the CMOST run.

(31)

16. Once that is done, the final step is to set up the Run Configurations. For this case, leave the runs on the local machine and run 2 simultaneous jobs at a time.

Select STARS 2011.** as the simulator version and leave everything as default.

17. Save the task as Waterflood-HM.cmt. Then click Start Task to start the CMOST run.

(32)

EXERCISE #3 - ASP History Match with CMOST

1. Load the base waterflood model (ASP-WF.dat) into text editor. Remove the STOP keyword at 2006-01-02.125. Save the dataset as ASP_HM.dat and re-run the dataset.

2. Once the history match is done, load the best matched waterflood dataset into text editor. Enter the following after the DTRAPW and DTRAPN keywords for the 2nd interpolation set: DTRAPW <cmost>this[-3.5]=DTRAP2</cmost>

DTRAPN <cmost>this[-3.5]=DTRAP2</cmost>

3. Repeat the same process for the 3rd interpolation set. DTRAPW <cmost>this[-2]=DTRAP3</cmost>

DTRAPN <cmost>this[-2]=DTRAP3</cmost>

4. After the SLT table for the 2nd interpolation set, enter the following: KRWIRO <cmost>this[0.3]=krwiro</cmost>

KROCW <cmost>this[1.0]=krocw</cmost> SORW <cmost>this[0.3]=SORW</cmost>

5. Locate the KEYCOMP keyword and replace the values with: KVTABLE 'Surfact' KEYCOMP **$ 0 0 0 0 KEYCOMP **$ <cmost>this[200]=KvTab</cmost> <cmost>this[200]=KvTab</cmost> <cmost>this[200]=KvTab</cmost> <cmost>this[200]=KvTab</cmost>

This value controls the amount of reversible partitioning of the surfactant into the oil phase. 6. Find the keyword FREQFAC for surfactant. This value controls the reaction rate for irreversible

partitioning of the surfactant into the oil phase. There is also a reaction that governs the

decomposition of the polymer so make sure to locate the one for the surfactant (normally it is reaction #2). Enter the following:

(33)

FREQFAC <cmost>this[0.110672]=FreqFacsurf</cmost> Repeat the process for the reaction involving polymer:

FREQFAC <cmost>this[0.02284]=frefacpoly</cmost>

7. Finally locate the ADMAXT keyword. This value controls the maximum adsorption capacity of a rock to a certain component. Once again, there will be one for polymer and surfactant. Replace the ADMAXT value with the following:

ADMAXT <cmost>this[10.1688]=AdMaxSur</cmost>

ADMAXT <cmost>this[0.299081]=AdMaxPol</cmost>

8. Remove the STOP keyword that was placed at the end of the water flood. Save the file with a

.cmm extension in the same folder as the previous .cmm file for water flood.

9. Open up the .cmt file used for the waterflood match. In the general task pane, change the master dataset file to the newly created asp history match .cmm file. Also change the base dataset to ASP_HM.dat and the base irf to ASP_HM.irf.

10. In the Parameters section, delete all the parameters, then click Import to bring in the new parameters that were created from steps 1-6. The range for candidate values are as follow:

(34)

AdmaxPol: 0.05 to 0.3 (in 0.025 intervals)

AdmaxSurf: 1, 1.5, 2, 3, 5

DTRAP2: -3.4 to -2.2 (in 0.1 intervals)

DTRAP3: -2 to -0.4 (in 0.1 intervals)

KvTab: 10, 20, 50, 100

SORW: 0.18, 0.21, 0.24, 0.27

krwiro: 0.4 to 0.8 (in 0.1 intervals)

krocw: 0.7 to 1 (in 0.1 intervals)

FreqFacSurf: 0.06, 0.08, 0.1, 0.15, 0.2 freqfacpoly: 0.01 to 0.1 (in 0.01 intervals)

11. In the Objective Function screen, add a new objective function and name it CumSurf. For the objective function term, the Origins = WELLS, Origin Name = PRODN, Property = Cumulative

Water Mass (Surfact) SC.

Add 2 more objective functions, one for cumulative polymer and one for cumulative alkaline by repeating the process above.

Finally, the end date for all the objective function terms need to be changed to

2006-01-06T21:13:03.

12. In the Results Observers section, click the import button and add new plots of cumulative surfactant, cumulative alkaline and cumulative polymer.

(35)

Exercise #4 Add Shear Dependence Viscosity

1. Using the table below, calculate the velocity from the shear rate by using the following equation:

10066 * * * * * SRF Sl kr k SR

where v = velocity (cm/sec) SR = shear rate (1/sec)

K = Absolute Permeability in Darcy = 2.591 D = Porosity (factor) = 0.2494

Sl = fractional liquid saturation SRF = C*((3n+1)/4n)^((n-1)/n)

where n =shear thinning power exponent (default = 0.5) C = constant value (usually equal to 6

Shear

Rate 1/S

Slug viscosity (cp) Velocity

cm/sec Velocity m/day 500ppm Polymer 1000ppm Polymer 1500ppm Polymer 0.6624 5.2 7 10 1.10206E-05 0.009522 6.624 4.8 5 9.2 0.000110206 0.095218 66.24 3.2 3.8 6.1 0.001102057 0.952177

2. Next, the polymer viscosity required to achieve the viscosities in the table above must be calculated using the STARS mixing rule:

3. ln

 

 

ln

 

ui fxi

where = phase viscosity

= viscosity of component i

= non-linear function for mole fraction of component i

a) First we'll need to scale the fxi factor according to the mole fraction of polymer injected

VSMI XFUN C 0 0.141793 0.283587 0.425236 0.483117 0.54105 0.626499 0.711947 0.797396 0.882844 0.968293 x 0 2.254470E-07 4.508940E-07 6.763410E-07 9.017880E-07 1.127235E-06 1.352682E-06 1.578129E-06 1.803576E-06 2.029023E-06 2.254470E-06

Since we are injecting at a polymer mole fraction of 1.12862e-6, we can see that the mixing function is somewhere between 0.54105 and 0.6265. To calculate the actual

(36)

Linear interpolation factor = (1.12862e-6-1.1272e-6)/(1.35286e-6 - 1.1272e-6) = 0.00614 new fxi = 0.00614 * (0.6265-0.54105)+0.54105 = 0.54157

b) Then calculate the R ratio. This ratio calculates the nonlinear mixing function fx for the non-polymer components.

R ratio = ( 1-0.54157)/(1-1.12862e6) = 0.45843

c) Now, calculate the polymer viscosity using the following formula:

 

 

 

poly surf surf alk alk w w poly

fx

R

x

R

x

R

x

exp

ln

ln

ln

ln

Notice that the R ratio needs to be multiplied to the mole fraction of individual components to scale it to that specific mole fraction.

= 5.2 uw = ualk = usurf = 0.8177 fxpoly = 0.54157 R = 0.45843 xw= 0.9994977650 xalk= 0.00045144/ xsurf = 0.00004965900

Using the numbers above, the polymer concentration should come out to be 24.89. Repeat this same calculations for the other shear rates, and the velocity versus polymer concentration should look as follow:

**Velocity Viscosity

**m/day cp

0.009522 24.89

0.095218 21.34

0.952177 9.99

Create a table using the keyword SHEARTAB and add this table to the dataset using the text editor.

(37)

The SHEARTAB will be applied to the last component specified with the VSMIXCOMP keyword so make sure that polymer is the last component specified with this keyword. Run the dataset and compare the results. Note that in the core lab flood, the velocity is constant so there will not be much effect on this. When this data is used in a field model, the injection rate will be mostly positively affected (increase injectivity due to lower viscosity).

References

Related documents

In this paper, we exploit the changes in the distribution of family income that have taken place over the past 30 years to estimate the e¤ect of parental resources on

Right Click on CCA.p7b &gt; Select install certificate &gt; click on next in the import wizard &gt; Select place all certificate in the following store &gt; click on browse

&gt; To save entries, click Apply (to configure parameters in other tabs for example) or OK (to exit the configuration dialog and save changes).

&gt; To save entries, click Apply (to configure parameters in other tabs for example) or OK (to exit the configuration dialog and save changes).. &gt; A confirmation message appears

To save your preferences and close the control panel,click Apply, and then click OK. Setting

Most personnel in the pharmaceutical industry inherit environmental monitoring programmes from the past and rarely get the opportunity to establish a programme for the

Right-click the Laterals feature class in the Water feature dataset and click Create Layer.. This opens the Save Layer As dialog box, in which you designate the location and name of

Výpis 22: Ukázka uživatelské C funkce dle konvence verze 0 (dvojnásobek) V pˇrípadˇe ukázky spojení ˇretˇezc ˚u bylo potˇreba použití specifických funkcí a konstanty,