Gridblocks to represent sink and source
Hello all.
I want to assign two vertical wells (137 layers) at the opposite end of my I dimension. I am stuck getting error messages trying to use GENER block’s NAD and NADS. I want to use a simple model to represent the wells with constant pressure and flow rate.
10 replies
-
I think you want one well to be constant flow rate (an injection well) and the other well to be constant pressure (a production well), is that right? One possibility is to specify one mass source in GENER at the top of the injection well, and assign all elements right below it a high vertical permeability (at least 1000 times higher than your reservoir permeability). Then the injected fluid will easily move down the well and then distribute itself out into the reservoir (I do this all the time - it may take a little trial and error to get a good vertical permeability). For the production well, you can maintain constant pressure at the top by specifying a huge volume (1.E30 m3), and make sure vertical permeability in the underlying elements is big enough to readily communicate with the top element (I have never tried this, as I usually specify production wells with a mass flow rate with the GENER block, but I think it should work. Again, you may need trial and error to get a good vertical permeability).
If you really want to specify a mass flow rate at every element (this is actually a slightly different problem physically than what I described above), please post the GENER block that is giving you error messages, and I will take a look at it.
-
Christine Doughty
Yes at the injector, the injection rate is 21kg/s and pressure is below formation pressure of 14.8MPa and producer is producing at BHP of 4.5MPa.
Pls find attached my input file.
Thank you for your continuous help.
-
Dear Mahmud,
At first I thought that the entries in the GENER block in your input file were just in the wrong columns. Here is what I thought it should look like:
GENER A2R00Inj01 144 76 1 COM1 2.165E+01 A2R75Pro01 144 76 1 MASS -8.30E-00
Note that the 144, 76, and 1 end in columns 15, 20, and 25, respectively, and that columns 26-30 are blank. The strings COM1 and MASS are in columns 36-40 and the rates are in columns 41-50. I changed the 74 to a 76 because I think for each layer of your grid there are 76 elements, so to pick out all the elements in a single column, you need to add 76. But then I checked the source code and the structure of your MESH file, and this will NOT work the way you want it to. The algorithm just adds 76 to the last two characters of the element name (which should be numbers) so A2R00 becomes A2R76. But in your grid the next element you want to be a source is A2S00. So I think you need to specify all 144 injection and 144 production elements individually in GENER. Maybe you can write a script to prepare this input, so you don't have to do it by hand. And remember, if you want a total injection rate of 21.65 kg/s, you need to specify 21.65/144=0.1503 kg/s for each one, and if you want a total production rate of -8.3 kg/s, you need to specify -8.3/144=-0.0576 kg/s for each one.
But also note that the production will be a constant mass rate , not production with a fixed BHP. If you want to specify production with fixed BHP, you should not have any production elements in GENER. Put A6Q75 (the deepest WellB element) in INCON with the desired BHP of 4.5E6 Pa (and other appropriate state variables). Then in ELEME, make the volume of A6Q75 huge (~1.e30 m3) so that the initial state variables specified in INCON will never change. Then use the data block INTERFACES to keep track of the production flow rate (see TOUGH+ manual for instructions on how to do this) .
If any actual TOUGH+ users are reading here, please check my advice, since I do not use TOUGH+.
-
Christine Doughty
Thank you very much for your help. i will try all your suggestions
-
Christine Doughty
Pls help me check if the spacings are right in the GENER file. I use the same flowrate in injector as well as producer. Just like you suggested i distribute the flow rate equally in all the elements.
If i understand you correctly, using flow rate means i cant control the BHP? Since my simulation rely on controlling the BHP of both producer and injector for gas production by pressure drop and also keeping the injection pressure below hydrate stability pressure, should i use your second suggestion only?
That means to control both pressure at producer and injector i dont need to assign anything at GENER BLOCK just the INCON of bottommost element at well A and B and changing their elements volumes at ELEMENT?
My Question is how will i inject fluids at injection well or is the pressure control only applicable to producer and the injector specified at GENER?
-
There are a few problems with your GENER file:
1. A blank line means you are all finished reading GENER, so move the one you have now near the top of the file to the end.
2. The words MASS and COM3 should start in column 36 and end in column 39 (sorry I gave you bad advice before - I said 36-40, forgetting that the words are only 4 characters long).
3. The source names in columns 6-10 must be unique, and the final two columns (9&10) must be numbers. I suggest Inj01, Inj02, ..., Inj99, Ink01, Ink02... for the injectors and Pro01, Pro02, ..., Pro99, Prp01, Prp02, ...for the producers. But you can pick anything you want if you follow those rules.
Now the bigger question, do you really want constant-rate injection and production? If you specify a constant rate, the code will calculate the pressure change in the element - you cannot hold it fixed. Basically, either you specify the rate and TOUGH calculates the pressure, or you specify the pressure and TOUGH calculates the rate. You have to think carefully about what is happening in the actual problem in order to set up TOUGH correctly.
If you want to produce by virtue of a constant BHP, then you are correct that there should be no production entries in GENER. The code will adjust the production rate as needed according to your specified BHP and the rest of the pressures it calculates. This is a very common thing to do.
Now for injection, you have to think if specifying fixed a BHP greater than reservoir pressure is the right thing. It might be that that is the way things work. A good question is, do you know what BHP pressure to use for injection? If you do, then set BHP in INCON and then there will be no injection entries in GENER. Maybe the goal is to be close to, but just below, the hydrate stability pressure, so you could set BHP as some factor like 0.9 times hydrate stability pressure. Or, it might be that a fixed injection rate is used, and the pressure is monitored to make sure pressure stays below the hydrate stability pressure, with the injection rate being reduced if pressure gets too big. Then, you should do the same thing in the model. Put injection rates in GENER, and watch the pressure in the injection elements frequently. If you go over the pressure limit, stop the code, and restart it with a smaller injection rate.
I actually have a problem with a heater, where temperature is supposed to reach a certain value at some monitoring points, and I run TOUGH in 1-day segments, checking temperature at the end of each day, and modifying the heat source for the next day's segment. This required a lot of effort to set up scripts to run TOUGH, then check temperatures, then reset heater strength. But it does work. And since the monitoring points and the heater are not in the same place, I could not think of any other way to do it. But for your problem, the maximum pressure and the injection occur in the same element, so if the design is to always have injection pressure just below hydrate stability pressure, it is much simpler just to set BHP to that value and let TOUGH figure out the injection rate to use.
I hope this all makes sense! Good luck and feel free to sent me your input file to check.
-
Christine Doughty
Here is my input file.
Am afraid it still not running.