EOS2 non-convergence
I'm new to TOUGHREACT and have built a simple mesh and created a temperature and pressure gradient with INCON. Now, I am trying to run flow.inp through TOUGHREACT (EOS2) before I move to the solute.inp and chemical.inp files. When running, and depending on the solver used, TOUGHREACT either fails at the injection well I have incorporated, or at a later grid block in the mesh. I theorize it is due to my parameter configuration, the GENER block, or rock properties, though I'm stuck! I've attached my MESH, flow.inp, and INCON files and appreciate any advice.
7 replies
-
Hi,I ran your problem with TOUGHREACT v4.13 and it does run for some time, but then the time step gets small and eventually the flow fails to converge. It looks like the temperature is dropping at the injection element (A2C30), relative to the nearby grid blocks. You have not assigned an enthalpy to the CO2 so the temperatures may not be what you intended. This could make it it more difficult to converge.
A2C29 5.99999798E-02 1.00000000E-14 1.00000000E-14 1.00000000E-14
8.4279966521503E+07 1.2097975149744E+02 1.0000003383387E-01
A2C30 1.87863831E+00 1.00000000E-14 1.00000000E-14 1.00000000E-14
8.5783019180289E+07 1.0530686254681E+02 9.6232460675329E-05
A2C31 5.99993347E-02 1.00000000E-14 1.00000000E-14 1.00000000E-14
8.4763390275838E+07 1.2175870841604E+02 9.9999996368776E-02
There are also some issues regarding the flow inputs. On the second line you have a pore compressibility of 1.45e-5. This value is too high, and is usually between about 1e-8 and 1e-9. The 1.95 is crossing over two fields (dry thermal conductivity and tortuosity), so I'm not sure what it is assigning. If any gas phase develops, you will need unsaturated hydrologic properties. The starting time step should usually be 1 second or even less. Starting with a large initial time step will cause the code to keep dropping the time step. So these are just a few issues I see right away.
1.45e-5 1.95
It looks like this was set up for iTOUGH2 or TOUGH3 since TOUGHREACT does not have the field OUTPU. We have a block OUTPT, but it works differently. MOP(21) was set to "8", but TOUGHREACT does not have a solver 8, so it was reset to 3. I would set it to "5" since BICGSTB is a better solver generally. MOP(18) was set to 0 (upstream weighting), where I would usually set it to 1 (weighting at connections).
At this temperature range, I would probably use ECO2n V2, if you have the current V4.13 release of TOUGHREACT. It is better than EOS2 and the coupling with chemistry has been tested much more extensively. Now that ECO2n will go to 305C, we rarely use EOS2.
That's probably enough to start with now!
good luck,
Eric
-
Hi - Now that I look at your permeabilities I can see that this is a nearly impossible case to run. 1e-17 m^2 is an extremely low permeability for injection. This is in the range of permeability that one would try to hydrofrac, so injecting fluid into it without mechanical changes in permeability will result in unrealistically high pressures (likely outside the range of the EOS) and then would fail to converge. The other permeabilities also don't need to be quite so low to act as seals. To get this specific case to run, try increasing the pore compressibility. That will buffer the pressure increase. It's probably not realistic for such a case, but it is akin to promoting fracture poroelastic effects and increasing porosity. That might work. Good luck! Eric
-
Hi, I've updated and attached a new flow.inp that now includes the MINC block, though my initial conditions are not setting for the simulation. Is this due to the new format of the MINC generated secondary mesh, or perhaps that the original mesh doesn't include a generated interface area for heat exchange? I figure that I'll need to reformat my INCON block in some capacity. Thanks, John
-
Hi -- The flow.inp file you included has the old MESH and INCON. Regarding MINC, there will be separate files created that have a different naming of the elements, and then they must be associated to differnt rock types. The rock types you have (e.g. Trent), should be split into something like "ftren" and "mtren" and given fracture and matrix properties, and then those names assigned to the MESH. The INCON must then also have the same element names. The old mesh maker tools derived from TOUGH2 are pretty basic for doing all this. They work, but some editing is needed. Always keep the MESH, INCON, and GENER as separate files rather than in the flow.inp. When in flow.inp they are read, written out, and read in again, which can mess with the formatting and the intended values.
I noticed your PARAM block has a large Newton-Raphson criterion (1.e-1):
PARAM----1-MOP: 123456789*123456789*1234----*----5----*----6----*----7----*----8
49999 9999 24 1 5
0 3.15e7 -1. 9.81 4.0
100
1.e-1Unless you are just trying an initialization for steady-state flow, to then keep decreasing it, it should never be below about 1.e-4. Preferably 1.e-5 to 1.e-6 for the final simulations. The automatic time-stepping to infinite values is not recommended for toughreact simulations, because the timestep should be larger than the Courant limit and also because of reaction rates. The block should look something more like this:
PARAM----1-MOP: 123456789*123456789*1234----*----5----*----6----*----7----*----8
49999 9999 24 1 5
0 3.15e7 1. 3.60e3 9.81 2.0
1.e-5
I made the maximum timestep 1 hour, but that may be too small or maybe even too large for your problem -- it just depends on the injection rate, perm, etc. If you use a Courant limit RCOUR of 0.5 in solute.inp then the timestep will automatically be limited by the pore velocity.A minor issue in your ROCKS block is that the tortuosity is > 1. FOR TOUGH code tortuosity is a fraction based on a maximum of 1.0. However, it is just a multiplier in the diffusion equation, so of course it will run, and can be used to give some dispersion (maybe that's why you have it > 1?
1e-9 0.3 1.95
Eric