diff --git a/docs/_sources/examples.rst.txt b/docs/_sources/examples.rst.txt
index 57c1f6f..eef465f 100644
--- a/docs/_sources/examples.rst.txt
+++ b/docs/_sources/examples.rst.txt
@@ -62,6 +62,13 @@ Below are some of the figures generated inside the postprocessing folder:
hello_world_sensor_pressure_over_time.png, hello_world_summary_BHP_site_reference.png, and
hello_world_distance_from_border.png respectively
+.. tip::
+
+ All previous commands can be executed as (`docs_hello_world.sh `_):
+
+ .. code-block:: bash
+
+ . ./tests/scripts/docs_hello_world.sh
Layered model
-------------
@@ -130,13 +137,21 @@ not by pressure values. If you run that test, then using plopm:
.. code-block:: bash
- plopm -i 'tests/regional/REGIONAL tests/expreccs/EXPRECCS tests/expreccs_dpincrease/EXPRECCS_DPINCREASE tests/expreccs_perfipnum/EXPRECCS_PERFIPNUM' -v rpr:3
+ plopm -i 'tests/regional/REGIONAL tests/expreccs/EXPRECCS tests/expreccs_dpincrease/EXPRECCS_DPINCREASE tests/expreccs_perfipnum/EXPRECCS_PERFIPNUM' -v rpr:3 -step 1
.. figure:: figs/regional_rpr3.png
Comparison of the different functionality to map the dynamic boundary conditions. Here, rpr:3 (fipnum equal to 3) corresponds to the top part of the sandwich (three layers with the middel layer inactive)
in the regional model, while to the bottom part in the site model.
+.. tip::
+
+ All previous commands can be executed as (`docs_regular_boundaries.sh `_):
+
+ .. code-block:: bash
+
+ . ./tests/scripts/docs_regular_boundaries.sh
+
Non-regular boundaries
----------------------
@@ -183,4 +198,12 @@ For the following figure, it is necessary to include in the REGIONS section of t
.. figure:: figs/expreccs_opernum_i,j,1_t0.png
In the regional model (left), **expreccs** writes the location of the overlapping cells with the site model in the OPERNUM variable, while in the
- site model this variable is used to label the ij direction of the boundary conditions.
\ No newline at end of file
+ site model this variable is used to label the ij direction of the boundary conditions.
+
+.. tip::
+
+ All previous commands can be executed as (`docs_non-regular_boundaries.sh `_):
+
+ .. code-block:: bash
+
+ . ./tests/scripts/docs_non-regular_boundaries.sh
diff --git a/docs/examples.html b/docs/examples.html
index db5ac5e..6035a2a 100644
--- a/docs/examples.html
+++ b/docs/examples.html
@@ -154,6 +154,13 @@
Validate command-line arguments and incompatible operations.
+
The checks cover configuration and model-folder inputs, output names,
+boundary specifications, frequency and time-discretization values,
+rotations, comparison mode, workflow-specific options, and operations
+requiring the subfolder structure.
+
+
Parameters:
+
cmdargs – Parsed arguments returned by load_parser().
+
+
Raises:
+
SystemExit – If an argument is invalid or an incompatible combination is requested.
+
+
diff --git a/docs/searchindex.js b/docs/searchindex.js
index 7c8e737..0f0ce40 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"2D synthetic model":[[4,"d-synthetic-model"]],"3D synthetic model":[[4,"id1"]],"About expreccs":[[0,null]],"Binary packages":[[22,"binary-packages"]],"Brew formula for macOS":[[22,"brew-formula-for-macos"]],"Concept":[[23,"concept"]],"Configuration file":[[2,null]],"Contribute to the software":[[3,"contribute-to-the-software"]],"Contributing":[[3,null]],"ECMOR2026":[[4,null]],"Examples":[[5,null]],"Ground Rules":[[3,"ground-rules"]],"Hello world":[[5,"hello-world"]],"Indices and tables":[[21,"indices-and-tables"]],"Installation":[[22,null]],"Introduction":[[23,null]],"Layered model":[[5,"layered-model"]],"Method":[[4,"method"]],"Module contents":[[6,"module-expreccs"],[7,"module-expreccs.core"],[9,"module-expreccs.utils"],[17,"module-expreccs.visualization"]],"Non-regular boundaries":[[5,"non-regular-boundaries"]],"OPM Flow":[[22,"opm-flow"]],"Output folder":[[25,null]],"Overview":[[23,"overview"]],"Python package":[[22,"python-package"]],"Regular boundaries":[[5,"regular-boundaries"]],"Related":[[26,null]],"Reporting issues or problems":[[3,"reporting-issues-or-problems"]],"Reservoir-related parameters":[[2,"reservoir-related-parameters"]],"Results":[[4,"results"]],"Rock-related parameters":[[2,"rock-related-parameters"]],"Seek support":[[3,"seek-support"]],"Simulation results":[[2,"simulation-results"]],"Source build in Linux/Windows":[[22,"source-build-in-linux-windows"]],"Source build in macOS":[[22,"source-build-in-macos"]],"Submodules":[[7,"submodules"],[9,"submodules"],[17,"submodules"]],"Subpackages":[[6,"subpackages"]],"TCCS-13":[[27,null]],"Troll aquifer model":[[4,"troll-aquifer-model"]],"Via OPM Flow decks":[[5,"via-opm-flow-decks"],[25,"via-opm-flow-decks"]],"Via configuration files":[[5,"via-configuration-files"],[25,"via-configuration-files"]],"Welcome to the expreccs\u2019s documentation!":[[21,null]],"Well-related parameters":[[2,"well-related-parameters"]],"ad-micp":[[26,"ad-micp"]],"expreccs":[[1,"expreccs"],[24,null]],"expreccs Python API":[[1,null]],"expreccs package":[[6,null]],"expreccs.core package":[[7,null]],"expreccs.core.expreccs module":[[8,null]],"expreccs.utils package":[[9,null]],"expreccs.utils.backcoupling module":[[10,null]],"expreccs.utils.inputvalues module":[[11,null]],"expreccs.utils.mapboundaries module":[[12,null]],"expreccs.utils.mapproperties module":[[13,null]],"expreccs.utils.reg_sit_given_decks module":[[14,null]],"expreccs.utils.runs module":[[15,null]],"expreccs.utils.writefile module":[[16,null]],"expreccs.visualization package":[[17,null]],"expreccs.visualization.maps2d module":[[18,null]],"expreccs.visualization.plotting module":[[19,null]],"expreccs.visualization.reading module":[[20,null]],"plopm":[[26,"plopm"]],"pofff":[[26,"pofff"]],"pycopm":[[26,"pycopm"]],"pymm":[[26,"pymm"]],"pyopmnearwell":[[26,"pyopmnearwell"]],"pyopmspe11":[[26,"pyopmspe11"]]},"docnames":["about","api","configuration_file","contributing","ecmor2026","examples","expreccs","expreccs.core","expreccs.core.expreccs","expreccs.utils","expreccs.utils.backcoupling","expreccs.utils.inputvalues","expreccs.utils.mapboundaries","expreccs.utils.mapproperties","expreccs.utils.reg_sit_given_decks","expreccs.utils.runs","expreccs.utils.writefile","expreccs.visualization","expreccs.visualization.maps2d","expreccs.visualization.plotting","expreccs.visualization.reading","index","installation","introduction","modules","output_folder","related","tccs-13"],"envversion":{"sphinx":66,"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","ecmor2026.rst","examples.rst","expreccs.rst","expreccs.core.rst","expreccs.core.expreccs.rst","expreccs.utils.rst","expreccs.utils.backcoupling.rst","expreccs.utils.inputvalues.rst","expreccs.utils.mapboundaries.rst","expreccs.utils.mapproperties.rst","expreccs.utils.reg_sit_given_decks.rst","expreccs.utils.runs.rst","expreccs.utils.writefile.rst","expreccs.visualization.rst","expreccs.visualization.maps2d.rst","expreccs.visualization.plotting.rst","expreccs.visualization.reading.rst","index.rst","installation.rst","introduction.rst","modules.rst","output_folder.rst","related.rst","tccs-13.rst"],"indexentries":{"acoeff (expreccs.utils.reg_sit_given_decks.config attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Config.acoeff",false]],"act (expreccs.utils.reg_sit_given_decks.regional attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Regional.act",false]],"aquaflux() (in module expreccs.utils.mapboundaries)":[[12,"expreccs.utils.mapboundaries.aquaflux",false]],"backcoupling() (in module expreccs.utils.backcoupling)":[[10,"expreccs.utils.backcoupling.backcoupling",false]],"bccon (class in expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.BCCon",false]],"borders (class in expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.Borders",false]],"boundaries (expreccs.utils.reg_sit_given_decks.config attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Config.boundaries",false]],"cache_grid_coordinates() (in module expreccs.utils.mapboundaries)":[[12,"expreccs.utils.mapboundaries.cache_grid_coordinates",false]],"check_cmdargs() (in module expreccs.core.expreccs)":[[8,"expreccs.core.expreccs.check_cmdargs",false]],"check_entries() (in module expreccs.utils.inputvalues)":[[11,"expreccs.utils.inputvalues.check_entries",false]],"check_regional_neighbours() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.check_regional_neighbours",false]],"compact_format() (in module expreccs.utils.writefile)":[[16,"expreccs.utils.writefile.compact_format",false]],"compact_format_numeric() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.compact_format_numeric",false]],"compute_multipliers() (in module expreccs.utils.backcoupling)":[[10,"expreccs.utils.backcoupling.compute_multipliers",false]],"config (class in expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.Config",false]],"coords (expreccs.utils.reg_sit_given_decks.bccon attribute)":[[14,"expreccs.utils.reg_sit_given_decks.BCCon.coords",false]],"create_deck() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.create_deck",false]],"define_cases() (in module expreccs.visualization.reading)":[[20,"expreccs.visualization.reading.define_cases",false]],"explicit (expreccs.utils.reg_sit_given_decks.config attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Config.explicit",false]],"expreccs":[[6,"module-expreccs",false]],"expreccs.core":[[7,"module-expreccs.core",false]],"expreccs.core.expreccs":[[8,"module-expreccs.core.expreccs",false]],"expreccs.utils":[[9,"module-expreccs.utils",false]],"expreccs.utils.backcoupling":[[10,"module-expreccs.utils.backcoupling",false]],"expreccs.utils.inputvalues":[[11,"module-expreccs.utils.inputvalues",false]],"expreccs.utils.mapboundaries":[[12,"module-expreccs.utils.mapboundaries",false]],"expreccs.utils.mapproperties":[[13,"module-expreccs.utils.mapproperties",false]],"expreccs.utils.reg_sit_given_decks":[[14,"module-expreccs.utils.reg_sit_given_decks",false]],"expreccs.utils.runs":[[15,"module-expreccs.utils.runs",false]],"expreccs.utils.writefile":[[16,"module-expreccs.utils.writefile",false]],"expreccs.visualization":[[17,"module-expreccs.visualization",false]],"expreccs.visualization.maps2d":[[18,"module-expreccs.visualization.maps2d",false]],"expreccs.visualization.plotting":[[19,"module-expreccs.visualization.plotting",false]],"expreccs.visualization.reading":[[20,"module-expreccs.visualization.reading",false]],"extract_site_borders() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.extract_site_borders",false]],"final_time_maps() (in module expreccs.visualization.maps2d)":[[18,"expreccs.visualization.maps2d.final_time_maps",false]],"final_time_maps_difference() (in module expreccs.visualization.maps2d)":[[18,"expreccs.visualization.maps2d.final_time_maps_difference",false]],"find_ij_orientation() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.find_ij_orientation",false]],"find_regional_cells() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.find_regional_cells",false]],"fipr (expreccs.utils.reg_sit_given_decks.xymaps attribute)":[[14,"expreccs.utils.reg_sit_given_decks.XYMaps.fipr",false]],"fol (expreccs.utils.reg_sit_given_decks.config attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Config.fol",false]],"freq (expreccs.utils.reg_sit_given_decks.config attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Config.freq",false]],"fsit (expreccs.utils.reg_sit_given_decks.config attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Config.fsit",false]],"geological_maps() (in module expreccs.visualization.maps2d)":[[18,"expreccs.visualization.maps2d.geological_maps",false]],"get_bccon() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.get_bccon",false]],"get_xymaps() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.get_xymaps",false]],"grid (expreccs.utils.reg_sit_given_decks.regional attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Regional.grid",false]],"grid (expreccs.utils.reg_sit_given_decks.site attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Site.grid",false]],"handle_grid_coord() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.handle_grid_coord",false]],"handle_labels_difference() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.handle_labels_difference",false]],"handle_labels_distance() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.handle_labels_distance",false]],"handle_pressure_correction() (in module expreccs.utils.mapboundaries)":[[12,"expreccs.utils.mapboundaries.handle_pressure_correction",false]],"handle_site_summary() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.handle_site_summary",false]],"handle_stencil() (in module expreccs.utils.mapboundaries)":[[12,"expreccs.utils.mapboundaries.handle_stencil",false]],"handle_stencil_2p() (in module expreccs.utils.mapboundaries)":[[12,"expreccs.utils.mapboundaries.handle_stencil_2p",false]],"inds (expreccs.utils.reg_sit_given_decks.xymaps attribute)":[[14,"expreccs.utils.reg_sit_given_decks.XYMaps.inds",false]],"init (expreccs.utils.reg_sit_given_decks.regional attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Regional.init",false]],"init (expreccs.utils.reg_sit_given_decks.site attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Site.init",false]],"init_multipliers() (in module expreccs.utils.backcoupling)":[[10,"expreccs.utils.backcoupling.init_multipliers",false]],"interpdata (class in expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData",false]],"ksfips (expreccs.utils.reg_sit_given_decks.bccon attribute)":[[14,"expreccs.utils.reg_sit_given_decks.BCCon.ksfips",false]],"load_parser() (in module expreccs.core.expreccs)":[[8,"expreccs.core.expreccs.load_parser",false]],"main() (in module expreccs.core.expreccs)":[[8,"expreccs.core.expreccs.main",false]],"make_arrays() (in module expreccs.visualization.reading)":[[20,"expreccs.visualization.reading.make_arrays",false]],"manage_name() (in module expreccs.visualization.maps2d)":[[18,"expreccs.visualization.maps2d.manage_name",false]],"manage_names() (in module expreccs.visualization.reading)":[[20,"expreccs.visualization.reading.manage_names",false]],"mapping_properties() (in module expreccs.utils.mapproperties)":[[13,"expreccs.utils.mapproperties.mapping_properties",false]],"module":[[6,"module-expreccs",false],[7,"module-expreccs.core",false],[8,"module-expreccs.core.expreccs",false],[9,"module-expreccs.utils",false],[10,"module-expreccs.utils.backcoupling",false],[11,"module-expreccs.utils.inputvalues",false],[12,"module-expreccs.utils.mapboundaries",false],[13,"module-expreccs.utils.mapproperties",false],[14,"module-expreccs.utils.reg_sit_given_decks",false],[15,"module-expreccs.utils.runs",false],[16,"module-expreccs.utils.writefile",false],[17,"module-expreccs.visualization",false],[18,"module-expreccs.visualization.maps2d",false],[19,"module-expreccs.visualization.plotting",false],[20,"module-expreccs.visualization.reading",false]],"nonregular (expreccs.utils.reg_sit_given_decks.config attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Config.nonregular",false]],"offset (expreccs.utils.reg_sit_given_decks.xymaps attribute)":[[14,"expreccs.utils.reg_sit_given_decks.XYMaps.offset",false]],"oprn (expreccs.utils.reg_sit_given_decks.xymaps attribute)":[[14,"expreccs.utils.reg_sit_given_decks.XYMaps.oprn",false]],"over_time_distance() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.over_time_distance",false]],"over_time_max_difference() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.over_time_max_difference",false]],"over_time_sensor() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.over_time_sensor",false]],"plot_map() (in module expreccs.visualization.maps2d)":[[18,"expreccs.visualization.maps2d.plot_map",false]],"plot_results() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.plot_results",false]],"plotting() (in module expreccs.utils.runs)":[[15,"expreccs.utils.runs.plotting",false]],"plotting_settings() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.plotting_settings",false]],"porv_projections() (in module expreccs.utils.mapboundaries)":[[12,"expreccs.utils.mapboundaries.porv_projections",false]],"porv_regional_segmentation() (in module expreccs.utils.mapboundaries)":[[12,"expreccs.utils.mapboundaries.porv_regional_segmentation",false]],"positions() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.positions",false]],"positions_reference() (in module expreccs.utils.mapproperties)":[[13,"expreccs.utils.mapproperties.positions_reference",false]],"positions_regional() (in module expreccs.utils.mapproperties)":[[13,"expreccs.utils.mapproperties.positions_regional",false]],"positions_rotation() (in module expreccs.utils.mapproperties)":[[13,"expreccs.utils.mapproperties.positions_rotation",false]],"positions_site() (in module expreccs.utils.mapproperties)":[[13,"expreccs.utils.mapproperties.positions_site",false]],"process_input() (in module expreccs.utils.inputvalues)":[[11,"expreccs.utils.inputvalues.process_input",false]],"process_tuning() (in module expreccs.utils.inputvalues)":[[11,"expreccs.utils.inputvalues.process_tuning",false]],"project_pressures() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.project_pressures",false]],"rdays (expreccs.utils.reg_sit_given_decks.regional attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Regional.rdays",false]],"read_fluxes() (in module expreccs.visualization.reading)":[[20,"expreccs.visualization.reading.read_fluxes",false]],"read_mask() (in module expreccs.visualization.reading)":[[20,"expreccs.visualization.reading.read_mask",false]],"reading_simulations() (in module expreccs.visualization.reading)":[[20,"expreccs.visualization.reading.reading_simulations",false]],"regional (class in expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.Regional",false]],"regionalcells (class in expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.RegionalCells",false]],"reshape_to_2d() (in module expreccs.visualization.maps2d)":[[18,"expreccs.visualization.maps2d.reshape_to_2d",false]],"rf (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.rf",false]],"rf (expreccs.utils.reg_sit_given_decks.regionalcells attribute)":[[14,"expreccs.utils.reg_sit_given_decks.RegionalCells.rf",false]],"rfip (expreccs.utils.reg_sit_given_decks.regional attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Regional.rfip",false]],"ri (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.ri",false]],"ri (expreccs.utils.reg_sit_given_decks.regionalcells attribute)":[[14,"expreccs.utils.reg_sit_given_decks.RegionalCells.ri",false]],"rk (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.rk",false]],"rk (expreccs.utils.reg_sit_given_decks.regionalcells attribute)":[[14,"expreccs.utils.reg_sit_given_decks.RegionalCells.rk",false]],"rkg (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.rkg",false]],"rkg (expreccs.utils.reg_sit_given_decks.regionalcells attribute)":[[14,"expreccs.utils.reg_sit_given_decks.RegionalCells.rkg",false]],"rotate_grid() (in module expreccs.utils.mapproperties)":[[13,"expreccs.utils.mapproperties.rotate_grid",false]],"rst (expreccs.utils.reg_sit_given_decks.regional attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Regional.rst",false]],"rst (expreccs.utils.reg_sit_given_decks.site attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Site.rst",false]],"rt (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.rt",false]],"rt (expreccs.utils.reg_sit_given_decks.regionalcells attribute)":[[14,"expreccs.utils.reg_sit_given_decks.RegionalCells.rt",false]],"rtmin (expreccs.utils.reg_sit_given_decks.xymaps attribute)":[[14,"expreccs.utils.reg_sit_given_decks.XYMaps.rtmin",false]],"run_models() (in module expreccs.utils.runs)":[[15,"expreccs.utils.runs.run_models",false]],"rx (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.rx",false]],"rx (expreccs.utils.reg_sit_given_decks.regionalcells attribute)":[[14,"expreccs.utils.reg_sit_given_decks.RegionalCells.rx",false]],"ry (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.ry",false]],"ry (expreccs.utils.reg_sit_given_decks.regionalcells attribute)":[[14,"expreccs.utils.reg_sit_given_decks.RegionalCells.ry",false]],"rz (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.rz",false]],"rz (expreccs.utils.reg_sit_given_decks.regionalcells attribute)":[[14,"expreccs.utils.reg_sit_given_decks.RegionalCells.rz",false]],"sai (expreccs.utils.reg_sit_given_decks.borders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Borders.sai",false]],"sai (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.sai",false]],"sai (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sai",false]],"sbound (expreccs.utils.reg_sit_given_decks.bccon attribute)":[[14,"expreccs.utils.reg_sit_given_decks.BCCon.sbound",false]],"sbound (expreccs.utils.reg_sit_given_decks.borders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Borders.sbound",false]],"sbound (expreccs.utils.reg_sit_given_decks.regionalcells attribute)":[[14,"expreccs.utils.reg_sit_given_decks.RegionalCells.sbound",false]],"sbound (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sbound",false]],"sdata (expreccs.utils.reg_sit_given_decks.site attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Site.sdata",false]],"sf (expreccs.utils.reg_sit_given_decks.borders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Borders.sf",false]],"sf (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.sf",false]],"sfe (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sfe",false]],"sfip (expreccs.utils.reg_sit_given_decks.site attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Site.sfip",false]],"sfn (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sfn",false]],"sfs (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sfs",false]],"sfw (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sfw",false]],"simulations() (in module expreccs.utils.runs)":[[15,"expreccs.utils.runs.simulations",false]],"site (class in expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.Site",false]],"site_contour() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.site_contour",false]],"siteborders (class in expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders",false]],"snum (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.snum",false]],"sopn (expreccs.utils.reg_sit_given_decks.bccon attribute)":[[14,"expreccs.utils.reg_sit_given_decks.BCCon.sopn",false]],"spres (expreccs.utils.reg_sit_given_decks.bccon attribute)":[[14,"expreccs.utils.reg_sit_given_decks.BCCon.spres",false]],"spres (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.spres",false]],"st (expreccs.utils.reg_sit_given_decks.borders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Borders.st",false]],"st (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.st",false]],"ste (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.ste",false]],"stmin (expreccs.utils.reg_sit_given_decks.bccon attribute)":[[14,"expreccs.utils.reg_sit_given_decks.BCCon.stmin",false]],"stn (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.stn",false]],"strip_trailing_digits() (in module expreccs.visualization.reading)":[[20,"expreccs.visualization.reading.strip_trailing_digits",false]],"sts (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sts",false]],"stw (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.stw",false]],"summary_plot() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.summary_plot",false]],"summary_site() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.summary_site",false]],"sx (expreccs.utils.reg_sit_given_decks.borders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Borders.sx",false]],"sx (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.sx",false]],"sxe (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sxe",false]],"sxn (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sxn",false]],"sxs (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sxs",false]],"sxw (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sxw",false]],"sy (expreccs.utils.reg_sit_given_decks.borders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Borders.sy",false]],"sy (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.sy",false]],"sye (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sye",false]],"syl (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.syl",false]],"syn (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.syn",false]],"syw (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.syw",false]],"sz (expreccs.utils.reg_sit_given_decks.borders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Borders.sz",false]],"sz (expreccs.utils.reg_sit_given_decks.interpdata attribute)":[[14,"expreccs.utils.reg_sit_given_decks.InterpData.sz",false]],"sze (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.sze",false]],"szn (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.szn",false]],"szs (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.szs",false]],"szw (expreccs.utils.reg_sit_given_decks.siteborders attribute)":[[14,"expreccs.utils.reg_sit_given_decks.SiteBorders.szw",false]],"temporal_interpolation() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.temporal_interpolation",false]],"temporal_interpolation_flux() (in module expreccs.utils.mapboundaries)":[[12,"expreccs.utils.mapboundaries.temporal_interpolation_flux",false]],"temporal_interpolation_pressure() (in module expreccs.utils.mapboundaries)":[[12,"expreccs.utils.mapboundaries.temporal_interpolation_pressure",false]],"wells_site() (in module expreccs.visualization.plotting)":[[19,"expreccs.visualization.plotting.wells_site",false]],"write_files() (in module expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.write_files",false]],"write_files() (in module expreccs.utils.writefile)":[[16,"expreccs.utils.writefile.write_files",false]],"write_folder_iter() (in module expreccs.utils.backcoupling)":[[10,"expreccs.utils.backcoupling.write_folder_iter",false]],"write_folders() (in module expreccs.utils.writefile)":[[16,"expreccs.utils.writefile.write_folders",false]],"write_grid() (in module expreccs.utils.writefile)":[[16,"expreccs.utils.writefile.write_grid",false]],"write_properties() (in module expreccs.utils.writefile)":[[16,"expreccs.utils.writefile.write_properties",false]],"x_i (expreccs.utils.reg_sit_given_decks.xymaps attribute)":[[14,"expreccs.utils.reg_sit_given_decks.XYMaps.x_i",false]],"xymaps (class in expreccs.utils.reg_sit_given_decks)":[[14,"expreccs.utils.reg_sit_given_decks.XYMaps",false]],"y_i (expreccs.utils.reg_sit_given_decks.xymaps attribute)":[[14,"expreccs.utils.reg_sit_given_decks.XYMaps.y_i",false]],"z_i (expreccs.utils.reg_sit_given_decks.xymaps attribute)":[[14,"expreccs.utils.reg_sit_given_decks.XYMaps.z_i",false]],"zones (expreccs.utils.reg_sit_given_decks.config attribute)":[[14,"expreccs.utils.reg_sit_given_decks.Config.zones",false]]},"objects":{"":[[6,0,0,"-","expreccs"]],"expreccs":[[7,0,0,"-","core"],[9,0,0,"-","utils"],[17,0,0,"-","visualization"]],"expreccs.core":[[8,0,0,"-","expreccs"]],"expreccs.core.expreccs":[[8,1,1,"","check_cmdargs"],[8,1,1,"","load_parser"],[8,1,1,"","main"]],"expreccs.utils":[[10,0,0,"-","backcoupling"],[11,0,0,"-","inputvalues"],[12,0,0,"-","mapboundaries"],[13,0,0,"-","mapproperties"],[14,0,0,"-","reg_sit_given_decks"],[15,0,0,"-","runs"],[16,0,0,"-","writefile"]],"expreccs.utils.backcoupling":[[10,1,1,"","backcoupling"],[10,1,1,"","compute_multipliers"],[10,1,1,"","init_multipliers"],[10,1,1,"","write_folder_iter"]],"expreccs.utils.inputvalues":[[11,1,1,"","check_entries"],[11,1,1,"","process_input"],[11,1,1,"","process_tuning"]],"expreccs.utils.mapboundaries":[[12,1,1,"","aquaflux"],[12,1,1,"","cache_grid_coordinates"],[12,1,1,"","handle_pressure_correction"],[12,1,1,"","handle_stencil"],[12,1,1,"","handle_stencil_2p"],[12,1,1,"","porv_projections"],[12,1,1,"","porv_regional_segmentation"],[12,1,1,"","temporal_interpolation_flux"],[12,1,1,"","temporal_interpolation_pressure"]],"expreccs.utils.mapproperties":[[13,1,1,"","mapping_properties"],[13,1,1,"","positions_reference"],[13,1,1,"","positions_regional"],[13,1,1,"","positions_rotation"],[13,1,1,"","positions_site"],[13,1,1,"","rotate_grid"]],"expreccs.utils.reg_sit_given_decks":[[14,2,1,"","BCCon"],[14,2,1,"","Borders"],[14,2,1,"","Config"],[14,2,1,"","InterpData"],[14,2,1,"","Regional"],[14,2,1,"","RegionalCells"],[14,2,1,"","Site"],[14,2,1,"","SiteBorders"],[14,2,1,"","XYMaps"],[14,1,1,"","check_regional_neighbours"],[14,1,1,"","compact_format_numeric"],[14,1,1,"","create_deck"],[14,1,1,"","extract_site_borders"],[14,1,1,"","find_ij_orientation"],[14,1,1,"","find_regional_cells"],[14,1,1,"","get_bccon"],[14,1,1,"","get_xymaps"],[14,1,1,"","handle_grid_coord"],[14,1,1,"","project_pressures"],[14,1,1,"","site_contour"],[14,1,1,"","temporal_interpolation"],[14,1,1,"","write_files"]],"expreccs.utils.reg_sit_given_decks.BCCon":[[14,3,1,"","coords"],[14,3,1,"","ksfips"],[14,3,1,"","sbound"],[14,3,1,"","sopn"],[14,3,1,"","spres"],[14,3,1,"","stmin"]],"expreccs.utils.reg_sit_given_decks.Borders":[[14,3,1,"","sai"],[14,3,1,"","sbound"],[14,3,1,"","sf"],[14,3,1,"","st"],[14,3,1,"","sx"],[14,3,1,"","sy"],[14,3,1,"","sz"]],"expreccs.utils.reg_sit_given_decks.Config":[[14,3,1,"","acoeff"],[14,3,1,"","boundaries"],[14,3,1,"","explicit"],[14,3,1,"","fol"],[14,3,1,"","freq"],[14,3,1,"","fsit"],[14,3,1,"","nonregular"],[14,3,1,"","zones"]],"expreccs.utils.reg_sit_given_decks.InterpData":[[14,3,1,"","rf"],[14,3,1,"","ri"],[14,3,1,"","rk"],[14,3,1,"","rkg"],[14,3,1,"","rt"],[14,3,1,"","rx"],[14,3,1,"","ry"],[14,3,1,"","rz"],[14,3,1,"","sai"],[14,3,1,"","sf"],[14,3,1,"","snum"],[14,3,1,"","st"],[14,3,1,"","sx"],[14,3,1,"","sy"],[14,3,1,"","sz"]],"expreccs.utils.reg_sit_given_decks.Regional":[[14,3,1,"","act"],[14,3,1,"","grid"],[14,3,1,"","init"],[14,3,1,"","rdays"],[14,3,1,"","rfip"],[14,3,1,"","rst"]],"expreccs.utils.reg_sit_given_decks.RegionalCells":[[14,3,1,"","rf"],[14,3,1,"","ri"],[14,3,1,"","rk"],[14,3,1,"","rkg"],[14,3,1,"","rt"],[14,3,1,"","rx"],[14,3,1,"","ry"],[14,3,1,"","rz"],[14,3,1,"","sbound"]],"expreccs.utils.reg_sit_given_decks.Site":[[14,3,1,"","grid"],[14,3,1,"","init"],[14,3,1,"","rst"],[14,3,1,"","sdata"],[14,3,1,"","sfip"]],"expreccs.utils.reg_sit_given_decks.SiteBorders":[[14,3,1,"","sai"],[14,3,1,"","sbound"],[14,3,1,"","sfe"],[14,3,1,"","sfn"],[14,3,1,"","sfs"],[14,3,1,"","sfw"],[14,3,1,"","spres"],[14,3,1,"","ste"],[14,3,1,"","stn"],[14,3,1,"","sts"],[14,3,1,"","stw"],[14,3,1,"","sxe"],[14,3,1,"","sxn"],[14,3,1,"","sxs"],[14,3,1,"","sxw"],[14,3,1,"","sye"],[14,3,1,"","syl"],[14,3,1,"","syn"],[14,3,1,"","syw"],[14,3,1,"","sze"],[14,3,1,"","szn"],[14,3,1,"","szs"],[14,3,1,"","szw"]],"expreccs.utils.reg_sit_given_decks.XYMaps":[[14,3,1,"","fipr"],[14,3,1,"","inds"],[14,3,1,"","offset"],[14,3,1,"","oprn"],[14,3,1,"","rtmin"],[14,3,1,"","x_i"],[14,3,1,"","y_i"],[14,3,1,"","z_i"]],"expreccs.utils.runs":[[15,1,1,"","plotting"],[15,1,1,"","run_models"],[15,1,1,"","simulations"]],"expreccs.utils.writefile":[[16,1,1,"","compact_format"],[16,1,1,"","write_files"],[16,1,1,"","write_folders"],[16,1,1,"","write_grid"],[16,1,1,"","write_properties"]],"expreccs.visualization":[[18,0,0,"-","maps2d"],[19,0,0,"-","plotting"],[20,0,0,"-","reading"]],"expreccs.visualization.maps2d":[[18,1,1,"","final_time_maps"],[18,1,1,"","final_time_maps_difference"],[18,1,1,"","geological_maps"],[18,1,1,"","manage_name"],[18,1,1,"","plot_map"],[18,1,1,"","reshape_to_2d"]],"expreccs.visualization.plotting":[[19,1,1,"","handle_labels_difference"],[19,1,1,"","handle_labels_distance"],[19,1,1,"","handle_site_summary"],[19,1,1,"","over_time_distance"],[19,1,1,"","over_time_max_difference"],[19,1,1,"","over_time_sensor"],[19,1,1,"","plot_results"],[19,1,1,"","plotting_settings"],[19,1,1,"","positions"],[19,1,1,"","summary_plot"],[19,1,1,"","summary_site"],[19,1,1,"","wells_site"]],"expreccs.visualization.reading":[[20,1,1,"","define_cases"],[20,1,1,"","make_arrays"],[20,1,1,"","manage_names"],[20,1,1,"","read_fluxes"],[20,1,1,"","read_mask"],[20,1,1,"","reading_simulations"],[20,1,1,"","strip_trailing_digits"]]},"objnames":{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"]},"objtypes":{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute"},"terms":{"00e":2,"05e3":5,"0f":[5,27],"0pressur":27,"10e3":5,"11423e":2,"11th":2,"15e3":5,"193531e":2,"1d":19,"1e":[2,27],"1e0":27,"1e1":2,"1e2":2,"1e3":2,"1e4":2,"1e5":2,"1e6":2,"1e7":2,"1e8":2,"1f":[5,27],"24e3":5,"2d":[18,19,21],"2e2":2,"2f":27,"3060e":2,"33e3":5,"3b":27,"3d":21,"3e5":2,"50e3":5,"55e3":5,"5c":4,"5d":4,"5e6":2,"605e6":27,"60e3":5,"63e":2,"80e3":5,"99e":2,"A":[10,26,27],"About":21,"After":27,"An":[3,26],"Below":[5,26],"Both":2,"For":[0,2,3,5,22,27],"Here":[0,2,4,5,27],"If":[2,5,22],"In":[2,3,5,23,25],"The":[0,1,2,3,4,5,22,23,25,27],"Then":[2,4,5,22,25,27],"There":22,"This":[5,10,23],"To":[2,4,5,14,22,27],"We":[2,3,5],"While":22,"You":[4,5,22,27],"_":[10,27],"_build":3,"_of_input_fil":23,"abl":22,"abov":[2,27],"accept":3,"achiev":[2,5],"acoeff":[9,14],"act":[9,14],"action":[3,22],"activ":[2,4,22,27],"actual":[4,27],"ad":21,"adapt":[4,27],"add":[2,3,4,5,10,22,23,25,27],"addit":[1,2,3,5,25],"allow":[2,27],"along":[2,5,23],"also":[2,3,5,22,25],"altern":3,"anaconda":22,"analys":3,"analysi":3,"ani":[2,3,5],"anim":5,"anoth":[5,22],"answer":3,"api":21,"appear":4,"appli":5,"applic":5,"approach":[0,2,3,5,14,23,27],"apt":22,"aquaflux":[6,9,12],"aquif":[2,21,27],"argument":[2,8,23],"argv":8,"array":[2,18,23],"array_1d":18,"assess":2,"assign":4,"auto":3,"avail":[2,22],"averag":27,"avoid":2,"b":[23,27],"back":[10,20],"backcoupl":[6,9],"bar":[2,4,27],"base":[5,10,14,23,26],"bash":4,"bc":[2,5,12,23,25],"bccon":[6,9,14,25],"bcs":23,"becom":23,"befor":[3,4,27],"benchmark":26,"better":19,"bfebf2":27,"bhp":[2,19],"bhps":5,"bin":[2,3,22],"binari":[3,21],"black":[3,27],"bool":14,"border":[6,9,14,19],"bottom":[2,5],"boundari":[2,9,12,14,21,23,25],"box":2,"branch":22,"brew":21,"brg":27,"build":[2,3,5,21],"build_opm_mpi":22,"built":22,"c":[2,5,23,27],"cache_grid_coordin":[6,9,12],"calcit":26,"call":[5,25],"can":[2,3,4,5,22,25,27],"capabl":2,"capillari":2,"carlson":2,"case":[5,20],"cbsfax":[5,27],"cd":22,"cell":[2,4,5,12,14,19,23,25,27],"center":[12,19],"cet_diverging_rainbow_bgymr_45_85_c67":27,"cfd":26,"cformat":[5,27],"chang":[2,3,5],"check":[3,8,11,14,22,26],"check_cmdarg":[6,7,8],"check_entri":[6,9,11],"check_regional_neighbour":[6,9,14],"checker":3,"checkout":22,"chosen":2,"ci":[3,22],"ci_pycopm_maco":3,"clabel":27,"class":14,"clone":22,"close":2,"closest":[2,19],"cm":22,"cmake":22,"cmap":18,"cmdarg":8,"cnum":27,"cnv":27,"co2":[2,4,5,23,26],"coarsen":[4,27],"coarsened_improv":27,"coarsened_perm":27,"coarsened_tran":27,"coarser":2,"code":[3,6,22],"coeffici":23,"collabor":3,"color":[4,19],"com":[4,5,22,23,27],"combin":8,"command":[2,5,8,22,27],"commit":3,"common":[4,22,27],"communic":4,"compact_format":[6,9,16],"compact_format_numer":[6,9,14],"compar":[2,5,23,25],"comparison":[1,5],"compens":10,"complex":5,"comprehens":4,"compress":2,"comput":[2,10],"compute_multipli":[6,9,10],"concept":21,"condit":[2,5,23,25],"config":[5,6,9,14],"configur":[1,11,21,23],"conform":23,"connect":[4,23,25],"consid":[2,5],"contact":[4,27],"contain":[1,3],"content":[1,3,21,24],"continu":2,"contour":[14,23],"contribut":[0,21,22],"control":[2,27],"convert":18,"cook":27,"coord":[9,14],"coordin":[2,14],"copi":[3,22],"core":[1,4,6,24,27],"corner":[2,16,23],"correct":12,"correspond":[1,2,5,23,25],"council":0,"coupl":[10,20],"cov":[3,5],"cp":2,"cpg":[2,23],"cpr_trueimp":27,"creat":[3,4,5,14,22,23,25],"create_deck":[6,9,14],"csp":[2,26],"cssr":[4,5,22,23,27],"curious":5,"current":[22,23,27],"current_directori":22,"curv":2,"d":[2,4,5,27],"d_z":14,"data":[4,5,14,18,27],"day":[2,5],"dcmake_build_typ":22,"dday":14,"de":25,"deactiv":2,"deck":[1,2,4,14,20,21,23,27],"dedic":22,"default":[2,23],"defin":[2,5,23],"define_cas":[6,17,20],"definit":[2,25],"delax":[5,27],"demonstr":5,"depend":[3,22,27],"depth":[2,27],"describ":[2,3,4,23,27],"desir":2,"detail":0,"dev":[3,22],"develop":[22,23],"dic":[10,11,12,13,15,16,18,19,20],"differ":[1,2,5,10,12,13,18,19,23,25],"digit":20,"dimens":[2,4,27],"dir":[2,12],"dire":14,"direct":[2,5,25],"director":[4,27],"directori":[3,23],"discret":[2,23],"distanc":[5,19],"dmar":2,"doc":3,"document":[2,3,22,23,25],"doe":5,"doi":27,"done":[10,22],"download":22,"dual":4,"duse_mpi":22,"dvipng":22,"dwith_ndebug":22,"dynam":[2,5,23,25,26],"e":[2,3,4,5,22,23,25,27],"eclfil":14,"ecmor":4,"ecmor2026":21,"edg":22,"egrid":14,"ehystr":2,"either":22,"els":22,"em":26,"email":3,"enabl":[2,27],"end":[2,4,5,27],"energi":0,"enter":2,"enterpris":22,"entri":[2,11,23],"environ":[3,22],"equal":[5,23],"equalreg":4,"equidist":23,"equinor":0,"error":2,"erst":14,"ert":27,"evalu":[2,23],"everest":27,"exampl":[2,3,21,25],"example1":[2,5],"example1_porvproj":5,"example1_pr":5,"example1_wel":[2,5],"example2":5,"except":2,"execut":[1,2,3,5,8,22,23,25,27],"exisit":27,"exist":22,"exmapl":2,"explain":5,"explicit":[4,9,14,23],"expon":2,"exponenti":23,"export":[3,4],"exprecc":[2,3,5,22,23,25,27],"expreccs_dpincreas":5,"expreccs_perfipnum":5,"expreccss":1,"extend":[2,3],"extra":22,"extract":[5,14],"extract_site_bord":[6,9,14],"f":[5,23,27],"face":12,"fals":18,"familiar":3,"fault":[2,13,23,27],"fault_region":2,"fault_sit":2,"featur":[0,27],"fi":22,"fig":27,"fig1":27,"fig10a":27,"fig10bc":27,"fig12a":27,"fig2":27,"fig3b":27,"fig5":27,"fig6a":27,"fig6b":27,"fig8low":27,"fig8upp":27,"fig9":27,"figur":[4,5,15,18,20,22,23,27],"figure1":4,"figure2":4,"figure3_table1":4,"figure4_table2":4,"figure5":4,"figure9a":4,"figure9b":4,"figure9c":4,"fil":10,"file":[1,3,4,11,14,16,20,21,22,23,27],"filenam":18,"filled_model":4,"final":[2,4,5,18,27],"final_time_map":[6,17,18],"final_time_maps_differ":[6,17,18],"find":[13,14],"find_ij_orient":[6,9,14],"find_regional_cel":[6,9,14],"fipnum":[5,23],"fipr":[9,14],"first":[2,4,27],"five":2,"fix":3,"flag":[2,5,23,25],"flat":18,"flexibl":23,"float":14,"flow":[2,3,15,16,20,21,26,27],"flow_maco":3,"fluid":2,"fluidflow":26,"flux":[2,5,10,12,20],"flux_region":10,"flux_sit":10,"fluxnum":4,"focus":23,"fol":[9,14,19,20],"folder":[1,2,3,4,5,10,16,18,20,21,22,23,27],"follow":[2,5,22,23,25,27],"font":22,"fork":[0,3],"format":[3,22],"former":5,"formula":21,"fraction":[2,27],"framework":[2,23,26],"freg":14,"freq":[9,14],"frequenc":23,"friend":5,"fsit":[9,14],"full":2,"function":[2,5,8,10,11,13,15,16,18],"fund":0,"g":[2,3,5,22,23,25],"gas":[2,5],"gasda":[4,27],"general":5,"generat":[1,2,3,4,5,15,23,25,26,27],"generic":[1,23],"geolog":[1,2,5,15,18,23,26],"geological_map":[6,17,18],"get":[3,4,14,19,22,27],"get_bccon":[6,9,14],"get_xymap":[6,9,14],"gif":26,"gind":14,"git":[4,5,22,27],"github":[3,4,5,22,23,27],"give":2,"given":[1,2,5,10,14,23,25],"global":27,"gnuplot2":27,"grade":23,"graphic":4,"grid":[2,5,9,13,14,16,18,22,23,27],"ground":21,"group":2,"h":[2,4,27],"hand":23,"handl":[13,14,20,23],"handle_grid_coord":[6,9,14],"handle_labels_differ":[6,17,19],"handle_labels_dist":[6,17,19],"handle_pressure_correct":[6,9,12],"handle_site_summari":[6,17,19],"handle_stencil":[6,9,12],"handle_stencil_2p":[6,9,12],"harbour":0,"hat":22,"height":2,"hello":[21,25],"hello_world":5,"hello_world_distance_from_bord":5,"hello_world_reference_watfluxi":5,"hello_world_regional_watfluxi":5,"hello_world_sensor_pressure_over_tim":5,"hello_world_site_flux_watfluxi":5,"hello_world_summary_bhp_site_refer":5,"help":[2,3,22],"heterogein":[2,23],"heterogen":5,"higher":2,"hirerch":14,"histori":26,"home":5,"homebrew":22,"homogen":[4,27],"host":23,"html":3,"https":[4,5,22,23,27],"hysteresi":[2,23],"hystopt":2,"id":4,"identifi":23,"ignor":3,"ij":5,"imag":[1,26],"imbibit":2,"imbnum":27,"implement":[2,23],"import":3,"improv":[4,19,23,27],"in_fil":11,"inact":[5,23],"inc":[5,25],"includ":[1,5,14,22,23],"increas":[5,23,27],"ind":[9,14],"index":21,"indic":12,"indiviud":4,"induc":26,"init":[9,14],"init_multipli":[6,9,10],"initi":[2,10],"inj":2,"inject":[2,19],"injector":[2,5],"input":[1,2,5,10,11,23],"inputvalu":[6,9],"insid":[2,5,22],"instal":[3,4,5,21,27],"instead":2,"instruct":22,"int":14,"integr":2,"interest":[2,22,26],"interim":22,"interp":2,"interpdata":[6,9,14],"interpol":[2,5,12,14,25],"introduct":[5,21],"invalid":8,"irregular":23,"isday":14,"issu":[0,21],"iter":[2,10,12,16,27],"iterativli":10,"j":[19,23],"j5":22,"johansen":27,"jump":2,"kept":2,"keyword":2,"kg":2,"killough":2,"km":[5,27],"kr":2,"krn":2,"krw":2,"ksfip":[9,14],"kxi":2,"kz":2,"l":[5,22,23,27],"label":[5,19,25],"landa":[4,27],"later":5,"latex":22,"layer":[2,21,23],"leakag":26,"left":[2,5,14],"length":2,"librari":22,"lim":27,"limipr":27,"limit":[2,27],"line":[2,3,5,19,22],"linear":[2,27],"link":[0,22],"lint":22,"linux":21,"list":14,"literatur":[4,27],"load_pars":[6,7,8],"local":3,"locat":[1,2,4,5,12,13,19,23,27],"log":27,"look":[3,27],"lot":[4,27],"lower":2,"m":[2,5,22,23,27],"machin":[2,22],"maco":[3,21],"macport":22,"mactex":22,"main":[1,3,4,6,7,8,14],"maintain":3,"make":[3,16,22],"make_array":[6,17,20],"mako":[1,16],"mamba":22,"manag":[19,22],"manage_nam":[6,17,18,20],"managua_r":27,"mani":2,"mantain":3,"manual":2,"manuscript":5,"map":[5,12,13,18,19,23],"mapboundari":[6,9],"mapping_properti":[6,9,13],"mapproperti":[6,9],"maps2d":[6,17],"marb\u00e1n":[4,27],"mark":23,"mask":20,"master":22,"match":[4,26,27],"max":[2,19,27],"maximum":[2,27],"md":2,"merg":3,"method":21,"metric":23,"micp":21,"microbi":26,"microsystem":26,"middel":5,"middl":[2,5],"might":[3,22,26,27],"min":[2,27],"miniforg":22,"minimum":5,"miss":[3,5],"mkdir":22,"mli":14,"mlx":14,"model":[1,2,10,15,21,23,25,26,27],"modif":23,"modifi":[22,25],"modul":[1,21,24,26],"mpi":22,"mpirun":[2,27],"mt":2,"mult":10,"multipli":[2,10],"mypi":3,"n":[2,3,5,14,16,23],"name":[2,5,15,16,18,20,23],"ndarray":14,"ndeck":19,"near":26,"necessari":[5,16],"need":[3,12,22,23,27],"neighbour":14,"net":4,"new":[0,3,5],"newton":[2,27],"newtoniterationcount":27,"nfol":19,"nice":[3,22,23],"nkrn":2,"nkrw":2,"non":[2,4,21],"none":[8,14,18,23],"nonregular":[9,14],"norway":0,"norwegian":[4,27],"notat":[14,16],"now":[2,5],"np":[2,27],"npen":2,"npoint":2,"nqua":19,"nquan":19,"nrst":19,"num":2,"number":[0,2,4,10,23,27],"numpi":16,"nwell":19,"nx":[18,23],"ny":[18,23],"o":[5,23,25],"object":14,"observ":2,"obtain":4,"offset":[5,9,14,23],"offshor":[4,27],"one":[2,4,5,25,27],"onli":[2,5,12,23],"onlin":22,"open":[2,22,26],"oper":[2,23],"opernum":[5,25],"opernum_exprecc":[5,25],"opm":[1,2,3,15,16,20,21,26,27],"opmn":19,"oprn":[9,14],"optim":[5,27],"optimal_solut":27,"option":[2,8,22,23],"orchestr":14,"order":2,"org":[22,27],"orginin":27,"orient":14,"origen":2,"origin":27,"output":[2,16,20,21,23],"over_time_dist":[6,17,19],"over_time_max_differ":[6,17,19],"over_time_sensor":[6,17,19],"overlap":[5,25],"overpr":27,"overpressur":27,"overs":18,"overview":[2,21],"p":[5,23,27],"packag":[1,3,5,21,24],"page":[3,5,21],"paper":[4,27],"paper_2025":5,"parallel":27,"paramet":21,"paraview":4,"part":5,"partit":23,"path":[2,3,23],"path_to_the_regional_model":5,"path_to_the_site_model":5,"pc":2,"pcap":2,"pen":2,"per":[2,5,23],"period":2,"perm":[2,4,27],"permeabl":27,"petrel":4,"phi":2,"pi":2,"pip":[3,4,5,22,27],"platform":22,"pleas":[0,3],"plopm":[4,5,21,22,25,27],"plot":[6,9,15,16,17,18,20,23,25],"plot_map":[6,17,18],"plot_result":[6,17,19],"plotting_set":[6,17,19],"plume":5,"png":[1,4,5],"pngs":[5,26],"pofff":21,"point":[2,16,23],"pore":[2,5,12,27],"poro":[4,27],"porv":[2,27],"porv_project":[6,9,12],"porv_regional_segment":[6,9,12],"porvproj":[2,5],"posit":[2,6,13,17,19],"positions_refer":[6,9,13],"positions_region":[6,9,13],"positions_rot":[6,9,13],"positions_sit":[6,9,13],"possibl":[2,3],"postprocess":[4,5,23,25,27],"powerpoint":[4,27],"practic":2,"precipit":26,"precomput":12,"prefer":3,"preprocess":[4,11,23,25],"prerequisit":22,"pres":[2,5,12],"pres2p":2,"prescrib":5,"pressur":[1,2,4,5,12,14,19,23,25,27],"presur":2,"previous":[3,5,22],"problem":21,"proceed":[2,5,27],"process":[1,11,14],"process_input":[6,9,11],"process_tun":[6,9,11],"prod":2,"produc":[2,5],"project":[0,1,2,5,12,14,19,22,23,26],"project_pressur":[6,9,14],"prompt":27,"properti":[2,4,23,27],"provid":4,"prs":3,"public":3,"pull":[0,3],"push":3,"pushd":3,"put":4,"pv":[2,12,27],"pwd":22,"py":[4,5,25,27],"py314":3,"pycopm":[2,3,4,5,21,22,27],"pylint":3,"pymm":21,"pyopmnearwel":21,"pyopmspe11":[3,21],"pytest":[3,5],"python":[3,4,21,26],"python3":[4,22,27],"quantiti":[13,18,19,20],"quick":26,"quotat":23,"r":[2,3,5,22,27],"ract":14,"rais":[0,3],"rate":[2,19],"rday":[9,14],"read":[6,12,17],"read_flux":[6,17,20],"read_mask":[6,17,20],"reading_simul":[6,17,20],"recent":22,"recommend":22,"record":2,"rectangl":[5,23],"red":22,"refer":[1,2,5,13,15,16,18,19,23,25],"reference_x_n":2,"reference_y_n":2,"reference_z_n":2,"refin":[2,5,12],"reg":[12,14],"reg_sit_given_deck":[6,9],"regard":[2,5],"region":[1,2,4,5,6,9,10,12,14,15,19,23,25],"regional_bctyp":2,"regional_dim":2,"regional_sit":23,"regional_x_n":2,"regional_y_n":2,"regional_z_n":2,"regionalcel":[6,9,14],"regul":5,"regular":21,"rel":2,"relat":[3,16,21,25],"relax":[2,27],"releas":22,"remedi":26,"remov":27,"repit":16,"replac":3,"repo":[3,22],"report":[5,21,23],"repositori":[3,22],"reproduc":[4,27],"request":[0,3],"requier":[5,13],"requir":[2,3,22],"requiri":11,"rerun":5,"res":[18,19,20],"research":0,"reservoir":[5,13,16,18,19,21],"reshape_to_2d":[6,17,18],"residu":2,"resinsight":[2,4,5,22,25,27],"resourc":27,"respect":[2,5],"rest":[4,27],"restart":2,"result":[5,21,22,25,27],"results_trol":4,"reusabl":18,"review":3,"rf":[9,14],"rfip":[9,14],"rg":27,"rgrid":14,"ri":[9,14],"right":[2,14],"rinit":14,"rise":3,"rk":[9,14],"rkg":[9,14],"rnxi":14,"robust":18,"rock":[21,23],"rock_comp":2,"rotat":[5,13,23],"rotate_grid":[6,9,13],"routin":[1,16,19],"row":2,"rp":14,"rpr":5,"rrst":14,"rst":[2,9,14,27],"rt":[9,14],"rtmin":[9,14],"ruff":3,"rule":21,"run":[1,2,3,4,5,6,9,16,22,23,25,27],"run_model":[6,9,15],"run_result":4,"rx":[9,14],"ry":[9,14],"rz":[9,14],"s":[2,3,4,5,22,23,25,27],"safu":2,"sai":[9,14],"salin":2,"sand":2,"sandv":[4,27],"sandwich":5,"sat":2,"satur":[2,5,19],"save":[5,16,25,27],"sbc":14,"sbound":[9,14],"schedul":[2,5,23],"screenshot":[2,4,25],"script":[1,3,4,8,12,14,18,20,22],"sdata":[9,14],"sday":14,"sdim":14,"search":21,"second":2,"section":[2,5,23],"see":[2,3,4,5,22,23,25],"seek":21,"select":[5,25],"send":3,"sensor":[2,4,5,19,27],"sensor_coord":2,"septemb":4,"set":[2,4,5,11,13,19,22,23,27],"set1_r":5,"setuptool":22,"sf":[9,14],"sfe":[9,14],"sfip":[9,14],"sfn":[9,14],"sfs":[9,14],"sfw":[9,14],"sgas":5,"sgrid":14,"sh":[4,22],"share":2,"shell":0,"show":[1,2,5,25],"show_colorbar":18,"shut":2,"side":[2,12,23],"similar":[2,27],"simillar":2,"simpl":5,"simpler":2,"simpli":22,"simplic":5,"simplifi":23,"simul":[1,3,4,5,6,9,15,21,22,23,25,26],"sin":2,"sinc":[2,4,27],"singl":3,"sinit":14,"sintef":27,"sit":14,"site":[1,2,5,6,9,10,12,13,14,15,18,19,20,23,25],"site_bctyp":2,"site_clos":[5,25],"site_contour":[6,9,14],"site_loc":2,"sitebord":[6,9,14],"six":[2,3],"size":[2,5],"skip":[22,23,27],"sni":2,"snum":[9,14],"softwar":21,"solut":2,"solver":[25,27],"soon":3,"sopn":[9,14],"sourc":[3,21,26],"space":23,"spe":2,"spe11":26,"specif":22,"speed":2,"spres":[9,14],"squash":3,"src":3,"srst":14,"st":[9,14],"stage":[5,23],"start":[5,14],"statfjord":27,"static":[3,5,18],"ste":[9,14],"step":[2,3,4,22,23,27],"stmin":[9,14],"stn":[9,14],"storag":[4,16,23],"str":14,"string":2,"strip_trailing_digit":[6,17,20],"sts":[9,14],"studi":[2,5,15,26,27],"stw":[9,14],"style":19,"subfig":[5,27],"subfigur":4,"subfold":[23,25],"submit":27,"submodel":5,"submodul":[1,6,24],"subpackag":[1,21,24],"subsystem":22,"succed":22,"succeed":3,"sudo":22,"summari":19,"summary_plot":[6,17,19],"summary_sit":[6,17,19],"super":22,"support":[2,21,22,23],"suptitl":[5,27],"surfac":[2,18,19],"sw":2,"swi":2,"sx":[9,14],"sxe":[9,14],"sxn":[9,14],"sxs":[9,14],"sxw":[9,14],"sy":[9,14],"sye":[9,14],"syl":[9,14],"syn":[9,14],"synthet":21,"system":[2,3],"syw":[9,14],"sz":[9,14],"sze":[9,14],"szn":[9,14],"szs":[9,14],"szw":[9,14],"t":[2,4,23,27],"tabl":4,"table3":4,"tag":22,"tailor":26,"take":27,"tap":22,"target":3,"task":4,"tccs":[3,21],"telescop":23,"temperatur":2,"templat":16,"tempor":14,"temporal_interpol":[6,9,14],"temporal_interpolation_flux":[6,9,12],"temporal_interpolation_pressur":[6,9,12],"term":[3,5],"termin":[5,22],"test":[3,5,22,23],"test_2_generic_deck":5,"test_4_site_region":5,"test_generic_deck":25,"texliv":22,"thick":2,"three":[2,5],"threshold":2,"time":[2,12,23,27],"timestep":[18,23],"titl":18,"to_extract_colorbar_for_figure9":4,"togeth":4,"toler":27,"toml":[2,5,11,23],"tool":[0,3,4,5,22,23,26,27],"top":[2,5,18,19],"total":[4,27],"tracer":25,"tran":[2,27],"translat":27,"transmiss":27,"treatment":4,"tri":[3,22],"troll":[21,27],"true":[2,18,27],"trust":22,"tsmaxz":2,"tug":22,"tune":[2,11],"tupl":14,"turn":22,"tutori":[3,22],"two":[2,5,23],"txt":[3,22],"type":[5,22,26],"u":23,"ubuntu":[3,22],"ufip":14,"unit":18,"updat":[10,23],"upgrad":22,"upper":2,"use":[0,2,3,4,5,16,20,22,23,25,26,27],"user":[2,3,22],"util":[1,6,24],"utiliy":[10,11,12,13,14,15,16],"v":[5,14,27],"v2026":22,"valid":23,"valu":[2,4,5,11,12,16,23,27],"variabl":[2,3,5,14,16],"veloc":5,"venv":22,"version":[3,6,22,27],"vexprecc":22,"via":[2,4,21,22,27],"virtual":22,"visit":3,"visual":[1,2,5,6,22,24,25],"volum":[2,5,12,27],"vtks":26,"w":[2,5,23,27],"water":[2,5],"week":4,"weight":27,"welcom":[0,3],"well":[3,4,5,13,21,23,26,27],"well_coord":2,"wells_sit":[6,17,19],"wet":2,"wheel":22,"whole":23,"width":2,"will":3,"window":21,"without":[2,25],"work":[3,22],"world":[21,25],"write":[2,5,10,14,16,22,23],"write_fil":[6,9,14,16],"write_fold":[6,9,16],"write_folder_it":[6,9,10],"write_grid":[6,9,16],"write_properti":[6,9,16],"writefil":[6,9],"written":[5,23],"wsl":22,"www":22,"x":[2,5,10,14,16,18,27],"x_i":[9,14],"xf":2,"xformat":[5,27],"xi":2,"xlnum":[5,27],"xtick":18,"xunit":[5,27],"xy":23,"xymap":[6,9,14],"xypolygon":5,"xyz":12,"y":[2,5,10,18,22,27],"y_i":[9,14],"year":27,"yes":5,"yf":2,"yformat":[5,27],"yi":2,"ylnum":[5,27],"yml":[3,22,27],"yournam":3,"ytick":18,"yunit":[5,27],"z":[2,5,12,23,27],"z_i":[9,14],"z_xi":2,"zag":2,"zf":2,"zi":2,"zig":2,"zone":[9,14,23]},"titles":["About expreccs","expreccs Python API","Configuration file","Contributing","ECMOR2026","Examples","expreccs package","expreccs.core package","expreccs.core.expreccs module","expreccs.utils package","expreccs.utils.backcoupling module","expreccs.utils.inputvalues module","expreccs.utils.mapboundaries module","expreccs.utils.mapproperties module","expreccs.utils.reg_sit_given_decks module","expreccs.utils.runs module","expreccs.utils.writefile module","expreccs.visualization package","expreccs.visualization.maps2d module","expreccs.visualization.plotting module","expreccs.visualization.reading module","Welcome to the expreccs\u2019s documentation!","Installation","Introduction","expreccs","Output folder","Related","TCCS-13"],"titleterms":{"2d":4,"3d":4,"About":0,"ad":26,"api":1,"aquif":4,"backcoupl":10,"binari":22,"boundari":5,"brew":22,"build":22,"concept":23,"configur":[2,5,25],"content":[6,7,9,17],"contribut":3,"core":[7,8],"deck":[5,25],"document":21,"ecmor2026":4,"exampl":5,"exprecc":[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,24],"file":[2,5,25],"flow":[5,22,25],"folder":25,"formula":22,"ground":3,"hello":5,"indic":21,"inputvalu":11,"instal":22,"introduct":23,"issu":3,"layer":5,"linux":22,"maco":22,"mapboundari":12,"mapproperti":13,"maps2d":18,"method":4,"micp":26,"model":[4,5],"modul":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"non":5,"opm":[5,22,25],"output":25,"overview":23,"packag":[6,7,9,17,22],"paramet":2,"plopm":26,"plot":19,"pofff":26,"problem":3,"pycopm":26,"pymm":26,"pyopmnearwel":26,"pyopmspe11":26,"python":[1,22],"read":20,"reg_sit_given_deck":14,"regular":5,"relat":[2,26],"report":3,"reservoir":2,"result":[2,4],"rock":2,"rule":3,"run":15,"s":21,"seek":3,"simul":2,"softwar":3,"sourc":22,"submodul":[7,9,17],"subpackag":6,"support":3,"synthet":4,"tabl":21,"tccs":27,"troll":4,"util":[9,10,11,12,13,14,15,16],"via":[5,25],"visual":[17,18,19,20],"welcom":21,"well":2,"window":22,"world":5,"writefil":16}})
\ No newline at end of file
+Search.setIndex({"alltitles":{"2D synthetic model":[[4,"d-synthetic-model"]],"3D synthetic model":[[4,"id1"]],"About expreccs":[[0,null]],"Binary packages":[[22,"binary-packages"]],"Brew formula for macOS":[[22,"brew-formula-for-macos"]],"Concept":[[23,"concept"]],"Configuration file":[[2,null]],"Contribute to the software":[[3,"contribute-to-the-software"]],"Contributing":[[3,null]],"ECMOR2026":[[4,null]],"Examples":[[5,null]],"Ground Rules":[[3,"ground-rules"]],"Hello world":[[5,"hello-world"]],"Indices and tables":[[21,"indices-and-tables"]],"Installation":[[22,null]],"Introduction":[[23,null]],"Layered model":[[5,"layered-model"]],"Method":[[4,"method"]],"Module contents":[[6,"module-expreccs"],[7,"module-expreccs.core"],[9,"module-expreccs.utils"],[17,"module-expreccs.visualization"]],"Non-regular boundaries":[[5,"non-regular-boundaries"]],"OPM Flow":[[22,"opm-flow"]],"Output folder":[[25,null]],"Overview":[[23,"overview"]],"Python package":[[22,"python-package"]],"Regular boundaries":[[5,"regular-boundaries"]],"Related":[[26,null]],"Reporting issues or problems":[[3,"reporting-issues-or-problems"]],"Reservoir-related parameters":[[2,"reservoir-related-parameters"]],"Results":[[4,"results"]],"Rock-related parameters":[[2,"rock-related-parameters"]],"Seek support":[[3,"seek-support"]],"Simulation results":[[2,"simulation-results"]],"Source build in Linux/Windows":[[22,"source-build-in-linux-windows"]],"Source build in macOS":[[22,"source-build-in-macos"]],"Submodules":[[7,"submodules"],[9,"submodules"],[17,"submodules"]],"Subpackages":[[6,"subpackages"]],"TCCS-13":[[27,null]],"Troll aquifer model":[[4,"troll-aquifer-model"]],"Via OPM Flow decks":[[5,"via-opm-flow-decks"],[25,"via-opm-flow-decks"]],"Via configuration files":[[5,"via-configuration-files"],[25,"via-configuration-files"]],"Welcome to the expreccs\u2019s documentation!":[[21,null]],"Well-related parameters":[[2,"well-related-parameters"]],"ad-micp":[[26,"ad-micp"]],"expreccs":[[1,"expreccs"],[24,null]],"expreccs Python API":[[1,null]],"expreccs package":[[6,null]],"expreccs.core package":[[7,null]],"expreccs.core.expreccs module":[[8,null]],"expreccs.utils package":[[9,null]],"expreccs.utils.backcoupling module":[[10,null]],"expreccs.utils.inputvalues module":[[11,null]],"expreccs.utils.mapboundaries module":[[12,null]],"expreccs.utils.mapproperties module":[[13,null]],"expreccs.utils.reg_sit_given_decks module":[[14,null]],"expreccs.utils.runs module":[[15,null]],"expreccs.utils.writefile module":[[16,null]],"expreccs.visualization package":[[17,null]],"expreccs.visualization.maps2d module":[[18,null]],"expreccs.visualization.plotting module":[[19,null]],"expreccs.visualization.reading module":[[20,null]],"plopm":[[26,"plopm"]],"pofff":[[26,"pofff"]],"pycopm":[[26,"pycopm"]],"pymm":[[26,"pymm"]],"pyopmnearwell":[[26,"pyopmnearwell"]],"pyopmspe11":[[26,"pyopmspe11"]]},"docnames":["about","api","configuration_file","contributing","ecmor2026","examples","expreccs","expreccs.core","expreccs.core.expreccs","expreccs.utils","expreccs.utils.backcoupling","expreccs.utils.inputvalues","expreccs.utils.mapboundaries","expreccs.utils.mapproperties","expreccs.utils.reg_sit_given_decks","expreccs.utils.runs","expreccs.utils.writefile","expreccs.visualization","expreccs.visualization.maps2d","expreccs.visualization.plotting","expreccs.visualization.reading","index","installation","introduction","modules","output_folder","related","tccs-13"],"envversion":{"sphinx":66,"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","ecmor2026.rst","examples.rst","expreccs.rst","expreccs.core.rst","expreccs.core.expreccs.rst","expreccs.utils.rst","expreccs.utils.backcoupling.rst","expreccs.utils.inputvalues.rst","expreccs.utils.mapboundaries.rst","expreccs.utils.mapproperties.rst","expreccs.utils.reg_sit_given_decks.rst","expreccs.utils.runs.rst","expreccs.utils.writefile.rst","expreccs.visualization.rst","expreccs.visualization.maps2d.rst","expreccs.visualization.plotting.rst","expreccs.visualization.reading.rst","index.rst","installation.rst","introduction.rst","modules.rst","output_folder.rst","related.rst","tccs-13.rst"],"indexentries":{},"objects":{"":[[6,0,0,"-","expreccs"]],"expreccs":[[7,0,0,"-","core"],[9,0,0,"-","utils"],[17,0,0,"-","visualization"]],"expreccs.core":[[8,0,0,"-","expreccs"]],"expreccs.core.expreccs":[[8,1,1,"","check_cmdargs"],[8,1,1,"","load_parser"],[8,1,1,"","main"]],"expreccs.utils":[[10,0,0,"-","backcoupling"],[11,0,0,"-","inputvalues"],[12,0,0,"-","mapboundaries"],[13,0,0,"-","mapproperties"],[14,0,0,"-","reg_sit_given_decks"],[15,0,0,"-","runs"],[16,0,0,"-","writefile"]],"expreccs.utils.backcoupling":[[10,1,1,"","backcoupling"],[10,1,1,"","compute_multipliers"],[10,1,1,"","init_multipliers"],[10,1,1,"","write_folder_iter"]],"expreccs.utils.inputvalues":[[11,1,1,"","check_entries"],[11,1,1,"","process_input"],[11,1,1,"","process_tuning"]],"expreccs.utils.mapboundaries":[[12,1,1,"","aquaflux"],[12,1,1,"","cache_grid_coordinates"],[12,1,1,"","handle_pressure_correction"],[12,1,1,"","handle_stencil"],[12,1,1,"","handle_stencil_2p"],[12,1,1,"","porv_projections"],[12,1,1,"","porv_regional_segmentation"],[12,1,1,"","temporal_interpolation_flux"],[12,1,1,"","temporal_interpolation_pressure"]],"expreccs.utils.mapproperties":[[13,1,1,"","mapping_properties"],[13,1,1,"","positions_reference"],[13,1,1,"","positions_regional"],[13,1,1,"","positions_rotation"],[13,1,1,"","positions_site"],[13,1,1,"","rotate_grid"]],"expreccs.utils.reg_sit_given_decks":[[14,2,1,"","BCCon"],[14,2,1,"","Borders"],[14,2,1,"","Config"],[14,2,1,"","InterpData"],[14,2,1,"","Regional"],[14,2,1,"","RegionalCells"],[14,2,1,"","Site"],[14,2,1,"","SiteBorders"],[14,2,1,"","XYMaps"],[14,1,1,"","check_regional_neighbours"],[14,1,1,"","compact_format_numeric"],[14,1,1,"","create_deck"],[14,1,1,"","extract_site_borders"],[14,1,1,"","find_ij_orientation"],[14,1,1,"","find_regional_cells"],[14,1,1,"","get_bccon"],[14,1,1,"","get_xymaps"],[14,1,1,"","handle_grid_coord"],[14,1,1,"","project_pressures"],[14,1,1,"","site_contour"],[14,1,1,"","temporal_interpolation"],[14,1,1,"","write_files"]],"expreccs.utils.reg_sit_given_decks.BCCon":[[14,3,1,"","coords"],[14,3,1,"","ksfips"],[14,3,1,"","sbound"],[14,3,1,"","sopn"],[14,3,1,"","spres"],[14,3,1,"","stmin"]],"expreccs.utils.reg_sit_given_decks.Borders":[[14,3,1,"","sai"],[14,3,1,"","sbound"],[14,3,1,"","sf"],[14,3,1,"","st"],[14,3,1,"","sx"],[14,3,1,"","sy"],[14,3,1,"","sz"]],"expreccs.utils.reg_sit_given_decks.Config":[[14,3,1,"","acoeff"],[14,3,1,"","boundaries"],[14,3,1,"","explicit"],[14,3,1,"","fol"],[14,3,1,"","freq"],[14,3,1,"","fsit"],[14,3,1,"","nonregular"],[14,3,1,"","zones"]],"expreccs.utils.reg_sit_given_decks.InterpData":[[14,3,1,"","rf"],[14,3,1,"","ri"],[14,3,1,"","rk"],[14,3,1,"","rkg"],[14,3,1,"","rt"],[14,3,1,"","rx"],[14,3,1,"","ry"],[14,3,1,"","rz"],[14,3,1,"","sai"],[14,3,1,"","sf"],[14,3,1,"","snum"],[14,3,1,"","st"],[14,3,1,"","sx"],[14,3,1,"","sy"],[14,3,1,"","sz"]],"expreccs.utils.reg_sit_given_decks.Regional":[[14,3,1,"","act"],[14,3,1,"","grid"],[14,3,1,"","init"],[14,3,1,"","rdays"],[14,3,1,"","rfip"],[14,3,1,"","rst"]],"expreccs.utils.reg_sit_given_decks.RegionalCells":[[14,3,1,"","rf"],[14,3,1,"","ri"],[14,3,1,"","rk"],[14,3,1,"","rkg"],[14,3,1,"","rt"],[14,3,1,"","rx"],[14,3,1,"","ry"],[14,3,1,"","rz"],[14,3,1,"","sbound"]],"expreccs.utils.reg_sit_given_decks.Site":[[14,3,1,"","grid"],[14,3,1,"","init"],[14,3,1,"","rst"],[14,3,1,"","sdata"],[14,3,1,"","sfip"]],"expreccs.utils.reg_sit_given_decks.SiteBorders":[[14,3,1,"","sai"],[14,3,1,"","sbound"],[14,3,1,"","sfe"],[14,3,1,"","sfn"],[14,3,1,"","sfs"],[14,3,1,"","sfw"],[14,3,1,"","spres"],[14,3,1,"","ste"],[14,3,1,"","stn"],[14,3,1,"","sts"],[14,3,1,"","stw"],[14,3,1,"","sxe"],[14,3,1,"","sxn"],[14,3,1,"","sxs"],[14,3,1,"","sxw"],[14,3,1,"","sye"],[14,3,1,"","syl"],[14,3,1,"","syn"],[14,3,1,"","syw"],[14,3,1,"","sze"],[14,3,1,"","szn"],[14,3,1,"","szs"],[14,3,1,"","szw"]],"expreccs.utils.reg_sit_given_decks.XYMaps":[[14,3,1,"","fipr"],[14,3,1,"","inds"],[14,3,1,"","offset"],[14,3,1,"","oprn"],[14,3,1,"","rtmin"],[14,3,1,"","x_i"],[14,3,1,"","y_i"],[14,3,1,"","z_i"]],"expreccs.utils.runs":[[15,1,1,"","plotting"],[15,1,1,"","run_models"],[15,1,1,"","simulations"]],"expreccs.utils.writefile":[[16,1,1,"","compact_format"],[16,1,1,"","write_files"],[16,1,1,"","write_folders"],[16,1,1,"","write_grid"],[16,1,1,"","write_properties"]],"expreccs.visualization":[[18,0,0,"-","maps2d"],[19,0,0,"-","plotting"],[20,0,0,"-","reading"]],"expreccs.visualization.maps2d":[[18,1,1,"","final_time_maps"],[18,1,1,"","final_time_maps_difference"],[18,1,1,"","geological_maps"],[18,1,1,"","manage_name"],[18,1,1,"","plot_map"],[18,1,1,"","reshape_to_2d"]],"expreccs.visualization.plotting":[[19,1,1,"","handle_labels_difference"],[19,1,1,"","handle_labels_distance"],[19,1,1,"","handle_site_summary"],[19,1,1,"","over_time_distance"],[19,1,1,"","over_time_max_difference"],[19,1,1,"","over_time_sensor"],[19,1,1,"","plot_results"],[19,1,1,"","plotting_settings"],[19,1,1,"","positions"],[19,1,1,"","summary_plot"],[19,1,1,"","summary_site"],[19,1,1,"","wells_site"]],"expreccs.visualization.reading":[[20,1,1,"","define_cases"],[20,1,1,"","make_arrays"],[20,1,1,"","manage_names"],[20,1,1,"","read_fluxes"],[20,1,1,"","read_mask"],[20,1,1,"","reading_simulations"],[20,1,1,"","strip_trailing_digits"]]},"objnames":{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"]},"objtypes":{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute"},"terms":{"00e":2,"05e3":5,"0f":[5,27],"0pressur":27,"10e3":5,"11423e":2,"11th":2,"15e3":5,"193531e":2,"1d":19,"1e":[2,27],"1e0":27,"1e1":2,"1e2":2,"1e3":2,"1e4":2,"1e5":2,"1e6":2,"1e7":2,"1e8":2,"1f":[5,27],"24e3":5,"2d":[18,19,21],"2e2":2,"2f":27,"3060e":2,"33e3":5,"3b":27,"3d":21,"3e5":2,"50e3":5,"55e3":5,"5c":4,"5d":4,"5e6":2,"605e6":27,"60e3":5,"63e":2,"80e3":5,"99e":2,"A":[10,26,27],"About":21,"After":27,"All":5,"An":[3,26],"Below":[5,26],"Both":2,"For":[0,2,3,5,22,27],"Here":[0,2,4,5,27],"If":[2,5,8,22],"In":[2,3,5,23,25],"The":[0,1,2,3,4,5,8,22,23,25,27],"Then":[2,4,5,22,25,27],"There":22,"This":[5,10,23],"To":[2,4,5,14,22,27],"We":[2,3,5],"While":22,"You":[4,5,22,27],"_":[10,27],"_build":3,"_of_input_fil":23,"abl":22,"abov":[2,27],"accept":3,"achiev":[2,5],"acoeff":[9,14],"act":[9,14],"action":[3,22],"activ":[2,4,22,27],"actual":[4,27],"ad":21,"adapt":[4,27],"add":[2,3,4,5,10,22,23,25,27],"addit":[1,2,3,5,25],"allow":[2,27],"along":[2,5,23],"also":[2,3,5,22,25],"altern":3,"anaconda":22,"analys":3,"analysi":3,"ani":[2,3,5],"anim":5,"anoth":[5,22],"answer":3,"api":21,"appear":4,"appli":5,"applic":5,"approach":[0,2,3,5,14,23,27],"apt":22,"aquaflux":[6,9,12],"aquif":[2,21,27],"argument":[2,8,23],"argv":8,"array":[2,18,23],"array_1d":18,"assess":2,"assign":4,"auto":3,"avail":[2,22],"averag":27,"avoid":2,"b":[23,27],"back":[10,20],"backcoupl":[6,9],"bar":[2,4,27],"base":[5,10,14,23,26],"bash":4,"bc":[2,5,12,23,25],"bccon":[6,9,14,25],"bcs":23,"becom":23,"befor":[3,4,27],"benchmark":26,"better":19,"bfebf2":27,"bhp":[2,19],"bhps":5,"bin":[2,3,22],"binari":[3,21],"black":[3,27],"bool":14,"border":[6,9,14,19],"bottom":[2,5],"boundari":[2,8,9,12,14,21,23,25],"box":2,"branch":22,"brew":21,"brg":27,"build":[2,3,5,21],"build_opm_mpi":22,"built":22,"c":[2,5,23,27],"cache_grid_coordin":[6,9,12],"calcit":26,"call":[5,25],"can":[2,3,4,5,22,25,27],"capabl":2,"capillari":2,"carlson":2,"case":[5,20],"cbsfax":[5,27],"cd":22,"cell":[2,4,5,12,14,19,23,25,27],"center":[12,19],"cet_diverging_rainbow_bgymr_45_85_c67":27,"cfd":26,"cformat":[5,27],"chang":[2,3,5],"check":[3,8,11,14,22,26],"check_cmdarg":[6,7,8],"check_entri":[6,9,11],"check_regional_neighbour":[6,9,14],"checker":3,"checkout":22,"chosen":2,"ci":[3,22],"ci_pycopm_maco":3,"clabel":27,"class":14,"clone":22,"close":2,"closest":[2,19],"cm":22,"cmake":22,"cmap":18,"cmdarg":8,"cnum":27,"cnv":27,"co2":[2,4,5,23,26],"coarsen":[4,27],"coarsened_improv":27,"coarsened_perm":27,"coarsened_tran":27,"coarser":2,"code":[3,6,22],"coeffici":23,"collabor":3,"color":[4,19],"com":[4,5,22,23,27],"combin":8,"command":[2,5,8,22,27],"commit":3,"common":[4,22,27],"communic":4,"compact_format":[6,9,16],"compact_format_numer":[6,9,14],"compar":[2,5,23,25],"comparison":[1,5,8],"compens":10,"complex":5,"comprehens":4,"compress":2,"comput":[2,10],"compute_multipli":[6,9,10],"concept":21,"condit":[2,5,23,25],"config":[5,6,9,14],"configur":[1,8,11,21,23],"conform":23,"connect":[4,23,25],"consid":[2,5],"contact":[4,27],"contain":[1,3],"content":[1,3,21,24],"continu":2,"contour":[14,23],"contribut":[0,21,22],"control":[2,27],"convert":18,"cook":27,"coord":[9,14],"coordin":[2,14],"copi":[3,22],"core":[1,4,6,24,27],"corner":[2,16,23],"correct":12,"correspond":[1,2,5,23,25],"council":0,"coupl":[10,20],"cov":[3,5],"cover":8,"cp":2,"cpg":[2,23],"cpr_trueimp":27,"creat":[3,4,5,14,22,23,25],"create_deck":[6,9,14],"csp":[2,26],"cssr":[4,5,22,23,27],"curious":5,"current":[22,23,27],"current_directori":22,"curv":2,"d":[2,4,5,27],"d_z":14,"data":[4,5,14,18,27],"day":[2,5],"dcmake_build_typ":22,"dday":14,"de":25,"deactiv":2,"deck":[1,2,4,14,20,21,23,27],"dedic":22,"default":[2,23],"defin":[2,5,23],"define_cas":[6,17,20],"definit":[2,25],"delax":[5,27],"demonstr":5,"depend":[3,22,27],"depth":[2,27],"describ":[2,3,4,23,27],"desir":2,"detail":0,"dev":[3,22],"develop":[22,23],"dic":[10,11,12,13,15,16,18,19,20],"dict":8,"differ":[1,2,5,10,12,13,18,19,23,25],"digit":20,"dimens":[2,4,27],"dir":[2,12],"dire":14,"direct":[2,5,25],"director":[4,27],"directori":[3,23],"discret":[2,8,23],"distanc":[5,19],"dmar":2,"doc":3,"docs_hello_world":5,"docs_non":5,"docs_regular_boundari":5,"document":[2,3,22,23,25],"doe":5,"doi":27,"done":[10,22],"download":22,"dual":4,"duse_mpi":22,"dvipng":22,"dwith_ndebug":22,"dynam":[2,5,23,25,26],"e":[2,3,4,5,22,23,25,27],"eclfil":14,"ecmor":4,"ecmor2026":21,"edg":22,"egrid":14,"ehystr":2,"either":22,"els":22,"em":26,"email":3,"enabl":[2,27],"end":[2,4,5,27],"energi":0,"enter":2,"enterpris":22,"entri":[2,11,23],"environ":[3,22],"equal":[5,23],"equalreg":4,"equidist":23,"equinor":0,"error":2,"erst":14,"ert":27,"evalu":[2,23],"everest":27,"exampl":[2,3,21,25],"example1":[2,5],"example1_porvproj":5,"example1_pr":5,"example1_wel":[2,5],"example2":5,"except":2,"execut":[1,2,3,5,8,22,23,25,27],"exisit":27,"exist":22,"exmapl":2,"explain":5,"explicit":[4,9,14,23],"expon":2,"exponenti":23,"export":[3,4],"exprecc":[2,3,5,22,23,25,27],"expreccs_dpincreas":5,"expreccs_perfipnum":5,"expreccss":1,"extend":[2,3],"extra":22,"extract":[5,14],"extract_site_bord":[6,9,14],"f":[5,23,27],"face":12,"fals":18,"familiar":3,"fault":[2,13,23,27],"fault_region":2,"fault_sit":2,"featur":[0,27],"fi":22,"fig":27,"fig1":27,"fig10a":27,"fig10bc":27,"fig12a":27,"fig2":27,"fig3b":27,"fig5":27,"fig6a":27,"fig6b":27,"fig8low":27,"fig8upp":27,"fig9":27,"figur":[4,5,15,18,20,22,23,27],"figure1":4,"figure2":4,"figure3_table1":4,"figure4_table2":4,"figure5":4,"figure9a":4,"figure9b":4,"figure9c":4,"fil":10,"file":[1,3,4,11,14,16,20,21,22,23,27],"filenam":18,"filled_model":4,"final":[2,4,5,18,27],"final_time_map":[6,17,18],"final_time_maps_differ":[6,17,18],"find":[13,14],"find_ij_orient":[6,9,14],"find_regional_cel":[6,9,14],"fipnum":[5,23],"fipr":[9,14],"first":[2,4,27],"five":2,"fix":3,"flag":[2,5,23,25],"flat":18,"flexibl":23,"float":14,"flow":[2,3,15,16,20,21,26,27],"flow_maco":3,"fluid":2,"fluidflow":26,"flux":[2,5,10,12,20],"flux_region":10,"flux_sit":10,"fluxnum":4,"focus":23,"fol":[9,14,19,20],"folder":[1,2,3,4,5,8,10,16,18,20,21,22,23,27],"follow":[2,5,22,23,25,27],"font":22,"fork":[0,3],"format":[3,22],"former":5,"formula":21,"fraction":[2,27],"framework":[2,23,26],"freg":14,"freq":[9,14],"frequenc":[8,23],"friend":5,"fsit":[9,14],"full":2,"function":[2,5,8,10,11,13,15,16,18],"fund":0,"g":[2,3,5,22,23,25],"gas":[2,5],"gasda":[4,27],"general":5,"generat":[1,2,3,4,5,15,23,25,26,27],"generic":[1,23],"geolog":[1,2,5,15,18,23,26],"geological_map":[6,17,18],"get":[3,4,14,19,22,27],"get_bccon":[6,9,14],"get_xymap":[6,9,14],"gif":26,"gind":14,"git":[4,5,22,27],"github":[3,4,5,22,23,27],"give":2,"given":[1,2,5,10,14,23,25],"global":27,"gnuplot2":27,"grade":23,"graphic":4,"grid":[2,5,9,13,14,16,18,22,23,27],"ground":21,"group":2,"h":[2,4,27],"hand":23,"handl":[13,14,20,23],"handle_grid_coord":[6,9,14],"handle_labels_differ":[6,17,19],"handle_labels_dist":[6,17,19],"handle_pressure_correct":[6,9,12],"handle_site_summari":[6,17,19],"handle_stencil":[6,9,12],"handle_stencil_2p":[6,9,12],"harbour":0,"hat":22,"height":2,"hello":[21,25],"hello_world":5,"hello_world_distance_from_bord":5,"hello_world_reference_watfluxi":5,"hello_world_regional_watfluxi":5,"hello_world_sensor_pressure_over_tim":5,"hello_world_site_flux_watfluxi":5,"hello_world_summary_bhp_site_refer":5,"help":[2,3,22],"heterogein":[2,23],"heterogen":5,"higher":2,"hirerch":14,"histori":26,"home":5,"homebrew":22,"homogen":[4,27],"host":23,"html":3,"https":[4,5,22,23,27],"hysteresi":[2,23],"hystopt":2,"id":4,"identifi":23,"ignor":3,"ij":5,"imag":[1,26],"imbibit":2,"imbnum":27,"implement":[2,23],"import":3,"improv":[4,19,23,27],"in_fil":11,"inact":[5,23],"inc":[5,25],"includ":[1,5,14,22,23],"incompat":8,"increas":[5,23,27],"ind":[9,14],"index":21,"indic":12,"indiviud":4,"induc":26,"init":[9,14],"init_multipli":[6,9,10],"initi":[2,10],"inj":2,"inject":[2,19],"injector":[2,5],"input":[1,2,5,8,10,11,23],"inputvalu":[6,9],"insid":[2,5,22],"instal":[3,4,5,21,27],"instead":2,"instruct":22,"int":14,"integr":2,"interest":[2,22,26],"interim":22,"interp":2,"interpdata":[6,9,14],"interpol":[2,5,12,14,25],"introduct":[5,21],"invalid":8,"irregular":23,"isday":14,"issu":[0,21],"iter":[2,10,12,16,27],"iterativli":10,"j":[19,23],"j5":22,"johansen":27,"jump":2,"kept":2,"keyword":2,"kg":2,"killough":2,"km":[5,27],"kr":2,"krn":2,"krw":2,"ksfip":[9,14],"kxi":2,"kz":2,"l":[5,22,23,27],"label":[5,19,25],"landa":[4,27],"later":5,"latex":22,"layer":[2,21,23],"leakag":26,"left":[2,5,14],"length":2,"librari":22,"lim":27,"limipr":27,"limit":[2,27],"line":[2,3,5,8,19,22],"linear":[2,27],"link":[0,22],"lint":22,"linux":21,"list":14,"literatur":[4,27],"load_pars":[6,7,8],"local":3,"locat":[1,2,4,5,12,13,19,23,27],"log":27,"look":[3,27],"lot":[4,27],"lower":2,"m":[2,5,22,23,27],"machin":[2,22],"maco":[3,21],"macport":22,"mactex":22,"main":[1,3,4,6,7,8,14],"maintain":3,"make":[3,16,22],"make_array":[6,17,20],"mako":[1,16],"mamba":22,"manag":[19,22],"manage_nam":[6,17,18,20],"managua_r":27,"mani":2,"mantain":3,"manual":2,"manuscript":5,"map":[5,12,13,18,19,23],"mapboundari":[6,9],"mapping_properti":[6,9,13],"mapproperti":[6,9],"maps2d":[6,17],"marb\u00e1n":[4,27],"mark":23,"mask":20,"master":22,"match":[4,26,27],"max":[2,19,27],"maximum":[2,27],"md":2,"merg":3,"method":21,"metric":23,"micp":21,"microbi":26,"microsystem":26,"middel":5,"middl":[2,5],"might":[3,22,26,27],"min":[2,27],"miniforg":22,"minimum":5,"miss":[3,5],"mkdir":22,"mli":14,"mlx":14,"mode":8,"model":[1,2,8,10,15,21,23,25,26,27],"modif":23,"modifi":[22,25],"modul":[1,21,24,26],"mpi":22,"mpirun":[2,27],"mt":2,"mult":10,"multipli":[2,10],"mypi":3,"n":[2,3,5,14,16,23],"name":[2,5,8,15,16,18,20,23],"ndarray":14,"ndeck":19,"near":26,"necessari":[5,16],"need":[3,12,22,23,27],"neighbour":14,"net":4,"new":[0,3,5],"newton":[2,27],"newtoniterationcount":27,"nfol":19,"nice":[3,22,23],"nkrn":2,"nkrw":2,"non":[2,4,21],"none":[8,14,18,23],"nonregular":[9,14],"norway":0,"norwegian":[4,27],"notat":[14,16],"now":[2,5],"np":[2,27],"npen":2,"npoint":2,"nqua":19,"nquan":19,"nrst":19,"num":2,"number":[0,2,4,10,23,27],"numpi":16,"nwell":19,"nx":[18,23],"ny":[18,23],"o":[5,23,25],"object":14,"observ":2,"obtain":4,"offset":[5,9,14,23],"offshor":[4,27],"one":[2,4,5,25,27],"onli":[2,5,12,23],"onlin":22,"open":[2,22,26],"oper":[2,8,23],"opernum":[5,25],"opernum_exprecc":[5,25],"opm":[1,2,3,15,16,20,21,26,27],"opmn":19,"oprn":[9,14],"optim":[5,27],"optimal_solut":27,"option":[2,8,22,23],"orchestr":14,"order":2,"org":[22,27],"orginin":27,"orient":14,"origen":2,"origin":27,"output":[2,8,16,20,21,23],"over_time_dist":[6,17,19],"over_time_max_differ":[6,17,19],"over_time_sensor":[6,17,19],"overlap":[5,25],"overpr":27,"overpressur":27,"overs":18,"overview":[2,21],"p":[5,23,27],"packag":[1,3,5,21,24],"page":[3,5,21],"paper":[4,27],"paper_2025":5,"parallel":27,"paramet":[8,21],"paraview":4,"pars":8,"part":5,"partit":23,"path":[2,3,23],"path_to_the_regional_model":5,"path_to_the_site_model":5,"pc":2,"pcap":2,"pen":2,"per":[2,5,23],"period":2,"perm":[2,4,27],"permeabl":27,"petrel":4,"phi":2,"pi":2,"pip":[3,4,5,22,27],"platform":22,"pleas":[0,3],"plopm":[4,5,21,22,25,27],"plot":[6,9,15,16,17,18,20,23,25],"plot_map":[6,17,18],"plot_result":[6,17,19],"plotting_set":[6,17,19],"plume":5,"png":[1,4,5],"pngs":[5,26],"pofff":21,"point":[2,16,23],"pore":[2,5,12,27],"poro":[4,27],"porv":[2,27],"porv_project":[6,9,12],"porv_regional_segment":[6,9,12],"porvproj":[2,5],"posit":[2,6,13,17,19],"positions_refer":[6,9,13],"positions_region":[6,9,13],"positions_rot":[6,9,13],"positions_sit":[6,9,13],"possibl":[2,3],"postprocess":[4,5,23,25,27],"powerpoint":[4,27],"practic":2,"precipit":26,"precomput":12,"prefer":3,"preprocess":[4,11,23,25],"prerequisit":22,"pres":[2,5,12],"pres2p":2,"prescrib":5,"pressur":[1,2,4,5,12,14,19,23,25,27],"presur":2,"previous":[3,5,22],"problem":21,"proceed":[2,5,27],"process":[1,11,14],"process_input":[6,9,11],"process_tun":[6,9,11],"prod":2,"produc":[2,5],"project":[0,1,2,5,12,14,19,22,23,26],"project_pressur":[6,9,14],"prompt":27,"properti":[2,4,23,27],"provid":4,"prs":3,"public":3,"pull":[0,3],"push":3,"pushd":3,"put":4,"pv":[2,12,27],"pwd":22,"py":[4,5,25,27],"py314":3,"pycopm":[2,3,4,5,21,22,27],"pylint":3,"pymm":21,"pyopmnearwel":21,"pyopmspe11":[3,21],"pytest":[3,5],"python":[3,4,21,26],"python3":[4,22,27],"quantiti":[13,18,19,20],"quick":26,"quotat":23,"r":[2,3,5,22,27],"ract":14,"rais":[0,3,8],"rate":[2,19],"rday":[9,14],"read":[6,12,17],"read_flux":[6,17,20],"read_mask":[6,17,20],"reading_simul":[6,17,20],"recent":22,"recommend":22,"record":2,"rectangl":[5,23],"red":22,"refer":[1,2,5,13,15,16,18,19,23,25],"reference_x_n":2,"reference_y_n":2,"reference_z_n":2,"refin":[2,5,12],"reg":[12,14],"reg_sit_given_deck":[6,9],"regard":[2,5],"region":[1,2,4,5,6,9,10,12,14,15,19,23,25],"regional_bctyp":2,"regional_dim":2,"regional_sit":23,"regional_x_n":2,"regional_y_n":2,"regional_z_n":2,"regionalcel":[6,9,14],"regul":5,"regular":21,"regular_boundari":5,"rel":2,"relat":[3,16,21,25],"relax":[2,27],"releas":22,"remedi":26,"remov":27,"repit":16,"replac":3,"repo":[3,22],"report":[5,21,23],"repositori":[3,22],"reproduc":[4,27],"request":[0,3,8],"requier":[5,13],"requir":[2,3,8,22],"requiri":11,"rerun":5,"res":[18,19,20],"research":0,"reservoir":[5,13,16,18,19,21],"reshape_to_2d":[6,17,18],"residu":2,"resinsight":[2,4,5,22,25,27],"resourc":27,"respect":[2,5],"rest":[4,27],"restart":2,"result":[5,21,22,25,27],"results_trol":4,"return":8,"reusabl":18,"review":3,"rf":[9,14],"rfip":[9,14],"rg":27,"rgrid":14,"ri":[9,14],"right":[2,14],"rinit":14,"rise":3,"rk":[9,14],"rkg":[9,14],"rnxi":14,"robust":18,"rock":[21,23],"rock_comp":2,"rotat":[5,8,13,23],"rotate_grid":[6,9,13],"routin":[1,16,19],"row":2,"rp":14,"rpr":5,"rrst":14,"rst":[2,9,14,27],"rt":[9,14],"rtmin":[9,14],"ruff":3,"rule":21,"run":[1,2,3,4,5,6,9,16,22,23,25,27],"run_model":[6,9,15],"run_result":4,"rx":[9,14],"ry":[9,14],"rz":[9,14],"s":[2,3,4,5,22,23,25,27],"safu":2,"sai":[9,14],"salin":2,"sand":2,"sandv":[4,27],"sandwich":5,"sat":2,"satur":[2,5,19],"save":[5,16,25,27],"sbc":14,"sbound":[9,14],"schedul":[2,5,23],"screenshot":[2,4,25],"script":[1,3,4,5,8,12,14,18,20,22],"sdata":[9,14],"sday":14,"sdim":14,"search":21,"second":2,"section":[2,5,23],"see":[2,3,4,5,22,23,25],"seek":21,"select":[5,25],"send":3,"sensor":[2,4,5,19,27],"sensor_coord":2,"septemb":4,"set":[2,4,5,11,13,19,22,23,27],"set1_r":5,"setuptool":22,"sf":[9,14],"sfe":[9,14],"sfip":[9,14],"sfn":[9,14],"sfs":[9,14],"sfw":[9,14],"sgas":5,"sgrid":14,"sh":[4,5,22],"share":2,"shell":0,"show":[1,2,5,25],"show_colorbar":18,"shut":2,"side":[2,12,23],"similar":[2,27],"simillar":2,"simpl":5,"simpler":2,"simpli":22,"simplic":5,"simplifi":23,"simul":[1,3,4,5,6,9,15,21,22,23,25,26],"sin":2,"sinc":[2,4,27],"singl":3,"sinit":14,"sintef":27,"sit":14,"site":[1,2,5,6,9,10,12,13,14,15,18,19,20,23,25],"site_bctyp":2,"site_clos":[5,25],"site_contour":[6,9,14],"site_loc":2,"sitebord":[6,9,14],"six":[2,3],"size":[2,5],"skip":[22,23,27],"sni":2,"snum":[9,14],"softwar":21,"solut":2,"solver":[25,27],"soon":3,"sopn":[9,14],"sourc":[3,21,26],"space":23,"spe":2,"spe11":26,"specif":[8,22],"speed":2,"spres":[9,14],"squash":3,"src":3,"srst":14,"st":[9,14],"stage":[5,23],"start":[5,14],"statfjord":27,"static":[3,5,18],"ste":[9,14],"step":[2,3,4,5,22,23,27],"stmin":[9,14],"stn":[9,14],"storag":[4,16,23],"str":[8,14],"string":2,"strip_trailing_digit":[6,17,20],"structur":8,"sts":[9,14],"studi":[2,5,15,26,27],"stw":[9,14],"style":19,"subfig":[5,27],"subfigur":4,"subfold":[8,23,25],"submit":27,"submodel":5,"submodul":[1,6,24],"subpackag":[1,21,24],"subsystem":22,"succed":22,"succeed":3,"sudo":22,"summari":19,"summary_plot":[6,17,19],"summary_sit":[6,17,19],"super":22,"support":[2,21,22,23],"suptitl":[5,27],"surfac":[2,18,19],"sw":2,"swi":2,"sx":[9,14],"sxe":[9,14],"sxn":[9,14],"sxs":[9,14],"sxw":[9,14],"sy":[9,14],"sye":[9,14],"syl":[9,14],"syn":[9,14],"synthet":21,"system":[2,3],"systemexit":8,"syw":[9,14],"sz":[9,14],"sze":[9,14],"szn":[9,14],"szs":[9,14],"szw":[9,14],"t":[2,4,23,27],"tabl":4,"table3":4,"tag":22,"tailor":26,"take":27,"tap":22,"target":3,"task":4,"tccs":[3,21],"telescop":23,"temperatur":2,"templat":16,"tempor":14,"temporal_interpol":[6,9,14],"temporal_interpolation_flux":[6,9,12],"temporal_interpolation_pressur":[6,9,12],"term":[3,5],"termin":[5,22],"test":[3,5,22,23],"test_2_generic_deck":5,"test_4_site_region":5,"test_generic_deck":25,"texliv":22,"thick":2,"three":[2,5],"threshold":2,"time":[2,8,12,23,27],"timestep":[18,23],"titl":18,"to_extract_colorbar_for_figure9":4,"togeth":4,"toler":27,"toml":[2,5,11,23],"tool":[0,3,4,5,22,23,26,27],"top":[2,5,18,19],"total":[4,27],"tracer":25,"tran":[2,27],"translat":27,"transmiss":27,"treatment":4,"tri":[3,22],"troll":[21,27],"true":[2,18,27],"trust":22,"tsmaxz":2,"tug":22,"tune":[2,11],"tupl":14,"turn":22,"tutori":[3,22],"two":[2,5,23],"txt":[3,22],"type":[5,22,26],"u":23,"ubuntu":[3,22],"ufip":14,"unit":18,"updat":[10,23],"upgrad":22,"upper":2,"use":[0,2,3,4,5,16,20,22,23,25,26,27],"user":[2,3,22],"util":[1,6,24],"utiliy":[10,11,12,13,14,15,16],"v":[5,14,27],"v2026":22,"valid":[8,23],"valu":[2,4,5,8,11,12,16,23,27],"variabl":[2,3,5,14,16],"veloc":5,"venv":22,"version":[3,6,22,27],"vexprecc":22,"via":[2,4,21,22,27],"virtual":22,"visit":3,"visual":[1,2,5,6,22,24,25],"volum":[2,5,12,27],"vtks":26,"w":[2,5,23,27],"water":[2,5],"week":4,"weight":27,"welcom":[0,3],"well":[3,4,5,13,21,23,26,27],"well_coord":2,"wells_sit":[6,17,19],"wet":2,"wheel":22,"whole":23,"width":2,"will":3,"window":21,"without":[2,25],"work":[3,22],"workflow":8,"world":[21,25],"write":[2,5,10,14,16,22,23],"write_fil":[6,9,14,16],"write_fold":[6,9,16],"write_folder_it":[6,9,10],"write_grid":[6,9,16],"write_properti":[6,9,16],"writefil":[6,9],"written":[5,23],"wsl":22,"www":22,"x":[2,5,10,14,16,18,27],"x_i":[9,14],"xf":2,"xformat":[5,27],"xi":2,"xlnum":[5,27],"xtick":18,"xunit":[5,27],"xy":23,"xymap":[6,9,14],"xypolygon":5,"xyz":12,"y":[2,5,10,18,22,27],"y_i":[9,14],"year":27,"yes":5,"yf":2,"yformat":[5,27],"yi":2,"ylnum":[5,27],"yml":[3,22,27],"yournam":3,"ytick":18,"yunit":[5,27],"z":[2,5,12,23,27],"z_i":[9,14],"z_xi":2,"zag":2,"zf":2,"zi":2,"zig":2,"zone":[9,14,23]},"titles":["About expreccs","expreccs Python API","Configuration file","Contributing","ECMOR2026","Examples","expreccs package","expreccs.core package","expreccs.core.expreccs module","expreccs.utils package","expreccs.utils.backcoupling module","expreccs.utils.inputvalues module","expreccs.utils.mapboundaries module","expreccs.utils.mapproperties module","expreccs.utils.reg_sit_given_decks module","expreccs.utils.runs module","expreccs.utils.writefile module","expreccs.visualization package","expreccs.visualization.maps2d module","expreccs.visualization.plotting module","expreccs.visualization.reading module","Welcome to the expreccs\u2019s documentation!","Installation","Introduction","expreccs","Output folder","Related","TCCS-13"],"titleterms":{"2d":4,"3d":4,"About":0,"ad":26,"api":1,"aquif":4,"backcoupl":10,"binari":22,"boundari":5,"brew":22,"build":22,"concept":23,"configur":[2,5,25],"content":[6,7,9,17],"contribut":3,"core":[7,8],"deck":[5,25],"document":21,"ecmor2026":4,"exampl":5,"exprecc":[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,24],"file":[2,5,25],"flow":[5,22,25],"folder":25,"formula":22,"ground":3,"hello":5,"indic":21,"inputvalu":11,"instal":22,"introduct":23,"issu":3,"layer":5,"linux":22,"maco":22,"mapboundari":12,"mapproperti":13,"maps2d":18,"method":4,"micp":26,"model":[4,5],"modul":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"non":5,"opm":[5,22,25],"output":25,"overview":23,"packag":[6,7,9,17,22],"paramet":2,"plopm":26,"plot":19,"pofff":26,"problem":3,"pycopm":26,"pymm":26,"pyopmnearwel":26,"pyopmspe11":26,"python":[1,22],"read":20,"reg_sit_given_deck":14,"regular":5,"relat":[2,26],"report":3,"reservoir":2,"result":[2,4],"rock":2,"rule":3,"run":15,"s":21,"seek":3,"simul":2,"softwar":3,"sourc":22,"submodul":[7,9,17],"subpackag":6,"support":3,"synthet":4,"tabl":21,"tccs":27,"troll":4,"util":[9,10,11,12,13,14,15,16],"via":[5,25],"visual":[17,18,19,20],"welcom":21,"well":2,"window":22,"world":5,"writefil":16}})
\ No newline at end of file
diff --git a/docs/text/examples.rst b/docs/text/examples.rst
index 57c1f6f..eef465f 100644
--- a/docs/text/examples.rst
+++ b/docs/text/examples.rst
@@ -62,6 +62,13 @@ Below are some of the figures generated inside the postprocessing folder:
hello_world_sensor_pressure_over_time.png, hello_world_summary_BHP_site_reference.png, and
hello_world_distance_from_border.png respectively
+.. tip::
+
+ All previous commands can be executed as (`docs_hello_world.sh `_):
+
+ .. code-block:: bash
+
+ . ./tests/scripts/docs_hello_world.sh
Layered model
-------------
@@ -130,13 +137,21 @@ not by pressure values. If you run that test, then using plopm:
.. code-block:: bash
- plopm -i 'tests/regional/REGIONAL tests/expreccs/EXPRECCS tests/expreccs_dpincrease/EXPRECCS_DPINCREASE tests/expreccs_perfipnum/EXPRECCS_PERFIPNUM' -v rpr:3
+ plopm -i 'tests/regional/REGIONAL tests/expreccs/EXPRECCS tests/expreccs_dpincrease/EXPRECCS_DPINCREASE tests/expreccs_perfipnum/EXPRECCS_PERFIPNUM' -v rpr:3 -step 1
.. figure:: figs/regional_rpr3.png
Comparison of the different functionality to map the dynamic boundary conditions. Here, rpr:3 (fipnum equal to 3) corresponds to the top part of the sandwich (three layers with the middel layer inactive)
in the regional model, while to the bottom part in the site model.
+.. tip::
+
+ All previous commands can be executed as (`docs_regular_boundaries.sh `_):
+
+ .. code-block:: bash
+
+ . ./tests/scripts/docs_regular_boundaries.sh
+
Non-regular boundaries
----------------------
@@ -183,4 +198,12 @@ For the following figure, it is necessary to include in the REGIONS section of t
.. figure:: figs/expreccs_opernum_i,j,1_t0.png
In the regional model (left), **expreccs** writes the location of the overlapping cells with the site model in the OPERNUM variable, while in the
- site model this variable is used to label the ij direction of the boundary conditions.
\ No newline at end of file
+ site model this variable is used to label the ij direction of the boundary conditions.
+
+.. tip::
+
+ All previous commands can be executed as (`docs_non-regular_boundaries.sh `_):
+
+ .. code-block:: bash
+
+ . ./tests/scripts/docs_non-regular_boundaries.sh
diff --git a/publications/ecmor2026/results_2d_synthetic_model/figure3_table1.py b/publications/ecmor2026/results_2d_synthetic_model/figure3_table1.py
index 4f5fb60..114db74 100644
--- a/publications/ecmor2026/results_2d_synthetic_model/figure3_table1.py
+++ b/publications/ecmor2026/results_2d_synthetic_model/figure3_table1.py
@@ -515,7 +515,7 @@ def plot_error_extremes(model, case, order):
"-grid",
"black,1e-2",
"-cbsfax",
- "-1,0.0,0.0,0.0",
+ "empty",
"-remove",
"1,1,0,0",
"-d",
diff --git a/src/expreccs/core/expreccs.py b/src/expreccs/core/expreccs.py
index 64f074e..a6bc180 100644
--- a/src/expreccs/core/expreccs.py
+++ b/src/expreccs/core/expreccs.py
@@ -1,13 +1,14 @@
# SPDX-FileCopyrightText: 2023-2026 NORCE Research AS
# SPDX-License-Identifier: GPL-3.0
-# pylint: disable=R0912,R0915
+# pylint: disable=R0912,R0914,R0915
"""Main script for expreccs"""
import argparse
+import math
import os
+import re
import shutil
-import sys
from expreccs.utils.backcoupling import (
backcoupling,
@@ -41,13 +42,6 @@ def main(argv=None) -> None:
dic["compare"] = cmdargs["compare"]
if dic["compare"]:
- if not dic["subfolders"]:
- print(
- "\nCompare requires the subfolder structure, i.e., by running expreccs "
- "with the default value for the flag '-s 1'. Please rerun 'expreccs -c "
- "compare' without the '-s' flag.\n"
- )
- sys.exit()
print("\nExecuting the compare functionality in expreccs, please wait.")
dic["iterations"] = 0
plot_results(dic)
@@ -121,7 +115,7 @@ def main(argv=None) -> None:
"with the default value for the flag '-s 1'. Please rerun expreccs without "
"the '-s' flag.\n"
)
- sys.exit()
+ raise SystemExit(1)
backcoupling(dic)
if dic["plot"] != "no":
@@ -131,14 +125,6 @@ def main(argv=None) -> None:
"formats. You can install it by following the instructions in the expreccs's "
"documentation."
)
- if not dic["subfolders"]:
- print(
- "\nThe generation of plots requires the subfolder structure, i.e., by running "
- "expreccs with the default value for the flag '-s 1'.\nThen you could rerun "
- "expreccs without the '-s' flag, or you could use the plopm tool to generate "
- "plots (see https://github.com/cssr-tools/plopm)\n"
- )
- sys.exit()
plotting(dic)
print(text)
@@ -268,17 +254,182 @@ def load_parser(argv):
help="Set to '1' for a site with irregular contour, i.e., not defined in a "
"rectangle",
)
- return vars(parser.parse_known_args(argv)[0])
+ return vars(parser.parse_args(argv))
+
+
+def check_cmdargs(cmdargs: dict[str, str]) -> None:
+ """Validate command-line arguments and incompatible operations.
+
+ The checks cover configuration and model-folder inputs, output names,
+ boundary specifications, frequency and time-discretization values,
+ rotations, comparison mode, workflow-specific options, and operations
+ requiring the subfolder structure.
+ Parameters
+ ----------
+ cmdargs
+ Parsed arguments returned by :func:`load_parser`.
-def check_cmdargs(cmdargs):
- """Check for invalid combinations of command arguments"""
- if len((cmdargs["input"]).split(" ")) == 1 and not (cmdargs["input"]).endswith(
- ".toml"
+ Raises
+ ------
+ SystemExit
+ If an argument is invalid or an incompatible combination is requested.
+ """
+ input_value = cmdargs["input"]
+ if not input_value:
+ print("\nInvalid value for '-i', the input cannot be empty.\n")
+ raise SystemExit(1)
+ if not cmdargs["output"]:
+ print("\nInvalid value for '-o', the output folder cannot be empty.\n")
+ raise SystemExit(1)
+ input_paths = input_value.split()
+ if len(input_paths) not in [1, 2]:
+ print(
+ f"\nInvalid value '-i {input_value}', expected one configuration "
+ "file or two model-folder paths separated by a space.\n"
+ )
+ raise SystemExit(1)
+ configuration_input = len(input_paths) == 1
+ folder_input = len(input_paths) == 2
+ if configuration_input and not input_paths[0].lower().endswith(".toml"):
+ print(
+ f"\nInvalid extension for '-i {input_value}', the valid extension "
+ "is .toml, or provide paths to the regional and site model "
+ "folders.\n"
+ )
+ raise SystemExit(1)
+ transform = cmdargs["transform"]
+ try:
+ transform_value = float(transform)
+ except ValueError:
+ transform_value = float("nan")
+ if not math.isfinite(transform_value):
+ print(
+ f"\nInvalid value '-t {transform}', expected a finite number of "
+ "degrees.\n"
+ )
+ raise SystemExit(1)
+ boundaries = cmdargs["boundaries"]
+ boundary_pattern = re.fullmatch(
+ r"\[\s*-?\d+\s*,\s*-?\d+\s*,\s*-?\d+\s*,\s*-?\d+\s*\]",
+ boundaries,
+ )
+ if not boundary_pattern:
+ print(
+ f"\nInvalid value '-b {boundaries}', expected four integers inside "
+ "brackets, e.g., '-b [0,2,0,0]'.\n"
+ )
+ raise SystemExit(1)
+ boundary_values = [int(value.strip()) for value in boundaries[1:-1].split(",")]
+ if any(value < -1 for value in boundary_values):
+ print(
+ f"\nInvalid value '-b {boundaries}', boundary entries must be -1 "
+ "or non-negative integers.\n"
+ )
+ raise SystemExit(1)
+ frequency = cmdargs["frequency"]
+ if not re.fullmatch(r"[1-9]\d*(?:\s*,\s*[1-9]\d*)*", frequency):
+ print(
+ f"\nInvalid value '-f {frequency}', expected positive integers "
+ "separated by commas.\n"
+ )
+ raise SystemExit(1)
+ frequency_values = [int(value.strip()) for value in frequency.split(",")]
+ acoeff = cmdargs["acoeff"]
+ try:
+ acoeff_values = [float(value.strip()) for value in acoeff.split(",")]
+ except ValueError:
+ acoeff_values = []
+ if not acoeff_values or any(
+ value < 0 or not math.isfinite(value) for value in acoeff_values
):
print(
- f"\nInvalid extension for '-i {cmdargs['input']}', "
- "the valid extension is .toml, or give the path to the "
- "two folders to apply the dynamic pressure bcs.\n"
+ f"\nInvalid value '-a {acoeff}', expected non-negative finite "
+ "numbers separated by commas.\n"
+ )
+ raise SystemExit(1)
+ if len(acoeff_values) not in [1, len(frequency_values)]:
+ print(
+ f"\nInvalid value '-a {acoeff}', expected one coefficient or one "
+ "coefficient for each value provided with '-f'.\n"
+ )
+ raise SystemExit(1)
+ compare = cmdargs["compare"]
+ if compare:
+ compare_options = {
+ "-i": ("input", "input.toml"),
+ "-m": ("mode", "all"),
+ "-p": ("plot", "no"),
+ "-t": ("transform", "0"),
+ "-b": ("boundaries", "[0,0,0,0]"),
+ "-f": ("frequency", "1"),
+ "-a": ("acoeff", "3.2"),
+ "-e": ("explicit", "1"),
+ "-z": ("zones", "0"),
+ "-n": ("nonregular", "0"),
+ }
+ invalid_options = [
+ option
+ for option, (name, default) in compare_options.items()
+ if cmdargs[name] != default
+ ]
+ if invalid_options:
+ print(
+ "\nInvalid combination, '-c compare' runs the standalone "
+ "comparison workflow and cannot be combined with "
+ f"{', '.join(invalid_options)}.\n"
+ )
+ raise SystemExit(1)
+ if cmdargs["subfolders"] != "1":
+ print(
+ "\nInvalid combination, '-c compare' requires the subfolder "
+ "structure and cannot be used with '-s 0'.\n"
+ )
+ raise SystemExit(1)
+ return
+ if folder_input:
+ configuration_options = {
+ "-m": ("mode", "all"),
+ "-p": ("plot", "no"),
+ "-t": ("transform", "0"),
+ "-s": ("subfolders", "1"),
+ }
+ invalid_options = [
+ option
+ for option, (name, default) in configuration_options.items()
+ if cmdargs[name] != default
+ ]
+ if invalid_options:
+ print(
+ "\nInvalid option when providing regional and site model "
+ "folders; this workflow cannot be combined with "
+ f"{', '.join(invalid_options)}.\n"
+ )
+ raise SystemExit(1)
+ if configuration_input:
+ folder_options = {
+ "-b": ("boundaries", "[0,0,0,0]"),
+ "-f": ("frequency", "1"),
+ "-a": ("acoeff", "3.2"),
+ "-e": ("explicit", "1"),
+ "-z": ("zones", "0"),
+ "-n": ("nonregular", "0"),
+ }
+ invalid_options = [
+ option
+ for option, (name, default) in folder_options.items()
+ if cmdargs[name] != default
+ ]
+ if invalid_options:
+ print(
+ "\nInvalid option for a TOML configuration file; options "
+ f"{', '.join(invalid_options)} can only be used when providing "
+ "regional and site model folders.\n"
+ )
+ raise SystemExit(1)
+ if cmdargs["plot"] != "no" and cmdargs["subfolders"] != "1":
+ print(
+ "\nInvalid combination, plot generation requires the subfolder "
+ "structure and cannot be used with '-s 0'.\n"
)
- sys.exit()
+ raise SystemExit(1)
diff --git a/src/expreccs/utils/backcoupling.py b/src/expreccs/utils/backcoupling.py
index 17d1e63..4c6845f 100644
--- a/src/expreccs/utils/backcoupling.py
+++ b/src/expreccs/utils/backcoupling.py
@@ -131,9 +131,12 @@ def compute_multipliers(dic, iteration): # pylint: disable=R1702,R0912,R0914,R0
sum_local_fluxes[ind] = np.sum(local_fluxes[idxs])
- mult = sum_local_fluxes / regional_fluxes
- mult[np.isinf(mult)] = 1
- mult[np.isnan(mult)] = 1
+ sum_local_fluxes = np.nan_to_num(
+ sum_local_fluxes, nan=0.0, posinf=0.0, neginf=0.0
+ )
+ mult = np.ones_like(sum_local_fluxes, dtype=float)
+ valid = (regional_fluxes != 0) & np.isfinite(regional_fluxes)
+ np.divide(sum_local_fluxes, regional_fluxes, out=mult, where=valid)
if quantity == "FLOWATI-":
mult.reshape(ny_reg, nx_reg)[:, 1:] = 1
diff --git a/tests/scripts/docs_all.sh b/tests/scripts/docs_all.sh
index 09e75da..095771f 100644
--- a/tests/scripts/docs_all.sh
+++ b/tests/scripts/docs_all.sh
@@ -1,2 +1,6 @@
-# To be run after pytest --basetemp=test_outputs tests/ -n auto, as . ./tests/scripts/docs_all.sh
-. tests/scripts/docs_hello_world.sh & . tests/scripts/docs_regular_boundaries.sh & . tests/scripts/docs_non-regular_boundaries.sh
+. tests/scripts/docs_hello_world.sh &
+. tests/scripts/docs_regular_boundaries.sh &
+. tests/scripts/docs_non-regular_boundaries.sh &
+wait
+
+. ./tests/scripts/docs_check_figures.sh
diff --git a/tests/scripts/docs_check_figures.sh b/tests/scripts/docs_check_figures.sh
new file mode 100644
index 0000000..ad8c747
--- /dev/null
+++ b/tests/scripts/docs_check_figures.sh
@@ -0,0 +1,30 @@
+files=(
+ "test_outputs/hello_world/hello_world_distance_from_border.png"
+ "test_outputs/hello_world/hello_world_reference_watfluxi+.png"
+ "test_outputs/hello_world/hello_world_regional_watfluxi+.png"
+ "test_outputs/hello_world/hello_world_sensor_pressure_over_time.png"
+ "test_outputs/hello_world/hello_world_site_flux_watfluxi+.png"
+ "test_outputs/hello_world/hello_world_summary_BHP_site_reference.png"
+ "test_outputs/non-regular_boundaries/expreccs_opernum_i,j,1_t0.png"
+ "test_outputs/regular_boundaries/reference_sgas_i,j,1_t90.png"
+ "test_outputs/regular_boundaries/regional_rpr-3.png"
+)
+
+missing_file="test_outputs/missing_figures.txt"
+missing=0
+
+rm -f "$missing_file"
+
+for f in "${files[@]}"; do
+ if [[ ! -f "$f" ]]; then
+ echo "$f" >> "$missing_file"
+ ((missing++))
+ fi
+done
+
+if (( missing == 0 )); then
+ echo "All figures exist."
+else
+ echo "$missing figure(s) missing."
+ echo "See $missing_file"
+fi
diff --git a/tests/scripts/docs_hello_world.sh b/tests/scripts/docs_hello_world.sh
index c446967..58c4888 100644
--- a/tests/scripts/docs_hello_world.sh
+++ b/tests/scripts/docs_hello_world.sh
@@ -1,13 +1,13 @@
-if [ -d "test_outputs/hello_world" ]; then
- rm -rf "test_outputs/hello_world"
-fi
-expreccs -i examples/example1.toml -o test_outputs/hello_world
-expreccs -i examples/example1_pres.toml -o test_outputs/hello_world -m site
-expreccs -i examples/example1_porvproj.toml -o test_outputs/hello_world -m site
-expreccs -i examples/example1_wells.toml -o test_outputs/hello_world -m site -p all
-cp test_outputs/hello_world/postprocessing/hello_world_sensor_pressure_over_time.png test_outputs/hello_world
-cp test_outputs/hello_world/postprocessing/hello_world_summary_BHP_site_reference.png test_outputs/hello_world
-cp test_outputs/hello_world/postprocessing/hello_world_distance_from_border.png test_outputs/hello_world
-cp test_outputs/hello_world/postprocessing/hello_world_reference_watfluxi+.png test_outputs/hello_world
-cp test_outputs/hello_world/postprocessing/hello_world_regional_watfluxi+.png test_outputs/hello_world
-cp test_outputs/hello_world/postprocessing/hello_world_site_flux_watfluxi+.png test_outputs/hello_world
\ No newline at end of file
+OUT="test_outputs/hello_world"
+. tests/scripts/initialize_output_folders.sh $OUT
+. tests/scripts/get_plopm.sh
+expreccs -i examples/example1.toml -o $OUT
+expreccs -i examples/example1_pres.toml -o $OUT -m site
+expreccs -i examples/example1_porvproj.toml -o $OUT -m site
+expreccs -i examples/example1_wells.toml -o $OUT -m site -p all
+cp $OUT/postprocessing/hello_world_sensor_pressure_over_time.png $OUT
+cp $OUT/postprocessing/hello_world_summary_BHP_site_reference.png $OUT
+cp $OUT/postprocessing/hello_world_distance_from_border.png $OUT
+cp $OUT/postprocessing/hello_world_reference_watfluxi+.png $OUT
+cp $OUT/postprocessing/hello_world_regional_watfluxi+.png $OUT
+cp $OUT/postprocessing/hello_world_site_flux_watfluxi+.png $OUT
diff --git a/tests/scripts/docs_non-regular_boundaries.sh b/tests/scripts/docs_non-regular_boundaries.sh
index bc199ac..8d6bd12 100644
--- a/tests/scripts/docs_non-regular_boundaries.sh
+++ b/tests/scripts/docs_non-regular_boundaries.sh
@@ -1,14 +1,11 @@
-if [ -d "test_outputs/non-regular_boundaries" ]; then
- rm -rf "test_outputs/non-regular_boundaries"
-fi
-mkdir test_outputs/non-regular_boundaries
-pycopm -i examples/SIMPLE.DATA -l R -w REFINED -g 199,319,0 -o test_outputs/non-regular_boundaries
-cd test_outputs/non-regular_boundaries
-pycopm -i REFINED.DATA -l S -w SUBMODEL -v 'xypolygon [15e3,80e3] [60e3,80e3] [60e3,10e3] [55e3,10e3] [55e3,05e3] [50e3,05e3] [50e3,10e3] [33e3,10e3] [33e3,24e3] [15e3,24e3] [15e3,80e3]' -p 0 -m all
-mpirun -np 8 flow REFINED.DATA & mpirun -np 8 flow SUBMODEL.DATA & wait
-expreccs -i "REFINED SUBMODEL" -n 1 -o expreccs
-sed -i.bak "s|REGIONS|REGIONS\nINCLUDE\nOPERNUM_EXPRECCS.INC/\n|g" REFINED.DATA
-rm -f REFINED.DATA.bak
-mpirun -np 8 flow REFINED.DATA & mpirun -np 8 flow expreccs/EXPRECCS.DATA
-plopm -i 'REFINED expreccs/EXPRECCS' -v opernum -s ',,1 ,,1' -r 0 -xunits km -xlnum 5 -yunits km -yformat .0f -ylnum 5 -xformat .0f -subfigs 1,2 -d 16,12 -cbsfax 0.1,0.95,0.8,0.02 -f 30 -c Set1_r
-cd ../..
+OUT="test_outputs/non-regular_boundaries"
+. tests/scripts/initialize_output_folders.sh $OUT
+. tests/scripts/get_plopm.sh
+. tests/scripts/get_pycopm.sh
+pycopm -i examples/SIMPLE.DATA -l R -w REFINED -g 199,319,0 -o $OUT
+pycopm -i $OUT/REFINED.DATA -l S -o $OUT -w SUBMODEL -v 'xypolygon [15e3,80e3] [60e3,80e3] [60e3,10e3] [55e3,10e3] [55e3,05e3] [50e3,05e3] [50e3,10e3] [33e3,10e3] [33e3,24e3] [15e3,24e3] [15e3,80e3]' -p 0 -m all
+mpirun -np 8 flow $OUT/REFINED.DATA & mpirun -np 8 flow $OUT/SUBMODEL.DATA & wait
+expreccs -i "$OUT/REFINED $OUT/SUBMODEL" -n 1 -o $OUT/expreccs
+sed -i.bak "s|REGIONS|REGIONS\nINCLUDE\nOPERNUM_EXPRECCS.INC/\n|g" $OUT/REFINED.DATA && rm -f $OUT/REFINED.DATA.bak
+mpirun -np 8 flow $OUT/REFINED.DATA & mpirun -np 8 flow $OUT/expreccs/EXPRECCS.DATA
+plopm -i "$OUT/REFINED $OUT/expreccs/EXPRECCS" -o $OUT -v opernum -s ',,1 ,,1' -r 0 -xunits km -xlnum 5 -yunits km -yformat .0f -ylnum 5 -xformat .0f -subfigs 1,2 -d 16,12 -cbsfax 0.1,0.95,0.8,0.02 -f 30 -c Set1_r
diff --git a/tests/scripts/docs_regular_boundaries.sh b/tests/scripts/docs_regular_boundaries.sh
index 47f43a8..4df181f 100644
--- a/tests/scripts/docs_regular_boundaries.sh
+++ b/tests/scripts/docs_regular_boundaries.sh
@@ -1,9 +1,14 @@
-if [ -d "test_outputs/regular_boundaries" ]; then
- rm -rf "test_outputs/regular_boundaries"
-fi
-mkdir test_outputs/regular_boundaries
+OUT="test_outputs/regular_boundaries"
+. tests/scripts/initialize_output_folders.sh $OUT
+. tests/scripts/get_plopm.sh
+. tests/scripts/get_pytest.sh
WHR="test_outputs/popen-gw2/test_2_generic_deck0/rotate/simulations"
-plopm -i "$WHR/site_closed/SITE_CLOSED $WHR/expreccs/EXPRECCS $WHR/reference/REFERENCE" -v sgas -s ',,1 ,,1 ,,1' -subfigs 1,3 -suptitle 0 -cbsfax 0.2,0.95,0.6,0.02 -d 24,8 -cformat .1f -f 20 -xunits km -yunits km -xformat .0f -yformat .0f -x '[0,15000]' -y '[0,15000]' -delax 1 -o test_outputs/regular_boundaries
-
-WHR="test_outputs/popen-gw4/test_4_site_regional0"
-plopm -i "$WHR/regional/REGIONAL $WHR/expreccs/EXPRECCS $WHR/expreccs_dpincrease/EXPRECCS_DPINCREASE $WHR/expreccs_perfipnum/EXPRECCS_PERFIPNUM" -v rpr:3 -o test_outputs/regular_boundaries
+if [ ! -d $WHR ]; then
+ pytest --basetemp=$OUT -n 2 tests/test_2_generic_deck.py tests/test_4_site_regional.py
+ WHR="$OUT/popen-gw0/test_2_generic_deck0/rotate/simulations"
+ WHR1="$OUT/popen-gw1/test_4_site_regional0"
+else
+ WHR1="test_outputs/popen-gw4/test_4_site_regional0"
+fi
+plopm -i "$WHR/site_closed/SITE_CLOSED $WHR/expreccs/EXPRECCS $WHR/reference/REFERENCE" -v sgas -s ',,1 ,,1 ,,1' -subfigs 1,3 -suptitle 0 -cbsfax 0.2,0.95,0.6,0.02 -d 24,8 -cformat .1f -f 20 -xunits km -yunits km -xformat .0f -yformat .0f -x '[0,15000]' -y '[0,15000]' -delax 1 -o $OUT
+plopm -i "$WHR1/regional/REGIONAL $WHR1/expreccs/EXPRECCS $WHR1/expreccs_dpincrease/EXPRECCS_DPINCREASE $WHR1/expreccs_perfipnum/EXPRECCS_PERFIPNUM" -v rpr:3 -o $OUT -step 1
diff --git a/tests/scripts/get_plopm.sh b/tests/scripts/get_plopm.sh
new file mode 100644
index 0000000..e8b13ca
--- /dev/null
+++ b/tests/scripts/get_plopm.sh
@@ -0,0 +1,3 @@
+if ! command -v plopm &> /dev/null; then
+ pip install git+https://github.com/cssr-tools/plopm.git
+fi
diff --git a/tests/scripts/get_pycopm.sh b/tests/scripts/get_pycopm.sh
new file mode 100644
index 0000000..1f88e95
--- /dev/null
+++ b/tests/scripts/get_pycopm.sh
@@ -0,0 +1,3 @@
+if ! command -v pycopm &> /dev/null; then
+ pip install git+https://github.com/cssr-tools/pycopm.git
+fi
diff --git a/tests/scripts/get_pytest.sh b/tests/scripts/get_pytest.sh
new file mode 100644
index 0000000..faa4816
--- /dev/null
+++ b/tests/scripts/get_pytest.sh
@@ -0,0 +1,3 @@
+if ! command -v pytest &> /dev/null; then
+ pip install pytest-xdist pytest-cov
+fi
diff --git a/tests/scripts/initialize_output_folders.sh b/tests/scripts/initialize_output_folders.sh
new file mode 100644
index 0000000..49aa983
--- /dev/null
+++ b/tests/scripts/initialize_output_folders.sh
@@ -0,0 +1,7 @@
+OUTT="$1"
+if [ ! -d "test_outputs" ]; then
+ mkdir "test_outputs"
+fi
+if [ -n "$OUTT" ] && [ -d "$OUTT" ]; then
+ rm -rf "$OUTT"
+fi
diff --git a/tests/scripts/paper_2025.sh b/tests/scripts/paper_2025.sh
new file mode 100644
index 0000000..b7b7ba1
--- /dev/null
+++ b/tests/scripts/paper_2025.sh
@@ -0,0 +1,8 @@
+OUT="test_outputs/paper_2025"
+. tests/scripts/initialize_output_folders.sh $OUT
+cp -r examples/paper_2025/. $OUT
+python3 $OUT/Case1/run_case1.py &
+python3 $OUT/Case2/run_case2.py &
+python3 $OUT/Case3/run_case3.py &
+python3 $OUT/Case4/run_case4.py &
+wait
diff --git a/tests/scripts/paper_all.sh b/tests/scripts/paper_all.sh
deleted file mode 100644
index 7add789..0000000
--- a/tests/scripts/paper_all.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-if [ ! -d "test_outputs" ]; then
- mkdir "test_outputs"
-fi
-if [ -d "test_outputs/paper" ]; then
- rm -rf "test_outputs/paper"
-fi
-mkdir "test_outputs/paper"
-cp -r examples/paper_2025/. test_outputs/paper
-WHR="test_outputs/paper"
-python3 $WHR/Case1/run_case1.py & python3 $WHR/Case2/run_case2.py & python3 $WHR/Case3/run_case3.py & python3 $WHR/Case4/run_case4.py & wait
diff --git a/tests/scripts/paper_ecmor2026.sh b/tests/scripts/paper_ecmor2026.sh
new file mode 100644
index 0000000..3d1cf76
--- /dev/null
+++ b/tests/scripts/paper_ecmor2026.sh
@@ -0,0 +1,14 @@
+HOME="$PWD"
+OUT="test_outputs/paper_ecmor2026"
+. tests/scripts/initialize_output_folders.sh $OUT
+. tests/scripts/get_plopm.sh
+. tests/scripts/get_pycopm.sh
+cp -r publications/ecmor2026/. $OUT
+cd $OUT/method
+. figure1.sh
+cd $OUT/results_2d_synthetic_model
+. figure2.sh
+python3 figure3_table1.py
+cd $OUT/results_3d_synthetic_model
+python3 figure4_table2.py
+cd $HOME
diff --git a/tests/test_0_all_bcs.py b/tests/test_0_all_bcs.py
index 7fba5a3..8110781 100644
--- a/tests/test_0_all_bcs.py
+++ b/tests/test_0_all_bcs.py
@@ -5,7 +5,6 @@
"""Test the expreccs framework"""
import shutil
-import subprocess
from pathlib import Path
import numpy as np
@@ -25,7 +24,7 @@ def test_0_all_bcs(tmp_path, monkeypatch):
shutil.copy(testpth / "configs" / "input.toml", tmp_path)
- main()
+ main([])
name = tmp_path / "output" / "preprocessing" / "site_pres" / "SITE_PRES.DATA"
with open(name, "r", encoding="utf8") as f:
@@ -62,11 +61,7 @@ def test_0_all_bcs(tmp_path, monkeypatch):
assert abs(max(init["DZ"]) - dzmax[i]) < EPS
for name in ["wells", "interp", "porvproj", "open", "closed"]:
- subprocess.run(
- ["expreccs", "-i", str(testpth / "configs" / f"{name}.toml"), "-m", "site"],
- cwd=tmp_path,
- check=True,
- )
+ main(["-i", str(testpth / "configs" / f"{name}.toml"), "-m", "site"])
config = str(testpth / "configs" / "flux.toml")
main(["-i", config, "-m", "site", "-p", "all"])
@@ -106,11 +101,7 @@ def test_0_all_bcs(tmp_path, monkeypatch):
assert len(list(Path(post).glob("*.png"))) == 191
- subprocess.run(
- ["expreccs", "-c", "compare"],
- cwd=tmp_path,
- check=True,
- )
+ main(["-c", "compare"])
compare = tmp_path / "compare"
diff --git a/tests/test_1_generic_deck_2d.py b/tests/test_1_generic_deck_2d.py
index 2d1a56a..a8f7a5f 100644
--- a/tests/test_1_generic_deck_2d.py
+++ b/tests/test_1_generic_deck_2d.py
@@ -7,6 +7,8 @@
import subprocess
from pathlib import Path
+from expreccs.core.expreccs import main
+
testpth = Path(__file__).parent
@@ -14,9 +16,8 @@ def test_1_generic_deck_2d(tmp_path, monkeypatch):
"""Run rotate_2d and check outputs."""
monkeypatch.chdir(tmp_path)
- subprocess.run(
+ main(
[
- "expreccs",
"-i",
str(testpth / "configs" / "rotate_2d.toml"),
"-o",
@@ -27,8 +28,7 @@ def test_1_generic_deck_2d(tmp_path, monkeypatch):
"30",
"-p",
"site",
- ],
- check=True,
+ ]
)
base = tmp_path / "rotate_2d"
@@ -49,9 +49,8 @@ def test_1_generic_deck_2d(tmp_path, monkeypatch):
simdir = base / "simulations"
monkeypatch.chdir(simdir)
- subprocess.run(
+ main(
[
- "expreccs",
"-o",
"expreccs",
"-i",
@@ -60,8 +59,7 @@ def test_1_generic_deck_2d(tmp_path, monkeypatch):
"3",
"-a",
"3.2",
- ],
- check=True,
+ ]
)
exdir = simdir / "expreccs"
diff --git a/tests/test_2_generic_deck.py b/tests/test_2_generic_deck.py
index 9412f3f..6ace97a 100644
--- a/tests/test_2_generic_deck.py
+++ b/tests/test_2_generic_deck.py
@@ -7,6 +7,8 @@
import subprocess
from pathlib import Path
+from expreccs.core.expreccs import main
+
EPS = 1e-3
testpth = Path(__file__).parent
@@ -16,9 +18,8 @@ def test_2_generic_deck(tmp_path, monkeypatch):
"""Run rotate and check outputs."""
monkeypatch.chdir(tmp_path)
- subprocess.run(
+ main(
[
- "expreccs",
"-i",
str(testpth / "configs" / "rotate.toml"),
"-o",
@@ -29,8 +30,7 @@ def test_2_generic_deck(tmp_path, monkeypatch):
"30",
"-p",
"site",
- ],
- check=True,
+ ]
)
base = tmp_path / "rotate"
@@ -51,15 +51,13 @@ def test_2_generic_deck(tmp_path, monkeypatch):
simdir = base / "simulations"
monkeypatch.chdir(simdir)
- subprocess.run(
+ main(
[
- "expreccs",
"-o",
"expreccs",
"-i",
"regional/REGIONAL site_closed/SITE_CLOSED",
- ],
- check=True,
+ ]
)
exdir = simdir / "expreccs"
diff --git a/tests/test_3_back_coupling.py b/tests/test_3_back_coupling.py
index 3877f22..0d16592 100644
--- a/tests/test_3_back_coupling.py
+++ b/tests/test_3_back_coupling.py
@@ -3,25 +3,24 @@
"""Test the expreccs functionality for back-coupling"""
-import subprocess
from pathlib import Path
+from expreccs.core.expreccs import main
+
testpth = Path(__file__).parent
def test_3_back_coupling(tmp_path):
"""Run back-coupling and check output."""
- subprocess.run(
+ main(
[
- "expreccs",
"-i",
str(testpth / "configs" / "back-coupling.toml"),
"-o",
str(tmp_path / "back"),
"-p",
"all",
- ],
- check=True,
+ ]
)
assert (