Open OPMUSER opened 7 years ago
OK - I think the problem is that the MULTNUM
keyword is not defined; when processing COPY
records like:
COPY
'MULTNUM' 'FIPNUM' 1* 1* 1* 1* 1* 1* / CREATE FIPNUM
/
the parser expects the source keyword - i.e. MULTNUM
in this case, to be explicitly defined in the deck. This restriction makes sense IMO in the case of keywords like e.g. PERMX
where no sensible default is defined - i.e. I would consider this:
COPY
'PERMX' 'PERMY' /
/
to be a user error if the PERMX
has not been defined in the deck. However - in the case you mention there is a well defined default for the MULTNUM
keyword, and automatic creation would be a valid alternative. So all in all - yes I agree this is a bug; although quite easy to work around by either assigning values to MULTNUM
or assigning directly to FIPNUM
@joakim-hove The MULTNUM keyword is defined in the GRID section, so it should be available in the REGIONS section to duplicate Eclipse's behavior. So this is a bug as the array is defined.
I agree the work around is straight forward, but we should try to fix this if we can. Most engineers will just take their existing Eclipse decks and run them with OPM Flow to compare the results, if there are too many issues they will just give up.
The MULTNUM keyword is defined in the GRID section, so it should be available in the REGIONS section to duplicate Eclipse's behavior. So this is a bug as the array is defined.
OK - I agree. I understand what the bug is - slightly uncertain about the fix.
This: https://github.com/OPM/opm-parser/pull/1116 should have fixed the MULTNUM
issue - can you try it?
How do I to get the binary - I'm not a developer so I don't have a build system.
continuous deployment is on the road map, but it is not there right now. i can quickly build some packages for you, which platform ?
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
took a bit longer than anticipated. due to substantial changes in libecl and opm-parser since last release i had to butcher packaging somewhat. thus these packages have not gone through my usual quality control, but i think they should do the job. for this reason i did not want to push them to a ppa, we do not want others using these by accident.
note you have to remove the stable packages before install, it will NOT update cleanly (due to things above and i had to cut some corners). there is no upscaling package as that shouldn't be needed here.
i have sent a dropbox link to your gmail with the tarball.
0) sudo apt-get remove libopm libert.ecl 1) tar jxvf opm-2017.08.10.tar.bz2 2) cd opm-2017.08.10 3) sudo dpkg -i *deb
note the packages are unsigned so it may complain about that.
you will also have to manually remove these before you can reinstall the stable packages.
@qkva2: When I go to extract the tar file I get this error:
ls
opm-2017.10.08.tar.bz2
baxendale@baxendale-VirtualBox:~/Downloads$ sudo tar jxvf opm-2017.08.10.tar.bz2tar (child): opm-2017.08.10.tar.bz2: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
baxendale@baxendale-VirtualBox:~/Downloads$ pwd
/home/baxendale/Downloads
baxendale@baxendale-VirtualBox:~/Downloads$
Found it wrong filename, :-)
heh, sorry about that. doing non-norwegian dates is hard for me ;)
@akva2: I re-ran my test case with the new version as shown below:
PS1='\W\$pwd
/media/sf_Linux/OPM Flow/Pasca-A
Pasca-A$ flow PAS-P50-C55.DATA |& tee PAS-P50-C55.LOG
**********************************************************************
* *
* This is flow (version 2017.10-pre) *
* *
* Flow is a simulator for fully implicit three-phase black-oil flow, *
* and is part of OPM. For more information see: *
* http://opm-project.org *
* *
**********************************************************************
Reading the deck file 'PAS-P50-C55.DATA'
Pasca-A$ ls PAS-P50-C55.*
PAS-P50-C55.DATA PAS-P50-C55.ERR1 PAS-P50-C55.ERR2 PAS-P50-C55.ERRS PAS-P50-C55.LOG PAS-P50-C55.zip
Pasca-A$
But the run still does not run and still does not produce a PRT or DBUG file.
But the run still does not run and still does not produce a PRT or DBUG file.
OK - I must admit I thought this was more of a simulator problem than anything else; but maybe this is staill about the parser. Good if you can provide any error messages, or run flow in the debugger:
gdb flow_ebos
gdb> catch throw
gdb> run PAS-P50-C55.DATA
**********************************************************************
* *
* This is flow (version 2017.10-pre) *
* *
* Flow is a simulator for fully implicit three-phase black-oil flow, *
* and is part of OPM. For more information see: *
* http://opm-project.org *
* *
**********************************************************************
gdb> bt
Joakim, Well a little bit more information :-)
gdb flow_ebos
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from flow_ebos...(no debugging symbols found)...done.
(gdb) catch throw
Catchpoint 1 (throw)
(gdb) run PAS-P50-C55.DATA
Starting program: /usr/bin/flow_ebos PAS-P50-C55.DATA
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffec406700 (LWP 14321)]
**********************************************************************
* *
* This is flow (version 2017.10-pre) *
* *
* Flow is a simulator for fully implicit three-phase black-oil flow, *
* and is part of OPM. For more information see: *
* http://opm-project.org *
* *
**********************************************************************
Reading the deck file 'PAS-P50-C55.DATA'
[Thread 0x7ffff7fc4740 (LWP 14317) exited]
Program terminated with signal SIGKILL, Killed.
The program no longer exists.
(gdb) bt
No stack.
(gdb) q
Pasca-A$
Reading the deck file 'PAS-P50-C55.DATA' [Thread 0x7ffff7fc4740 (LWP 14317) exited] Program terminated with signal SIGKILL, Killed.
OK - that was really brutal - can you share the input deck PAS-P50-C55
with me in some way?
Yep, I thought you might say that. Unfortunately, I cannot share the model as it is a client's model and I'm under a CA.
If you know where this is happening and you wish to pursue this further, then if you put some debug in the code and send me a new version of Flow then I'll run it with the deck again. If you could write out the messages as the deck is being processed for example, then may be we can find which keywords are causing the problem and then may be I can build a test case with same issue. At the moment I have no idea what is causing this.
I am afraid it necessary to be able to reproduce the problem in order to fix it. Sharing datasets is always very challenging since they are conceived as valuable and proprietary to the owner. However, I do believe it is possible to get around it. @OPMUSER since you have already identified the offending keyword, are you able to create a dummy deck (which is unproblematic to share) based on that keyword, or combination of keywords, that reproduces the bug? Sorry to impose this burden on you, but I am afraid that will be necessary here. Moreover, such test decks are very welcome to our test-suite.
Fatal error processing COPY keyword. when trying to copy MULTNUM in REGIONS section, using the following keywords:
Note when running in parallel mode this causes a segmentation fault with no warning messages, if one then runs the same deck in serial mode one sees the message - see the attached file. PAS-P50-C55.zip