OPM / opm-tests

Data sets intended for integration and regression testing reservoir simulations
29 stars 59 forks source link

Tests CO2STORE_ENERGY and CO2STORE_AQU fail in Flow 2021.10 on WSL2 #726

Closed lrijkels closed 2 years ago

lrijkels commented 2 years ago

Thanks for another fantastic expansion of OPM-Flow's capabilities! CO2STORE is brilliant. However, when I try to run the test case CO2STORE_ENERGY in Flow 2021.10 on WSL2, it says:

flow: /build/opm-simulators-9Blz1A/opm-simulators-2021.10-rfinal/opm/simulators/wells/StandardWell_impl.hpp:50: Opm::StandardWell<TypeTag>::StandardWell(const Opm::Well&, const Opm::ParallelWellInfo&, int, const typename Opm::StandardWell<TypeTag>::Base::ModelParameters&, const typename Opm::StandardWell<TypeTag>::Base::RateConverterType&, int, int, int, int, const std::vector<Opm::PerforationData>&) [with TypeTag = Opm::Properties::TTag::EclFlowEnergyProblem; typename Opm::StandardWell<TypeTag>::Base::ModelParameters = Opm::BlackoilModelParametersEbos<Opm::Properties::TTag::EclFlowEnergyProblem>; typename Opm::StandardWell<TypeTag>::Base::RateConverterType = Opm::RateConverter::SurfaceToReservoirVoidage<Opm::BlackOilFluidSystem<double>, std::vector<int> >]: Assertion `this->num_components_ == numWellConservationEq' failed.
[XPS:00166] *** Process received signal ***
[XPS:00166] Signal: Aborted (6)
[XPS:00166] Signal code:  (-6)
[XPS:00166] [ 0] /lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0)[0x7fb307dae3c0]
[XPS:00166] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7fb306c5e18b]
[XPS:00166] [ 2] /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7fb306c3d859]
[XPS:00166] [ 3] /lib/x86_64-linux-gnu/libc.so.6(+0x25729)[0x7fb306c3d729]
[XPS:00166] [ 4] /lib/x86_64-linux-gnu/libc.so.6(+0x36f36)[0x7fb306c4ef36]
[XPS:00166] [ 5] flow(+0x301585)[0x560c3bca0585]
[XPS:00166] [ 6] flow(+0x301687)[0x560c3bca0687]
[XPS:00166] [ 7] flow(+0x301aed)[0x560c3bca0aed]
[XPS:00166] [ 8] flow(+0x312e56)[0x560c3bcb1e56]
[XPS:00166] [ 9] flow(+0x31ab8b)[0x560c3bcb9b8b]
[XPS:00166] [10] flow(+0x33348e)[0x560c3bcd248e]
[XPS:00166] [11] flow(+0x335eee)[0x560c3bcd4eee]
[XPS:00166] [12] flow(+0x29d93b)[0x560c3bc3c93b]
[XPS:00166] [13] flow(+0x117a1f)[0x560c3bab6a1f]
[XPS:00166] [14] flow(+0xb71ad)[0x560c3ba561ad]
[XPS:00166] [15] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7fb306c3f0b3]
[XPS:00166] [16] flow(+0x10c3fe)[0x560c3baab3fe]
[XPS:00166] *** End of error message ***
Aborted

The other tests cases work fine, apart from CO2STORE_AQU. That ends in:

flow: /usr/include/opm/material/fluidsystems/BlackOilFluidSystem.hpp:1328: static short int Opm::BlackOilFluidSystem<Scalar, IndexTraits>::canonicalToActivePhaseIdx(unsigned int) [with Scalar = double; IndexTraits = Opm::BlackOilDefaultIndexTraits]: Assertion `phaseIsActive(phaseIdx)' failed.
[XPS:00253] *** Process received signal ***
[XPS:00253] Signal: Aborted (6)
[XPS:00253] Signal code:  (-6)
[XPS:00253] [ 0] /lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0)[0x7fd389d103c0]
[XPS:00253] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7fd388bc018b]
[XPS:00253] [ 2] /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7fd388b9f859]
[XPS:00253] [ 3] /lib/x86_64-linux-gnu/libc.so.6(+0x25729)[0x7fd388b9f729]
[XPS:00253] [ 4] /lib/x86_64-linux-gnu/libc.so.6(+0x36f36)[0x7fd388bb0f36]
[XPS:00253] [ 5] flow(+0x5479cb)[0x55eb930b59cb]
[XPS:00253] [ 6] flow(+0x587d9a)[0x55eb930f5d9a]
[XPS:00253] [ 7] flow(+0x588574)[0x55eb930f6574]
[XPS:00253] [ 8] flow(+0x5887af)[0x55eb930f67af]
[XPS:00253] [ 9] flow(+0x4d2382)[0x55eb93040382]
[XPS:00253] [10] flow(+0x115062)[0x55eb92c83062]
[XPS:00253] [11] flow(+0x1174f3)[0x55eb92c854f3]
[XPS:00253] [12] flow(+0xb71ad)[0x55eb92c251ad]
[XPS:00253] [13] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7fd388ba10b3]
[XPS:00253] [14] flow(+0x10c3fe)[0x55eb92c7a3fe]
[XPS:00253] *** End of error message ***
Aborted

Note: the AQUCT version works fine. I also tried to implement the energy keywords in other DATA files, but with similar eror messages. Single versus multi-core made no difference.

Thanks and regards, Lex Rijkels

totto82 commented 2 years ago

Thank you for reporting the issue. I am able to reproduce it using Flow 2021.10 from the binary packages. Fortunately, these issues are already fixed in the master version. If you need the energy or the aquifer combination you will need to either update to current master or wait for the next release.

lrijkels commented 2 years ago

That's great, thanks a lot for the quick reply. I did notice one other curious thing with the CO2STORE files:

totto82 commented 2 years ago

Adding DISGAS changes the flow significantly as density driven fingers starts developing. You will expect the run time to go up. As DISGAS assumes instant mixing it will over estimate the dissolution of CO2 in brine for large cells. DTSDTCON is a mechanism to control the dissolution assuming a CO2-brine convective dissolution process. But be aware that there is a significant bug in the release version. The reference density was left out in some trivial refactoring resulting in a factor 1000 reduction of the value. This was fixed in https://github.com/OPM/opm-simulators/pull/3727 You can still use the release version but than you need to multiply the value in DRSDTCON with the reference density of brine i.e. approx 1000. That also explains the speed up. i.e. without the factor 1000 the dissolution will practically be zero when using DRSDTCON. Sorry for exposing you to several bugs and thanks for reporting them! Please continue to do so if you continue to experience something unexpected either in performance or in the results.

lrijkels commented 2 years ago

Aha! That explains the observation that DRSDTCON did not seem to have much effect in my runs. Thanks for the fix. I am running with a larger value now. I think the addition of the CO2STORE module and all the associated options is brilliant, so I'll keep testing it.