From 8df364653288863b1aa3427aac8360fbd1f2c6e8 Mon Sep 17 00:00:00 2001 From: David Landa Marban Date: Mon, 13 Jan 2025 19:12:02 +0100 Subject: [PATCH] Time interpolation for generic decks --- .gitignore | 1 + README.md | 6 +- docs/_sources/examples.rst.txt | 2 +- docs/_sources/introduction.rst.txt | 7 +- docs/_sources/output_folder.rst.txt | 2 +- docs/examples.html | 2 +- docs/expreccs.html | 3 +- docs/expreccs.utils.html | 3 +- docs/expreccs.utils.reg_sit_given_decks.html | 17 +- docs/genindex.html | 6 +- docs/introduction.html | 13 +- docs/objects.inv | Bin 1530 -> 1539 bytes docs/output_folder.html | 2 +- docs/searchindex.js | 2 +- docs/text/examples.rst | 2 +- docs/text/introduction.rst | 7 +- docs/text/output_folder.rst | 2 +- examples/example1.txt | 2 +- examples/example1_back.txt | 2 +- examples/example1_porvproj.txt | 2 +- examples/example1_pres.txt | 2 +- examples/example1_wells.txt | 2 +- examples/example2.txt | 2 +- examples/input.txt | 2 +- examples/interpolation_time.txt | 2 +- src/expreccs/core/expreccs.py | 45 ++-- src/expreccs/utils/reg_sit_given_decks.py | 215 ++++++++++++++----- src/expreccs/utils/writefile.py | 2 - tests/configs/back-coupling.txt | 2 +- tests/configs/flux.txt | 2 +- tests/configs/input.txt | 2 +- tests/configs/interp.txt | 2 +- tests/configs/rotate.txt | 4 +- tests/configs/rotate_2d.txt | 47 ++++ tests/configs/wells.txt | 2 +- tests/test_generic_deck.py | 4 +- tests/test_generic_deck_2d.py | 35 +++ 37 files changed, 342 insertions(+), 113 deletions(-) create mode 100644 tests/configs/rotate_2d.txt create mode 100644 tests/test_generic_deck_2d.py diff --git a/.gitignore b/.gitignore index 3fa4fe2..3acacd5 100644 --- a/.gitignore +++ b/.gitignore @@ -148,6 +148,7 @@ tests/configs/back tests/configs/compare tests/configs/output tests/configs/rotate +tests/configs/rotate_2d examples/output developing playground diff --git a/README.md b/README.md index a3ffa5b..fa205ff 100644 --- a/README.md +++ b/README.md @@ -46,10 +46,10 @@ See the [_installation_](https://cssr-tools.github.io/exprecss/installation.html ## Running expreccs You can run _expreccs_ as a single command line: ``` -expreccs -i name_of_input_file +expreccs -i name(s)_of_input_file(s) ``` Run `expreccs --help` to see all possible command line argument options. Inside the `configuration_file.txt` file you provide the path to the -flow executable and simulation parameters. See the .txt files in the [_examples_](https://github.com/cssr-tools/expreccs/tree/main/examples) and [_tests_](https://github.com/cssr-tools/expreccs/tree/main/tests/configs) folders. +flow executable and simulation parameters. To write dynamic boundary conditions from a given regional model to a site model, this can be achieved by giving the path to the models (i.e., without a configuration file). See the [_examples_](https://github.com/cssr-tools/expreccs/tree/main/examples) and [_tests_](https://github.com/cssr-tools/expreccs/tree/main/tests/configs) folders. ## Getting started See the [_examples_](https://cssr-tools.github.io/expreccs/examples.html) in the [_documentation_](https://cssr-tools.github.io/expreccs/introduction.html). @@ -66,6 +66,6 @@ The following is a list of manuscripts in which _expreccs_ is used: 1. Gasda, S.E., et al., 2024. Quantifying the impact of regional-scale pressure interference on commercial CO2 storage targets for multiple licenses. http://dx.doi.org/10.2139/ssrn.5053633. ## About expreccs -The _expreccs_ package is funded by Wintershall Dea, Equinor, Shell, and the Research Council of Norway [project number 336294]. +The _expreccs_ package is funded by Harbour Energy, Equinor, Shell, and the Research Council of Norway [project number 336294]. This is work in progress. [_Here_](https://www.norceresearch.no/en/projects/expansion-of-resources-for-co2-storage-on-the-horda-platform-expreccs) is the link to the project details. Contributions are more than welcome using the fork and pull request approach. For new features, please request them raising an issue. diff --git a/docs/_sources/examples.rst.txt b/docs/_sources/examples.rst.txt index 4e9cccf..77259aa 100644 --- a/docs/_sources/examples.rst.txt +++ b/docs/_sources/examples.rst.txt @@ -131,7 +131,7 @@ the pressures are projected. .. code-block:: bash - expreccs -e name_of_folder_for_the_regional_model,name_of_folder_for_the_site_model + expreccs -i 'path_to_the_regional_model path_to_the_site_model' In the current implementation, the name of the decks need to match the name of the given folder (e.g., regional/REGIONAL.DATA). For example, to run the test, this can be achieved by executing: diff --git a/docs/_sources/introduction.rst.txt b/docs/_sources/introduction.rst.txt index 84505d9..a70eace 100644 --- a/docs/_sources/introduction.rst.txt +++ b/docs/_sources/introduction.rst.txt @@ -28,11 +28,11 @@ The current implementation supports the following executable with the argument o .. code-block:: bash - expreccs -i name_of_input_file + expreccs -i name(s)_of_input_file(s) where --i The base name of the :doc:`configuration file <./configuration_file>` ('input.txt' by default). +-i The base name of the :doc:`configuration file <./configuration_file>`; or paths (space between them and quotation marks) to the regional and site models ('input.txt' by default). -o The base name of the :doc:`output folder <./output_folder>` ('output' by default). -m Run the whole framework ('all'), only the reference ('reference'), only the site ('site'), or only regional and site models ('noreference') ('all' by default). -c Generate metric plots for the current outputed folders ('compare') ('' by default). @@ -40,8 +40,9 @@ where -r Using the 'opm' or 'resdata' python package ('resdata' by default). -u Using 'gasoil' or 'gaswater' co2store implementation ('gaswater' by default). -t Grades to rotate the site geological model ('0' by default). --e Name of the regional and site folders to project pressures ('' by default). -b Set the number of entries to skip the bc projections on the site, where 'j=0,i=nx,j=ny,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). -l Set to 0 to not use LaTeX formatting ('1' by default). diff --git a/docs/_sources/output_folder.rst.txt b/docs/_sources/output_folder.rst.txt index 46e1d2c..7254181 100644 --- a/docs/_sources/output_folder.rst.txt +++ b/docs/_sources/output_folder.rst.txt @@ -30,7 +30,7 @@ executing **expreccs**, this corresponds to the `test_generic_deck.py Layered model
expreccs -e name_of_folder_for_the_regional_model,name_of_folder_for_the_site_model
+
expreccs -i 'path_to_the_regional_model path_to_the_site_model'
 

In the current implementation, the name of the decks need to match the name of the given folder (e.g., regional/REGIONAL.DATA). diff --git a/docs/expreccs.html b/docs/expreccs.html index ff77bf9..c4cc39d 100644 --- a/docs/expreccs.html +++ b/docs/expreccs.html @@ -141,12 +141,13 @@

Subpackagescheck_intersection()
  • check_regional_neighbours()
  • create_deck()
  • -
  • dynamic_mapping()
  • +
  • dynamic_interpolator()
  • extract_site_borders()
  • find_ij_orientation()
  • find_regional_cells()
  • handle_grid_coord()
  • project_pressures()
  • +
  • temporal_interpolation()
  • write_files()
  • diff --git a/docs/expreccs.utils.html b/docs/expreccs.utils.html index 41bb41b..e8da76f 100644 --- a/docs/expreccs.utils.html +++ b/docs/expreccs.utils.html @@ -127,12 +127,13 @@

    Submodulescheck_intersection()
  • check_regional_neighbours()
  • create_deck()
  • -
  • dynamic_mapping()
  • +
  • dynamic_interpolator()
  • extract_site_borders()
  • find_ij_orientation()
  • find_regional_cells()
  • handle_grid_coord()
  • project_pressures()
  • +
  • temporal_interpolation()
  • write_files()
  • diff --git a/docs/expreccs.utils.reg_sit_given_decks.html b/docs/expreccs.utils.reg_sit_given_decks.html index 1e32be2..dd7208c 100644 --- a/docs/expreccs.utils.reg_sit_given_decks.html +++ b/docs/expreccs.utils.reg_sit_given_decks.html @@ -131,8 +131,8 @@
    -
    -expreccs.utils.reg_sit_given_decks.dynamic_mapping(dic)
    +
    +expreccs.utils.reg_sit_given_decks.dynamic_interpolator(dic)

    Project the pressures from the regional to the site over time

    Args:

    dic (dict): Global dictionary

    @@ -194,6 +194,19 @@
    expreccs.utils.reg_sit_given_decks.project_pressures(dic, i)

    Project the pressures at restart number i

    +
    +
    Args:

    dic (dict): Global dictionary

    +

    i (int): Index of report step in the site

    +
    +
    Returns:

    dic (dict): Modified global dictionary

    +
    +
    +
    + +
    +
    +expreccs.utils.reg_sit_given_decks.temporal_interpolation(dic)
    +

    Function to interpolate BC pressure values in time

    Args:

    dic (dict): Global dictionary

    diff --git a/docs/genindex.html b/docs/genindex.html index 2862a88..99b44eb 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -142,7 +142,7 @@

    D

    @@ -476,10 +476,12 @@

    S

    T

    diff --git a/docs/introduction.html b/docs/introduction.html index 603c929..0378d88 100644 --- a/docs/introduction.html +++ b/docs/introduction.html @@ -105,13 +105,13 @@

    Concept

    Overview

    The current implementation supports the following executable with the argument options:

    -
    expreccs -i name_of_input_file
    +
    expreccs -i name(s)_of_input_file(s)
     

    where

    -i
    -

    The base name of the configuration file (‘input.txt’ by default).

    +

    The base name of the configuration file; or paths (space between them and quotation marks) to the regional and site models (‘input.txt’ by default).

    -o

    The base name of the output folder (‘output’ by default).

    @@ -134,12 +134,15 @@

    Concept
    -t

    Grades to rotate the site geological model (‘0’ by default).

    -
    -e
    -

    Name of the regional and site folders to project pressures (’’ by default).

    -
    -b

    Set the number of entries to skip the bc projections on the site, where ‘j=0,i=nx,j=ny,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).

    diff --git a/docs/objects.inv b/docs/objects.inv index 162383b57cd2690d4d0344a27418e8d4ce8fbd7c..7742bd48364090eb1f5af8ea0b0e29e2a0c935c1 100644 GIT binary patch delta 1420 zcmV;71#|lP3xf=hcz?~3<0cTk`ze&l9+JaMW%szZO)9C{!`4h?s*)pxQQKw*fda_m z$tkaq*UOWn(Lee@@>uM}vYO`m=;p6!1eaU`V5p5Hx@$6irD^wFv>e4PZvOd@E9t0Th2= z`g+%3jtHiVoTFI6W-7}I3nVLq+B~s7?|LP40xJ0jg zGJ0xDJ=#~zwPIilDP`f-ju;l8HPFPN+rVcu->X8VRP(T}J;fz& z`^xmMf*wS1Au7+pEuJ7*kFLR_)Y5q$AB)Rakc92XdKfJm!ukPQ8|Cq%0YYs z2RPzEwstP;dqndeU%~mo?dlg^1j7i|f z6HefzXz*rQj99R*+)G@d^i|S~v))>!bX-QbSWTHN2RYd*okDD99=J>i|4J0DxvRFI zO$ggD!$6407S>UNo7xy;p-+F~($#T8yX8f;ZhFIw%UK`JxY*RVLWb8!EMHs{olY*4 zwTq|f4sH$ye+W{+;`m%dG8|9JbVVo`getx6oF4L0tF+{*PSJoZCr3t~Rk(Qr@F42y zG4ck`GApn-?All_gnZ_vpo0J1PQr0Nc`Eb0NtP)E*?GL}IZmGlS%BZO@&=r3POo!#iJ?e0#$+7kucg!2L z@W`I3ILgcB8%&{lRoKMX^kb@6a`!$d1!Z~isVr-db~NXnV$Odnwf6S>@ztJ?{L|y- zox6u5?X|9}RfasS9$aXaiza926z^KapS`yq3W?{NB!x2w91$Sxk2|L1fgcN9=kDDp zu-B$>Y1PDE`trod9gx+0U)ZLB9YiZ{E4Pwe)B1iD&!Xhl`mOCjU$u8r-+3-ayK(9c zzL1!z*M1<848DJ+m_oP@Hevkfz)V?EEv3Vc3Z^i-Zwiv(CkVp^PJCZ5k2t#54k=8x z*Sq$fXBuAX2Fho6{7c_?rtvLLP-C90cVG{)4f6FtjTyG7eEvM=T-s}e-Wm<93 zGG%cuTu-e1Z4&6H8m;CjvDX0j)RB?Ufp{gsqSze3$p4?$@ zf=h9o1?{VQ1y!YoQj}DpojZ1)IlK(b8aM*YdZ;yby*4ixQ%6CbO&ZW!;LXljRMq*t adf6GEnw@-tN>=GTRppOv9rz#ik)|eJ7`=x8 delta 1411 zcmV-}1$_F04EhU@cz?@sBPSHy>nl2yStJX)GP9iBB$ZUnV#=<#Dp^v9zLFTz&;eSO zv&wJe_wpsV^qYRrEvuQ0WnB*Ez~%C~2rjt>#!QmGe#}%_2uOZPpf=v0Y$m?1%y;jS zyIotrl!oalt|VOV9)g-4WF?bFc_<{aT*>5pkTk$16irD^wFv>e4Pi#Pd@ECu0Th2| z`nYR2M*>rwoRe7MW-7}I3nVLqnqvnJN~E9({;M|-;1a!ZrlNpg zWb|N5Bie`NS}`z&l(ukdM+ytn8fa=yaNycloM3U-4KO9sZRj(a?^PjFs(IMg9&pLq zKA8Sh(1R#0MCDny#S= zgEG*FHZ-}?XB-&ywHgl-NkPLA38^3kju}Wx;|#uq4CPRUOI$~DB}yIQqWhbPHBr8i zAdXEA+Ac3H9dO0s(gVA1xRnrJDA@9$)S^bN3@^hA1K|J~V;bU$RM8eyL#=-d;u|#Z zGlHMWmIFCzo^C;o&UOtYM}7uLQee-)NS%N$#p_fRcEXQp=9x8H$*k;EdhIeMfgeve zftOB$H_PIQ1;@&Li7S-8N}6#->eV2w7+kET%$D&@_DZJ^+m8n>Q^LOzh0E=#-DeZQ zHe4785xIx;fx*pcJYS(t4M}~H{i`={Vj>N^LLWK-3Ram~bHaSc#l(oyVrlp(X z!9N70U@=w}nGDAZD_wD-3sRL{cTNv^sRb>$sskFZWuRvCS%sT7AP=&xj*&NzmY4I* zY1baPLd<7w3M%;D?V2_oCl4||Nj z@zu%$jVZE>>epCOp;Ym$-0BRvnlZ5*)+uH5@(seF(=#BA(y?^hKQ3ES2y0?$xPP!K zgeZ5FY9@$fsM)~G@ zLs#ft6*e(8{g^72+`UgqLs_1DD$5$C9nHB1%y|WCAF&@_?FoOyKRtflx#vLAzOK4j z<&nqLgA2`a(WLGi@U8{^?0x&8ka)jIQaFRahyZDS+%Y8&{8;EZh3;;Fy*7`BVf=rBKU0=eOX=`!e~Pnv+E0eR1Q<4O;+cP*arC?#0!+8pdwrf)8osUu z%4c-^x7T^4@ncI6F|XFUum{x!Y4adrMr|ssKCd~K_F93P(|5_SfMAn1nktx~?9xf| zynd=|t7JPR9?mAfA_#Wa<5KQ6W z(5kk%|NZl?Nf24I&(q%_1zv)M7{yfI-bi*9tY$U#l8vi%_NH2A*=3X|ep9-emS)(OAluXjyBCHSQ}*H<2@hQgcWwaFjJ9Ue|_DXz1ieYjUp zReC5*NoCr(YxkMM%dlGmM_{)eYUHlh=7rAGry#FS8qizd&Cc3X)%m^pvNJ$6JNW{Y Rt-?K3<&SP1_#X>0cWYs8x{&|? diff --git a/docs/output_folder.html b/docs/output_folder.html index 03e496a..89e1dc1 100644 --- a/docs/output_folder.html +++ b/docs/output_folder.html @@ -108,7 +108,7 @@

    Via configuration filesVia OPM Flow decks

    The following screenshot shows the generated files in the selected output folder after executing expreccs, this corresponds to the test_generic_deck.py:

    -
    expreccs -o expreccs -e regional,site_closed
    +
    expreccs -o expreccs -i 'regional/REGIONAL site_closed/SITE_CLOSED'
     
    diff --git a/docs/searchindex.js b/docs/searchindex.js index 1af23d4..bf44658 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"About expreccs": [[0, null]], "Back-coupling (under development)": [[4, "back-coupling-under-development"]], "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"]], "OPM Flow": [[21, "opm-flow"]], "Output folder": [[24, null]], "Overview": [[22, "overview"]], "Python package": [[21, "python-package"]], "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"]], "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 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"]], "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"], "envversion": {"sphinx": 64, "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"], "indexentries": {"aquaflux_opm() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.aquaflux_opm", false]], "aquaflux_resdata() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.aquaflux_resdata", false]], "backcoupling() (in module expreccs.utils.backcoupling)": [[9, "expreccs.utils.backcoupling.backcoupling", false]], "check_intersection() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.check_intersection", false]], "check_regional_neighbours() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.check_regional_neighbours", false]], "compute_multipliers() (in module expreccs.utils.backcoupling)": [[9, "expreccs.utils.backcoupling.compute_multipliers", false]], "create_deck() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.create_deck", false]], "define_cases() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.define_cases", false]], "dynamic_mapping() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.dynamic_mapping", false]], "expreccs": [[5, "module-expreccs", false]], "expreccs() (in module expreccs.core.expreccs)": [[7, "expreccs.core.expreccs.expreccs", false]], "expreccs.core": [[6, "module-expreccs.core", false]], "expreccs.core.expreccs": [[7, "module-expreccs.core.expreccs", false]], "expreccs.utils": [[8, "module-expreccs.utils", false]], "expreccs.utils.backcoupling": [[9, "module-expreccs.utils.backcoupling", false]], "expreccs.utils.inputvalues": [[10, "module-expreccs.utils.inputvalues", false]], "expreccs.utils.mapboundaries": [[11, "module-expreccs.utils.mapboundaries", false]], "expreccs.utils.mapproperties": [[12, "module-expreccs.utils.mapproperties", false]], "expreccs.utils.reg_sit_given_decks": [[13, "module-expreccs.utils.reg_sit_given_decks", false]], "expreccs.utils.runs": [[14, "module-expreccs.utils.runs", false]], "expreccs.utils.writefile": [[15, "module-expreccs.utils.writefile", false]], "expreccs.visualization": [[16, "module-expreccs.visualization", false]], "expreccs.visualization.maps2d": [[17, "module-expreccs.visualization.maps2d", false]], "expreccs.visualization.plotting": [[18, "module-expreccs.visualization.plotting", false]], "expreccs.visualization.reading": [[19, "module-expreccs.visualization.reading", false]], "extract_site_borders() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.extract_site_borders", false]], "final_time_maps() (in module expreccs.visualization.maps2d)": [[17, "expreccs.visualization.maps2d.final_time_maps", false]], "final_time_maps_difference() (in module expreccs.visualization.maps2d)": [[17, "expreccs.visualization.maps2d.final_time_maps_difference", false]], "find_ij_orientation() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.find_ij_orientation", false]], "find_regional_cells() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.find_regional_cells", false]], "geological_maps() (in module expreccs.visualization.maps2d)": [[17, "expreccs.visualization.maps2d.geological_maps", false]], "handle_grid_coord() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.handle_grid_coord", false]], "handle_labels_difference() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.handle_labels_difference", false]], "handle_labels_distance() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.handle_labels_distance", false]], "handle_pressure_correction() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.handle_pressure_correction", false]], "handle_site_summary() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.handle_site_summary", false]], "handle_smsp_time() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.handle_smsp_time", false]], "handle_stencil_2p() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.handle_stencil_2p", false]], "handle_stencil_opm() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.handle_stencil_opm", false]], "handle_stencil_resdata() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.handle_stencil_resdata", false]], "init_multipliers() (in module expreccs.utils.backcoupling)": [[9, "expreccs.utils.backcoupling.init_multipliers", false]], "load_parser() (in module expreccs.core.expreccs)": [[7, "expreccs.core.expreccs.load_parser", false]], "main() (in module expreccs.core.expreccs)": [[7, "expreccs.core.expreccs.main", false]], "main() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.main", false]], "manage_name() (in module expreccs.visualization.maps2d)": [[17, "expreccs.visualization.maps2d.manage_name", false]], "manage_names() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.manage_names", false]], "mapping_properties() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.mapping_properties", false]], "module": [[5, "module-expreccs", false], [6, "module-expreccs.core", false], [7, "module-expreccs.core.expreccs", false], [8, "module-expreccs.utils", false], [9, "module-expreccs.utils.backcoupling", false], [10, "module-expreccs.utils.inputvalues", false], [11, "module-expreccs.utils.mapboundaries", false], [12, "module-expreccs.utils.mapproperties", false], [13, "module-expreccs.utils.reg_sit_given_decks", false], [14, "module-expreccs.utils.runs", false], [15, "module-expreccs.utils.writefile", false], [16, "module-expreccs.visualization", false], [17, "module-expreccs.visualization.maps2d", false], [18, "module-expreccs.visualization.plotting", false], [19, "module-expreccs.visualization.reading", false]], "opm_arrays() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.opm_arrays", false]], "over_time_distance() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.over_time_distance", false]], "over_time_max_difference() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.over_time_max_difference", false]], "over_time_sensor() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.over_time_sensor", false]], "plot_results() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.plot_results", false]], "plotting() (in module expreccs.utils.runs)": [[14, "expreccs.utils.runs.plotting", false]], "plotting_settings() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.plotting_settings", false]], "porv_projections() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.porv_projections", false]], "porv_regional_segmentation() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.porv_regional_segmentation", false]], "positions_opm() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.positions_opm", false]], "positions_reference() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.positions_reference", false]], "positions_regional() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.positions_regional", false]], "positions_resdata() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.positions_resdata", false]], "positions_rotation() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.positions_rotation", false]], "positions_site() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.positions_site", false]], "process_input() (in module expreccs.utils.inputvalues)": [[10, "expreccs.utils.inputvalues.process_input", false]], "project_pressures() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.project_pressures", false]], "reading_opm() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.reading_opm", false]], "reading_resdata() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.reading_resdata", false]], "readthefirstpart() (in module expreccs.utils.inputvalues)": [[10, "expreccs.utils.inputvalues.readthefirstpart", false]], "readthesecondpart() (in module expreccs.utils.inputvalues)": [[10, "expreccs.utils.inputvalues.readthesecondpart", false]], "resdata_arrays() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.resdata_arrays", false]], "resdata_load_data() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.resdata_load_data", false]], "rotate_grid() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.rotate_grid", false]], "run_models() (in module expreccs.utils.runs)": [[14, "expreccs.utils.runs.run_models", false]], "set_gridmako() (in module expreccs.utils.writefile)": [[15, "expreccs.utils.writefile.set_gridmako", false]], "simulations() (in module expreccs.utils.runs)": [[14, "expreccs.utils.runs.simulations", false]], "summary_plot() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.summary_plot", false]], "summary_site() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.summary_site", false]], "temporal_interpolation_flux() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.temporal_interpolation_flux", false]], "temporal_interpolation_pressure() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.temporal_interpolation_pressure", false]], "wells_site() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.wells_site", false]], "write_files() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.write_files", false]], "write_files() (in module expreccs.utils.writefile)": [[15, "expreccs.utils.writefile.write_files", false]], "write_folder_iter() (in module expreccs.utils.backcoupling)": [[9, "expreccs.utils.backcoupling.write_folder_iter", false]], "write_folders() (in module expreccs.utils.writefile)": [[15, "expreccs.utils.writefile.write_folders", false]], "write_properties() (in module expreccs.utils.writefile)": [[15, "expreccs.utils.writefile.write_properties", false]]}, "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, "", "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, "", "process_input"], [10, 1, 1, "", "readthefirstpart"], [10, 1, 1, "", "readthesecondpart"]], "expreccs.utils.mapboundaries": [[11, 1, 1, "", "aquaflux_opm"], [11, 1, 1, "", "aquaflux_resdata"], [11, 1, 1, "", "handle_pressure_correction"], [11, 1, 1, "", "handle_stencil_2p"], [11, 1, 1, "", "handle_stencil_opm"], [11, 1, 1, "", "handle_stencil_resdata"], [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_mapping"], [13, 1, 1, "", "extract_site_borders"], [13, 1, 1, "", "find_ij_orientation"], [13, 1, 1, "", "find_regional_cells"], [13, 1, 1, "", "handle_grid_coord"], [13, 1, 1, "", "project_pressures"], [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, "", "set_gridmako"], [15, 1, 1, "", "write_files"], [15, 1, 1, "", "write_folders"], [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, "", "main"], [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_opm"], [18, 1, 1, "", "positions_resdata"], [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, "", "handle_smsp_time"], [19, 1, 1, "", "manage_names"], [19, 1, 1, "", "opm_arrays"], [19, 1, 1, "", "reading_opm"], [19, 1, 1, "", "reading_resdata"], [19, 1, 1, "", "resdata_arrays"], [19, 1, 1, "", "resdata_load_data"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:function"}, "terms": {"": [2, 4, 21], "0": [2, 4, 21, 22], "00": 2, "01": 2, "010132": 2, "02": 4, "0f": 4, "1": [2, 4, 21, 22], "10": [2, 3, 4, 21], "10000": 2, "101": 2, "1013": 2, "10132": 2, "11000": 2, "11377": 2, "11423e": 2, "11th": 2, "12": 2, "13": 2, "1324": 2, "14": [2, 4], "14518": 2, "15": 2, "15000": [2, 4], "16": 2, "18000": 2, "193531": 2, "1d": 18, "1e": 2, "1e1": 2, "1e2": 2, "1e3": 2, "1e4": 2, "1e5": 2, "1e6": 2, "1e7": 2, "1e8": 2, "1f": 4, "2": [2, 4, 22], "20": [2, 4], "20000": 2, "202": 2, "2024": 21, "21": 2, "21180": 2, "21583": 2, "21718": 2, "22": [2, 4], "24": [3, 4], "24081": 2, "24200": 2, "25": 2, "2650": 2, "27000": 2, "2732": 2, "28477": 2, "2d": [17, 18, 25], "2e7": 2, "2f": 4, "3": [2, 4, 21], "30": 2, "3060": 2, "31679": 2, "32": 2, "324": 2, "325": 2, "336294": 0, "365": 2, "3870": 2, "39": 2, "3e5": 2, "4": [2, 4], "417": 4, "45": 2, "45000": 2, "47": 2, "5": [2, 4], "50": 2, "500": 4, "5000": 2, "506": 2, "51": 2, "5710": 2, "5e6": 2, "6": [2, 4], "60": 2, "6120": 2, "625": 2, "63": 2, "65": 2, "650": 2, "6625": 2, "7": 4, "7068": 2, "7122": 2, "73": 2, "7800": 2, "8": 4, "8000": 2, "81": 2, "8233": 2, "8654": 2, "8883": 2, "9": [2, 4, 21], "92": 2, "95": 4, "99": 2, "A": [9, 25], "As": 2, "By": 4, "For": [0, 4, 21], "If": [2, 4, 21], "In": [2, 3, 4, 22, 24], "No": 2, "ON": 21, "On": 2, "The": [0, 1, 2, 3, 4, 15, 21, 22, 24], "Then": [2, 4, 21, 24], "To": [2, 4, 21], "_": 9, "_build": 3, "about": [3, 20], "accept": 3, "achiev": [2, 4, 21], "action": 3, "activ": [2, 21], "ad": [2, 9, 20, 22], "add": [2, 4, 13, 21, 24], "addit": [1, 2, 3, 21, 24], "after": [12, 21, 24], "all": [3, 4, 21, 22], "allow": 2, "along": [2, 22], "also": [2, 3, 4, 21, 24], "altern": [3, 21], "an": [0, 3, 4, 21, 25], "anaconda": 21, "analys": 3, "ani": [2, 3, 4, 25], "anim": 4, "answer": 3, "api": 20, "approach": [0, 2, 3, 22], "apt": 21, "aquaflux_opm": [5, 8, 11], "aquaflux_resdata": [5, 8, 11], "aquif": 2, "ar": [0, 2, 3, 4, 9, 13, 21, 22, 24, 25], "arg": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "argument": [2, 7, 22], "arrai": [2, 19], "assess": 2, "avail": [2, 21], "b": 22, "back": [2, 9, 19, 20], "backcoupl": [5, 8], "base": [4, 9, 22, 25], "bc": [2, 4, 11, 22, 24], "bccon": 24, "becom": 22, "befor": [3, 10], "below": [4, 25], "benchmark": 25, "better": 18, "between": [1, 2, 4, 17, 18], "bhp": [2, 4, 18], "bin": [2, 21], "binari": [3, 21], "black": 3, "bool": 19, "border": [13, 18], "both": 21, "bottom": [2, 4], "boundari": [2, 4, 11, 22, 24], "box": 2, "branch": 21, "brew": 21, "build": [2, 3, 13, 20], "build_opm_mpi": 21, "built": 21, "c": [2, 4, 22], "calcit": 25, "call": [4, 24], "can": [2, 3, 4, 21, 24], "capabl": 2, "capillari": 2, "cardin": 13, "case": [4, 19], "cbsfax": 4, "cd": 21, "cell": [2, 4, 11, 13, 18, 22, 24], "cfd": 25, "cformat": 4, "chang": [2, 3, 4], "charact": 2, "check": [13, 25], "check_intersect": [5, 8, 13], "check_regional_neighbour": [5, 8, 13], "checker": 3, "checkout": 21, "chosen": 2, "ci": [3, 21], "clone": 21, "close": 2, "closest": [2, 13, 18], "cm": 21, "cmake": 21, "co2": [2, 4, 22, 25], "co2stor": 22, "coarsen": 25, "coarser": 2, "code": [3, 5, 21], "collabor": 3, "color": 18, "com": [4, 21, 22], "command": [2, 4, 21], "commit": 3, "common": 21, "compar": [2, 4, 22, 24], "comparison": [1, 4], "compens": 9, "complet": [17, 19], "complex": 4, "compress": 2, "comput": 9, "compute_multipli": [5, 8, 9], "concept": 20, "condit": [2, 4, 22, 24], "config": 4, "configur": [1, 10, 20, 22], "configuration_fil": 4, "conform": 22, "connect": [22, 24], "consid": [2, 4], "contain": 1, "content": [1, 3, 20, 23], "continu": 2, "contribut": [0, 20, 21], "control": 2, "coord": 13, "coordin": [2, 13, 18], "copi": [3, 21], "copmput": 2, "core": [1, 5, 21, 23], "corner": [2, 22], "correct": 11, "correspond": [1, 2, 22, 24], "could": [21, 24], "council": 0, "count": 13, "counter": 11, "coupl": [2, 9, 19, 20], "coupling_summary_bpr_regional_refer": 4, "cov": [3, 4], "cp": 2, "cpg": [2, 22], "cpu": 2, "creat": [3, 4, 13, 21, 22], "create_deck": [5, 8, 13], "csp": [2, 25], "cssr": [4, 21, 22], "curiou": 2, "current": [2, 4, 9, 18, 21, 22], "current_directori": 21, "curv": 2, "d": [2, 4], "dai": [2, 4], "data": [4, 19], "dcmake_build_typ": 21, "dcmake_disable_find_package_mpi": 21, "dcmake_prefix_path": 21, "de": 24, "deactiv": 21, "deck": [1, 2, 13, 14, 18, 19, 20, 22], "default": 22, "defin": [2, 22], "define_cas": [5, 16, 19], "definit": [2, 24], "delax": 4, "depend": [3, 21], "depth": 2, "describ": [2, 3, 22], "desir": 2, "detail": 0, "dev": [3, 21], "develop": [2, 20, 21, 22], "dic": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "dict": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "dictionari": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "diff": 4, "differ": [1, 2, 4, 9, 11, 12, 17, 18, 22, 24], "dimens": 2, "dir": 11, "direct": [2, 4, 13], "directli": 24, "discret": 2, "distanc": [4, 18], "dmar": 2, "do": [2, 4, 21, 22], "doc": 3, "document": [2, 3, 22, 24], "done": [9, 21], "dopm_enable_python": 21, "dpython_execut": 21, "due": 21, "dune": 21, "dunecontrol": 21, "duse_mpi": 21, "dvipng": 21, "dwith_ndebug": 21, "dynam": [2, 4, 22, 24, 25], "dynamic_map": [5, 8, 13], "e": [2, 4, 19, 21, 22, 24], "each": 2, "eas": 2, "easier": 21, "echo": 21, "edg": 21, "els": 3, "email": 3, "enabl": 2, "end": [2, 4, 14], "energi": 0, "enter": 2, "entri": [2, 22], "environ": 21, "equal": 21, "equinor": 0, "error": [2, 21], "evalu": 2, "exampl": [2, 20], "example1": [2, 4], "example1_back": 4, "example1_porvproj": 4, "example1_pr": 4, "example1_wel": [2, 4], "example2": 4, "execut": [1, 2, 3, 4, 7, 14, 21, 22, 24], "exist": 21, "explain": 4, "expon": 2, "export": 21, "exprecc": [2, 3, 4, 21, 22, 24], "expreccss": 1, "extend": [2, 3], "extra": 21, "extract": 18, "extract_site_bord": [5, 8, 13], "f": 4, "f_xy": 15, "face": [11, 21], "fals": 19, "familiar": 3, "far": 2, "faster": 21, "fault": [2, 4, 12, 22], "featur": [0, 4], "figur": [4, 14, 17, 18, 19, 21, 22, 25], "fil": 9, "file": [1, 3, 10, 13, 15, 19, 20, 21, 22], "final": [2, 4], "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], "finnest": 2, "first": [2, 4, 10, 19], "fix": 3, "flag": [2, 21], "flexibl": [22, 25], "float": 14, "flow": [2, 3, 14, 15, 19, 20, 25], "fluid": 2, "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], "follow": [2, 3, 4, 21, 22, 24], "font": 21, "fork": [0, 3], "format": [3, 21, 22], "found": 21, "fpr": 4, "framework": [2, 22, 25], "free": 2, "friend": 4, "from": [2, 3, 4, 9, 10, 11, 13, 18, 19, 21, 22, 25], "full": 2, "function": [2, 7, 9, 10, 11, 12, 14, 15], "fund": 0, "further": [2, 4], "g": [2, 4, 19, 21, 22, 24], "ga": [2, 4], "gasoil": 22, "gaswat": 22, "gener": [1, 2, 3, 4, 14, 18, 22, 24, 25], "geolog": [1, 2, 4, 9, 14, 15, 22, 25], "geological_map": [5, 16, 17], "geometri": 21, "get": [2, 3, 13, 21], "gind": 13, "git": [4, 21], "github": [3, 4, 21, 22], "gitlab": 21, "give": 2, "given": [1, 2, 4, 9, 13, 22, 25], "global": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "grade": 22, "grid": [2, 4, 12, 13, 15, 21, 22], "ground": 20, "h": 2, "ha": 2, "hand": 13, "handl": [12, 19, 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_smsp_tim": [5, 16, 19], "handle_stencil_2p": [5, 8, 11], "handle_stencil_opm": [5, 8, 11], "handle_stencil_resdata": [5, 8, 11], "handli": 22, "harbour": 0, "have": 2, "height": 2, "hello": 20, "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": 3, "here": [0, 2, 24], "heterogein": [2, 22], "heterogen": 4, "higher": 21, "home": 4, "horizont": 13, "host": 22, "how": 4, "html": 3, "http": [4, 21, 22], "hysteresi": 2, "i": [0, 1, 2, 3, 4, 9, 11, 13, 18, 21, 22, 24], "identifi": 22, "ignor": 3, "imag": [1, 25], "imbibit": 2, "impact": 2, "implement": [2, 4, 22], "import": 3, "improv": [18, 22], "in_fil": 10, "inact": 22, "inc": [10, 24], "includ": [1, 4, 21, 22], "ind": 13, "index": [10, 13, 18, 20], "indic": 18, "induc": 25, "init_multipli": [5, 8, 9], "initi": [2, 9], "inj": 2, "inject": [2, 10, 18], "injector": [2, 4], "input": [1, 2, 4, 9, 10, 14, 22], "inputvalu": [5, 8], "insid": [2, 4, 21], "instal": [2, 3, 4, 20], "instead": 2, "instruct": 3, "int": [9, 10, 11, 13, 18], "integr": 2, "inter": 2, "interest": [2, 21, 25], "interp": 2, "interpol": [2, 11, 13, 24], "introduct": [4, 20], "issu": [0, 20], "istl": 21, "iter": [4, 9, 11], "iterativli": 9, "j": [18, 22], "j5": 21, "jump": 2, "keep": 2, "kept": 2, "kg": 2, "killough": 2, "km": 4, "krn": 2, "krn1": 2, "krn2": 2, "krn3": 2, "krn4": 2, "krn5": 2, "krw": 2, "krw1": 2, "krw2": 2, "krw3": 2, "krw4": 2, "krw5": 2, "kxy": 2, "kz": 2, "l": [21, 22], "label": [18, 24], "last": [4, 17, 19], "latex": [21, 22], "layer": [2, 20], "leakag": 25, "least": 2, "left": [2, 13], "length": 2, "librari": 21, "line": [2, 3, 4, 10, 13, 18, 21], "linear": 2, "linebreak": 2, "link": 0, "lint": 21, "linux": 20, "list": [10, 13, 18, 19], "load_pars": [5, 6, 7], "loadnpi": 19, "local": 3, "locat": [1, 2, 4, 11, 12, 18], "lol": 10, "look": 3, "lower": 2, "m": [2, 4, 21, 22], "maco": [3, 20], "macport": 21, "mactex": 21, "main": [1, 3, 5, 6, 7, 16, 18], "mainfold": 15, "maintain": 3, "make": [3, 15, 21], "mako": [1, 15], "mamba": 21, "manag": [18, 21], "manage_nam": [5, 16, 17, 19], "mani": 2, "mantain": 3, "manuscript": 4, "map": [4, 11, 12, 17, 18], "mapboundari": [5, 8], "mapping_properti": [5, 8, 12], "mapproperti": [5, 8], "maps2d": [5, 16], "master": 21, "match": 4, "max": 18, "maximum": 2, "md": 2, "merg": 3, "metric": 22, "micp": 20, "microbi": 25, "microsystem": 25, "middl": [2, 4], "might": [3, 21, 25], "miniforg": 21, "minimum": 4, "miss": [3, 4], "mkdir": 21, "model": [1, 2, 9, 13, 14, 15, 17, 19, 20, 22, 24, 25], "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": [2, 21], "mpirun": 2, "mt": 2, "mult": 9, "multipli": [2, 4, 9], "mypi": 3, "n": [2, 13], "name": [2, 4, 9, 10, 14, 15, 17, 18, 19, 22], "name_of_folder_for_the_regional_model": 4, "name_of_folder_for_the_site_model": 4, "name_of_input_fil": 22, "ndeck": 18, "necessari": 15, "need": [3, 4, 19, 21, 22], "neighbour": 13, "new": [0, 3, 4], "newcas": 4, "nfol": 18, "nice": [3, 22], "nkrn": 2, "nkrn1": 2, "nkrw": 2, "nkrw1": 2, "nnc": 13, "non": 2, "none": [9, 14, 15, 17, 18], "norefer": 22, "norwai": 0, "now": 2, "np": 2, "npe": 2, "npe1": 2, "nqua": 18, "nquan": 18, "nrst": 18, "number": [0, 2, 4, 9, 10, 13, 18, 22], "numpi": 15, "nwell": 18, "nx": 22, "ny": 22, "o": [4, 22, 24], "observ": 2, "one": [2, 4, 24], "onli": [4, 19, 21, 22], "open": 25, "oper": [2, 22], "opernum": 24, "opernum_exprecc": 24, "opm": [1, 2, 3, 14, 15, 18, 19, 20, 22, 25], "opm_arrai": [5, 16, 19], "opmn": 18, "optim": 4, "option": [2, 7, 22], "order": 2, "org": 21, "origen": 2, "our": [3, 4], "out": [17, 19, 25], "output": [4, 15, 18, 19, 20, 21, 22], "over": [2, 13], "over_time_dist": [5, 16, 18], "over_time_max_differ": [5, 16, 18], "over_time_sensor": [5, 16, 18], "overlap": [13, 24], "overview": [2, 20], "own": 3, "p": [4, 13, 22], "pa": 2, "packag": [1, 3, 4, 20, 22, 23], "page": [3, 4, 20], "parallel": 2, "paramet": 20, "pascal": 2, "path": 2, "pec": 2, "perm": 2, "permabc": 2, "permeabl": 2, "permxy1": 2, "permxy2": 2, "permxy3": 2, "permxy4": 2, "permxy5": 2, "permz1": 2, "permz2": 2, "permz3": 2, "permz4": 2, "permz5": 2, "phi": 2, "pi": 2, "pip": [3, 4, 21], "plan": 4, "pleas": [0, 3], "plopm": [4, 20], "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], "point": [2, 18, 22], "pore": [2, 4, 11], "poro1": 2, "poro2": 2, "poro3": 2, "poro4": 2, "poro5": 2, "porv": 2, "porv_project": [5, 8, 11], "porv_regional_segment": [5, 8, 11], "porvproj": [2, 4], "posit": [2, 12, 13], "positions_opm": [5, 16, 18], "positions_refer": [5, 8, 12], "positions_region": [5, 8, 12], "positions_resdata": [5, 16, 18], "positions_rot": [5, 8, 12], "positions_sit": [5, 8, 12], "possibl": [2, 3], "postprocess": [4, 22, 24], "pr": 3, "pre": [2, 4, 11], "pre1": 2, "pre2": 2, "pre3": 2, "pre4": 2, "pre5": 2, "precipit": 25, "prefer": 3, "preprocess": 24, "prerequisit": 21, "pres2p": 2, "press": 2, "pressur": [1, 2, 4, 11, 13, 18, 22, 24], "presur": 2, "previou": [2, 3, 21], "print": [14, 22], "problem": 20, "proce": 2, "process": [1, 10, 13], "process_input": [5, 8, 10], "prod": 2, "produc": [2, 4], "profil": 15, "progress": 0, "project": [0, 1, 2, 4, 11, 13, 18, 21, 22, 25], "project_pressur": [5, 8, 13], "properti": [2, 4, 22], "pull": [0, 3], "push": 3, "pushd": 3, "pv": 11, "pwd": 21, "py": [4, 24], "pycopm": [2, 20], "pylint": 3, "pymm": 20, "pyopmnearwel": 20, "pyopmspe11": 20, "pytest": [3, 4], "python": [3, 20, 22, 25], "python3": 21, "pythonpath": 21, "quantiti": [12, 17, 18, 19], "quick": 25, "r": [2, 3, 4, 21, 22], "rainbow": 4, "rais": [0, 3], "rate": [2, 18], "re": [17, 18, 19], "read": [2, 5, 10, 11, 16, 21], "reading_opm": [5, 16, 19], "reading_resdata": [5, 16, 19], "readthefirstpart": [5, 8, 10], "readthesecondpart": [5, 8, 10], "recommend": 21, "refer": [1, 2, 4, 12, 14, 15, 17, 18, 22, 24], "refin": [2, 11], "reg": [11, 13], "reg_sit_given_deck": [5, 8], "regard": [2, 4, 21], "reginon": 2, "region": [1, 2, 4, 9, 11, 13, 14, 18, 22, 24], "regional_1": 4, "regional_4": 4, "regional_5": 4, "regional_7": 4, "regional_9": 4, "rel": 2, "relat": [15, 20, 24], "releas": 21, "remain": 10, "remedi": 25, "replac": 3, "repo": [3, 21], "report": [4, 20], "repositori": [3, 21], "request": [0, 3], "requier": [4, 12], "requir": [2, 3, 21], "requiri": 10, "resdata": [18, 19, 21, 22], "resdata_arrai": [5, 16, 19], "resdata_load_data": [5, 16, 19], "research": 0, "reservoir": [4, 12, 15, 17, 18, 20], "residu": 2, "resinsight": [2, 4, 24], "respect": [2, 4], "restart": [2, 4, 13], "result": [4, 20, 24], "return": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "review": 3, "right": [2, 13], "rise": 3, "rock": [20, 22], "rotat": [4, 12, 22], "rotate_grid": [5, 8, 12], "routin": [1, 15, 18], "row": 2, "rst": 2, "rule": 20, "run": [1, 2, 3, 4, 5, 8, 15, 21, 22, 24], "run_model": [5, 8, 14], "salin": 2, "same": [2, 4], "sand": 2, "sat": 2, "satur": [2, 4, 18], "save": [4, 24], "schedul": [2, 11, 18, 22], "screenshot": [2, 24], "script": [1, 3, 7, 11, 13, 17, 18, 19, 21], "search": 20, "section": [2, 4, 22], "see": [2, 3, 4, 21, 22, 24], "seek": 20, "seem": 21, "seen": 2, "select": 24, "send": 3, "sensor": [2, 4, 18], "set": [2, 4, 10, 12, 15, 18, 22], "set_gridmako": [5, 8, 15], "setuptool": 21, "sga": 4, "sh": 21, "share": 2, "shell": 0, "should": 21, "show": [1, 2, 4, 24], "side": [11, 13, 22], "similarli": 2, "simillarli": 2, "simpler": 2, "simplifi": [22, 25], "simul": [1, 4, 5, 8, 14, 17, 19, 20, 21, 22, 24, 25], "sin": 2, "sinc": [2, 4], "singl": 3, "site": [1, 2, 4, 9, 11, 12, 13, 14, 17, 18, 19, 22, 24], "site_clos": [4, 24], "six": [2, 3], "size": [2, 4], "skip": [21, 22], "slide": 25, "sni": 2, "sni1": 2, "sni2": 2, "sni3": 2, "sni4": 2, "sni5": 2, "so": [2, 21], "softwar": 20, "solut": 2, "solver": [2, 24], "some": [4, 15, 24, 25], "soon": 3, "sourc": [20, 25], "spatial": 4, "spe": 2, "spe11": 25, "specif": 21, "squash": 3, "src": 3, "stage": 22, "static": [3, 4], "step": [2, 3, 17, 21], "still": 21, "storag": 22, "str": [9, 10, 13, 14, 15, 17, 18, 19], "studi": [2, 4, 14, 25], "style": 18, "subfig": 4, "submodul": [1, 5, 23], "subpackag": [1, 20, 23], "subsystem": 21, "succe": 3, "sudo": 21, "summari": [4, 18, 19], "summary_plot": [5, 16, 18], "summary_sit": [5, 16, 18], "super": 21, "support": [2, 20, 21, 22], "suptitl": 4, "surfac": [2, 15, 17, 18], "sw": 2, "swi": 2, "swi1": 2, "swi2": 2, "swi3": 2, "swi4": 2, "swi5": 2, "t": [2, 22], "tag": 21, "temperatur": 2, "templat": 15, "temporal_interpolation_flux": [5, 8, 11], "temporal_interpolation_pressur": [5, 8, 11], "term": [3, 4], "termin": [4, 21], "test": [3, 4, 21, 22], "test_generic_deck": [4, 24], "texliv": 21, "text": 10, "than": [0, 3, 21], "thei": [2, 4], "them": [0, 2, 25], "thi": [0, 2, 3, 4, 9, 21, 22, 24], "thickn": 2, "third": 4, "thre1": 2, "three": 2, "threshold": 2, "time": [2, 11, 13, 14, 17, 19], "timestep": 22, "tool": [0, 4, 21, 22, 25], "top": [2, 4, 17, 18], "toward": 2, "tracer": 24, "tran": 2, "transmiss": 4, "true": [2, 19], "try": [3, 21], "tug": 21, "tune": 2, "turn": 21, "tutori": 3, "two": [2, 4, 19, 22], "txt": [2, 3, 4, 21, 22], "type": [19, 21], "u": 22, "ubuntu": [3, 21], "under": [2, 20], "until": 2, "updat": [4, 9, 22], "upgrad": 21, "upper": 2, "us": [0, 2, 3, 4, 9, 15, 18, 19, 21, 22, 24, 25], "user": [2, 3, 21], "util": [1, 5, 23], "utilii": [9, 10, 11, 12, 13, 14, 15], "v": 4, "v2": 21, "v2024": 21, "valu": [2, 10, 11], "variabl": [2, 15], "vector": 4, "veloc": 4, "venv": 21, "version": [5, 21], "vertic": 13, "vexprecc": 21, "via": [2, 20, 21], "virtual": 21, "visit": 3, "visual": [1, 2, 4, 5, 23, 24], "volum": [2, 4, 11], "w": [2, 22], "wa": 4, "warn": 22, "water": [2, 4], "we": [2, 3, 4], "welcom": [0, 3], "well": [3, 4, 12, 18, 20, 21, 22, 25], "wells_sit": [5, 16, 18], "wet": 2, "wheel": 21, "when": 21, "where": [2, 4, 22], "which": [2, 4, 21, 22], "while": 21, "whole": [2, 22], "width": 2, "window": 20, "without": 2, "work": [0, 3, 21], "world": 20, "would": 22, "write": [2, 9, 13, 15, 21], "write_fil": [5, 8, 13, 15], "write_fold": [5, 8, 15], "write_folder_it": [5, 8, 9], "write_properti": [5, 8, 15], "writefil": [5, 8], "www": 21, "x": [2, 4, 9, 13, 18], "xf": 2, "xformat": 4, "xi": 2, "xunit": 4, "y": [2, 4, 9, 13, 18], "ye": 4, "yf": 2, "yformat": 4, "yi": 2, "yml": [3, 21], "you": [2, 3, 4, 21], "your": [2, 3], "yunit": 4, "z": [2, 11, 13, 15, 18], "zag": 2, "zf": 2, "zi": 2, "zig": 2}, "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 expreccs\u2019s documentation!", "Installation", "Introduction", "expreccs", "Output folder", "Related"], "titleterms": {"": 20, "about": 0, "ad": 25, "api": 1, "back": 4, "backcoupl": 9, "build": 21, "concept": 22, "configur": [2, 4, 24], "content": [5, 6, 8, 16], "contribut": 3, "core": [6, 7], "coupl": 4, "deck": [4, 24], "develop": 4, "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], "opm": [4, 21, 24], "output": 24, "overview": 22, "packag": [5, 6, 8, 16, 21], "paramet": 2, "plopm": 25, "plot": 18, "problem": 3, "pycopm": 25, "pymm": 25, "pyopmnearwel": 25, "pyopmspe11": 25, "python": [1, 21], "read": 19, "reg_sit_given_deck": 13, "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, "under": 4, "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]], "Back-coupling (under development)": [[4, "back-coupling-under-development"]], "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"]], "OPM Flow": [[21, "opm-flow"]], "Output folder": [[24, null]], "Overview": [[22, "overview"]], "Python package": [[21, "python-package"]], "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"]], "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 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"]], "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"], "envversion": {"sphinx": 64, "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"], "indexentries": {"aquaflux_opm() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.aquaflux_opm", false]], "aquaflux_resdata() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.aquaflux_resdata", false]], "backcoupling() (in module expreccs.utils.backcoupling)": [[9, "expreccs.utils.backcoupling.backcoupling", false]], "check_intersection() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.check_intersection", false]], "check_regional_neighbours() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.check_regional_neighbours", false]], "compute_multipliers() (in module expreccs.utils.backcoupling)": [[9, "expreccs.utils.backcoupling.compute_multipliers", false]], "create_deck() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.create_deck", false]], "define_cases() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.define_cases", false]], "dynamic_interpolator() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.dynamic_interpolator", false]], "expreccs": [[5, "module-expreccs", false]], "expreccs() (in module expreccs.core.expreccs)": [[7, "expreccs.core.expreccs.expreccs", false]], "expreccs.core": [[6, "module-expreccs.core", false]], "expreccs.core.expreccs": [[7, "module-expreccs.core.expreccs", false]], "expreccs.utils": [[8, "module-expreccs.utils", false]], "expreccs.utils.backcoupling": [[9, "module-expreccs.utils.backcoupling", false]], "expreccs.utils.inputvalues": [[10, "module-expreccs.utils.inputvalues", false]], "expreccs.utils.mapboundaries": [[11, "module-expreccs.utils.mapboundaries", false]], "expreccs.utils.mapproperties": [[12, "module-expreccs.utils.mapproperties", false]], "expreccs.utils.reg_sit_given_decks": [[13, "module-expreccs.utils.reg_sit_given_decks", false]], "expreccs.utils.runs": [[14, "module-expreccs.utils.runs", false]], "expreccs.utils.writefile": [[15, "module-expreccs.utils.writefile", false]], "expreccs.visualization": [[16, "module-expreccs.visualization", false]], "expreccs.visualization.maps2d": [[17, "module-expreccs.visualization.maps2d", false]], "expreccs.visualization.plotting": [[18, "module-expreccs.visualization.plotting", false]], "expreccs.visualization.reading": [[19, "module-expreccs.visualization.reading", false]], "extract_site_borders() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.extract_site_borders", false]], "final_time_maps() (in module expreccs.visualization.maps2d)": [[17, "expreccs.visualization.maps2d.final_time_maps", false]], "final_time_maps_difference() (in module expreccs.visualization.maps2d)": [[17, "expreccs.visualization.maps2d.final_time_maps_difference", false]], "find_ij_orientation() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.find_ij_orientation", false]], "find_regional_cells() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.find_regional_cells", false]], "geological_maps() (in module expreccs.visualization.maps2d)": [[17, "expreccs.visualization.maps2d.geological_maps", false]], "handle_grid_coord() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.handle_grid_coord", false]], "handle_labels_difference() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.handle_labels_difference", false]], "handle_labels_distance() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.handle_labels_distance", false]], "handle_pressure_correction() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.handle_pressure_correction", false]], "handle_site_summary() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.handle_site_summary", false]], "handle_smsp_time() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.handle_smsp_time", false]], "handle_stencil_2p() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.handle_stencil_2p", false]], "handle_stencil_opm() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.handle_stencil_opm", false]], "handle_stencil_resdata() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.handle_stencil_resdata", false]], "init_multipliers() (in module expreccs.utils.backcoupling)": [[9, "expreccs.utils.backcoupling.init_multipliers", false]], "load_parser() (in module expreccs.core.expreccs)": [[7, "expreccs.core.expreccs.load_parser", false]], "main() (in module expreccs.core.expreccs)": [[7, "expreccs.core.expreccs.main", false]], "main() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.main", false]], "manage_name() (in module expreccs.visualization.maps2d)": [[17, "expreccs.visualization.maps2d.manage_name", false]], "manage_names() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.manage_names", false]], "mapping_properties() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.mapping_properties", false]], "module": [[5, "module-expreccs", false], [6, "module-expreccs.core", false], [7, "module-expreccs.core.expreccs", false], [8, "module-expreccs.utils", false], [9, "module-expreccs.utils.backcoupling", false], [10, "module-expreccs.utils.inputvalues", false], [11, "module-expreccs.utils.mapboundaries", false], [12, "module-expreccs.utils.mapproperties", false], [13, "module-expreccs.utils.reg_sit_given_decks", false], [14, "module-expreccs.utils.runs", false], [15, "module-expreccs.utils.writefile", false], [16, "module-expreccs.visualization", false], [17, "module-expreccs.visualization.maps2d", false], [18, "module-expreccs.visualization.plotting", false], [19, "module-expreccs.visualization.reading", false]], "opm_arrays() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.opm_arrays", false]], "over_time_distance() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.over_time_distance", false]], "over_time_max_difference() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.over_time_max_difference", false]], "over_time_sensor() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.over_time_sensor", false]], "plot_results() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.plot_results", false]], "plotting() (in module expreccs.utils.runs)": [[14, "expreccs.utils.runs.plotting", false]], "plotting_settings() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.plotting_settings", false]], "porv_projections() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.porv_projections", false]], "porv_regional_segmentation() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.porv_regional_segmentation", false]], "positions_opm() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.positions_opm", false]], "positions_reference() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.positions_reference", false]], "positions_regional() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.positions_regional", false]], "positions_resdata() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.positions_resdata", false]], "positions_rotation() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.positions_rotation", false]], "positions_site() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.positions_site", false]], "process_input() (in module expreccs.utils.inputvalues)": [[10, "expreccs.utils.inputvalues.process_input", false]], "project_pressures() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.project_pressures", false]], "reading_opm() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.reading_opm", false]], "reading_resdata() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.reading_resdata", false]], "readthefirstpart() (in module expreccs.utils.inputvalues)": [[10, "expreccs.utils.inputvalues.readthefirstpart", false]], "readthesecondpart() (in module expreccs.utils.inputvalues)": [[10, "expreccs.utils.inputvalues.readthesecondpart", false]], "resdata_arrays() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.resdata_arrays", false]], "resdata_load_data() (in module expreccs.visualization.reading)": [[19, "expreccs.visualization.reading.resdata_load_data", false]], "rotate_grid() (in module expreccs.utils.mapproperties)": [[12, "expreccs.utils.mapproperties.rotate_grid", false]], "run_models() (in module expreccs.utils.runs)": [[14, "expreccs.utils.runs.run_models", false]], "set_gridmako() (in module expreccs.utils.writefile)": [[15, "expreccs.utils.writefile.set_gridmako", false]], "simulations() (in module expreccs.utils.runs)": [[14, "expreccs.utils.runs.simulations", false]], "summary_plot() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.summary_plot", false]], "summary_site() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.summary_site", false]], "temporal_interpolation() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.temporal_interpolation", false]], "temporal_interpolation_flux() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.temporal_interpolation_flux", false]], "temporal_interpolation_pressure() (in module expreccs.utils.mapboundaries)": [[11, "expreccs.utils.mapboundaries.temporal_interpolation_pressure", false]], "wells_site() (in module expreccs.visualization.plotting)": [[18, "expreccs.visualization.plotting.wells_site", false]], "write_files() (in module expreccs.utils.reg_sit_given_decks)": [[13, "expreccs.utils.reg_sit_given_decks.write_files", false]], "write_files() (in module expreccs.utils.writefile)": [[15, "expreccs.utils.writefile.write_files", false]], "write_folder_iter() (in module expreccs.utils.backcoupling)": [[9, "expreccs.utils.backcoupling.write_folder_iter", false]], "write_folders() (in module expreccs.utils.writefile)": [[15, "expreccs.utils.writefile.write_folders", false]], "write_properties() (in module expreccs.utils.writefile)": [[15, "expreccs.utils.writefile.write_properties", false]]}, "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, "", "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, "", "process_input"], [10, 1, 1, "", "readthefirstpart"], [10, 1, 1, "", "readthesecondpart"]], "expreccs.utils.mapboundaries": [[11, 1, 1, "", "aquaflux_opm"], [11, 1, 1, "", "aquaflux_resdata"], [11, 1, 1, "", "handle_pressure_correction"], [11, 1, 1, "", "handle_stencil_2p"], [11, 1, 1, "", "handle_stencil_opm"], [11, 1, 1, "", "handle_stencil_resdata"], [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, "", "handle_grid_coord"], [13, 1, 1, "", "project_pressures"], [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, "", "set_gridmako"], [15, 1, 1, "", "write_files"], [15, 1, 1, "", "write_folders"], [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, "", "main"], [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_opm"], [18, 1, 1, "", "positions_resdata"], [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, "", "handle_smsp_time"], [19, 1, 1, "", "manage_names"], [19, 1, 1, "", "opm_arrays"], [19, 1, 1, "", "reading_opm"], [19, 1, 1, "", "reading_resdata"], [19, 1, 1, "", "resdata_arrays"], [19, 1, 1, "", "resdata_load_data"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:function"}, "terms": {"": [2, 4, 21, 22], "0": [2, 4, 21, 22], "00": 2, "01": 2, "010132": 2, "02": 4, "0f": 4, "1": [2, 4, 21, 22], "10": [2, 3, 4, 21], "10000": 2, "101": 2, "1013": 2, "10132": 2, "11000": 2, "11377": 2, "11423e": 2, "11th": 2, "12": 2, "13": 2, "1324": 2, "14": [2, 4], "14518": 2, "15": 2, "15000": [2, 4], "16": 2, "18000": 2, "193531": 2, "1d": 18, "1e": 2, "1e1": 2, "1e2": 2, "1e3": 2, "1e4": 2, "1e5": 2, "1e6": 2, "1e7": 2, "1e8": 2, "1f": 4, "2": [2, 4, 22], "20": [2, 4], "20000": 2, "202": 2, "2024": 21, "21": 2, "21180": 2, "21583": 2, "21718": 2, "22": [2, 4], "24": [3, 4], "24081": 2, "24200": 2, "25": 2, "2650": 2, "27000": 2, "2732": 2, "28477": 2, "2d": [17, 18, 25], "2e7": 2, "2f": 4, "3": [2, 4, 21, 22], "30": 2, "3060": 2, "31679": 2, "32": 2, "324": 2, "325": 2, "336294": 0, "365": 2, "3870": 2, "39": 2, "3e5": 2, "4": [2, 4], "417": 4, "45": 2, "45000": 2, "47": 2, "5": [2, 4], "50": 2, "500": 4, "5000": 2, "506": 2, "51": 2, "5710": 2, "5e6": 2, "6": [2, 4], "60": 2, "6120": 2, "625": 2, "63": 2, "65": 2, "650": 2, "6625": 2, "7": [4, 22], "7068": 2, "7122": 2, "73": 2, "7800": 2, "8": 4, "8000": 2, "81": 2, "8233": 2, "8654": 2, "8883": 2, "9": [2, 4, 21], "92": 2, "95": 4, "99": 2, "A": [9, 25], "As": 2, "By": 4, "For": [0, 4, 21], "If": [2, 4, 21], "In": [2, 3, 4, 22, 24], "No": 2, "ON": 21, "On": 2, "The": [0, 1, 2, 3, 4, 15, 21, 22, 24], "Then": [2, 4, 21, 24], "To": [2, 4, 21], "_": 9, "_build": 3, "_of_input_fil": 22, "about": [3, 20], "accept": 3, "achiev": [2, 4, 21], "action": 3, "activ": [2, 21], "ad": [2, 9, 20, 22], "add": [2, 4, 13, 21, 24], "addit": [1, 2, 3, 21, 24], "after": [12, 21, 24], "all": [3, 4, 21, 22], "allow": 2, "along": [2, 22], "also": [2, 3, 4, 21, 24], "altern": [3, 21], "an": [0, 3, 4, 21, 22, 25], "anaconda": 21, "analys": 3, "ani": [2, 3, 4, 25], "anim": 4, "answer": 3, "api": 20, "approach": [0, 2, 3, 22], "apt": 21, "aquaflux_opm": [5, 8, 11], "aquaflux_resdata": [5, 8, 11], "aquif": 2, "ar": [0, 2, 3, 4, 9, 13, 21, 22, 24, 25], "arg": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "argument": [2, 7, 22], "arrai": [2, 19, 22], "assess": 2, "avail": [2, 21], "b": 22, "back": [2, 9, 19, 20], "backcoupl": [5, 8], "base": [4, 9, 22, 25], "bc": [2, 4, 11, 13, 22, 24], "bccon": 24, "becom": 22, "befor": [3, 10], "below": [4, 25], "benchmark": 25, "better": 18, "between": [1, 2, 4, 17, 18, 22], "bhp": [2, 4, 18], "bin": [2, 21], "binari": [3, 21], "black": 3, "bool": 19, "border": [13, 18], "both": 21, "bottom": [2, 4], "boundari": [2, 4, 11, 22, 24], "box": 2, "branch": 21, "brew": 21, "build": [2, 3, 13, 20], "build_opm_mpi": 21, "built": 21, "c": [2, 4, 22], "calcit": 25, "call": [4, 24], "can": [2, 3, 4, 21, 24], "capabl": 2, "capillari": 2, "cardin": 13, "case": [4, 19], "cbsfax": 4, "cd": 21, "cell": [2, 4, 11, 13, 18, 22, 24], "cfd": 25, "cformat": 4, "chang": [2, 3, 4], "charact": 2, "check": [13, 25], "check_intersect": [5, 8, 13], "check_regional_neighbour": [5, 8, 13], "checker": 3, "checkout": 21, "chosen": 2, "ci": [3, 21], "clone": 21, "close": 2, "closest": [2, 13, 18], "cm": 21, "cmake": 21, "co2": [2, 4, 22, 25], "co2stor": 22, "coarsen": 25, "coarser": 2, "code": [3, 5, 21], "coeffici": 22, "collabor": 3, "color": 18, "com": [4, 21, 22], "command": [2, 4, 21], "commit": 3, "common": 21, "compar": [2, 4, 22, 24], "comparison": [1, 4], "compens": 9, "complet": [17, 19], "complex": 4, "compress": 2, "comput": 9, "compute_multipli": [5, 8, 9], "concept": 20, "condit": [2, 4, 22, 24], "config": 4, "configur": [1, 10, 20, 22], "configuration_fil": 4, "conform": 22, "connect": [22, 24], "consid": [2, 4], "contain": 1, "content": [1, 3, 20, 23], "continu": 2, "contribut": [0, 20, 21], "control": 2, "coord": 13, "coordin": [2, 13, 18], "copi": [3, 21], "copmput": 2, "core": [1, 5, 21, 23], "corner": [2, 22], "correct": 11, "correspond": [1, 2, 22, 24], "could": [21, 24], "council": 0, "count": 13, "counter": 11, "coupl": [2, 9, 19, 20], "coupling_summary_bpr_regional_refer": 4, "cov": [3, 4], "cp": 2, "cpg": [2, 22], "cpu": 2, "creat": [3, 4, 13, 21, 22], "create_deck": [5, 8, 13], "csp": [2, 25], "cssr": [4, 21, 22], "curiou": 2, "current": [2, 4, 9, 18, 21, 22], "current_directori": 21, "curv": 2, "d": [2, 4], "dai": [2, 4], "data": [4, 19], "dcmake_build_typ": 21, "dcmake_disable_find_package_mpi": 21, "dcmake_prefix_path": 21, "de": 24, "deactiv": 21, "deck": [1, 2, 13, 14, 18, 19, 20, 22], "default": 22, "defin": [2, 22], "define_cas": [5, 16, 19], "definit": [2, 24], "delax": 4, "depend": [3, 21], "depth": 2, "describ": [2, 3, 22], "desir": 2, "detail": 0, "dev": [3, 21], "develop": [2, 20, 21, 22], "dic": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "dict": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "dictionari": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "diff": 4, "differ": [1, 2, 4, 9, 11, 12, 17, 18, 22, 24], "dimens": 2, "dir": 11, "direct": [2, 4, 13], "directli": 24, "discret": [2, 22], "distanc": [4, 18], "dmar": 2, "do": [2, 4, 21, 22], "doc": 3, "document": [2, 3, 22, 24], "done": [9, 21], "dopm_enable_python": 21, "dpython_execut": 21, "due": 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, 4, 19, 21, 22, 24], "each": [2, 22], "eas": 2, "easier": 21, "echo": 21, "edg": 21, "els": 3, "email": 3, "enabl": 2, "end": [2, 4, 14], "energi": 0, "enter": 2, "entri": [2, 22], "environ": 21, "equal": 21, "equidist": 22, "equinor": 0, "error": [2, 21], "evalu": [2, 22], "exampl": [2, 20], "example1": [2, 4], "example1_back": 4, "example1_porvproj": 4, "example1_pr": 4, "example1_wel": [2, 4], "example2": 4, "execut": [1, 2, 3, 4, 7, 14, 21, 22, 24], "exist": 21, "explain": 4, "expon": 2, "exponenti": 22, "export": 21, "exprecc": [2, 3, 4, 21, 22, 24], "expreccss": 1, "extend": [2, 3], "extra": 21, "extract": 18, "extract_site_bord": [5, 8, 13], "f": [4, 22], "f_xy": 15, "face": [11, 21], "fals": 19, "familiar": 3, "far": 2, "faster": 21, "fault": [2, 4, 12, 22], "featur": [0, 4], "figur": [4, 14, 17, 18, 19, 21, 22, 25], "fil": 9, "file": [1, 3, 10, 13, 15, 19, 20, 21, 22], "final": [2, 4], "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], "finnest": 2, "first": [2, 4, 10, 19], "fix": 3, "flag": [2, 21], "flexibl": [22, 25], "float": 14, "flow": [2, 3, 14, 15, 19, 20, 25], "fluid": 2, "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], "follow": [2, 3, 4, 21, 22, 24], "font": 21, "fork": [0, 3], "format": [3, 21, 22], "found": 21, "fpr": 4, "framework": [2, 22, 25], "free": 2, "frequenc": 22, "friend": 4, "from": [2, 3, 4, 9, 10, 11, 13, 18, 19, 21, 22, 25], "full": 2, "function": [2, 7, 9, 10, 11, 12, 13, 14, 15], "fund": 0, "further": [2, 4], "g": [2, 4, 19, 21, 22, 24], "ga": [2, 4], "gasoil": 22, "gaswat": 22, "gener": [1, 2, 3, 4, 14, 18, 22, 24, 25], "geolog": [1, 2, 4, 9, 14, 15, 22, 25], "geological_map": [5, 16, 17], "geometri": 21, "get": [2, 3, 13, 21], "gind": 13, "git": [4, 21], "github": [3, 4, 21, 22], "gitlab": 21, "give": 2, "given": [1, 2, 4, 9, 13, 22, 25], "global": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "grade": 22, "grid": [2, 4, 12, 13, 15, 21, 22], "ground": 20, "h": 2, "ha": 2, "hand": 13, "handl": [12, 19, 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_smsp_tim": [5, 16, 19], "handle_stencil_2p": [5, 8, 11], "handle_stencil_opm": [5, 8, 11], "handle_stencil_resdata": [5, 8, 11], "handli": 22, "harbour": 0, "have": 2, "height": 2, "hello": 20, "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": 3, "here": [0, 2, 24], "heterogein": [2, 22], "heterogen": 4, "higher": 21, "home": 4, "horizont": 13, "host": 22, "how": 4, "html": 3, "http": [4, 21, 22], "hysteresi": 2, "i": [0, 1, 2, 3, 4, 9, 11, 13, 18, 21, 22, 24], "identifi": 22, "ignor": 3, "imag": [1, 25], "imbibit": 2, "impact": 2, "implement": [2, 4, 22], "import": 3, "improv": [18, 22], "in_fil": 10, "inact": 22, "inc": [10, 24], "includ": [1, 4, 21, 22], "ind": 13, "index": [10, 13, 18, 20], "indic": 18, "induc": 25, "init_multipli": [5, 8, 9], "initi": [2, 9], "inj": 2, "inject": [2, 10, 18], "injector": [2, 4], "input": [1, 2, 4, 9, 10, 14, 22], "inputvalu": [5, 8], "insid": [2, 4, 21], "instal": [2, 3, 4, 20], "instead": 2, "instruct": 3, "int": [9, 10, 11, 13, 18], "integr": 2, "inter": 2, "interest": [2, 21, 25], "interp": 2, "interpol": [2, 11, 13, 24], "introduct": [4, 20], "issu": [0, 20], "istl": 21, "iter": [4, 9, 11], "iterativli": 9, "j": [18, 22], "j5": 21, "jump": 2, "keep": 2, "kept": 2, "kg": 2, "killough": 2, "km": 4, "krn": 2, "krn1": 2, "krn2": 2, "krn3": 2, "krn4": 2, "krn5": 2, "krw": 2, "krw1": 2, "krw2": 2, "krw3": 2, "krw4": 2, "krw5": 2, "kxy": 2, "kz": 2, "l": [21, 22], "label": [18, 24], "last": [4, 17, 19], "latex": [21, 22], "layer": [2, 20], "leakag": 25, "least": 2, "left": [2, 13], "length": 2, "librari": 21, "line": [2, 3, 4, 10, 13, 18, 21], "linear": 2, "linebreak": 2, "link": 0, "lint": 21, "linux": 20, "list": [10, 13, 18, 19], "load_pars": [5, 6, 7], "loadnpi": 19, "local": 3, "locat": [1, 2, 4, 11, 12, 18], "lol": 10, "look": 3, "lower": 2, "m": [2, 4, 21, 22], "maco": [3, 20], "macport": 21, "mactex": 21, "main": [1, 3, 5, 6, 7, 16, 18], "mainfold": 15, "maintain": 3, "make": [3, 15, 21], "mako": [1, 15], "mamba": 21, "manag": [18, 21], "manage_nam": [5, 16, 17, 19], "mani": 2, "mantain": 3, "manuscript": 4, "map": [4, 11, 12, 17, 18], "mapboundari": [5, 8], "mapping_properti": [5, 8, 12], "mapproperti": [5, 8], "maps2d": [5, 16], "mark": 22, "master": 21, "match": 4, "max": 18, "maximum": 2, "md": 2, "merg": 3, "metric": 22, "micp": 20, "microbi": 25, "microsystem": 25, "middl": [2, 4], "might": [3, 21, 25], "miniforg": 21, "minimum": 4, "miss": [3, 4], "mkdir": 21, "model": [1, 2, 9, 13, 14, 15, 17, 19, 20, 22, 24, 25], "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": [2, 21], "mpirun": 2, "mt": 2, "mult": 9, "multipli": [2, 4, 9], "mypi": 3, "n": [2, 13], "name": [2, 4, 9, 10, 14, 15, 17, 18, 19, 22], "ndeck": 18, "necessari": 15, "need": [3, 4, 19, 21, 22], "neighbour": 13, "new": [0, 3, 4], "newcas": 4, "nfol": 18, "nice": [3, 22], "nkrn": 2, "nkrn1": 2, "nkrw": 2, "nkrw1": 2, "nnc": 13, "non": 2, "none": [9, 14, 15, 17, 18], "norefer": 22, "norwai": 0, "now": 2, "np": 2, "npe": 2, "npe1": 2, "nqua": 18, "nquan": 18, "nrst": 18, "number": [0, 2, 4, 9, 10, 13, 18, 22], "numpi": 15, "nwell": 18, "nx": 22, "ny": 22, "o": [4, 22, 24], "observ": 2, "one": [2, 4, 24], "onli": [4, 19, 21, 22], "open": 25, "oper": [2, 22], "opernum": 24, "opernum_exprecc": 24, "opm": [1, 2, 3, 14, 15, 18, 19, 20, 22, 25], "opm_arrai": [5, 16, 19], "opmn": 18, "optim": 4, "option": [2, 7, 22], "order": 2, "org": 21, "origen": 2, "our": [3, 4], "out": [17, 19, 25], "output": [4, 15, 18, 19, 20, 21, 22], "over": [2, 13], "over_time_dist": [5, 16, 18], "over_time_max_differ": [5, 16, 18], "over_time_sensor": [5, 16, 18], "overlap": [13, 24], "overview": [2, 20], "own": 3, "p": [4, 13, 22], "pa": 2, "packag": [1, 3, 4, 20, 22, 23], "page": [3, 4, 20], "parallel": 2, "paramet": 20, "partit": 22, "pascal": 2, "path": [2, 22], "path_to_the_regional_model": 4, "path_to_the_site_model": 4, "pec": 2, "perm": 2, "permabc": 2, "permeabl": 2, "permxy1": 2, "permxy2": 2, "permxy3": 2, "permxy4": 2, "permxy5": 2, "permz1": 2, "permz2": 2, "permz3": 2, "permz4": 2, "permz5": 2, "phi": 2, "pi": 2, "pip": [3, 4, 21], "plan": 4, "pleas": [0, 3], "plopm": [4, 20], "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], "point": [2, 18, 22], "pore": [2, 4, 11], "poro1": 2, "poro2": 2, "poro3": 2, "poro4": 2, "poro5": 2, "porv": 2, "porv_project": [5, 8, 11], "porv_regional_segment": [5, 8, 11], "porvproj": [2, 4], "posit": [2, 12, 13], "positions_opm": [5, 16, 18], "positions_refer": [5, 8, 12], "positions_region": [5, 8, 12], "positions_resdata": [5, 16, 18], "positions_rot": [5, 8, 12], "positions_sit": [5, 8, 12], "possibl": [2, 3], "postprocess": [4, 22, 24], "pr": 3, "pre": [2, 4, 11], "pre1": 2, "pre2": 2, "pre3": 2, "pre4": 2, "pre5": 2, "precipit": 25, "prefer": 3, "preprocess": 24, "prerequisit": 21, "pres2p": 2, "press": 2, "pressur": [1, 2, 4, 11, 13, 18, 22, 24], "presur": 2, "previou": [2, 3, 21], "print": [14, 22], "problem": 20, "proce": 2, "process": [1, 10, 13], "process_input": [5, 8, 10], "prod": 2, "produc": [2, 4], "profil": 15, "progress": 0, "project": [0, 1, 2, 4, 11, 13, 18, 21, 22, 25], "project_pressur": [5, 8, 13], "properti": [2, 4, 22], "pull": [0, 3], "push": 3, "pushd": 3, "pv": 11, "pwd": 21, "py": [4, 24], "pycopm": [2, 20], "pylint": 3, "pymm": 20, "pyopmnearwel": 20, "pyopmspe11": 20, "pytest": [3, 4], "python": [3, 20, 22, 25], "python3": 21, "pythonpath": 21, "quantiti": [12, 17, 18, 19], "quick": 25, "quotat": 22, "r": [2, 3, 4, 21, 22], "rainbow": 4, "rais": [0, 3], "rate": [2, 18], "re": [17, 18, 19], "read": [2, 5, 10, 11, 16, 21], "reading_opm": [5, 16, 19], "reading_resdata": [5, 16, 19], "readthefirstpart": [5, 8, 10], "readthesecondpart": [5, 8, 10], "recommend": 21, "refer": [1, 2, 4, 12, 14, 15, 17, 18, 22, 24], "refin": [2, 11], "reg": [11, 13], "reg_sit_given_deck": [5, 8], "regard": [2, 4, 21], "reginon": 2, "region": [1, 2, 4, 9, 11, 13, 14, 18, 22, 24], "regional_1": 4, "regional_4": 4, "regional_5": 4, "regional_7": 4, "regional_9": 4, "rel": 2, "relat": [15, 20, 24], "releas": 21, "remain": 10, "remedi": 25, "replac": 3, "repo": [3, 21], "report": [4, 13, 20, 22], "repositori": [3, 21], "request": [0, 3], "requier": [4, 12], "requir": [2, 3, 21], "requiri": 10, "resdata": [18, 19, 21, 22], "resdata_arrai": [5, 16, 19], "resdata_load_data": [5, 16, 19], "research": 0, "reservoir": [4, 12, 15, 17, 18, 20], "residu": 2, "resinsight": [2, 4, 24], "respect": [2, 4], "restart": [2, 4, 13], "result": [4, 20, 24], "return": [9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "review": 3, "right": [2, 13], "rise": 3, "rock": [20, 22], "rotat": [4, 12, 22], "rotate_grid": [5, 8, 12], "routin": [1, 15, 18], "row": 2, "rst": 2, "rule": 20, "run": [1, 2, 3, 4, 5, 8, 15, 21, 22, 24], "run_model": [5, 8, 14], "salin": 2, "same": [2, 4], "sand": 2, "sat": 2, "satur": [2, 4, 18], "save": [4, 24], "schedul": [2, 11, 18, 22], "screenshot": [2, 24], "script": [1, 3, 7, 11, 13, 17, 18, 19, 21], "search": 20, "section": [2, 4, 22], "see": [2, 3, 4, 21, 22, 24], "seek": 20, "seem": 21, "seen": 2, "select": 24, "send": 3, "sensor": [2, 4, 18], "set": [2, 4, 10, 12, 15, 18, 22], "set_gridmako": [5, 8, 15], "setuptool": 21, "sga": 4, "sh": 21, "share": 2, "shell": 0, "should": 21, "show": [1, 2, 4, 24], "side": [11, 13, 22], "similarli": 2, "simillarli": 2, "simpler": 2, "simplifi": [22, 25], "simul": [1, 4, 5, 8, 14, 17, 19, 20, 21, 22, 24, 25], "sin": 2, "sinc": [2, 4], "singl": 3, "site": [1, 2, 4, 9, 11, 12, 13, 14, 17, 18, 19, 22, 24], "site_clos": [4, 24], "six": [2, 3], "size": [2, 4], "skip": [21, 22], "slide": 25, "sni": 2, "sni1": 2, "sni2": 2, "sni3": 2, "sni4": 2, "sni5": 2, "so": [2, 21], "softwar": 20, "solut": 2, "solver": [2, 24], "some": [4, 15, 24, 25], "soon": 3, "sourc": [20, 25], "space": 22, "spatial": 4, "spe": 2, "spe11": 25, "specif": 21, "squash": 3, "src": 3, "stage": 22, "static": [3, 4], "step": [2, 3, 13, 17, 21, 22], "still": 21, "storag": 22, "str": [9, 10, 13, 14, 15, 17, 18, 19], "studi": [2, 4, 14, 25], "style": 18, "subfig": 4, "submodul": [1, 5, 23], "subpackag": [1, 20, 23], "subsystem": 21, "succe": 3, "sudo": 21, "summari": [4, 18, 19], "summary_plot": [5, 16, 18], "summary_sit": [5, 16, 18], "super": 21, "support": [2, 20, 21, 22], "suptitl": 4, "surfac": [2, 15, 17, 18], "sw": 2, "swi": 2, "swi1": 2, "swi2": 2, "swi3": 2, "swi4": 2, "swi5": 2, "t": [2, 22], "tag": 21, "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_generic_deck": [4, 24], "texliv": 21, "text": 10, "than": [0, 3, 21], "thei": [2, 4], "them": [0, 2, 22, 25], "thi": [0, 2, 3, 4, 9, 21, 22, 24], "thickn": 2, "third": 4, "thre1": 2, "three": 2, "threshold": 2, "time": [2, 11, 13, 14, 17, 19, 22], "timestep": 22, "tool": [0, 4, 21, 22, 25], "top": [2, 4, 17, 18], "toward": 2, "tracer": 24, "tran": 2, "transmiss": 4, "true": [2, 19], "try": [3, 21], "tug": 21, "tune": 2, "turn": 21, "tutori": 3, "two": [2, 4, 19, 22], "txt": [2, 3, 4, 21, 22], "type": [19, 21], "u": 22, "ubuntu": [3, 21], "under": [2, 20], "until": 2, "updat": [4, 9, 22], "upgrad": 21, "upper": 2, "us": [0, 2, 3, 4, 9, 15, 18, 19, 21, 22, 24, 25], "user": [2, 3, 21], "util": [1, 5, 23], "utilii": [9, 10, 11, 12, 13, 14, 15], "v": 4, "v2": 21, "v2024": 21, "valu": [2, 10, 11, 13], "variabl": [2, 15], "vector": 4, "veloc": 4, "venv": 21, "version": [5, 21], "vertic": 13, "vexprecc": 21, "via": [2, 20, 21], "virtual": 21, "visit": 3, "visual": [1, 2, 4, 5, 23, 24], "volum": [2, 4, 11], "w": [2, 22], "wa": 4, "warn": 22, "water": [2, 4], "we": [2, 3, 4], "welcom": [0, 3], "well": [3, 4, 12, 18, 20, 21, 22, 25], "wells_sit": [5, 16, 18], "wet": 2, "wheel": 21, "when": 21, "where": [2, 4, 22], "which": [2, 4, 21, 22], "while": 21, "whole": [2, 22], "width": 2, "window": 20, "without": 2, "work": [0, 3, 21], "world": 20, "would": 22, "write": [2, 9, 13, 15, 21, 22], "write_fil": [5, 8, 13, 15], "write_fold": [5, 8, 15], "write_folder_it": [5, 8, 9], "write_properti": [5, 8, 15], "writefil": [5, 8], "www": 21, "x": [2, 4, 9, 13, 18], "xf": 2, "xformat": 4, "xi": 2, "xunit": 4, "y": [2, 4, 9, 13, 18], "ye": 4, "yf": 2, "yformat": 4, "yi": 2, "yml": [3, 21], "you": [2, 3, 4, 21], "your": [2, 3], "yunit": 4, "z": [2, 11, 13, 15, 18], "zag": 2, "zf": 2, "zi": 2, "zig": 2}, "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 expreccs\u2019s documentation!", "Installation", "Introduction", "expreccs", "Output folder", "Related"], "titleterms": {"": 20, "about": 0, "ad": 25, "api": 1, "back": 4, "backcoupl": 9, "build": 21, "concept": 22, "configur": [2, 4, 24], "content": [5, 6, 8, 16], "contribut": 3, "core": [6, 7], "coupl": 4, "deck": [4, 24], "develop": 4, "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], "opm": [4, 21, 24], "output": 24, "overview": 22, "packag": [5, 6, 8, 16, 21], "paramet": 2, "plopm": 25, "plot": 18, "problem": 3, "pycopm": 25, "pymm": 25, "pyopmnearwel": 25, "pyopmspe11": 25, "python": [1, 21], "read": 19, "reg_sit_given_deck": 13, "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, "under": 4, "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/text/examples.rst b/docs/text/examples.rst index 4e9cccf..77259aa 100644 --- a/docs/text/examples.rst +++ b/docs/text/examples.rst @@ -131,7 +131,7 @@ the pressures are projected. .. code-block:: bash - expreccs -e name_of_folder_for_the_regional_model,name_of_folder_for_the_site_model + expreccs -i 'path_to_the_regional_model path_to_the_site_model' In the current implementation, the name of the decks need to match the name of the given folder (e.g., regional/REGIONAL.DATA). For example, to run the test, this can be achieved by executing: diff --git a/docs/text/introduction.rst b/docs/text/introduction.rst index 84505d9..a70eace 100644 --- a/docs/text/introduction.rst +++ b/docs/text/introduction.rst @@ -28,11 +28,11 @@ The current implementation supports the following executable with the argument o .. code-block:: bash - expreccs -i name_of_input_file + expreccs -i name(s)_of_input_file(s) where --i The base name of the :doc:`configuration file <./configuration_file>` ('input.txt' by default). +-i The base name of the :doc:`configuration file <./configuration_file>`; or paths (space between them and quotation marks) to the regional and site models ('input.txt' by default). -o The base name of the :doc:`output folder <./output_folder>` ('output' by default). -m Run the whole framework ('all'), only the reference ('reference'), only the site ('site'), or only regional and site models ('noreference') ('all' by default). -c Generate metric plots for the current outputed folders ('compare') ('' by default). @@ -40,8 +40,9 @@ where -r Using the 'opm' or 'resdata' python package ('resdata' by default). -u Using 'gasoil' or 'gaswater' co2store implementation ('gaswater' by default). -t Grades to rotate the site geological model ('0' by default). --e Name of the regional and site folders to project pressures ('' by default). -b Set the number of entries to skip the bc projections on the site, where 'j=0,i=nx,j=ny,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). -l Set to 0 to not use LaTeX formatting ('1' by default). diff --git a/docs/text/output_folder.rst b/docs/text/output_folder.rst index 46e1d2c..7254181 100644 --- a/docs/text/output_folder.rst +++ b/docs/text/output_folder.rst @@ -30,7 +30,7 @@ executing **expreccs**, this corresponds to the `test_generic_deck.py 1: + for i, name in enumerate(["reg", "sit"]): + dic[name] = file[i].split("/")[-1] + if "/" in file[i]: + dic[f"f{name}"] = "/".join(file[i].split("/")[:-1]) + else: + dic[f"f{name}"] = dic["exe"] create_deck(dic) return # Process the input file (open expreccs.utils.inputvalues to see the abbreviations meaning) - process_input(dic, file) + process_input(dic, file[0]) # Make the output folders write_folders(dic) @@ -83,7 +90,8 @@ def load_parser(): "-i", "--input", default="input.txt", - help="The base name of the input file ('input.txt' by default).", + help="The base name of the configuration file; or paths (space between them and " + "quotation marks) to the regional and site models ('input.txt' by default).", ) parser.add_argument( "-o", @@ -130,12 +138,6 @@ def load_parser(): default=0, help="Grades to rotate the site geological model ('0' by default).", ) - parser.add_argument( - "-e", - "--expreccs", - default="", - help="Name of the regional and site folders to project pressures.", - ) parser.add_argument( "-b", "--boundaries", @@ -145,6 +147,23 @@ def load_parser(): "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).", ) + parser.add_argument( + "-f", + "--frequency", + default="1", + help="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).", + ) + parser.add_argument( + "-a", + "--acoeff", + default="3.2", + help="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).", + ) parser.add_argument( "-w", "--warnings", diff --git a/src/expreccs/utils/reg_sit_given_decks.py b/src/expreccs/utils/reg_sit_given_decks.py index ffd0141..8a8fac7 100644 --- a/src/expreccs/utils/reg_sit_given_decks.py +++ b/src/expreccs/utils/reg_sit_given_decks.py @@ -1,6 +1,6 @@ -# SPDX-FileCopyrightText: 2024 NORCE +# SPDX-FileCopyrightText: 2025 NORCE # SPDX-License-Identifier: GPL-3.0 -# pylint: disable=C0302,R0914,R1702,R0912 +# pylint: disable=C0302,R0914,R1702,R0912,R0915 """ Utiliy script for creating a deck with projected pressures from given @@ -12,7 +12,7 @@ import numpy as np import pandas as pd from shapely.geometry import LineString, Polygon, Point -from scipy.interpolate import LinearNDInterpolator +from scipy.interpolate import LinearNDInterpolator, interp1d from resdata.grid import Grid from resdata.resfile import ResdataFile @@ -28,16 +28,12 @@ def create_deck(dic): dic (dict): Modified global dictionary """ - if not os.path.exists(f"{dic['exe']}/{dic['fol']}"): - os.system(f"mkdir {dic['exe']}/{dic['fol']}") - if not os.path.exists(f"{dic['exe']}/{dic['fol']}/bc"): - os.system(f"mkdir {dic['exe']}/{dic['fol']}/bc") - case = f"{dic['exe']}/{dic['reg']}/{dic['reg'].upper()}" + case = f"{dic['freg']}/{dic['reg']}" rst = case + ".UNRST" grid = case + ".EGRID" init = case + ".INIT" dic["rrst"], dic["rgrid"] = ResdataFile(rst), Grid(grid) - case = f"{dic['exe']}/{dic['sit']}/{dic['sit'].upper()}" + case = f"{dic['fsit']}/{dic['sit']}" rst = case + ".UNRST" grid = case + ".EGRID" init = case + ".INIT" @@ -47,6 +43,24 @@ def create_deck(dic): Grid(grid), ResdataFile(init), ) + rdates = np.array(dic["rrst"].report_dates) + rdays = rdates - rdates[0] + dic["rdays"] = np.array([val.days for val in rdays]) + sdates = np.array(dic["srst"].report_dates) + sdays = sdates - sdates[0] + dic["isdays"] = np.array([val.days for val in sdays]) + if len(dic["freq"]) < len(dic["isdays"]) - 2: + dic["freq"] = np.array([int(dic["freq"][0])] * (len(dic["isdays"]) - 1)) + else: + dic["freq"] = np.array([int(val) for val in dic["freq"]]) + if len(dic["acoeff"]) < len(dic["isdays"]) - 2: + dic["acoeff"] = np.array([float(dic["acoeff"][0])] * (len(dic["isdays"]) - 1)) + else: + dic["acoeff"] = np.array([float(val) for val in dic["acoeff"]]) + if max(dic["freq"]) > 0: + dic["sdays"] = np.array([val.days for val in sdays]) + else: + dic["sdays"] = [] dic["sbound"], dic["sai"], dic["gc"] = [], [], 0 dic["sxs"], dic["sxe"], dic["sxn"], dic["sxw"] = [], [], [], [] dic["sys"], dic["sye"], dic["syn"], dic["syw"] = [], [], [], [] @@ -60,11 +74,17 @@ def create_deck(dic): [], ) dic["sopn"] = ["1"] * (dic["sgrid"].nx * dic["sgrid"].ny * dic["sgrid"].nz) + if not os.path.exists(f"{dic['fol']}"): + os.system(f"mkdir {dic['fol']}") + if not os.path.exists(f"{dic['fol']}/bc") and max(dic["freq"]) > 0: + os.system(f"mkdir {dic['fol']}/bc") find_ij_orientation(dic) extract_site_borders(dic) find_regional_cells(dic) - dynamic_mapping(dic) + dynamic_interpolator(dic) + temporal_interpolation(dic) write_files(dic) + print(f"\nThe execution of ExpReCCS succeeded, see {dic['fol']}/.") def handle_grid_coord(dic): @@ -367,7 +387,7 @@ def find_regional_cells(dic): ) dic["oprn"].insert(0, "OPERNUM") dic["oprn"].insert(0, git) - dic["oprn"].insert(0, "--Copyright (C) 2024 NORCE") + dic["oprn"].insert(0, "--Copyright (C) 2025 NORCE") dic["oprn"].append("/") with open( f"{dic['exe']}/{dic['reg']}/OPERNUM_EXPRECCS.INC", @@ -377,7 +397,7 @@ def find_regional_cells(dic): file.write("\n".join(dic["oprn"])) dic["fipn"].insert(0, "FIPNUM") dic["fipn"].insert(0, git) - dic["fipn"].insert(0, "--Copyright (C) 2024 NORCE") + dic["fipn"].insert(0, "--Copyright (C) 2025 NORCE") dic["fipn"].append("/") with open( f"{dic['exe']}/{dic['reg']}/FIPNUM_EXPRECCS.INC", @@ -387,7 +407,7 @@ def find_regional_cells(dic): file.write("\n".join(dic["fipn"])) -def dynamic_mapping(dic): +def dynamic_interpolator(dic): """ Project the pressures from the regional to the site over time @@ -398,19 +418,75 @@ def dynamic_mapping(dic): dic (dict): Modified global dictionary """ - dic["rp"] = ["" for _ in range(dic["rrst"].num_report_steps())] + dic["rp"] = [[] for _ in range(dic["rrst"].num_report_steps())] for p in ["n", "w", "s", "e"]: dic[f"rp{p}"] = [[] for _ in range(dic["rrst"].num_report_steps())] for i in range(dic["rrst"].num_report_steps()): project_pressures(dic, i) +def temporal_interpolation(dic): + """ + Function to interpolate BC pressure values in time + + Args: + dic (dict): Global dictionary + + Returns: + dic (dict): Modified global dictionary + + """ + if max(dic["freq"]) > 0: + dic["ddays"] = dic["sdays"][1:] - dic["sdays"][:-1] + idays = [] + for i, day in enumerate(dic["sdays"][:-1]): + for n in range(dic["freq"][i]): + if dic["acoeff"][i] != 0: + telsc = np.flip( + ( + np.exp( + np.flip( + np.linspace(0, dic["acoeff"][i], dic["freq"][i] + 1) + ) + ) + - 1 + ) + / (np.exp(dic["acoeff"][i]) - 1) + ) + idays += [day + 1.0 * dic["ddays"][i] * telsc[n]] + else: + idays += [day + 1.0 * dic["ddays"][i] * n / dic["freq"][i]] + idays += [dic["sdays"][-1]] + dic["sdays"] = np.array(idays) + dic["ddays"] = dic["sdays"][1:] - dic["sdays"][:-1] + else: + dic["ddays"] = [] + print(f"Input report steps regional (days, tot={len(dic['rdays'])}):") + print(dic["rdays"]) + print(f"Input report steps site (days, tot={len(dic['isdays'])}):") + print(dic["isdays"]) + print(f"Report steps site to write bc (days, tot={len(dic['sdays'])}):") + print([float(f"{val:.2f}") for val in dic["sdays"]]) + dic["sbc"] = ["" for _ in range(len(dic["sdays"]))] + for i in range(len(dic["rp"][0])): + interp_func = interp1d( + dic["rdays"], + [dic["rp"][j][i][1] for j in range(len(dic["rdays"]))], + fill_value="extrapolate", + ) + for j, time in enumerate(dic["sdays"]): + dic["sbc"][ + j + ] += f"{dic['rp'][0][i][0]} DIRICHLET WATER 1* {interp_func(time)} /\n" + + def project_pressures(dic, i): """ Project the pressures at restart number i Args: - dic (dict): Global dictionary + dic (dict): Global dictionary\n + i (int): Index of report step in the site Returns: dic (dict): Modified global dictionary @@ -440,8 +516,7 @@ def project_pressures(dic, i): / 1e5 ) if not np.isnan(z_b): - dic[f"rp{p}"][i] = f"{c_c} DIRICHLET WATER 1* {z_b} /\n" - dic["rp"][i] += dic[f"rp{p}"][i] + dic["rp"][i].append([c_c, z_b]) for j, row in enumerate(dic["sbound"]): edit = row.split() if int(edit[0]) == dic["sai"][count] + 1: @@ -469,12 +544,29 @@ def project_pressures(dic, i): for x, y in zip(dic[f"sx{p}"], dic[f"sy{p}"]): if dic["sai"][count] in dic["snum"]: if not np.isnan(interp((x, y))): - dic[f"rp{p}"][ - i - ] = f"{dic['sai'][count]+1} DIRICHLET WATER 1* {interp((x, y))} /\n" - dic["rp"][i] += dic[f"rp{p}"][i] + dic["rp"][i].append([dic["sai"][count] + 1, interp((x, y))]) + for j, row in enumerate(dic["sbound"]): + edit = row.split() + if int(edit[0]) == dic["sai"][count] + 1: + edit[0] = str(c_c) + dic["sbound"][j] = " ".join(edit) + dic["sopn"][ + dic["sgrid"].get_global_index( + ijk=( + int(edit[1]) - 1, + int(edit[3]) - 1, + int(edit[5]) - 1, + ) + ) + ] = "2" + c_c += 1 + continue + else: + for j, row in enumerate(dic["sbound"]): + if int(row.split()[0]) == dic["sai"][count] + 1: + dic["sbound"].pop(j) + continue count += 1 - c_c += 1 def write_files(dic): @@ -488,11 +580,10 @@ def write_files(dic): dic (dict): Modified global dictionary """ - dic["files"] = [ - f for f in os.listdir(f"{dic['exe']}/{dic['sit']}") if f.endswith(".INC") - ] - for file in dic["files"]: - os.system(f"scp -r {dic['exe']}/{dic['sit']}/{file} {dic['exe']}/{dic['fol']}") + if dic["fsit"] != dic["fol"]: + dic["files"] = [f for f in os.listdir(f"{dic['fsit']}") if f.endswith(".INC")] + for file in dic["files"]: + os.system(f"scp -r {dic['fsit']}/{file} {dic['fol']}") lol = [] with open(dic["sdata"], "r", encoding="utf8") as file: for row in csv.reader(file): @@ -500,62 +591,76 @@ def write_files(dic): if 0 < nrwo.find("\\t"): nrwo = nrwo.replace("\\t", " ") lol.append(nrwo) - if lol[-1] == "GRID": + if lol[-1] == "GRID" and max(dic["freq"]) > 0: lol.append("INCLUDE") lol.append("'BCCON.INC' /") if lol[-1] == "REGIONS": lol.append("INCLUDE") lol.append("'OPERNUM_EXPRECCS.INC' /") count = 1 + fre = 0 + tstep = 0 with open( - f"{dic['exe']}/{dic['fol']}/{dic['fol'].upper()}.DATA", + f"{dic['fol']}/{dic['fol'].split('/')[-1].upper()}.DATA", "w", encoding="utf8", ) as file: for i, row in enumerate(lol): + edit = row.split() if i < len(lol) - 1: - if lol[i + 1] == "TSTEP": + if lol[i + 1] == "TSTEP" and max(dic["freq"]) > 0: file.write(row) file.write("\n") - file.write("INCLUDE\n") - file.write(f"'bc/BCPROP{count}.INC' /\n") - count += 1 - else: + for _ in range(dic["freq"][fre]): + file.write("INCLUDE\n") + file.write(f"'bc/BCPROP{count}.INC' /\n") + file.write("TSTEP\n") + file.write(f"{dic['ddays'][count-1]} /\n") + count += 1 + tstep = 1 + fre += 1 + elif tstep == 0: file.write(row) file.write("\n") + elif edit and tstep == 1: + if edit[-1] == "/" or edit[0] == "/": + tstep = 0 else: - file.write(row) + if tstep == 0: + file.write(row) git = ( "-- This file was generated by expreccs https://github.com/cssr-tools/expreccs" ) - dic["sbound"].insert(0, "BCCON") - dic["sbound"].insert(0, git) - dic["sbound"].insert(0, "--Copyright (C) 2024 NORCE") - dic["sbound"].append("/") - with open( - f"{dic['exe']}/{dic['fol']}/BCCON.INC", - "w", - encoding="utf8", - ) as file: - file.write("\n".join(dic["sbound"])) - for i in range(dic["rrst"].num_report_steps()): - dic["rp"][i] = [dic["rp"][i]] - dic["rp"][i].insert(0, "BCPROP\n") - dic["rp"][i].insert(0, git + "\n") - dic["rp"][i].insert(0, "--Copyright (C) 2024 NORCE\n") - dic["rp"][i].append("/") + if max(dic["freq"]) > 0: + dic["sbound"].insert(0, "BCCON") + dic["sbound"].insert(0, git) + dic["sbound"].insert(0, "--Copyright (C) 2025 NORCE") + dic["sbound"].append("/") with open( - f"{dic['exe']}/{dic['fol']}/bc/BCPROP{i}.INC", + f"{dic['fol']}/BCCON.INC", "w", encoding="utf8", ) as file: - file.write("".join(dic["rp"][i])) + file.write("\n".join(dic["sbound"])) + for i in range(len(dic["sdays"])): + dic["sbc"][i] = [dic["sbc"][i]] + 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\n") + dic["sbc"][i].append("/") + with open( + f"{dic['fol']}/bc/BCPROP{i}.INC", + "w", + encoding="utf8", + ) as file: + file.write("".join(dic["sbc"][i])) dic["sopn"].insert(0, "OPERNUM") dic["sopn"].insert(0, git) - dic["sopn"].insert(0, "--Copyright (C) 2024 NORCE") + dic["sopn"].insert(0, "--Copyright (C) 2025 NORCE") dic["sopn"].append("/") with open( - f"{dic['exe']}/{dic['fol']}/OPERNUM_EXPRECCS.INC", + f"{dic['fol']}/OPERNUM_EXPRECCS.INC", "w", encoding="utf8", ) as file: diff --git a/src/expreccs/utils/writefile.py b/src/expreccs/utils/writefile.py index 0243d6e..d9a7d9c 100644 --- a/src/expreccs/utils/writefile.py +++ b/src/expreccs/utils/writefile.py @@ -216,8 +216,6 @@ def write_folders(dic): """ if not os.path.exists(f"{dic['exe']}/{dic['fol']}"): os.system(f"mkdir {dic['exe']}/{dic['fol']}") - if dic["expreccs"]: - return for fil in ["preprocessing", "jobs", "output", "postprocessing"]: if not os.path.exists(f"{dic['exe']}/{dic['fol']}/{fil}"): os.system(f"mkdir {dic['exe']}/{dic['fol']}/{fil}") diff --git a/tests/configs/back-coupling.txt b/tests/configs/back-coupling.txt index 4928b8e..43c1e54 100644 --- a/tests/configs/back-coupling.txt +++ b/tests/configs/back-coupling.txt @@ -14,7 +14,7 @@ porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if p pres #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time 11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m] 6000 6000 9000 9000 0.01 0.01 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans -5 #Thicknes of the layers +5 #Thicknes of the layers [m] 2E7 40 40 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa] 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 diff --git a/tests/configs/flux.txt b/tests/configs/flux.txt index e6e0f34..39cdf06 100644 --- a/tests/configs/flux.txt +++ b/tests/configs/flux.txt @@ -14,7 +14,7 @@ porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if p flux #Use free/closed/porv/porvproj/flux/pres/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time 11000 11000 0.01 10 0.5 #Regional fault x, and y positions [m], x and y multipliers for the trans, height of the fault jump [m] 6565 7777 7979 8383 0.0 0.0 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans -3,3,3,3,3,3,3,3,3 #Thicknes of the layers +3,3,3,3,3,3,3,3,3 #Thicknes of the layers [m] 2E7 60 50 6.11423e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa] 7000 7000 0 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m] (10-10*mt.cos((2*mt.pi*(x+y)/15000))) #The function for the reservoir surface diff --git a/tests/configs/input.txt b/tests/configs/input.txt index c9f16cc..6796502 100644 --- a/tests/configs/input.txt +++ b/tests/configs/input.txt @@ -14,7 +14,7 @@ porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if p pres #Use free/closed/porv/porvproj/flux/pres/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time 11000 11000 0.01 10 0.5 #Regional fault x, and y positions [m], x and y multipliers for the trans, height of the fault jump [m] 6565 7777 7979 8383 0.0 0.0 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans -3,3,3,3,3,3,3,3,3 #Thicknes of the layers +3,3,3,3,3,3,3,3,3 #Thicknes of the layers [m] 2E7 60 50 6.11423e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa] 7000 7000 0 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m] (10-10*mt.cos((2*mt.pi*(x+y)/15000))) #The function for the reservoir surface diff --git a/tests/configs/interp.txt b/tests/configs/interp.txt index 8002397..e4e014e 100644 --- a/tests/configs/interp.txt +++ b/tests/configs/interp.txt @@ -14,7 +14,7 @@ porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if p pres interp #Use free/closed/porv/porvproj/flux/pres/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time 11000 11000 0.01 10 0.5 #Regional fault x, and y positions [m], x and y multipliers for the trans, height of the fault jump [m] 6565 7777 7979 8383 0.0 0.0 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans -3,3,3,3,3,3,3,3,3 #Thicknes of the layers +3,3,3,3,3,3,3,3,3 #Thicknes of the layers [m] 2E7 60 50 6.11423e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa] 7000 7000 0 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m] (10-10*mt.cos((2*mt.pi*(x+y)/15000))) #The function for the reservoir surface diff --git a/tests/configs/rotate.txt b/tests/configs/rotate.txt index 46da2c5..4bebc46 100644 --- a/tests/configs/rotate.txt +++ b/tests/configs/rotate.txt @@ -1,5 +1,5 @@ """Set the full path to the flow executable and flags""" -flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true +flow --enable-opm-rst-file=true --newton-min-iterations=1 --enable-tuning=true """Set the model parameters""" 15000 15000 9 #Reginonal aquifer length, width, and depth [m] @@ -14,7 +14,7 @@ porv 2e10 1 1 2e10 #Use free/closed/porv for the Regional aquifer (if p closed #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time 11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m] 6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans -9 #Thicknes of the layers +9 #Thicknes of the layers [m] 3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa] 7895 8430 4.5 #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 diff --git a/tests/configs/rotate_2d.txt b/tests/configs/rotate_2d.txt new file mode 100644 index 0000000..0dfb140 --- /dev/null +++ b/tests/configs/rotate_2d.txt @@ -0,0 +1,47 @@ +"""Set the full path to the flow executable and flags""" +flow --enable-opm-rst-file=true --newton-min-iterations=1 --enable-tuning=true + +"""Set the model parameters""" +15000 15000 9 #Reginonal aquifer length, width, and depth [m] +15 #Variable array of x-refinment (Regional) +15 #Variable array of y-refinment (Regional) +1 #Variable array of z-refinment (Regional) +75 #Variable array of x-refinment (Reference) +75 #Variable array of y-refinment (Reference) +1 #Variable array of z-refinment (Reference) +5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m] +porv 2e10 1 1 2e10 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5)) +closed #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time +11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m] +6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans +9 #Thicknes of the layers [m] +3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa] +7895 8430 4.5 #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 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg]) +0 #Number of interations for back-coupling + +"""Set the saturation functions""" +krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-] +krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-] +pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa] + +"""Properties sat functions""" +"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation""" +SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5 + +"""Properties rock""" +"""Kxy [mD], Kz [mD], phi [-]""" +PERMXY5 1000 PERMZ5 100 PORO5 0.20 + +"""Wells position""" +"""x, y, zi, and zf positions [m]""" +8500 8500 0 9 #Well 1 +10600 10600 0 9 #Well 2 + +"""Define the injection values""" +"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))""" + 10 1 1 1 1 1368925.4 0 8106776.18 + 200 10 10 1 1 1368925.4 0 8106776.18 + 10 1 1 1 1 0 0 8106776.18 + 500 10 10 1 1 0 0 8106776.18 \ No newline at end of file diff --git a/tests/configs/wells.txt b/tests/configs/wells.txt index 6074425..88f3f03 100644 --- a/tests/configs/wells.txt +++ b/tests/configs/wells.txt @@ -14,7 +14,7 @@ porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if p wells #Use free/closed/porv/porvproj/flux/pres/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time 11000 11000 0.01 10 0.5 #Regional fault x, and y positions [m], x and y multipliers for the trans, height of the fault jump [m] 6565 7777 7979 8383 0.0 0.0 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans -3,3,3,3,3,3,3,3,3 #Thicknes of the layers +3,3,3,3,3,3,3,3,3 #Thicknes of the layers [m] 2E7 60 50 6.11423e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa] 7000 7000 0 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m] (10-10*mt.cos((2*mt.pi*(x+y)/15000))) #The function for the reservoir surface diff --git a/tests/test_generic_deck.py b/tests/test_generic_deck.py index c2f42eb..d140f96 100644 --- a/tests/test_generic_deck.py +++ b/tests/test_generic_deck.py @@ -23,7 +23,9 @@ def test_generic_deck(): f"{dirname}/configs/rotate/output/site_closed" ) os.chdir(f"{dirname}/configs/rotate/output") - os.system("expreccs -o expreccs -e regional,site_closed -w 1") + os.system( + "expreccs -o expreccs -i 'regional/REGIONAL site_closed/SITE_CLOSED' -w 1" + ) assert os.path.exists(f"{dirname}/configs/rotate/output/expreccs/BCCON.INC") os.chdir(f"{dirname}/configs/rotate/output/expreccs") os.system("flow EXPRECCS.DATA --enable-tuning=true") diff --git a/tests/test_generic_deck_2d.py b/tests/test_generic_deck_2d.py new file mode 100644 index 0000000..c8c7a11 --- /dev/null +++ b/tests/test_generic_deck_2d.py @@ -0,0 +1,35 @@ +# SPDX-FileCopyrightText: 2025 NORCE +# SPDX-License-Identifier: GPL-3.0 + +"""Test the expreccs functionality to rotate grids and to handle generic 2D decks""" + +import os +import pathlib + +dirname: pathlib.Path = pathlib.Path(__file__).parent + + +def test_generic_deck_2d(): + """See configs/rotate_2d.txt""" + os.chdir(f"{dirname}/configs") + os.system("expreccs -i rotate_2d.txt -o rotate_2d -m all -t 30 -r opm -p site -w 1") + assert os.path.exists( + "./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/output/regional" + ) + os.system( + f"scp -r {dirname}/configs/rotate_2d/preprocessing/site_closed/. " + f"{dirname}/configs/rotate_2d/output/site_closed" + ) + os.chdir(f"{dirname}/configs/rotate_2d/output") + os.system( + "expreccs -o expreccs -i 'regional/REGIONAL site_closed/SITE_CLOSED' -w 1 " + "-f 3 -a 3.2" + ) + assert os.path.exists(f"{dirname}/configs/rotate_2d/output/expreccs/BCCON.INC") + os.chdir(f"{dirname}/configs/rotate_2d/output/expreccs") + os.system("flow EXPRECCS.DATA --enable-tuning=true") + assert os.path.exists(f"{dirname}/configs/rotate_2d/output/expreccs/EXPRECCS.UNRST")