1

How to inject CO2 using eos2

Hi.

I want to inject CO2 of 1000 ton/day and H2O of 2400 ton/day into model domain (1.5* 10 km) using EOS2. 

Following advice in https://tough.forumbee.com/t/h48y30, I surely set two types of GENER separately, i.e., for water, type=WATE, gx=2700*1000 J/kg (350 degree at injection depth), and i.e., for CO2, type=COM2, gx=797*1000 J/kg (350 degree at injection depth). However, it ended in convergence failure soon.

I attach input and output files.

I appreciate if anyone let me know insufficient points in my parameter settings.

regards.

2 replies

null
    • Curt_Oldenburg
    • 4 yrs ago
    • Reported - view

    Dear Shohei,

    I think the problem may be that your specification of enthalpy of injected water and CO2 become inaccurate as the injection occurs because the heat capacity of water and CO2 change as the P-T changes.  The trick to injecting anything at a specified temperature is to inject the component(s) into a grid block whose temperature will never change and then connect this grid block to the actual grid block(s) that you want to inject into.  In this way, you will correctly control the temperature of the injectate.  Now, there may be something else going on, but please try this first and then if it still doesn't work we can look for other causes.

    So what you should do is define another rock type, call it INJ01, and give it the same properties as your dfalt rock except it should have a heat capacity of 1.e20.  Then you should add new grid blocks in the ELEME block with this rock type (INJ01) for each of the blocks you want to inject into and connect them in the CONNE block to each of the grid blocks that you want to inject into.  Add an INCON block and provide initial conditions for each of the new grid blocks, the temperature being set at 350 C.  Then in GENER, set the injections as being into these new grid blocks.  It doesn't matter what enthalpy you assign to these injectates, because the mass you inject will equilibrate thermally with the temperature in this grid block that you have set to 350 C.  Then whatever you inject into these new grid blocks will be at 350 C and flow directly into the actual blocks you want to inject into.

    One more note is that it looks like you are dealing with some high temperatures and pressures and you may want to use ECO2N rather than EOS2.  All of the above still applies to ECO2N.  -Curt

    • Reservoir Engineer
    • Alfredo_b
    • 4 yrs ago
    • Reported - view

    In adddition to the considerations made by Curt about the most reliable way to inject a mixture at a fixed temperature, I would add something about the specific problem illustrated by Shohei.

    INCON for all the elements are P,T,PCO2:

    1.01325000000000e+05 1.00000000000000e+01 

    i.e.: atmospheric pressure, 10°C, and PCO2=0.

    Thus, the system is not at equilibrium, and  the P should quickly equlibrate due to gravity. A steady-state solution should be obtained before trying to inject any fluid.

    I added PCO2=100 Pa, just to avoid no CO2 at all in all grid blocks.

    1.01325000000000e+05 1.00000000000000e+01               100.0

    I tried to run with the standard EOS2 (TOUGH2 V.2.0) and I got almost the same results shown by Shohei. The problem is that we try to inject a mixture of steam and CO2 with a very high concentration of the latter =1000/(2400+1000)=0.294, which is a huge amount of CO2 giving for sure a very high PCO2 in the injection elements likely to be outside the capabilities of EOS2.

    In addition, the mixture is injected in elements initially at 10°C. Depending on the T-PCO2 path, the evolving non-aqueous CO2-rich phase could correspond to a gas phase (if T>Tcrit CO2) or to a liquid CO2 phase (T<Tcrit CO2).

    I then tried to run with the EOS2 module now used by the Petrasim version of TOUGH2 (Battistelli et al., 2017, Stanford Workshop). This version has some additional capabilities as shown below:

     **********************************************************************

     THE PRIMARY VARIABLES ARE
      P - PRESSURE         T - TEMPERATURE         PCO2 - CO2 PARTIAL PRESSURE         S - GAS PHASE SATURATION

     ___________________________________________________________________________

         PHASE CONDITION               PRIMARY VARIABLES
     ___________________________________________________________________________

         SINGLE-PHASE GAS                P, T, PCO2.

         SINGLE-PHASE LIQUID          P, T, PCO2    or   P, T,  -XCO2L.

         TWO-PHASE                            P, S, PCO2    or   T, SG,   PCO2.

     ___________________________________________________________________________


      **********************************************************************
     *                           ARRAY *IE*  ALLOWS TO MAKE CHOICES AMONG DIFFERENT EOS OPTIONS                                        *
     **********************************************************************

        IE(1)  = 2: *** NUMBER OF ADDITIONAL RECORDS READ IN DATA BLOCK SELEC.

        IE(2)  = 0: *** AQUEOUS PHASE DENSITY DEPENDENCE ON DISSOLVED CO2 CONTENT.
               = 0: no dependence (default).
               > 0: following Garcia (2001) & Hnedkovsky (1996)

        IE(3)  = 0: *** DENSITY OF CO2.
               = 0: Plank-Kuprianoff by Sutton (1976) (default).
               > 0: Peng and Robinson cubic EOS(1976)

        IE(4)  = 0: *** ALLOWS TO USE POYNTING CORRECTION  FOR CO2 SOLUBILITY IN THE AQUEOUS PHASE.
               = 0: POYNTING OFF (default).
               = 1: POYNTING ON.

        IE(7)  = 0: *** OPTIONAL PRINTOUT OF SUMMARY BALANCES FOR VOLUME, MASS, AND ENERGY AFTER EACH CONVERGED CYCLE
               = 0: no printout (default).
               > 0: printout on file BALAN.


        FE(8)  =0.: *** ALLOWS computing non-existing phase properties.
               = 0: no calculation (DEFAULT).
               = 1: calculate non-existing gas phase properties.
               = 2: calculate non-existing gas and aqueous phase properties.

        FE(9)  =1.: *** ALLOWS to force at least 1 NR iteration.
               = 0: (DEFAULT).
               > 0: at least 1 NR iteration.

        FE(12) =1.: *** ALLOWS CHOICE OF CORRELATIONS FOR  WATER AND STEAM PROPERTIES.
               = 0: IFC67 (DEFAULT).
               = 1: IAPWS-IF97 Saipem SpA.

        FE(13) =0.: *** ALLOWS USING 20 COLUMNS FORMAT FOR  GEOMETRICAL PARAMETERS IN ELEME, CONNE & MINC.
               = 0: USE 10 COLUMN FORMAT (DEFAULT).
               > 0: USE 20 COLUMN FORMAT.

        FE(24) =    0.: *** ALLOWS WRITING SAVE FILE ANY FE(24) TIME STEPS.
               = 0: no additional SAVE file writing (DEFAULT).
               > 0: write file SAVE any FE(24) time steps.

     **********************************************************************

    I first tried IE(4)=1 using a Poynting correction to estimate more reasonable CO2 solubility values at high PCO2. The original Henry's approach just computes a linear relationship between PCO2 and CO2 solubility at any given T, supplying unrealistic  high solubilities at high PCO2.

    The run was going on, but when the first gas phase appears (at T of about 48°C, i.e. above the CO2 Tcrit) the Plank-Kuprianoff correlation for the CO2 density gives negative values, and the run eventually stop with reducing time steps.

    This is because the Plank-Kuprianoff correlation for CO2 density has limitations at very high PCO2 and low T.

    Then I added IE(3)=1 to use the Peng Robinson cubic EOS to compute the CO2 density. With this change the run goes on with the appearance of a gas phase rich in CO2 and increasing T in the injection blocks. I just ran 3000 time steps. The temperature in the injection blocks raises to about 322°C, due to the high enthalpy of injected fluids. The output file (inp1_PR_Poynting.out) is attached.

    Thus, the main issue in Shohei's problem seems to be the challenging conditions to be simulated with EOS2 when injecting a high temperature, high CO2 content mixture. 

    As already suggested by Curt, these conditions require ECO2N V.2.0.

    The EOS2 version available with Petrasim (starting with Version 2017) seems to be able to proceed with the simulation, but the reliability of results should be carefully evaluated.

    Regards,

    Alfredo

Content aside

  • 1 Likes
  • 4 yrs agoLast active
  • 2Replies
  • 349Views
  • 3 Following