diff --git a/buildopm.sh b/buildopm.sh deleted file mode 100644 index 6ed298a..0000000 --- a/buildopm.sh +++ /dev/null @@ -1,29 +0,0 @@ -CURRENT_DIRECTORY="$PWD" - -for module in common -do git clone https://gitlab.dune-project.org/core/dune-$module.git --branch v2.9.1 -done -for module in common -do ./dune-common/bin/dunecontrol --only=dune-$module cmake -DCMAKE_DISABLE_FIND_PACKAGE_MPI=1 - ./dune-common/bin/dunecontrol --only=dune-$module make -j5 -done - -for repo in common -do - git clone https://github.com/OPM/opm-$repo.git -done - -source vexpreccs/bin/activate - -mkdir build - -for repo in common -do - mkdir build/opm-$repo - cd build/opm-$repo - cmake -DPYTHON_EXECUTABLE=$(which python) -DWITH_NDEBUG=1 -DUSE_MPI=0 -DOPM_ENABLE_PYTHON=ON -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 - make -j5 - cd ../.. -done - -echo "export PYTHONPATH=\$PYTHONPATH:$CURRENT_DIRECTORY/build/opm-common/build/python" >> $CURRENT_DIRECTORY/vexpreccs/bin/activate \ No newline at end of file diff --git a/docs/_images/back-coupling_summary_BPR_regional_reference.png b/docs/_images/back-coupling_summary_BPR_regional_reference.png new file mode 100644 index 0000000..1d6d84a Binary files /dev/null and b/docs/_images/back-coupling_summary_BPR_regional_reference.png differ diff --git a/docs/_images/fpr_plopm.png b/docs/_images/fpr_plopm.png new file mode 100644 index 0000000..51a9de9 Binary files /dev/null and b/docs/_images/fpr_plopm.png differ diff --git a/docs/_images/pressure_plopm.png b/docs/_images/pressure_plopm.png new file mode 100644 index 0000000..8b40e8e Binary files /dev/null and b/docs/_images/pressure_plopm.png differ diff --git a/docs/_sources/configuration_file.rst.txt b/docs/_sources/configuration_file.rst.txt index 1e58e83..9557758 100644 --- a/docs/_sources/configuration_file.rst.txt +++ b/docs/_sources/configuration_file.rst.txt @@ -65,8 +65,7 @@ the location of a point of interest to compare results, and the z position of th Killough hysteresis model on the gas relative permeability. .. note:: - The functionality for back-coupling in line 22 is under development, see/run `back-coupling.txt `_ - if you are curious. + The functionality for back-coupling in line 22 is under development, see the :ref:`back_coupling` if you are curious. .. figure:: figs/grids.png diff --git a/docs/_sources/examples.rst.txt b/docs/_sources/examples.rst.txt index 25d62d0..d439965 100644 --- a/docs/_sources/examples.rst.txt +++ b/docs/_sources/examples.rst.txt @@ -5,7 +5,7 @@ Examples Example 1 --------- -We consider the configuration file 'example1.txt' in the +We consider the configuration file `example1.txt `_ in the examples folder (the animation in the `Github home page `_ was based on this configuration file). If the results are to be saved in a folder called 'hello_world', this is achieved by the following command: @@ -74,4 +74,44 @@ the pressures are projected. .. code-block:: bash - expreccs -e name_of_folder_for_the_regional_model,name_of_folder_for_the_site_model \ No newline at end of file + expreccs -e name_of_folder_for_the_regional_model,name_of_folder_for_the_site_model + +.. _back_coupling: + +Back-coupling (under development) +--------------------------------- + +We consider the configuration file `example1_back.txt `_ in the examples folder. +The plan is to update properties (e.g., transmissibility multipliers) in the regional model from features (e.g., faults) in the site model (i.e., not included in the regional model). +By running: + +.. code-block:: bash + + expreccs -i example1_back.txt -o back-coupling -m all -p yes + +This is one of the generated figures: + +.. image:: ./figs/back-coupling_summary_BPR_regional_reference.png + +The figures in the postprocessing includes the results for the first two iterations and the last one (in this case 9 since the number of +iteration is set to 10 in line 22 of the `configuration_file `_). To visualize/compare results +between any of the iterations, we can use our friend `plopm `_. + +.. tip:: + You can install plopm by executing in the terminal: pip install git+https://github.com/cssr-tools/plopm.git. + +For example, to show the difference in the spatial maps for pressure at iteration 4 and 7 at the third restart, this is achieved by executing: + +.. code-block:: bash + + plopm -i back-coupling/output/regional_7/regional_7,back-coupling/output/regional_4/regional_4 -v pressure -r 3 -s ,,1 -c rainbow -n "lambda x, _: f'{x:.2f}'" -d 5,5 + +.. image:: ./figs/pressure_plopm.png + +And to show the comparison for the summary vector FPR for iterations 1, 5, 7, and 9: + +.. code-block:: bash + + plopm -i back-coupling/output/regional_1/regional_1,back-coupling/output/regional_5/regional_5,back-coupling/output/regional_7/regional_7,back-coupling/output/regional_9/regional_9 -v fpr -d 5,5 -f 10 + +.. image:: ./figs/fpr_plopm.png \ No newline at end of file diff --git a/docs/configuration_file.html b/docs/configuration_file.html index ed96ba6..cb13425 100644 --- a/docs/configuration_file.html +++ b/docs/configuration_file.html @@ -143,8 +143,7 @@

Reservoir-related parameters

Note

-

The functionality for back-coupling in line 22 is under development, see/run back-coupling.txt -if you are curious.

+

The functionality for back-coupling in line 22 is under development, see the Back-coupling (under development) if you are curious.

_images/grids.png diff --git a/docs/examples.html b/docs/examples.html index 20ae3ad..3c07501 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -54,6 +54,7 @@
  • Example 1
  • Example 2
  • Generic (under development)
  • +
  • Back-coupling (under development)
  • expreccs Python API
  • @@ -90,7 +91,7 @@

    Examples

    Example 1

    -

    We consider the configuration file ‘example1.txt’ in the +

    We consider the configuration file example1.txt in the examples folder (the animation in the Github home page was based on this configuration file). If the results are to be saved in a folder called ‘hello_world’, this is achieved by the following command:

    expreccs -i example1.txt -o hello_world
    @@ -157,6 +158,34 @@ 

    Generic (under development) +

    Back-coupling (under development)

    +

    We consider the configuration file example1_back.txt in the examples folder. +The plan is to update properties (e.g., transmissibility multipliers) in the regional model from features (e.g., faults) in the site model (i.e., not included in the regional model). +By running:

    +
    expreccs -i example1_back.txt -o back-coupling -m all -p yes
    +
    +
    +

    This is one of the generated figures:

    +_images/back-coupling_summary_BPR_regional_reference.png +

    The figures in the postprocessing includes the results for the first two iterations and the last one (in this case 9 since the number of +iteration is set to 10 in line 22 of the configuration_file). To visualize/compare results +between any of the iterations, we can use our friend plopm.

    +
    +

    Tip

    +

    You can install plopm by executing in the terminal: pip install git+https://github.com/cssr-tools/plopm.git.

    +
    +

    For example, to show the difference in the spatial maps for pressure at iteration 4 and 7 at the third restart, this is achieved by executing:

    +
    plopm -i back-coupling/output/regional_7/regional_7,back-coupling/output/regional_4/regional_4 -v pressure -r 3 -s ,,1 -c rainbow -n "lambda x, _: f'{x:.2f}'" -d 5,5
    +
    +
    +_images/pressure_plopm.png +

    And to show the comparison for the summary vector FPR for iterations 1, 5, 7, and 9:

    +
    plopm -i back-coupling/output/regional_1/regional_1,back-coupling/output/regional_5/regional_5,back-coupling/output/regional_7/regional_7,back-coupling/output/regional_9/regional_9 -v fpr -d 5,5 -f 10
    +
    +
    +_images/fpr_plopm.png +

    diff --git a/docs/expreccs.html b/docs/expreccs.html index c38efa1..36a927b 100644 --- a/docs/expreccs.html +++ b/docs/expreccs.html @@ -196,6 +196,7 @@

    Subpackagesexpreccs.visualization.reading module
      +
    • define_cases()
    • handle_smsp_time()
    • manage_names()
    • opm_arrays()
    • diff --git a/docs/expreccs.visualization.html b/docs/expreccs.visualization.html index 815d51a..3b35d11 100644 --- a/docs/expreccs.visualization.html +++ b/docs/expreccs.visualization.html @@ -114,6 +114,7 @@

      Submodulesexpreccs.visualization.reading module
        +
      • define_cases()
      • handle_smsp_time()
      • manage_names()
      • opm_arrays()
      • diff --git a/docs/expreccs.visualization.reading.html b/docs/expreccs.visualization.reading.html index ea3d4b5..b75a668 100644 --- a/docs/expreccs.visualization.reading.html +++ b/docs/expreccs.visualization.reading.html @@ -88,6 +88,20 @@

        expreccs.visualization.reading module

        ” Script to read OPM Flow output files

        +
        +
        +expreccs.visualization.reading.define_cases(dic, fol, folders)
        +

        Only plot the first two and last cases for the back-coupling

        +
        +
        Args:

        dic (dict): Global dictionary

        +

        fol (str): Name of the output folder

        +

        folders (list): Names of the cases

        +
        +
        Returns:

        dic (dict): Modified global dictionary

        +
        +
        +
        +
        expreccs.visualization.reading.handle_smsp_time(dic, fol, res, name)
        diff --git a/docs/genindex.html b/docs/genindex.html index 12d3631..3bf1eb7 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -138,6 +138,10 @@

        C

        D

        +
      • expreccs Python API
          diff --git a/docs/objects.inv b/docs/objects.inv index 32ebff9..f197682 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/searchindex.js b/docs/searchindex.js index 80860d1..c828ff3 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["about", "api", "configuration_file", "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"], "filenames": ["about.rst", "api.rst", "configuration_file.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"], "titles": ["About expreccs", "expreccs Python API", "Configuration file", "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 expreccs\u2019s documentation!", "Installation", "Introduction", "expreccs", "Output folder", "Related"], "terms": {"The": [0, 1, 2, 3, 14, 21, 23], "packag": [0, 1, 3, 19, 21, 22, 24], "i": [0, 1, 2, 3, 8, 10, 12, 17, 20, 21], "fund": 0, "wintershal": 0, "dea": 0, "equinor": 0, "shell": 0, "research": 0, "council": 0, "norwai": 0, "project": [0, 1, 2, 3, 10, 12, 17, 20, 21, 24], "number": [0, 2, 8, 9, 12, 17], "336294": 0, "thi": [0, 2, 3, 8, 20, 21], "work": 0, "progress": 0, "here": [0, 2, 23], "link": 0, "detail": 0, "contribut": [0, 20], "ar": [0, 2, 3, 8, 12, 20, 21, 23, 24], "more": [0, 3], "than": [0, 20], "welcom": 0, "us": [0, 2, 3, 8, 14, 17, 18, 20, 21, 23, 24], "fork": 0, "pull": 0, "request": 0, "approach": [0, 2, 21, 24], "main": [1, 4, 5, 6, 15, 17], "script": [1, 6, 10, 12, 16, 17, 18, 20], "execut": [1, 2, 6, 13, 20, 21, 23], "locat": [1, 2, 3, 10, 11, 17], "core": [1, 4, 20, 22], "folder": [1, 2, 3, 8, 14, 16, 17, 18, 19, 20, 21, 24], "expreccss": 1, "contain": 1, "mako": [1, 14], "file": [1, 3, 9, 12, 14, 18, 19, 20, 21, 23, 24], "gener": [1, 2, 13, 17, 19, 21, 23, 24], "correspond": [1, 2, 21], "opm": [1, 2, 13, 14, 17, 18, 19, 21, 23, 24], "input": [1, 2, 3, 8, 9, 13, 21], "deck": [1, 3, 12, 13, 17, 18], "util": [1, 4, 22], "process": [1, 9, 12], "configur": [1, 3, 9, 19, 21, 24], "run": [1, 2, 3, 4, 7, 14, 20, 21, 23], "refer": [1, 2, 3, 11, 13, 14, 16, 17, 21, 23], "region": [1, 2, 3, 8, 10, 12, 13, 17, 21], "site": [1, 2, 3, 8, 10, 11, 12, 13, 16, 17, 18, 21, 23], "simul": [1, 3, 4, 7, 13, 16, 18, 19, 20, 21, 23, 24], "addit": [1, 2, 20, 23], "includ": [1, 20], "routin": [1, 14, 17], "pressur": [1, 2, 3, 10, 12, 17, 21], "given": [1, 2, 3, 8, 12, 24], "geolog": [1, 3, 8, 13, 14, 21, 24], "model": [1, 2, 3, 8, 12, 13, 14, 16, 18, 20, 21, 24], "visual": [1, 2, 3, 4, 22, 23], "imag": [1, 24], "png": [1, 3, 24], "show": [1, 2, 23], "comparison": [1, 3], "between": [1, 2, 16, 17], "differ": [1, 2, 8, 10, 11, 16, 17, 21, 23], "subpackag": [1, 19, 22], "submodul": [1, 4, 22], "modul": [1, 19, 20, 22, 24], "content": [1, 19, 21, 22], "we": [2, 3], "consid": [2, 3], "txt": [2, 3, 20, 21], "avail": [2, 20], "exampl": [2, 19], "chosen": 2, "function": [2, 6, 8, 9, 10, 11, 13, 14], "capabl": 2, "exprecc": [2, 3, 20, 21, 23], "framework": [2, 21, 24], "regard": [2, 20], "corner": [2, 21], "point": [2, 17, 21], "grid": [2, 3, 11, 12, 14, 20, 21], "cpg": [2, 21], "heterogein": [2, 21], "e": [2, 3, 18, 20, 21, 23], "g": [2, 18, 20, 21, 23], "properti": [2, 21], "fault": [2, 11, 21], "ad": [2, 8, 19, 21], "defin": [2, 21], "schedul": [2, 10, 17, 21], "oper": [2, 21], "see": [2, 3, 20, 21, 23], "example1": [2, 3], "simpler": 2, "first": [2, 9], "set": [2, 3, 9, 11, 14, 17, 20, 21], "full": 2, "path": 2, "flow": [2, 13, 14, 18, 19, 21, 23, 24], "flag": [2, 20], "enabl": 2, "rst": 2, "true": [2, 18], "linear": 2, "solver": [2, 23], "cprw": 2, "tune": 2, "If": [2, 3, 20], "your": 2, "write": [2, 8, 12, 14], "user": [2, 20], "dmar": 2, "build": [2, 12, 19], "bin": [2, 20], "also": [2, 3, 20], "add": [2, 3, 12, 23], "same": [2, 3, 24], "line": [2, 3, 9, 17, 20], "mani": 2, "requir": [2, 20], "document": [2, 21, 23], "you": [2, 20], "have": 2, "instal": [2, 19], "mpi": [2, 20], "support": [2, 20, 21], "can": [2, 3, 20, 23], "parallel": 2, "mpirun": 2, "np": 2, "n": [2, 12], "where": [2, 3, 21], "cpu": 2, "follow": [2, 3, 20, 21, 23, 24], "45000": 2, "15000": 2, "81": 2, "reginon": 2, "aquif": 2, "length": 2, "width": 2, "depth": 2, "m": [2, 3, 20, 21], "3": [2, 20], "5": 2, "variabl": [2, 14], "arrai": [2, 18], "x": [2, 3, 8, 12, 17], "refin": [2, 10], "y": [2, 8, 12, 17], "1": [2, 19, 20], "z": [2, 10, 12, 14, 17], "15": 2, "25": 2, "6": 2, "18000": 2, "5000": 2, "27000": 2, "10000": 2, "xi": 2, "yi": 2, "xf": 2, "yf": 2, "box": 2, "posit": [2, 11, 12], "free": 2, "close": 2, "porv": 2, "enter": 2, "bottom": [2, 3], "right": [2, 12], "top": [2, 3, 16, 17], "left": [2, 12], "valu": [2, 9, 10], "1e8": 2, "1e7": 2, "1e6": 2, "1e5": 2, "porvproj": [2, 3], "flux": [2, 3, 8, 10, 21], "pre": [2, 3, 10], "pres2p": 2, "bc": [2, 3, 10], "1e4": 2, "1e3": 2, "1e2": 2, "1e1": 2, "interp": 2, "interpol": [2, 10, 12], "time": [2, 10, 12, 13, 16, 18], "11000": 2, "0": [2, 20, 21], "01": 2, "10": [2, 20], "22": 2, "multipli": [2, 8], "tran": 2, "height": 2, "jump": 2, "21583": 2, "5710": 2, "24081": 2, "8233": 2, "initi": [2, 8], "final": [2, 3], "9": [2, 20], "thickn": 2, "layer": 2, "2e7": 2, "60": 2, "50": 2, "11423e": 2, "pa": 2, "temperatur": 2, "c": [2, 21], "compress": 2, "20000": 2, "8000": 2, "sensor": [2, 3, 17], "assess": 2, "error": 2, "over": [2, 12], "w": 2, "r": [2, 20, 21], "t": [2, 21], "solut": 2, "20": 2, "mt": 2, "sin": 2, "2": [2, 19], "pi": 2, "surfac": [2, 14, 16, 17], "92": 2, "hysteresi": 2, "salin": 2, "1e": 2, "kg": 2, "inter": 2, "back": [2, 8, 18], "coupl": [2, 8, 18], "dimens": 2, "size": 2, "discret": 2, "origen": 2, "Then": [2, 3, 20, 23], "give": 2, "coordin": [2, 12, 17], "On": 2, "13": 2, "14": [2, 3], "press": 2, "from": [2, 3, 8, 9, 10, 12, 17, 18, 20, 21, 24], "copmput": 2, "pore": [2, 3, 10], "volum": [2, 3, 10], "4": 2, "injector": [2, 3], "produc": [2, 3], "middl": [2, 3], "boundari": [2, 3, 10, 21], "along": 2, "direct": [2, 3, 12], "similarli": 2, "possibl": [2, 20], "which": [2, 20], "extend": 2, "continu": 2, "zig": 2, "zag": 2, "until": 2, "allow": 2, "satur": [2, 17], "condit": [2, 21], "interest": [2, 20], "compar": [2, 21, 23], "cell": [2, 3, 10, 12, 17], "option": [2, 6, 21], "activ": [2, 20], "killough": 2, "ga": 2, "rel": 2, "permeabl": 2, "under": [2, 19], "develop": [2, 19], "curiou": 2, "upper": 2, "lower": 2, "observ": 2, "closest": [2, 12, 17], "kept": 2, "coarser": 2, "entri": 2, "krw": 2, "sw": 2, "swi": 2, "sni": 2, "nkrw": 2, "wet": 2, "perm": 2, "krn": 2, "nkrn": 2, "non": 2, "pec": 2, "npe": 2, "capillari": 2, "In": [2, 21, 23], "sand": 2, "describ": [2, 21], "11th": 2, "spe": 2, "csp": [2, 24], "sat": 2, "threshold": 2, "cp": 2, "evalu": 2, "swi5": 2, "12": 2, "sni5": 2, "krw5": 2, "krn5": 2, "pre4": 2, "3060": 2, "00": 2, "nkrw1": 2, "nkrn1": 2, "npe1": 2, "thre1": 2, "swi4": 2, "sni4": 2, "krw4": 2, "krn4": 2, "3870": 2, "63": 2, "pre5": 2, "swi1": 2, "32": 2, "sni1": 2, "krw1": 2, "krn1": 2, "pre1": 2, "193531": 2, "swi2": 2, "sni2": 2, "krw2": 2, "krn2": 2, "pre2": 2, "8654": 2, "99": 2, "swi3": 2, "sni3": 2, "krw3": 2, "krn3": 2, "pre3": 2, "6120": 2, "30": 2, "sinc": 2, "21": 2, "imbibit": 2, "curv": 2, "39": 2, "47": 2, "residu": 2, "chang": [2, 3], "expon": 2, "simillarli": 2, "kxy": 2, "md": 2, "kz": 2, "phi": 2, "permxy5": 2, "1013": 2, "permz5": 2, "101": 2, "325": 2, "poro5": 2, "permxy4": 2, "506": 2, "625": 2, "permz4": 2, "6625": 2, "poro4": 2, "permxy1": 2, "10132": 2, "permz1": 2, "010132": 2, "poro1": 2, "permxy2": 2, "324": 2, "permz2": 2, "1324": 2, "poro2": 2, "permxy3": 2, "202": 2, "650": 2, "permz3": 2, "2650": 2, "poro3": 2, "As": 2, "seen": 2, "previou": [2, 20], "finnest": 2, "No": 2, "get": [2, 12, 20], "toward": 2, "name": [2, 8, 9, 13, 14, 16, 17, 18, 21], "thei": [2, 3], "eas": 2, "permabc": 2, "51": 2, "ha": 2, "impact": 2, "so": [2, 20], "far": 2, "least": 2, "one": [2, 23], "charact": 2, "read": [2, 4, 9, 10, 15, 20], "now": 2, "proce": 2, "zi": 2, "zf": 2, "21180": 2, "7068": 2, "24200": 2, "7800": 2, "65": 2, "21718": 2, "7122": 2, "45": 2, "14518": 2, "11377": 2, "31679": 2, "8883": 2, "28477": 2, "2732": 2, "implement": [2, 21], "desir": 2, "share": 2, "inject": [2, 9, 17], "rate": [2, 17], "d": 2, "step": [2, 16], "maximum": 2, "fluid": 2, "dai": [2, 3], "prod": 2, "inj": 2, "365": 2, "73": 2, "3e5": 2, "5e6": 2, "six": 2, "three": 2, "them": [2, 24], "insid": [2, 3, 20], "each": 2, "row": 2, "16": 2, "restart": [2, 12], "water": [2, 3], "co2": [2, 3, 24], "respect": 2, "end": [2, 13], "bhp": [2, 3, 17], "control": 2, "order": 2, "two": [2, 3, 21], "pascal": 2, "example1_wel": [2, 3], "keep": 2, "linebreak": 2, "section": [2, 3, 21], "whole": [2, 21], "do": [2, 3, 20], "current": [2, 8, 17, 20, 21], "": 2, "command": [2, 3, 20], "screenshot": [2, 23], "resinsight": [2, 3, 23], "presur": 2, "instead": [2, 20], "further": 2, "argument": [2, 6, 21], "anim": 3, "github": [3, 20], "home": 3, "page": [3, 19], "wa": 3, "base": [3, 8, 21, 24], "result": [3, 19, 23], "save": [3, 23], "call": [3, 23], "hello_world": 3, "achiev": [3, 20], "o": [3, 21], "onli": [3, 20, 21], "example1_pr": 3, "reservoir": [3, 11, 14, 16, 17, 19], "figur": [3, 13, 16, 17, 18, 21, 24], "example1_porvproj": 3, "case": 3, "p": [3, 12, 21], "ye": 3, "below": [3, 24], "some": [3, 14, 23, 24], "postprocess": [3, 21, 23, 24], "sm3": 3, "well": [3, 11, 17, 19, 20, 21, 24], "minimum": 3, "distanc": [3, 17], "plume": 3, "example2": 3, "complex": 3, "417": 3, "500": 3, "introduct": [3, 19], "last": [3, 16], "34": 3, "42": 3, "test_main": 3, "py": 3, "an": [3, 20, 24], "creat": [3, 12, 20, 21], "ani": [3, 24], "new": 3, "name_of_folder_for_the_regional_model": 3, "name_of_folder_for_the_site_model": 3, "load_pars": [4, 5, 6], "backcoupl": [4, 7], "compute_multipli": [4, 7, 8], "init_multipli": [4, 7, 8], "write_folder_it": [4, 7, 8], "inputvalu": [4, 7], "process_input": [4, 7, 9], "readthefirstpart": [4, 7, 9], "readthesecondpart": [4, 7, 9], "mapboundari": [4, 7], "aquaflux_opm": [4, 7, 10], "aquaflux_resdata": [4, 7, 10], "handle_pressure_correct": [4, 7, 10], "handle_stencil_2p": [4, 7, 10], "handle_stencil_opm": [4, 7, 10], "handle_stencil_resdata": [4, 7, 10], "porv_project": [4, 7, 10], "porv_regional_segment": [4, 7, 10], "temporal_interpolation_flux": [4, 7, 10], "temporal_interpolation_pressur": [4, 7, 10], "mapproperti": [4, 7], "mapping_properti": [4, 7, 11], "positions_refer": [4, 7, 11], "positions_region": [4, 7, 11], "positions_rot": [4, 7, 11], "positions_sit": [4, 7, 11], "rotate_grid": [4, 7, 11], "reg_sit_given_deck": [4, 7], "check_intersect": [4, 7, 12], "check_regional_neighbour": [4, 7, 12], "create_deck": [4, 7, 12], "dynamic_map": [4, 7, 12], "extract_site_bord": [4, 7, 12], "find_ij_orient": [4, 7, 12], "find_regional_cel": [4, 7, 12], "handle_grid_coord": [4, 7, 12], "project_pressur": [4, 7, 12], "write_fil": [4, 7, 12, 14], "plot": [4, 7, 13, 14, 15, 16, 18, 21, 23], "run_model": [4, 7, 13], "writefil": [4, 7], "set_gridmako": [4, 7, 14], "write_fold": [4, 7, 14], "write_properti": [4, 7, 14], "maps2d": [4, 15], "final_time_map": [4, 15, 16], "final_time_maps_differ": [4, 15, 16], "geological_map": [4, 15, 16], "manage_nam": [4, 15, 16, 18], "handle_labels_differ": [4, 15, 17], "handle_labels_dist": [4, 15, 17], "handle_site_summari": [4, 15, 17], "over_time_dist": [4, 15, 17], "over_time_max_differ": [4, 15, 17], "over_time_sensor": [4, 15, 17], "plot_result": [4, 15, 17], "plotting_set": [4, 15, 17], "positions_opm": [4, 15, 17], "positions_resdata": [4, 15, 17], "summary_plot": [4, 15, 17], "summary_sit": [4, 15, 17], "wells_sit": [4, 15, 17], "handle_smsp_tim": [4, 15, 18], "opm_arrai": [4, 15, 18], "reading_opm": [4, 15, 18], "reading_resdata": [4, 15, 18], "resdata_arrai": [4, 15, 18], "resdata_load_data": [4, 15, 18], "utilii": [8, 9, 10, 11, 12, 13, 14], "dic": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "updat": 8, "A": [8, 24], "compens": 8, "comput": 8, "mult": 8, "flux_sit": 8, "flux_region": 8, "done": [8, 20], "iterativli": 8, "iter": [8, 10], "arg": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "dict": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "global": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "dictionari": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "return": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "modifi": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 23], "int": [8, 9, 10, 12, 17], "fil": 8, "_": 8, "str": [8, 9, 12, 13, 14, 16, 17, 18], "none": [8, 13, 14, 16, 17], "requiri": 9, "in_fil": 9, "text": 9, "lol": 9, "list": [9, 17], "inc": 9, "befor": 9, "index": [9, 12, 17, 19], "remain": 9, "map": [10, 11, 16, 17], "correct": 10, "reg": [10, 12], "dir": 10, "face": 10, "counter": 10, "side": 10, "pv": 10, "quantiti": [11, 16, 17, 18], "handl": [11, 18], "find": [11, 12], "after": [11, 20, 23], "rotat": [11, 21], "requier": 11, "ind": 12, "gind": 12, "check": [12, 24], "nnc": 12, "overlap": 12, "coord": 12, "cardin": 12, "neighbour": 12, "border": [12, 17], "count": 12, "hand": 12, "studi": [13, 24], "float": 13, "print": 13, "necessari": 14, "f_xy": 14, "mainfold": 14, "profil": 14, "relat": [14, 19, 23], "templat": 14, "make": [14, 20], "output": [14, 17, 18, 19, 20, 21], "numpi": 14, "2d": [16, 17, 24], "re": [16, 17, 18], "out": [16, 18, 24], "complet": [16, 18], "j": 17, "nqua": 17, "nfol": 17, "manag": 17, "label": 17, "improv": [17, 21], "indic": 17, "fol": [17, 18], "better": 17, "color": 17, "summari": [17, 18], "max": 17, "1d": 17, "style": 17, "nrst": 17, "extract": 17, "resdata": [17, 18, 20, 21], "ndeck": 17, "opmn": 17, "nquan": 17, "nwell": 17, "type": 18, "loadnpi": 18, "data": 18, "bool": 18, "fals": 18, "need": [18, 20], "concept": 19, "overview": [19, 20], "python": [19, 21, 24], "sourc": [19, 24], "linux": 19, "window": 19, "maco": 19, "paramet": 19, "rock": [19, 21], "api": 19, "pyopmspe11": 19, "pyopmnearwel": 19, "pycopm": 19, "plopm": 19, "micp": 19, "pymm": 19, "about": 19, "search": 19, "To": 20, "exist": 20, "environ": 20, "pip": 20, "git": 20, "http": 20, "com": 20, "cssr": 20, "tool": 20, "code": 20, "clone": 20, "repositori": 20, "virtual": 20, "repo": 20, "cd": 20, "python3": 20, "venv": 20, "vexprecc": 20, "upgrad": 20, "setuptool": 20, "wheel": 20, "For": 20, "test": [20, 21], "lint": 20, "dev": 20, "egrid": 20, "init": 20, "unrst": 20, "seem": 20, "faster": 20, "larg": 20, "termin": 20, "org": 20, "releas": 20, "2024": 20, "04": 20, "master": 20, "branch": 20, "ci": 20, "yml": 20, "binari": 20, "subsystem": 20, "could": [20, 23], "try": 20, "prerequisit": 20, "turn": 20, "should": 20, "current_directori": 20, "pwd": 20, "common": 20, "mkdir": 20, "cmake": 20, "duse_mpi": 20, "dwith_ndebug": 20, "dcmake_build_typ": 20, "dcmake_prefix_path": 20, "j5": 20, "sh": 20, "build_opm_mpi": 20, "copi": 20, "built": 20, "dune": 20, "librari": 20, "macport": 20, "brew": 20, "geometri": 20, "istl": 20, "gitlab": 20, "v2": 20, "dunecontrol": 20, "dcmake_disable_find_package_mpi": 20, "dpython_execut": 20, "dopm_enable_python": 20, "ON": 20, "echo": 20, "export": 20, "pythonpath": 20, "deactiv": 20, "might": 20, "depend": 20, "version": 20, "found": 20, "recommend": 20, "equal": 20, "higher": 20, "otherwis": 20, "remov": 20, "pyproject": 20, "toml": 20, "when": 20, "alwai": 20, "default": [20, 21], "numer": 21, "perform": 21, "simplifi": [21, 24], "flexibl": [21, 24], "stage": 21, "all": 21, "timestep": 21, "identifi": 21, "connect": 21, "u": 21, "gaswat": 21, "norefer": 21, "metric": 21, "nice": 21, "gasoil": 21, "co2stor": 21, "grade": 21, "select": 23, "preprocess": 23, "directli": 23, "tracer": 23, "spe11": 24, "benchmark": 24, "dynam": 24, "coarsen": 24, "quick": 24, "slide": 24, "leakag": 24, "remedi": 24, "microbi": 24, "induc": 24, "calcit": 24, "precipit": 24, "open": 24, "cfd": 24, "microsystem": 24}, "objects": {"": [[4, 0, 0, "-", "expreccs"]], "expreccs": [[5, 0, 0, "-", "core"], [7, 0, 0, "-", "utils"], [15, 0, 0, "-", "visualization"]], "expreccs.core": [[6, 0, 0, "-", "expreccs"]], "expreccs.core.expreccs": [[6, 1, 1, "", "expreccs"], [6, 1, 1, "", "load_parser"], [6, 1, 1, "", "main"]], "expreccs.utils": [[8, 0, 0, "-", "backcoupling"], [9, 0, 0, "-", "inputvalues"], [10, 0, 0, "-", "mapboundaries"], [11, 0, 0, "-", "mapproperties"], [12, 0, 0, "-", "reg_sit_given_decks"], [13, 0, 0, "-", "runs"], [14, 0, 0, "-", "writefile"]], "expreccs.utils.backcoupling": [[8, 1, 1, "", "backcoupling"], [8, 1, 1, "", "compute_multipliers"], [8, 1, 1, "", "init_multipliers"], [8, 1, 1, "", "write_folder_iter"]], "expreccs.utils.inputvalues": [[9, 1, 1, "", "process_input"], [9, 1, 1, "", "readthefirstpart"], [9, 1, 1, "", "readthesecondpart"]], "expreccs.utils.mapboundaries": [[10, 1, 1, "", "aquaflux_opm"], [10, 1, 1, "", "aquaflux_resdata"], [10, 1, 1, "", "handle_pressure_correction"], [10, 1, 1, "", "handle_stencil_2p"], [10, 1, 1, "", "handle_stencil_opm"], [10, 1, 1, "", "handle_stencil_resdata"], [10, 1, 1, "", "porv_projections"], [10, 1, 1, "", "porv_regional_segmentation"], [10, 1, 1, "", "temporal_interpolation_flux"], [10, 1, 1, "", "temporal_interpolation_pressure"]], "expreccs.utils.mapproperties": [[11, 1, 1, "", "mapping_properties"], [11, 1, 1, "", "positions_reference"], [11, 1, 1, "", "positions_regional"], [11, 1, 1, "", "positions_rotation"], [11, 1, 1, "", "positions_site"], [11, 1, 1, "", "rotate_grid"]], "expreccs.utils.reg_sit_given_decks": [[12, 1, 1, "", "check_intersection"], [12, 1, 1, "", "check_regional_neighbours"], [12, 1, 1, "", "create_deck"], [12, 1, 1, "", "dynamic_mapping"], [12, 1, 1, "", "extract_site_borders"], [12, 1, 1, "", "find_ij_orientation"], [12, 1, 1, "", "find_regional_cells"], [12, 1, 1, "", "handle_grid_coord"], [12, 1, 1, "", "project_pressures"], [12, 1, 1, "", "write_files"]], "expreccs.utils.runs": [[13, 1, 1, "", "plotting"], [13, 1, 1, "", "run_models"], [13, 1, 1, "", "simulations"]], "expreccs.utils.writefile": [[14, 1, 1, "", "set_gridmako"], [14, 1, 1, "", "write_files"], [14, 1, 1, "", "write_folders"], [14, 1, 1, "", "write_properties"]], "expreccs.visualization": [[16, 0, 0, "-", "maps2d"], [17, 0, 0, "-", "plotting"], [18, 0, 0, "-", "reading"]], "expreccs.visualization.maps2d": [[16, 1, 1, "", "final_time_maps"], [16, 1, 1, "", "final_time_maps_difference"], [16, 1, 1, "", "geological_maps"], [16, 1, 1, "", "manage_name"]], "expreccs.visualization.plotting": [[17, 1, 1, "", "handle_labels_difference"], [17, 1, 1, "", "handle_labels_distance"], [17, 1, 1, "", "handle_site_summary"], [17, 1, 1, "", "main"], [17, 1, 1, "", "over_time_distance"], [17, 1, 1, "", "over_time_max_difference"], [17, 1, 1, "", "over_time_sensor"], [17, 1, 1, "", "plot_results"], [17, 1, 1, "", "plotting_settings"], [17, 1, 1, "", "positions_opm"], [17, 1, 1, "", "positions_resdata"], [17, 1, 1, "", "summary_plot"], [17, 1, 1, "", "summary_site"], [17, 1, 1, "", "wells_site"]], "expreccs.visualization.reading": [[18, 1, 1, "", "handle_smsp_time"], [18, 1, 1, "", "manage_names"], [18, 1, 1, "", "opm_arrays"], [18, 1, 1, "", "reading_opm"], [18, 1, 1, "", "reading_resdata"], [18, 1, 1, "", "resdata_arrays"], [18, 1, 1, "", "resdata_load_data"]]}, "objtypes": {"0": "py:module", "1": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "titleterms": {"about": 0, "exprecc": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22], "python": [1, 20], "api": 1, "configur": 2, "file": 2, "reservoir": 2, "relat": [2, 24], "paramet": 2, "rock": 2, "well": 2, "simul": 2, "result": 2, "exampl": 3, "1": 3, "2": 3, "gener": 3, "under": 3, "develop": 3, "packag": [4, 5, 7, 15, 20], "subpackag": 4, "modul": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "content": [4, 5, 7, 15], "core": [5, 6], "submodul": [5, 7, 15], "util": [7, 8, 9, 10, 11, 12, 13, 14], "backcoupl": 8, "inputvalu": 9, "mapboundari": 10, "mapproperti": 11, "reg_sit_given_deck": 12, "run": 13, "writefil": 14, "visual": [15, 16, 17, 18], "maps2d": 16, "plot": 17, "read": 18, "welcom": 19, "": 19, "document": 19, "indic": 19, "tabl": 19, "instal": 20, "opm": 20, "flow": 20, "sourc": 20, "build": 20, "linux": 20, "window": 20, "maco": 20, "introduct": 21, "concept": 21, "overview": 21, "output": 23, "folder": 23, "pyopmspe11": 24, "pyopmnearwel": 24, "pycopm": 24, "plopm": 24, "ad": 24, "micp": 24, "pymm": 24}, "envversion": {"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, "sphinx": 60}, "alltitles": {"About expreccs": [[0, "about-expreccs"]], "expreccs Python API": [[1, "expreccs-python-api"]], "expreccs": [[1, "expreccs"], [22, "expreccs"]], "Configuration file": [[2, "configuration-file"]], "Reservoir-related parameters": [[2, "reservoir-related-parameters"]], "Rock-related parameters": [[2, "rock-related-parameters"]], "Well-related parameters": [[2, "well-related-parameters"]], "Simulation results": [[2, "simulation-results"]], "Examples": [[3, "examples"]], "Example 1": [[3, "example-1"]], "Example 2": [[3, "example-2"]], "Generic (under development)": [[3, "generic-under-development"]], "expreccs package": [[4, "expreccs-package"]], "Subpackages": [[4, "subpackages"]], "Module contents": [[4, "module-expreccs"], [5, "module-expreccs.core"], [7, "module-expreccs.utils"], [15, "module-expreccs.visualization"]], "expreccs.core package": [[5, "expreccs-core-package"]], "Submodules": [[5, "submodules"], [7, "submodules"], [15, "submodules"]], "expreccs.core.expreccs module": [[6, "module-expreccs.core.expreccs"]], "expreccs.utils package": [[7, "expreccs-utils-package"]], "expreccs.utils.backcoupling module": [[8, "module-expreccs.utils.backcoupling"]], "expreccs.utils.inputvalues module": [[9, "module-expreccs.utils.inputvalues"]], "expreccs.utils.mapboundaries module": [[10, "module-expreccs.utils.mapboundaries"]], "expreccs.utils.mapproperties module": [[11, "module-expreccs.utils.mapproperties"]], "expreccs.utils.reg_sit_given_decks module": [[12, "module-expreccs.utils.reg_sit_given_decks"]], "expreccs.utils.runs module": [[13, "module-expreccs.utils.runs"]], "expreccs.utils.writefile module": [[14, "module-expreccs.utils.writefile"]], "expreccs.visualization package": [[15, "expreccs-visualization-package"]], "expreccs.visualization.maps2d module": [[16, "module-expreccs.visualization.maps2d"]], "expreccs.visualization.plotting module": [[17, "module-expreccs.visualization.plotting"]], "expreccs.visualization.reading module": [[18, "module-expreccs.visualization.reading"]], "Welcome to expreccs\u2019s documentation!": [[19, "welcome-to-expreccs-s-documentation"]], "Indices and tables": [[19, "indices-and-tables"]], "Installation": [[20, "installation"]], "Python package": [[20, "python-package"]], "OPM Flow": [[20, "opm-flow"]], "Source build in Linux/Windows": [[20, "source-build-in-linux-windows"]], "Source build in macOS": [[20, "source-build-in-macos"]], "Introduction": [[21, "introduction"]], "Concept": [[21, "concept"]], "Overview": [[21, "overview"]], "Output folder": [[23, "output-folder"]], "Related": [[24, "related"]], "pyopmspe11": [[24, "pyopmspe11"]], "pyopmnearwell": [[24, "pyopmnearwell"]], "pycopm": [[24, "pycopm"]], "plopm": [[24, "plopm"]], "ad-micp": [[24, "ad-micp"]], "pymm": [[24, "pymm"]]}, "indexentries": {"expreccs": [[4, "module-expreccs"]], "module": [[4, "module-expreccs"], [5, "module-expreccs.core"], [6, "module-expreccs.core.expreccs"], [7, "module-expreccs.utils"], [8, "module-expreccs.utils.backcoupling"], [9, "module-expreccs.utils.inputvalues"], [10, "module-expreccs.utils.mapboundaries"], [11, "module-expreccs.utils.mapproperties"], [12, "module-expreccs.utils.reg_sit_given_decks"], [13, "module-expreccs.utils.runs"], [14, "module-expreccs.utils.writefile"], [15, "module-expreccs.visualization"], [16, "module-expreccs.visualization.maps2d"], [17, "module-expreccs.visualization.plotting"], [18, "module-expreccs.visualization.reading"]], "expreccs.core": [[5, "module-expreccs.core"]], "expreccs() (in module expreccs.core.expreccs)": [[6, "expreccs.core.expreccs.expreccs"]], "expreccs.core.expreccs": [[6, "module-expreccs.core.expreccs"]], "load_parser() (in module expreccs.core.expreccs)": [[6, "expreccs.core.expreccs.load_parser"]], "main() (in module expreccs.core.expreccs)": [[6, "expreccs.core.expreccs.main"]], "expreccs.utils": [[7, "module-expreccs.utils"]], "backcoupling() (in module expreccs.utils.backcoupling)": [[8, "expreccs.utils.backcoupling.backcoupling"]], "compute_multipliers() (in module expreccs.utils.backcoupling)": [[8, "expreccs.utils.backcoupling.compute_multipliers"]], "expreccs.utils.backcoupling": [[8, "module-expreccs.utils.backcoupling"]], "init_multipliers() (in module expreccs.utils.backcoupling)": [[8, "expreccs.utils.backcoupling.init_multipliers"]], "write_folder_iter() (in module expreccs.utils.backcoupling)": [[8, "expreccs.utils.backcoupling.write_folder_iter"]], "expreccs.utils.inputvalues": [[9, "module-expreccs.utils.inputvalues"]], "process_input() (in module expreccs.utils.inputvalues)": [[9, "expreccs.utils.inputvalues.process_input"]], "readthefirstpart() (in module expreccs.utils.inputvalues)": [[9, "expreccs.utils.inputvalues.readthefirstpart"]], "readthesecondpart() (in module expreccs.utils.inputvalues)": [[9, "expreccs.utils.inputvalues.readthesecondpart"]], "aquaflux_opm() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.aquaflux_opm"]], "aquaflux_resdata() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.aquaflux_resdata"]], "expreccs.utils.mapboundaries": [[10, "module-expreccs.utils.mapboundaries"]], "handle_pressure_correction() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.handle_pressure_correction"]], "handle_stencil_2p() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.handle_stencil_2p"]], "handle_stencil_opm() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.handle_stencil_opm"]], "handle_stencil_resdata() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.handle_stencil_resdata"]], "porv_projections() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.porv_projections"]], "porv_regional_segmentation() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.porv_regional_segmentation"]], "temporal_interpolation_flux() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.temporal_interpolation_flux"]], "temporal_interpolation_pressure() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.temporal_interpolation_pressure"]], "expreccs.utils.mapproperties": [[11, "module-expreccs.utils.mapproperties"]], "mapping_properties() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.mapping_properties"]], "positions_reference() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.positions_reference"]], "positions_regional() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.positions_regional"]], "positions_rotation() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.positions_rotation"]], "positions_site() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.positions_site"]], "rotate_grid() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.rotate_grid"]], "check_intersection() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.check_intersection"]], "check_regional_neighbours() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.check_regional_neighbours"]], "create_deck() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.create_deck"]], "dynamic_mapping() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.dynamic_mapping"]], "expreccs.utils.reg_sit_given_decks": [[12, "module-expreccs.utils.reg_sit_given_decks"]], "extract_site_borders() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.extract_site_borders"]], "find_ij_orientation() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.find_ij_orientation"]], "find_regional_cells() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.find_regional_cells"]], "handle_grid_coord() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.handle_grid_coord"]], "project_pressures() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.project_pressures"]], "write_files() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.write_files"]], "expreccs.utils.runs": [[13, "module-expreccs.utils.runs"]], "plotting() (in module expreccs.utils.runs)": [[13, "expreccs.utils.runs.plotting"]], "run_models() (in module expreccs.utils.runs)": [[13, "expreccs.utils.runs.run_models"]], "simulations() (in module expreccs.utils.runs)": [[13, "expreccs.utils.runs.simulations"]], "expreccs.utils.writefile": [[14, "module-expreccs.utils.writefile"]], "set_gridmako() (in module expreccs.utils.writefile)": [[14, "expreccs.utils.writefile.set_gridmako"]], "write_files() (in module expreccs.utils.writefile)": [[14, "expreccs.utils.writefile.write_files"]], "write_folders() (in module expreccs.utils.writefile)": [[14, "expreccs.utils.writefile.write_folders"]], "write_properties() (in module expreccs.utils.writefile)": [[14, "expreccs.utils.writefile.write_properties"]], "expreccs.visualization": [[15, "module-expreccs.visualization"]], "expreccs.visualization.maps2d": [[16, "module-expreccs.visualization.maps2d"]], "final_time_maps() (in module expreccs.visualization.maps2d)": [[16, "expreccs.visualization.maps2d.final_time_maps"]], "final_time_maps_difference() (in module expreccs.visualization.maps2d)": [[16, "expreccs.visualization.maps2d.final_time_maps_difference"]], "geological_maps() (in module expreccs.visualization.maps2d)": [[16, "expreccs.visualization.maps2d.geological_maps"]], "manage_name() (in module expreccs.visualization.maps2d)": [[16, "expreccs.visualization.maps2d.manage_name"]], "expreccs.visualization.plotting": [[17, "module-expreccs.visualization.plotting"]], "handle_labels_difference() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.handle_labels_difference"]], "handle_labels_distance() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.handle_labels_distance"]], "handle_site_summary() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.handle_site_summary"]], "main() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.main"]], "over_time_distance() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.over_time_distance"]], "over_time_max_difference() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.over_time_max_difference"]], "over_time_sensor() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.over_time_sensor"]], "plot_results() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.plot_results"]], "plotting_settings() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.plotting_settings"]], "positions_opm() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.positions_opm"]], "positions_resdata() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.positions_resdata"]], "summary_plot() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.summary_plot"]], "summary_site() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.summary_site"]], "wells_site() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.wells_site"]], "expreccs.visualization.reading": [[18, "module-expreccs.visualization.reading"]], "handle_smsp_time() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.handle_smsp_time"]], "manage_names() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.manage_names"]], "opm_arrays() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.opm_arrays"]], "reading_opm() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.reading_opm"]], "reading_resdata() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.reading_resdata"]], "resdata_arrays() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.resdata_arrays"]], "resdata_load_data() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.resdata_load_data"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["about", "api", "configuration_file", "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"], "filenames": ["about.rst", "api.rst", "configuration_file.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"], "titles": ["About expreccs", "expreccs Python API", "Configuration file", "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 expreccs\u2019s documentation!", "Installation", "Introduction", "expreccs", "Output folder", "Related"], "terms": {"The": [0, 1, 2, 3, 14, 21, 23], "packag": [0, 1, 3, 19, 21, 22, 24], "i": [0, 1, 2, 3, 8, 10, 12, 17, 20, 21], "fund": 0, "wintershal": 0, "dea": 0, "equinor": 0, "shell": 0, "research": 0, "council": 0, "norwai": 0, "project": [0, 1, 2, 3, 10, 12, 17, 20, 21, 24], "number": [0, 2, 3, 8, 9, 12, 17], "336294": 0, "thi": [0, 2, 3, 8, 20, 21], "work": 0, "progress": 0, "here": [0, 2, 23], "link": 0, "detail": 0, "contribut": [0, 20], "ar": [0, 2, 3, 8, 12, 20, 21, 23, 24], "more": [0, 3], "than": [0, 20], "welcom": 0, "us": [0, 2, 3, 8, 14, 17, 18, 20, 21, 23, 24], "fork": 0, "pull": 0, "request": 0, "approach": [0, 2, 21, 24], "main": [1, 4, 5, 6, 15, 17], "script": [1, 6, 10, 12, 16, 17, 18, 20], "execut": [1, 2, 3, 6, 13, 20, 21, 23], "locat": [1, 2, 3, 10, 11, 17], "core": [1, 4, 20, 22], "folder": [1, 2, 3, 8, 14, 16, 17, 18, 19, 20, 21, 24], "expreccss": 1, "contain": 1, "mako": [1, 14], "file": [1, 3, 9, 12, 14, 18, 19, 20, 21, 23, 24], "gener": [1, 2, 13, 17, 19, 21, 23, 24], "correspond": [1, 2, 21], "opm": [1, 2, 13, 14, 17, 18, 19, 21, 23, 24], "input": [1, 2, 3, 8, 9, 13, 21], "deck": [1, 3, 12, 13, 17, 18], "util": [1, 4, 22], "process": [1, 9, 12], "configur": [1, 3, 9, 19, 21, 24], "run": [1, 2, 3, 4, 7, 14, 20, 21, 23], "refer": [1, 2, 3, 11, 13, 14, 16, 17, 21, 23], "region": [1, 2, 3, 8, 10, 12, 13, 17, 21], "site": [1, 2, 3, 8, 10, 11, 12, 13, 16, 17, 18, 21, 23], "simul": [1, 3, 4, 7, 13, 16, 18, 19, 20, 21, 23, 24], "addit": [1, 2, 20, 23], "includ": [1, 3, 20], "routin": [1, 14, 17], "pressur": [1, 2, 3, 10, 12, 17, 21], "given": [1, 2, 3, 8, 12, 24], "geolog": [1, 3, 8, 13, 14, 21, 24], "model": [1, 2, 3, 8, 12, 13, 14, 16, 18, 20, 21, 24], "visual": [1, 2, 3, 4, 22, 23], "imag": [1, 24], "png": [1, 3, 24], "show": [1, 2, 3, 23], "comparison": [1, 3], "between": [1, 2, 3, 16, 17], "differ": [1, 2, 3, 8, 10, 11, 16, 17, 21, 23], "subpackag": [1, 19, 22], "submodul": [1, 4, 22], "modul": [1, 19, 20, 22, 24], "content": [1, 19, 21, 22], "we": [2, 3], "consid": [2, 3], "txt": [2, 3, 20, 21], "avail": [2, 20], "exampl": [2, 19], "chosen": 2, "function": [2, 6, 8, 9, 10, 11, 13, 14], "capabl": 2, "exprecc": [2, 3, 20, 21, 23], "framework": [2, 21, 24], "regard": [2, 20], "corner": [2, 21], "point": [2, 17, 21], "grid": [2, 3, 11, 12, 14, 20, 21], "cpg": [2, 21], "heterogein": [2, 21], "e": [2, 3, 18, 20, 21, 23], "g": [2, 3, 18, 20, 21, 23], "properti": [2, 3, 21], "fault": [2, 3, 11, 21], "ad": [2, 8, 19, 21], "defin": [2, 21], "schedul": [2, 10, 17, 21], "oper": [2, 21], "see": [2, 3, 20, 21, 23], "example1": [2, 3], "simpler": 2, "first": [2, 3, 9, 18], "set": [2, 3, 9, 11, 14, 17, 20, 21], "full": 2, "path": 2, "flow": [2, 13, 14, 18, 19, 21, 23, 24], "flag": [2, 20], "enabl": 2, "rst": 2, "true": [2, 18], "linear": 2, "solver": [2, 23], "cprw": 2, "tune": 2, "If": [2, 3, 20], "your": 2, "write": [2, 8, 12, 14], "user": [2, 20], "dmar": 2, "build": [2, 12, 19], "bin": [2, 20], "also": [2, 3, 20], "add": [2, 3, 12, 23], "same": [2, 3, 24], "line": [2, 3, 9, 17, 20], "mani": 2, "requir": [2, 20], "document": [2, 21, 23], "you": [2, 3, 20], "have": 2, "instal": [2, 3, 19], "mpi": [2, 20], "support": [2, 20, 21], "can": [2, 3, 20, 23], "parallel": 2, "mpirun": 2, "np": 2, "n": [2, 3, 12], "where": [2, 3, 21], "cpu": 2, "follow": [2, 3, 20, 21, 23, 24], "45000": 2, "15000": 2, "81": 2, "reginon": 2, "aquif": 2, "length": 2, "width": 2, "depth": 2, "m": [2, 3, 20, 21], "3": [2, 3, 20], "5": [2, 3], "variabl": [2, 14], "arrai": [2, 18], "x": [2, 3, 8, 12, 17], "refin": [2, 10], "y": [2, 8, 12, 17], "1": [2, 19, 20], "z": [2, 10, 12, 14, 17], "15": 2, "25": 2, "6": 2, "18000": 2, "5000": 2, "27000": 2, "10000": 2, "xi": 2, "yi": 2, "xf": 2, "yf": 2, "box": 2, "posit": [2, 11, 12], "free": 2, "close": 2, "porv": 2, "enter": 2, "bottom": [2, 3], "right": [2, 12], "top": [2, 3, 16, 17], "left": [2, 12], "valu": [2, 9, 10], "1e8": 2, "1e7": 2, "1e6": 2, "1e5": 2, "porvproj": [2, 3], "flux": [2, 3, 8, 10, 21], "pre": [2, 3, 10], "pres2p": 2, "bc": [2, 3, 10], "1e4": 2, "1e3": 2, "1e2": 2, "1e1": 2, "interp": 2, "interpol": [2, 10, 12], "time": [2, 10, 12, 13, 16, 18], "11000": 2, "0": [2, 20, 21], "01": 2, "10": [2, 3, 20], "22": [2, 3], "multipli": [2, 3, 8], "tran": 2, "height": 2, "jump": 2, "21583": 2, "5710": 2, "24081": 2, "8233": 2, "initi": [2, 8], "final": [2, 3], "9": [2, 3, 20], "thickn": 2, "layer": 2, "2e7": 2, "60": 2, "50": 2, "11423e": 2, "pa": 2, "temperatur": 2, "c": [2, 3, 21], "compress": 2, "20000": 2, "8000": 2, "sensor": [2, 3, 17], "assess": 2, "error": 2, "over": [2, 12], "w": 2, "r": [2, 3, 20, 21], "t": [2, 21], "solut": 2, "20": 2, "mt": 2, "sin": 2, "2": [2, 19], "pi": 2, "surfac": [2, 14, 16, 17], "92": 2, "hysteresi": 2, "salin": 2, "1e": 2, "kg": 2, "inter": 2, "back": [2, 8, 18, 19], "coupl": [2, 8, 18, 19], "dimens": 2, "size": 2, "discret": 2, "origen": 2, "Then": [2, 3, 20, 23], "give": 2, "coordin": [2, 12, 17], "On": 2, "13": 2, "14": [2, 3], "press": 2, "from": [2, 3, 8, 9, 10, 12, 17, 18, 20, 21, 24], "copmput": 2, "pore": [2, 3, 10], "volum": [2, 3, 10], "4": [2, 3], "injector": [2, 3], "produc": [2, 3], "middl": [2, 3], "boundari": [2, 3, 10, 21], "along": 2, "direct": [2, 3, 12], "similarli": 2, "possibl": [2, 20], "which": [2, 20], "extend": 2, "continu": 2, "zig": 2, "zag": 2, "until": 2, "allow": 2, "satur": [2, 17], "condit": [2, 21], "interest": [2, 20], "compar": [2, 3, 21, 23], "cell": [2, 3, 10, 12, 17], "option": [2, 6, 21], "activ": [2, 20], "killough": 2, "ga": 2, "rel": 2, "permeabl": 2, "under": [2, 19], "develop": [2, 19], "curiou": 2, "upper": 2, "lower": 2, "observ": 2, "closest": [2, 12, 17], "kept": 2, "coarser": 2, "entri": 2, "krw": 2, "sw": 2, "swi": 2, "sni": 2, "nkrw": 2, "wet": 2, "perm": 2, "krn": 2, "nkrn": 2, "non": 2, "pec": 2, "npe": 2, "capillari": 2, "In": [2, 21, 23], "sand": 2, "describ": [2, 21], "11th": 2, "spe": 2, "csp": [2, 24], "sat": 2, "threshold": 2, "cp": 2, "evalu": 2, "swi5": 2, "12": 2, "sni5": 2, "krw5": 2, "krn5": 2, "pre4": 2, "3060": 2, "00": 2, "nkrw1": 2, "nkrn1": 2, "npe1": 2, "thre1": 2, "swi4": 2, "sni4": 2, "krw4": 2, "krn4": 2, "3870": 2, "63": 2, "pre5": 2, "swi1": 2, "32": 2, "sni1": 2, "krw1": 2, "krn1": 2, "pre1": 2, "193531": 2, "swi2": 2, "sni2": 2, "krw2": 2, "krn2": 2, "pre2": 2, "8654": 2, "99": 2, "swi3": 2, "sni3": 2, "krw3": 2, "krn3": 2, "pre3": 2, "6120": 2, "30": 2, "sinc": [2, 3], "21": 2, "imbibit": 2, "curv": 2, "39": 2, "47": 2, "residu": 2, "chang": [2, 3], "expon": 2, "simillarli": 2, "kxy": 2, "md": 2, "kz": 2, "phi": 2, "permxy5": 2, "1013": 2, "permz5": 2, "101": 2, "325": 2, "poro5": 2, "permxy4": 2, "506": 2, "625": 2, "permz4": 2, "6625": 2, "poro4": 2, "permxy1": 2, "10132": 2, "permz1": 2, "010132": 2, "poro1": 2, "permxy2": 2, "324": 2, "permz2": 2, "1324": 2, "poro2": 2, "permxy3": 2, "202": 2, "650": 2, "permz3": 2, "2650": 2, "poro3": 2, "As": 2, "seen": 2, "previou": [2, 20], "finnest": 2, "No": 2, "get": [2, 12, 20], "toward": 2, "name": [2, 8, 9, 13, 14, 16, 17, 18, 21], "thei": [2, 3], "eas": 2, "permabc": 2, "51": 2, "ha": 2, "impact": 2, "so": [2, 20], "far": 2, "least": 2, "one": [2, 3, 23], "charact": 2, "read": [2, 4, 9, 10, 15, 20], "now": 2, "proce": 2, "zi": 2, "zf": 2, "21180": 2, "7068": 2, "24200": 2, "7800": 2, "65": 2, "21718": 2, "7122": 2, "45": 2, "14518": 2, "11377": 2, "31679": 2, "8883": 2, "28477": 2, "2732": 2, "implement": [2, 21], "desir": 2, "share": 2, "inject": [2, 9, 17], "rate": [2, 17], "d": [2, 3], "step": [2, 16], "maximum": 2, "fluid": 2, "dai": [2, 3], "prod": 2, "inj": 2, "365": 2, "73": 2, "3e5": 2, "5e6": 2, "six": 2, "three": 2, "them": [2, 24], "insid": [2, 3, 20], "each": 2, "row": 2, "16": 2, "restart": [2, 3, 12], "water": [2, 3], "co2": [2, 3, 24], "respect": 2, "end": [2, 13], "bhp": [2, 3, 17], "control": 2, "order": 2, "two": [2, 3, 18, 21], "pascal": 2, "example1_wel": [2, 3], "keep": 2, "linebreak": 2, "section": [2, 3, 21], "whole": [2, 21], "do": [2, 3, 20], "current": [2, 8, 17, 20, 21], "": [2, 3], "command": [2, 3, 20], "screenshot": [2, 23], "resinsight": [2, 3, 23], "presur": 2, "instead": [2, 20], "further": 2, "argument": [2, 6, 21], "anim": 3, "github": [3, 20], "home": 3, "page": [3, 19], "wa": 3, "base": [3, 8, 21, 24], "result": [3, 19, 23], "save": [3, 23], "call": [3, 23], "hello_world": 3, "achiev": [3, 20], "o": [3, 21], "onli": [3, 18, 20, 21], "example1_pr": 3, "reservoir": [3, 11, 14, 16, 17, 19], "figur": [3, 13, 16, 17, 18, 21, 24], "example1_porvproj": 3, "case": [3, 18], "p": [3, 12, 21], "ye": 3, "below": [3, 24], "some": [3, 14, 23, 24], "postprocess": [3, 21, 23, 24], "sm3": 3, "well": [3, 11, 17, 19, 20, 21, 24], "minimum": 3, "distanc": [3, 17], "plume": 3, "example2": 3, "complex": 3, "417": 3, "500": 3, "introduct": [3, 19], "last": [3, 16, 18], "34": 3, "42": 3, "test_main": 3, "py": 3, "an": [3, 20, 24], "creat": [3, 12, 20, 21], "ani": [3, 24], "new": 3, "name_of_folder_for_the_regional_model": 3, "name_of_folder_for_the_site_model": 3, "example1_back": 3, "plan": 3, "updat": [3, 8], "transmiss": 3, "featur": 3, "By": 3, "all": [3, 21], "iter": [3, 8, 10], "configuration_fil": 3, "To": [3, 20], "our": 3, "friend": 3, "plopm": [3, 19], "termin": [3, 20], "pip": [3, 20], "git": [3, 20], "http": [3, 20], "com": [3, 20], "cssr": [3, 20], "tool": [3, 20], "For": [3, 20], "spatial": 3, "map": [3, 10, 11, 16, 17], "7": 3, "third": 3, "output": [3, 14, 17, 18, 19, 20, 21], "regional_7": 3, "regional_4": 3, "v": 3, "rainbow": 3, "lambda": 3, "_": [3, 8], "f": 3, "2f": 3, "And": 3, "summari": [3, 17, 18], "vector": 3, "fpr": 3, "regional_1": 3, "regional_5": 3, "regional_9": 3, "load_pars": [4, 5, 6], "backcoupl": [4, 7], "compute_multipli": [4, 7, 8], "init_multipli": [4, 7, 8], "write_folder_it": [4, 7, 8], "inputvalu": [4, 7], "process_input": [4, 7, 9], "readthefirstpart": [4, 7, 9], "readthesecondpart": [4, 7, 9], "mapboundari": [4, 7], "aquaflux_opm": [4, 7, 10], "aquaflux_resdata": [4, 7, 10], "handle_pressure_correct": [4, 7, 10], "handle_stencil_2p": [4, 7, 10], "handle_stencil_opm": [4, 7, 10], "handle_stencil_resdata": [4, 7, 10], "porv_project": [4, 7, 10], "porv_regional_segment": [4, 7, 10], "temporal_interpolation_flux": [4, 7, 10], "temporal_interpolation_pressur": [4, 7, 10], "mapproperti": [4, 7], "mapping_properti": [4, 7, 11], "positions_refer": [4, 7, 11], "positions_region": [4, 7, 11], "positions_rot": [4, 7, 11], "positions_sit": [4, 7, 11], "rotate_grid": [4, 7, 11], "reg_sit_given_deck": [4, 7], "check_intersect": [4, 7, 12], "check_regional_neighbour": [4, 7, 12], "create_deck": [4, 7, 12], "dynamic_map": [4, 7, 12], "extract_site_bord": [4, 7, 12], "find_ij_orient": [4, 7, 12], "find_regional_cel": [4, 7, 12], "handle_grid_coord": [4, 7, 12], "project_pressur": [4, 7, 12], "write_fil": [4, 7, 12, 14], "plot": [4, 7, 13, 14, 15, 16, 18, 21, 23], "run_model": [4, 7, 13], "writefil": [4, 7], "set_gridmako": [4, 7, 14], "write_fold": [4, 7, 14], "write_properti": [4, 7, 14], "maps2d": [4, 15], "final_time_map": [4, 15, 16], "final_time_maps_differ": [4, 15, 16], "geological_map": [4, 15, 16], "manage_nam": [4, 15, 16, 18], "handle_labels_differ": [4, 15, 17], "handle_labels_dist": [4, 15, 17], "handle_site_summari": [4, 15, 17], "over_time_dist": [4, 15, 17], "over_time_max_differ": [4, 15, 17], "over_time_sensor": [4, 15, 17], "plot_result": [4, 15, 17], "plotting_set": [4, 15, 17], "positions_opm": [4, 15, 17], "positions_resdata": [4, 15, 17], "summary_plot": [4, 15, 17], "summary_sit": [4, 15, 17], "wells_sit": [4, 15, 17], "define_cas": [4, 15, 18], "handle_smsp_tim": [4, 15, 18], "opm_arrai": [4, 15, 18], "reading_opm": [4, 15, 18], "reading_resdata": [4, 15, 18], "resdata_arrai": [4, 15, 18], "resdata_load_data": [4, 15, 18], "utilii": [8, 9, 10, 11, 12, 13, 14], "dic": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "A": [8, 24], "compens": 8, "comput": 8, "mult": 8, "flux_sit": 8, "flux_region": 8, "done": [8, 20], "iterativli": 8, "arg": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "dict": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "global": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "dictionari": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "return": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "modifi": [8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 23], "int": [8, 9, 10, 12, 17], "fil": 8, "str": [8, 9, 12, 13, 14, 16, 17, 18], "none": [8, 13, 14, 16, 17], "requiri": 9, "in_fil": 9, "text": 9, "lol": 9, "list": [9, 17, 18], "inc": 9, "befor": 9, "index": [9, 12, 17, 19], "remain": 9, "correct": 10, "reg": [10, 12], "dir": 10, "face": 10, "counter": 10, "side": 10, "pv": 10, "quantiti": [11, 16, 17, 18], "handl": [11, 18], "find": [11, 12], "after": [11, 20, 23], "rotat": [11, 21], "requier": 11, "ind": 12, "gind": 12, "check": [12, 24], "nnc": 12, "overlap": 12, "coord": 12, "cardin": 12, "neighbour": 12, "border": [12, 17], "count": 12, "hand": 12, "studi": [13, 24], "float": 13, "print": 13, "necessari": 14, "f_xy": 14, "mainfold": 14, "profil": 14, "relat": [14, 19, 23], "templat": 14, "make": [14, 20], "numpi": 14, "2d": [16, 17, 24], "re": [16, 17, 18], "out": [16, 18, 24], "complet": [16, 18], "j": 17, "nqua": 17, "nfol": 17, "manag": 17, "label": 17, "improv": [17, 21], "indic": 17, "fol": [17, 18], "better": 17, "color": 17, "max": 17, "1d": 17, "style": 17, "nrst": 17, "extract": 17, "resdata": [17, 18, 20, 21], "ndeck": 17, "opmn": 17, "nquan": 17, "nwell": 17, "type": 18, "loadnpi": 18, "data": 18, "bool": 18, "fals": 18, "need": [18, 20], "concept": 19, "overview": [19, 20], "python": [19, 21, 24], "sourc": [19, 24], "linux": 19, "window": 19, "maco": 19, "paramet": 19, "rock": [19, 21], "api": 19, "pyopmspe11": 19, "pyopmnearwel": 19, "pycopm": 19, "micp": 19, "pymm": 19, "about": 19, "search": 19, "exist": 20, "environ": 20, "code": 20, "clone": 20, "repositori": 20, "virtual": 20, "repo": 20, "cd": 20, "python3": 20, "venv": 20, "vexprecc": 20, "upgrad": 20, "setuptool": 20, "wheel": 20, "test": [20, 21], "lint": 20, "dev": 20, "egrid": 20, "init": 20, "unrst": 20, "seem": 20, "faster": 20, "larg": 20, "org": 20, "releas": 20, "2024": 20, "04": 20, "master": 20, "branch": 20, "ci": 20, "yml": 20, "binari": 20, "subsystem": 20, "could": [20, 23], "try": 20, "prerequisit": 20, "turn": 20, "should": 20, "current_directori": 20, "pwd": 20, "common": 20, "mkdir": 20, "cmake": 20, "duse_mpi": 20, "dwith_ndebug": 20, "dcmake_build_typ": 20, "dcmake_prefix_path": 20, "j5": 20, "sh": 20, "build_opm_mpi": 20, "copi": 20, "built": 20, "dune": 20, "librari": 20, "macport": 20, "brew": 20, "geometri": 20, "istl": 20, "gitlab": 20, "v2": 20, "dunecontrol": 20, "dcmake_disable_find_package_mpi": 20, "dpython_execut": 20, "dopm_enable_python": 20, "ON": 20, "echo": 20, "export": 20, "pythonpath": 20, "deactiv": 20, "might": 20, "depend": 20, "version": 20, "found": 20, "recommend": 20, "equal": 20, "higher": 20, "otherwis": 20, "remov": 20, "pyproject": 20, "toml": 20, "when": 20, "alwai": 20, "default": [20, 21], "numer": 21, "perform": 21, "simplifi": [21, 24], "flexibl": [21, 24], "stage": 21, "timestep": 21, "identifi": 21, "connect": 21, "u": 21, "gaswat": 21, "norefer": 21, "metric": 21, "nice": 21, "gasoil": 21, "co2stor": 21, "grade": 21, "select": 23, "preprocess": 23, "directli": 23, "tracer": 23, "spe11": 24, "benchmark": 24, "dynam": 24, "coarsen": 24, "quick": 24, "slide": 24, "leakag": 24, "remedi": 24, "microbi": 24, "induc": 24, "calcit": 24, "precipit": 24, "open": 24, "cfd": 24, "microsystem": 24}, "objects": {"": [[4, 0, 0, "-", "expreccs"]], "expreccs": [[5, 0, 0, "-", "core"], [7, 0, 0, "-", "utils"], [15, 0, 0, "-", "visualization"]], "expreccs.core": [[6, 0, 0, "-", "expreccs"]], "expreccs.core.expreccs": [[6, 1, 1, "", "expreccs"], [6, 1, 1, "", "load_parser"], [6, 1, 1, "", "main"]], "expreccs.utils": [[8, 0, 0, "-", "backcoupling"], [9, 0, 0, "-", "inputvalues"], [10, 0, 0, "-", "mapboundaries"], [11, 0, 0, "-", "mapproperties"], [12, 0, 0, "-", "reg_sit_given_decks"], [13, 0, 0, "-", "runs"], [14, 0, 0, "-", "writefile"]], "expreccs.utils.backcoupling": [[8, 1, 1, "", "backcoupling"], [8, 1, 1, "", "compute_multipliers"], [8, 1, 1, "", "init_multipliers"], [8, 1, 1, "", "write_folder_iter"]], "expreccs.utils.inputvalues": [[9, 1, 1, "", "process_input"], [9, 1, 1, "", "readthefirstpart"], [9, 1, 1, "", "readthesecondpart"]], "expreccs.utils.mapboundaries": [[10, 1, 1, "", "aquaflux_opm"], [10, 1, 1, "", "aquaflux_resdata"], [10, 1, 1, "", "handle_pressure_correction"], [10, 1, 1, "", "handle_stencil_2p"], [10, 1, 1, "", "handle_stencil_opm"], [10, 1, 1, "", "handle_stencil_resdata"], [10, 1, 1, "", "porv_projections"], [10, 1, 1, "", "porv_regional_segmentation"], [10, 1, 1, "", "temporal_interpolation_flux"], [10, 1, 1, "", "temporal_interpolation_pressure"]], "expreccs.utils.mapproperties": [[11, 1, 1, "", "mapping_properties"], [11, 1, 1, "", "positions_reference"], [11, 1, 1, "", "positions_regional"], [11, 1, 1, "", "positions_rotation"], [11, 1, 1, "", "positions_site"], [11, 1, 1, "", "rotate_grid"]], "expreccs.utils.reg_sit_given_decks": [[12, 1, 1, "", "check_intersection"], [12, 1, 1, "", "check_regional_neighbours"], [12, 1, 1, "", "create_deck"], [12, 1, 1, "", "dynamic_mapping"], [12, 1, 1, "", "extract_site_borders"], [12, 1, 1, "", "find_ij_orientation"], [12, 1, 1, "", "find_regional_cells"], [12, 1, 1, "", "handle_grid_coord"], [12, 1, 1, "", "project_pressures"], [12, 1, 1, "", "write_files"]], "expreccs.utils.runs": [[13, 1, 1, "", "plotting"], [13, 1, 1, "", "run_models"], [13, 1, 1, "", "simulations"]], "expreccs.utils.writefile": [[14, 1, 1, "", "set_gridmako"], [14, 1, 1, "", "write_files"], [14, 1, 1, "", "write_folders"], [14, 1, 1, "", "write_properties"]], "expreccs.visualization": [[16, 0, 0, "-", "maps2d"], [17, 0, 0, "-", "plotting"], [18, 0, 0, "-", "reading"]], "expreccs.visualization.maps2d": [[16, 1, 1, "", "final_time_maps"], [16, 1, 1, "", "final_time_maps_difference"], [16, 1, 1, "", "geological_maps"], [16, 1, 1, "", "manage_name"]], "expreccs.visualization.plotting": [[17, 1, 1, "", "handle_labels_difference"], [17, 1, 1, "", "handle_labels_distance"], [17, 1, 1, "", "handle_site_summary"], [17, 1, 1, "", "main"], [17, 1, 1, "", "over_time_distance"], [17, 1, 1, "", "over_time_max_difference"], [17, 1, 1, "", "over_time_sensor"], [17, 1, 1, "", "plot_results"], [17, 1, 1, "", "plotting_settings"], [17, 1, 1, "", "positions_opm"], [17, 1, 1, "", "positions_resdata"], [17, 1, 1, "", "summary_plot"], [17, 1, 1, "", "summary_site"], [17, 1, 1, "", "wells_site"]], "expreccs.visualization.reading": [[18, 1, 1, "", "define_cases"], [18, 1, 1, "", "handle_smsp_time"], [18, 1, 1, "", "manage_names"], [18, 1, 1, "", "opm_arrays"], [18, 1, 1, "", "reading_opm"], [18, 1, 1, "", "reading_resdata"], [18, 1, 1, "", "resdata_arrays"], [18, 1, 1, "", "resdata_load_data"]]}, "objtypes": {"0": "py:module", "1": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "titleterms": {"about": 0, "exprecc": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22], "python": [1, 20], "api": 1, "configur": 2, "file": 2, "reservoir": 2, "relat": [2, 24], "paramet": 2, "rock": 2, "well": 2, "simul": 2, "result": 2, "exampl": 3, "1": 3, "2": 3, "gener": 3, "under": 3, "develop": 3, "back": 3, "coupl": 3, "packag": [4, 5, 7, 15, 20], "subpackag": 4, "modul": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "content": [4, 5, 7, 15], "core": [5, 6], "submodul": [5, 7, 15], "util": [7, 8, 9, 10, 11, 12, 13, 14], "backcoupl": 8, "inputvalu": 9, "mapboundari": 10, "mapproperti": 11, "reg_sit_given_deck": 12, "run": 13, "writefil": 14, "visual": [15, 16, 17, 18], "maps2d": 16, "plot": 17, "read": 18, "welcom": 19, "": 19, "document": 19, "indic": 19, "tabl": 19, "instal": 20, "opm": 20, "flow": 20, "sourc": 20, "build": 20, "linux": 20, "window": 20, "maco": 20, "introduct": 21, "concept": 21, "overview": 21, "output": 23, "folder": 23, "pyopmspe11": 24, "pyopmnearwel": 24, "pycopm": 24, "plopm": 24, "ad": 24, "micp": 24, "pymm": 24}, "envversion": {"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, "sphinx": 60}, "alltitles": {"About expreccs": [[0, "about-expreccs"]], "expreccs Python API": [[1, "expreccs-python-api"]], "expreccs": [[1, "expreccs"], [22, "expreccs"]], "Configuration file": [[2, "configuration-file"]], "Reservoir-related parameters": [[2, "reservoir-related-parameters"]], "Rock-related parameters": [[2, "rock-related-parameters"]], "Well-related parameters": [[2, "well-related-parameters"]], "Simulation results": [[2, "simulation-results"]], "Examples": [[3, "examples"]], "Example 1": [[3, "example-1"]], "Example 2": [[3, "example-2"]], "Generic (under development)": [[3, "generic-under-development"]], "Back-coupling (under development)": [[3, "back-coupling-under-development"]], "expreccs package": [[4, "expreccs-package"]], "Subpackages": [[4, "subpackages"]], "Module contents": [[4, "module-expreccs"], [5, "module-expreccs.core"], [7, "module-expreccs.utils"], [15, "module-expreccs.visualization"]], "expreccs.core package": [[5, "expreccs-core-package"]], "Submodules": [[5, "submodules"], [7, "submodules"], [15, "submodules"]], "expreccs.core.expreccs module": [[6, "module-expreccs.core.expreccs"]], "expreccs.utils package": [[7, "expreccs-utils-package"]], "expreccs.utils.backcoupling module": [[8, "module-expreccs.utils.backcoupling"]], "expreccs.utils.inputvalues module": [[9, "module-expreccs.utils.inputvalues"]], "expreccs.utils.mapboundaries module": [[10, "module-expreccs.utils.mapboundaries"]], "expreccs.utils.mapproperties module": [[11, "module-expreccs.utils.mapproperties"]], "expreccs.utils.reg_sit_given_decks module": [[12, "module-expreccs.utils.reg_sit_given_decks"]], "expreccs.utils.runs module": [[13, "module-expreccs.utils.runs"]], "expreccs.utils.writefile module": [[14, "module-expreccs.utils.writefile"]], "expreccs.visualization package": [[15, "expreccs-visualization-package"]], "expreccs.visualization.maps2d module": [[16, "module-expreccs.visualization.maps2d"]], "expreccs.visualization.plotting module": [[17, "module-expreccs.visualization.plotting"]], "expreccs.visualization.reading module": [[18, "module-expreccs.visualization.reading"]], "Welcome to expreccs\u2019s documentation!": [[19, "welcome-to-expreccs-s-documentation"]], "Indices and tables": [[19, "indices-and-tables"]], "Installation": [[20, "installation"]], "Python package": [[20, "python-package"]], "OPM Flow": [[20, "opm-flow"]], "Source build in Linux/Windows": [[20, "source-build-in-linux-windows"]], "Source build in macOS": [[20, "source-build-in-macos"]], "Introduction": [[21, "introduction"]], "Concept": [[21, "concept"]], "Overview": [[21, "overview"]], "Output folder": [[23, "output-folder"]], "Related": [[24, "related"]], "pyopmspe11": [[24, "pyopmspe11"]], "pyopmnearwell": [[24, "pyopmnearwell"]], "pycopm": [[24, "pycopm"]], "plopm": [[24, "plopm"]], "ad-micp": [[24, "ad-micp"]], "pymm": [[24, "pymm"]]}, "indexentries": {"expreccs": [[4, "module-expreccs"]], "module": [[4, "module-expreccs"], [5, "module-expreccs.core"], [6, "module-expreccs.core.expreccs"], [7, "module-expreccs.utils"], [8, "module-expreccs.utils.backcoupling"], [9, "module-expreccs.utils.inputvalues"], [10, "module-expreccs.utils.mapboundaries"], [11, "module-expreccs.utils.mapproperties"], [12, "module-expreccs.utils.reg_sit_given_decks"], [13, "module-expreccs.utils.runs"], [14, "module-expreccs.utils.writefile"], [15, "module-expreccs.visualization"], [16, "module-expreccs.visualization.maps2d"], [17, "module-expreccs.visualization.plotting"], [18, "module-expreccs.visualization.reading"]], "expreccs.core": [[5, "module-expreccs.core"]], "expreccs() (in module expreccs.core.expreccs)": [[6, "expreccs.core.expreccs.expreccs"]], "expreccs.core.expreccs": [[6, "module-expreccs.core.expreccs"]], "load_parser() (in module expreccs.core.expreccs)": [[6, "expreccs.core.expreccs.load_parser"]], "main() (in module expreccs.core.expreccs)": [[6, "expreccs.core.expreccs.main"]], "expreccs.utils": [[7, "module-expreccs.utils"]], "backcoupling() (in module expreccs.utils.backcoupling)": [[8, "expreccs.utils.backcoupling.backcoupling"]], "compute_multipliers() (in module expreccs.utils.backcoupling)": [[8, "expreccs.utils.backcoupling.compute_multipliers"]], "expreccs.utils.backcoupling": [[8, "module-expreccs.utils.backcoupling"]], "init_multipliers() (in module expreccs.utils.backcoupling)": [[8, "expreccs.utils.backcoupling.init_multipliers"]], "write_folder_iter() (in module expreccs.utils.backcoupling)": [[8, "expreccs.utils.backcoupling.write_folder_iter"]], "expreccs.utils.inputvalues": [[9, "module-expreccs.utils.inputvalues"]], "process_input() (in module expreccs.utils.inputvalues)": [[9, "expreccs.utils.inputvalues.process_input"]], "readthefirstpart() (in module expreccs.utils.inputvalues)": [[9, "expreccs.utils.inputvalues.readthefirstpart"]], "readthesecondpart() (in module expreccs.utils.inputvalues)": [[9, "expreccs.utils.inputvalues.readthesecondpart"]], "aquaflux_opm() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.aquaflux_opm"]], "aquaflux_resdata() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.aquaflux_resdata"]], "expreccs.utils.mapboundaries": [[10, "module-expreccs.utils.mapboundaries"]], "handle_pressure_correction() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.handle_pressure_correction"]], "handle_stencil_2p() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.handle_stencil_2p"]], "handle_stencil_opm() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.handle_stencil_opm"]], "handle_stencil_resdata() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.handle_stencil_resdata"]], "porv_projections() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.porv_projections"]], "porv_regional_segmentation() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.porv_regional_segmentation"]], "temporal_interpolation_flux() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.temporal_interpolation_flux"]], "temporal_interpolation_pressure() (in module expreccs.utils.mapboundaries)": [[10, "expreccs.utils.mapboundaries.temporal_interpolation_pressure"]], "expreccs.utils.mapproperties": [[11, "module-expreccs.utils.mapproperties"]], "mapping_properties() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.mapping_properties"]], "positions_reference() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.positions_reference"]], "positions_regional() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.positions_regional"]], "positions_rotation() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.positions_rotation"]], "positions_site() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.positions_site"]], "rotate_grid() (in module expreccs.utils.mapproperties)": [[11, "expreccs.utils.mapproperties.rotate_grid"]], "check_intersection() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.check_intersection"]], "check_regional_neighbours() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.check_regional_neighbours"]], "create_deck() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.create_deck"]], "dynamic_mapping() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.dynamic_mapping"]], "expreccs.utils.reg_sit_given_decks": [[12, "module-expreccs.utils.reg_sit_given_decks"]], "extract_site_borders() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.extract_site_borders"]], "find_ij_orientation() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.find_ij_orientation"]], "find_regional_cells() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.find_regional_cells"]], "handle_grid_coord() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.handle_grid_coord"]], "project_pressures() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.project_pressures"]], "write_files() (in module expreccs.utils.reg_sit_given_decks)": [[12, "expreccs.utils.reg_sit_given_decks.write_files"]], "expreccs.utils.runs": [[13, "module-expreccs.utils.runs"]], "plotting() (in module expreccs.utils.runs)": [[13, "expreccs.utils.runs.plotting"]], "run_models() (in module expreccs.utils.runs)": [[13, "expreccs.utils.runs.run_models"]], "simulations() (in module expreccs.utils.runs)": [[13, "expreccs.utils.runs.simulations"]], "expreccs.utils.writefile": [[14, "module-expreccs.utils.writefile"]], "set_gridmako() (in module expreccs.utils.writefile)": [[14, "expreccs.utils.writefile.set_gridmako"]], "write_files() (in module expreccs.utils.writefile)": [[14, "expreccs.utils.writefile.write_files"]], "write_folders() (in module expreccs.utils.writefile)": [[14, "expreccs.utils.writefile.write_folders"]], "write_properties() (in module expreccs.utils.writefile)": [[14, "expreccs.utils.writefile.write_properties"]], "expreccs.visualization": [[15, "module-expreccs.visualization"]], "expreccs.visualization.maps2d": [[16, "module-expreccs.visualization.maps2d"]], "final_time_maps() (in module expreccs.visualization.maps2d)": [[16, "expreccs.visualization.maps2d.final_time_maps"]], "final_time_maps_difference() (in module expreccs.visualization.maps2d)": [[16, "expreccs.visualization.maps2d.final_time_maps_difference"]], "geological_maps() (in module expreccs.visualization.maps2d)": [[16, "expreccs.visualization.maps2d.geological_maps"]], "manage_name() (in module expreccs.visualization.maps2d)": [[16, "expreccs.visualization.maps2d.manage_name"]], "expreccs.visualization.plotting": [[17, "module-expreccs.visualization.plotting"]], "handle_labels_difference() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.handle_labels_difference"]], "handle_labels_distance() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.handle_labels_distance"]], "handle_site_summary() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.handle_site_summary"]], "main() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.main"]], "over_time_distance() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.over_time_distance"]], "over_time_max_difference() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.over_time_max_difference"]], "over_time_sensor() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.over_time_sensor"]], "plot_results() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.plot_results"]], "plotting_settings() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.plotting_settings"]], "positions_opm() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.positions_opm"]], "positions_resdata() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.positions_resdata"]], "summary_plot() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.summary_plot"]], "summary_site() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.summary_site"]], "wells_site() (in module expreccs.visualization.plotting)": [[17, "expreccs.visualization.plotting.wells_site"]], "define_cases() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.define_cases"]], "expreccs.visualization.reading": [[18, "module-expreccs.visualization.reading"]], "handle_smsp_time() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.handle_smsp_time"]], "manage_names() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.manage_names"]], "opm_arrays() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.opm_arrays"]], "reading_opm() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.reading_opm"]], "reading_resdata() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.reading_resdata"]], "resdata_arrays() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.resdata_arrays"]], "resdata_load_data() (in module expreccs.visualization.reading)": [[18, "expreccs.visualization.reading.resdata_load_data"]]}}) \ No newline at end of file diff --git a/docs/text/configuration_file.rst b/docs/text/configuration_file.rst index 1e58e83..9557758 100644 --- a/docs/text/configuration_file.rst +++ b/docs/text/configuration_file.rst @@ -65,8 +65,7 @@ the location of a point of interest to compare results, and the z position of th Killough hysteresis model on the gas relative permeability. .. note:: - The functionality for back-coupling in line 22 is under development, see/run `back-coupling.txt `_ - if you are curious. + The functionality for back-coupling in line 22 is under development, see the :ref:`back_coupling` if you are curious. .. figure:: figs/grids.png diff --git a/docs/text/examples.rst b/docs/text/examples.rst index 25d62d0..d439965 100644 --- a/docs/text/examples.rst +++ b/docs/text/examples.rst @@ -5,7 +5,7 @@ Examples Example 1 --------- -We consider the configuration file 'example1.txt' in the +We consider the configuration file `example1.txt `_ in the examples folder (the animation in the `Github home page `_ was based on this configuration file). If the results are to be saved in a folder called 'hello_world', this is achieved by the following command: @@ -74,4 +74,44 @@ the pressures are projected. .. code-block:: bash - expreccs -e name_of_folder_for_the_regional_model,name_of_folder_for_the_site_model \ No newline at end of file + expreccs -e name_of_folder_for_the_regional_model,name_of_folder_for_the_site_model + +.. _back_coupling: + +Back-coupling (under development) +--------------------------------- + +We consider the configuration file `example1_back.txt `_ in the examples folder. +The plan is to update properties (e.g., transmissibility multipliers) in the regional model from features (e.g., faults) in the site model (i.e., not included in the regional model). +By running: + +.. code-block:: bash + + expreccs -i example1_back.txt -o back-coupling -m all -p yes + +This is one of the generated figures: + +.. image:: ./figs/back-coupling_summary_BPR_regional_reference.png + +The figures in the postprocessing includes the results for the first two iterations and the last one (in this case 9 since the number of +iteration is set to 10 in line 22 of the `configuration_file `_). To visualize/compare results +between any of the iterations, we can use our friend `plopm `_. + +.. tip:: + You can install plopm by executing in the terminal: pip install git+https://github.com/cssr-tools/plopm.git. + +For example, to show the difference in the spatial maps for pressure at iteration 4 and 7 at the third restart, this is achieved by executing: + +.. code-block:: bash + + plopm -i back-coupling/output/regional_7/regional_7,back-coupling/output/regional_4/regional_4 -v pressure -r 3 -s ,,1 -c rainbow -n "lambda x, _: f'{x:.2f}'" -d 5,5 + +.. image:: ./figs/pressure_plopm.png + +And to show the comparison for the summary vector FPR for iterations 1, 5, 7, and 9: + +.. code-block:: bash + + plopm -i back-coupling/output/regional_1/regional_1,back-coupling/output/regional_5/regional_5,back-coupling/output/regional_7/regional_7,back-coupling/output/regional_9/regional_9 -v fpr -d 5,5 -f 10 + +.. image:: ./figs/fpr_plopm.png \ No newline at end of file diff --git a/docs/text/figs/back-coupling_summary_BPR_regional_reference.png b/docs/text/figs/back-coupling_summary_BPR_regional_reference.png new file mode 100644 index 0000000..1d6d84a Binary files /dev/null and b/docs/text/figs/back-coupling_summary_BPR_regional_reference.png differ diff --git a/docs/text/figs/fpr_plopm.png b/docs/text/figs/fpr_plopm.png new file mode 100644 index 0000000..51a9de9 Binary files /dev/null and b/docs/text/figs/fpr_plopm.png differ diff --git a/docs/text/figs/pressure_plopm.png b/docs/text/figs/pressure_plopm.png new file mode 100644 index 0000000..8b40e8e Binary files /dev/null and b/docs/text/figs/pressure_plopm.png differ diff --git a/examples/example1_back.txt b/examples/example1_back.txt index 4928b8e..5518149 100644 --- a/examples/example1_back.txt +++ b/examples/example1_back.txt @@ -19,7 +19,7 @@ pres #Use free/closed/porv/porvproj/flux/pres/pres2p/well 7000 7000 0 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m] 0 #The function for the reservoir surface 0 0 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg]) -3 #Number of interations for back-coupling +10 #Number of interations for back-coupling """Set the saturation functions""" krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-] diff --git a/src/expreccs/visualization/plotting.py b/src/expreccs/visualization/plotting.py index e2b4555..2b12705 100644 --- a/src/expreccs/visualization/plotting.py +++ b/src/expreccs/visualization/plotting.py @@ -212,12 +212,12 @@ def plotting_settings(dic): ] dic["lreference"] = r"REF" dic["lregional"] = r"REG" - dic["lregional_1"] = r"REG_1" - dic["lregional_2"] = r"REG_2" + dic["lregional_1"] = r"REG1" + dic["lregional_2"] = r"REG2" dic["lsite_pres"] = r"S$_{pressure}$" dic["lsite_pres2p"] = r"S$_{pressure 2p}$" - dic["lsite_pres_1"] = r"S$_{1,pres}$" - dic["lsite_pres_2"] = r"S$_{2,pres}$" + dic["lsite_pres_1"] = r"S1$_{pressure}$" + dic["lsite_pres_2"] = r"S2$_{pressure}$" dic["lsite_flux"] = r"S$_{flux}$" dic["lsite_porvproj"] = r"S$_{pore\;volume}$" dic["lsite_wells"] = r"S$_{wells}$" @@ -311,23 +311,22 @@ def wells_site(dic, nquan, nfol, ndeck, nwell): yvalues = [val * GAS_DEN_REF * KG_TO_MT * 365.25 for val in yvalues] if opm[nquan] == f"W{dic[f'{fol}/{res}l']}R": yvalues = [val * WAT_DEN_REF * KG_TO_MT * 365.25 for val in yvalues] - # fols = f" ({fol})" - # if nwell > 0: - # marker = dic["markers"][nwell] - # else: - # marker = "" - # dic["axis"].step( - # dic[f"{fol}/{res}_smsp_dates"], - # yvalues, - # label=f"INJ{nwell} " - # + dic[f"l{res}"] - # + f" {' ('+dic['lfolders'][nfol]+')' if dic['compare'] else ''}", - # color=dic["colors"][-ndeck - 1], - # linestyle=dic["linestyle"][-ndeck - 1 - nfol * len(dic[f"{fol}_decks"])], - # marker=marker, - # lw=2, - # ) - # if ndeck == 0 and nfol == 1 or nwell > 0: + if nwell > 0: + marker = dic["markers"][nwell] + else: + marker = "" + dic["axis"].step( + dic[f"{fol}/{res}_smsp_dates"], + yvalues, + label=f"INJ{nwell} " + + dic[f"l{res}"] + + f" {' ('+dic['lfolders'][nfol]+')' if dic['compare'] else ''}", + color=dic["colors"][-ndeck - 1], + linestyle=dic["linestyle"][-ndeck - 1 - nfol * len(dic[f"{fol}_decks"])], + marker=marker, + lw=2, + ) + # if ndeck == 0 and nfol > 0: # return # if ndeck == 0: # dic["axis"].step( @@ -356,16 +355,16 @@ def wells_site(dic, nquan, nfol, ndeck, nwell): # linestyle=dic["linestyle"][-1 + nwell], # lw=3, # ) - if ndeck != 1 or nfol > 0: # or nwell > 0: - return - dic["axis"].step( - dic[f"{fol}/{res}_smsp_dates"], - yvalues, - label=f"INJ{nwell}", - color=dic["colors"][nwell], - linestyle=dic["linestyle"][-1 + nwell], - lw=3, - ) + # if ndeck != 1 or nfol > 0: # or nwell > 0: + # return + # dic["axis"].step( + # dic[f"{fol}/{res}_smsp_dates"], + # yvalues, + # label=f"INJ{nwell}", + # color=dic["colors"][nwell], + # linestyle=dic["linestyle"][-1 + nwell], + # lw=3, + # ) def summary_site(dic, nfol, ndeck, opmn): @@ -439,7 +438,7 @@ def handle_site_summary(dic, i, quantity): """ for nfol, fol in enumerate(dic["folders"]): for ndeck, res in enumerate(dic[f"{fol}_decks"]): - if res == "regional": + if "regional" in res: continue if quantity in ["PR", "GIP", "GIPL", "GIPG"]: summary_site(dic, nfol, ndeck, f"R{quantity}:1") diff --git a/src/expreccs/visualization/reading.py b/src/expreccs/visualization/reading.py index 437a0f1..af4236c 100644 --- a/src/expreccs/visualization/reading.py +++ b/src/expreccs/visualization/reading.py @@ -45,9 +45,8 @@ def reading_resdata(dic, loadnpy=True): for fol in dic["folders"]: cwd = os.getcwd() os.chdir(f"{dic['exe']}/{fol}/output") - dic[f"{fol}_sites"] = sorted( - [name for name in os.listdir(".") if os.path.isdir(name)] - )[2:] + folders = sorted([name for name in os.listdir(".") if os.path.isdir(name)]) + dic[f"{fol}_sites"] = folders[2:] os.chdir(cwd) if dic["plot"] in ["reference"]: dic[f"{fol}_decks"] = ["reference"] @@ -75,6 +74,7 @@ def reading_resdata(dic, loadnpy=True): dic[f"{fol}/{res}_smsp"] = Summary(case + ".SMSPEC") dic[f"{fol}/{res}_num_rst"] = dic[f"{fol}/{res}_rst"].num_report_steps() if loadnpy: + define_cases(dic, fol, folders) resdata_load_data(dic, fol, res, name) dic[f"{fol}/{res}_phiv"] = dic[f"{fol}/{res}_ini"].iget_kw("PORV")[0] dic[f"{fol}/{res}_poro"] = dic[f"{fol}/{res}_ini"].iget_kw("PORO")[0] @@ -317,9 +317,8 @@ def reading_opm(dic, loadnpy=True): # pylint: disable=R0915, R0912 for fol in dic["folders"]: cwd = os.getcwd() os.chdir(f"{dic['exe']}/{fol}/output") - dic[f"{fol}_sites"] = sorted( - [name for name in os.listdir(".") if os.path.isdir(name)] - )[2:] + folders = sorted([name for name in os.listdir(".") if os.path.isdir(name)]) + dic[f"{fol}_sites"] = folders[2:] os.chdir(cwd) if dic["plot"] in ["reference"]: dic[f"{fol}_decks"] = ["reference"] @@ -340,8 +339,8 @@ def reading_opm(dic, loadnpy=True): # pylint: disable=R0915, R0912 name = res[:-2] else: name = res - if loadnpy: + define_cases(dic, fol, folders) dic[f"{fol}/{res}_rst_seconds"] = np.load( dic["exe"] + "/" + fol + f"/output/{name}/schedule.npy" ) @@ -408,6 +407,30 @@ def reading_opm(dic, loadnpy=True): # pylint: disable=R0915, R0912 opm_arrays(dic, fol, res, loadnpy) +def define_cases(dic, fol, folders): + """ + Only plot the first two and last cases for the back-coupling + + Args: + dic (dict): Global dictionary\n + fol (str): Name of the output folder\n + folders (list): Names of the cases + + Returns: + dic (dict): Modified global dictionary + + """ + dic[f"{fol}_sites"] = [folder for folder in folders if "site" in folder] + if "site_pres_2" in dic[f"{fol}_sites"]: + n_c = len(dic[f"{fol}_sites"]) - 1 + dic[f"lregional_{n_c}"] = "REG" + f"{n_c}" + dic[f"lsite_pres_{n_c}"] = f"S{n_c}" + r"$_{pressure}$" + dic[f"{fol}_sites"] = dic[f"{fol}_sites"][:2] + [dic[f"{fol}_sites"][-1]] + dic[f"{fol}_decks"] = ( + dic[f"{fol}_decks"][:3] + [f"regional_{n_c}"] + dic[f"{fol}_sites"] + ) + + def opm_arrays(dic, fol, res, loadnpy): """ From simulation data to arrays