diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 36fab6d..076b8a4 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -24,7 +24,7 @@ jobs: - name: Install (optional but recommended) plotting (LaTeX) and ert dependencies run: | sudo apt-get install texlive-fonts-recommended texlive-fonts-extra dvipng cm-super - sudo apt-get install freeglut3-dev + sudo apt-get install freeglut3-dev libegl1 - name: Install pofff and python requirements run: | diff --git a/README.md b/README.md index bdac80c..7bcb828 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ pip install --upgrade pip setuptools wheel pip install -e . # For contributions/testing/linting, install the dev-requirements pip install -r dev-requirements.txt -``` +``` See the [_installation_](https://cssr-tools.github.io/pofff/installation.html) for further details on building OPM Flow from the master branches in Linux, Windows (via [_WSL_](https://learn.microsoft.com/en-us/windows/wsl/)), and macOS. diff --git a/docs/_sources/examples.rst.txt b/docs/_sources/examples.rst.txt index 01928a8..a4446a2 100644 --- a/docs/_sources/examples.rst.txt +++ b/docs/_sources/examples.rst.txt @@ -17,6 +17,14 @@ The following is the figure `map_24h.png`. You can compare your example results .. figure:: figs/map_24h.png +.. tip:: + + All previous commands can be executed as (`docs_hello_world.sh `_): + + .. code-block:: bash + + . ./tests/scripts/docs_hello_world.sh + =================== Adding your results =================== @@ -28,7 +36,7 @@ The `publication `_ f pofff -i results.toml -o YOURS -m single -t 24,48,72,96,120 -f all -generates the figures in the paper in addition to the new simulation labeled as the name of the output folder ("YOURS" in this case), e.g., for the compare_all_time_series.png: +This generates the figures in the paper in addition to the new simulation labeled as the name of the output folder ("YOURS" in this case), e.g., for the compare_all_time_series.png: .. figure:: figs/compare_all_time_series.png @@ -38,6 +46,14 @@ generates the figures in the paper in addition to the new simulation labeled as We welcome pull request with your configuration files to the examples folder for cases with better results (less error in the error_table_satmin-0.01_conmin-0.1.csv). +.. tip:: + + All previous commands can be executed as (`docs_adding_your_results.sh `_): + + .. code-block:: bash + + . ./tests/scripts/docs_adding_your_results.sh + .. note:: One can always also generate the sparse_data.csv, time_series.csv, and spatial_map_Xh.csv files using other simulators and use the pofff tool to compare @@ -112,6 +128,13 @@ Then the following GIF is generated by: The total simulation time for this GIF (five days of experiment) using eight CPUs for OPM Flow in a Mac is **LESS THAN TWO MINUTES!!!** - See the `plopm online docmunetation `_ for additional information of supported flag parameters to generate customized PNGs and GIFs. + +.. tip:: + + All previous commands can be executed as (`docs_visualization.sh `_): + + .. code-block:: bash + + . ./tests/scripts/docs_visualization.sh diff --git a/docs/_sources/publication.rst.txt b/docs/_sources/publication.rst.txt index 829e72a..c24cbf7 100644 --- a/docs/_sources/publication.rst.txt +++ b/docs/_sources/publication.rst.txt @@ -112,37 +112,9 @@ in combination to Python commands, which gives flexibility to generate the diffe The Wasserstein distance (obtained from the generated error_table_satmin-0.01_conmin-0.1.csv) for the base case and random seed for the sensitivity study regarding setup choices in Table 8 can be generated by executing the `sensitivity.py `_ script (if you have a Mac as well, then execute the script in -there to see the sensitivity to the operative system). For example, the content of this Python script is the following: - -.. code-block:: python - - import subprocess - from mako.template import Template - - mytemplate = Template(filename="appendixc.mako") - for case, rng in zip(["base", "rng"], [7, 11]): - # Modify the number of cores according to your resources - var = {"cores": 64, "rng": rng, "cnv": 1e-2, "cnv_relaxed": 1} - filledtemplate = mytemplate.render(**var) - with open( - f"{case}.toml", - "w", - encoding="utf8", - ) as file: - file.write(filledtemplate) - subprocess.run( - [ - "pofff", - "-i", f"{case}.toml", - "-o", case, - "-m", "everest", - "-t", "24,48,72,96,120", - "-f", "all", - ], - check=True, - ) - -The values in Table 7 and Figure 8 can be generated by (increase or decrease the number of cores to adapt to your interest and computer limitations): +there to see the sensitivity to the operative system). + +The values in Table 7 and Figure 12 can be generated by (increase or decrease the number of cores to adapt to your interest and computer limitations): .. code-block:: bash @@ -157,3 +129,18 @@ Finally, for accuracy-time trade-off Table 9 you can run: .. warning:: These scripts are set to run with 64 cores, then you should edit them if your machine has less available cpus. + + +.. tip:: + + All previous commands can be executed as (`publication.sh `_): + + .. code-block:: bash + + . ./tests/scripts/publication.sh + + This will run the cases with 64 cores. To run the case with 16 cores instead (in a coarser grid as well), run it as: + + .. code-block:: bash + + . ./tests/scripts/publication.sh 16 diff --git a/docs/examples.html b/docs/examples.html index 06f4a56..1ba0441 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -100,6 +100,13 @@

Hello world _images/map_24h.png +
+

Tip

+

All previous commands can be executed as (docs_hello_world.sh):

+
. ./tests/scripts/docs_hello_world.sh
+
+
+

Adding your results

@@ -108,7 +115,7 @@

Adding your results
pofff -i results.toml -o YOURS -m single -t 24,48,72,96,120 -f all
 
-

generates the figures in the paper in addition to the new simulation labeled as the name of the output folder (“YOURS” in this case), e.g., for the compare_all_time_series.png:

+

This generates the figures in the paper in addition to the new simulation labeled as the name of the output folder (“YOURS” in this case), e.g., for the compare_all_time_series.png:

_images/compare_all_time_series.png
@@ -117,6 +124,13 @@

Adding your results +

Tip

+

All previous commands can be executed as (docs_adding_your_results.sh):

+
. ./tests/scripts/docs_adding_your_results.sh
+
+
+

Note

One can always also generate the sparse_data.csv, time_series.csv, and spatial_map_Xh.csv files using other simulators and use the pofff tool to compare @@ -185,6 +199,13 @@

Visualizationplopm online docmunetation for additional information of supported flag parameters to generate customized PNGs and GIFs.

+
+

Tip

+

All previous commands can be executed as (docs_visualization.sh):

+
. ./tests/scripts/docs_visualization.sh
+
+
+

diff --git a/docs/genindex.html b/docs/genindex.html index 94378cb..397b388 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -162,6 +162,8 @@

C

  • callback (pofff.config.config.PofffConfig attribute)
  • cap (pofff.config.config.PofffConfig attribute) +
  • +
  • check_cmdargs() (in module pofff.core.pofff)
  • classify_boxes() (in module pofff.utils.mapproperties)
  • @@ -172,11 +174,11 @@

    C

  • compact_format() (in module pofff.utils.writefile)
  • compute_m_c() (in module pofff.jobs.data) -
  • -
  • Config (class in pofff.visualization.everert)
    • +
    • Config (class in pofff.visualization.everert) +
    • constraints (pofff.config.config.PofffConfig attribute)
    • copy_tree_contents() (in module pofff.visualization.everert) diff --git a/docs/objects.inv b/docs/objects.inv index 43e6172..88d00c3 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/pofff.core.html b/docs/pofff.core.html index 8d6c6d3..891b8da 100644 --- a/docs/pofff.core.html +++ b/docs/pofff.core.html @@ -90,6 +90,7 @@

      Submodules
      • pofff.core.pofff module
          +
        • check_cmdargs()
        • cli_config()
        • generate_figures()
        • main()
        • diff --git a/docs/pofff.core.pofff.html b/docs/pofff.core.pofff.html index e1a3c8e..bcb63a7 100644 --- a/docs/pofff.core.pofff.html +++ b/docs/pofff.core.pofff.html @@ -87,6 +87,23 @@

          pofff.core.pofff module

          Main entry script for pofff.

          +
          +
          +pofff.core.pofff.check_cmdargs(cmdargs: Namespace) None
          +

          Validate command-line arguments and incompatible operations.

          +

          The checks cover input and output paths, evaluation times, saturation and +concentration thresholds, options ignored by specialized workflows, and +combinations that do not result in any operation.

          +
          +
          Parameters:
          +

          cmdargs – Parsed arguments returned by parse_args().

          +
          +
          Raises:
          +

          SystemExit – If an argument is invalid or an incompatible combination is requested.

          +
          +
          +
          +
          pofff.core.pofff.cli_config(args: Namespace, *, pofff_path: Path) CliConfig
          @@ -101,13 +118,13 @@
          -pofff.core.pofff.main() None
          +pofff.core.pofff.main(argv: list[str] | None = None) None

          Main pofff execution routine.

          -pofff.core.pofff.parse_args()
          +pofff.core.pofff.parse_args(argv: list[str] | None = None) Namespace

          Define and parse command-line arguments.

          diff --git a/docs/pofff.html b/docs/pofff.html index d5e4b04..5f95ee7 100644 --- a/docs/pofff.html +++ b/docs/pofff.html @@ -103,6 +103,7 @@

          Subpackagespofff.core package
          • Submodules
            • pofff.core.pofff module
                +
              • check_cmdargs()
              • cli_config()
              • generate_figures()
              • main()
              • diff --git a/docs/publication.html b/docs/publication.html index 5686a3d..b55b1fc 100644 --- a/docs/publication.html +++ b/docs/publication.html @@ -172,35 +172,8 @@

                Publicationsensitivity.py script (if you have a Mac as well, then execute the script in -there to see the sensitivity to the operative system). For example, the content of this Python script is the following:

                -
                import subprocess
                -from mako.template import Template
                -
                -mytemplate = Template(filename="appendixc.mako")
                -for case, rng in zip(["base", "rng"], [7, 11]):
                -    # Modify the number of cores according to your resources
                -    var = {"cores": 64, "rng": rng, "cnv": 1e-2, "cnv_relaxed": 1}
                -    filledtemplate = mytemplate.render(**var)
                -    with open(
                -        f"{case}.toml",
                -        "w",
                -        encoding="utf8",
                -    ) as file:
                -        file.write(filledtemplate)
                -    subprocess.run(
                -        [
                -            "pofff",
                -            "-i", f"{case}.toml",
                -            "-o", case,
                -            "-m", "everest",
                -            "-t", "24,48,72,96,120",
                -            "-f", "all",
                -        ],
                -        check=True,
                -    )
                -
                -
                -

                The values in Table 7 and Figure 8 can be generated by (increase or decrease the number of cores to adapt to your interest and computer limitations):

                +there to see the sensitivity to the operative system).

                +

                The values in Table 7 and Figure 12 can be generated by (increase or decrease the number of cores to adapt to your interest and computer limitations):

                cd publication && python3 profiling.py
                 
                @@ -212,6 +185,17 @@

                PublicationWarning

                These scripts are set to run with 64 cores, then you should edit them if your machine has less available cpus.

                +
                +

                Tip

                +

                All previous commands can be executed as (publication.sh):

                +
                . ./tests/scripts/publication.sh
                +
                +
                +

                This will run the cases with 64 cores. To run the case with 16 cores instead (in a coarser grid as well), run it as:

                +
                . ./tests/scripts/publication.sh 16
                +
                +
                +

          diff --git a/docs/searchindex.js b/docs/searchindex.js index 731ee45..8dbdb3d 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles":{"About pofff":[[0,null]],"Adding your results":[[4,"adding-your-results"]],"Binary packages":[[6,"binary-packages"]],"Brew formula for macOS":[[6,"brew-formula-for-macos"]],"Citing":[[0,"citing"]],"Concept":[[7,"concept"]],"Configuration file":[[2,null]],"Contribute to the software":[[3,"contribute-to-the-software"]],"Contributing":[[3,null]],"ERT":[[9,"ert"]],"Everest":[[9,"everest"]],"Examples":[[4,null]],"Ground Rules":[[3,"ground-rules"]],"Hello world":[[4,"hello-world"]],"History matching":[[4,"history-matching"]],"Indices and tables":[[5,"indices-and-tables"]],"Installation":[[6,null]],"Introduction":[[7,null]],"Module contents":[[10,"module-pofff"],[11,"module-pofff.config"],[13,"module-pofff.core"],[15,"module-pofff.jobs"],[19,"module-pofff.utils"],[24,"module-pofff.visualization"]],"OPM Flow":[[6,"opm-flow"]],"Output folder":[[9,null]],"Overview":[[7,"overview"]],"Publication":[[30,null]],"Python package":[[6,"python-package"]],"Related":[[31,null]],"Report issues or problems":[[3,"report-issues-or-problems"]],"Seek support":[[3,"seek-support"]],"Single run":[[9,"single-run"]],"Source build in Linux/Windows":[[6,"source-build-in-linux-windows"]],"Source build in macOS":[[6,"source-build-in-macos"]],"Submodules":[[11,"submodules"],[13,"submodules"],[15,"submodules"],[19,"submodules"],[24,"submodules"]],"Subpackages":[[10,"subpackages"]],"Visualization":[[4,"visualization"]],"Welcome to pofff\u2019s documentation!":[[5,null]],"ad-micp":[[31,"ad-micp"]],"expreccs":[[31,"expreccs"]],"plopm":[[31,"plopm"]],"pofff":[[1,"pofff"],[8,null]],"pofff Python API":[[1,null]],"pofff package":[[10,null]],"pofff.config package":[[11,null]],"pofff.config.config module":[[12,null]],"pofff.core package":[[13,null]],"pofff.core.pofff module":[[14,null]],"pofff.jobs package":[[15,null]],"pofff.jobs.data module":[[16,null]],"pofff.jobs.delete module":[[17,null]],"pofff.jobs.metric module":[[18,null]],"pofff.utils package":[[19,null]],"pofff.utils.inputvalues module":[[20,null]],"pofff.utils.mapproperties module":[[21,null]],"pofff.utils.runs module":[[22,null]],"pofff.utils.writefile module":[[23,null]],"pofff.visualization package":[[24,null]],"pofff.visualization.benchmark module":[[25,null]],"pofff.visualization.error_table module":[[26,null]],"pofff.visualization.everert module":[[27,null]],"pofff.visualization.maps module":[[28,null]],"pofff.visualization.sparse_values module":[[29,null]],"pycopm":[[31,"pycopm"]],"pymm":[[31,"pymm"]],"pyopmnearwell":[[31,"pyopmnearwell"]],"pyopmspe11":[[31,"pyopmspe11"]]},"docnames":["about","api","configuration_file","contributing","examples","index","installation","introduction","modules","output_folder","pofff","pofff.config","pofff.config.config","pofff.core","pofff.core.pofff","pofff.jobs","pofff.jobs.data","pofff.jobs.delete","pofff.jobs.metric","pofff.utils","pofff.utils.inputvalues","pofff.utils.mapproperties","pofff.utils.runs","pofff.utils.writefile","pofff.visualization","pofff.visualization.benchmark","pofff.visualization.error_table","pofff.visualization.everert","pofff.visualization.maps","pofff.visualization.sparse_values","publication","related"],"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","examples.rst","index.rst","installation.rst","introduction.rst","modules.rst","output_folder.rst","pofff.rst","pofff.config.rst","pofff.config.config.rst","pofff.core.rst","pofff.core.pofff.rst","pofff.jobs.rst","pofff.jobs.data.rst","pofff.jobs.delete.rst","pofff.jobs.metric.rst","pofff.utils.rst","pofff.utils.inputvalues.rst","pofff.utils.mapproperties.rst","pofff.utils.runs.rst","pofff.utils.writefile.rst","pofff.visualization.rst","pofff.visualization.benchmark.rst","pofff.visualization.error_table.rst","pofff.visualization.everert.rst","pofff.visualization.maps.rst","pofff.visualization.sparse_values.rst","publication.rst","related.rst"],"indexentries":{},"objects":{"":[[10,0,0,"-","pofff"]],"pofff":[[11,0,0,"-","config"],[13,0,0,"-","core"],[15,0,0,"-","jobs"],[19,0,0,"-","utils"],[24,0,0,"-","visualization"]],"pofff.config":[[12,0,0,"-","config"]],"pofff.config.config":[[12,1,1,"","CliConfig"],[12,1,1,"","PofffConfig"]],"pofff.config.config.CliConfig":[[12,2,1,"","deck"],[12,2,1,"","experiment"],[12,2,1,"","figures"],[12,2,1,"","fol"],[12,2,1,"","jobs"],[12,2,1,"","location"],[12,2,1,"","mcon"],[12,2,1,"","mode"],[12,2,1,"","msat"],[12,2,1,"","times"],[12,2,1,"","use"]],"pofff.config.config.PofffConfig":[[12,2,1,"","args"],[12,2,1,"","atol"],[12,2,1,"","boxa"],[12,2,1,"","boxb"],[12,2,1,"","boxc"],[12,2,1,"","callback"],[12,2,1,"","cap"],[12,2,1,"","constraints"],[12,2,1,"","cores"],[12,2,1,"","data"],[12,2,1,"","deck"],[12,2,1,"","delete"],[12,2,1,"","diffusion"],[12,2,1,"","dims"],[12,2,1,"","disp"],[12,2,1,"","dx"],[12,2,1,"","dz"],[12,2,1,"","enkf_alpha"],[12,2,1,"","ensembles"],[12,2,1,"","errors"],[12,2,1,"","ertargs"],[12,2,1,"","everert"],[12,2,1,"","experiment"],[12,2,1,"","facies"],[12,2,1,"","figures"],[12,2,1,"","fipnum"],[12,2,1,"","flow"],[12,2,1,"","fluxnum"],[12,2,1,"","fol"],[12,2,1,"","grid"],[12,2,1,"","hascellmaps"],[12,2,1,"","hm"],[12,2,1,"","init"],[12,2,1,"","inj"],[12,2,1,"","integrality"],[12,2,1,"","jobs"],[12,2,1,"","krn"],[12,2,1,"","krw"],[12,2,1,"","location"],[12,2,1,"","max_batch_num"],[12,2,1,"","max_function_evaluations"],[12,2,1,"","maxiter"],[12,2,1,"","maxtime"],[12,2,1,"","mcon"],[12,2,1,"","min_realizations_success"],[12,2,1,"","mode"],[12,2,1,"","monotonic"],[12,2,1,"","msat"],[12,2,1,"","mult_thickness"],[12,2,1,"","multpv"],[12,2,1,"","mutation"],[12,2,1,"","nxz"],[12,2,1,"","para"],[12,2,1,"","path"],[12,2,1,"","polish"],[12,2,1,"","popsize"],[12,2,1,"","porv"],[12,2,1,"","pressure"],[12,2,1,"","random_seed"],[12,2,1,"","recombination"],[12,2,1,"","rng"],[12,2,1,"","sensor_ik"],[12,2,1,"","sensors"],[12,2,1,"","source_ik"],[12,2,1,"","sources"],[12,2,1,"","strategy"],[12,2,1,"","temperature"],[12,2,1,"","thickness"],[12,2,1,"","times"],[12,2,1,"","tol"],[12,2,1,"","tuning"],[12,2,1,"","updating"],[12,2,1,"","use"],[12,2,1,"","vectorized"],[12,2,1,"","workers"],[12,2,1,"","x"],[12,2,1,"","x0"],[12,2,1,"","z"]],"pofff.core":[[14,0,0,"-","pofff"]],"pofff.core.pofff":[[14,3,1,"","cli_config"],[14,3,1,"","generate_figures"],[14,3,1,"","main"],[14,3,1,"","parse_args"],[14,3,1,"","prepare_jobs_folder"],[14,3,1,"","prepare_simulation"],[14,3,1,"","run_simulation_steps"]],"pofff.jobs":[[16,0,0,"-","data"],[17,0,0,"-","delete"],[18,0,0,"-","metric"]],"pofff.jobs.data":[[16,1,1,"","SimulationContext"],[16,1,1,"","SparseResults"],[16,3,1,"","compute_m_c"],[16,3,1,"","create_from_summary"],[16,3,1,"","dense_data"],[16,3,1,"","find_simulation_base"],[16,3,1,"","interpolate_sparse"],[16,3,1,"","main"],[16,3,1,"","read_opm"],[16,3,1,"","sparse_data"],[16,3,1,"","write_dense_data"],[16,3,1,"","write_sparse_data"]],"pofff.jobs.data.SimulationContext":[[16,2,1,"","actind"],[16,2,1,"","dense_t"],[16,2,1,"","dims"],[16,2,1,"","egrid"],[16,2,1,"","gxyz"],[16,2,1,"","ini"],[16,2,1,"","maps"],[16,2,1,"","norst"],[16,4,1,"","nxz"],[16,2,1,"","porv"],[16,2,1,"","resolution"],[16,2,1,"","sim"],[16,2,1,"","smspec"],[16,2,1,"","sparse_t"],[16,2,1,"","time_initial"],[16,2,1,"","times"],[16,2,1,"","times_summary"],[16,2,1,"","unrst"],[16,2,1,"","where"]],"pofff.jobs.data.SparseResults":[[16,2,1,"","ctx"],[16,2,1,"","dissa"],[16,2,1,"","dissb"],[16,2,1,"","dx"],[16,2,1,"","dz"],[16,2,1,"","fipnum"],[16,2,1,"","imma"],[16,2,1,"","immb"],[16,2,1,"","m_c"],[16,2,1,"","m_c_series"],[16,2,1,"","moba"],[16,2,1,"","mobb"],[16,2,1,"","pop1"],[16,2,1,"","pop2"],[16,2,1,"","seala"],[16,2,1,"","sealb"],[16,2,1,"","sealt"],[16,2,1,"","times_data"]],"pofff.jobs.metric":[[18,3,1,"","before_emd"],[18,3,1,"","calculate_emd"],[18,3,1,"","generate_segment_map"],[18,3,1,"","main"]],"pofff.utils":[[20,0,0,"-","inputvalues"],[21,0,0,"-","mapproperties"],[22,0,0,"-","runs"],[23,0,0,"-","writefile"]],"pofff.utils.inputvalues":[[20,3,1,"","build_config"],[20,3,1,"","extract_facies"],[20,3,1,"","load_toml"],[20,3,1,"","postprocess_config"],[20,3,1,"","process_tuning"]],"pofff.utils.mapproperties":[[21,3,1,"","classify_boxes"],[21,3,1,"","corner"],[21,3,1,"","corner_point_handling_fluidflower"],[21,3,1,"","get_cellmaps"],[21,3,1,"","get_lines"],[21,3,1,"","getpolygons"],[21,3,1,"","grid_and_properties"],[21,3,1,"","handle_thickness_map"],[21,3,1,"","positions"],[21,3,1,"","refinement_z"],[21,3,1,"","sensors_corner_point"],[21,3,1,"","sensors_structured"],[21,3,1,"","structured_handling_fluidflower"],[21,3,1,"","wells_corner_point"],[21,3,1,"","wells_structured"]],"pofff.utils.runs":[[22,3,1,"","_run"],[22,3,1,"","benchmark"],[22,3,1,"","data"],[22,3,1,"","ert"],[22,3,1,"","everest"],[22,3,1,"","flow"],[22,3,1,"","postprocess"]],"pofff.utils.writefile":[[23,3,1,"","compact_format"],[23,3,1,"","create_corner_point_grid"],[23,3,1,"","render_bcprop"],[23,3,1,"","render_copyd"],[23,3,1,"","render_equalreg"],[23,3,1,"","render_ert"],[23,3,1,"","render_everest"],[23,3,1,"","render_flow"],[23,3,1,"","render_monotonic"],[23,3,1,"","render_satufunc"],[23,3,1,"","render_scale"],[23,3,1,"","write_files"],[23,3,1,"","write_keywords"]],"pofff.visualization":[[25,0,0,"-","benchmark"],[26,0,0,"-","error_table"],[27,0,0,"-","everert"],[28,0,0,"-","maps"],[29,0,0,"-","sparse_values"]],"pofff.visualization.benchmark":[[25,3,1,"","benchmark"],[25,3,1,"","load_parser"],[25,3,1,"","run_benchmark"]],"pofff.visualization.error_table":[[26,3,1,"","load_sparse_csv"],[26,3,1,"","parse_arguments"],[26,3,1,"","run_error_table"]],"pofff.visualization.everert":[[27,1,1,"","Config"],[27,1,1,"","EnsembleState"],[27,1,1,"","OptimizationState"],[27,3,1,"","copy_tree_contents"],[27,3,1,"","ensure_dir"],[27,3,1,"","extract_best_simulation"],[27,3,1,"","extract_optimal_solution"],[27,3,1,"","initialize_ensemble"],[27,3,1,"","parse_args"],[27,3,1,"","plot_cumulative_misfit"],[27,3,1,"","plot_hm_mismatch"],[27,3,1,"","plot_misfit"],[27,3,1,"","plot_observable_distribution"],[27,3,1,"","plot_optimization"],[27,3,1,"","plot_optimization_details"],[27,3,1,"","plot_parameter_distributions"],[27,3,1,"","plot_simulation_ensemble"],[27,3,1,"","process_optimization"],[27,3,1,"","read_realisation"],[27,3,1,"","run"],[27,3,1,"","run_everert"],[27,3,1,"","save_figure"],[27,3,1,"","setup_matplotlib"]],"pofff.visualization.everert.Config":[[27,2,1,"","external"],[27,2,1,"","jobs"],[27,2,1,"","maps"],[27,2,1,"","min_concentration"],[27,2,1,"","min_saturation"],[27,2,1,"","path"],[27,2,1,"","run"],[27,2,1,"","times"]],"pofff.visualization.everert.EnsembleState":[[27,2,1,"","cumulative"],[27,2,1,"","idrealisation"],[27,2,1,"","miss_ens"],[27,2,1,"","n_e"],[27,2,1,"","n_i"],[27,2,1,"","no_obs"],[27,2,1,"","no_para"],[27,2,1,"","num_ens"],[27,2,1,"","observations"],[27,2,1,"","par_dis"],[27,2,1,"","para_file"],[27,2,1,"","para_names"],[27,2,1,"","sim_ens"],[27,2,1,"","simulations"]],"pofff.visualization.everert.OptimizationState":[[27,2,1,"","ind_batch"],[27,2,1,"","ind_sim"],[27,2,1,"","optimal_value"],[27,2,1,"","optimization"],[27,2,1,"","s"],[27,2,1,"","tot_eval"],[27,2,1,"","x"]],"pofff.visualization.maps":[[28,3,1,"","load_points"],[28,3,1,"","pngs"],[28,3,1,"","run_maps"],[28,3,1,"","segment"]],"pofff.visualization.sparse_values":[[29,3,1,"","main"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","function","Python function"],"4":["py","property","Python property"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:function","4":"py:property"},"terms":{"01_conmin":[4,30],"0f":30,"100e3":2,"10d":30,"10f":30,"1500e3":2,"1cm":30,"1cmish":30,"1e":[2,4,7,12,30],"1mm":30,"2e":[2,30],"2f":30,"3000e3":2,"300e3":2,"3e":[2,4],"50e3":2,"5d":30,"5e":[2,4,7,30],"5f":30,"636b45":30,"7e":30,"800e3":2,"9ca245":30,"9da347":30,"9fa44a":30,"A":[30,31],"About":5,"After":4,"All":30,"An":[3,31],"Below":31,"Both":0,"Each":2,"For":[0,2,3,4,6,30],"Here":2,"If":[2,4,6,30],"In":3,"THAN":4,"The":[0,1,2,3,4,6,7,9,30],"Then":[4,6,30],"There":6,"These":30,"This":[7,30],"To":[4,6,30],"We":[3,4],"While":[4,6],"YOURS":4,"You":[4,6,30],"_2":[4,30],"_build":3,"_run":[10,19,22],"a0a64d":30,"a2a750":30,"a3a953":30,"a5aa56":30,"a6ac59":30,"a8ad5c":30,"a9af5f":30,"abb062":30,"abl":6,"abort":[22,27],"abov":7,"accept":3,"access":30,"accord":[21,30],"accuraci":30,"across":12,"actind":[15,16],"action":[3,6],"activ":6,"ad":5,"adapt":30,"adb164":30,"add":[2,3,5,6,9,30],"addit":[3,4,30],"adjust":30,"aeb367":30,"ale":30,"alia":16,"also":[3,4,6,30],"altern":3,"alway":4,"anaconda":6,"analys":3,"ani":[3,12],"anoth":6,"answer":3,"api":[5,30],"appendix":30,"appendixb":[4,30],"appendixc":30,"appli":27,"approach":[0,3],"apt":6,"arg":[11,12,14],"argument":[7,12,14,22,25,26,27],"argv":[16,18,25,26,27,28],"array":2,"assign":[4,21],"atol":[11,12],"attempt":30,"auto":3,"automat":26,"avail":[6,30],"avoid":2,"b":30,"b0b46a":30,"b1b66d":30,"b3b770":30,"b4b973":30,"b6ba76":30,"b7bc79":30,"b9bd7c":30,"babf7f":30,"background":30,"base":[0,7,12,16,21,27,30,31],"basetemp":3,"bashrc":6,"basic":[7,12],"bcc082":30,"bcprop":23,"bec184":30,"befor":[3,12],"before_emd":[10,15,18],"behavior":18,"benchmark":[1,7,10,14,16,19,22,24,29,30,31],"best":27,"best_simul":9,"better":4,"bfc387":30,"bin":[2,3,6],"binari":[3,5],"bit":23,"black":[3,30],"bool":12,"bottom":2,"boundari":28,"box":21,"boxa":[11,12],"boxb":[11,12],"boxc":[11,12],"boxplot":27,"branch":6,"brew":5,"build":[2,3,5,14,20,21],"build_config":[10,19,20],"build_opm_mpi":6,"built":6,"c":[2,4,7,30],"c00b0b":30,"c1":7,"c10f0f":30,"c1c48a":30,"c2":7,"c21313":30,"c2c68d":30,"c31717":30,"c41b1b":30,"c4c790":30,"c5":7,"c51f1f":30,"c5c993":30,"c62323":30,"c72626":30,"c7ca96":30,"c82a2a":30,"c8cc99":30,"c92e2e":30,"ca3232":30,"cacd9c":30,"calcit":31,"calculate_emd":[10,15,18],"call":[1,4],"callabl":12,"callback":[11,12],"can":[3,4,6,30],"cap":[2,11,12],"capabl":4,"capillari":2,"cartesian":[2,30],"case":[4,30],"cb3636":30,"cbcf9f":30,"cbsfax":[4,30],"cc3a3a":30,"cco2":16,"cd":[6,30],"cd3e3e":30,"cdd0a2":30,"ce4141":30,"cell":[2,21],"center":[0,16],"central":12,"centroid":21,"cet_diverging_gwr_55_95_c38":30,"cf4545":30,"cfd":31,"cfd1a4":30,"cfg":[14,20,21,22,23,25,27],"cformat":[4,30],"chang":[3,4,30],"check":[3,6,30,31],"checker":3,"checkout":6,"choic":30,"ci":[3,6],"ci_pycopm_maco":3,"cite":5,"clabel":[4,30],"class":[12,16,27,28],"classify_box":[10,19,21],"cli":[12,14,20],"cli_config":[10,13,14],"cliconfig":[10,11,12,14,20],"clone":6,"closest":9,"cm":[6,30],"cmake":6,"cmd":[22,27],"cnum":[4,30],"cnv":30,"cnv_relax":30,"co":[4,30],"co2":[0,7,30,31],"code":[3,6,10],"codebas":12,"collabor":3,"color":4,"com":[1,4,6,7,30],"combin":[7,12,30],"comma":7,"command":[4,6,12,14,22,25,26,27,30],"commit":3,"common":[4,6],"compact":23,"compact_format":[10,19,23],"compar":[4,30],"compare_all_time_seri":4,"comparison":[14,22,25,26],"comput":[7,16,18,21,26,30],"compute_m_c":[10,15,16],"comun":1,"concentr":[7,18,28,30],"concept":5,"config":[1,4,8,10,20,24,27],"configur":[4,5,6,7,12,14,20,22,27,30],"conmin":[18,28],"connect":28,"consid":[4,7],"consist":27,"constant":4,"constraint":[11,12],"construct":21,"contain":[1,3,4,9,12,16],"content":[1,3,5,8,20,27,30],"continu":18,"contour":28,"contribut":[0,5,6,27],"control":[26,30],"convert":18,"coord":23,"coordin":[2,21],"copi":[3,6,14,27],"copy_tree_cont":[10,24,27],"copyd":23,"core":[1,4,8,10,11,12,30],"corner":[1,2,10,12,19,21,23,30],"corner_point_handling_fluidflow":[10,19,21],"correct":4,"correspond":[4,21,30],"cov":3,"cp":27,"cpr_trueimp":30,"cpus":[4,30],"creat":[3,6,18,27],"create_corner_point_grid":[10,19,23],"create_from_summari":[10,15,16],"csiro":4,"csp":31,"cssr":[0,4,6,7,30],"csv":[4,7,16,26,29,30],"csvs":4,"ctick":30,"ctx":[15,16],"cumul":[24,27],"curl":30,"current":[6,7],"current_directori":6,"custom":[4,30],"d":[0,4,30],"d04949":30,"d0d3a7":30,"d14d4d":30,"d25151":30,"d2d4aa":30,"d35555":30,"d3d6ad":30,"d45959":30,"d55c5c":30,"d5d7b0":30,"d66060":30,"d6d9b3":30,"d76464":30,"d86868":30,"d8dab6":30,"d96c6c":30,"d9dcb9":30,"da7070":30,"darus":30,"data":[1,4,7,10,11,12,15,19,20,22,26,30],"datafil":30,"datum":2,"day":[4,30],"db7474":30,"dbddbc":30,"dc7777":30,"dcdfbf":30,"dcmake_build_typ":6,"dcmake_prefix_path":6,"dd7b7b":30,"de":30,"de7f7f":30,"decay":30,"deck":[1,11,12],"decreas":[4,30],"dedic":6,"dee0c1":30,"default":7,"defin":[2,12,14,25],"definit":[20,21],"delax":30,"delet":[10,11,12,15],"dens":16,"dense_data":[10,15,16],"dense_t":[15,16],"depend":[3,6],"deriv":[12,20],"describ":[3,7],"descript":[2,4],"detail":[4,30],"determin":21,"dev":[3,6],"develop":6,"df8383":30,"diagnost":27,"dict":[12,20],"differ":[1,4,30],"diffus":[2,11,12],"dim":[11,12,15,16],"dir":2,"direct":4,"directori":[3,14,27,30],"discret":[18,28],"disk":26,"disp":[11,12],"dispatch":21,"disperc1":2,"disperc2":2,"disperc3":2,"disperc4":2,"disperc5":2,"disperc6":2,"dissa":[15,16],"dissb":[15,16],"dissolv":7,"distanc":[7,18,26,30],"distribut":27,"divid":2,"dmar":2,"doc":3,"docmunet":4,"document":[3,4,6,7],"doe":30,"doi":0,"done":6,"download":[1,6,30],"dpi":[4,27],"dst":27,"duse_mpi":6,"dvipng":6,"dwith_ndebug":6,"dx":[11,12,15,16,23],"dynam":31,"dz":[11,12,15,16,23],"e":[0,2,3,4,6,7,30],"e08787":30,"e0e1c4":30,"e18b8b":30,"e1e3c7":30,"e28f8f":30,"e39292":30,"e3e4ca":30,"e49696":30,"e4e6cd":30,"e59a9a":30,"e69e9":30,"e6e7d0":30,"e7a2a2":30,"e7e9d3":30,"e8a6a6":30,"e9aaaa":30,"e9ead6":30,"eaadad":30,"eaecd9":30,"ebb1b1":30,"ecb5b5":30,"eceddc":30,"eclfil":16,"eclips":23,"edb9b9":30,"edefdf":30,"edg":6,"edit":30,"eebdbd":30,"efc1c1":30,"eff0e1":30,"effici":23,"egrid":[15,16],"eight":4,"either":[6,21],"els":6,"em":31,"email":3,"emd":18,"enabl":[2,20,30],"encod":[23,30],"end":[4,6,30],"enkf_alpha":[11,12],"enrich":20,"ensembl":[11,12,27],"ensemblest":[10,24,27],"ensure_dir":[10,24,27],"enterpris":6,"entri":[2,14,16,25,27],"environ":[3,6],"equalreg":23,"error":[4,11,12,26],"error_t":[10,24],"error_table_satmin":[4,30],"erst":16,"ert":[1,4,5,7,10,19,22,23,27],"ertarg":[11,12],"esf":30,"esmri":16,"etc":[4,23],"evalu":[2,4,7],"everert":[10,11,12,24],"everest":[1,4,5,7,10,19,22,23,27,30],"everest_iter_3":4,"exact":18,"exampl":[2,5,9,30],"except":2,"execut":[1,2,3,4,6,7,9,14,22,27,30],"experi":[4,11,12,28],"experiment":[4,7,18,26,28],"experimental_data":18,"export":[3,6],"exprecc":5,"extend":3,"extern":[24,27],"extra":6,"extract":[16,20,27,29],"extract_best_simul":[10,24,27],"extract_faci":[10,19,20],"extract_optimal_solut":[10,24,27],"f":[4,7,30],"f0c5c5":30,"f1c8c8":30,"f1f1e4":30,"f2cccc":30,"f2f3e7":30,"f3d0d0":30,"f4d4d4":30,"f4f4ea":30,"f5d8d8":30,"f5f6ed":30,"f6dcdc":30,"f7e0e0":30,"f7f7f0":30,"f8e3e3":30,"f8f9f3":30,"f9e7e7":30,"faci":[2,4,11,12,21],"facie1":2,"facie2":2,"facie3":2,"facie4":2,"facie5":2,"facie6":2,"factor":[21,30],"factori":[12,16,27],"faebeb":30,"fafaf6":30,"fail":22,"failur":27,"fair":[7,30],"fals":12,"familiar":3,"fbefef":30,"fbfcf9":30,"fcf3f3":30,"fdf7f7":30,"fdfdfc":30,"featur":0,"fefbfb":30,"ff0000":30,"ff0100":30,"ff0200":30,"ff0300":30,"ff0400":30,"ff0500":30,"ff0600":30,"ff0700":30,"ff0800":30,"ff0900":30,"ff0a00":30,"ff0b00":30,"ff0c00":30,"ff0d00":30,"ff0e00":30,"ff0f00":30,"ff1000":30,"ff1100":30,"ff1200":30,"ff1300":30,"ff1400":30,"ff1500":30,"ff1600":30,"ff1700":30,"ff1800":30,"ff1900":30,"ff1a00":30,"ff1b00":30,"ff1c00":30,"ff1d00":30,"ff1e00":30,"ff1f00":30,"ff2000":30,"ff2100":30,"ff2200":30,"ff2300":30,"ff2400":30,"ff2500":30,"ff2600":30,"ff2700":30,"ff2800":30,"ff2900":30,"ff2a00":30,"ff2b00":30,"ff2c00":30,"ff2d00":30,"ff2e00":30,"ff2f00":30,"ff3000":30,"ff3100":30,"ff3200":30,"ff3300":30,"ff3400":30,"ff3500":30,"ff3600":30,"ff3700":30,"ff3800":30,"ff3900":30,"ff3a00":30,"ff3b00":30,"ff3c00":30,"ff3d00":30,"ff3e00":30,"ff3f00":30,"ff4000":30,"ff4100":30,"ff4200":30,"ff4300":30,"ff4400":30,"ff4500":30,"ff4600":30,"ff4700":30,"ff4800":30,"ff4900":30,"ff4a00":30,"ff4b00":30,"ff4c00":30,"ff4d00":30,"ff4e00":30,"ff4f00":30,"ff5000":30,"ff5100":30,"ff5200":30,"ff5300":30,"ff5400":30,"ff5500":30,"ff5600":30,"ff5700":30,"ff5800":30,"ff5900":30,"ff5a00":30,"ff5b00":30,"ff5c00":30,"ff5d00":30,"ff5e00":30,"ff5f00":30,"ff6000":30,"ff6100":30,"ff6200":30,"ff6300":30,"ff6400":30,"ff6500":30,"ff6600":30,"ff6700":30,"ff6800":30,"ff6900":30,"ff6a00":30,"ff6b00":30,"ff6c00":30,"ff6d00":30,"ff6e00":30,"ff6f00":30,"ff7000":30,"ff7100":30,"ff7200":30,"ff7300":30,"ff7400":30,"ff7500":30,"ff7600":30,"ff7700":30,"ff7800":30,"ff7900":30,"ff7a00":30,"ff7b00":30,"ff7c00":30,"ff7d00":30,"ff7e00":30,"ff7f00":30,"ff8000":30,"ff8100":30,"ff8200":30,"ff8300":30,"ff8400":30,"ff8500":30,"ff8600":30,"ff8700":30,"ff8800":30,"ff8900":30,"ff8a00":30,"ff8b00":30,"ff8c00":30,"ff8d00":30,"ff8e00":30,"ff8f00":30,"ff9000":30,"ff9100":30,"ff9200":30,"ff9300":30,"ff9400":30,"ff9500":30,"ff9600":30,"ff9700":30,"ff9800":30,"ff9900":30,"ff9a00":30,"ff9b00":30,"ff9c00":30,"ff9d00":30,"ff9e00":30,"ff9f00":30,"ffa000":30,"ffa100":30,"ffa200":30,"ffa300":30,"ffa400":30,"ffa500":30,"ffa600":30,"ffa700":30,"ffa800":30,"ffa900":30,"ffaa00":30,"ffab00":30,"ffac00":30,"ffad00":30,"ffae00":30,"ffaf00":30,"ffb000":30,"ffb100":30,"ffb200":30,"ffb300":30,"ffb400":30,"ffb500":30,"ffb600":30,"ffb700":30,"ffb800":30,"ffb900":30,"ffba00":30,"ffbb00":30,"ffbc00":30,"ffbd00":30,"ffbe00":30,"ffbf00":30,"ffc000":30,"ffc100":30,"ffc200":30,"ffc300":30,"ffc400":30,"ffc500":30,"ffc600":30,"ffc700":30,"ffc800":30,"ffc900":30,"ffca00":30,"ffcb00":30,"ffcc00":30,"ffcd00":30,"ffce00":30,"ffcf00":30,"ffd000":30,"ffd100":30,"ffd200":30,"ffd300":30,"ffd400":30,"ffd500":30,"ffd600":30,"ffd700":30,"ffd800":30,"ffd900":30,"ffda00":30,"ffdb00":30,"ffdc00":30,"ffdd00":30,"ffde00":30,"ffdf00":30,"ffe000":30,"ffe100":30,"ffe200":30,"ffe300":30,"ffe400":30,"ffe500":30,"ffe600":30,"ffe700":30,"ffe800":30,"ffe900":30,"ffea00":30,"ffeb00":30,"ffec00":30,"ffed00":30,"ffee00":30,"ffef00":30,"fff000":30,"fff100":30,"fff200":30,"fff300":30,"fff400":30,"fff500":30,"fff600":30,"fff700":30,"fff800":30,"fff900":30,"fffa00":30,"fffb00":30,"fffc00":30,"fffd00":30,"ffffff":30,"fi":6,"field":[18,28],"fig":27,"figur":[4,6,7,9,11,12,14,22,25,27,30],"figure10":30,"figure10d":30,"figure10f":30,"figure3":30,"figure3a":30,"figure3b":30,"figure4":30,"figure4ish":30,"figure5":30,"figure5d":30,"figure5f":30,"figures10":30,"figures10d":30,"figures5":30,"figures5d":30,"file":[1,3,4,5,6,7,9,14,16,17,20,23,26,28,30],"file_1":18,"file_2":18,"file_nam":18,"filenam":[20,26,28,30],"filledtempl":30,"final":[1,2,12,27,30],"find_simulation_bas":[10,15,16],"fip":21,"fipnum":[11,12,15,16,23],"first":2,"fit":27,"five":4,"fix":[2,3],"flag":[2,4,20,30],"flexibl":30,"float":[12,16,18,21,27],"float64":21,"flow":[2,3,4,5,7,10,11,12,19,22,23,30,31],"flow_maco":3,"fluidflow":[1,4,7,21],"flux":21,"fluxnum":[11,12,23],"fol":[11,12],"folder":[1,3,4,5,6,7,27,30],"follow":[2,4,6,7,9,30],"font":[4,6],"forecast":4,"fork":[0,3],"forlder":1,"format":[3,4,6,25,26,29,30],"formula":5,"found":4,"fraction":[4,30],"framework":[0,1,4,7,31],"friend":[7,30],"full":[2,6],"fulli":20,"function":[2,4,20,21,22,23],"fund":0,"g":[2,3,4,6,30],"gas":2,"gasda":0,"gaseous":7,"generat":[1,2,3,4,7,9,14,21,22,23,25,27,28,29,30,31],"generate_figur":[10,13,14],"generate_segment_map":[10,15,18],"geo":28,"geolog":[1,21,28,31],"geometri":1,"get":[3,6],"get_cellmap":[10,19,21],"get_lin":[10,19,21],"getpolygon":[10,19,21],"gif":[4,31],"git":[4,6,30],"github":[1,2,3,4,6,7,30],"githubusercont":30,"give":30,"given":4,"grid":[1,2,4,6,11,12,16,21,23,30],"grid_and_properti":[10,19,21],"ground":5,"growth":30,"gxyz":[15,16],"h":[0,4,30],"handl":[16,26],"handle_thickness_map":[10,19,21],"hascellmap":[11,12],"hat":6,"head":30,"header":26,"hello":5,"help":[3,6],"histori":[0,2,5,7],"hm":[4,11,12],"hold":27,"homebrew":6,"horizon":21,"host":[1,7],"hour":[7,16],"html":3,"https":[0,1,4,6,7,30],"ident":23,"idrealis":[24,27],"ignor":3,"imag":[0,7,18,31],"imma":[15,16],"immb":[15,16],"implement":[7,23],"import":[3,30],"includ":[6,23,30],"increas":30,"ind_batch":[24,27],"ind_sim":[24,27],"index":[5,21],"indic":21,"induc":31,"indx":18,"inf":27,"inform":[4,16],"ini":[15,16],"init":[11,12],"initi":[2,4,20,27],"initialize_ensembl":[10,24,27],"inj":[2,4,11,12],"inject":[2,20],"input":[1,2,7,12,14,20,30],"inputvalu":[10,19],"insid":6,"instal":[3,4,5,30],"instruct":6,"int":[12,16,18,21,27],"int64":18,"integr":[11,12],"interact":22,"interest":[6,30,31],"interim":6,"interpol":16,"interpolate_spars":[10,15,16],"interval":4,"introduct":5,"isotrop":4,"issu":[0,4,5],"iter":[2,4,12,27,30],"j":[0,27],"j5":6,"job":[1,8,10,11,12,14,24,27],"keyword":[4,23],"kg":2,"krn":[2,11,12],"krw":[2,11,12],"l":[6,30],"label":4,"landa":0,"larg":17,"last":4,"latest":6,"latex":6,"leakag":31,"length":23,"less":[4,30],"librari":6,"like":4,"limit":30,"line":[2,3,4,6,12,14,21,25,26,27,28,30],"linear":30,"link":6,"lint":6,"linux":5,"liquid":[2,4,30],"list":[12,16,21,23,27],"load":[16,20,21,26,28],"load_pars":[10,24,25],"load_point":[10,24,28],"load_sparse_csv":[10,24,26],"load_toml":[10,19,20],"local":[3,4],"locat":[1,11,12,16],"look":3,"loop":4,"low":4,"m":[0,2,4,6,7,9,30],"m_c":[15,16],"m_c_seri":[15,16],"mac":[4,30],"machin":[2,4,6,30],"maco":[3,5],"macport":6,"mactex":6,"main":[1,3,10,13,14,15,16,18,20,24,25,29,30],"maintain":3,"make":[3,6,14],"mako":[1,23,30],"mamba":6,"manag":6,"manual":30,"map":[2,4,10,15,16,18,21,24,27,30],"map_24h":4,"mapproperti":[10,19],"marb\u00e1n":0,"mask":[4,30],"maskthr":[4,30],"mass":[4,16,30],"master":6,"match":[0,2,5,7],"matplotlib":27,"matrix":7,"max":[2,12,30],"max_batch_num":[11,12],"max_function_evalu":[4,11,12],"maximum":4,"maxit":[11,12],"maxtim":[11,12],"mcon":[11,12],"mean":27,"measur":2,"med":0,"memori":27,"merg":3,"metric":[7,10,15,16,26],"micp":5,"microbi":31,"microsystem":31,"might":[3,4,6,30,31],"migrat":16,"min":[2,30],"min_concentr":[24,27],"min_realizations_success":[11,12],"min_satur":[24,27],"miniforg":6,"minimum":7,"minut":4,"misfit":27,"miss":[3,4,27],"miss_en":[24,27],"mit_m1":4,"mkdir":[6,30],"moba":[15,16],"mobb":[15,16],"mode":[11,12,14],"model":[2,12,21,31],"model_result":18,"modifi":[1,4,6,30],"modul":[1,5,8,31],"monoton":[11,12,23],"mpi":[6,30],"mpirun":[2,30],"msat":[11,12],"mult_thick":[2,11,12],"multipli":[2,4,21],"multpv":[11,12],"multx":30,"mutat":[11,12],"my_simul":4,"mypi":3,"mytempl":30,"n":[3,23],"n_e":[24,27],"n_i":[24,27],"name":[4,7,16],"name_of_input_fil":7,"namespac":14,"ncz":21,"ndarray":[12,16,18,21,23,27],"near":31,"need":[3,4,6,30],"new":[0,3,4,30],"newton":[2,30],"newtoniterationcount":30,"next":2,"nice":[3,6],"nkrn":[2,12],"nkrn1":2,"nkrn2":2,"nkrn3":2,"nkrn4":2,"nkrn5":2,"nkrn6":2,"nkrw":[2,12],"nkrw1":2,"nkrw2":2,"nkrw3":2,"nkrw4":2,"nkrw5":2,"nkrw6":2,"no_ob":[24,27],"no_para":[24,27],"non":2,"none":[4,7,12,14,16,18,20,21,22,23,25,26,27,28,29,30],"nordbotten":0,"normal":[12,14,20,21],"norst":[15,16],"note":4,"np":[2,30],"np6":4,"npe1":2,"npe2":2,"npe3":2,"npe4":2,"npe5":2,"npe6":2,"npen":[2,12],"npnt1":2,"npnt2":2,"npnt3":2,"npnt4":2,"npnt5":2,"npnt6":2,"npntn":2,"num_en":[24,27],"number":[2,4,21,30],"numer":18,"numpi":23,"nxz":[11,12,15,16],"o":[4,7,9,30],"object":[12,14,16,20,27],"observ":[9,24,27],"obtain":30,"one":[2,4,27],"onli":7,"onlin":[4,6],"onto":16,"open":[0,6,7,30,31],"oper":30,"opm":[2,3,4,5,7,16,22,23,30,31],"opm2":30,"opm3":30,"opm4":30,"opt":27,"optim":[22,24,27],"optimal_valu":[24,27],"optimizationst":[10,24,27],"option":[6,7,12,22,26],"org":[0,6],"origin":[16,18,23],"otherwis":2,"outcom":27,"output":[2,4,5,7,12,14,16,23],"output_fil":29,"overlay":28,"overview":5,"pa":2,"packag":[1,3,5,8],"page":[3,5],"paper":[4,30],"par_di":[24,27],"para":[11,12],"para_fil":[24,27],"para_nam":[24,27],"parallel":4,"paramet":[2,4,27],"pars":[14,25,26,27],"parse_arg":[10,13,14,24,27],"parse_argu":[10,24,26],"part":1,"path":[2,3,6,11,12,14,16,20,24,26,27,28],"pen":[2,12],"pen1":2,"pen2":2,"pen3":2,"pen4":2,"pen5":[2,4],"pen6":2,"per":27,"perform":0,"perm":2,"perm3":4,"permeabl":4,"permx1":2,"permx2":[2,4],"permx3":2,"permx4":2,"permx5":2,"permx6":2,"permz1":2,"permz2":2,"permz3":2,"permz4":2,"permz5":2,"permz6":2,"phase":30,"pip":[3,4,6,30],"platform":6,"pleas":[0,3,4],"plopm":[4,5,6,30],"plot":[4,7,14,18,22,27,28],"plot_cumulative_misfit":[10,24,27],"plot_hm_mismatch":[10,24,27],"plot_misfit":[10,24,27],"plot_observable_distribut":[10,24,27],"plot_optim":[10,24,27],"plot_optimization_detail":[10,24,27],"plot_parameter_distribut":[10,24,27],"plot_simulation_ensembl":[10,24,27],"png":[4,18],"pngs":[4,9,10,24,28,31],"pofff":[3,4,6,7,9,30],"pofff_path":[14,20],"pofffconfig":[10,11,12,14,20,21,22,23],"point":[1,2,12,16,21,23,25,27,28,30],"polish":[11,12],"polygon":21,"pop1":[15,16],"pop2":[15,16],"popsiz":[11,12],"poro1":2,"poro2":2,"poro3":2,"poro4":2,"poro5":2,"poro6":2,"porous":0,"porv":[11,12,15,16],"posit":[2,10,19,21],"posixpath":[12,16],"possibl":[3,4],"postprocess":[1,4,10,16,19,22,27],"postprocess_config":[10,19,20],"precipit":31,"precomput":7,"prefer":3,"prepar":[14,20],"prepare_jobs_fold":[10,13,14],"prepare_simul":[10,13,14],"prerequisit":6,"preserv":[16,18],"pressur":[2,11,12],"previous":[3,6],"principl":30,"problem":5,"process":[22,27],"process_optim":[10,24,27],"process_tun":[10,19,20],"profil":[4,30],"progress":27,"project":[0,6,31],"prompt":22,"properti":[2,16,21],"prs":3,"public":[2,3,4,5],"pull":[0,3,4],"push":3,"pushd":3,"pvtnum":30,"pwd":6,"py":[4,23,30],"py314":3,"pycopm":[3,5,6],"pylint":3,"pymm":5,"pyopmnearwel":5,"pyopmspe11":[5,30],"pytest":3,"python":[3,5,30,31],"python3":[6,30],"quantifi":26,"quantiti":16,"quick":31,"r":[3,6,27,30],"r2_cart_1cm_capmax2500pa":30,"r3_cp_1cmish_capmax2500pa":30,"r4_cart_1mm_capmax2500pa":30,"r5_cart_1mm_capmax2500pa_strictol":30,"rais":[0,3,4],"ran":4,"random":[4,30],"random_se":[11,12],"rang":4,"rate":[2,30],"raw":[12,30],"read":[21,27,29],"read_opm":[10,15,16],"read_realis":[10,24,27],"real":2,"realiz":27,"recent":6,"recombin":[11,12],"recommend":6,"red":6,"ref":30,"refer":[4,21],"refin":[2,21],"refinement_z":[10,19,21],"refxz":16,"regard":30,"region":[21,31],"rel":2,"relat":[3,5],"releas":[6,27],"reload":6,"remedi":31,"remov":[20,30],"render":30,"render_bcprop":[10,19,23],"render_copyd":[10,19,23],"render_equalreg":[10,19,23],"render_ert":[10,19,23],"render_everest":[10,19,23],"render_flow":[10,19,23],"render_monoton":[10,19,23],"render_satufunc":[10,19,23],"render_scal":[10,19,23],"replac":3,"repo":[3,6],"report":[5,30],"repositori":[3,6],"reproduc":[4,18,30],"request":[0,3,4,18,20],"requir":[3,4,6,18,30],"res":16,"reservoir":31,"resinsight":6,"resolut":[4,15,16],"resourc":[0,30],"restart":[16,30],"result":[2,5,6,9,18,22,26,27,30],"return":20,"review":3,"rig":2,"rise":3,"rng":[11,12,30],"round":18,"routin":14,"rst":[2,30],"ruff":3,"rule":5,"run":[3,4,5,6,7,10,14,19,23,24,25,27,30],"run2":12,"run_benchmark":[10,24,25],"run_error_t":[10,24,26],"run_everert":[10,24,27],"run_map":[10,24,28],"run_simulation_step":[10,13,14],"runtim":[12,20,27],"s":[0,2,3,6,7,24,27],"s11242":0,"sand":30,"sandv":0,"satmin":[18,28],"satnum":[4,30],"satufunc":23,"satur":[2,7,18,28],"save":[27,30],"save_figur":[10,24,27],"scale":23,"schedul":2,"score":18,"screenshot":9,"script":[1,3,4,6,14,17,30],"seala":[15,16],"sealb":[15,16],"sealt":[15,16],"search":[5,6],"section":[23,30],"see":[2,3,4,6,30],"seed":[4,30],"seek":5,"segment":[7,10,18,24,28],"select":[14,16,21,28],"send":3,"sensit":30,"sensor":[11,12,21],"sensor_ik":[11,12],"sensors_corner_point":[10,19,21],"sensors_structur":[10,19,21],"separ":7,"sequenc":[12,22],"seri":[16,22,29],"set":[2,4,6,7,12,30],"setup":30,"setup_matplotlib":[10,24,27],"setuptool":6,"sgas":16,"sh":6,"shorter":4,"show":[9,30],"sim":[15,16],"sim_en":[24,27],"similar":30,"simpli":6,"simul":[2,3,4,6,7,9,16,18,22,24,26,27,28,30,31],"simulationcontext":[10,15,16],"simxcent":21,"simzcent":21,"singl":[3,4,5,7,12,16,30],"site":31,"six":3,"size":[2,4],"skip":[6,22],"slow":7,"smspec":[15,16],"sni":[2,12],"sni1":2,"sni2":2,"sni3":2,"sni4":2,"sni5":2,"sni6":2,"softwar":5,"solver":30,"soon":3,"sourc":[0,2,3,5,7,11,12,31],"source1":2,"source2":2,"source_ik":[11,12],"spars":[16,26,29],"sparse_data":[4,10,15,16,29],"sparse_t":[15,16],"sparse_valu":[10,24],"sparseresult":[10,15,16],"spatial":[4,16,18,21,22,28,30],"spatial_map_xh":4,"spe11":31,"spe11a":30,"spe11a_spatial_map_48h":30,"specif":[6,20,21],"speed":[7,30],"split":4,"squash":3,"src":[3,27],"state":[16,27],"static":3,"statist":27,"step":[2,3,4,6,30],"storag":[0,31],"str":[12,18,20,21,22,27,29],"strategi":[11,12],"stricter":30,"structur":[12,21],"structured_handling_fluidflow":[10,19,21],"studi":[4,7,27,30,31],"stuttgart":30,"style":[4,21,23,27],"subfig":30,"submit":30,"submodul":[1,8,10],"subpackag":[1,5,8],"subprocess":30,"subsect":[9,30],"subsurfac":0,"subsystem":6,"succed":6,"succeed":[3,6],"success":27,"sudo":6,"sum":27,"summar":26,"summari":16,"super":6,"support":[2,4,5,6,7,30],"suptitl":30,"sustain":0,"sw":[2,12],"swi":[2,12],"swi1":2,"swi2":2,"swi3":2,"swi4":2,"swi5":2,"swi6":2,"system":[3,4,30],"t":[0,4,7,28,30],"tab20":27,"tabl":[2,9,26,30],"tag":6,"tailor":31,"tap":6,"target":3,"temperatur":[2,11,12],"templat":[23,30],"templeat":1,"tensor":2,"term":3,"termin":[4,6,30],"test":[2,3,4,6],"test_output":3,"texliv":6,"thick":[2,11,12,21,30],"thicknessmult":4,"thre1":2,"thre2":2,"thre3":2,"thre4":2,"thre5":2,"thre6":2,"thren":2,"threshold":[2,26],"tick":4,"time":[2,4,7,11,12,15,16,18,22,24,27,28,29,30],"time_initi":[15,16],"time_seri":[4,29],"times_data":[15,16],"times_summari":[15,16],"timeseries_fil":29,"tol":[11,12],"toler":30,"toml":[2,4,7,9,12,20,30],"tool":[0,3,4,6,7,30,31],"top":2,"tot_ev":[24,27],"total":[4,18],"track":27,"trade":30,"transp":0,"tri":[3,6,30],"trip":18,"true":[2,30],"trust":6,"tug":6,"tune":[2,11,12,20],"tunit":4,"tupl":[12,16,18,21],"turn":6,"tutori":[3,6],"two":[4,18],"txt":[3,6,23],"type":[2,4,6,12,21,31],"u":7,"ubuntu":[3,6],"uni":30,"unifi":12,"uniform":16,"unrst":[15,16],"unzip":30,"updat":[11,12,27],"upgrad":6,"use":[0,2,3,4,6,7,11,12,23,30,31],"user":[2,3,6,7],"utf8":30,"util":[1,8,10],"v":[4,30],"v2026":6,"valid":7,"valu":[2,7,16,20,23,29,30],"var":30,"variabl":[2,3,4,23],"vector":[11,12,16],"venv":6,"version":[3,6,10],"vertic":21,"via":[4,6],"virtual":6,"visit":3,"visual":[1,5,6,8,10],"vpofff":6,"vtks":31,"w":[0,30],"wasserstain":7,"wasserstein":[7,18,26,30],"websit":30,"welcom":[0,3,4],"well":[2,3,21,30,31],"wells_corner_point":[10,19,21],"wells_structur":[10,19,21],"wet":2,"wheel":6,"wide":16,"will":3,"window":5,"without":30,"work":[3,6],"worker":[11,12],"world":5,"write":[2,6,16,23,26,29,30],"write_dense_data":[10,15,16],"write_fil":[10,19,23],"write_keyword":[10,19,23],"write_sparse_data":[10,15,16],"writefil":[10,19],"wsl":6,"www":6,"x":[2,4,11,12,21,24,27,28],"x0":[11,12],"xcent":21,"xci":21,"xco2l":[4,30],"xcoord":[21,23],"xformat":30,"xlim":18,"xlnum":30,"xunit":30,"xyz":21,"y":6,"yformat":30,"yml":[3,4,6,23],"yournam":3,"yunit":30,"z":[2,4,11,12,21,28],"zcent":21,"zci":21,"zcoord":[21,23],"zcorn":23,"zip":30,"zlim":18,"znr":21,"zshrc":6,"ztop":21},"titles":["About pofff","pofff Python API","Configuration file","Contributing","Examples","Welcome to pofff\u2019s documentation!","Installation","Introduction","pofff","Output folder","pofff package","pofff.config package","pofff.config.config module","pofff.core package","pofff.core.pofff module","pofff.jobs package","pofff.jobs.data module","pofff.jobs.delete module","pofff.jobs.metric module","pofff.utils package","pofff.utils.inputvalues module","pofff.utils.mapproperties module","pofff.utils.runs module","pofff.utils.writefile module","pofff.visualization package","pofff.visualization.benchmark module","pofff.visualization.error_table module","pofff.visualization.everert module","pofff.visualization.maps module","pofff.visualization.sparse_values module","Publication","Related"],"titleterms":{"About":0,"ad":31,"add":4,"api":1,"benchmark":25,"binari":6,"brew":6,"build":6,"cite":0,"concept":7,"config":[11,12],"configur":2,"content":[10,11,13,15,19,24],"contribut":3,"core":[13,14],"data":16,"delet":17,"document":5,"error_t":26,"ert":9,"everert":27,"everest":9,"exampl":4,"exprecc":31,"file":2,"flow":6,"folder":9,"formula":6,"ground":3,"hello":4,"histori":4,"indic":5,"inputvalu":20,"instal":6,"introduct":7,"issu":3,"job":[15,16,17,18],"linux":6,"maco":6,"map":28,"mapproperti":21,"match":4,"metric":18,"micp":31,"modul":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"opm":6,"output":9,"overview":7,"packag":[6,10,11,13,15,19,24],"plopm":31,"pofff":[0,1,5,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"problem":3,"public":30,"pycopm":31,"pymm":31,"pyopmnearwel":31,"pyopmspe11":31,"python":[1,6],"relat":31,"report":3,"result":4,"rule":3,"run":[9,22],"s":5,"seek":3,"singl":9,"softwar":3,"sourc":6,"sparse_valu":29,"submodul":[11,13,15,19,24],"subpackag":10,"support":3,"tabl":5,"util":[19,20,21,22,23],"visual":[4,24,25,26,27,28,29],"welcom":5,"window":6,"world":4,"writefil":23}}) \ No newline at end of file +Search.setIndex({"alltitles":{"About pofff":[[0,null]],"Adding your results":[[4,"adding-your-results"]],"Binary packages":[[6,"binary-packages"]],"Brew formula for macOS":[[6,"brew-formula-for-macos"]],"Citing":[[0,"citing"]],"Concept":[[7,"concept"]],"Configuration file":[[2,null]],"Contribute to the software":[[3,"contribute-to-the-software"]],"Contributing":[[3,null]],"ERT":[[9,"ert"]],"Everest":[[9,"everest"]],"Examples":[[4,null]],"Ground Rules":[[3,"ground-rules"]],"Hello world":[[4,"hello-world"]],"History matching":[[4,"history-matching"]],"Indices and tables":[[5,"indices-and-tables"]],"Installation":[[6,null]],"Introduction":[[7,null]],"Module contents":[[10,"module-pofff"],[11,"module-pofff.config"],[13,"module-pofff.core"],[15,"module-pofff.jobs"],[19,"module-pofff.utils"],[24,"module-pofff.visualization"]],"OPM Flow":[[6,"opm-flow"]],"Output folder":[[9,null]],"Overview":[[7,"overview"]],"Publication":[[30,null]],"Python package":[[6,"python-package"]],"Related":[[31,null]],"Report issues or problems":[[3,"report-issues-or-problems"]],"Seek support":[[3,"seek-support"]],"Single run":[[9,"single-run"]],"Source build in Linux/Windows":[[6,"source-build-in-linux-windows"]],"Source build in macOS":[[6,"source-build-in-macos"]],"Submodules":[[11,"submodules"],[13,"submodules"],[15,"submodules"],[19,"submodules"],[24,"submodules"]],"Subpackages":[[10,"subpackages"]],"Visualization":[[4,"visualization"]],"Welcome to pofff\u2019s documentation!":[[5,null]],"ad-micp":[[31,"ad-micp"]],"expreccs":[[31,"expreccs"]],"plopm":[[31,"plopm"]],"pofff":[[1,"pofff"],[8,null]],"pofff Python API":[[1,null]],"pofff package":[[10,null]],"pofff.config package":[[11,null]],"pofff.config.config module":[[12,null]],"pofff.core package":[[13,null]],"pofff.core.pofff module":[[14,null]],"pofff.jobs package":[[15,null]],"pofff.jobs.data module":[[16,null]],"pofff.jobs.delete module":[[17,null]],"pofff.jobs.metric module":[[18,null]],"pofff.utils package":[[19,null]],"pofff.utils.inputvalues module":[[20,null]],"pofff.utils.mapproperties module":[[21,null]],"pofff.utils.runs module":[[22,null]],"pofff.utils.writefile module":[[23,null]],"pofff.visualization package":[[24,null]],"pofff.visualization.benchmark module":[[25,null]],"pofff.visualization.error_table module":[[26,null]],"pofff.visualization.everert module":[[27,null]],"pofff.visualization.maps module":[[28,null]],"pofff.visualization.sparse_values module":[[29,null]],"pycopm":[[31,"pycopm"]],"pymm":[[31,"pymm"]],"pyopmnearwell":[[31,"pyopmnearwell"]],"pyopmspe11":[[31,"pyopmspe11"]]},"docnames":["about","api","configuration_file","contributing","examples","index","installation","introduction","modules","output_folder","pofff","pofff.config","pofff.config.config","pofff.core","pofff.core.pofff","pofff.jobs","pofff.jobs.data","pofff.jobs.delete","pofff.jobs.metric","pofff.utils","pofff.utils.inputvalues","pofff.utils.mapproperties","pofff.utils.runs","pofff.utils.writefile","pofff.visualization","pofff.visualization.benchmark","pofff.visualization.error_table","pofff.visualization.everert","pofff.visualization.maps","pofff.visualization.sparse_values","publication","related"],"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","examples.rst","index.rst","installation.rst","introduction.rst","modules.rst","output_folder.rst","pofff.rst","pofff.config.rst","pofff.config.config.rst","pofff.core.rst","pofff.core.pofff.rst","pofff.jobs.rst","pofff.jobs.data.rst","pofff.jobs.delete.rst","pofff.jobs.metric.rst","pofff.utils.rst","pofff.utils.inputvalues.rst","pofff.utils.mapproperties.rst","pofff.utils.runs.rst","pofff.utils.writefile.rst","pofff.visualization.rst","pofff.visualization.benchmark.rst","pofff.visualization.error_table.rst","pofff.visualization.everert.rst","pofff.visualization.maps.rst","pofff.visualization.sparse_values.rst","publication.rst","related.rst"],"indexentries":{},"objects":{"":[[10,0,0,"-","pofff"]],"pofff":[[11,0,0,"-","config"],[13,0,0,"-","core"],[15,0,0,"-","jobs"],[19,0,0,"-","utils"],[24,0,0,"-","visualization"]],"pofff.config":[[12,0,0,"-","config"]],"pofff.config.config":[[12,1,1,"","CliConfig"],[12,1,1,"","PofffConfig"]],"pofff.config.config.CliConfig":[[12,2,1,"","deck"],[12,2,1,"","experiment"],[12,2,1,"","figures"],[12,2,1,"","fol"],[12,2,1,"","jobs"],[12,2,1,"","location"],[12,2,1,"","mcon"],[12,2,1,"","mode"],[12,2,1,"","msat"],[12,2,1,"","times"],[12,2,1,"","use"]],"pofff.config.config.PofffConfig":[[12,2,1,"","args"],[12,2,1,"","atol"],[12,2,1,"","boxa"],[12,2,1,"","boxb"],[12,2,1,"","boxc"],[12,2,1,"","callback"],[12,2,1,"","cap"],[12,2,1,"","constraints"],[12,2,1,"","cores"],[12,2,1,"","data"],[12,2,1,"","deck"],[12,2,1,"","delete"],[12,2,1,"","diffusion"],[12,2,1,"","dims"],[12,2,1,"","disp"],[12,2,1,"","dx"],[12,2,1,"","dz"],[12,2,1,"","enkf_alpha"],[12,2,1,"","ensembles"],[12,2,1,"","errors"],[12,2,1,"","ertargs"],[12,2,1,"","everert"],[12,2,1,"","experiment"],[12,2,1,"","facies"],[12,2,1,"","figures"],[12,2,1,"","fipnum"],[12,2,1,"","flow"],[12,2,1,"","fluxnum"],[12,2,1,"","fol"],[12,2,1,"","grid"],[12,2,1,"","hascellmaps"],[12,2,1,"","hm"],[12,2,1,"","init"],[12,2,1,"","inj"],[12,2,1,"","integrality"],[12,2,1,"","jobs"],[12,2,1,"","krn"],[12,2,1,"","krw"],[12,2,1,"","location"],[12,2,1,"","max_batch_num"],[12,2,1,"","max_function_evaluations"],[12,2,1,"","maxiter"],[12,2,1,"","maxtime"],[12,2,1,"","mcon"],[12,2,1,"","min_realizations_success"],[12,2,1,"","mode"],[12,2,1,"","monotonic"],[12,2,1,"","msat"],[12,2,1,"","mult_thickness"],[12,2,1,"","multpv"],[12,2,1,"","mutation"],[12,2,1,"","nxz"],[12,2,1,"","para"],[12,2,1,"","path"],[12,2,1,"","polish"],[12,2,1,"","popsize"],[12,2,1,"","porv"],[12,2,1,"","pressure"],[12,2,1,"","random_seed"],[12,2,1,"","recombination"],[12,2,1,"","rng"],[12,2,1,"","sensor_ik"],[12,2,1,"","sensors"],[12,2,1,"","source_ik"],[12,2,1,"","sources"],[12,2,1,"","strategy"],[12,2,1,"","temperature"],[12,2,1,"","thickness"],[12,2,1,"","times"],[12,2,1,"","tol"],[12,2,1,"","tuning"],[12,2,1,"","updating"],[12,2,1,"","use"],[12,2,1,"","vectorized"],[12,2,1,"","workers"],[12,2,1,"","x"],[12,2,1,"","x0"],[12,2,1,"","z"]],"pofff.core":[[14,0,0,"-","pofff"]],"pofff.core.pofff":[[14,3,1,"","check_cmdargs"],[14,3,1,"","cli_config"],[14,3,1,"","generate_figures"],[14,3,1,"","main"],[14,3,1,"","parse_args"],[14,3,1,"","prepare_jobs_folder"],[14,3,1,"","prepare_simulation"],[14,3,1,"","run_simulation_steps"]],"pofff.jobs":[[16,0,0,"-","data"],[17,0,0,"-","delete"],[18,0,0,"-","metric"]],"pofff.jobs.data":[[16,1,1,"","SimulationContext"],[16,1,1,"","SparseResults"],[16,3,1,"","compute_m_c"],[16,3,1,"","create_from_summary"],[16,3,1,"","dense_data"],[16,3,1,"","find_simulation_base"],[16,3,1,"","interpolate_sparse"],[16,3,1,"","main"],[16,3,1,"","read_opm"],[16,3,1,"","sparse_data"],[16,3,1,"","write_dense_data"],[16,3,1,"","write_sparse_data"]],"pofff.jobs.data.SimulationContext":[[16,2,1,"","actind"],[16,2,1,"","dense_t"],[16,2,1,"","dims"],[16,2,1,"","egrid"],[16,2,1,"","gxyz"],[16,2,1,"","ini"],[16,2,1,"","maps"],[16,2,1,"","norst"],[16,4,1,"","nxz"],[16,2,1,"","porv"],[16,2,1,"","resolution"],[16,2,1,"","sim"],[16,2,1,"","smspec"],[16,2,1,"","sparse_t"],[16,2,1,"","time_initial"],[16,2,1,"","times"],[16,2,1,"","times_summary"],[16,2,1,"","unrst"],[16,2,1,"","where"]],"pofff.jobs.data.SparseResults":[[16,2,1,"","ctx"],[16,2,1,"","dissa"],[16,2,1,"","dissb"],[16,2,1,"","dx"],[16,2,1,"","dz"],[16,2,1,"","fipnum"],[16,2,1,"","imma"],[16,2,1,"","immb"],[16,2,1,"","m_c"],[16,2,1,"","m_c_series"],[16,2,1,"","moba"],[16,2,1,"","mobb"],[16,2,1,"","pop1"],[16,2,1,"","pop2"],[16,2,1,"","seala"],[16,2,1,"","sealb"],[16,2,1,"","sealt"],[16,2,1,"","times_data"]],"pofff.jobs.metric":[[18,3,1,"","before_emd"],[18,3,1,"","calculate_emd"],[18,3,1,"","generate_segment_map"],[18,3,1,"","main"]],"pofff.utils":[[20,0,0,"-","inputvalues"],[21,0,0,"-","mapproperties"],[22,0,0,"-","runs"],[23,0,0,"-","writefile"]],"pofff.utils.inputvalues":[[20,3,1,"","build_config"],[20,3,1,"","extract_facies"],[20,3,1,"","load_toml"],[20,3,1,"","postprocess_config"],[20,3,1,"","process_tuning"]],"pofff.utils.mapproperties":[[21,3,1,"","classify_boxes"],[21,3,1,"","corner"],[21,3,1,"","corner_point_handling_fluidflower"],[21,3,1,"","get_cellmaps"],[21,3,1,"","get_lines"],[21,3,1,"","getpolygons"],[21,3,1,"","grid_and_properties"],[21,3,1,"","handle_thickness_map"],[21,3,1,"","positions"],[21,3,1,"","refinement_z"],[21,3,1,"","sensors_corner_point"],[21,3,1,"","sensors_structured"],[21,3,1,"","structured_handling_fluidflower"],[21,3,1,"","wells_corner_point"],[21,3,1,"","wells_structured"]],"pofff.utils.runs":[[22,3,1,"","_run"],[22,3,1,"","benchmark"],[22,3,1,"","data"],[22,3,1,"","ert"],[22,3,1,"","everest"],[22,3,1,"","flow"],[22,3,1,"","postprocess"]],"pofff.utils.writefile":[[23,3,1,"","compact_format"],[23,3,1,"","create_corner_point_grid"],[23,3,1,"","render_bcprop"],[23,3,1,"","render_copyd"],[23,3,1,"","render_equalreg"],[23,3,1,"","render_ert"],[23,3,1,"","render_everest"],[23,3,1,"","render_flow"],[23,3,1,"","render_monotonic"],[23,3,1,"","render_satufunc"],[23,3,1,"","render_scale"],[23,3,1,"","write_files"],[23,3,1,"","write_keywords"]],"pofff.visualization":[[25,0,0,"-","benchmark"],[26,0,0,"-","error_table"],[27,0,0,"-","everert"],[28,0,0,"-","maps"],[29,0,0,"-","sparse_values"]],"pofff.visualization.benchmark":[[25,3,1,"","benchmark"],[25,3,1,"","load_parser"],[25,3,1,"","run_benchmark"]],"pofff.visualization.error_table":[[26,3,1,"","load_sparse_csv"],[26,3,1,"","parse_arguments"],[26,3,1,"","run_error_table"]],"pofff.visualization.everert":[[27,1,1,"","Config"],[27,1,1,"","EnsembleState"],[27,1,1,"","OptimizationState"],[27,3,1,"","copy_tree_contents"],[27,3,1,"","ensure_dir"],[27,3,1,"","extract_best_simulation"],[27,3,1,"","extract_optimal_solution"],[27,3,1,"","initialize_ensemble"],[27,3,1,"","parse_args"],[27,3,1,"","plot_cumulative_misfit"],[27,3,1,"","plot_hm_mismatch"],[27,3,1,"","plot_misfit"],[27,3,1,"","plot_observable_distribution"],[27,3,1,"","plot_optimization"],[27,3,1,"","plot_optimization_details"],[27,3,1,"","plot_parameter_distributions"],[27,3,1,"","plot_simulation_ensemble"],[27,3,1,"","process_optimization"],[27,3,1,"","read_realisation"],[27,3,1,"","run"],[27,3,1,"","run_everert"],[27,3,1,"","save_figure"],[27,3,1,"","setup_matplotlib"]],"pofff.visualization.everert.Config":[[27,2,1,"","external"],[27,2,1,"","jobs"],[27,2,1,"","maps"],[27,2,1,"","min_concentration"],[27,2,1,"","min_saturation"],[27,2,1,"","path"],[27,2,1,"","run"],[27,2,1,"","times"]],"pofff.visualization.everert.EnsembleState":[[27,2,1,"","cumulative"],[27,2,1,"","idrealisation"],[27,2,1,"","miss_ens"],[27,2,1,"","n_e"],[27,2,1,"","n_i"],[27,2,1,"","no_obs"],[27,2,1,"","no_para"],[27,2,1,"","num_ens"],[27,2,1,"","observations"],[27,2,1,"","par_dis"],[27,2,1,"","para_file"],[27,2,1,"","para_names"],[27,2,1,"","sim_ens"],[27,2,1,"","simulations"]],"pofff.visualization.everert.OptimizationState":[[27,2,1,"","ind_batch"],[27,2,1,"","ind_sim"],[27,2,1,"","optimal_value"],[27,2,1,"","optimization"],[27,2,1,"","s"],[27,2,1,"","tot_eval"],[27,2,1,"","x"]],"pofff.visualization.maps":[[28,3,1,"","load_points"],[28,3,1,"","pngs"],[28,3,1,"","run_maps"],[28,3,1,"","segment"]],"pofff.visualization.sparse_values":[[29,3,1,"","main"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","function","Python function"],"4":["py","property","Python property"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:function","4":"py:property"},"terms":{"01_conmin":[4,30],"0f":30,"100e3":2,"10d":30,"10f":30,"1500e3":2,"1cm":30,"1cmish":30,"1e":[2,4,7,12,30],"1mm":30,"2e":[2,30],"2f":30,"3000e3":2,"300e3":2,"3e":[2,4],"50e3":2,"5d":30,"5e":[2,4,7,30],"5f":30,"636b45":30,"7e":30,"800e3":2,"9ca245":30,"9da347":30,"9fa44a":30,"A":[30,31],"About":5,"After":4,"All":[4,30],"An":[3,31],"Below":31,"Both":0,"Each":2,"For":[0,2,3,4,6,30],"Here":2,"If":[2,4,6,14,30],"In":3,"THAN":4,"The":[0,1,2,3,4,6,7,9,14,30],"Then":[4,6,30],"There":6,"These":30,"This":[4,7,30],"To":[4,6,30],"We":[3,4],"While":[4,6],"YOURS":4,"You":[4,6,30],"_2":[4,30],"_build":3,"_run":[10,19,22],"a0a64d":30,"a2a750":30,"a3a953":30,"a5aa56":30,"a6ac59":30,"a8ad5c":30,"a9af5f":30,"abb062":30,"abl":6,"abort":[22,27],"abov":7,"accept":3,"access":30,"accord":21,"accuraci":30,"across":12,"actind":[15,16],"action":[3,6],"activ":6,"ad":5,"adapt":30,"adb164":30,"add":[2,3,5,6,9,30],"addit":[3,4,30],"adjust":30,"aeb367":30,"ale":30,"alia":16,"also":[3,4,6,30],"altern":3,"alway":4,"anaconda":6,"analys":3,"ani":[3,12,14],"anoth":6,"answer":3,"api":[5,30],"appendix":30,"appendixb":[4,30],"appendixc":30,"appli":27,"approach":[0,3],"apt":6,"arg":[11,12,14],"argument":[7,12,14,22,25,26,27],"argv":[14,16,18,25,26,27,28],"array":2,"assign":[4,21],"atol":[11,12],"attempt":30,"auto":3,"automat":26,"avail":[6,30],"avoid":2,"b":30,"b0b46a":30,"b1b66d":30,"b3b770":30,"b4b973":30,"b6ba76":30,"b7bc79":30,"b9bd7c":30,"babf7f":30,"background":30,"base":[0,7,12,16,21,27,30,31],"basetemp":3,"bashrc":6,"basic":[7,12],"bcc082":30,"bcprop":23,"bec184":30,"befor":[3,12],"before_emd":[10,15,18],"behavior":18,"benchmark":[1,7,10,14,16,19,22,24,29,30,31],"best":27,"best_simul":9,"better":4,"bfc387":30,"bin":[2,3,6],"binari":[3,5],"bit":23,"black":[3,30],"bool":12,"bottom":2,"boundari":28,"box":21,"boxa":[11,12],"boxb":[11,12],"boxc":[11,12],"boxplot":27,"branch":6,"brew":5,"build":[2,3,5,14,20,21],"build_config":[10,19,20],"build_opm_mpi":6,"built":6,"c":[2,4,7,30],"c00b0b":30,"c1":7,"c10f0f":30,"c1c48a":30,"c2":7,"c21313":30,"c2c68d":30,"c31717":30,"c41b1b":30,"c4c790":30,"c5":7,"c51f1f":30,"c5c993":30,"c62323":30,"c72626":30,"c7ca96":30,"c82a2a":30,"c8cc99":30,"c92e2e":30,"ca3232":30,"cacd9c":30,"calcit":31,"calculate_emd":[10,15,18],"call":[1,4],"callabl":12,"callback":[11,12],"can":[3,4,6,30],"cap":[2,11,12],"capabl":4,"capillari":2,"cartesian":[2,30],"case":[4,30],"cb3636":30,"cbcf9f":30,"cbsfax":[4,30],"cc3a3a":30,"cco2":16,"cd":[6,30],"cd3e3e":30,"cdd0a2":30,"ce4141":30,"cell":[2,21],"center":[0,16],"central":12,"centroid":21,"cet_diverging_gwr_55_95_c38":30,"cf4545":30,"cfd":31,"cfd1a4":30,"cfg":[14,20,21,22,23,25,27],"cformat":[4,30],"chang":[3,4,30],"check":[3,6,14,31],"check_cmdarg":[10,13,14],"checker":3,"checkout":6,"choic":30,"ci":[3,6],"ci_pycopm_maco":3,"cite":5,"clabel":[4,30],"class":[12,16,27,28],"classify_box":[10,19,21],"cli":[12,14,20],"cli_config":[10,13,14],"cliconfig":[10,11,12,14,20],"clone":6,"closest":9,"cm":[6,30],"cmake":6,"cmd":[22,27],"cmdarg":14,"cnum":[4,30],"co":[4,30],"co2":[0,7,30,31],"coarser":30,"code":[3,6,10],"codebas":12,"collabor":3,"color":4,"com":[1,4,6,7,30],"combin":[7,12,14,30],"comma":7,"command":[4,6,12,14,22,25,26,27,30],"commit":3,"common":[4,6],"compact":23,"compact_format":[10,19,23],"compar":[4,30],"compare_all_time_seri":4,"comparison":[14,22,25,26],"comput":[7,16,18,21,26,30],"compute_m_c":[10,15,16],"comun":1,"concentr":[7,14,18,28,30],"concept":5,"config":[1,4,8,10,20,24,27],"configur":[4,5,6,7,12,14,20,22,27,30],"conmin":[18,28],"connect":28,"consid":[4,7],"consist":27,"constant":4,"constraint":[11,12],"construct":21,"contain":[1,3,4,9,12,16],"content":[1,3,5,8,20,27],"continu":18,"contour":28,"contribut":[0,5,6,27],"control":[26,30],"convert":18,"coord":23,"coordin":[2,21],"copi":[3,6,14,27],"copy_tree_cont":[10,24,27],"copyd":23,"core":[1,4,8,10,11,12,30],"corner":[1,2,10,12,19,21,23,30],"corner_point_handling_fluidflow":[10,19,21],"correct":4,"correspond":[4,21,30],"cov":3,"cover":14,"cp":27,"cpr_trueimp":30,"cpus":[4,30],"creat":[3,6,18,27],"create_corner_point_grid":[10,19,23],"create_from_summari":[10,15,16],"csiro":4,"csp":31,"cssr":[0,4,6,7,30],"csv":[4,7,16,26,29,30],"csvs":4,"ctick":30,"ctx":[15,16],"cumul":[24,27],"curl":30,"current":[6,7],"current_directori":6,"custom":[4,30],"d":[0,4,30],"d04949":30,"d0d3a7":30,"d14d4d":30,"d25151":30,"d2d4aa":30,"d35555":30,"d3d6ad":30,"d45959":30,"d55c5c":30,"d5d7b0":30,"d66060":30,"d6d9b3":30,"d76464":30,"d86868":30,"d8dab6":30,"d96c6c":30,"d9dcb9":30,"da7070":30,"darus":30,"data":[1,4,7,10,11,12,15,19,20,22,26,30],"datafil":30,"datum":2,"day":[4,30],"db7474":30,"dbddbc":30,"dc7777":30,"dcdfbf":30,"dcmake_build_typ":6,"dcmake_prefix_path":6,"dd7b7b":30,"de":30,"de7f7f":30,"decay":30,"deck":[1,11,12],"decreas":[4,30],"dedic":6,"dee0c1":30,"default":7,"defin":[2,12,14,25],"definit":[20,21],"delax":30,"delet":[10,11,12,15],"dens":16,"dense_data":[10,15,16],"dense_t":[15,16],"depend":[3,6],"deriv":[12,20],"describ":[3,7],"descript":[2,4],"detail":[4,30],"determin":21,"dev":[3,6],"develop":6,"df8383":30,"diagnost":27,"dict":[12,20],"differ":[1,4,30],"diffus":[2,11,12],"dim":[11,12,15,16],"dir":2,"direct":4,"directori":[3,14,27,30],"discret":[18,28],"disk":26,"disp":[11,12],"dispatch":21,"disperc1":2,"disperc2":2,"disperc3":2,"disperc4":2,"disperc5":2,"disperc6":2,"dissa":[15,16],"dissb":[15,16],"dissolv":7,"distanc":[7,18,26,30],"distribut":27,"divid":2,"dmar":2,"doc":3,"docmunet":4,"docs_adding_your_result":4,"docs_hello_world":4,"docs_visu":4,"document":[3,4,6,7],"doe":30,"doi":0,"done":6,"download":[1,6,30],"dpi":[4,27],"dst":27,"duse_mpi":6,"dvipng":6,"dwith_ndebug":6,"dx":[11,12,15,16,23],"dynam":31,"dz":[11,12,15,16,23],"e":[0,2,3,4,6,7,30],"e08787":30,"e0e1c4":30,"e18b8b":30,"e1e3c7":30,"e28f8f":30,"e39292":30,"e3e4ca":30,"e49696":30,"e4e6cd":30,"e59a9a":30,"e69e9":30,"e6e7d0":30,"e7a2a2":30,"e7e9d3":30,"e8a6a6":30,"e9aaaa":30,"e9ead6":30,"eaadad":30,"eaecd9":30,"ebb1b1":30,"ecb5b5":30,"eceddc":30,"eclfil":16,"eclips":23,"edb9b9":30,"edefdf":30,"edg":6,"edit":30,"eebdbd":30,"efc1c1":30,"eff0e1":30,"effici":23,"egrid":[15,16],"eight":4,"either":[6,21],"els":6,"em":31,"email":3,"emd":18,"enabl":[2,20,30],"encod":23,"end":[4,6,30],"enkf_alpha":[11,12],"enrich":20,"ensembl":[11,12,27],"ensemblest":[10,24,27],"ensure_dir":[10,24,27],"enterpris":6,"entri":[2,14,16,25,27],"environ":[3,6],"equalreg":23,"error":[4,11,12,26],"error_t":[10,24],"error_table_satmin":[4,30],"erst":16,"ert":[1,4,5,7,10,19,22,23,27],"ertarg":[11,12],"esf":30,"esmri":16,"etc":[4,23],"evalu":[2,4,7,14],"everert":[10,11,12,24],"everest":[1,4,5,7,10,19,22,23,27],"everest_iter_3":4,"exact":18,"exampl":[2,5,9,30],"except":2,"execut":[1,2,3,4,6,7,9,14,22,27,30],"experi":[4,11,12,28],"experiment":[4,7,18,26,28],"experimental_data":18,"export":[3,6],"exprecc":5,"extend":3,"extern":[24,27],"extra":6,"extract":[16,20,27,29],"extract_best_simul":[10,24,27],"extract_faci":[10,19,20],"extract_optimal_solut":[10,24,27],"f":[4,7,30],"f0c5c5":30,"f1c8c8":30,"f1f1e4":30,"f2cccc":30,"f2f3e7":30,"f3d0d0":30,"f4d4d4":30,"f4f4ea":30,"f5d8d8":30,"f5f6ed":30,"f6dcdc":30,"f7e0e0":30,"f7f7f0":30,"f8e3e3":30,"f8f9f3":30,"f9e7e7":30,"faci":[2,4,11,12,21],"facie1":2,"facie2":2,"facie3":2,"facie4":2,"facie5":2,"facie6":2,"factor":[21,30],"factori":[12,16,27],"faebeb":30,"fafaf6":30,"fail":22,"failur":27,"fair":[7,30],"fals":12,"familiar":3,"fbefef":30,"fbfcf9":30,"fcf3f3":30,"fdf7f7":30,"fdfdfc":30,"featur":0,"fefbfb":30,"ff0000":30,"ff0100":30,"ff0200":30,"ff0300":30,"ff0400":30,"ff0500":30,"ff0600":30,"ff0700":30,"ff0800":30,"ff0900":30,"ff0a00":30,"ff0b00":30,"ff0c00":30,"ff0d00":30,"ff0e00":30,"ff0f00":30,"ff1000":30,"ff1100":30,"ff1200":30,"ff1300":30,"ff1400":30,"ff1500":30,"ff1600":30,"ff1700":30,"ff1800":30,"ff1900":30,"ff1a00":30,"ff1b00":30,"ff1c00":30,"ff1d00":30,"ff1e00":30,"ff1f00":30,"ff2000":30,"ff2100":30,"ff2200":30,"ff2300":30,"ff2400":30,"ff2500":30,"ff2600":30,"ff2700":30,"ff2800":30,"ff2900":30,"ff2a00":30,"ff2b00":30,"ff2c00":30,"ff2d00":30,"ff2e00":30,"ff2f00":30,"ff3000":30,"ff3100":30,"ff3200":30,"ff3300":30,"ff3400":30,"ff3500":30,"ff3600":30,"ff3700":30,"ff3800":30,"ff3900":30,"ff3a00":30,"ff3b00":30,"ff3c00":30,"ff3d00":30,"ff3e00":30,"ff3f00":30,"ff4000":30,"ff4100":30,"ff4200":30,"ff4300":30,"ff4400":30,"ff4500":30,"ff4600":30,"ff4700":30,"ff4800":30,"ff4900":30,"ff4a00":30,"ff4b00":30,"ff4c00":30,"ff4d00":30,"ff4e00":30,"ff4f00":30,"ff5000":30,"ff5100":30,"ff5200":30,"ff5300":30,"ff5400":30,"ff5500":30,"ff5600":30,"ff5700":30,"ff5800":30,"ff5900":30,"ff5a00":30,"ff5b00":30,"ff5c00":30,"ff5d00":30,"ff5e00":30,"ff5f00":30,"ff6000":30,"ff6100":30,"ff6200":30,"ff6300":30,"ff6400":30,"ff6500":30,"ff6600":30,"ff6700":30,"ff6800":30,"ff6900":30,"ff6a00":30,"ff6b00":30,"ff6c00":30,"ff6d00":30,"ff6e00":30,"ff6f00":30,"ff7000":30,"ff7100":30,"ff7200":30,"ff7300":30,"ff7400":30,"ff7500":30,"ff7600":30,"ff7700":30,"ff7800":30,"ff7900":30,"ff7a00":30,"ff7b00":30,"ff7c00":30,"ff7d00":30,"ff7e00":30,"ff7f00":30,"ff8000":30,"ff8100":30,"ff8200":30,"ff8300":30,"ff8400":30,"ff8500":30,"ff8600":30,"ff8700":30,"ff8800":30,"ff8900":30,"ff8a00":30,"ff8b00":30,"ff8c00":30,"ff8d00":30,"ff8e00":30,"ff8f00":30,"ff9000":30,"ff9100":30,"ff9200":30,"ff9300":30,"ff9400":30,"ff9500":30,"ff9600":30,"ff9700":30,"ff9800":30,"ff9900":30,"ff9a00":30,"ff9b00":30,"ff9c00":30,"ff9d00":30,"ff9e00":30,"ff9f00":30,"ffa000":30,"ffa100":30,"ffa200":30,"ffa300":30,"ffa400":30,"ffa500":30,"ffa600":30,"ffa700":30,"ffa800":30,"ffa900":30,"ffaa00":30,"ffab00":30,"ffac00":30,"ffad00":30,"ffae00":30,"ffaf00":30,"ffb000":30,"ffb100":30,"ffb200":30,"ffb300":30,"ffb400":30,"ffb500":30,"ffb600":30,"ffb700":30,"ffb800":30,"ffb900":30,"ffba00":30,"ffbb00":30,"ffbc00":30,"ffbd00":30,"ffbe00":30,"ffbf00":30,"ffc000":30,"ffc100":30,"ffc200":30,"ffc300":30,"ffc400":30,"ffc500":30,"ffc600":30,"ffc700":30,"ffc800":30,"ffc900":30,"ffca00":30,"ffcb00":30,"ffcc00":30,"ffcd00":30,"ffce00":30,"ffcf00":30,"ffd000":30,"ffd100":30,"ffd200":30,"ffd300":30,"ffd400":30,"ffd500":30,"ffd600":30,"ffd700":30,"ffd800":30,"ffd900":30,"ffda00":30,"ffdb00":30,"ffdc00":30,"ffdd00":30,"ffde00":30,"ffdf00":30,"ffe000":30,"ffe100":30,"ffe200":30,"ffe300":30,"ffe400":30,"ffe500":30,"ffe600":30,"ffe700":30,"ffe800":30,"ffe900":30,"ffea00":30,"ffeb00":30,"ffec00":30,"ffed00":30,"ffee00":30,"ffef00":30,"fff000":30,"fff100":30,"fff200":30,"fff300":30,"fff400":30,"fff500":30,"fff600":30,"fff700":30,"fff800":30,"fff900":30,"fffa00":30,"fffb00":30,"fffc00":30,"fffd00":30,"ffffff":30,"fi":6,"field":[18,28],"fig":27,"figur":[4,6,7,9,11,12,14,22,25,27,30],"figure10":30,"figure10d":30,"figure10f":30,"figure3":30,"figure3a":30,"figure3b":30,"figure4":30,"figure4ish":30,"figure5":30,"figure5d":30,"figure5f":30,"figures10":30,"figures10d":30,"figures5":30,"figures5d":30,"file":[1,3,4,5,6,7,9,14,16,17,20,23,26,28,30],"file_1":18,"file_2":18,"file_nam":18,"filenam":[20,26,28],"final":[1,2,12,27,30],"find_simulation_bas":[10,15,16],"fip":21,"fipnum":[11,12,15,16,23],"first":2,"fit":27,"five":4,"fix":[2,3],"flag":[2,4,20,30],"flexibl":30,"float":[12,16,18,21,27],"float64":21,"flow":[2,3,4,5,7,10,11,12,19,22,23,30,31],"flow_maco":3,"fluidflow":[1,4,7,21],"flux":21,"fluxnum":[11,12,23],"fol":[11,12],"folder":[1,3,4,5,6,7,27,30],"follow":[2,4,6,7,9],"font":[4,6],"forecast":4,"fork":[0,3],"forlder":1,"format":[3,4,6,25,26,29,30],"formula":5,"found":4,"fraction":[4,30],"framework":[0,1,4,7,31],"friend":[7,30],"full":[2,6],"fulli":20,"function":[2,4,20,21,22,23],"fund":0,"g":[2,3,4,6,30],"gas":2,"gasda":0,"gaseous":7,"generat":[1,2,3,4,7,9,14,21,22,23,25,27,28,29,30,31],"generate_figur":[10,13,14],"generate_segment_map":[10,15,18],"geo":28,"geolog":[1,21,28,31],"geometri":1,"get":[3,6],"get_cellmap":[10,19,21],"get_lin":[10,19,21],"getpolygon":[10,19,21],"gif":[4,31],"git":[4,6,30],"github":[1,2,3,4,6,7,30],"githubusercont":30,"give":30,"given":4,"grid":[1,2,4,6,11,12,16,21,23,30],"grid_and_properti":[10,19,21],"ground":5,"growth":30,"gxyz":[15,16],"h":[0,4,30],"handl":[16,26],"handle_thickness_map":[10,19,21],"hascellmap":[11,12],"hat":6,"head":30,"header":26,"hello":5,"help":[3,6],"histori":[0,2,5,7],"hm":[4,11,12],"hold":27,"homebrew":6,"horizon":21,"host":[1,7],"hour":[7,16],"html":3,"https":[0,1,4,6,7,30],"ident":23,"idrealis":[24,27],"ignor":[3,14],"imag":[0,7,18,31],"imma":[15,16],"immb":[15,16],"implement":[7,23],"import":3,"includ":[6,23,30],"incompat":14,"increas":30,"ind_batch":[24,27],"ind_sim":[24,27],"index":[5,21],"indic":21,"induc":31,"indx":18,"inf":27,"inform":[4,16],"ini":[15,16],"init":[11,12],"initi":[2,4,20,27],"initialize_ensembl":[10,24,27],"inj":[2,4,11,12],"inject":[2,20],"input":[1,2,7,12,14,20,30],"inputvalu":[10,19],"insid":6,"instal":[3,4,5,30],"instead":30,"instruct":6,"int":[12,16,18,21,27],"int64":18,"integr":[11,12],"interact":22,"interest":[6,30,31],"interim":6,"interpol":16,"interpolate_spars":[10,15,16],"interval":4,"introduct":5,"invalid":14,"isotrop":4,"issu":[0,4,5],"iter":[2,4,12,27,30],"j":[0,27],"j5":6,"job":[1,8,10,11,12,14,24,27],"keyword":[4,23],"kg":2,"krn":[2,11,12],"krw":[2,11,12],"l":[6,30],"label":4,"landa":0,"larg":17,"last":4,"latest":6,"latex":6,"leakag":31,"length":23,"less":[4,30],"librari":6,"like":4,"limit":30,"line":[2,3,4,6,12,14,21,25,26,27,28,30],"linear":30,"link":6,"lint":6,"linux":5,"liquid":[2,4,30],"list":[12,14,16,21,23,27],"load":[16,20,21,26,28],"load_pars":[10,24,25],"load_point":[10,24,28],"load_sparse_csv":[10,24,26],"load_toml":[10,19,20],"local":[3,4],"locat":[1,11,12,16],"look":3,"loop":4,"low":4,"m":[0,2,4,6,7,9,30],"m_c":[15,16],"m_c_seri":[15,16],"mac":[4,30],"machin":[2,4,6,30],"maco":[3,5],"macport":6,"mactex":6,"main":[1,3,10,13,14,15,16,18,20,24,25,29,30],"maintain":3,"make":[3,6,14],"mako":[1,23,30],"mamba":6,"manag":6,"manual":30,"map":[2,4,10,15,16,18,21,24,27,30],"map_24h":4,"mapproperti":[10,19],"marb\u00e1n":0,"mask":[4,30],"maskthr":[4,30],"mass":[4,16,30],"master":6,"match":[0,2,5,7],"matplotlib":27,"matrix":7,"max":[2,12,30],"max_batch_num":[11,12],"max_function_evalu":[4,11,12],"maximum":4,"maxit":[11,12],"maxtim":[11,12],"mcon":[11,12],"mean":27,"measur":2,"med":0,"memori":27,"merg":3,"metric":[7,10,15,16,26],"micp":5,"microbi":31,"microsystem":31,"might":[3,4,6,30,31],"migrat":16,"min":[2,30],"min_concentr":[24,27],"min_realizations_success":[11,12],"min_satur":[24,27],"miniforg":6,"minimum":7,"minut":4,"misfit":27,"miss":[3,4,27],"miss_en":[24,27],"mit_m1":4,"mkdir":[6,30],"moba":[15,16],"mobb":[15,16],"mode":[11,12,14],"model":[2,12,21,31],"model_result":18,"modifi":[1,4,6],"modul":[1,5,8,31],"monoton":[11,12,23],"mpi":[6,30],"mpirun":[2,30],"msat":[11,12],"mult_thick":[2,11,12],"multipli":[2,4,21],"multpv":[11,12],"multx":30,"mutat":[11,12],"my_simul":4,"mypi":3,"n":[3,23],"n_e":[24,27],"n_i":[24,27],"name":[4,7,16],"name_of_input_fil":7,"namespac":14,"ncz":21,"ndarray":[12,16,18,21,23,27],"near":31,"need":[3,4,6,30],"new":[0,3,4,30],"newton":[2,30],"newtoniterationcount":30,"next":2,"nice":[3,6],"nkrn":[2,12],"nkrn1":2,"nkrn2":2,"nkrn3":2,"nkrn4":2,"nkrn5":2,"nkrn6":2,"nkrw":[2,12],"nkrw1":2,"nkrw2":2,"nkrw3":2,"nkrw4":2,"nkrw5":2,"nkrw6":2,"no_ob":[24,27],"no_para":[24,27],"non":2,"none":[4,7,12,14,16,18,20,21,22,23,25,26,27,28,29,30],"nordbotten":0,"normal":[12,14,20,21],"norst":[15,16],"note":4,"np":[2,30],"np6":4,"npe1":2,"npe2":2,"npe3":2,"npe4":2,"npe5":2,"npe6":2,"npen":[2,12],"npnt1":2,"npnt2":2,"npnt3":2,"npnt4":2,"npnt5":2,"npnt6":2,"npntn":2,"num_en":[24,27],"number":[2,4,21,30],"numer":18,"numpi":23,"nxz":[11,12,15,16],"o":[4,7,9,30],"object":[12,14,16,20,27],"observ":[9,24,27],"obtain":30,"one":[2,4,27],"onli":7,"onlin":[4,6],"onto":16,"open":[0,6,7,31],"oper":[14,30],"opm":[2,3,4,5,7,16,22,23,30,31],"opm2":30,"opm3":30,"opm4":30,"opt":27,"optim":[22,24,27],"optimal_valu":[24,27],"optimizationst":[10,24,27],"option":[6,7,12,14,22,26],"org":[0,6],"origin":[16,18,23],"otherwis":2,"outcom":27,"output":[2,4,5,7,12,14,16,23],"output_fil":29,"overlay":28,"overview":5,"pa":2,"packag":[1,3,5,8],"page":[3,5],"paper":[4,30],"par_di":[24,27],"para":[11,12],"para_fil":[24,27],"para_nam":[24,27],"parallel":4,"paramet":[2,4,14,27],"pars":[14,25,26,27],"parse_arg":[10,13,14,24,27],"parse_argu":[10,24,26],"part":1,"path":[2,3,6,11,12,14,16,20,24,26,27,28],"pen":[2,12],"pen1":2,"pen2":2,"pen3":2,"pen4":2,"pen5":[2,4],"pen6":2,"per":27,"perform":0,"perm":2,"perm3":4,"permeabl":4,"permx1":2,"permx2":[2,4],"permx3":2,"permx4":2,"permx5":2,"permx6":2,"permz1":2,"permz2":2,"permz3":2,"permz4":2,"permz5":2,"permz6":2,"phase":30,"pip":[3,4,6,30],"platform":6,"pleas":[0,3,4],"plopm":[4,5,6,30],"plot":[4,7,14,18,22,27,28],"plot_cumulative_misfit":[10,24,27],"plot_hm_mismatch":[10,24,27],"plot_misfit":[10,24,27],"plot_observable_distribut":[10,24,27],"plot_optim":[10,24,27],"plot_optimization_detail":[10,24,27],"plot_parameter_distribut":[10,24,27],"plot_simulation_ensembl":[10,24,27],"png":[4,18],"pngs":[4,9,10,24,28,31],"pofff":[3,4,6,7,9,30],"pofff_path":[14,20],"pofffconfig":[10,11,12,14,20,21,22,23],"point":[1,2,12,16,21,23,25,27,28,30],"polish":[11,12],"polygon":21,"pop1":[15,16],"pop2":[15,16],"popsiz":[11,12],"poro1":2,"poro2":2,"poro3":2,"poro4":2,"poro5":2,"poro6":2,"porous":0,"porv":[11,12,15,16],"posit":[2,10,19,21],"posixpath":[12,16],"possibl":[3,4],"postprocess":[1,4,10,16,19,22,27],"postprocess_config":[10,19,20],"precipit":31,"precomput":7,"prefer":3,"prepar":[14,20],"prepare_jobs_fold":[10,13,14],"prepare_simul":[10,13,14],"prerequisit":6,"preserv":[16,18],"pressur":[2,11,12],"previous":[3,4,6,30],"principl":30,"problem":5,"process":[22,27],"process_optim":[10,24,27],"process_tun":[10,19,20],"profil":[4,30],"progress":27,"project":[0,6,31],"prompt":22,"properti":[2,16,21],"prs":3,"public":[2,3,4,5],"pull":[0,3,4],"push":3,"pushd":3,"pvtnum":30,"pwd":6,"py":[4,23,30],"py314":3,"pycopm":[3,5,6],"pylint":3,"pymm":5,"pyopmnearwel":5,"pyopmspe11":[5,30],"pytest":3,"python":[3,5,30,31],"python3":[6,30],"quantifi":26,"quantiti":16,"quick":31,"r":[3,6,27,30],"r2_cart_1cm_capmax2500pa":30,"r3_cp_1cmish_capmax2500pa":30,"r4_cart_1mm_capmax2500pa":30,"r5_cart_1mm_capmax2500pa_strictol":30,"rais":[0,3,4,14],"ran":4,"random":[4,30],"random_se":[11,12],"rang":4,"rate":[2,30],"raw":[12,30],"read":[21,27,29],"read_opm":[10,15,16],"read_realis":[10,24,27],"real":2,"realiz":27,"recent":6,"recombin":[11,12],"recommend":6,"red":6,"ref":30,"refer":[4,21],"refin":[2,21],"refinement_z":[10,19,21],"refxz":16,"regard":30,"region":[21,31],"rel":2,"relat":[3,5],"releas":[6,27],"reload":6,"remedi":31,"remov":[20,30],"render_bcprop":[10,19,23],"render_copyd":[10,19,23],"render_equalreg":[10,19,23],"render_ert":[10,19,23],"render_everest":[10,19,23],"render_flow":[10,19,23],"render_monoton":[10,19,23],"render_satufunc":[10,19,23],"render_scal":[10,19,23],"replac":3,"repo":[3,6],"report":[5,30],"repositori":[3,6],"reproduc":[4,18,30],"request":[0,3,4,14,18,20],"requir":[3,4,6,18,30],"res":16,"reservoir":31,"resinsight":6,"resolut":[4,15,16],"resourc":[0,30],"restart":[16,30],"result":[2,5,6,9,14,18,22,26,27,30],"return":[14,20],"review":3,"rig":2,"rise":3,"rng":[11,12],"round":18,"routin":14,"rst":[2,30],"ruff":3,"rule":5,"run":[3,4,5,6,7,10,14,19,23,24,25,27,30],"run2":12,"run_benchmark":[10,24,25],"run_error_t":[10,24,26],"run_everert":[10,24,27],"run_map":[10,24,28],"run_simulation_step":[10,13,14],"runtim":[12,20,27],"s":[0,2,3,6,7,24,27],"s11242":0,"sand":30,"sandv":0,"satmin":[18,28],"satnum":[4,30],"satufunc":23,"satur":[2,7,14,18,28],"save":[27,30],"save_figur":[10,24,27],"scale":23,"schedul":2,"score":18,"screenshot":9,"script":[1,3,4,6,14,17,30],"seala":[15,16],"sealb":[15,16],"sealt":[15,16],"search":[5,6],"section":[23,30],"see":[2,3,4,6,30],"seed":[4,30],"seek":5,"segment":[7,10,18,24,28],"select":[14,16,21,28],"send":3,"sensit":30,"sensor":[11,12,21],"sensor_ik":[11,12],"sensors_corner_point":[10,19,21],"sensors_structur":[10,19,21],"separ":7,"sequenc":[12,22],"seri":[16,22,29],"set":[2,4,6,7,12,30],"setup":30,"setup_matplotlib":[10,24,27],"setuptool":6,"sgas":16,"sh":[4,6,30],"shorter":4,"show":[9,30],"sim":[15,16],"sim_en":[24,27],"similar":30,"simpli":6,"simul":[2,3,4,6,7,9,16,18,22,24,26,27,28,30,31],"simulationcontext":[10,15,16],"simxcent":21,"simzcent":21,"singl":[3,4,5,7,12,16,30],"site":31,"six":3,"size":[2,4],"skip":[6,22],"slow":7,"smspec":[15,16],"sni":[2,12],"sni1":2,"sni2":2,"sni3":2,"sni4":2,"sni5":2,"sni6":2,"softwar":5,"solver":30,"soon":3,"sourc":[0,2,3,5,7,11,12,31],"source1":2,"source2":2,"source_ik":[11,12],"spars":[16,26,29],"sparse_data":[4,10,15,16,29],"sparse_t":[15,16],"sparse_valu":[10,24],"sparseresult":[10,15,16],"spatial":[4,16,18,21,22,28,30],"spatial_map_xh":4,"spe11":31,"spe11a":30,"spe11a_spatial_map_48h":30,"special":14,"specif":[6,20,21],"speed":[7,30],"split":4,"squash":3,"src":[3,27],"state":[16,27],"static":3,"statist":27,"step":[2,3,4,6,30],"storag":[0,31],"str":[12,14,18,20,21,22,27,29],"strategi":[11,12],"stricter":30,"structur":[12,21],"structured_handling_fluidflow":[10,19,21],"studi":[4,7,27,30,31],"stuttgart":30,"style":[4,21,23,27],"subfig":30,"submit":30,"submodul":[1,8,10],"subpackag":[1,5,8],"subsect":[9,30],"subsurfac":0,"subsystem":6,"succed":6,"succeed":[3,6],"success":27,"sudo":6,"sum":27,"summar":26,"summari":16,"super":6,"support":[2,4,5,6,7,30],"suptitl":30,"sustain":0,"sw":[2,12],"swi":[2,12],"swi1":2,"swi2":2,"swi3":2,"swi4":2,"swi5":2,"swi6":2,"system":[3,4,30],"systemexit":14,"t":[0,4,7,28,30],"tab20":27,"tabl":[2,9,26,30],"tag":6,"tailor":31,"tap":6,"target":3,"temperatur":[2,11,12],"templat":[23,30],"templeat":1,"tensor":2,"term":3,"termin":[4,6,30],"test":[2,3,4,6,30],"test_output":3,"texliv":6,"thick":[2,11,12,21,30],"thicknessmult":4,"thre1":2,"thre2":2,"thre3":2,"thre4":2,"thre5":2,"thre6":2,"thren":2,"threshold":[2,14,26],"tick":4,"time":[2,4,7,11,12,14,15,16,18,22,24,27,28,29,30],"time_initi":[15,16],"time_seri":[4,29],"times_data":[15,16],"times_summari":[15,16],"timeseries_fil":29,"tol":[11,12],"toler":30,"toml":[2,4,7,9,12,20,30],"tool":[0,3,4,6,7,30,31],"top":2,"tot_ev":[24,27],"total":[4,18],"track":27,"trade":30,"transp":0,"tri":[3,6,30],"trip":18,"true":[2,30],"trust":6,"tug":6,"tune":[2,11,12,20],"tunit":4,"tupl":[12,16,18,21],"turn":6,"tutori":[3,6],"two":[4,18],"txt":[3,6,23],"type":[2,4,6,12,21,31],"u":7,"ubuntu":[3,6],"uni":30,"unifi":12,"uniform":16,"unrst":[15,16],"unzip":30,"updat":[11,12,27],"upgrad":6,"use":[0,2,3,4,6,7,11,12,23,30,31],"user":[2,3,6,7],"util":[1,8,10],"v":[4,30],"v2026":6,"valid":[7,14],"valu":[2,7,16,20,23,29,30],"variabl":[2,3,4,23],"vector":[11,12,16],"venv":6,"version":[3,6,10],"vertic":21,"via":[4,6],"virtual":6,"visit":3,"visual":[1,5,6,8,10],"vpofff":6,"vtks":31,"w":[0,30],"wasserstain":7,"wasserstein":[7,18,26,30],"websit":30,"welcom":[0,3,4],"well":[2,3,21,30,31],"wells_corner_point":[10,19,21],"wells_structur":[10,19,21],"wet":2,"wheel":6,"wide":16,"will":[3,30],"window":5,"without":30,"work":[3,6],"worker":[11,12],"workflow":14,"world":5,"write":[2,6,16,23,26,29],"write_dense_data":[10,15,16],"write_fil":[10,19,23],"write_keyword":[10,19,23],"write_sparse_data":[10,15,16],"writefil":[10,19],"wsl":6,"www":6,"x":[2,4,11,12,21,24,27,28],"x0":[11,12],"xcent":21,"xci":21,"xco2l":[4,30],"xcoord":[21,23],"xformat":30,"xlim":18,"xlnum":30,"xunit":30,"xyz":21,"y":6,"yformat":30,"yml":[3,4,6,23],"yournam":3,"yunit":30,"z":[2,4,11,12,21,28],"zcent":21,"zci":21,"zcoord":[21,23],"zcorn":23,"zlim":18,"znr":21,"zshrc":6,"ztop":21},"titles":["About pofff","pofff Python API","Configuration file","Contributing","Examples","Welcome to pofff\u2019s documentation!","Installation","Introduction","pofff","Output folder","pofff package","pofff.config package","pofff.config.config module","pofff.core package","pofff.core.pofff module","pofff.jobs package","pofff.jobs.data module","pofff.jobs.delete module","pofff.jobs.metric module","pofff.utils package","pofff.utils.inputvalues module","pofff.utils.mapproperties module","pofff.utils.runs module","pofff.utils.writefile module","pofff.visualization package","pofff.visualization.benchmark module","pofff.visualization.error_table module","pofff.visualization.everert module","pofff.visualization.maps module","pofff.visualization.sparse_values module","Publication","Related"],"titleterms":{"About":0,"ad":31,"add":4,"api":1,"benchmark":25,"binari":6,"brew":6,"build":6,"cite":0,"concept":7,"config":[11,12],"configur":2,"content":[10,11,13,15,19,24],"contribut":3,"core":[13,14],"data":16,"delet":17,"document":5,"error_t":26,"ert":9,"everert":27,"everest":9,"exampl":4,"exprecc":31,"file":2,"flow":6,"folder":9,"formula":6,"ground":3,"hello":4,"histori":4,"indic":5,"inputvalu":20,"instal":6,"introduct":7,"issu":3,"job":[15,16,17,18],"linux":6,"maco":6,"map":28,"mapproperti":21,"match":4,"metric":18,"micp":31,"modul":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"opm":6,"output":9,"overview":7,"packag":[6,10,11,13,15,19,24],"plopm":31,"pofff":[0,1,5,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"problem":3,"public":30,"pycopm":31,"pymm":31,"pyopmnearwel":31,"pyopmspe11":31,"python":[1,6],"relat":31,"report":3,"result":4,"rule":3,"run":[9,22],"s":5,"seek":3,"singl":9,"softwar":3,"sourc":6,"sparse_valu":29,"submodul":[11,13,15,19,24],"subpackag":10,"support":3,"tabl":5,"util":[19,20,21,22,23],"visual":[4,24,25,26,27,28,29],"welcom":5,"window":6,"world":4,"writefil":23}}) \ No newline at end of file diff --git a/docs/text/examples.rst b/docs/text/examples.rst index 01928a8..a4446a2 100644 --- a/docs/text/examples.rst +++ b/docs/text/examples.rst @@ -17,6 +17,14 @@ The following is the figure `map_24h.png`. You can compare your example results .. figure:: figs/map_24h.png +.. tip:: + + All previous commands can be executed as (`docs_hello_world.sh `_): + + .. code-block:: bash + + . ./tests/scripts/docs_hello_world.sh + =================== Adding your results =================== @@ -28,7 +36,7 @@ The `publication `_ f pofff -i results.toml -o YOURS -m single -t 24,48,72,96,120 -f all -generates the figures in the paper in addition to the new simulation labeled as the name of the output folder ("YOURS" in this case), e.g., for the compare_all_time_series.png: +This generates the figures in the paper in addition to the new simulation labeled as the name of the output folder ("YOURS" in this case), e.g., for the compare_all_time_series.png: .. figure:: figs/compare_all_time_series.png @@ -38,6 +46,14 @@ generates the figures in the paper in addition to the new simulation labeled as We welcome pull request with your configuration files to the examples folder for cases with better results (less error in the error_table_satmin-0.01_conmin-0.1.csv). +.. tip:: + + All previous commands can be executed as (`docs_adding_your_results.sh `_): + + .. code-block:: bash + + . ./tests/scripts/docs_adding_your_results.sh + .. note:: One can always also generate the sparse_data.csv, time_series.csv, and spatial_map_Xh.csv files using other simulators and use the pofff tool to compare @@ -112,6 +128,13 @@ Then the following GIF is generated by: The total simulation time for this GIF (five days of experiment) using eight CPUs for OPM Flow in a Mac is **LESS THAN TWO MINUTES!!!** - See the `plopm online docmunetation `_ for additional information of supported flag parameters to generate customized PNGs and GIFs. + +.. tip:: + + All previous commands can be executed as (`docs_visualization.sh `_): + + .. code-block:: bash + + . ./tests/scripts/docs_visualization.sh diff --git a/docs/text/publication.rst b/docs/text/publication.rst index 829e72a..c24cbf7 100644 --- a/docs/text/publication.rst +++ b/docs/text/publication.rst @@ -112,37 +112,9 @@ in combination to Python commands, which gives flexibility to generate the diffe The Wasserstein distance (obtained from the generated error_table_satmin-0.01_conmin-0.1.csv) for the base case and random seed for the sensitivity study regarding setup choices in Table 8 can be generated by executing the `sensitivity.py `_ script (if you have a Mac as well, then execute the script in -there to see the sensitivity to the operative system). For example, the content of this Python script is the following: - -.. code-block:: python - - import subprocess - from mako.template import Template - - mytemplate = Template(filename="appendixc.mako") - for case, rng in zip(["base", "rng"], [7, 11]): - # Modify the number of cores according to your resources - var = {"cores": 64, "rng": rng, "cnv": 1e-2, "cnv_relaxed": 1} - filledtemplate = mytemplate.render(**var) - with open( - f"{case}.toml", - "w", - encoding="utf8", - ) as file: - file.write(filledtemplate) - subprocess.run( - [ - "pofff", - "-i", f"{case}.toml", - "-o", case, - "-m", "everest", - "-t", "24,48,72,96,120", - "-f", "all", - ], - check=True, - ) - -The values in Table 7 and Figure 8 can be generated by (increase or decrease the number of cores to adapt to your interest and computer limitations): +there to see the sensitivity to the operative system). + +The values in Table 7 and Figure 12 can be generated by (increase or decrease the number of cores to adapt to your interest and computer limitations): .. code-block:: bash @@ -157,3 +129,18 @@ Finally, for accuracy-time trade-off Table 9 you can run: .. warning:: These scripts are set to run with 64 cores, then you should edit them if your machine has less available cpus. + + +.. tip:: + + All previous commands can be executed as (`publication.sh `_): + + .. code-block:: bash + + . ./tests/scripts/publication.sh + + This will run the cases with 64 cores. To run the case with 16 cores instead (in a coarser grid as well), run it as: + + .. code-block:: bash + + . ./tests/scripts/publication.sh 16 diff --git a/publication/profiling.py b/publication/profiling.py index 4be8cd8..71cd156 100644 --- a/publication/profiling.py +++ b/publication/profiling.py @@ -57,12 +57,17 @@ def collect_simulation_times(root: Path) -> list: """Collect TCPU times from successful OPM Flow runs.""" times: list[float] = [] + if (root / "batch_0/realization-0").is_dir(): + realization = "realization-0" + else: + realization = "realization_0" + for batch in sorted(root.iterdir()): - realization = batch / "realization_0" - if not realization.exists(): + realization_num = batch / realization + if not realization_num.exists(): continue - for evaluation in sorted(realization.iterdir()): + for evaluation in sorted(realization_num.iterdir()): if (evaluation / "OK").exists(): summary = OpmSummary(str(evaluation / "APPENDIXC.SMSPEC")) times.append(summary["TCPU"][-1]) @@ -104,7 +109,7 @@ def main() -> None: # --- Optimization ----------------------------------------------------- t0 = time.perf_counter() - run(["everest", "run", "everest.yml"], cwd=WORKDIR) + run(["everest", "run", "everest.yml", "--skip-prompt"], cwd=WORKDIR) t1 = time.perf_counter() optimization = t1 - t0 @@ -188,7 +193,7 @@ def main() -> None: axis.set_xlabel("Number of cores") axis.set_xticks(NCORES[::-1]) axis.set_yticks(total_times[::-1]) - axis.set_ylim(1500, 30000) + # axis.set_ylim(1500, 30000) fig.savefig(PROFILING_DIR / "figure12.png") diff --git a/publication/sensitivity.py b/publication/sensitivity.py index 34acb16..fb7aa33 100644 --- a/publication/sensitivity.py +++ b/publication/sensitivity.py @@ -3,12 +3,27 @@ """Table 8 in the pofff paper""" +import csv import subprocess +from pathlib import Path from mako.template import Template +OUTPUT_DIR = Path("sensitivity") + + +def get_value(file, row_num=15, col_num=10): + """Read the WD from error_table_satmin-0.01_conmin-0.1.csv""" + with open(file, "r", newline="", encoding="utf-8") as ff: + reader = list(csv.reader(ff)) + return reader[row_num - 1][col_num - 1] + + +OUTPUT_DIR.mkdir(exist_ok=True) mytemplate = Template(filename="appendixc.mako") -for case, rng in zip(["base", "rng"], [7, 11]): +cases = ["base", "rng"] +values = [] +for case, rng in zip(cases, [7, 11]): # Modify the number of cores according to your resources var = {"cores": 64, "rng": rng, "cnv": 1e-2, "cnv_relaxed": 1} filledtemplate = mytemplate.render(**var) @@ -16,8 +31,8 @@ f"{case}.toml", "w", encoding="utf8", - ) as file: - file.write(filledtemplate) + ) as f: + f.write(filledtemplate) subprocess.run( [ "pofff", @@ -34,3 +49,10 @@ ], check=True, ) + csv_file = f"{case}/figures/best_simulation/error_table_satmin-0.01_conmin-0.1.csv" + + values.append(get_value(csv_file)) + +with open(f"{OUTPUT_DIR!s}/table8.txt", "w", encoding="utf-8") as f: + f.write(" Base case Random seed\n") + f.write(f"Wasserstein distance [g⋅cm] {values[0]} {values[1]}\n") diff --git a/pyproject.toml b/pyproject.toml index 3d9364d..f7d412e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ classifiers = [ ] dependencies = [ "alive-progress", - "ert==23.0.1", + "ert==24.0.0", "mako", "matplotlib", "opencv-python", diff --git a/src/pofff/core/pofff.py b/src/pofff/core/pofff.py index 872df5c..4399bc0 100644 --- a/src/pofff/core/pofff.py +++ b/src/pofff/core/pofff.py @@ -1,9 +1,11 @@ # SPDX-FileCopyrightText: 2025-2026 NORCE Research AS # SPDX-License-Identifier: GPL-3.0 +# pylint: disable=R0912 """Main entry script for pofff.""" import argparse +import math import os import shutil from pathlib import Path @@ -15,9 +17,10 @@ from pofff.utils.writefile import write_files -def main() -> None: +def main(argv: list[str] | None = None) -> None: """Main pofff execution routine.""" - args = parse_args() + args = parse_args(argv) + check_cmdargs(args) pofff_path = Path(__file__).resolve().parents[1] cli = cli_config(args, pofff_path=pofff_path) @@ -157,7 +160,7 @@ def generate_figures(cfg: PofffConfig) -> None: benchmark(cfg) -def parse_args(): +def parse_args(argv: list[str] | None = None) -> argparse.Namespace: """Define and parse command-line arguments.""" parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter, @@ -235,4 +238,106 @@ def parse_args(): help="Use precomputed Wasserstein distances if available " "(set to '0' to recompute)", ) - return parser.parse_known_args()[0] + return parser.parse_args(argv) + + +def check_cmdargs(cmdargs: argparse.Namespace) -> None: + """Validate command-line arguments and incompatible operations. + + The checks cover input and output paths, evaluation times, saturation and + concentration thresholds, options ignored by specialized workflows, and + combinations that do not result in any operation. + + Parameters + ---------- + cmdargs + Parsed arguments returned by :func:`parse_args`. + + Raises + ------ + SystemExit + If an argument is invalid or an incompatible combination is requested. + """ + if not cmdargs.output: + print("\nInvalid value for '-o', the output directory cannot be empty.\n") + raise SystemExit(1) + mode = cmdargs.mode + if mode not in {"fair", "none"}: + if not cmdargs.input: + print("\nInvalid value for '-i', the input file cannot be empty.\n") + raise SystemExit(1) + if not cmdargs.input.lower().endswith(".toml"): + print( + f"\nInvalid extension for input file '-i {cmdargs.input}', " + "the valid extension is .toml.\n" + ) + raise SystemExit(1) + times = cmdargs.times + try: + time_values = [float(value.strip()) for value in times.split(",")] + except ValueError: + time_values = [] + if not time_values or any( + not math.isfinite(value) or value <= 0 for value in time_values + ): + print( + f"\nInvalid value '-t {times}', expected positive finite numbers " + "separated by commas, e.g., '-t 24,48,72'.\n" + ) + raise SystemExit(1) + minimum_saturation = cmdargs.minimumsaturation + try: + minimum_saturation_value = float(minimum_saturation) + except ValueError: + minimum_saturation_value = float("nan") + if ( + not math.isfinite(minimum_saturation_value) + or minimum_saturation_value < 0 + or minimum_saturation_value > 1 + ): + print( + f"\nInvalid value '-s {minimum_saturation}', expected a finite " + "number between 0 and 1.\n" + ) + raise SystemExit(1) + minimum_concentration = cmdargs.minimumconcentration + try: + minimum_concentration_value = float(minimum_concentration) + except ValueError: + minimum_concentration_value = float("nan") + valid_concentrations = [5e-2, 1e-1] + if ( + not math.isfinite(minimum_concentration_value) + or minimum_concentration_value not in valid_concentrations + ): + print( + f"\nInvalid value '-c {minimum_concentration}', valid values are " + "'5e-2' and '1e-1'.\n" + ) + raise SystemExit(1) + if mode == "fair": + ignored_options = { + "-i": ("input", "input.toml"), + "-f": ("figures", "basic"), + "-t": ("times", "0.25"), + "-e": ("experiment", "C2"), + } + invalid_options = [ + option + for option, (name, default) in ignored_options.items() + if getattr(cmdargs, name) != default + ] + if invalid_options: + print( + "\nInvalid option for '-m fair'; this workflow uses its own " + "input data, figure mode, evaluation times, and experiment. " + f"Invalid options: {', '.join(invalid_options)}.\n" + ) + raise SystemExit(1) + if mode == "files" and cmdargs.figures == "all": + print( + "\nInvalid combination, '-f all' cannot be used with '-m files' " + "because this mode only generates input files. Use '-f none' or " + "omit the '-f' option.\n" + ) + raise SystemExit(1) diff --git a/src/pofff/templates/everest.mako b/src/pofff/templates/everest.mako index 84e5afa..d323cf9 100644 --- a/src/pofff/templates/everest.mako +++ b/src/pofff/templates/everest.mako @@ -2,7 +2,6 @@ controls: - name: para type: generic_control min: 0 - control_type: integer perturbation_magnitude: 0.01 # Not used for scipy/differential_evolution, but requiered by everest variables: ${variables_block} diff --git a/src/pofff/utils/runs.py b/src/pofff/utils/runs.py index 103d1c3..b1793e8 100644 --- a/src/pofff/utils/runs.py +++ b/src/pofff/utils/runs.py @@ -13,6 +13,7 @@ from pofff.visualization.error_table import run_error_table from pofff.visualization.everert import run_everert from pofff.visualization.maps import run_maps +from pofff.visualization.sparse_values import main as sparse_values def _run(cmd: Sequence[str]) -> None: @@ -77,13 +78,7 @@ def benchmark(cfg: PofffConfig) -> None: ] run_maps(args) - if cfg.mode != "fair": - _run( - [ - "python", - str(cfg.path / "visualization" / "sparse_values.py"), - ] - ) + sparse_values(timeseries_file=f"{cfg.location}/time_series.csv") args = [ "-f", diff --git a/src/pofff/visualization/everert.py b/src/pofff/visualization/everert.py index 28dff14..914ee21 100755 --- a/src/pofff/visualization/everert.py +++ b/src/pofff/visualization/everert.py @@ -369,10 +369,15 @@ def process_optimization(cfg: Config) -> OptimizationState: batches = sorted(root.iterdir(), key=lambda p: int(p.name.split("_")[1])) + if (root / "batch_0/realization-0").is_dir(): + realization = "realization-0" + else: + realization = "realization_0" + for batch in batches: batch_index = int(batch.name.split("_")[1]) evals = sorted( - (batch / "realization_0").iterdir(), + (batch / realization).iterdir(), key=lambda p: int(p.name.split("_")[1]), ) @@ -433,11 +438,16 @@ def extract_optimal_solution(cfg: Config, opt: OptimizationState): dst = cfg.path / "figures/best_simulation" ensure_dir(dst) + if (cfg.path / "everest_output/sim_output/batch_0/realization-0").is_dir(): + realization = "realization-0" + else: + realization = "realization_0" + src = ( cfg.path / "everest_output/sim_output" / f"batch_{opt.ind_batch}" - / "realization_0" + / realization / f"evaluation_{opt.ind_sim}" / "para.json" ) @@ -480,9 +490,14 @@ def extract_optimal_solution(cfg: Config, opt: OptimizationState): finally: os.chdir(old_cwd) + if (cfg.path / "everest_output/sim_output/batch_0/realization-0").is_dir(): + realization = "realization-0" + else: + realization = "realization_0" + print( f"Best: {cfg.path}/everest_output/sim_output/" - f"batch_{opt.ind_batch}/realization_0/" + f"batch_{opt.ind_batch}/{realization}/" f"evaluation_{opt.ind_sim}" ) diff --git a/tests/scripts/docs_adding_your_results.sh b/tests/scripts/docs_adding_your_results.sh new file mode 100644 index 0000000..d916197 --- /dev/null +++ b/tests/scripts/docs_adding_your_results.sh @@ -0,0 +1,7 @@ +OUT="test_outputs/docs_adding_your_results" +. tests/scripts/initialize_output_folders.sh $OUT +mkdir $OUT +WHR="$OUT/results.toml" +cp "publication/results.toml" $WHR +sed -i.bak "s/flow --/mpirun -np 8 flow --/g" $WHR && rm -f $WHR.bak +pofff -i $WHR -o $OUT -m single -t 24,48,72,96,120 -f all diff --git a/tests/scripts/docs_all.sh b/tests/scripts/docs_all.sh new file mode 100644 index 0000000..cb1d85f --- /dev/null +++ b/tests/scripts/docs_all.sh @@ -0,0 +1,7 @@ +# Run as . tests/scripts/docs_all.sh +. tests/scripts/docs_hello_world.sh & +. tests/scripts/docs_adding_your_results.sh & +. tests/scripts/docs_visualization.sh & +wait + +. tests/scripts/docs_check_outputs.sh diff --git a/tests/scripts/docs_check_outputs.sh b/tests/scripts/docs_check_outputs.sh new file mode 100644 index 0000000..713bcf1 --- /dev/null +++ b/tests/scripts/docs_check_outputs.sh @@ -0,0 +1,28 @@ +files=( + "test_outputs/docs_hello_world/map_24h.png" + "test_outputs/docs_adding_your_results/map_120h.png" + "test_outputs/docs_adding_your_results/compare_all_time_series.png" + "test_outputs/docs_adding_your_results/compare_all_sparse.png" + "test_outputs/docs_adding_your_results/error_table_satmin-0.01_conmin-0.1.csv" + "test_outputs/docs_adding_your_results/zoom_means_segmented_snapshots_satmin-0.01_conmin-0.1.png" + "test_outputs/docs_visualization/docs_visualization_xco2l.gif" +) + +missing_file="test_outputs/missing_docs_files.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 and files exist." +else + echo "$missing figure(s) or file(s) missing." + echo "See $missing_file" +fi diff --git a/tests/scripts/docs_hello_world.sh b/tests/scripts/docs_hello_world.sh new file mode 100644 index 0000000..2205300 --- /dev/null +++ b/tests/scripts/docs_hello_world.sh @@ -0,0 +1,4 @@ +WHR="examples/single" +OUT="test_outputs/docs_hello_world" +. tests/scripts/initialize_output_folders.sh $OUT +pofff -i $WHR.toml -o $OUT -t 24,48,72 diff --git a/tests/scripts/docs_visualization.sh b/tests/scripts/docs_visualization.sh new file mode 100644 index 0000000..57115e9 --- /dev/null +++ b/tests/scripts/docs_visualization.sh @@ -0,0 +1,13 @@ +OUT="test_outputs/docs_visualization" +. tests/scripts/initialize_output_folders.sh $OUT +. tests/scripts/get_plopm.sh +mkdir $OUT +WHR="$OUT/appendixb.toml" +cp "publication/appendixb.toml" $WHR +sed -i.bak "s/flow --/mpirun -np 8 flow --/g" $WHR && rm -f $WHR.bak +sed -i.bak "s/8100, 3E-7/300, 3E-7/g" $WHR && rm -f $WHR.bak +sed -i.bak "s/10200, 3E-7/300, 3E-7/g" $WHR && rm -f $WHR.bak +sed -i.bak "s/68100, 68100/3300, 300/g" $WHR && rm -f $WHR.bak +sed -i.bak "s/345600, 86400, 0, 0/64800, 3600, 0, 0],[345600, 21600, 0, 0/g" $WHR && rm -f $WHR.bak +pofff -i $WHR -o $OUT -m single -c '5e-2' -f none +plopm -v xco2l -i "$OUT/DOCS_VISUALIZATION" -o $OUT -d 16,5 -mask satnum -m gif -dpi 1000 -f 20 -loop 1 -cformat .1e -cbsfax 0.30,0.01,0.4,0.02 -interval 437.5 -maskthr 1e-5 -tunits h -cnum 5 -clabel 'CO$_2$ mass fraction in liquid [-]' -t 'FluidFlower simulation (GitHub/cssr-tools/pofff),' 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/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/publication.sh b/tests/scripts/publication.sh new file mode 100644 index 0000000..44126ba --- /dev/null +++ b/tests/scripts/publication.sh @@ -0,0 +1,131 @@ +NCPUS=${1:-64} +WHR="$PWD" +OUT="test_outputs/publication" +. tests/scripts/initialize_output_folders.sh $OUT +. tests/scripts/get_plopm.sh +# Figure 3a and 3b +pofff -i examples/input.toml -o $OUT/figure3 -f none +plopm -i $OUT/figure3/FIGURE3 -c '101;64;147 81;124;66 181;73;57 193;127;97 127;148;191 193;147;56' -cticks '[G, F, E, D, C, ESF]' -v 'pvtnum - 1 - satnum' -grid 'black,1e-2' -remove 1,1,0,1 -d 20,15 -o $OUT/figure3 -save _figure3a -f 20 -clabel 'Sand' +plopm -i $OUT/figure3/FIGURE3 -v 'multx * 1.75' -grid 'black,1e-2' -remove 1,1,0,1 -d 20,15 -clabel 'Thickness map [cm]' -cformat .2f -cnum 5 -f 20 -o $OUT/figure3 -save _figure3b +# Figure 4 +mkdir $OUT/figure4 && cd $OUT/figure4 +curl -L -O https://darus.uni-stuttgart.de/api/access/datafile/375719 +unzip 375719 && rm 375719 +curl -L -O https://darus.uni-stuttgart.de/api/access/datafile/375716 +unzip 375716 && rm 375716 +curl -L -O https://darus.uni-stuttgart.de/api/access/datafile/375707 +unzip 375707 && rm 375707 +plopm -v xco2l -i 'spe11a/opm2/spe11a_spatial_map_48h spe11a/opm3/spe11a_spatial_map_48h spe11a/opm4/spe11a_spatial_map_48h' -csv "1,2,5;1,2,5;1,2,5" -c cet_diverging_gwr_55_95_c38 -cnum 3 -xlnum 8 -clabel 'OPM results for SPE11A: CO$_2$ mass fraction (liquid phase) after 2 days' -d 16,6.5 -t "(a) Cartesian grid 1cm (b) Corner-point grid 1cmish (c) Cartesian grid 1mm" -yunits cm -xunits cm -yformat .0f -xformat .0f -f 16 -save _figure4ish -cformat .2e -suptitle 0 -subfigs 2,2 -cbsfax 0.35,0.97,0.3,0.02 -delax 1 +cd $WHR +# Figures 5-8 and Table 4 (error_table_satmin-0.01_conmin-0.1.csv) +mkdir $OUT/table4_figures5-8 && cd $OUT/table4_figures5-8 +pofff -m fair & +cd $WHR +# Figures 10-11 and Table 5 (error_table_satmin-0.01_conmin-0.05.csv) +mkdir $OUT/table5_figures10-11 && cd $OUT/table5_figures10-11 +pofff -m fair -c 0.05 +cd $WHR +# Figures 5d to 5f: +mkdir $OUT/figures5d-f +cp "publication/results.toml" $OUT/figures5d-f/results.toml +if [ "$NCPUS" -eq 16 ]; then + sed -i.bak "s/140/70/g" $OUT/figures5d-f/results.toml && rm -f $OUT/figures5d-f/results.toml.bak + sed -i.bak "s/7,5,5,5,5,5,5,8,10,9,5/4,3,3,3,3,3,3,4,5,5,3/g" $OUT/figures5d-f/results.toml && rm -f $OUT/figures5d-f/results.toml.bak +fi +sed -i.bak "s/flow --/mpirun -np $NCPUS flow --partition-method=metis --edge-weights-method=logtrans --/g" $OUT/figures5d-f/results.toml && rm -f $OUT/figures5d-f/results.toml.bak +pofff -i $OUT/figures5d-f/results.toml -o $OUT/figures5d-f -m single -t 24,48,72,96,120 +plopm -i $OUT/figures5d-f/FIGURES5D-F -v xco2l -o $OUT/figures5d-f -remove 1,1,1,1 -r 3 -save _figure5d -c '#636b45 #636b45 #fffd00 #fffc00 #fffb00 #fffa00 #fff900 #fff800 #fff700 #fff600 #fff500 #fff400 #fff300 #fff200 #fff100 #fff000 #ffef00 #ffee00 #ffed00 #ffec00 #ffeb00 #ffea00 #ffe900 #ffe800 #ffe700 #ffe600 #ffe500 #ffe400 #ffe300 #ffe200 #ffe100 #ffe000 #ffdf00 #ffde00 #ffdd00 #ffdc00 #ffdb00 #ffda00 #ffd900 #ffd800 #ffd700 #ffd600 #ffd500 #ffd400 #ffd300 #ffd200 #ffd100 #ffd000 #ffcf00 #ffce00 #ffcd00 #ffcc00 #ffcb00 #ffca00 #ffc900 #ffc800 #ffc700 #ffc600 #ffc500 #ffc400 #ffc300 #ffc200 #ffc100 #ffc000 #ffbf00 #ffbe00 #ffbd00 #ffbc00 #ffbb00 #ffba00 #ffb900 #ffb800 #ffb700 #ffb600 #ffb500 #ffb400 #ffb300 #ffb200 #ffb100 #ffb000 #ffaf00 #ffae00 #ffad00 #ffac00 #ffab00 #ffaa00 #ffa900 #ffa800 #ffa700 #ffa600 #ffa500 #ffa400 #ffa300 #ffa200 #ffa100 #ffa000 #ff9f00 #ff9e00 #ff9d00 #ff9c00 #ff9b00 #ff9a00 #ff9900 #ff9800 #ff9700 #ff9600 #ff9500 #ff9400 #ff9300 #ff9200 #ff9100 #ff9000 #ff8f00 #ff8e00 #ff8d00 #ff8c00 #ff8b00 #ff8a00 #ff8900 #ff8800 #ff8700 #ff8600 #ff8500 #ff8400 #ff8300 #ff8200 #ff8100 #ff8000 #ff7f00 #ff7e00 #ff7d00 #ff7c00 #ff7b00 #ff7a00 #ff7900 #ff7800 #ff7700 #ff7600 #ff7500 #ff7400 #ff7300 #ff7200 #ff7100 #ff7000 #ff6f00 #ff6e00 #ff6d00 #ff6c00 #ff6b00 #ff6a00 #ff6900 #ff6800 #ff6700 #ff6600 #ff6500 #ff6400 #ff6300 #ff6200 #ff6100 #ff6000 #ff5f00 #ff5e00 #ff5d00 #ff5c00 #ff5b00 #ff5a00 #ff5900 #ff5800 #ff5700 #ff5600 #ff5500 #ff5400 #ff5300 #ff5200 #ff5100 #ff5000 #ff4f00 #ff4e00 #ff4d00 #ff4c00 #ff4b00 #ff4a00 #ff4900 #ff4800 #ff4700 #ff4600 #ff4500 #ff4400 #ff4300 #ff4200 #ff4100 #ff4000 #ff3f00 #ff3e00 #ff3d00 #ff3c00 #ff3b00 #ff3a00 #ff3900 #ff3800 #ff3700 #ff3600 #ff3500 #ff3400 #ff3300 #ff3200 #ff3100 #ff3000 #ff2f00 #ff2e00 #ff2d00 #ff2c00 #ff2b00 #ff2a00 #ff2900 #ff2800 #ff2700 #ff2600 #ff2500 #ff2400 #ff2300 #ff2200 #ff2100 #ff2000 #ff1f00 #ff1e00 #ff1d00 #ff1c00 #ff1b00 #ff1a00 #ff1900 #ff1800 #ff1700 #ff1600 #ff1500 #ff1400 #ff1300 #ff1200 #ff1100 #ff1000 #ff0f00 #ff0e00 #ff0d00 #ff0c00 #ff0b00 #ff0a00 #ff0900 #ff0800 #ff0700 #ff0600 #ff0500 #ff0400 #ff0300 #ff0200 #ff0100 #ff0000' +plopm -i $OUT/figures5d-f/FIGURES5D-F -v xco2l -o $OUT/figures5d-f -remove 1,1,1,1 -r 5 -save _figure5e -c '#636b45 #636b45 #fffd00 #fffc00 #fffb00 #fffa00 #fff900 #fff800 #fff700 #fff600 #fff500 #fff400 #fff300 #fff200 #fff100 #fff000 #ffef00 #ffee00 #ffed00 #ffec00 #ffeb00 #ffea00 #ffe900 #ffe800 #ffe700 #ffe600 #ffe500 #ffe400 #ffe300 #ffe200 #ffe100 #ffe000 #ffdf00 #ffde00 #ffdd00 #ffdc00 #ffdb00 #ffda00 #ffd900 #ffd800 #ffd700 #ffd600 #ffd500 #ffd400 #ffd300 #ffd200 #ffd100 #ffd000 #ffcf00 #ffce00 #ffcd00 #ffcc00 #ffcb00 #ffca00 #ffc900 #ffc800 #ffc700 #ffc600 #ffc500 #ffc400 #ffc300 #ffc200 #ffc100 #ffc000 #ffbf00 #ffbe00 #ffbd00 #ffbc00 #ffbb00 #ffba00 #ffb900 #ffb800 #ffb700 #ffb600 #ffb500 #ffb400 #ffb300 #ffb200 #ffb100 #ffb000 #ffaf00 #ffae00 #ffad00 #ffac00 #ffab00 #ffaa00 #ffa900 #ffa800 #ffa700 #ffa600 #ffa500 #ffa400 #ffa300 #ffa200 #ffa100 #ffa000 #ff9f00 #ff9e00 #ff9d00 #ff9c00 #ff9b00 #ff9a00 #ff9900 #ff9800 #ff9700 #ff9600 #ff9500 #ff9400 #ff9300 #ff9200 #ff9100 #ff9000 #ff8f00 #ff8e00 #ff8d00 #ff8c00 #ff8b00 #ff8a00 #ff8900 #ff8800 #ff8700 #ff8600 #ff8500 #ff8400 #ff8300 #ff8200 #ff8100 #ff8000 #ff7f00 #ff7e00 #ff7d00 #ff7c00 #ff7b00 #ff7a00 #ff7900 #ff7800 #ff7700 #ff7600 #ff7500 #ff7400 #ff7300 #ff7200 #ff7100 #ff7000 #ff6f00 #ff6e00 #ff6d00 #ff6c00 #ff6b00 #ff6a00 #ff6900 #ff6800 #ff6700 #ff6600 #ff6500 #ff6400 #ff6300 #ff6200 #ff6100 #ff6000 #ff5f00 #ff5e00 #ff5d00 #ff5c00 #ff5b00 #ff5a00 #ff5900 #ff5800 #ff5700 #ff5600 #ff5500 #ff5400 #ff5300 #ff5200 #ff5100 #ff5000 #ff4f00 #ff4e00 #ff4d00 #ff4c00 #ff4b00 #ff4a00 #ff4900 #ff4800 #ff4700 #ff4600 #ff4500 #ff4400 #ff4300 #ff4200 #ff4100 #ff4000 #ff3f00 #ff3e00 #ff3d00 #ff3c00 #ff3b00 #ff3a00 #ff3900 #ff3800 #ff3700 #ff3600 #ff3500 #ff3400 #ff3300 #ff3200 #ff3100 #ff3000 #ff2f00 #ff2e00 #ff2d00 #ff2c00 #ff2b00 #ff2a00 #ff2900 #ff2800 #ff2700 #ff2600 #ff2500 #ff2400 #ff2300 #ff2200 #ff2100 #ff2000 #ff1f00 #ff1e00 #ff1d00 #ff1c00 #ff1b00 #ff1a00 #ff1900 #ff1800 #ff1700 #ff1600 #ff1500 #ff1400 #ff1300 #ff1200 #ff1100 #ff1000 #ff0f00 #ff0e00 #ff0d00 #ff0c00 #ff0b00 #ff0a00 #ff0900 #ff0800 #ff0700 #ff0600 #ff0500 #ff0400 #ff0300 #ff0200 #ff0100 #ff0000' +plopm -i $OUT/figures5d-f/FIGURES5D-F -v xco2l -o $OUT/figures5d-f -remove 1,1,1,1 -r 7 -save _figure5f -c '#636b45 #636b45 #fffd00 #fffc00 #fffb00 #fffa00 #fff900 #fff800 #fff700 #fff600 #fff500 #fff400 #fff300 #fff200 #fff100 #fff000 #ffef00 #ffee00 #ffed00 #ffec00 #ffeb00 #ffea00 #ffe900 #ffe800 #ffe700 #ffe600 #ffe500 #ffe400 #ffe300 #ffe200 #ffe100 #ffe000 #ffdf00 #ffde00 #ffdd00 #ffdc00 #ffdb00 #ffda00 #ffd900 #ffd800 #ffd700 #ffd600 #ffd500 #ffd400 #ffd300 #ffd200 #ffd100 #ffd000 #ffcf00 #ffce00 #ffcd00 #ffcc00 #ffcb00 #ffca00 #ffc900 #ffc800 #ffc700 #ffc600 #ffc500 #ffc400 #ffc300 #ffc200 #ffc100 #ffc000 #ffbf00 #ffbe00 #ffbd00 #ffbc00 #ffbb00 #ffba00 #ffb900 #ffb800 #ffb700 #ffb600 #ffb500 #ffb400 #ffb300 #ffb200 #ffb100 #ffb000 #ffaf00 #ffae00 #ffad00 #ffac00 #ffab00 #ffaa00 #ffa900 #ffa800 #ffa700 #ffa600 #ffa500 #ffa400 #ffa300 #ffa200 #ffa100 #ffa000 #ff9f00 #ff9e00 #ff9d00 #ff9c00 #ff9b00 #ff9a00 #ff9900 #ff9800 #ff9700 #ff9600 #ff9500 #ff9400 #ff9300 #ff9200 #ff9100 #ff9000 #ff8f00 #ff8e00 #ff8d00 #ff8c00 #ff8b00 #ff8a00 #ff8900 #ff8800 #ff8700 #ff8600 #ff8500 #ff8400 #ff8300 #ff8200 #ff8100 #ff8000 #ff7f00 #ff7e00 #ff7d00 #ff7c00 #ff7b00 #ff7a00 #ff7900 #ff7800 #ff7700 #ff7600 #ff7500 #ff7400 #ff7300 #ff7200 #ff7100 #ff7000 #ff6f00 #ff6e00 #ff6d00 #ff6c00 #ff6b00 #ff6a00 #ff6900 #ff6800 #ff6700 #ff6600 #ff6500 #ff6400 #ff6300 #ff6200 #ff6100 #ff6000 #ff5f00 #ff5e00 #ff5d00 #ff5c00 #ff5b00 #ff5a00 #ff5900 #ff5800 #ff5700 #ff5600 #ff5500 #ff5400 #ff5300 #ff5200 #ff5100 #ff5000 #ff4f00 #ff4e00 #ff4d00 #ff4c00 #ff4b00 #ff4a00 #ff4900 #ff4800 #ff4700 #ff4600 #ff4500 #ff4400 #ff4300 #ff4200 #ff4100 #ff4000 #ff3f00 #ff3e00 #ff3d00 #ff3c00 #ff3b00 #ff3a00 #ff3900 #ff3800 #ff3700 #ff3600 #ff3500 #ff3400 #ff3300 #ff3200 #ff3100 #ff3000 #ff2f00 #ff2e00 #ff2d00 #ff2c00 #ff2b00 #ff2a00 #ff2900 #ff2800 #ff2700 #ff2600 #ff2500 #ff2400 #ff2300 #ff2200 #ff2100 #ff2000 #ff1f00 #ff1e00 #ff1d00 #ff1c00 #ff1b00 #ff1a00 #ff1900 #ff1800 #ff1700 #ff1600 #ff1500 #ff1400 #ff1300 #ff1200 #ff1100 #ff1000 #ff0f00 #ff0e00 #ff0d00 #ff0c00 #ff0b00 #ff0a00 #ff0900 #ff0800 #ff0700 #ff0600 #ff0500 #ff0400 #ff0300 #ff0200 #ff0100 #ff0000' +# Figures 10d to 10f: +mkdir $OUT/figures10d-f +cp "publication/appendixb.toml" $OUT/figures10d-f/appendixb.toml +if [ "$NCPUS" -eq 16 ]; then + sed -i.bak "s/140/70/g" $OUT/figures10d-f/appendixb.toml && rm -f $OUT/figures10d-f/appendixb.toml.bak + sed -i.bak "s/7,5,5,5,5,5,5,8,10,9,5/4,3,3,3,3,3,3,4,5,5,3/g" $OUT/figures10d-f/appendixb.toml && rm -f $OUT/figures10d-f/appendixb.toml.bak +fi +sed -i.bak "s/flow --/mpirun -np $NCPUS flow --partition-method=metis --edge-weights-method=logtrans --/g" $OUT/figures10d-f/appendixb.toml && rm -f $OUT/figures10d-f/appendixb.toml.bak +pofff -i $OUT/figures10d-f/appendixb.toml -o $OUT/figures10d-f -c '5e-2' -m single -t 24,48,72,96,120 +plopm -i $OUT/figures10d-f/FIGURES10D-F -v xco2l -o $OUT/figures10d-f -remove 1,1,1,1 -r 3 -save _figure10d -c '#636b45 #636b45 #fffd00 #fffc00 #fffb00 #fffa00 #fff900 #fff800 #fff700 #fff600 #fff500 #fff400 #fff300 #fff200 #fff100 #fff000 #ffef00 #ffee00 #ffed00 #ffec00 #ffeb00 #ffea00 #ffe900 #ffe800 #ffe700 #ffe600 #ffe500 #ffe400 #ffe300 #ffe200 #ffe100 #ffe000 #ffdf00 #ffde00 #ffdd00 #ffdc00 #ffdb00 #ffda00 #ffd900 #ffd800 #ffd700 #ffd600 #ffd500 #ffd400 #ffd300 #ffd200 #ffd100 #ffd000 #ffcf00 #ffce00 #ffcd00 #ffcc00 #ffcb00 #ffca00 #ffc900 #ffc800 #ffc700 #ffc600 #ffc500 #ffc400 #ffc300 #ffc200 #ffc100 #ffc000 #ffbf00 #ffbe00 #ffbd00 #ffbc00 #ffbb00 #ffba00 #ffb900 #ffb800 #ffb700 #ffb600 #ffb500 #ffb400 #ffb300 #ffb200 #ffb100 #ffb000 #ffaf00 #ffae00 #ffad00 #ffac00 #ffab00 #ffaa00 #ffa900 #ffa800 #ffa700 #ffa600 #ffa500 #ffa400 #ffa300 #ffa200 #ffa100 #ffa000 #ff9f00 #ff9e00 #ff9d00 #ff9c00 #ff9b00 #ff9a00 #ff9900 #ff9800 #ff9700 #ff9600 #ff9500 #ff9400 #ff9300 #ff9200 #ff9100 #ff9000 #ff8f00 #ff8e00 #ff8d00 #ff8c00 #ff8b00 #ff8a00 #ff8900 #ff8800 #ff8700 #ff8600 #ff8500 #ff8400 #ff8300 #ff8200 #ff8100 #ff8000 #ff7f00 #ff7e00 #ff7d00 #ff7c00 #ff7b00 #ff7a00 #ff7900 #ff7800 #ff7700 #ff7600 #ff7500 #ff7400 #ff7300 #ff7200 #ff7100 #ff7000 #ff6f00 #ff6e00 #ff6d00 #ff6c00 #ff6b00 #ff6a00 #ff6900 #ff6800 #ff6700 #ff6600 #ff6500 #ff6400 #ff6300 #ff6200 #ff6100 #ff6000 #ff5f00 #ff5e00 #ff5d00 #ff5c00 #ff5b00 #ff5a00 #ff5900 #ff5800 #ff5700 #ff5600 #ff5500 #ff5400 #ff5300 #ff5200 #ff5100 #ff5000 #ff4f00 #ff4e00 #ff4d00 #ff4c00 #ff4b00 #ff4a00 #ff4900 #ff4800 #ff4700 #ff4600 #ff4500 #ff4400 #ff4300 #ff4200 #ff4100 #ff4000 #ff3f00 #ff3e00 #ff3d00 #ff3c00 #ff3b00 #ff3a00 #ff3900 #ff3800 #ff3700 #ff3600 #ff3500 #ff3400 #ff3300 #ff3200 #ff3100 #ff3000 #ff2f00 #ff2e00 #ff2d00 #ff2c00 #ff2b00 #ff2a00 #ff2900 #ff2800 #ff2700 #ff2600 #ff2500 #ff2400 #ff2300 #ff2200 #ff2100 #ff2000 #ff1f00 #ff1e00 #ff1d00 #ff1c00 #ff1b00 #ff1a00 #ff1900 #ff1800 #ff1700 #ff1600 #ff1500 #ff1400 #ff1300 #ff1200 #ff1100 #ff1000 #ff0f00 #ff0e00 #ff0d00 #ff0c00 #ff0b00 #ff0a00 #ff0900 #ff0800 #ff0700 #ff0600 #ff0500 #ff0400 #ff0300 #ff0200 #ff0100 #ff0000' +plopm -i $OUT/figures10d-f/FIGURES10D-F -v xco2l -o $OUT/figures10d-f -remove 1,1,1,1 -r 5 -save _figure10e -c '#636b45 #636b45 #fffd00 #fffc00 #fffb00 #fffa00 #fff900 #fff800 #fff700 #fff600 #fff500 #fff400 #fff300 #fff200 #fff100 #fff000 #ffef00 #ffee00 #ffed00 #ffec00 #ffeb00 #ffea00 #ffe900 #ffe800 #ffe700 #ffe600 #ffe500 #ffe400 #ffe300 #ffe200 #ffe100 #ffe000 #ffdf00 #ffde00 #ffdd00 #ffdc00 #ffdb00 #ffda00 #ffd900 #ffd800 #ffd700 #ffd600 #ffd500 #ffd400 #ffd300 #ffd200 #ffd100 #ffd000 #ffcf00 #ffce00 #ffcd00 #ffcc00 #ffcb00 #ffca00 #ffc900 #ffc800 #ffc700 #ffc600 #ffc500 #ffc400 #ffc300 #ffc200 #ffc100 #ffc000 #ffbf00 #ffbe00 #ffbd00 #ffbc00 #ffbb00 #ffba00 #ffb900 #ffb800 #ffb700 #ffb600 #ffb500 #ffb400 #ffb300 #ffb200 #ffb100 #ffb000 #ffaf00 #ffae00 #ffad00 #ffac00 #ffab00 #ffaa00 #ffa900 #ffa800 #ffa700 #ffa600 #ffa500 #ffa400 #ffa300 #ffa200 #ffa100 #ffa000 #ff9f00 #ff9e00 #ff9d00 #ff9c00 #ff9b00 #ff9a00 #ff9900 #ff9800 #ff9700 #ff9600 #ff9500 #ff9400 #ff9300 #ff9200 #ff9100 #ff9000 #ff8f00 #ff8e00 #ff8d00 #ff8c00 #ff8b00 #ff8a00 #ff8900 #ff8800 #ff8700 #ff8600 #ff8500 #ff8400 #ff8300 #ff8200 #ff8100 #ff8000 #ff7f00 #ff7e00 #ff7d00 #ff7c00 #ff7b00 #ff7a00 #ff7900 #ff7800 #ff7700 #ff7600 #ff7500 #ff7400 #ff7300 #ff7200 #ff7100 #ff7000 #ff6f00 #ff6e00 #ff6d00 #ff6c00 #ff6b00 #ff6a00 #ff6900 #ff6800 #ff6700 #ff6600 #ff6500 #ff6400 #ff6300 #ff6200 #ff6100 #ff6000 #ff5f00 #ff5e00 #ff5d00 #ff5c00 #ff5b00 #ff5a00 #ff5900 #ff5800 #ff5700 #ff5600 #ff5500 #ff5400 #ff5300 #ff5200 #ff5100 #ff5000 #ff4f00 #ff4e00 #ff4d00 #ff4c00 #ff4b00 #ff4a00 #ff4900 #ff4800 #ff4700 #ff4600 #ff4500 #ff4400 #ff4300 #ff4200 #ff4100 #ff4000 #ff3f00 #ff3e00 #ff3d00 #ff3c00 #ff3b00 #ff3a00 #ff3900 #ff3800 #ff3700 #ff3600 #ff3500 #ff3400 #ff3300 #ff3200 #ff3100 #ff3000 #ff2f00 #ff2e00 #ff2d00 #ff2c00 #ff2b00 #ff2a00 #ff2900 #ff2800 #ff2700 #ff2600 #ff2500 #ff2400 #ff2300 #ff2200 #ff2100 #ff2000 #ff1f00 #ff1e00 #ff1d00 #ff1c00 #ff1b00 #ff1a00 #ff1900 #ff1800 #ff1700 #ff1600 #ff1500 #ff1400 #ff1300 #ff1200 #ff1100 #ff1000 #ff0f00 #ff0e00 #ff0d00 #ff0c00 #ff0b00 #ff0a00 #ff0900 #ff0800 #ff0700 #ff0600 #ff0500 #ff0400 #ff0300 #ff0200 #ff0100 #ff0000' +plopm -i $OUT/figures10d-f/FIGURES10D-F -v xco2l -o $OUT/figures10d-f -remove 1,1,1,1 -r 7 -save _figure10f -c '#636b45 #636b45 #fffd00 #fffc00 #fffb00 #fffa00 #fff900 #fff800 #fff700 #fff600 #fff500 #fff400 #fff300 #fff200 #fff100 #fff000 #ffef00 #ffee00 #ffed00 #ffec00 #ffeb00 #ffea00 #ffe900 #ffe800 #ffe700 #ffe600 #ffe500 #ffe400 #ffe300 #ffe200 #ffe100 #ffe000 #ffdf00 #ffde00 #ffdd00 #ffdc00 #ffdb00 #ffda00 #ffd900 #ffd800 #ffd700 #ffd600 #ffd500 #ffd400 #ffd300 #ffd200 #ffd100 #ffd000 #ffcf00 #ffce00 #ffcd00 #ffcc00 #ffcb00 #ffca00 #ffc900 #ffc800 #ffc700 #ffc600 #ffc500 #ffc400 #ffc300 #ffc200 #ffc100 #ffc000 #ffbf00 #ffbe00 #ffbd00 #ffbc00 #ffbb00 #ffba00 #ffb900 #ffb800 #ffb700 #ffb600 #ffb500 #ffb400 #ffb300 #ffb200 #ffb100 #ffb000 #ffaf00 #ffae00 #ffad00 #ffac00 #ffab00 #ffaa00 #ffa900 #ffa800 #ffa700 #ffa600 #ffa500 #ffa400 #ffa300 #ffa200 #ffa100 #ffa000 #ff9f00 #ff9e00 #ff9d00 #ff9c00 #ff9b00 #ff9a00 #ff9900 #ff9800 #ff9700 #ff9600 #ff9500 #ff9400 #ff9300 #ff9200 #ff9100 #ff9000 #ff8f00 #ff8e00 #ff8d00 #ff8c00 #ff8b00 #ff8a00 #ff8900 #ff8800 #ff8700 #ff8600 #ff8500 #ff8400 #ff8300 #ff8200 #ff8100 #ff8000 #ff7f00 #ff7e00 #ff7d00 #ff7c00 #ff7b00 #ff7a00 #ff7900 #ff7800 #ff7700 #ff7600 #ff7500 #ff7400 #ff7300 #ff7200 #ff7100 #ff7000 #ff6f00 #ff6e00 #ff6d00 #ff6c00 #ff6b00 #ff6a00 #ff6900 #ff6800 #ff6700 #ff6600 #ff6500 #ff6400 #ff6300 #ff6200 #ff6100 #ff6000 #ff5f00 #ff5e00 #ff5d00 #ff5c00 #ff5b00 #ff5a00 #ff5900 #ff5800 #ff5700 #ff5600 #ff5500 #ff5400 #ff5300 #ff5200 #ff5100 #ff5000 #ff4f00 #ff4e00 #ff4d00 #ff4c00 #ff4b00 #ff4a00 #ff4900 #ff4800 #ff4700 #ff4600 #ff4500 #ff4400 #ff4300 #ff4200 #ff4100 #ff4000 #ff3f00 #ff3e00 #ff3d00 #ff3c00 #ff3b00 #ff3a00 #ff3900 #ff3800 #ff3700 #ff3600 #ff3500 #ff3400 #ff3300 #ff3200 #ff3100 #ff3000 #ff2f00 #ff2e00 #ff2d00 #ff2c00 #ff2b00 #ff2a00 #ff2900 #ff2800 #ff2700 #ff2600 #ff2500 #ff2400 #ff2300 #ff2200 #ff2100 #ff2000 #ff1f00 #ff1e00 #ff1d00 #ff1c00 #ff1b00 #ff1a00 #ff1900 #ff1800 #ff1700 #ff1600 #ff1500 #ff1400 #ff1300 #ff1200 #ff1100 #ff1000 #ff0f00 #ff0e00 #ff0d00 #ff0c00 #ff0b00 #ff0a00 #ff0900 #ff0800 #ff0700 #ff0600 #ff0500 #ff0400 #ff0300 #ff0200 #ff0100 #ff0000' +# Table 7 and Figure 12 +mkdir $OUT/table7_figure12 && cd $OUT/table7_figure12 +cp $WHR/publication/profiling.py . +cp $WHR/publication/appendixc.mako . +if [ "$NCPUS" -eq 16 ]; then + sed -i.bak "s/64, 32, 16/16/g" profiling.py && rm -f profiling.py.bak + sed -i.bak "s/popsize = 16/popsize = 4/g" appendixc.mako && rm -f appendixc.mako.bak + sed -i.bak "s/max_function_evaluations = 64/max_function_evaluations = 16/g" appendixc.mako && rm -f appendixc.mako.bak + sed -i.bak "s/140/70/g" appendixc.mako && rm -f appendixc.mako.bak + sed -i.bak "s/7,5,5,5,5,5,5,8,10,9,5/4,3,3,3,3,3,3,4,5,5,3/g" appendixc.mako && rm -f appendixc.mako.bak +fi +python3 profiling.py +cd $WHR +# Table 8 +mkdir $OUT/table8 && cd $OUT/table8 +cp $WHR/publication/sensitivity.py . +cp $WHR/publication/appendixc.mako . +if [ "$NCPUS" -eq 16 ]; then + sed -i.bak "s/64/16/g" sensitivity.py && rm -f sensitivity.py.bak + sed -i.bak "s/popsize = 16/popsize = 4/g" appendixc.mako && rm -f appendixc.mako.bak + sed -i.bak "s/max_function_evaluations = 64/max_function_evaluations = 16/g" appendixc.mako && rm -f appendixc.mako.bak + sed -i.bak "s/140/70/g" appendixc.mako && rm -f appendixc.mako.bak + sed -i.bak "s/7,5,5,5,5,5,5,8,10,9,5/4,3,3,3,3,3,3,4,5,5,3/g" appendixc.mako && rm -f appendixc.mako.bak +fi +python3 sensitivity.py +cd $WHR +# Table 9 +mkdir $OUT/table9 && cd $OUT/table9 +cp $WHR/publication/accuracy.py . +cp $WHR/publication/appendixc.mako . +python3 accuracy.py +cd $WHR + +files=( + "test_outputs/publication/figure3/_figure3a.png" + "test_outputs/publication/figure3/_figure3b.png" + "test_outputs/publication/figure4/_figure4ish.png" + "test_outputs/publication/figures5d-f/_figure5d.png" + "test_outputs/publication/figures5d-f/_figure5e.png" + "test_outputs/publication/figures5d-f/_figure5f.png" + "test_outputs/publication/figures10d-f/_figure10d.png" + "test_outputs/publication/figures10d-f/_figure10e.png" + "test_outputs/publication/figures10d-f/_figure10f.png" + "test_outputs/publication/table4_figures5-8/output/zoom_means_segmented_snapshots_satmin-0.01_conmin-0.1.png" + "test_outputs/publication/table4_figures5-8/output/compare_all_time_series.png" + "test_outputs/publication/table4_figures5-8/output/map_24h.png" + "test_outputs/publication/table4_figures5-8/output/map_72h.png" + "test_outputs/publication/table4_figures5-8/output/map_120h.png" + "test_outputs/publication/table4_figures5-8/output/error_table_satmin-0.01_conmin-0.1.csv" + "test_outputs/publication/table4_figures5-8/output/sparse_data.csv" + "test_outputs/publication/table5_figures10-11/output/zoom_means_segmented_snapshots_satmin-0.01_conmin-0.05.png" + "test_outputs/publication/table5_figures10-11/output/map_24h.png" + "test_outputs/publication/table5_figures10-11/output/map_72h.png" + "test_outputs/publication/table5_figures10-11/output/map_120h.png" + "test_outputs/publication/table5_figures10-11/output/error_table_satmin-0.01_conmin-0.05.csv" + "test_outputs/publication/table5_figures10-11/output/sparse_data.csv" + "test_outputs/publication/table7_figure12/profiling/profiling_ncpu_16.txt" + "test_outputs/publication/table7_figure12/profiling/figure12.png" + "test_outputs/publication/table8/sensitivity/table8.txt" + "test_outputs/publication/table9/accuracy/accuracy-time-trade-offs.txt" +) + +missing_file="test_outputs/missing_publication_files.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 and files exist." +else + echo "$missing figure(s) or file(s) missing." + echo "See $missing_file" +fi diff --git a/tests/test_a_main.py b/tests/test_a_main.py index ec6d741..6754df7 100644 --- a/tests/test_a_main.py +++ b/tests/test_a_main.py @@ -21,7 +21,7 @@ def test_a_main(tmp_path, monkeypatch): input_config = repo_root / "examples" / "input.toml" shutil.copy(input_config, tmp_path / "input.toml") monkeypatch.chdir(tmp_path) - main() + main([]) for name in [ "compare_all_time_series.png", "map_0.25h.png",