OPM / opm-simulators

OPM Flow and experimental simulators, including components such as well models etc.
http://www.opm-project.org
GNU General Public License v3.0
121 stars 121 forks source link

Convergence Changes between 2019.10 and 2020.04/2020.10 #2948

Open dabiged opened 3 years ago

dabiged commented 3 years ago

Hi All,

I have been working with discovervolve looking into convergence issues with Equinor's Volve simulation. I have discovered that the simulation deck from https://github.com/dabiged/Volve2OPM WILL converge for 2019.10, but will not converge for 2020.04 or 2020.10 releases.

Can someone give me some guidance as to why the convergence behavior has changed between 2019.10 and 2020.04 and is still different in 2020.10?

I am happy to run additional diagnostics if required.

Steps for recreating the issue are below:

Installation setup

I have installed the last 3 releases of OPM using the following script (changing only the version variable). This is heavily based on the installation script suggested in the OPM documentation.

#!/bin/bash

Version="2020.10" 
for repo in opm-common opm-material opm-grid opm-models opm-simulators opm-upscaling
do
    echo "=== downloading and building module: $repo"
    wget https://github.com/OPM/$repo/archive/release/$Version/final.tar.gz
    tar -xzvf final.tar.gz
    \rm final.tar.gz
    mv ${repo}-release-${Version}-final $repo
    mkdir $repo/build
    cd $repo/build
    cmake ..
    make -j 6
    cd ../..
done

I have then set bash Aliases to the various flow versions thus:

$ cat ~/.bashrc
...
# opm
alias flow201910=/opt/opm/flow/2019.10/opm-simulators/build/bin/flow
alias flow202004=/opt/opm/flow/2020.04/opm-simulators/build/bin/flow
alias flow202010=/opt/opm/flow/2020.10/opm-simulators/build/bin/flow
...

Simulation deck

I have created a new branch of the Volve2OPM repo called 50daytest. This is the original Volve2OPM simulation, capped at the first 50 days.

Results:

I have then attempted to simulate this quite simple deck using the last 3 releases of OPM

2019.10

Code to replicate:

git clone https://github.com/dabiged/Volve2OPM.git
cd Volve2OPM
git checkout 50daytest
flow201910 VOLVE_2020.DATA

This simulation completes successfully. Results are attached as 201910.zip

2020.04

git clone https://github.com/dabiged/Volve2OPM.git
cd Volve2OPM
git checkout 50daytest
flow202004 VOLVE_2020.DATA

This simulation fails to converge on the first time step and ultimately exits with an error.

Error: Solver failed to converge after cutting timestep 10 times.
Program threw an exception: [/opt/opm/flow/2020.10/opm-simulators/opm/simulators/timestepping/AdaptiveTimeSteppingEbos.hpp:511] Solver failed to converge after cutting timestep 10 times.

Results are attached as 202004.zip

2020.10

git clone https://github.com/dabiged/Volve2OPM.git
cd Volve2OPM
git checkout 50daytest
flow202010 VOLVE_2020.DATA

This simulation fails to converge, with the same error message as with the above on the first time step. Results are attached as 202010.zip

discover-volve commented 3 years ago

Convergence failure is a serious issue that I face with the current release of OPM Flow. I had also raised a query where I tried running a different version of the Volve simulation deck. An issue, #2915 , was also raised to highlight the problem.

alfbr commented 3 years ago

Convergence failure is a serious issue that I face with the current release of OPM Flow.

I am afraid we still have a number of cases getting our focus on numerical performance. You can explore these issues on you own though. Running "flow -h" will expose the numerical tuning parameters for you, including defaults. Allowing you to see what changed between releases.

dabiged commented 3 years ago

Thanks for the suggestion @alfbr . I will have a look at how the tuning parameters have changed between the version and report back.