Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/_images/dual_pressure-0pressure_i,1,k_t2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/plopm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions docs/_sources/examples.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,26 @@ To generate a submodel from the coarsened model around the injector 'INJ', this

Pore volume values for the (left) coarsened and (right) vicinity around the well INJ in the SPE10 model.


Dual coarsening
---------------

The flag **-dual** allows to perform a coarsening by differentiating between net and non-net cells, resulting in
two coarsened grids. For example, using the `MODEL6.DATA <https://github.com/cssr-tools/pycopm/blob/main/examples/decks/MODEL6.DATA>`_:

.. code-block:: bash

pycopm -i MODEL6.DATA -z 1:4 -w STANDARD -l S -t 2 -a max
pycopm -i MODEL6.DATA -z 1:4 -w DUAL -dual 'poro <= 0.1' -l D -t 2 -a max
flow MODEL6.DATA
flow STANDARD.DATA
flow DUAL.DATA
plopm -i 'MODEL6 STANDARD DUAL' -v 'pressure - 0pressure' -subfigs 1,3 -delax 1 -cbsfax 0.1,0.95,0.8,0.02 -d 12,4 -suptitle 0 -z 0 -clabel 'Pressure increase end of simulation [bar]' -grid 'black,1e-2'

This results in the following figure, where the pressure on the most right cell compares better using the dual coarsening than the standard:

.. figure:: figs/dual_pressure-0pressure_i,1,k_t2.png

==================
Graphical abstract
==================
Expand Down
1 change: 1 addition & 0 deletions docs/_sources/introduction.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,4 @@ where
-ijk Given i,j,k indices in the input model, return the modified i,j,k corresponding positions ('' by default; if not empty, e.g., '1,2,3', then there will not be generation of modified files, only the i,j,k mapped indices in the terminal).
-d Options to transform the x,y,z coordinates: 'translate [10,-5,4]' adds the values in meters to the coordinates, 'scale [1,2,3]' multiplies the coordinates by the given values respectively, and 'rotatexy 45' applies a rotation in degrees in the xy plane (rotatexz and rotateyz applies a rotation around the y and x axis respectively) ('' by default).
-explicit Set to 1 to explicitly write the cell values in the SOLUTION section in the deck ('0' by default).
-dual Set the criterium to differentiate net and non-net in coarsening using a static variable, e.g., 'poro <= 0.1' ('' by default).
18 changes: 18 additions & 0 deletions docs/examples.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
<li class="toctree-l3"><a class="reference internal" href="#drogon">Drogon</a></li>
<li class="toctree-l3"><a class="reference internal" href="#norne">Norne</a></li>
<li class="toctree-l3"><a class="reference internal" href="#spe10">SPE10</a></li>
<li class="toctree-l3"><a class="reference internal" href="#dual-coarsening">Dual coarsening</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#graphical-abstract">Graphical abstract</a></li>
Expand Down Expand Up @@ -337,6 +338,23 @@ <h3>Norne<a class="headerlink" href="#norne" title="Link to this heading"></a
</figcaption>
</figure>
</section>
<section id="dual-coarsening">
<h3>Dual coarsening<a class="headerlink" href="#dual-coarsening" title="Link to this heading"></a></h3>
<p>The flag <strong>-dual</strong> allows to perform a coarsening by differentiating between net and non-net cells, resulting in
two coarsened grids. For example, using the <a class="reference external" href="https://github.com/cssr-tools/pycopm/blob/main/examples/decks/MODEL6.DATA">MODEL6.DATA</a>:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pycopm<span class="w"> </span>-i<span class="w"> </span>MODEL6.DATA<span class="w"> </span>-z<span class="w"> </span><span class="m">1</span>:4<span class="w"> </span>-w<span class="w"> </span>STANDARD<span class="w"> </span>-l<span class="w"> </span>S<span class="w"> </span>-t<span class="w"> </span><span class="m">2</span><span class="w"> </span>-a<span class="w"> </span>max
pycopm<span class="w"> </span>-i<span class="w"> </span>MODEL6.DATA<span class="w"> </span>-z<span class="w"> </span><span class="m">1</span>:4<span class="w"> </span>-w<span class="w"> </span>DUAL<span class="w"> </span>-dual<span class="w"> </span><span class="s1">&#39;poro &lt;= 0.1&#39;</span><span class="w"> </span>-l<span class="w"> </span>D<span class="w"> </span>-t<span class="w"> </span><span class="m">2</span><span class="w"> </span>-a<span class="w"> </span>max
flow<span class="w"> </span>MODEL6.DATA
flow<span class="w"> </span>STANDARD.DATA
flow<span class="w"> </span>DUAL.DATA
plopm<span class="w"> </span>-i<span class="w"> </span><span class="s1">&#39;MODEL6 STANDARD DUAL&#39;</span><span class="w"> </span>-v<span class="w"> </span><span class="s1">&#39;pressure - 0pressure&#39;</span><span class="w"> </span>-subfigs<span class="w"> </span><span class="m">1</span>,3<span class="w"> </span>-delax<span class="w"> </span><span class="m">1</span><span class="w"> </span>-cbsfax<span class="w"> </span><span class="m">0</span>.1,0.95,0.8,0.02<span class="w"> </span>-d<span class="w"> </span><span class="m">12</span>,4<span class="w"> </span>-suptitle<span class="w"> </span><span class="m">0</span><span class="w"> </span>-z<span class="w"> </span><span class="m">0</span><span class="w"> </span>-clabel<span class="w"> </span><span class="s1">&#39;Pressure increase end of simulation [bar]&#39;</span><span class="w"> </span>-grid<span class="w"> </span><span class="s1">&#39;black,1e-2&#39;</span>
</pre></div>
</div>
<p>This results in the following figure, where the pressure on the most right cell compares better using the dual coarsening than the standard:</p>
<figure class="align-default">
<img alt="_images/dual_pressure-0pressure_i%2C1%2Ck_t2.png" src="_images/dual_pressure-0pressure_i%2C1%2Ck_t2.png" />
</figure>
</section>
</section>
<section id="graphical-abstract">
<h2>Graphical abstract<a class="headerlink" href="#graphical-abstract" title="Link to this heading"></a></h2>
Expand Down
23 changes: 21 additions & 2 deletions docs/genindex.html
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ <h1 id="index">Index</h1>

<div class="genindex-jumpbox">
<a href="#A"><strong>A</strong></a>
| <a href="#B"><strong>B</strong></a>
| <a href="#C"><strong>C</strong></a>
| <a href="#E"><strong>E</strong></a>
| <a href="#F"><strong>F</strong></a>
Expand Down Expand Up @@ -117,12 +118,22 @@ <h2 id="A">A</h2>
</ul></td>
</tr></table>

<h2 id="B">B</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.bool_mult">bool_mult() (in module pycopm.utils.generate_files)</a>
</li>
</ul></td>
</tr></table>

<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pycopm.core.pycopm.html#pycopm.core.pycopm.check_cmdargs">check_cmdargs() (in module pycopm.core.pycopm)</a>
</li>
<li><a href="pycopm.utils.input_values.html#pycopm.utils.input_values.check_flow">check_flow() (in module pycopm.utils.input_values)</a>
</li>
<li><a href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.check_mult">check_mult() (in module pycopm.utils.generate_files)</a>
</li>
<li><a href="pycopm.utils.mapping_methods.html#pycopm.utils.mapping_methods.chop_grid">chop_grid() (in module pycopm.utils.mapping_methods)</a>
</li>
Expand All @@ -137,6 +148,8 @@ <h2 id="C">C</h2>
<li><a href="pycopm.utils.properties_builder.html#pycopm.utils.properties_builder.coarser_properties">coarser_properties() (in module pycopm.utils.properties_builder)</a>
</li>
<li><a href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.compact_format">compact_format() (in module pycopm.utils.generate_files)</a>
</li>
<li><a href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.compact_perm">compact_perm() (in module pycopm.utils.generate_files)</a>
</li>
<li><a href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.create_deck">create_deck() (in module pycopm.utils.generate_files)</a>
</li>
Expand Down Expand Up @@ -193,6 +206,8 @@ <h2 id="H">H</h2>
<li><a href="pycopm.utils.mapping_methods.html#pycopm.utils.mapping_methods.handle_cp_grid">handle_cp_grid() (in module pycopm.utils.mapping_methods)</a>
</li>
<li><a href="pycopm.utils.parser_deck.html#pycopm.utils.parser_deck.handle_dimens">handle_dimens() (in module pycopm.utils.parser_deck)</a>
</li>
<li><a href="pycopm.utils.mapping_methods.html#pycopm.utils.mapping_methods.handle_dual">handle_dual() (in module pycopm.utils.mapping_methods)</a>
</li>
<li><a href="pycopm.utils.parser_deck.html#pycopm.utils.parser_deck.handle_editnnc">handle_editnnc() (in module pycopm.utils.parser_deck)</a>
</li>
Expand All @@ -211,11 +226,11 @@ <h2 id="H">H</h2>
<li><a href="pycopm.utils.grid_builder.html#pycopm.utils.grid_builder.handle_faults">handle_faults() (in module pycopm.utils.grid_builder)</a>
</li>
<li><a href="pycopm.utils.parser_deck.html#pycopm.utils.parser_deck.handle_grid_props">handle_grid_props() (in module pycopm.utils.parser_deck)</a>
</li>
<li><a href="pycopm.utils.parser_deck.html#pycopm.utils.parser_deck.handle_mapaxes">handle_mapaxes() (in module pycopm.utils.parser_deck)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pycopm.utils.parser_deck.html#pycopm.utils.parser_deck.handle_mapaxes">handle_mapaxes() (in module pycopm.utils.parser_deck)</a>
</li>
<li><a href="pycopm.utils.parser_deck.html#pycopm.utils.parser_deck.handle_multflt">handle_multflt() (in module pycopm.utils.parser_deck)</a>
</li>
<li><a href="pycopm.utils.parser_deck.html#pycopm.utils.parser_deck.handle_multiply">handle_multiply() (in module pycopm.utils.parser_deck)</a>
Expand Down Expand Up @@ -460,6 +475,10 @@ <h2 id="R">R</h2>

<h2 id="S">S</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.search_file">search_file() (in module pycopm.utils.generate_files)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pycopm.utils.runs_executer.html#pycopm.utils.runs_executer.simulations">simulations() (in module pycopm.utils.runs_executer)</a>
</li>
Expand Down
1 change: 1 addition & 0 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ <h1>Welcome to pycopm’s documentation!<a class="headerlink" href="#welcome-to-
<li class="toctree-l3"><a class="reference internal" href="examples.html#drogon">Drogon</a></li>
<li class="toctree-l3"><a class="reference internal" href="examples.html#norne">Norne</a></li>
<li class="toctree-l3"><a class="reference internal" href="examples.html#spe10">SPE10</a></li>
<li class="toctree-l3"><a class="reference internal" href="examples.html#dual-coarsening">Dual coarsening</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#graphical-abstract">Graphical abstract</a></li>
Expand Down
3 changes: 3 additions & 0 deletions docs/introduction.html
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,9 @@ <h2>Roadmap<a class="headerlink" href="#roadmap" title="Link to this heading">
<dt><kbd><span class="option">-e<var>xplicit</var></span></kbd></dt>
<dd><p>Set to 1 to explicitly write the cell values in the SOLUTION section in the deck (‘0’ by default).</p>
</dd>
<dt><kbd><span class="option">-d<var>ual</var></span></kbd></dt>
<dd><p>Set the criterium to differentiate net and non-net in coarsening using a static variable, e.g., ‘poro &lt;= 0.1’ (’’ by default).</p>
</dd>
</dl>
</section>
</section>
Expand Down
Binary file modified docs/objects.inv
Binary file not shown.
5 changes: 5 additions & 0 deletions docs/pycopm.html
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,14 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Link to this hea
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="pycopm.utils.generate_files.html">pycopm.utils.generate_files module</a><ul>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.bool_mult"><code class="docutils literal notranslate"><span class="pre">bool_mult()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.check_mult"><code class="docutils literal notranslate"><span class="pre">check_mult()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.compact_format"><code class="docutils literal notranslate"><span class="pre">compact_format()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.compact_perm"><code class="docutils literal notranslate"><span class="pre">compact_perm()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.create_deck"><code class="docutils literal notranslate"><span class="pre">create_deck()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.handle_nnc_trans"><code class="docutils literal notranslate"><span class="pre">handle_nnc_trans()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.initialize_variables"><code class="docutils literal notranslate"><span class="pre">initialize_variables()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.search_file"><code class="docutils literal notranslate"><span class="pre">search_file()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.write_grid"><code class="docutils literal notranslate"><span class="pre">write_grid()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.generate_files.html#pycopm.utils.generate_files.write_props"><code class="docutils literal notranslate"><span class="pre">write_props()</span></code></a></li>
</ul>
Expand Down Expand Up @@ -145,6 +149,7 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Link to this hea
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.mapping_methods.html#pycopm.utils.mapping_methods.get_ijk"><code class="docutils literal notranslate"><span class="pre">get_ijk()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.mapping_methods.html#pycopm.utils.mapping_methods.handle_clusters"><code class="docutils literal notranslate"><span class="pre">handle_clusters()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.mapping_methods.html#pycopm.utils.mapping_methods.handle_cp_grid"><code class="docutils literal notranslate"><span class="pre">handle_cp_grid()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.mapping_methods.html#pycopm.utils.mapping_methods.handle_dual"><code class="docutils literal notranslate"><span class="pre">handle_dual()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.mapping_methods.html#pycopm.utils.mapping_methods.handle_pv"><code class="docutils literal notranslate"><span class="pre">handle_pv()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.mapping_methods.html#pycopm.utils.mapping_methods.handle_refinement"><code class="docutils literal notranslate"><span class="pre">handle_refinement()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="pycopm.utils.mapping_methods.html#pycopm.utils.mapping_methods.handle_vicinity"><code class="docutils literal notranslate"><span class="pre">handle_vicinity()</span></code></a></li>
Expand Down
Loading