acroucher / PyTOUGH

A Python library for automating TOUGH2 simulations of subsurface fluid and heat flow
GNU Lesser General Public License v3.0
96 stars 36 forks source link

possible bug in read_generator with well on deliverability option #1

Closed ghost closed 12 years ago

ghost commented 12 years ago

I have a PetraSim created input file for TOUGH that I would like to use in conjunction with PyTHOUGH. However, PyTOUGH does not read all (16) of the generators specified in the input file, when the well on deliverability option is chosen in PetraSim. Instead it reads only generators 1-9 and 14-16. The GENER section of the input file looks like this:

GENER----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
 3216    1                   0     COM1        5.0  111245.0          
 4016    2                   0     COM1        5.0  111245.0          
 4816    3                   0     COM1        5.0  111245.0          
 5616    4                   0     COM1        5.0  111245.0          
 6416    5                   0     COM1        5.0  111245.0          
 7216    6                   0     COM1        5.0  111245.0          
 8016    7                   0     COM1        5.0  111245.0          
 8816    8                   0     COM1        5.0  111245.0          
 3231    9                   8     DELV    5.0E-1131000000.0      25.0
 4031   10                         DELV    5.0E-1131000000.0      25.0
 4831   11                         DELV    5.0E-1131000000.0      25.0
 5631   12                         DELV    5.0E-1131000000.0      25.0
 6431   13                         DELV    5.0E-1131000000.0      25.0
 7231   14                         DELV    5.0E-1131000000.0      25.0
 8031   15                         DELV    5.0E-1131000000.0      25.0
 8831   16                         DELV    5.0E-1131000000.0      25.0

When the "LTAB" value (under 3) for element 3231 is changed from 8 to 0 or 1 all generators are read. When this value is set at 2-4 then 2 generators are missing and when set at 5-8 then 4 generators are missing.

I've looked at the TOUGH2 user manual and I think the input file is set up correctly, but should the error exist in the input file I apologize!

p.s. Thanks for the work on this code, I think it will be great for my project!

acroucher commented 12 years ago

hello,

Thanks for that- yes, there was a bug there in read_generator() and write_generator() for DELV generators with LTAB>1. It was expecting extra input lines for LTAB>1, as is the case for other generator types.
I didn't realise DELV worked differently.

We don't really use DELV much here at Auckland, as we mainly use AUTOUGH2 which has a range of other generator types we have added ourselves. However I just tested PyTOUGH on the TOUGH2 example problem 'rfs2' and it seems to work OK now.

Does this solve your problem? If so, let me know and I'll close the issue.

Thanks for using PyTOUGH. I'd appreciate it if you could cite one of my papers on it if you are writing a report/ paper/ thesis- see https://github.com/acroucher/PyTOUGH/wiki/Articles .

Regards, Adrian

On 24/03/12 01:23, ldoddema wrote:

I have a PetraSim created input file for TOUGH that I would like to use in conjunction with PyTHOUGH. However, PyTOUGH does not read all (16) of the generators specified in the input file, when the well on deliverability option is chosen in PetraSim. Instead it reads only generators 1-9 and 14-16. The GENER section of the input file looks like this:

GENER----1----*----2----*----3----*----4----*----5----*----6----*----7----*----8
  3216    1                   0     COM1        5.0  111245.0
  4016    2                   0     COM1        5.0  111245.0
  4816    3                   0     COM1        5.0  111245.0
  5616    4                   0     COM1        5.0  111245.0
  6416    5                   0     COM1        5.0  111245.0
  7216    6                   0     COM1        5.0  111245.0
  8016    7                   0     COM1        5.0  111245.0
  8816    8                   0     COM1        5.0  111245.0
  3231    9                   8     DELV    5.0E-1131000000.0      25.0
  4031   10                         DELV    5.0E-1131000000.0      25.0
  4831   11                         DELV    5.0E-1131000000.0      25.0
  5631   12                         DELV    5.0E-1131000000.0      25.0
  6431   13                         DELV    5.0E-1131000000.0      25.0
  7231   14                         DELV    5.0E-1131000000.0      25.0
  8031   15                         DELV    5.0E-1131000000.0      25.0
  8831   16                         DELV    5.0E-1131000000.0      25.0

When the "LTAB" value (under 3) for element 3231 is changed from 8 to 0 or 1 all generators are read. When this value is set at 2-4 then 2 generators are missing and when set at 5-8 then 4 generators are missing.

I've looked at the TOUGH2 user manual and I think the input file is set up correctly, but should the error exist in the input file I apologize!

p.s. Thanks for the work on this code, I think it will be great for my project!


Reply to this email directly or view it on GitHub: https://github.com/acroucher/PyTOUGH/issues/1

Dr Adrian Croucher Department of Engineering Science University of Auckland New Zealand tel 64-9-373-7599 ext 84611

ghost commented 12 years ago

Hi again,

Thank you for addressing this issue so soon, it does indeed fix the problem I had. Also the write_generator() function seem to work correctly, as I verified PyTOUGH now gives the same results as running TOUGH2 trough my PetraSim model, even after doing a clear_generators() and redefining the generators all over with PyTOUGH.

I will certainly refer to your articles in my report, at least for mentioning its goal and capabilities. However I'm not sure yet if I will be using PyTOUGH extensively myself, since I am new to Python and I found that PyTOUGH has a somewhat tall learning curve compared to PetraSim, which I have readily available. For parallel simulation and sensitivity analysis PyTOUGH is still very appealing to me, but I'll have to try and assess the cost vs. benefit first before I dive too deep into it.

Thanks again for the quick reply and the useful code.

L Doddema University of Groningen The Netherlands

acroucher commented 12 years ago

hello,

Thank you for addressing this issue so soon, it does indeed fix the problem I had.

Great. As a result, I've closed the issue.

Also the write_generator() function seem to work correctly, as I verified PyTOUGH now gives the same results as running TOUGH2 trough my PetraSim model, even after doing a clear_generators() and redefining the generators all over with PyTOUGH.

I will certainly refer to your articles in my report, at least for mentioning its goal and capabilities. However I'm not sure yet if I will be using PyTOUGH extensively myself, since I am new to Python and I found that PyTOUGH has a somewhat tall learning curve compared to PetraSim, which I have readily available. For parallel simulation and sensitivity analysis PyTOUGH is still very appealing to me, but I'll have to try and assess the cost vs. benefit first before I dive too deep into it.

Fair enough :-) I am writing a PyTOUGH tutorial to help people learn it:

https://github.com/acroucher/PyTOUGH/wiki/PyTOUGH-Tutorial

but it is only partly finished at present. Still, what is there might be useful to you. You can also email me with questions.

Regards, Adrian

Dr Adrian Croucher Department of Engineering Science University of Auckland New Zealand tel 64-9-373-7599 ext 84611