OPM/opm-autodiff — pull request #243 by joakim-hove (2014-11-26 14:20:27+00:00)
Title: Init check

The starting point of this PR was to investigate the problems with MULTREGT. Various debugging measures and also communication with @totto82 might indicate that there is nothing wrong with MULTREGT?

The current PR consists 100% new code, and the code comes in two parts:

1. A cpp application `opm_init_check` which reads the ECLIPSE.DATA and loads already existing binary files ECLIPSE.INIT and ECLIPSE.EGRID. The program will then build a simple internal datastructure for the transmissibility graph - this graph is serialized to json.
2. A Python class `TransGraph` which bootstraps from the json dump created by the previous application, and then can be used for interactive or scripted comparisons.

I realize the python code will be controversial, and I am not going to fight (very) hard for it's inclusion. But I would encourage you to try it out, as I see it the main advantage is the ability to combine interactive exploration with scripted tests. To actually implement the one-size-fits-all perfect comparison tool in cpp was a quite daunting task. In the future it would be natural to extend the `opm_init_check` to perform further tests of e.g. petrophysical properties.

Running some small tests I have found the following results:

1. Opm has a total of 28975 NNC whereas Eclipse has 11363 - that is a quite significant difference?
2. Scanning the Z transmissibility with `TransGraph.getZTrace() reveals quite large (i.e. more than 100%) differences between OPM and Eclipse in *some* layers - for some i,j.