diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 52832ca..065851a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -9,23 +9,17 @@ on: jobs: run-expreccs-local: timeout-minutes: 60 - strategy: - fail-fast: false - matrix: - python-version: ['3.11'] - os: [ubuntu-latest] - - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - - name: Set up Python ${{ matrix.python-version }} + - name: Set up Python 3.11 uses: actions/setup-python@v2 with: - python-version: ${{ matrix.python-version }} + python-version: 3.11 - name: Install Flow Simulator run: | @@ -57,7 +51,7 @@ jobs: - name: Run the tests run: | - pytest --cov=expreccs --cov-report term-missing tests/ + pytest -x --cov=expreccs --cov-report term-missing tests/ - name: Build documentation run: | diff --git a/.gitignore b/.gitignore index bfe8441..700ca03 100644 --- a/.gitignore +++ b/.gitignore @@ -161,23 +161,6 @@ results cssr # Extra files +tests/output regional_rpr-3.png reference_sgas_i,j,1_t90.png -/tests/regional/FIPNUM_EXPRECCS.INC -/tests/regional/OPERNUM_EXPRECCS.INC -/tests/regional/REGIONAL.DBG -/tests/regional/REGIONAL.EGRID -/tests/regional/REGIONAL.ESMRY -/tests/regional/REGIONAL.INIT -/tests/regional/REGIONAL.PRT -/tests/regional/REGIONAL.SMSPEC -/tests/regional/REGIONAL.UNRST -/tests/regional/REGIONAL.UNSMRY -/tests/site/SITE.DBG -/tests/site/SITE.EGRID -/tests/site/SITE.ESMRY -/tests/site/SITE.INIT -/tests/site/SITE.PRT -/tests/site/SITE.SMSPEC -/tests/site/SITE.UNRST -/tests/site/SITE.UNSMRY diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..a49521c --- /dev/null +++ b/.pylintrc @@ -0,0 +1,2 @@ +[MASTER] +disable=R0801 diff --git a/docs/_sources/installation.rst.txt b/docs/_sources/installation.rst.txt index 783711c..545acd3 100644 --- a/docs/_sources/installation.rst.txt +++ b/docs/_sources/installation.rst.txt @@ -6,6 +6,18 @@ The following steps work installing the dependencies in Linux via apt-get or in While using package managers such as Anaconda, Miniforge, or Mamba might work, these are not tested. The supported Python versions are 3.11 to 3.14. +`ResInsight `_ and `plopm `_ can be used for the visualization of the results. + +.. note:: + + There are binary packages for Linux and Windows to install Resinsight, see the `ResInsight Documentation `_. For macOS users, you could try to install it using `brew `_ by executing: + + .. code-block:: bash + + brew install cssr-tools/opm/resinsight + + Then, you should be able to open resinsight by typing in the terminal **resinsight**. + .. _vexpreccs: Python package @@ -43,12 +55,27 @@ install the Python requirements in a virtual environment with the following comm Typing **git tag -l** writes all available specific versions. +.. note:: + + For not macOS users, to install the (optional but recommended) dependencies used for the figure's LaTeX formatting, execute + + **sudo apt-get install texlive-fonts-recommended texlive-fonts-extra dvipng cm-super** + + For macOS users, the LaTeX dependency can be installed from https://www.tug.org/mactex/. + OPM Flow -------- You also need to install: * OPM Flow (https://opm-project.org, Release 2025.10 or current master branches) +Binary packages ++++++++++++++++ + +See the `downloading and installing `_ OPM Flow online documentation for +instructions to install the binary packages in Ubuntu and Red Hat Enterprise Linux, and for other platforms which are +supported either via source builds or through running a virtual machine. + .. tip:: See the `CI.yml `_ script @@ -86,30 +113,40 @@ in the terminal the following lines (which in turn should build flow in the fold .. _macOS: +Brew formula for macOS +++++++++++++++++++++++ +For macOS, there are no available binary packages, so OPM Flow needs to be built from source. Recently, a formula to build flow using brew has +been added in `https://github.com/cssr-tools/homebrew-opm `_. +Then, you can try to install flow (v2025.10) by simply typing: + +.. code-block:: console + + brew install cssr-tools/opm/opm-simulators + +You can check if the installation of OPM Flow succeded by typing in the terminal **flow \-\-help**. + +.. tip:: + See the actions in the `cssr-tools/homebrew-opm `_ repository. + Source build in macOS +++++++++++++++++++++ -For macOS, there are no available binary packages, so OPM Flow needs to be built from source, in addition to the dune libraries and the OPM Python -package (see the `prerequisites `_, which can be installed using macports or brew). -For example, with brew the prerequisites can be installed by: +If you would like to build the latest OPM Flow from the master branch, then you can first install the prerequisites using brew: .. code-block:: console brew install boost openblas suite-sparse python@3.14 cmake In addition, it is recommended to uprade and update your macOS to the latest available versions (the following steps have -worked for macOS Tahoe 26.1 with Apple clang version 17.0.0). -After the prerequisites are installed and the vexpreccs Python environment is created (see :ref:`vexpreccs`), -then building OPM Flow can be achieved with the following bash lines: +worked for macOS Tahoe 26.2.0 with Apple clang version 17.0.0). +After the prerequisites are installed, then building OPM Flow can be achieved with the following bash lines: .. code-block:: console CURRENT_DIRECTORY="$PWD" - deactivate - source vexpreccs/bin/activate - for module in common geometry grid istl - do git clone https://gitlab.dune-project.org/core/dune-$module.git --branch v2.9.1 + do git clone https://gitlab.dune-project.org/core/dune-$module.git + cd dune-$module && git checkout v2.10.0 && cd .. ./dune-common/bin/dunecontrol --only=dune-$module cmake -DCMAKE_DISABLE_FIND_PACKAGE_MPI=1 ./dune-common/bin/dunecontrol --only=dune-$module make -j5 done @@ -118,8 +155,7 @@ then building OPM Flow can be achieved with the following bash lines: for repo in common grid simulators do git clone https://github.com/OPM/opm-$repo.git - mkdir build/opm-$repo - cd build/opm-$repo + mkdir build/opm-$repo && cd build/opm-$repo cmake -DUSE_MPI=0 -DWITH_NDEBUG=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$CURRENT_DIRECTORY/dune-common/build-cmake;$CURRENT_DIRECTORY/dune-grid/build-cmake;$CURRENT_DIRECTORY/dune-geometry/build-cmake;$CURRENT_DIRECTORY/dune-istl/build-cmake;$CURRENT_DIRECTORY/build/opm-common;$CURRENT_DIRECTORY/build/opm-grid" $CURRENT_DIRECTORY/opm-$repo if [[ $repo == simulators ]]; then make -j5 flow @@ -129,11 +165,11 @@ then building OPM Flow can be achieved with the following bash lines: cd ../.. done - echo "export PATH=\$PATH:$CURRENT_DIRECTORY/build/opm-simulators/bin" >> $CURRENT_DIRECTORY/vexpreccs/bin/activate + echo "export PATH=\$PATH:$CURRENT_DIRECTORY/build/opm-simulators/bin" >> ~/.zprofile + source ~/.zprofile - deactivate - source vexpreccs/bin/activate +This builds OPM Flow, and it exports the path to the flow executable. You can check if the installation of OPM Flow succeded by typing in the terminal **flow \-\-help**. -This builds OPM Flow, and it exports the path to the flow executable (i.e., executing in the terminal **which flow** should print the path). - -For macOS, the (optional but recommended) LaTeX dependency can be installed from https://www.tug.org/mactex/. +.. tip:: + See `this repository `_ dedicated to build OPM Flow from source in the latest macOS (GitHub actions). + If you still face problems, raise an issue in the GitHub repository, or you could also send an email to the maintainers. diff --git a/docs/_sources/introduction.rst.txt b/docs/_sources/introduction.rst.txt index 2927f31..8f8d41a 100644 --- a/docs/_sources/introduction.rst.txt +++ b/docs/_sources/introduction.rst.txt @@ -41,7 +41,6 @@ where -b Set the number of entries to skip the bc projections on the site, where 'j=0,i=nx-1,j=ny-1,i=0', e.g., '[0,2,0,0]' would skip all cells with i=nx and i=nx-1; this becomes handly for models where all cells in a given site are inactive along a side ('[0,0,0,0]' by default). -f Frequency to evaluate the boundary pressures on the site between report steps in the site. Write an array, e.g., '2,7,3', to set the frequency in each site report step ('1' by default). -a Exponential 'a' coefficient for the telescopic time-discretization for the given frequency '-f'. Write an array, e.g., '2.2,0,3.1', to set the coefficient in each site report step ('3.2' by default, use 0 for an equidistance partition). --w Set to 1 to print warnings ('0' by default). -e Set to 0 to write the pressure increase on the site bc from the regional values ('1' by default, i.e., the pressure values on the boundaries correspond to the explicit values on the regional simulations). -z Set to 1 to project the regional pressures per fipnum zones, i.e., the pressure maps to the site bcs are written for equal fipnum numbers in the whole xy layer ('0' by default, i.e., the projections include the z location offset between regional and site models). -s Set to 0 to not create the subfolders preprocessing, output, and postprocessing, i.e., to write all generated files in the output directory ('1' by default). diff --git a/docs/about.html b/docs/about.html index 167d398..0941940 100644 --- a/docs/about.html +++ b/docs/about.html @@ -101,7 +101,7 @@

About expreccs -

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with
Sphinx using a diff --git a/docs/api.html b/docs/api.html index d002a64..321bcf5 100644 --- a/docs/api.html +++ b/docs/api.html @@ -143,7 +143,7 @@

expreccs
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with
Sphinx using a diff --git a/docs/configuration_file.html b/docs/configuration_file.html index 9aba73c..7799a31 100644 --- a/docs/configuration_file.html +++ b/docs/configuration_file.html @@ -286,7 +286,7 @@

Simulation results -

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with
Sphinx using a diff --git a/docs/contributing.html b/docs/contributing.html index 9d958c6..62340ed 100644 --- a/docs/contributing.html +++ b/docs/contributing.html @@ -157,7 +157,7 @@

Seek support -

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with
Sphinx using a diff --git a/docs/examples.html b/docs/examples.html index 9627251..98bf7a4 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -273,7 +273,7 @@

Non-regular boundaries
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with
Sphinx using a diff --git a/docs/expreccs.core.expreccs.html b/docs/expreccs.core.expreccs.html index a9cf0e7..7b1cfa8 100644 --- a/docs/expreccs.core.expreccs.html +++ b/docs/expreccs.core.expreccs.html @@ -130,7 +130,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/expreccs.core.html b/docs/expreccs.core.html index 3a1f2be..ddfa966 100644 --- a/docs/expreccs.core.html +++ b/docs/expreccs.core.html @@ -115,7 +115,7 @@

Submodules -

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with
Sphinx using a diff --git a/docs/expreccs.html b/docs/expreccs.html index d64c635..bb30367 100644 --- a/docs/expreccs.html +++ b/docs/expreccs.html @@ -229,7 +229,7 @@

Subpackages -

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with
Sphinx using a diff --git a/docs/expreccs.utils.backcoupling.html b/docs/expreccs.utils.backcoupling.html index 1c48b81..7768d7b 100644 --- a/docs/expreccs.utils.backcoupling.html +++ b/docs/expreccs.utils.backcoupling.html @@ -158,7 +158,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/expreccs.utils.html b/docs/expreccs.utils.html index 8508b87..694f5a9 100644 --- a/docs/expreccs.utils.html +++ b/docs/expreccs.utils.html @@ -172,7 +172,7 @@

Submodules -

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with
Sphinx using a diff --git a/docs/expreccs.utils.inputvalues.html b/docs/expreccs.utils.inputvalues.html index 8b4d495..61ed12f 100644 --- a/docs/expreccs.utils.inputvalues.html +++ b/docs/expreccs.utils.inputvalues.html @@ -137,7 +137,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/expreccs.utils.mapboundaries.html b/docs/expreccs.utils.mapboundaries.html index cc2e3d1..ffc22c1 100644 --- a/docs/expreccs.utils.mapboundaries.html +++ b/docs/expreccs.utils.mapboundaries.html @@ -198,7 +198,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/expreccs.utils.mapproperties.html b/docs/expreccs.utils.mapproperties.html index 3692931..25f477c 100644 --- a/docs/expreccs.utils.mapproperties.html +++ b/docs/expreccs.utils.mapproperties.html @@ -172,7 +172,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/expreccs.utils.reg_sit_given_decks.html b/docs/expreccs.utils.reg_sit_given_decks.html index f7674d3..c3c318b 100644 --- a/docs/expreccs.utils.reg_sit_given_decks.html +++ b/docs/expreccs.utils.reg_sit_given_decks.html @@ -289,7 +289,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/expreccs.utils.runs.html b/docs/expreccs.utils.runs.html index 8478968..e0e3df1 100644 --- a/docs/expreccs.utils.runs.html +++ b/docs/expreccs.utils.runs.html @@ -137,7 +137,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/expreccs.utils.writefile.html b/docs/expreccs.utils.writefile.html index 3612750..c97ee33 100644 --- a/docs/expreccs.utils.writefile.html +++ b/docs/expreccs.utils.writefile.html @@ -163,7 +163,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/expreccs.visualization.html b/docs/expreccs.visualization.html index 41d2bd6..0260ebc 100644 --- a/docs/expreccs.visualization.html +++ b/docs/expreccs.visualization.html @@ -137,7 +137,7 @@

Submodules -

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with
Sphinx using a diff --git a/docs/expreccs.visualization.maps2d.html b/docs/expreccs.visualization.maps2d.html index 17d0dba..f84c417 100644 --- a/docs/expreccs.visualization.maps2d.html +++ b/docs/expreccs.visualization.maps2d.html @@ -150,7 +150,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/expreccs.visualization.plotting.html b/docs/expreccs.visualization.plotting.html index 43326c0..02f1a41 100644 --- a/docs/expreccs.visualization.plotting.html +++ b/docs/expreccs.visualization.plotting.html @@ -270,7 +270,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/expreccs.visualization.reading.html b/docs/expreccs.visualization.reading.html index 5cfbb4f..508c685 100644 --- a/docs/expreccs.visualization.reading.html +++ b/docs/expreccs.visualization.reading.html @@ -155,7 +155,7 @@
-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/genindex.html b/docs/genindex.html index e8c5401..1a1ff30 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -511,7 +511,7 @@

W


-

© Copyright 2023-2025, NORCE Research AS.

+

© Copyright 2023-2026, NORCE Research AS.

Built with Sphinx using a diff --git a/docs/index.html b/docs/index.html index 12f444f..5569785 100644 --- a/docs/index.html +++ b/docs/index.html @@ -92,7 +92,9 @@

Welcome to the expreccs’s documentation!Installation
  • Python package
  • OPM Flow
  • @@ -175,7 +177,7 @@

    Indices and tables -

    © Copyright 2023-2025, NORCE Research AS.

    +

    © Copyright 2023-2026, NORCE Research AS.

    Built with
    Sphinx using a diff --git a/docs/installation.html b/docs/installation.html index c1fde71..6b202dc 100644 --- a/docs/installation.html +++ b/docs/installation.html @@ -49,7 +49,9 @@
  • Installation
    • Python package
    • OPM Flow
    • @@ -94,6 +96,15 @@

      InstallationResInsight and plopm can be used for the visualization of the results.

      +
      +

      Note

      +

      There are binary packages for Linux and Windows to install Resinsight, see the ResInsight Documentation. For macOS users, you could try to install it using brew by executing:

      +
      brew install cssr-tools/opm/resinsight
      +
      +
      +

      Then, you should be able to open resinsight by typing in the terminal resinsight.

      +

      Python package

      To install the expreccs executable from the development version in an existing Python environment:

      @@ -124,6 +135,12 @@

      InstallationTip

      Typing git tag -l writes all available specific versions.

      +

      OPM Flow

      @@ -131,11 +148,17 @@

      OPM Flow +
      +

      Binary packages

      +

      See the downloading and installing OPM Flow online documentation for +instructions to install the binary packages in Ubuntu and Red Hat Enterprise Linux, and for other platforms which are +supported either via source builds or through running a virtual machine.

      Tip

      See the CI.yml script for installation of OPM Flow (binary packages), LaTeX (optional) libraries, and the expreccs package in Ubuntu 24.04 and Python 3.11.

      +

      Source build in Linux/Windows

      If you are a Linux user (including the Windows subsystem for Linux, see this link @@ -164,25 +187,34 @@

      Source build in Linux/Windows +

      Brew formula for macOS

      +

      For macOS, there are no available binary packages, so OPM Flow needs to be built from source. Recently, a formula to build flow using brew has +been added in https://github.com/cssr-tools/homebrew-opm. +Then, you can try to install flow (v2025.10) by simply typing:

      +
      brew install cssr-tools/opm/opm-simulators
      +
      +
      +

      You can check if the installation of OPM Flow succeded by typing in the terminal flow --help.

      +
      +

      Tip

      +

      See the actions in the cssr-tools/homebrew-opm repository.

      +
      +

      -

      Source build in macOS

      -

      For macOS, there are no available binary packages, so OPM Flow needs to be built from source, in addition to the dune libraries and the OPM Python -package (see the prerequisites, which can be installed using macports or brew). -For example, with brew the prerequisites can be installed by:

      +

      Source build in macOS

      +

      If you would like to build the latest OPM Flow from the master branch, then you can first install the prerequisites using brew:

      brew install boost openblas suite-sparse python@3.14 cmake
       

      In addition, it is recommended to uprade and update your macOS to the latest available versions (the following steps have -worked for macOS Tahoe 26.1 with Apple clang version 17.0.0). -After the prerequisites are installed and the vexpreccs Python environment is created (see Python package), -then building OPM Flow can be achieved with the following bash lines:

      +worked for macOS Tahoe 26.2.0 with Apple clang version 17.0.0). +After the prerequisites are installed, then building OPM Flow can be achieved with the following bash lines:

      -

      This builds OPM Flow, and it exports the path to the flow executable (i.e., executing in the terminal which flow should print the path).

      -

      For macOS, the (optional but recommended) LaTeX dependency can be installed from https://www.tug.org/mactex/.

      +

      This builds OPM Flow, and it exports the path to the flow executable. You can check if the installation of OPM Flow succeded by typing in the terminal flow --help.

      +
      +

      Tip

      +

      See this repository dedicated to build OPM Flow from source in the latest macOS (GitHub actions). +If you still face problems, raise an issue in the GitHub repository, or you could also send an email to the maintainers.

      +

      @@ -225,7 +258,7 @@

      Source build in Linux/Windows -

      © Copyright 2023-2025, NORCE Research AS.

      +

      © Copyright 2023-2026, NORCE Research AS.

      Built with
      Sphinx using a diff --git a/docs/introduction.html b/docs/introduction.html index 25a3cbf..4769cd9 100644 --- a/docs/introduction.html +++ b/docs/introduction.html @@ -138,9 +138,6 @@

      Concept
      -a

      Exponential ‘a’ coefficient for the telescopic time-discretization for the given frequency ‘-f’. Write an array, e.g., ‘2.2,0,3.1’, to set the coefficient in each site report step (‘3.2’ by default, use 0 for an equidistance partition).

      -
      -w
      -

      Set to 1 to print warnings (‘0’ by default).

      -
      -e

      Set to 0 to write the pressure increase on the site bc from the regional values (‘1’ by default, i.e., the pressure values on the boundaries correspond to the explicit values on the regional simulations).

      @@ -173,7 +170,7 @@

      Concept
      -

      © Copyright 2023-2025, NORCE Research AS.

      +

      © Copyright 2023-2026, NORCE Research AS.

      Built with
      Sphinx using a diff --git a/docs/modules.html b/docs/modules.html index e1806d8..68bd5d5 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -117,7 +117,7 @@

      expreccs
      -

      © Copyright 2023-2025, NORCE Research AS.

      +

      © Copyright 2023-2026, NORCE Research AS.

      Built with
      Sphinx using a diff --git a/docs/objects.inv b/docs/objects.inv index 73e83c6..e9cd287 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/output_folder.html b/docs/output_folder.html index 92f6865..9bb9d72 100644 --- a/docs/output_folder.html +++ b/docs/output_folder.html @@ -140,7 +140,7 @@

      Via OPM Flow decks -

      © Copyright 2023-2025, NORCE Research AS.

      +

      © Copyright 2023-2026, NORCE Research AS.

      Built with
      Sphinx using a diff --git a/docs/py-modindex.html b/docs/py-modindex.html index 3a3c267..2b108f0 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -177,7 +177,7 @@

      Python Module Index


      -

      © Copyright 2023-2025, NORCE Research AS.

      +

      © Copyright 2023-2026, NORCE Research AS.

      Built with Sphinx using a diff --git a/docs/related.html b/docs/related.html index 3fb9716..071c798 100644 --- a/docs/related.html +++ b/docs/related.html @@ -146,7 +146,7 @@

      pymm<
      -

      © Copyright 2023-2025, NORCE Research AS.

      +

      © Copyright 2023-2026, NORCE Research AS.

      Built with Sphinx using a diff --git a/docs/search.html b/docs/search.html index ee07eb5..94a7263 100644 --- a/docs/search.html +++ b/docs/search.html @@ -100,7 +100,7 @@
      -

      © Copyright 2023-2025, NORCE Research AS.

      +

      © Copyright 2023-2026, NORCE Research AS.

      Built with Sphinx using a diff --git a/docs/searchindex.js b/docs/searchindex.js index 332ea33..6568dc2 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles":{"About expreccs":[[0,null]],"Concept":[[22,"concept"]],"Configuration file":[[2,null]],"Contribute to the software":[[3,"contribute-to-the-software"]],"Contributing":[[3,null]],"Examples":[[4,null]],"Ground Rules":[[3,"ground-rules"]],"Hello world":[[4,"hello-world"]],"Indices and tables":[[20,"indices-and-tables"]],"Installation":[[21,null]],"Introduction":[[22,null]],"Layered model":[[4,"layered-model"]],"Module contents":[[5,"module-expreccs"],[6,"module-expreccs.core"],[8,"module-expreccs.utils"],[16,"module-expreccs.visualization"]],"Non-regular boundaries":[[4,"non-regular-boundaries"]],"OPM Flow":[[21,"opm-flow"]],"Output folder":[[24,null]],"Overview":[[22,"overview"]],"Python package":[[21,"python-package"]],"Regular boundaries":[[4,"regular-boundaries"]],"Related":[[25,null]],"Reporting issues or problems":[[3,"reporting-issues-or-problems"]],"Reservoir-related parameters":[[2,"reservoir-related-parameters"]],"Rock-related parameters":[[2,"rock-related-parameters"]],"Seek support":[[3,"seek-support"]],"Simulation results":[[2,"simulation-results"]],"Source build in Linux/Windows":[[21,"source-build-in-linux-windows"]],"Source build in macOS":[[21,"source-build-in-macos"]],"Submodules":[[6,"submodules"],[8,"submodules"],[16,"submodules"]],"Subpackages":[[5,"subpackages"]],"TCCS-13":[[26,null]],"Via OPM Flow decks":[[4,"via-opm-flow-decks"],[24,"via-opm-flow-decks"]],"Via configuration files":[[4,"via-configuration-files"],[24,"via-configuration-files"]],"Welcome to the expreccs\u2019s documentation!":[[20,null]],"Well-related parameters":[[2,"well-related-parameters"]],"ad-micp":[[25,"ad-micp"]],"expreccs":[[1,"expreccs"],[23,null]],"expreccs Python API":[[1,null]],"expreccs package":[[5,null]],"expreccs.core package":[[6,null]],"expreccs.core.expreccs module":[[7,null]],"expreccs.utils package":[[8,null]],"expreccs.utils.backcoupling module":[[9,null]],"expreccs.utils.inputvalues module":[[10,null]],"expreccs.utils.mapboundaries module":[[11,null]],"expreccs.utils.mapproperties module":[[12,null]],"expreccs.utils.reg_sit_given_decks module":[[13,null]],"expreccs.utils.runs module":[[14,null]],"expreccs.utils.writefile module":[[15,null]],"expreccs.visualization package":[[16,null]],"expreccs.visualization.maps2d module":[[17,null]],"expreccs.visualization.plotting module":[[18,null]],"expreccs.visualization.reading module":[[19,null]],"plopm":[[25,"plopm"]],"pofff":[[25,"pofff"]],"pycopm":[[25,"pycopm"]],"pymm":[[25,"pymm"]],"pyopmnearwell":[[25,"pyopmnearwell"]],"pyopmspe11":[[25,"pyopmspe11"]]},"docnames":["about","api","configuration_file","contributing","examples","expreccs","expreccs.core","expreccs.core.expreccs","expreccs.utils","expreccs.utils.backcoupling","expreccs.utils.inputvalues","expreccs.utils.mapboundaries","expreccs.utils.mapproperties","expreccs.utils.reg_sit_given_decks","expreccs.utils.runs","expreccs.utils.writefile","expreccs.visualization","expreccs.visualization.maps2d","expreccs.visualization.plotting","expreccs.visualization.reading","index","installation","introduction","modules","output_folder","related","tccs-13"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["about.rst","api.rst","configuration_file.rst","contributing.rst","examples.rst","expreccs.rst","expreccs.core.rst","expreccs.core.expreccs.rst","expreccs.utils.rst","expreccs.utils.backcoupling.rst","expreccs.utils.inputvalues.rst","expreccs.utils.mapboundaries.rst","expreccs.utils.mapproperties.rst","expreccs.utils.reg_sit_given_decks.rst","expreccs.utils.runs.rst","expreccs.utils.writefile.rst","expreccs.visualization.rst","expreccs.visualization.maps2d.rst","expreccs.visualization.plotting.rst","expreccs.visualization.reading.rst","index.rst","installation.rst","introduction.rst","modules.rst","output_folder.rst","related.rst","tccs-13.rst"],"indexentries":{},"objects":{"":[[5,0,0,"-","expreccs"]],"expreccs":[[6,0,0,"-","core"],[8,0,0,"-","utils"],[16,0,0,"-","visualization"]],"expreccs.core":[[7,0,0,"-","expreccs"]],"expreccs.core.expreccs":[[7,1,1,"","check_cmdargs"],[7,1,1,"","expreccs"],[7,1,1,"","load_parser"],[7,1,1,"","main"]],"expreccs.utils":[[9,0,0,"-","backcoupling"],[10,0,0,"-","inputvalues"],[11,0,0,"-","mapboundaries"],[12,0,0,"-","mapproperties"],[13,0,0,"-","reg_sit_given_decks"],[14,0,0,"-","runs"],[15,0,0,"-","writefile"]],"expreccs.utils.backcoupling":[[9,1,1,"","backcoupling"],[9,1,1,"","compute_multipliers"],[9,1,1,"","init_multipliers"],[9,1,1,"","write_folder_iter"]],"expreccs.utils.inputvalues":[[10,1,1,"","check_entries"],[10,1,1,"","process_input"],[10,1,1,"","process_tuning"]],"expreccs.utils.mapboundaries":[[11,1,1,"","aquaflux"],[11,1,1,"","handle_pressure_correction"],[11,1,1,"","handle_stencil"],[11,1,1,"","handle_stencil_2p"],[11,1,1,"","porv_projections"],[11,1,1,"","porv_regional_segmentation"],[11,1,1,"","temporal_interpolation_flux"],[11,1,1,"","temporal_interpolation_pressure"]],"expreccs.utils.mapproperties":[[12,1,1,"","mapping_properties"],[12,1,1,"","positions_reference"],[12,1,1,"","positions_regional"],[12,1,1,"","positions_rotation"],[12,1,1,"","positions_site"],[12,1,1,"","rotate_grid"]],"expreccs.utils.reg_sit_given_decks":[[13,1,1,"","check_intersection"],[13,1,1,"","check_regional_neighbours"],[13,1,1,"","create_deck"],[13,1,1,"","dynamic_interpolator"],[13,1,1,"","extract_site_borders"],[13,1,1,"","find_ij_orientation"],[13,1,1,"","find_regional_cells"],[13,1,1,"","get_bccon"],[13,1,1,"","get_xymaps"],[13,1,1,"","handle_grid_coord"],[13,1,1,"","project_pressures"],[13,1,1,"","site_contour"],[13,1,1,"","temporal_interpolation"],[13,1,1,"","write_files"]],"expreccs.utils.runs":[[14,1,1,"","plotting"],[14,1,1,"","run_models"],[14,1,1,"","simulations"]],"expreccs.utils.writefile":[[15,1,1,"","compact_format"],[15,1,1,"","write_files"],[15,1,1,"","write_folders"],[15,1,1,"","write_grid"],[15,1,1,"","write_properties"]],"expreccs.visualization":[[17,0,0,"-","maps2d"],[18,0,0,"-","plotting"],[19,0,0,"-","reading"]],"expreccs.visualization.maps2d":[[17,1,1,"","final_time_maps"],[17,1,1,"","final_time_maps_difference"],[17,1,1,"","geological_maps"],[17,1,1,"","manage_name"]],"expreccs.visualization.plotting":[[18,1,1,"","handle_labels_difference"],[18,1,1,"","handle_labels_distance"],[18,1,1,"","handle_site_summary"],[18,1,1,"","over_time_distance"],[18,1,1,"","over_time_max_difference"],[18,1,1,"","over_time_sensor"],[18,1,1,"","plot_results"],[18,1,1,"","plotting_settings"],[18,1,1,"","positions"],[18,1,1,"","summary_plot"],[18,1,1,"","summary_site"],[18,1,1,"","wells_site"]],"expreccs.visualization.reading":[[19,1,1,"","define_cases"],[19,1,1,"","make_arrays"],[19,1,1,"","manage_names"],[19,1,1,"","reading_simulations"]]},"objnames":{"0":["py","module","Python module"],"1":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:function"},"terms":{"":[2,3,4,22,24,26],"0":[2,4,15,21,22,24,26],"001":26,"00e":2,"01":2,"01013":2,"02":[4,26],"04":[3,21],"05e3":4,"0f":[4,26],"0pressur":26,"1":[2,4,21,22,26],"10":[2,21,26],"1000":2,"10000":2,"101":2,"1013":2,"10132":2,"10e3":4,"11":[3,21,26],"11000":2,"111":26,"112":26,"11377":2,"11423e":2,"116":26,"117":26,"11th":2,"12":[2,4,26],"126":26,"13":[3,20],"13140":26,"1324":2,"14":[2,21,26],"14518":2,"15":2,"15000":[2,4],"15e3":4,"16":[4,26],"160000":26,"17":21,"18000":2,"193531e":2,"199":4,"1d":18,"1e":[2,26],"1e0":26,"1e1":2,"1e2":2,"1e3":2,"1e4":2,"1e5":2,"1e6":2,"1e7":2,"1e8":2,"1f":[4,26],"2":[2,4,22,26],"20":[2,4],"20000":2,"202":2,"2025":[21,26],"203":26,"21180":2,"21583":2,"217":26,"21718":2,"22":2,"24":[3,4,21,26],"24081":2,"24200":2,"24886":26,"24e3":4,"25":[2,4,26],"26":[3,21],"2650":2,"27000":2,"2732":2,"28477":2,"2d":[17,18],"2e2":2,"2f":26,"3":[2,3,4,21,22,26],"30":[2,4,26],"3060":2,"3060e":2,"31":26,"31679":2,"319":4,"32":2,"324":2,"325":2,"336294":0,"33e3":4,"34":2,"365":2,"3870":2,"3b":26,"3e5":2,"4":[2,26],"41283":26,"417":4,"45":2,"450":26,"45000":2,"47":2,"48":26,"495000":26,"5":[2,4,26],"50":2,"500":4,"5000":2,"506":2,"50e3":4,"525":26,"55":2,"55e3":4,"56":26,"57":26,"5710":2,"5e6":2,"6":[2,4,26],"60":[2,26],"605e6":26,"60e3":4,"6120":2,"625":2,"63e":2,"65":[2,26],"650":2,"6625":2,"7":[2,22,26],"7068":2,"7122":2,"73":2,"7800":2,"8":[2,4,26],"80":26,"8000":2,"809":26,"80e3":4,"81":2,"8233":2,"8654":2,"8883":2,"9":[2,21,26],"92":2,"95":[4,26],"95000":26,"99e":2,"A":[9,25,26],"For":[0,2,3,4,21,26],"If":[2,4,21],"In":[2,3,4,21,22,24],"The":[0,1,2,3,4,21,22,24,26],"Then":[2,4,24,26],"To":[2,4,21,26],"_":[9,26],"_build":3,"_of_input_fil":22,"about":[3,20],"abov":[2,26],"accept":3,"achiev":[2,4,21],"action":3,"activ":[2,13,21,26],"actual":26,"ad":[2,9,10,20,22,26],"adapt":26,"add":[2,3,4,13,24],"addit":[1,2,3,4,21,24],"after":[4,12,21,24,26],"all":[2,3,4,21,22,26],"allow":[2,26],"along":[2,4,22],"also":[2,3,4,21,24],"altern":3,"an":[0,2,3,4,21,22,25],"anaconda":21,"analys":3,"ani":[2,3,4],"anim":4,"anoth":4,"answer":3,"api":20,"appl":21,"appli":4,"applic":4,"approach":[0,2,3,4,22,26],"apt":21,"aquaflux":[5,8,11],"aquif":[2,26],"ar":[0,2,3,4,9,13,21,22,24,25,26],"arg":[7,9,10,11,12,13,14,15,17,18,19],"argument":[2,7,22],"arrai":[2,13,19,22],"assess":2,"avail":[2,21],"averag":26,"avoid":2,"b":[22,26],"back":[9,19],"backcoupl":[5,8],"bar":[2,26],"base":[4,9,22,25],"bash":21,"bc":[2,4,11,13,15,22,24],"bccon":24,"becom":22,"befor":[3,26],"below":[4,25],"benchmark":25,"better":18,"between":[1,4,17,18,22],"bfebf2":26,"bhp":[2,4,18],"bin":[2,3,21],"binari":[3,13,21],"black":[3,26],"bool":19,"boost":21,"border":[13,18],"both":2,"bottom":[2,4],"boundari":[2,11,13,20,22,24],"box":2,"branch":21,"brew":21,"brg":26,"build":[2,3,4,13,20],"build_opm_mpi":21,"built":21,"c":[2,4,22,26],"calcit":25,"call":[4,24],"can":[2,3,4,21,24,26],"capabl":2,"capillari":2,"cardin":13,"carlson":2,"case":[4,15,19],"cbsfax":[4,26],"cd":21,"cell":[2,4,11,13,18,22,24,26],"cet_diverging_rainbow_bgymr_45_85_c67":26,"cfd":25,"cformat":[4,26],"chang":[2,3,4],"check":[7,10,13,25],"check_cmdarg":[5,6,7],"check_entri":[5,8,10],"check_intersect":[5,8,13],"check_regional_neighbour":[5,8,13],"checker":3,"checkout":21,"chosen":2,"ci":[3,21],"ci_pycopm_maco":3,"clabel":26,"clang":21,"clone":21,"close":2,"closest":[2,13,18],"cmake":21,"cmdarg":7,"cnum":26,"cnv":26,"co2":[2,4,22,25],"coarsen":26,"coarsened_improv":26,"coarsened_perm":26,"coarsened_tran":26,"coarser":2,"code":[3,5,21],"coeffici":22,"collabor":3,"color":18,"com":[4,21,22,26],"combin":7,"command":[2,4,7,21,26],"commit":3,"common":[21,26],"compact":15,"compact_format":[5,8,15],"compar":[2,4,22,24],"comparison":[1,4],"compens":9,"complet":[17,19],"complex":4,"compress":2,"comput":[2,9],"compute_multipli":[5,8,9],"concept":20,"condit":[2,4,22,24],"config":4,"configur":[1,10,20,22],"conform":22,"connect":[13,22,24],"conrour":13,"consid":[2,4],"contact":26,"contain":[1,3],"content":[1,3,20,23],"continu":2,"contour":[13,22],"contribut":[0,20,21],"control":[2,26],"cook":26,"coord":13,"coordin":[2,13,18],"copi":[3,21],"core":[1,5,21,23,26],"corner":[2,15,22],"correct":11,"correspond":[1,2,4,22,24],"could":[21,24,26],"council":0,"count":13,"counter":11,"coupl":[9,19],"cov":[3,4],"cp":2,"cpg":[2,22],"cpr_trueimp":26,"creat":[3,4,13,21,22,24],"create_deck":[5,8,13],"csp":[2,25],"cssr":[4,21,22,26],"curiou":4,"current":[9,18,21,22,26],"current_directori":21,"curv":2,"d":[2,4,26],"d_z":13,"dai":[2,4],"data":[4,19,26],"dcmake_build_typ":21,"dcmake_disable_find_package_mpi":21,"dcmake_prefix_path":21,"de":24,"deactiv":[2,21],"deck":[1,2,13,14,18,19,20,22,26],"default":[2,22],"defin":[2,4,22],"define_cas":[5,16,19],"definit":[2,24],"delax":[4,26],"demonstr":4,"depend":[3,21,26],"depth":[2,26],"describ":[2,3,22,26],"desir":2,"detail":0,"dev":[3,21],"develop":[21,22],"dic":[9,10,11,12,13,14,15,17,18,19],"dict":[7,9,10,11,12,13,14,15,17,18,19],"dictionari":[9,10,11,12,13,14,15,17,18,19],"differ":[1,2,4,9,11,12,17,18,22,24],"dimens":[2,26],"dir":[2,11,13],"dire":13,"direct":[2,4,13],"directli":24,"director":26,"directori":[3,22],"discret":[2,22],"distanc":[4,18],"dmar":2,"do":[4,21,22],"doc":3,"document":[2,3,22,24],"doe":4,"doi":26,"done":[9,21],"doplot":19,"dune":21,"dunecontrol":21,"duse_mpi":21,"dwith_ndebug":21,"dynam":[2,4,22,24,25],"dynamic_interpol":[5,8,13],"e":[2,3,4,21,22,24,26],"each":[2,22],"echo":21,"edg":21,"ehystr":2,"els":21,"em":25,"email":3,"enabl":[2,26],"end":[2,4,26],"energi":0,"enter":2,"entri":[2,10,22],"environ":[3,21],"equal":[4,22],"equidist":22,"equinor":0,"error":2,"ert":26,"evalu":[2,22],"everest":26,"exampl":[2,20,21,24],"example1":[2,4],"example1_porvproj":4,"example1_pr":4,"example1_wel":[2,4],"example2":4,"except":2,"execut":[1,2,3,4,7,21,22,24,26],"exisit":26,"exist":21,"exmapl":2,"explain":4,"explicit":22,"expon":2,"exponenti":22,"export":[3,21],"exprecc":[2,3,4,21,22,24,26],"expreccs_dpincreas":4,"expreccs_perfipnum":4,"expreccss":1,"extend":[2,3],"extract":[4,18],"extract_site_bord":[5,8,13],"f":[4,22,26],"face":11,"fals":19,"familiar":3,"fault":[2,12,22,26],"fault_region":2,"fault_sit":2,"featur":[0,26],"few":26,"fi":21,"fig":26,"fig1":26,"fig10a":26,"fig10bc":26,"fig12a":26,"fig2":26,"fig3b":26,"fig5":26,"fig6a":26,"fig6b":26,"fig8low":26,"fig8upp":26,"fig9":26,"figur":[4,14,17,19,22,26],"fil":9,"file":[1,3,10,13,15,19,20,21,22,26],"final":[2,4,26],"final_time_map":[5,16,17],"final_time_maps_differ":[5,16,17],"find":[12,13],"find_ij_orient":[5,8,13],"find_regional_cel":[5,8,13],"fipnum":[4,13,22],"fipr":13,"first":[2,19,26],"five":2,"fix":3,"flag":[2,4,7,22,24],"flexibl":22,"float":13,"flow":[2,3,14,15,19,20,25,26],"flow_maco":3,"fluid":2,"fluidflow":25,"flux":[2,4,9,11],"flux_region":9,"flux_sit":9,"focus":22,"fol":[18,19],"folder":[1,2,3,4,9,15,17,18,19,20,21,22,26],"follow":[2,4,21,22,24,26],"fork":[0,3],"format":3,"former":4,"fot":13,"fraction":[2,26],"framework":[2,22,25],"frequenc":22,"friend":4,"from":[2,3,4,9,10,11,13,18,19,21,22,25,26],"full":2,"function":[2,4,7,9,10,11,12,13,14,15],"fund":0,"further":[2,4],"g":[2,3,4,21,22,24],"ga":[2,4],"gasda":26,"gener":[1,2,3,4,14,22,24,25,26],"geolog":[1,2,4,9,14,15,22,25],"geological_map":[5,16,17],"geometri":21,"get":[3,13,21,26],"get_bccon":[5,8,13],"get_xymap":[5,8,13],"gif":25,"gind":13,"git":[4,21,26],"github":[3,4,21,22,26],"gitlab":21,"give":2,"given":[1,2,4,9,13,22,24],"global":[9,10,11,12,13,14,15,17,18,19,26],"gnuplot2":26,"grade":22,"grid":[2,4,12,13,15,21,22,26],"ground":20,"group":2,"h":[2,26],"ha":[2,26],"hand":13,"handl":[12,22],"handle_grid_coord":[5,8,13],"handle_labels_differ":[5,16,18],"handle_labels_dist":[5,16,18],"handle_pressure_correct":[5,8,11],"handle_site_summari":[5,16,18],"handle_stencil":[5,8,11],"handle_stencil_2p":[5,8,11],"handli":22,"harbour":0,"have":21,"height":2,"hello":[20,24],"hello_world":4,"hello_world_distance_from_bord":4,"hello_world_reference_watfluxi":4,"hello_world_regional_watfluxi":4,"hello_world_sensor_pressure_over_tim":4,"hello_world_site_flux_watfluxi":4,"hello_world_summary_bhp_site_refer":4,"help":[2,3],"here":[0,2,4,24,26],"heterogein":[2,22],"heterogen":4,"higher":2,"histori":25,"home":4,"homogen":26,"horizont":13,"host":22,"how":[4,26],"html":3,"http":[4,21,22,26],"hydrosta":13,"hysteresi":[2,22],"hystopt":2,"i":[0,1,2,3,4,9,11,13,18,21,22,24,26],"identifi":22,"ignor":3,"ij":4,"imag":[1,25],"imbibit":2,"imbnum":26,"implement":[2,22],"import":3,"improv":[18,22,26],"in_fil":10,"inact":[4,22],"inc":[4,24],"includ":[1,4,21,22],"increas":[4,22,26],"ind":13,"index":[13,18,20],"indic":[13,18],"induc":25,"init_multipli":[5,8,9],"initi":[2,9,13],"inj":2,"inject":[2,18],"injector":[2,4],"input":[1,2,4,9,10,14,22],"inputvalu":[5,8],"insid":[2,4,21],"instal":[3,4,20,26],"instead":2,"int":[9,11,13,18],"integr":2,"interest":[2,21,25],"interp":2,"interpol":[2,4,11,13,24],"introduct":[4,20],"invalid":7,"irregular":22,"issu":[0,20],"istl":21,"iter":[2,9,11,15,26],"iterativli":9,"j":[18,22],"j5":21,"johansen":26,"jump":2,"kept":2,"keyword":2,"kg":2,"killough":2,"km":[4,26],"kr":2,"krn":2,"krw":2,"kxy":2,"kz":2,"l":[4,21,22,26],"label":[4,18,24],"landa":26,"last":[17,19],"later":4,"latest":21,"latex":21,"layer":[2,20,22],"leakag":25,"left":[2,4,13],"length":2,"librari":21,"lim":26,"limipr":26,"limit":[2,26],"line":[2,3,4,13,18,21],"linear":[2,26],"link":[0,21],"lint":21,"linux":20,"list":[13,15,18,19],"literatur":26,"load_pars":[5,6,7],"local":3,"locat":[1,2,4,11,12,18,22,26],"log":26,"look":[3,26],"lot":26,"lower":2,"m":[2,4,21,22,26],"machin":2,"maco":[3,20],"macport":21,"mactex":21,"main":[1,3,5,6,7],"maintain":3,"make":[3,15,21],"make_arrai":[5,16,19],"mako":[1,15],"mamba":21,"manag":[18,21],"manage_nam":[5,16,17,19],"managua_r":26,"mani":2,"mantain":3,"manual":2,"manuscript":4,"map":[4,11,12,13,17,18,22],"mapboundari":[5,8],"mapp":4,"mapping_properti":[5,8,12],"mapproperti":[5,8],"maps2d":[5,16],"marb\u00e1n":26,"mark":22,"master":21,"match":[25,26],"max":[2,18,26],"maximum":[2,26],"md":2,"merg":3,"metric":22,"micp":20,"microbi":25,"microsystem":25,"middel":4,"middl":[2,4],"might":[3,21,25,26],"min":[2,26],"miniforg":21,"minimum":4,"miss":[3,4],"mkdir":21,"model":[1,2,9,13,14,15,17,19,20,22,24,25,26],"modif":22,"modifi":[9,10,11,12,13,14,15,17,18,19,21,24],"modul":[1,20,21,23,25],"more":[0,3,4],"mpi":21,"mpirun":[2,26],"mt":2,"mult":9,"multipli":[2,9],"mypi":3,"n":[2,4,13,15,22],"name":[2,4,9,10,14,15,17,18,19,22],"ndeck":18,"necessari":[4,15],"need":[3,21,22,26],"neighbour":13,"new":[0,3,4,10],"newton":[2,26],"newtoniterationcount":26,"nfol":18,"nice":[3,21,22],"nkrn":2,"nkrw":2,"nnc":13,"non":[2,20],"none":[7,9,10,14,15,17,18,22],"norwai":0,"norwegian":26,"notat":15,"now":[2,4],"np":[2,26],"npen":2,"npoint":2,"nqua":18,"nquan":18,"nrst":18,"num":2,"number":[0,2,9,13,18,22,26],"numpi":15,"nwell":18,"nx":22,"ny":22,"o":[4,22,24],"observ":2,"offset":[4,13,22],"offshor":26,"one":[2,4,24],"ones":26,"onli":[2,4,19,21,22],"open":[2,25],"openbla":21,"oper":[2,22],"opernum":[4,24],"opernum_exprecc":[4,24],"opm":[1,2,3,14,15,18,19,20,25,26],"opmn":18,"optim":[4,26],"optimal_solut":26,"option":[2,7,21,22],"order":2,"org":[21,26],"orginin":26,"origen":2,"origin":26,"our":[3,4],"out":[17,19,25],"output":[2,15,18,19,20,22],"over":[2,13],"over_time_dist":[5,16,18],"over_time_max_differ":[5,16,18],"over_time_sensor":[5,16,18],"overlap":[4,13,24],"overpr":26,"overpressur":26,"overview":[2,20],"own":3,"p":[4,13,22,26],"packag":[1,3,4,20,23],"page":[3,4,20],"paper":26,"paper_2025":4,"parallel":26,"paramet":[10,20],"part":4,"partit":22,"path":[2,3,21,22],"path_to_the_regional_model":4,"path_to_the_site_model":4,"pc":2,"pcap":2,"pen":2,"per":[2,4,22],"period":2,"perm":[2,26],"permeabl":26,"phi":2,"pi":2,"pip":[3,4,21,26],"pleas":[0,3],"plopm":[4,20,24,26],"plot":[5,8,14,15,16,17,19,22,24],"plot_result":[5,16,18],"plotting_set":[5,16,18],"plume":4,"png":[1,4,25],"pofff":20,"point":[2,15,18,22],"pore":[2,4,11,26],"poro":26,"porv":[2,26],"porv_project":[5,8,11],"porv_regional_segment":[5,8,11],"porvproj":[2,4],"posit":[2,5,12,13,16,18],"positions_refer":[5,8,12],"positions_region":[5,8,12],"positions_rot":[5,8,12],"positions_sit":[5,8,12],"possibl":[2,3],"postprocess":[4,22,24,26],"powerpoint":26,"pr":3,"practic":2,"pre":[2,4,11],"precipit":25,"prefer":3,"prefix":15,"preprocess":[10,22,24],"prerequisit":21,"pres2p":2,"prescrib":4,"pressur":[1,2,4,11,13,18,22,24,26],"presur":2,"previou":[3,4,21],"print":[21,22],"problem":20,"proce":[2,4],"proceed":26,"process":[1,10,13],"process_input":[5,8,10],"process_tun":[5,8,10],"prod":2,"produc":[2,4],"project":[0,1,2,4,11,13,18,21,22,25],"project_pressur":[5,8,13],"prompt":26,"properti":[2,22,26],"pull":[0,3],"push":3,"pushd":3,"pv":[2,11,26],"pwd":21,"py":[4,24,26],"pycopm":[2,3,4,20,26],"pylint":3,"pymm":20,"pyopmnearwel":20,"pyopmspe11":[3,20],"pytest":[3,4],"python":[3,20,25,26],"python3":[21,26],"quantiti":[12,17,18,19],"quick":25,"quotat":22,"r":[2,3,4,21,26],"rais":[0,3],"rate":[2,18],"re":[17,18,19],"read":[5,11,16],"reading_simul":[5,16,19],"recommend":21,"record":2,"rectangl":[4,22],"refer":[1,2,4,12,14,15,17,18,22,24],"reference_x_n":2,"reference_y_n":2,"reference_z_n":2,"refin":[2,4,11],"reg":[11,13],"reg_sit_given_deck":[5,8],"regard":[2,4],"region":[1,2,4,9,11,13,14,18,22,24],"regional_bctyp":2,"regional_dim":2,"regional_sit":22,"regional_x_n":2,"regional_y_n":2,"regional_z_n":2,"regul":4,"regular":20,"rel":2,"relat":[3,15,20,24],"relax":[2,26],"releas":21,"remedi":25,"remov":26,"repit":15,"replac":3,"repo":[3,21],"report":[4,13,20,22],"repositori":[3,21],"reproduc":26,"request":[0,3],"requier":[4,12],"requir":[2,3,10,21],"requiri":10,"rerun":4,"research":0,"reservoir":[4,12,15,17,18,20],"residu":2,"resinsight":[2,4,24,26],"resourc":26,"respect":[2,4],"rest":26,"restart":[2,13],"result":[4,20,24,26],"return":[7,9,10,11,12,13,14,15,17,18,19],"review":3,"rg":26,"right":[2,13],"rise":3,"rock":[20,22],"rock_comp":2,"rotat":[4,12,22],"rotate_grid":[5,8,12],"routin":[1,15,18],"row":2,"rpr":4,"rst":[2,26],"rule":20,"run":[1,2,3,4,5,8,15,21,22,24,26],"run_model":[5,8,14],"safu":2,"salin":2,"same":[2,4,26],"sand":2,"sandv":26,"sandwich":4,"sat":2,"satur":[2,4,18],"save":[4,15,24,26],"schedul":[2,4,11,18,22],"screenshot":[2,24],"script":[1,3,7,11,13,17,18,19,21],"search":20,"second":2,"section":[2,4,22],"see":[2,3,4,21,22,24],"seek":20,"select":[4,24],"send":3,"sensor":[2,4,18,26],"sensor_coord":2,"set":[2,4,10,12,18,21,22,26],"set1_r":4,"setuptool":21,"sga":4,"sh":21,"share":2,"shell":0,"should":[21,26],"show":[1,2,4,24],"shut":2,"side":[2,11,13,22],"similar":26,"similarli":2,"simillarli":2,"simpl":4,"simpler":2,"simplic":4,"simplifi":22,"simul":[1,3,4,5,8,14,17,19,20,21,22,24,25],"sin":2,"sinc":[2,26],"singl":3,"sintef":26,"site":[1,2,4,9,11,12,13,14,17,18,22,24],"site_bctyp":2,"site_clos":[4,24],"site_contour":[5,8,13],"site_loc":2,"six":[2,3],"size":[2,4],"skip":[21,22,26],"sni":2,"so":21,"softwar":20,"solut":2,"solver":[24,26],"some":[4,15,24,25],"soon":3,"sourc":[3,20,25],"space":22,"spars":21,"spatial":13,"spe":2,"spe11":25,"specif":21,"speed":2,"squash":3,"src":3,"stage":[4,22],"start":[4,13],"statfjord":26,"static":[3,4],"step":[2,3,13,17,21,22,26],"storag":[15,22],"str":[9,10,13,14,15,17,18,19],"string":2,"studi":[2,4,14,25,26],"style":18,"subfig":[4,26],"subfold":[22,24],"submit":26,"submodel":4,"submodul":[1,5,23],"subpackag":[1,20,23],"subsystem":21,"succe":3,"suit":21,"summari":18,"summary_plot":[5,16,18],"summary_sit":[5,16,18],"support":[2,20,21,22,26],"suptitl":[4,26],"surfac":[2,17,18],"sw":2,"swi":2,"system":[2,3],"t":[2,22,26],"tag":21,"taho":21,"tailor":25,"take":26,"tcc":20,"telescop":22,"temperatur":2,"templat":15,"temporal_interpol":[5,8,13],"temporal_interpolation_flux":[5,8,11],"temporal_interpolation_pressur":[5,8,11],"term":[3,4],"termin":[4,21],"test":[3,4,21,22],"test_2_generic_deck":4,"test_4_site_region":4,"test_generic_deck":24,"than":[0,3],"thei":4,"them":[0,2,22],"thi":[2,3,4,9,21,22,24,26],"thick":[2,13],"those":26,"three":[2,4],"threshold":2,"time":[2,11,13,17,22,26],"timestep":22,"toler":26,"toml":[2,4,10,22],"tool":[0,3,4,21,22,25,26],"top":[2,4,17,18],"total":26,"tracer":24,"tran":[2,26],"translat":26,"transmiss":26,"troll":26,"true":[2,19,26],"try":[3,21],"tsmaxz":2,"tug":21,"tune":[2,10],"turn":21,"tutori":[3,21],"two":[2,4,19,22],"txt":[3,21],"type":[4,21,25],"u":22,"ubuntu":[3,21],"until":2,"up":2,"updat":[9,21,22],"upgrad":21,"upper":2,"uprad":21,"us":[0,2,3,4,9,15,18,19,21,22,24,25,26],"user":[2,3,21],"util":[1,5,23],"utilii":[9,10,11,12,13,14,15],"v":[4,26],"v2":21,"v2025":21,"valid":22,"valu":[2,4,10,11,13,15,22,26],"variabl":[2,3,4,15],"veloc":4,"venv":21,"version":[5,21,26],"vertic":13,"vexprecc":21,"via":[2,20,21,26],"virtual":21,"visit":3,"visual":[1,2,4,5,23,24],"volum":[2,4,11,26],"vtk":25,"w":[2,4,22,26],"wa":[4,26],"warn":22,"water":[2,4],"we":[2,3,4,26],"weight":26,"welcom":[0,3],"well":[3,4,12,18,20,22,25,26],"well_coord":2,"wells_sit":[5,16,18],"wet":2,"wheel":21,"when":26,"where":[2,4,22],"which":[2,4,21,22,26],"while":[2,4,21,26],"whole":22,"width":2,"window":20,"without":[2,15,24],"work":[3,21],"world":[20,24],"would":22,"write":[2,4,9,13,15,21,22],"write_fil":[5,8,13,15],"write_fold":[5,8,15],"write_folder_it":[5,8,9],"write_grid":[5,8,15],"write_properti":[5,8,15],"writefil":[5,8],"written":[4,22,26],"wsl":21,"www":21,"x":[2,4,9,13,15,18,26],"xf":2,"xformat":[4,26],"xi":2,"xlnum":[4,26],"xunit":[4,26],"xy":[13,22],"xypolygon":4,"y":[2,4,9,13,18,26],"ye":4,"year":26,"yf":2,"yformat":[4,26],"yi":2,"ylnum":[4,26],"yml":[3,21,26],"you":[3,4,21,26],"your":[2,3,21,26],"yournam":3,"yunit":[4,26],"z":[2,4,11,13,18,22,26],"z_xy":2,"zag":2,"zf":2,"zi":2,"zig":2,"zone":22},"titles":["About expreccs","expreccs Python API","Configuration file","Contributing","Examples","expreccs package","expreccs.core package","expreccs.core.expreccs module","expreccs.utils package","expreccs.utils.backcoupling module","expreccs.utils.inputvalues module","expreccs.utils.mapboundaries module","expreccs.utils.mapproperties module","expreccs.utils.reg_sit_given_decks module","expreccs.utils.runs module","expreccs.utils.writefile module","expreccs.visualization package","expreccs.visualization.maps2d module","expreccs.visualization.plotting module","expreccs.visualization.reading module","Welcome to the expreccs\u2019s documentation!","Installation","Introduction","expreccs","Output folder","Related","TCCS-13"],"titleterms":{"":20,"13":26,"about":0,"ad":25,"api":1,"backcoupl":9,"boundari":4,"build":21,"concept":22,"configur":[2,4,24],"content":[5,6,8,16],"contribut":3,"core":[6,7],"deck":[4,24],"document":20,"exampl":4,"exprecc":[0,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,23],"file":[2,4,24],"flow":[4,21,24],"folder":24,"ground":3,"hello":4,"indic":20,"inputvalu":10,"instal":21,"introduct":22,"issu":3,"layer":4,"linux":21,"maco":21,"mapboundari":11,"mapproperti":12,"maps2d":17,"micp":25,"model":4,"modul":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"non":4,"opm":[4,21,24],"output":24,"overview":22,"packag":[5,6,8,16,21],"paramet":2,"plopm":25,"plot":18,"pofff":25,"problem":3,"pycopm":25,"pymm":25,"pyopmnearwel":25,"pyopmspe11":25,"python":[1,21],"read":19,"reg_sit_given_deck":13,"regular":4,"relat":[2,25],"report":3,"reservoir":2,"result":2,"rock":2,"rule":3,"run":14,"seek":3,"simul":2,"softwar":3,"sourc":21,"submodul":[6,8,16],"subpackag":5,"support":3,"tabl":20,"tcc":26,"util":[8,9,10,11,12,13,14,15],"via":[4,24],"visual":[16,17,18,19],"welcom":20,"well":2,"window":21,"world":4,"writefil":15}}) \ No newline at end of file +Search.setIndex({"alltitles":{"About expreccs":[[0,null]],"Binary packages":[[21,"binary-packages"]],"Brew formula for macOS":[[21,"brew-formula-for-macos"]],"Concept":[[22,"concept"]],"Configuration file":[[2,null]],"Contribute to the software":[[3,"contribute-to-the-software"]],"Contributing":[[3,null]],"Examples":[[4,null]],"Ground Rules":[[3,"ground-rules"]],"Hello world":[[4,"hello-world"]],"Indices and tables":[[20,"indices-and-tables"]],"Installation":[[21,null]],"Introduction":[[22,null]],"Layered model":[[4,"layered-model"]],"Module contents":[[5,"module-expreccs"],[6,"module-expreccs.core"],[8,"module-expreccs.utils"],[16,"module-expreccs.visualization"]],"Non-regular boundaries":[[4,"non-regular-boundaries"]],"OPM Flow":[[21,"opm-flow"]],"Output folder":[[24,null]],"Overview":[[22,"overview"]],"Python package":[[21,"python-package"]],"Regular boundaries":[[4,"regular-boundaries"]],"Related":[[25,null]],"Reporting issues or problems":[[3,"reporting-issues-or-problems"]],"Reservoir-related parameters":[[2,"reservoir-related-parameters"]],"Rock-related parameters":[[2,"rock-related-parameters"]],"Seek support":[[3,"seek-support"]],"Simulation results":[[2,"simulation-results"]],"Source build in Linux/Windows":[[21,"source-build-in-linux-windows"]],"Source build in macOS":[[21,"source-build-in-macos"]],"Submodules":[[6,"submodules"],[8,"submodules"],[16,"submodules"]],"Subpackages":[[5,"subpackages"]],"TCCS-13":[[26,null]],"Via OPM Flow decks":[[4,"via-opm-flow-decks"],[24,"via-opm-flow-decks"]],"Via configuration files":[[4,"via-configuration-files"],[24,"via-configuration-files"]],"Welcome to the expreccs\u2019s documentation!":[[20,null]],"Well-related parameters":[[2,"well-related-parameters"]],"ad-micp":[[25,"ad-micp"]],"expreccs":[[1,"expreccs"],[23,null]],"expreccs Python API":[[1,null]],"expreccs package":[[5,null]],"expreccs.core package":[[6,null]],"expreccs.core.expreccs module":[[7,null]],"expreccs.utils package":[[8,null]],"expreccs.utils.backcoupling module":[[9,null]],"expreccs.utils.inputvalues module":[[10,null]],"expreccs.utils.mapboundaries module":[[11,null]],"expreccs.utils.mapproperties module":[[12,null]],"expreccs.utils.reg_sit_given_decks module":[[13,null]],"expreccs.utils.runs module":[[14,null]],"expreccs.utils.writefile module":[[15,null]],"expreccs.visualization package":[[16,null]],"expreccs.visualization.maps2d module":[[17,null]],"expreccs.visualization.plotting module":[[18,null]],"expreccs.visualization.reading module":[[19,null]],"plopm":[[25,"plopm"]],"pofff":[[25,"pofff"]],"pycopm":[[25,"pycopm"]],"pymm":[[25,"pymm"]],"pyopmnearwell":[[25,"pyopmnearwell"]],"pyopmspe11":[[25,"pyopmspe11"]]},"docnames":["about","api","configuration_file","contributing","examples","expreccs","expreccs.core","expreccs.core.expreccs","expreccs.utils","expreccs.utils.backcoupling","expreccs.utils.inputvalues","expreccs.utils.mapboundaries","expreccs.utils.mapproperties","expreccs.utils.reg_sit_given_decks","expreccs.utils.runs","expreccs.utils.writefile","expreccs.visualization","expreccs.visualization.maps2d","expreccs.visualization.plotting","expreccs.visualization.reading","index","installation","introduction","modules","output_folder","related","tccs-13"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["about.rst","api.rst","configuration_file.rst","contributing.rst","examples.rst","expreccs.rst","expreccs.core.rst","expreccs.core.expreccs.rst","expreccs.utils.rst","expreccs.utils.backcoupling.rst","expreccs.utils.inputvalues.rst","expreccs.utils.mapboundaries.rst","expreccs.utils.mapproperties.rst","expreccs.utils.reg_sit_given_decks.rst","expreccs.utils.runs.rst","expreccs.utils.writefile.rst","expreccs.visualization.rst","expreccs.visualization.maps2d.rst","expreccs.visualization.plotting.rst","expreccs.visualization.reading.rst","index.rst","installation.rst","introduction.rst","modules.rst","output_folder.rst","related.rst","tccs-13.rst"],"indexentries":{},"objects":{"":[[5,0,0,"-","expreccs"]],"expreccs":[[6,0,0,"-","core"],[8,0,0,"-","utils"],[16,0,0,"-","visualization"]],"expreccs.core":[[7,0,0,"-","expreccs"]],"expreccs.core.expreccs":[[7,1,1,"","check_cmdargs"],[7,1,1,"","expreccs"],[7,1,1,"","load_parser"],[7,1,1,"","main"]],"expreccs.utils":[[9,0,0,"-","backcoupling"],[10,0,0,"-","inputvalues"],[11,0,0,"-","mapboundaries"],[12,0,0,"-","mapproperties"],[13,0,0,"-","reg_sit_given_decks"],[14,0,0,"-","runs"],[15,0,0,"-","writefile"]],"expreccs.utils.backcoupling":[[9,1,1,"","backcoupling"],[9,1,1,"","compute_multipliers"],[9,1,1,"","init_multipliers"],[9,1,1,"","write_folder_iter"]],"expreccs.utils.inputvalues":[[10,1,1,"","check_entries"],[10,1,1,"","process_input"],[10,1,1,"","process_tuning"]],"expreccs.utils.mapboundaries":[[11,1,1,"","aquaflux"],[11,1,1,"","handle_pressure_correction"],[11,1,1,"","handle_stencil"],[11,1,1,"","handle_stencil_2p"],[11,1,1,"","porv_projections"],[11,1,1,"","porv_regional_segmentation"],[11,1,1,"","temporal_interpolation_flux"],[11,1,1,"","temporal_interpolation_pressure"]],"expreccs.utils.mapproperties":[[12,1,1,"","mapping_properties"],[12,1,1,"","positions_reference"],[12,1,1,"","positions_regional"],[12,1,1,"","positions_rotation"],[12,1,1,"","positions_site"],[12,1,1,"","rotate_grid"]],"expreccs.utils.reg_sit_given_decks":[[13,1,1,"","check_intersection"],[13,1,1,"","check_regional_neighbours"],[13,1,1,"","create_deck"],[13,1,1,"","dynamic_interpolator"],[13,1,1,"","extract_site_borders"],[13,1,1,"","find_ij_orientation"],[13,1,1,"","find_regional_cells"],[13,1,1,"","get_bccon"],[13,1,1,"","get_xymaps"],[13,1,1,"","handle_grid_coord"],[13,1,1,"","project_pressures"],[13,1,1,"","site_contour"],[13,1,1,"","temporal_interpolation"],[13,1,1,"","write_files"]],"expreccs.utils.runs":[[14,1,1,"","plotting"],[14,1,1,"","run_models"],[14,1,1,"","simulations"]],"expreccs.utils.writefile":[[15,1,1,"","compact_format"],[15,1,1,"","write_files"],[15,1,1,"","write_folders"],[15,1,1,"","write_grid"],[15,1,1,"","write_properties"]],"expreccs.visualization":[[17,0,0,"-","maps2d"],[18,0,0,"-","plotting"],[19,0,0,"-","reading"]],"expreccs.visualization.maps2d":[[17,1,1,"","final_time_maps"],[17,1,1,"","final_time_maps_difference"],[17,1,1,"","geological_maps"],[17,1,1,"","manage_name"]],"expreccs.visualization.plotting":[[18,1,1,"","handle_labels_difference"],[18,1,1,"","handle_labels_distance"],[18,1,1,"","handle_site_summary"],[18,1,1,"","over_time_distance"],[18,1,1,"","over_time_max_difference"],[18,1,1,"","over_time_sensor"],[18,1,1,"","plot_results"],[18,1,1,"","plotting_settings"],[18,1,1,"","positions"],[18,1,1,"","summary_plot"],[18,1,1,"","summary_site"],[18,1,1,"","wells_site"]],"expreccs.visualization.reading":[[19,1,1,"","define_cases"],[19,1,1,"","make_arrays"],[19,1,1,"","manage_names"],[19,1,1,"","reading_simulations"]]},"objnames":{"0":["py","module","Python module"],"1":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:function"},"terms":{"":[2,3,4,21,22,24,26],"0":[2,4,15,21,22,24,26],"001":26,"00e":2,"01":2,"01013":2,"02":[4,26],"04":[3,21],"05e3":4,"0f":[4,26],"0pressur":26,"1":[2,4,21,22,26],"10":[2,21,26],"1000":2,"10000":2,"101":2,"1013":2,"10132":2,"10e3":4,"11":[3,21,26],"11000":2,"111":26,"112":26,"11377":2,"11423e":2,"116":26,"117":26,"11th":2,"12":[2,4,26],"126":26,"13":[3,20],"13140":26,"1324":2,"14":[2,21,26],"14518":2,"15":2,"15000":[2,4],"15e3":4,"16":[4,26],"160000":26,"17":21,"18000":2,"193531e":2,"199":4,"1d":18,"1e":[2,26],"1e0":26,"1e1":2,"1e2":2,"1e3":2,"1e4":2,"1e5":2,"1e6":2,"1e7":2,"1e8":2,"1f":[4,26],"2":[2,4,21,22,26],"20":[2,4],"20000":2,"202":2,"2025":[21,26],"203":26,"21180":2,"21583":2,"217":26,"21718":2,"22":2,"24":[3,4,21,26],"24081":2,"24200":2,"24886":26,"24e3":4,"25":[2,4,26],"26":[3,21],"2650":2,"27000":2,"2732":2,"28477":2,"2d":[17,18],"2e2":2,"2f":26,"3":[2,3,4,21,22,26],"30":[2,4,26],"3060":2,"3060e":2,"31":26,"31679":2,"319":4,"32":2,"324":2,"325":2,"336294":0,"33e3":4,"34":2,"365":2,"3870":2,"3b":26,"3e5":2,"4":[2,26],"41283":26,"417":4,"45":2,"450":26,"45000":2,"47":2,"48":26,"495000":26,"5":[2,4,26],"50":2,"500":4,"5000":2,"506":2,"50e3":4,"525":26,"55":2,"55e3":4,"56":26,"57":26,"5710":2,"5e6":2,"6":[2,4,26],"60":[2,26],"605e6":26,"60e3":4,"6120":2,"625":2,"63e":2,"65":[2,26],"650":2,"6625":2,"7":[2,22,26],"7068":2,"7122":2,"73":2,"7800":2,"8":[2,4,26],"80":26,"8000":2,"809":26,"80e3":4,"81":2,"8233":2,"8654":2,"8883":2,"9":[2,26],"92":2,"95":[4,26],"95000":26,"99e":2,"A":[9,25,26],"For":[0,2,3,4,21,26],"If":[2,4,21],"In":[2,3,4,21,22,24],"The":[0,1,2,3,4,21,22,24,26],"Then":[2,4,21,24,26],"There":21,"To":[2,4,21,26],"_":[9,26],"_build":3,"_of_input_fil":22,"abl":21,"about":[3,20],"abov":[2,26],"accept":3,"achiev":[2,4,21],"action":[3,21],"activ":[2,13,21,26],"actual":26,"ad":[2,9,10,20,21,22,26],"adapt":26,"add":[2,3,4,13,24],"addit":[1,2,3,4,21,24],"after":[4,12,21,24,26],"all":[2,3,4,21,22,26],"allow":[2,26],"along":[2,4,22],"also":[2,3,4,21,24],"altern":3,"an":[0,2,3,4,21,22,25],"anaconda":21,"analys":3,"ani":[2,3,4],"anim":4,"anoth":4,"answer":3,"api":20,"appl":21,"appli":4,"applic":4,"approach":[0,2,3,4,22,26],"apt":21,"aquaflux":[5,8,11],"aquif":[2,26],"ar":[0,2,3,4,9,13,21,22,24,25,26],"arg":[7,9,10,11,12,13,14,15,17,18,19],"argument":[2,7,22],"arrai":[2,13,19,22],"assess":2,"avail":[2,21],"averag":26,"avoid":2,"b":[22,26],"back":[9,19],"backcoupl":[5,8],"bar":[2,26],"base":[4,9,22,25],"bash":21,"bc":[2,4,11,13,15,22,24],"bccon":24,"becom":22,"been":21,"befor":[3,26],"below":[4,25],"benchmark":25,"better":18,"between":[1,4,17,18,22],"bfebf2":26,"bhp":[2,4,18],"bin":[2,3,21],"binari":[3,13,20],"black":[3,26],"bool":19,"boost":21,"border":[13,18],"both":2,"bottom":[2,4],"boundari":[2,11,13,20,22,24],"box":2,"branch":21,"brew":20,"brg":26,"build":[2,3,4,13,20],"build_opm_mpi":21,"built":21,"c":[2,4,22,26],"calcit":25,"call":[4,24],"can":[2,3,4,21,24,26],"capabl":2,"capillari":2,"cardin":13,"carlson":2,"case":[4,15,19],"cbsfax":[4,26],"cd":21,"cell":[2,4,11,13,18,22,24,26],"cet_diverging_rainbow_bgymr_45_85_c67":26,"cfd":25,"cformat":[4,26],"chang":[2,3,4],"check":[7,10,13,21,25],"check_cmdarg":[5,6,7],"check_entri":[5,8,10],"check_intersect":[5,8,13],"check_regional_neighbour":[5,8,13],"checker":3,"checkout":21,"chosen":2,"ci":[3,21],"ci_pycopm_maco":3,"clabel":26,"clang":21,"clone":21,"close":2,"closest":[2,13,18],"cm":21,"cmake":21,"cmdarg":7,"cnum":26,"cnv":26,"co2":[2,4,22,25],"coarsen":26,"coarsened_improv":26,"coarsened_perm":26,"coarsened_tran":26,"coarser":2,"code":[3,5,21],"coeffici":22,"collabor":3,"color":18,"com":[4,21,22,26],"combin":7,"command":[2,4,7,21,26],"commit":3,"common":[21,26],"compact":15,"compact_format":[5,8,15],"compar":[2,4,22,24],"comparison":[1,4],"compens":9,"complet":[17,19],"complex":4,"compress":2,"comput":[2,9],"compute_multipli":[5,8,9],"concept":20,"condit":[2,4,22,24],"config":4,"configur":[1,10,20,22],"conform":22,"connect":[13,22,24],"conrour":13,"consid":[2,4],"contact":26,"contain":[1,3],"content":[1,3,20,23],"continu":2,"contour":[13,22],"contribut":[0,20,21],"control":[2,26],"cook":26,"coord":13,"coordin":[2,13,18],"copi":[3,21],"core":[1,5,21,23,26],"corner":[2,15,22],"correct":11,"correspond":[1,2,4,22,24],"could":[21,24,26],"council":0,"count":13,"counter":11,"coupl":[9,19],"cov":[3,4],"cp":2,"cpg":[2,22],"cpr_trueimp":26,"creat":[3,4,13,21,22,24],"create_deck":[5,8,13],"csp":[2,25],"cssr":[4,21,22,26],"curiou":4,"current":[9,18,21,22,26],"current_directori":21,"curv":2,"d":[2,4,26],"d_z":13,"dai":[2,4],"data":[4,19,26],"dcmake_build_typ":21,"dcmake_disable_find_package_mpi":21,"dcmake_prefix_path":21,"de":24,"deactiv":2,"deck":[1,2,13,14,18,19,20,22,26],"dedic":21,"default":[2,22],"defin":[2,4,22],"define_cas":[5,16,19],"definit":[2,24],"delax":[4,26],"demonstr":4,"depend":[3,21,26],"depth":[2,26],"describ":[2,3,22,26],"desir":2,"detail":0,"dev":[3,21],"develop":[21,22],"dic":[9,10,11,12,13,14,15,17,18,19],"dict":[7,9,10,11,12,13,14,15,17,18,19],"dictionari":[9,10,11,12,13,14,15,17,18,19],"differ":[1,2,4,9,11,12,17,18,22,24],"dimens":[2,26],"dir":[2,11,13],"dire":13,"direct":[2,4,13],"directli":24,"director":26,"directori":[3,22],"discret":[2,22],"distanc":[4,18],"dmar":2,"do":[4,21,22],"doc":3,"document":[2,3,21,22,24],"doe":4,"doi":26,"done":[9,21],"doplot":19,"download":21,"dune":21,"dunecontrol":21,"duse_mpi":21,"dvipng":21,"dwith_ndebug":21,"dynam":[2,4,22,24,25],"dynamic_interpol":[5,8,13],"e":[2,3,4,21,22,24,26],"each":[2,22],"echo":21,"edg":21,"ehystr":2,"either":21,"els":21,"em":25,"email":[3,21],"enabl":[2,26],"end":[2,4,26],"energi":0,"enter":2,"enterpris":21,"entri":[2,10,22],"environ":[3,21],"equal":[4,22],"equidist":22,"equinor":0,"error":2,"ert":26,"evalu":[2,22],"everest":26,"exampl":[2,20,24],"example1":[2,4],"example1_porvproj":4,"example1_pr":4,"example1_wel":[2,4],"example2":4,"except":2,"execut":[1,2,3,4,7,21,22,24,26],"exisit":26,"exist":21,"exmapl":2,"explain":4,"explicit":22,"expon":2,"exponenti":22,"export":[3,21],"exprecc":[2,3,4,21,22,24,26],"expreccs_dpincreas":4,"expreccs_perfipnum":4,"expreccss":1,"extend":[2,3],"extra":21,"extract":[4,18],"extract_site_bord":[5,8,13],"f":[4,22,26],"face":[11,21],"fals":19,"familiar":3,"fault":[2,12,22,26],"fault_region":2,"fault_sit":2,"featur":[0,26],"few":26,"fi":21,"fig":26,"fig1":26,"fig10a":26,"fig10bc":26,"fig12a":26,"fig2":26,"fig3b":26,"fig5":26,"fig6a":26,"fig6b":26,"fig8low":26,"fig8upp":26,"fig9":26,"figur":[4,14,17,19,21,22,26],"fil":9,"file":[1,3,10,13,15,19,20,21,22,26],"final":[2,4,26],"final_time_map":[5,16,17],"final_time_maps_differ":[5,16,17],"find":[12,13],"find_ij_orient":[5,8,13],"find_regional_cel":[5,8,13],"fipnum":[4,13,22],"fipr":13,"first":[2,19,21,26],"five":2,"fix":3,"flag":[2,4,7,22,24],"flexibl":22,"float":13,"flow":[2,3,14,15,19,20,25,26],"flow_maco":3,"fluid":2,"fluidflow":25,"flux":[2,4,9,11],"flux_region":9,"flux_sit":9,"focus":22,"fol":[18,19],"folder":[1,2,3,4,9,15,17,18,19,20,21,22,26],"follow":[2,4,21,22,24,26],"font":21,"fork":[0,3],"format":[3,21],"former":4,"formula":20,"fot":13,"fraction":[2,26],"framework":[2,22,25],"frequenc":22,"friend":4,"from":[2,3,4,9,10,11,13,18,19,21,22,25,26],"full":2,"function":[2,4,7,9,10,11,12,13,14,15],"fund":0,"further":[2,4],"g":[2,3,4,21,22,24],"ga":[2,4],"gasda":26,"gener":[1,2,3,4,14,22,24,25,26],"geolog":[1,2,4,9,14,15,22,25],"geological_map":[5,16,17],"geometri":21,"get":[3,13,21,26],"get_bccon":[5,8,13],"get_xymap":[5,8,13],"gif":25,"gind":13,"git":[4,21,26],"github":[3,4,21,22,26],"gitlab":21,"give":2,"given":[1,2,4,9,13,22,24],"global":[9,10,11,12,13,14,15,17,18,19,26],"gnuplot2":26,"grade":22,"grid":[2,4,12,13,15,21,22,26],"ground":20,"group":2,"h":[2,26],"ha":[2,21,26],"hand":13,"handl":[12,22],"handle_grid_coord":[5,8,13],"handle_labels_differ":[5,16,18],"handle_labels_dist":[5,16,18],"handle_pressure_correct":[5,8,11],"handle_site_summari":[5,16,18],"handle_stencil":[5,8,11],"handle_stencil_2p":[5,8,11],"handli":22,"harbour":0,"hat":21,"have":21,"height":2,"hello":[20,24],"hello_world":4,"hello_world_distance_from_bord":4,"hello_world_reference_watfluxi":4,"hello_world_regional_watfluxi":4,"hello_world_sensor_pressure_over_tim":4,"hello_world_site_flux_watfluxi":4,"hello_world_summary_bhp_site_refer":4,"help":[2,3,21],"here":[0,2,4,24,26],"heterogein":[2,22],"heterogen":4,"higher":2,"histori":25,"home":4,"homebrew":21,"homogen":26,"horizont":13,"host":22,"how":[4,26],"html":3,"http":[4,21,22,26],"hydrosta":13,"hysteresi":[2,22],"hystopt":2,"i":[0,1,2,3,4,9,11,13,18,21,22,24,26],"identifi":22,"ignor":3,"ij":4,"imag":[1,25],"imbibit":2,"imbnum":26,"implement":[2,22],"import":3,"improv":[18,22,26],"in_fil":10,"inact":[4,22],"inc":[4,24],"includ":[1,4,21,22],"increas":[4,22,26],"ind":13,"index":[13,18,20],"indic":[13,18],"induc":25,"init_multipli":[5,8,9],"initi":[2,9,13],"inj":2,"inject":[2,18],"injector":[2,4],"input":[1,2,4,9,10,14,22],"inputvalu":[5,8],"insid":[2,4,21],"instal":[3,4,20,26],"instead":2,"instruct":21,"int":[9,11,13,18],"integr":2,"interest":[2,21,25],"interp":2,"interpol":[2,4,11,13,24],"introduct":[4,20],"invalid":7,"irregular":22,"issu":[0,20,21],"istl":21,"iter":[2,9,11,15,26],"iterativli":9,"j":[18,22],"j5":21,"johansen":26,"jump":2,"kept":2,"keyword":2,"kg":2,"killough":2,"km":[4,26],"kr":2,"krn":2,"krw":2,"kxy":2,"kz":2,"l":[4,21,22,26],"label":[4,18,24],"landa":26,"last":[17,19],"later":4,"latest":21,"latex":21,"layer":[2,20,22],"leakag":25,"left":[2,4,13],"length":2,"librari":21,"like":21,"lim":26,"limipr":26,"limit":[2,26],"line":[2,3,4,13,18,21],"linear":[2,26],"link":[0,21],"lint":21,"linux":20,"list":[13,15,18,19],"literatur":26,"load_pars":[5,6,7],"local":3,"locat":[1,2,4,11,12,18,22,26],"log":26,"look":[3,26],"lot":26,"lower":2,"m":[2,4,21,22,26],"machin":[2,21],"maco":[3,20],"macport":21,"mactex":21,"main":[1,3,5,6,7],"maintain":[3,21],"make":[3,15,21],"make_arrai":[5,16,19],"mako":[1,15],"mamba":21,"manag":[18,21],"manage_nam":[5,16,17,19],"managua_r":26,"mani":2,"mantain":3,"manual":2,"manuscript":4,"map":[4,11,12,13,17,18,22],"mapboundari":[5,8],"mapp":4,"mapping_properti":[5,8,12],"mapproperti":[5,8],"maps2d":[5,16],"marb\u00e1n":26,"mark":22,"master":21,"match":[25,26],"max":[2,18,26],"maximum":[2,26],"md":2,"merg":3,"metric":22,"micp":20,"microbi":25,"microsystem":25,"middel":4,"middl":[2,4],"might":[3,21,25,26],"min":[2,26],"miniforg":21,"minimum":4,"miss":[3,4],"mkdir":21,"model":[1,2,9,13,14,15,17,19,20,22,24,25,26],"modif":22,"modifi":[9,10,11,12,13,14,15,17,18,19,21,24],"modul":[1,20,21,23,25],"more":[0,3,4],"mpi":21,"mpirun":[2,26],"mt":2,"mult":9,"multipli":[2,9],"mypi":3,"n":[2,4,13,15,22],"name":[2,4,9,10,14,15,17,18,19,22],"ndeck":18,"necessari":[4,15],"need":[3,21,22,26],"neighbour":13,"new":[0,3,4,10],"newton":[2,26],"newtoniterationcount":26,"nfol":18,"nice":[3,21,22],"nkrn":2,"nkrw":2,"nnc":13,"non":[2,20],"none":[7,9,10,14,15,17,18,22],"norwai":0,"norwegian":26,"notat":15,"now":[2,4],"np":[2,26],"npen":2,"npoint":2,"nqua":18,"nquan":18,"nrst":18,"num":2,"number":[0,2,9,13,18,22,26],"numpi":15,"nwell":18,"nx":22,"ny":22,"o":[4,22,24],"observ":2,"offset":[4,13,22],"offshor":26,"one":[2,4,24],"ones":26,"onli":[2,4,19,21,22],"onlin":21,"open":[2,21,25],"openbla":21,"oper":[2,22],"opernum":[4,24],"opernum_exprecc":[4,24],"opm":[1,2,3,14,15,18,19,20,25,26],"opmn":18,"optim":[4,26],"optimal_solut":26,"option":[2,7,21,22],"order":2,"org":[21,26],"orginin":26,"origen":2,"origin":26,"other":21,"our":[3,4],"out":[17,19,25],"output":[2,15,18,19,20,22],"over":[2,13],"over_time_dist":[5,16,18],"over_time_max_differ":[5,16,18],"over_time_sensor":[5,16,18],"overlap":[4,13,24],"overpr":26,"overpressur":26,"overview":[2,20],"own":3,"p":[4,13,22,26],"packag":[1,3,4,20,23],"page":[3,4,20],"paper":26,"paper_2025":4,"parallel":26,"paramet":[10,20],"part":4,"partit":22,"path":[2,3,21,22],"path_to_the_regional_model":4,"path_to_the_site_model":4,"pc":2,"pcap":2,"pen":2,"per":[2,4,22],"period":2,"perm":[2,26],"permeabl":26,"phi":2,"pi":2,"pip":[3,4,21,26],"platform":21,"pleas":[0,3],"plopm":[4,20,21,24,26],"plot":[5,8,14,15,16,17,19,22,24],"plot_result":[5,16,18],"plotting_set":[5,16,18],"plume":4,"png":[1,4,25],"pofff":20,"point":[2,15,18,22],"pore":[2,4,11,26],"poro":26,"porv":[2,26],"porv_project":[5,8,11],"porv_regional_segment":[5,8,11],"porvproj":[2,4],"posit":[2,5,12,13,16,18],"positions_refer":[5,8,12],"positions_region":[5,8,12],"positions_rot":[5,8,12],"positions_sit":[5,8,12],"possibl":[2,3],"postprocess":[4,22,24,26],"powerpoint":26,"pr":3,"practic":2,"pre":[2,4,11],"precipit":25,"prefer":3,"prefix":15,"preprocess":[10,22,24],"prerequisit":21,"pres2p":2,"prescrib":4,"pressur":[1,2,4,11,13,18,22,24,26],"presur":2,"previou":[3,4,21],"problem":[20,21],"proce":[2,4],"proceed":26,"process":[1,10,13],"process_input":[5,8,10],"process_tun":[5,8,10],"prod":2,"produc":[2,4],"project":[0,1,2,4,11,13,18,21,22,25],"project_pressur":[5,8,13],"prompt":26,"properti":[2,22,26],"pull":[0,3],"push":3,"pushd":3,"pv":[2,11,26],"pwd":21,"py":[4,24,26],"pycopm":[2,3,4,20,26],"pylint":3,"pymm":20,"pyopmnearwel":20,"pyopmspe11":[3,20],"pytest":[3,4],"python":[3,20,25,26],"python3":[21,26],"quantiti":[12,17,18,19],"quick":25,"quotat":22,"r":[2,3,4,21,26],"rais":[0,3,21],"rate":[2,18],"re":[17,18,19],"read":[5,11,16],"reading_simul":[5,16,19],"recent":21,"recommend":21,"record":2,"rectangl":[4,22],"red":21,"refer":[1,2,4,12,14,15,17,18,22,24],"reference_x_n":2,"reference_y_n":2,"reference_z_n":2,"refin":[2,4,11],"reg":[11,13],"reg_sit_given_deck":[5,8],"regard":[2,4],"region":[1,2,4,9,11,13,14,18,22,24],"regional_bctyp":2,"regional_dim":2,"regional_sit":22,"regional_x_n":2,"regional_y_n":2,"regional_z_n":2,"regul":4,"regular":20,"rel":2,"relat":[3,15,20,24],"relax":[2,26],"releas":21,"remedi":25,"remov":26,"repit":15,"replac":3,"repo":[3,21],"report":[4,13,20,22],"repositori":[3,21],"reproduc":26,"request":[0,3],"requier":[4,12],"requir":[2,3,10,21],"requiri":10,"rerun":4,"research":0,"reservoir":[4,12,15,17,18,20],"residu":2,"resinsight":[2,4,21,24,26],"resourc":26,"respect":[2,4],"rest":26,"restart":[2,13],"result":[4,20,21,24,26],"return":[7,9,10,11,12,13,14,15,17,18,19],"review":3,"rg":26,"right":[2,13],"rise":3,"rock":[20,22],"rock_comp":2,"rotat":[4,12,22],"rotate_grid":[5,8,12],"routin":[1,15,18],"row":2,"rpr":4,"rst":[2,26],"rule":20,"run":[1,2,3,4,5,8,15,21,22,24,26],"run_model":[5,8,14],"safu":2,"salin":2,"same":[2,4,26],"sand":2,"sandv":26,"sandwich":4,"sat":2,"satur":[2,4,18],"save":[4,15,24,26],"schedul":[2,4,11,18,22],"screenshot":[2,24],"script":[1,3,7,11,13,17,18,19,21],"search":20,"second":2,"section":[2,4,22],"see":[2,3,4,21,22,24],"seek":20,"select":[4,24],"send":[3,21],"sensor":[2,4,18,26],"sensor_coord":2,"set":[2,4,10,12,18,21,22,26],"set1_r":4,"setuptool":21,"sga":4,"sh":21,"share":2,"shell":0,"should":[21,26],"show":[1,2,4,24],"shut":2,"side":[2,11,13,22],"similar":26,"similarli":2,"simillarli":2,"simpl":4,"simpler":2,"simpli":21,"simplic":4,"simplifi":22,"simul":[1,3,4,5,8,14,17,19,20,21,22,24,25],"sin":2,"sinc":[2,26],"singl":3,"sintef":26,"site":[1,2,4,9,11,12,13,14,17,18,22,24],"site_bctyp":2,"site_clos":[4,24],"site_contour":[5,8,13],"site_loc":2,"six":[2,3],"size":[2,4],"skip":[21,22,26],"sni":2,"so":21,"softwar":20,"solut":2,"solver":[24,26],"some":[4,15,24,25],"soon":3,"sourc":[3,20,25],"space":22,"spars":21,"spatial":13,"spe":2,"spe11":25,"specif":21,"speed":2,"squash":3,"src":3,"stage":[4,22],"start":[4,13],"statfjord":26,"static":[3,4],"step":[2,3,13,17,21,22,26],"still":21,"storag":[15,22],"str":[9,10,13,14,15,17,18,19],"string":2,"studi":[2,4,14,25,26],"style":18,"subfig":[4,26],"subfold":[22,24],"submit":26,"submodel":4,"submodul":[1,5,23],"subpackag":[1,20,23],"subsystem":21,"succe":3,"succed":21,"sudo":21,"suit":21,"summari":18,"summary_plot":[5,16,18],"summary_sit":[5,16,18],"super":21,"support":[2,20,21,22,26],"suptitl":[4,26],"surfac":[2,17,18],"sw":2,"swi":2,"system":[2,3],"t":[2,22,26],"tag":21,"taho":21,"tailor":25,"take":26,"tcc":20,"telescop":22,"temperatur":2,"templat":15,"temporal_interpol":[5,8,13],"temporal_interpolation_flux":[5,8,11],"temporal_interpolation_pressur":[5,8,11],"term":[3,4],"termin":[4,21],"test":[3,4,21,22],"test_2_generic_deck":4,"test_4_site_region":4,"test_generic_deck":24,"texliv":21,"than":[0,3],"thei":4,"them":[0,2,22],"thi":[2,3,4,9,21,22,24,26],"thick":[2,13],"those":26,"three":[2,4],"threshold":2,"through":21,"time":[2,11,13,17,22,26],"timestep":22,"toler":26,"toml":[2,4,10,22],"tool":[0,3,4,21,22,25,26],"top":[2,4,17,18],"total":26,"tracer":24,"tran":[2,26],"translat":26,"transmiss":26,"troll":26,"true":[2,19,26],"try":[3,21],"tsmaxz":2,"tug":21,"tune":[2,10],"turn":21,"tutori":[3,21],"two":[2,4,19,22],"txt":[3,21],"type":[4,21,25],"u":22,"ubuntu":[3,21],"until":2,"up":2,"updat":[9,21,22],"upgrad":21,"upper":2,"uprad":21,"us":[0,2,3,4,9,15,18,19,21,22,24,25,26],"user":[2,3,21],"util":[1,5,23],"utilii":[9,10,11,12,13,14,15],"v":[4,26],"v2":21,"v2025":21,"valid":22,"valu":[2,4,10,11,13,15,22,26],"variabl":[2,3,4,15],"veloc":4,"venv":21,"version":[5,21,26],"vertic":13,"vexprecc":21,"via":[2,20,21,26],"virtual":21,"visit":3,"visual":[1,2,4,5,21,23,24],"volum":[2,4,11,26],"vtk":25,"w":[2,4,22,26],"wa":[4,26],"water":[2,4],"we":[2,3,4,26],"weight":26,"welcom":[0,3],"well":[3,4,12,18,20,22,25,26],"well_coord":2,"wells_sit":[5,16,18],"wet":2,"wheel":21,"when":26,"where":[2,4,22],"which":[2,4,21,22,26],"while":[2,4,21,26],"whole":22,"width":2,"window":20,"without":[2,15,24],"work":[3,21],"world":[20,24],"would":[21,22],"write":[2,4,9,13,15,21,22],"write_fil":[5,8,13,15],"write_fold":[5,8,15],"write_folder_it":[5,8,9],"write_grid":[5,8,15],"write_properti":[5,8,15],"writefil":[5,8],"written":[4,22,26],"wsl":21,"www":21,"x":[2,4,9,13,15,18,26],"xf":2,"xformat":[4,26],"xi":2,"xlnum":[4,26],"xunit":[4,26],"xy":[13,22],"xypolygon":4,"y":[2,4,9,13,18,26],"ye":4,"year":26,"yf":2,"yformat":[4,26],"yi":2,"ylnum":[4,26],"yml":[3,21,26],"you":[3,4,21,26],"your":[2,3,21,26],"yournam":3,"yunit":[4,26],"z":[2,4,11,13,18,22,26],"z_xy":2,"zag":2,"zf":2,"zi":2,"zig":2,"zone":22,"zprofil":21},"titles":["About expreccs","expreccs Python API","Configuration file","Contributing","Examples","expreccs package","expreccs.core package","expreccs.core.expreccs module","expreccs.utils package","expreccs.utils.backcoupling module","expreccs.utils.inputvalues module","expreccs.utils.mapboundaries module","expreccs.utils.mapproperties module","expreccs.utils.reg_sit_given_decks module","expreccs.utils.runs module","expreccs.utils.writefile module","expreccs.visualization package","expreccs.visualization.maps2d module","expreccs.visualization.plotting module","expreccs.visualization.reading module","Welcome to the expreccs\u2019s documentation!","Installation","Introduction","expreccs","Output folder","Related","TCCS-13"],"titleterms":{"":20,"13":26,"about":0,"ad":25,"api":1,"backcoupl":9,"binari":21,"boundari":4,"brew":21,"build":21,"concept":22,"configur":[2,4,24],"content":[5,6,8,16],"contribut":3,"core":[6,7],"deck":[4,24],"document":20,"exampl":4,"exprecc":[0,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,23],"file":[2,4,24],"flow":[4,21,24],"folder":24,"formula":21,"ground":3,"hello":4,"indic":20,"inputvalu":10,"instal":21,"introduct":22,"issu":3,"layer":4,"linux":21,"maco":21,"mapboundari":11,"mapproperti":12,"maps2d":17,"micp":25,"model":4,"modul":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"non":4,"opm":[4,21,24],"output":24,"overview":22,"packag":[5,6,8,16,21],"paramet":2,"plopm":25,"plot":18,"pofff":25,"problem":3,"pycopm":25,"pymm":25,"pyopmnearwel":25,"pyopmspe11":25,"python":[1,21],"read":19,"reg_sit_given_deck":13,"regular":4,"relat":[2,25],"report":3,"reservoir":2,"result":2,"rock":2,"rule":3,"run":14,"seek":3,"simul":2,"softwar":3,"sourc":21,"submodul":[6,8,16],"subpackag":5,"support":3,"tabl":20,"tcc":26,"util":[8,9,10,11,12,13,14,15],"via":[4,24],"visual":[16,17,18,19],"welcom":20,"well":2,"window":21,"world":4,"writefil":15}}) \ No newline at end of file diff --git a/docs/tccs-13.html b/docs/tccs-13.html index aae07d7..fa9d468 100644 --- a/docs/tccs-13.html +++ b/docs/tccs-13.html @@ -167,7 +167,7 @@

      TCCS-13
      -

      © Copyright 2023-2025, NORCE Research AS.

      +

      © Copyright 2023-2026, NORCE Research AS.

      Built with
      Sphinx using a diff --git a/docs/text/conf.py b/docs/text/conf.py index 145dfb1..c91f0fb 100644 --- a/docs/text/conf.py +++ b/docs/text/conf.py @@ -7,7 +7,7 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project = 'expreccs' -copyright = '2023-2025, NORCE Research AS' +copyright = '2023-2026, NORCE Research AS' # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/docs/text/installation.rst b/docs/text/installation.rst index 783711c..545acd3 100644 --- a/docs/text/installation.rst +++ b/docs/text/installation.rst @@ -6,6 +6,18 @@ The following steps work installing the dependencies in Linux via apt-get or in While using package managers such as Anaconda, Miniforge, or Mamba might work, these are not tested. The supported Python versions are 3.11 to 3.14. +`ResInsight `_ and `plopm `_ can be used for the visualization of the results. + +.. note:: + + There are binary packages for Linux and Windows to install Resinsight, see the `ResInsight Documentation `_. For macOS users, you could try to install it using `brew `_ by executing: + + .. code-block:: bash + + brew install cssr-tools/opm/resinsight + + Then, you should be able to open resinsight by typing in the terminal **resinsight**. + .. _vexpreccs: Python package @@ -43,12 +55,27 @@ install the Python requirements in a virtual environment with the following comm Typing **git tag -l** writes all available specific versions. +.. note:: + + For not macOS users, to install the (optional but recommended) dependencies used for the figure's LaTeX formatting, execute + + **sudo apt-get install texlive-fonts-recommended texlive-fonts-extra dvipng cm-super** + + For macOS users, the LaTeX dependency can be installed from https://www.tug.org/mactex/. + OPM Flow -------- You also need to install: * OPM Flow (https://opm-project.org, Release 2025.10 or current master branches) +Binary packages ++++++++++++++++ + +See the `downloading and installing `_ OPM Flow online documentation for +instructions to install the binary packages in Ubuntu and Red Hat Enterprise Linux, and for other platforms which are +supported either via source builds or through running a virtual machine. + .. tip:: See the `CI.yml `_ script @@ -86,30 +113,40 @@ in the terminal the following lines (which in turn should build flow in the fold .. _macOS: +Brew formula for macOS +++++++++++++++++++++++ +For macOS, there are no available binary packages, so OPM Flow needs to be built from source. Recently, a formula to build flow using brew has +been added in `https://github.com/cssr-tools/homebrew-opm `_. +Then, you can try to install flow (v2025.10) by simply typing: + +.. code-block:: console + + brew install cssr-tools/opm/opm-simulators + +You can check if the installation of OPM Flow succeded by typing in the terminal **flow \-\-help**. + +.. tip:: + See the actions in the `cssr-tools/homebrew-opm `_ repository. + Source build in macOS +++++++++++++++++++++ -For macOS, there are no available binary packages, so OPM Flow needs to be built from source, in addition to the dune libraries and the OPM Python -package (see the `prerequisites `_, which can be installed using macports or brew). -For example, with brew the prerequisites can be installed by: +If you would like to build the latest OPM Flow from the master branch, then you can first install the prerequisites using brew: .. code-block:: console brew install boost openblas suite-sparse python@3.14 cmake In addition, it is recommended to uprade and update your macOS to the latest available versions (the following steps have -worked for macOS Tahoe 26.1 with Apple clang version 17.0.0). -After the prerequisites are installed and the vexpreccs Python environment is created (see :ref:`vexpreccs`), -then building OPM Flow can be achieved with the following bash lines: +worked for macOS Tahoe 26.2.0 with Apple clang version 17.0.0). +After the prerequisites are installed, then building OPM Flow can be achieved with the following bash lines: .. code-block:: console CURRENT_DIRECTORY="$PWD" - deactivate - source vexpreccs/bin/activate - for module in common geometry grid istl - do git clone https://gitlab.dune-project.org/core/dune-$module.git --branch v2.9.1 + do git clone https://gitlab.dune-project.org/core/dune-$module.git + cd dune-$module && git checkout v2.10.0 && cd .. ./dune-common/bin/dunecontrol --only=dune-$module cmake -DCMAKE_DISABLE_FIND_PACKAGE_MPI=1 ./dune-common/bin/dunecontrol --only=dune-$module make -j5 done @@ -118,8 +155,7 @@ then building OPM Flow can be achieved with the following bash lines: for repo in common grid simulators do git clone https://github.com/OPM/opm-$repo.git - mkdir build/opm-$repo - cd build/opm-$repo + mkdir build/opm-$repo && cd build/opm-$repo cmake -DUSE_MPI=0 -DWITH_NDEBUG=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$CURRENT_DIRECTORY/dune-common/build-cmake;$CURRENT_DIRECTORY/dune-grid/build-cmake;$CURRENT_DIRECTORY/dune-geometry/build-cmake;$CURRENT_DIRECTORY/dune-istl/build-cmake;$CURRENT_DIRECTORY/build/opm-common;$CURRENT_DIRECTORY/build/opm-grid" $CURRENT_DIRECTORY/opm-$repo if [[ $repo == simulators ]]; then make -j5 flow @@ -129,11 +165,11 @@ then building OPM Flow can be achieved with the following bash lines: cd ../.. done - echo "export PATH=\$PATH:$CURRENT_DIRECTORY/build/opm-simulators/bin" >> $CURRENT_DIRECTORY/vexpreccs/bin/activate + echo "export PATH=\$PATH:$CURRENT_DIRECTORY/build/opm-simulators/bin" >> ~/.zprofile + source ~/.zprofile - deactivate - source vexpreccs/bin/activate +This builds OPM Flow, and it exports the path to the flow executable. You can check if the installation of OPM Flow succeded by typing in the terminal **flow \-\-help**. -This builds OPM Flow, and it exports the path to the flow executable (i.e., executing in the terminal **which flow** should print the path). - -For macOS, the (optional but recommended) LaTeX dependency can be installed from https://www.tug.org/mactex/. +.. tip:: + See `this repository `_ dedicated to build OPM Flow from source in the latest macOS (GitHub actions). + If you still face problems, raise an issue in the GitHub repository, or you could also send an email to the maintainers. diff --git a/docs/text/introduction.rst b/docs/text/introduction.rst index 2927f31..8f8d41a 100644 --- a/docs/text/introduction.rst +++ b/docs/text/introduction.rst @@ -41,7 +41,6 @@ where -b Set the number of entries to skip the bc projections on the site, where 'j=0,i=nx-1,j=ny-1,i=0', e.g., '[0,2,0,0]' would skip all cells with i=nx and i=nx-1; this becomes handly for models where all cells in a given site are inactive along a side ('[0,0,0,0]' by default). -f Frequency to evaluate the boundary pressures on the site between report steps in the site. Write an array, e.g., '2,7,3', to set the frequency in each site report step ('1' by default). -a Exponential 'a' coefficient for the telescopic time-discretization for the given frequency '-f'. Write an array, e.g., '2.2,0,3.1', to set the coefficient in each site report step ('3.2' by default, use 0 for an equidistance partition). --w Set to 1 to print warnings ('0' by default). -e Set to 0 to write the pressure increase on the site bc from the regional values ('1' by default, i.e., the pressure values on the boundaries correspond to the explicit values on the regional simulations). -z Set to 1 to project the regional pressures per fipnum zones, i.e., the pressure maps to the site bcs are written for equal fipnum numbers in the whole xy layer ('0' by default, i.e., the projections include the z location offset between regional and site models). -s Set to 0 to not create the subfolders preprocessing, output, and postprocessing, i.e., to write all generated files in the output directory ('1' by default). diff --git a/examples/paper_2025/Case1/run_case1.py b/examples/paper_2025/Case1/run_case1.py index 9becfc0..f514fcc 100644 --- a/examples/paper_2025/Case1/run_case1.py +++ b/examples/paper_2025/Case1/run_case1.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2024-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 # pylint: disable=R1713 diff --git a/examples/paper_2025/Case2/run_case2.py b/examples/paper_2025/Case2/run_case2.py index 9d0bd55..a8c81b4 100644 --- a/examples/paper_2025/Case2/run_case2.py +++ b/examples/paper_2025/Case2/run_case2.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2024-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """ diff --git a/examples/paper_2025/Case3/run_case3.py b/examples/paper_2025/Case3/run_case3.py index 8e1b89c..9d49fad 100644 --- a/examples/paper_2025/Case3/run_case3.py +++ b/examples/paper_2025/Case3/run_case3.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2024-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """ diff --git a/examples/paper_2025/Case4/run_case4.py b/examples/paper_2025/Case4/run_case4.py index d532f81..4ae5144 100644 --- a/examples/paper_2025/Case4/run_case4.py +++ b/examples/paper_2025/Case4/run_case4.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2024-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """ diff --git a/src/expreccs/core/expreccs.py b/src/expreccs/core/expreccs.py index c16df2b..8595246 100644 --- a/src/expreccs/core/expreccs.py +++ b/src/expreccs/core/expreccs.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 # pylint: disable=R0912,R0915 @@ -8,7 +8,6 @@ import sys import shutil import argparse -import warnings from expreccs.utils.inputvalues import process_input from expreccs.utils.runs import run_models, plotting from expreccs.utils.writefile import write_folders, write_properties @@ -25,8 +24,6 @@ def expreccs(): """Main function for the expreccs executable""" cmdargs = load_parser() check_cmdargs(cmdargs) - if int(cmdargs["warnings"]) == 0: - warnings.warn = lambda *args, **kwargs: None file = (cmdargs["input"].strip()).split(" ") # Name of the input file dic = {"fol": os.path.abspath(cmdargs["output"])} # Name for the output folder dic["pat"] = os.path.dirname(__file__)[:-5] # Path to the expreccs folder @@ -214,12 +211,6 @@ def load_parser(): "the coefficient in each site report step ('3.2' by default, use 0 for an " "equidistance partition).", ) - parser.add_argument( - "-w", - "--warnings", - default=0, - help="Set to 1 to print warnings ('0' by default).", - ) parser.add_argument( "-e", "--explicit", diff --git a/src/expreccs/templates/common/saturation_functions.mako b/src/expreccs/templates/common/saturation_functions.mako index f511499..94d09c5 100644 --- a/src/expreccs/templates/common/saturation_functions.mako +++ b/src/expreccs/templates/common/saturation_functions.mako @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 #!/usr/bin/env python diff --git a/src/expreccs/templates/decks/reference.mako b/src/expreccs/templates/decks/reference.mako index 49b61bf..1f9273d 100644 --- a/src/expreccs/templates/decks/reference.mako +++ b/src/expreccs/templates/decks/reference.mako @@ -1,6 +1,6 @@ <% import math as mt -%>-- Copyright (C) 2023-2025 NORCE +%>-- Copyright (C) 2023-2026 NORCE Research AS -- This deck was generated by expreccs https://github.com/cssr-tools/expreccs ---------------------------------------------------------------------------- RUNSPEC diff --git a/src/expreccs/templates/decks/regional.mako b/src/expreccs/templates/decks/regional.mako index 03ce389..921590c 100644 --- a/src/expreccs/templates/decks/regional.mako +++ b/src/expreccs/templates/decks/regional.mako @@ -1,6 +1,6 @@ <% import math as mt -%>-- Copyright (C) 2023-2025 NORCE +%>-- Copyright (C) 2023-2026 NORCE Research AS -- This deck was generated by expreccs https://github.com/cssr-tools/expreccs ---------------------------------------------------------------------------- RUNSPEC diff --git a/src/expreccs/templates/decks/site.mako b/src/expreccs/templates/decks/site.mako index dbf0b3a..176bbf8 100644 --- a/src/expreccs/templates/decks/site.mako +++ b/src/expreccs/templates/decks/site.mako @@ -1,7 +1,7 @@ <% import math as mt import numpy as np -%>-- Copyright (C) 2023-2025 NORCE +%>-- Copyright (C) 2023-2026 NORCE Research AS -- This deck was generated by expreccs https://github.com/cssr-tools/expreccs ---------------------------------------------------------------------------- RUNSPEC diff --git a/src/expreccs/utils/backcoupling.py b/src/expreccs/utils/backcoupling.py index e25c46e..b6955d5 100644 --- a/src/expreccs/utils/backcoupling.py +++ b/src/expreccs/utils/backcoupling.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """ diff --git a/src/expreccs/utils/inputvalues.py b/src/expreccs/utils/inputvalues.py index c6a544b..e5abf28 100644 --- a/src/expreccs/utils/inputvalues.py +++ b/src/expreccs/utils/inputvalues.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """ diff --git a/src/expreccs/utils/mapboundaries.py b/src/expreccs/utils/mapboundaries.py index b1cc180..8a4fa49 100644 --- a/src/expreccs/utils/mapboundaries.py +++ b/src/expreccs/utils/mapboundaries.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 # pylint: disable=C0302, R0912, E1102 diff --git a/src/expreccs/utils/mapproperties.py b/src/expreccs/utils/mapproperties.py index 45995fa..b704822 100644 --- a/src/expreccs/utils/mapproperties.py +++ b/src/expreccs/utils/mapproperties.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 # pylint: disable=R0912,R0915 diff --git a/src/expreccs/utils/reg_sit_given_decks.py b/src/expreccs/utils/reg_sit_given_decks.py index 1f856df..0e0bb14 100644 --- a/src/expreccs/utils/reg_sit_given_decks.py +++ b/src/expreccs/utils/reg_sit_given_decks.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2025 NORCE Research AS +# SPDX-FileCopyrightText: 2025-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 # pylint: disable=C0302,R0914,R1702,R0912,R0915,E1102 @@ -143,7 +143,7 @@ def create_deck(dic): dic["oprn"] = compact_format(dic["oprn"]) dic["oprn"].insert(0, "OPERNUM\n") dic["oprn"].insert(0, git) - dic["oprn"].insert(0, "--Copyright (C) 2025 NORCE Research AS\n") + dic["oprn"].insert(0, "--Copyright (C) 2025-2026 NORCE Research AS\n") dic["oprn"].append("/") with open( f"{dic['freg']}/OPERNUM_EXPRECCS.INC", @@ -1053,7 +1053,7 @@ def find_regional_cells(dic): dic["oprn"] = compact_format(dic["oprn"]) dic["oprn"].insert(0, "OPERNUM\n") dic["oprn"].insert(0, git) - dic["oprn"].insert(0, "--Copyright (C) 2025 NORCE Research AS\n") + dic["oprn"].insert(0, "--Copyright (C) 2025-2026 NORCE Research AS\n") dic["oprn"].append("/") with open( f"{dic['freg']}/OPERNUM_EXPRECCS.INC", @@ -1064,7 +1064,7 @@ def find_regional_cells(dic): dic["fipn"] = compact_format(dic["fipn"]) dic["fipn"].insert(0, "FIPNUM\n") dic["fipn"].insert(0, git) - dic["fipn"].insert(0, "--Copyright (C) 2025 NORCE Research AS\n") + dic["fipn"].insert(0, "--Copyright (C) 2025-2026 NORCE Research AS\n") dic["fipn"].append("/") with open( f"{dic['freg']}/FIPNUM_EXPRECCS.INC", @@ -1363,7 +1363,7 @@ def write_files(dic): if np.max(dic["freq"]) > 0: dic["sbound"].insert(0, "BCCON") dic["sbound"].insert(0, git) - dic["sbound"].insert(0, "--Copyright (C) 2025 NORCE Research AS") + dic["sbound"].insert(0, "--Copyright (C) 2025-2026 NORCE Research AS") dic["sbound"].append("/") with open( f"{dic['fol']}/BCCON.INC", @@ -1376,7 +1376,7 @@ def write_files(dic): dic["sbc"][i].insert(0, "BCPROP\n") dic["sbc"][i].insert(0, f"--No. days = {dic['sdays'][i]:.2f}\n") dic["sbc"][i].insert(0, git + "\n") - dic["sbc"][i].insert(0, "--Copyright (C) 2025 NORCE Research AS\n") + dic["sbc"][i].insert(0, "--Copyright (C) 2025-2026 NORCE Research AS\n") dic["sbc"][i].append("/") with open( f"{dic['fol']}/bc/BCPROP{i}.INC", @@ -1387,7 +1387,7 @@ def write_files(dic): dic["sopn"] = compact_format(dic["sopn"]) dic["sopn"].insert(0, "OPERNUM\n") dic["sopn"].insert(0, git + "\n") - dic["sopn"].insert(0, "--Copyright (C) 2025 NORCE Research AS\n") + dic["sopn"].insert(0, "--Copyright (C) 2025-2026 NORCE Research AS\n") dic["sopn"].append("/") with open( f"{dic['fol']}/OPERNUM_EXPRECCS.INC", diff --git a/src/expreccs/utils/runs.py b/src/expreccs/utils/runs.py index c0107a5..1b24773 100644 --- a/src/expreccs/utils/runs.py +++ b/src/expreccs/utils/runs.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """ diff --git a/src/expreccs/utils/writefile.py b/src/expreccs/utils/writefile.py index 43faf81..af1f550 100644 --- a/src/expreccs/utils/writefile.py +++ b/src/expreccs/utils/writefile.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 # pylint: disable=R0912 @@ -109,7 +109,7 @@ def write_grid(dic, name, reservoir): grid.append( "-- This file was generated by expreccs https://github.com/cssr-tools/expreccs\n" ) - grid.append("-- Copyright (C) 2023-2025 NORCE\n") + grid.append("-- Copyright (C) 2023-2026 NORCE Research AS\n") grid.append("COORD\n") if name in ["reference", "regional"]: for j in range(dic[f"{name}_num_cells"][1] + 1): diff --git a/src/expreccs/visualization/maps2d.py b/src/expreccs/visualization/maps2d.py index 3c68c8e..5870bb2 100644 --- a/src/expreccs/visualization/maps2d.py +++ b/src/expreccs/visualization/maps2d.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 # pylint: disable=E1102,R0914 diff --git a/src/expreccs/visualization/plotting.py b/src/expreccs/visualization/plotting.py index b363c6e..36ea20e 100644 --- a/src/expreccs/visualization/plotting.py +++ b/src/expreccs/visualization/plotting.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 # pylint: disable=R0914,C0302,E1102,R0912,C0301 diff --git a/src/expreccs/visualization/reading.py b/src/expreccs/visualization/reading.py index 541418c..a90d4d4 100644 --- a/src/expreccs/visualization/reading.py +++ b/src/expreccs/visualization/reading.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 # pylint: disable=R0912,R0914,R0915,R1702 diff --git a/tccs-13/coarsened/jobs/locations.py b/tccs-13/coarsened/jobs/locations.py index 1be59ed..8752fc7 100755 --- a/tccs-13/coarsened/jobs/locations.py +++ b/tccs-13/coarsened/jobs/locations.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# SPDX-FileCopyrightText: 2025 NORCE Research AS +# SPDX-FileCopyrightText: 2025-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """ diff --git a/tccs-13/postprocessing.py b/tccs-13/postprocessing.py index bf3fc36..ab9eb92 100644 --- a/tccs-13/postprocessing.py +++ b/tccs-13/postprocessing.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# SPDX-FileCopyrightText: 2025 NORCE Research AS +# SPDX-FileCopyrightText: 2025-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """ diff --git a/tests/test_0_all_bcs.py b/tests/test_0_all_bcs.py index cb78f96..0e3a7f7 100644 --- a/tests/test_0_all_bcs.py +++ b/tests/test_0_all_bcs.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2024-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """Test the expreccs framework""" @@ -7,23 +7,27 @@ import pathlib from expreccs.core.expreccs import main -dirname: pathlib.Path = pathlib.Path(__file__).parent +testpth: pathlib.Path = pathlib.Path(__file__).parent def test_all_bcs(): """See configs/*.toml""" - os.chdir(f"{dirname}/configs") + if not os.path.exists(f"{testpth}/output"): + os.mkdir(f"{testpth}/output") + if not os.path.exists(f"{testpth}/output/bcs"): + os.mkdir(f"{testpth}/output/bcs") + os.chdir(f"{testpth}/output/bcs") + os.system(f"cp {testpth}/configs/input.toml .") main() - os.chdir(f"{dirname}/configs") + os.chdir(f"{testpth}/output/bcs") for name in ["wells", "interp"]: - os.system(f"expreccs -i{name}.toml -m site -w 1") - os.chdir(f"{dirname}/configs") - os.system("expreccs -i flux.toml -m site -p all -w 1") + os.system(f"expreccs -i {testpth}/configs/{name}.toml -m site") + os.system(f"expreccs -i {testpth}/configs/flux.toml -m site -p all") for name in ["wells_pressure", "pres_pressure", "flux_pressure"]: assert os.path.exists( - f"{dirname}/configs/output/postprocessing/output_difference_site_{name}.png" + f"{testpth}/output/bcs/output/postprocessing/output_difference_site_{name}.png" ) - os.system("expreccs -c compare -w 1") + os.system("expreccs -c compare") assert os.path.exists( - f"{dirname}/configs/compare/compareoutput_distance_from_border.png" + f"{testpth}/output/bcs/compare/compareoutput_distance_from_border.png" ) diff --git a/tests/test_1_generic_deck_2d.py b/tests/test_1_generic_deck_2d.py index 90a3e0b..7cea53e 100644 --- a/tests/test_1_generic_deck_2d.py +++ b/tests/test_1_generic_deck_2d.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2025 NORCE Research AS +# SPDX-FileCopyrightText: 2025-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """Test the expreccs functionality to rotate grids and to handle generic 2D decks""" @@ -6,32 +6,36 @@ import os import pathlib -dirname: pathlib.Path = pathlib.Path(__file__).parent +testpth: pathlib.Path = pathlib.Path(__file__).parent def test_generic_deck_2d(): """See configs/rotate_2d.toml""" - os.chdir(f"{dirname}/configs") - os.system("expreccs -i rotate_2d.toml -o rotate_2d -m all -t 30 -p site -w 1") + if not os.path.exists(f"{testpth}/output"): + os.system(f"mkdir {testpth}/output") + os.chdir(f"{testpth}/output") + os.system( + f"expreccs -i {testpth}/configs/rotate_2d.toml -o rotate_2d -m all -t 30 -p site" + ) assert os.path.exists( - "./rotate_2d/postprocessing/rotate_2d_site_closed_pressure.png" + f"{testpth}/output/rotate_2d/postprocessing/rotate_2d_site_closed_pressure.png" ) os.system( - f"scp -r {dirname}/configs/rotate_2d/preprocessing/regional/. " - f"{dirname}/configs/rotate_2d/simulations/regional" + f"scp -r {testpth}/output/rotate_2d/preprocessing/regional/. " + f"{testpth}/output/rotate_2d/simulations/regional" ) os.system( - f"scp -r {dirname}/configs/rotate_2d/preprocessing/site_closed/. " - f"{dirname}/configs/rotate_2d/simulations/site_closed" + f"scp -r {testpth}/output/rotate_2d/preprocessing/site_closed/. " + f"{testpth}/output/rotate_2d/simulations/site_closed" ) - os.chdir(f"{dirname}/configs/rotate_2d/simulations") + os.chdir(f"{testpth}/output/rotate_2d/simulations") os.system( - "expreccs -o expreccs -i 'regional/REGIONAL site_closed/SITE_CLOSED' -w 1 " + "expreccs -o expreccs -i 'regional/REGIONAL site_closed/SITE_CLOSED' " "-f 3 -a 3.2" ) - assert os.path.exists(f"{dirname}/configs/rotate_2d/simulations/expreccs/BCCON.INC") - os.chdir(f"{dirname}/configs/rotate_2d/simulations/expreccs") + assert os.path.exists(f"{testpth}/output/rotate_2d/simulations/expreccs/BCCON.INC") + os.chdir(f"{testpth}/output/rotate_2d/simulations/expreccs") os.system("flow EXPRECCS.DATA --enable-tuning=true") assert os.path.exists( - f"{dirname}/configs/rotate_2d/simulations/expreccs/EXPRECCS.UNRST" + f"{testpth}/output/rotate_2d/simulations/expreccs/EXPRECCS.UNRST" ) diff --git a/tests/test_2_generic_deck.py b/tests/test_2_generic_deck.py index 1490d39..2968fd4 100644 --- a/tests/test_2_generic_deck.py +++ b/tests/test_2_generic_deck.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2024-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """Test the expreccs functionality to rotate grids and to handle generic decks""" @@ -6,29 +6,33 @@ import os import pathlib -dirname: pathlib.Path = pathlib.Path(__file__).parent +testpth: pathlib.Path = pathlib.Path(__file__).parent def test_generic_deck(): """See configs/rotate.toml""" - os.chdir(f"{dirname}/configs") - os.system("expreccs -i rotate.toml -o rotate -m all -t 30 -p site -w 1") - assert os.path.exists("./rotate/postprocessing/rotate_site_closed_pressure.png") + if not os.path.exists(f"{testpth}/output"): + os.system(f"mkdir {testpth}/output") + os.chdir(f"{testpth}/output") os.system( - f"scp -r {dirname}/configs/rotate/preprocessing/regional/. " - f"{dirname}/configs/rotate/simulations/regional" + f"expreccs -i {testpth}/configs/rotate.toml -o rotate -m all -t 30 -p site" + ) + assert os.path.exists( + f"{testpth}/output/rotate/postprocessing/rotate_site_closed_pressure.png" ) os.system( - f"scp -r {dirname}/configs/rotate/preprocessing/site_closed/. " - f"{dirname}/configs/rotate/simulations/site_closed" + f"scp -r {testpth}/output/rotate/preprocessing/regional/. " + f"{testpth}/output/rotate/simulations/regional" ) - os.chdir(f"{dirname}/configs/rotate/simulations") os.system( - "expreccs -o expreccs -i 'regional/REGIONAL site_closed/SITE_CLOSED' -w 1" + f"scp -r {testpth}/output/rotate/preprocessing/site_closed/. " + f"{testpth}/output/rotate/simulations/site_closed" ) - assert os.path.exists(f"{dirname}/configs/rotate/simulations/expreccs/BCCON.INC") - os.chdir(f"{dirname}/configs/rotate/simulations/expreccs") + os.chdir(f"{testpth}/output/rotate/simulations") + os.system("expreccs -o expreccs -i 'regional/REGIONAL site_closed/SITE_CLOSED'") + assert os.path.exists(f"{testpth}/output/rotate/simulations/expreccs/BCCON.INC") + os.chdir(f"{testpth}/output/rotate/simulations/expreccs") os.system("flow EXPRECCS.DATA --enable-tuning=true") assert os.path.exists( - f"{dirname}/configs/rotate/simulations/expreccs/EXPRECCS.UNRST" + f"{testpth}/output/rotate/simulations/expreccs/EXPRECCS.UNRST" ) diff --git a/tests/test_3_back_coupling.py b/tests/test_3_back_coupling.py index 1086079..15381ca 100644 --- a/tests/test_3_back_coupling.py +++ b/tests/test_3_back_coupling.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024-2025 NORCE Research AS +# SPDX-FileCopyrightText: 2024-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """Test the expreccs functionality for back-coupling""" @@ -6,13 +6,16 @@ import os import pathlib -dirname: pathlib.Path = pathlib.Path(__file__).parent +testpth: pathlib.Path = pathlib.Path(__file__).parent def test_back_coupling(): """See configs/back-coupling.toml""" - os.chdir(f"{dirname}/configs") - os.system("expreccs -i back-coupling.toml -o back -p yes -w 1") + if not os.path.exists(f"{testpth}/output"): + os.system(f"mkdir {testpth}/output") + os.system( + f"expreccs -i {testpth}/configs/back-coupling.toml -o {testpth}/output/back -p yes" + ) assert os.path.exists( - f"{dirname}/configs/back/postprocessing/back_difference_site_porvproj_watfluxi+.png" + f"{testpth}/output/back/postprocessing/back_difference_site_porvproj_watfluxi+.png" ) diff --git a/tests/test_4_site_regional.py b/tests/test_4_site_regional.py index b72bdd2..6d75e47 100644 --- a/tests/test_4_site_regional.py +++ b/tests/test_4_site_regional.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2025 NORCE Research AS +# SPDX-FileCopyrightText: 2025-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """Test the expreccs functionality in a site and regional deck""" @@ -6,25 +6,32 @@ import os import pathlib -dirname: pathlib.Path = pathlib.Path(__file__).parent +testpth: pathlib.Path = pathlib.Path(__file__).parent def test_site_regional(): """See regional/ and site/""" + if not os.path.exists(f"{testpth}/output"): + os.system(f"mkdir {testpth}/output") + os.chdir(f"{testpth}/output") + os.system(f"cp -R {testpth}/site .") + os.system(f"cp -R {testpth}/regional .") flow = "flow --relaxed-max-pv-fraction=0 " for name in ["site", "regional"]: - os.chdir(f"{dirname}/{name}") + os.chdir(f"{testpth}/output/{name}") os.system(f"{flow} {name.upper()}.DATA") base = "expreccs -i 'regional/REGIONAL site/SITE' -o expreccs" for name, flag, nlines in zip( ["", "_dpincrease", "_perfipnum"], ["", " -e 0", " -z 1"], [65, 65, 35] ): - os.chdir(f"{dirname}") + os.chdir(f"{testpth}/output") os.system(f"{base}{name}{flag}") - os.chdir(f"{dirname}/expreccs{name}") + os.chdir(f"{testpth}/output/expreccs{name}") os.system(f"{flow} EXPRECCS{name.upper()}.DATA") - assert os.path.exists(f"{dirname}/expreccs{name}/EXPRECCS{name.upper()}.UNRST") + assert os.path.exists( + f"{testpth}/output/expreccs{name}/EXPRECCS{name.upper()}.UNRST" + ) with open( - f"{dirname}/expreccs{name}/bc/BCPROP6.INC", "r", encoding="utf8" + f"{testpth}/output/expreccs{name}/bc/BCPROP6.INC", "r", encoding="utf8" ) as file: assert len(file.readlines()) == nlines diff --git a/tests/test_5_nonregular.py b/tests/test_5_nonregular.py index 75d3062..bb29a6a 100644 --- a/tests/test_5_nonregular.py +++ b/tests/test_5_nonregular.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2025 NORCE Research AS +# SPDX-FileCopyrightText: 2025-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 """Test the expreccs functionality in a site deck with nonregular boundaries""" @@ -7,25 +7,28 @@ import pathlib import subprocess -dirname: pathlib.Path = pathlib.Path(__file__).parent +testpth: pathlib.Path = pathlib.Path(__file__).parent def test_site_regional(): """See regional/ and site/""" + message = "Please run first test_4_site_regional" + assert os.path.exists(f"{testpth}/output/expreccs_perfipnum"), message flow = "flow" - for name in ["site", "regional"]: - os.chdir(f"{dirname}/{name}") - os.system(f"{flow} {name.upper()}.DATA") base = "expreccs -i 'regional/REGIONAL site/SITE' -n 1 -o expreccs" for i, (name, flag, nlines) in enumerate( zip(["_zones", "_frequency"], [" -z 1", " -f 2"], [29, 53]) ): - os.chdir(f"{dirname}") + os.chdir(f"{testpth}/output") os.system(f"{base}{name}{flag}") - os.chdir(f"{dirname}/expreccs{name}") + os.chdir(f"{testpth}/output/expreccs{name}") subprocess.run([flow, f"EXPRECCS{name.upper()}.DATA"], check=True) - assert os.path.exists(f"{dirname}/expreccs{name}/EXPRECCS{name.upper()}.UNRST") + assert os.path.exists( + f"{testpth}/output/expreccs{name}/EXPRECCS{name.upper()}.UNRST" + ) with open( - f"{dirname}/expreccs{name}/bc/BCPROP{6*(i+1)}.INC", "r", encoding="utf8" + f"{testpth}/output/expreccs{name}/bc/BCPROP{6*(i+1)}.INC", + "r", + encoding="utf8", ) as file: assert len(file.readlines()) == nlines