Skip to content

Commit 27fd4c3

Browse files
committed
docs: split text for better readability
1 parent 753de8b commit 27fd4c3

File tree

4 files changed

+47
-6
lines changed

4 files changed

+47
-6
lines changed

docs/source/control_sensitivities/control_sensitivities.rst

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,15 @@ The initial guess for EVEREST is located in the section ``controls`` in main con
115115
:lines: 19-43
116116

117117
.. note::
118-
In this particular example, the fixed drilling sequence has been defined through a series of disabled priority control variables using the option ``enabled: False``. These are the same priority controls used when optimizing the drilling order (see :doc:`drilling order optimization tutorial <../well_order/well_order>`), but here they are disabled, meaning that they will not be perturbed nor optimized. Alternatively, one can remove the priority controls altogether from the ``enabled: False`` and provide a user-defined ``well_order.json`` file to be used as input for the ``drill_planner`` forward job.
118+
In this particular example, the fixed drilling sequence has been defined
119+
through a series of disabled priority control variables using the option
120+
``enabled: False``. These are the same priority controls used when
121+
optimizing the drilling order (see :doc:`drilling order optimization
122+
tutorial <../well_order/well_order>`), but here they are disabled, meaning
123+
that they will not be perturbed nor optimized. Alternatively, one can
124+
remove the priority controls altogether from the ``enabled: False``and
125+
provide a user-defined ``well_order.json`` file to be used as input for the
126+
``drill_planner`` forward job.
119127

120128
The size of the perturbations to be assigned to the well drilling delay variables can be defined as standard deviation input in the ``perturbation_magnitude`` entry of the ``controls`` section. We also need to choose number of perturbations for each geological realization, see keyword ``perturbation_num`` in ``optimization`` section:
121129

docs/source/well_order/well_order.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,10 @@ In our case we can find optimization results in ``r{{configpath}}/../output/r{{c
207207
.. note::
208208
Depending on the choice of ``speculative`` option in ``optimization`` section, the calculations for current best solution and for the gradient might be split in multiple batches, see `Everest documentation <https://everest.readthedocs.io/en/latest/config_reference.html#>`_.
209209

210-
The :ref:`figure_objectives_wo` shows average objective function at the iterations of the optimization experiment (average NPV over all geological realizations). The increase in objective function value of $6.24e+07 was achieved by changing a drilling order from the initial guess.
210+
The :ref:`figure_objectives_wo` shows average objective function at the
211+
iterations of the optimization experiment (average NPV over all geological realizations).
212+
The increase in objective function value of $6.24e+07 was achieved by changing
213+
a drilling order from the initial guess.
211214

212215
.. _figure_objectives_wo:
213216
.. figure:: images/optimization/wo_objectives.svg

docs/source/well_selection/well_selection.rst

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,11 @@ In our case we can find optimization results in ``r{{configpath}}/../output/r{{c
214214
.. note::
215215
Depending on the choice of ``speculative`` option in ``optimization`` section, the calculations for current best solution and for the gradient might be split in multiple batches, see `Everest documentation <https://everest.readthedocs.io/en/latest/config_reference.html#>`_.
216216

217-
The :ref:`figure_objectives_ws` shows average objective function at the iterations of the optimization experiment (average NPV over all geological realizations). The increase in objective function value of $7.16e+08 was achieved by selecting 5 wells and placing them in an optimal order (see :ref:`figure_controls_wellnumber_ws` and :ref:`figure_controls_priorities_ws`).
217+
The :ref:`figure_objectives_ws` shows average objective function at the
218+
iterations of the optimization experiment (average NPV over all geological realizations).
219+
The increase in objective function value of $7.16e+08 was achieved by selecting
220+
5 wells and placing them in an optimal order
221+
(see :ref:`figure_controls_wellnumber_ws` and :ref:`figure_controls_priorities_ws`).
218222

219223
.. _figure_objectives_ws:
220224
.. figure:: images/optimization/ws_objectives.svg

docs/source/well_swap/well_swap.rst

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,21 @@
22
Well Swapping Optimization
33
##########################
44

5-
This tutorial aims to demonstrate how to optimize the dynamic operational schedule of wells by swapping the status to be assigned to each well over time in order to maximize (or minimize) a user-defined objective function. This can be used to determine the schedule of wells alternating between open/closed status (as the example described in this tutorial), but it can also be applied to more general cases with more possible statuses (e.g., conversion of well types producer/injector/shut over time). The well swapping optimization functionality is also based on the priority-based parametrization used for drilling order and well selection optimization, but the approach is extended to multiple sets of priority controls to enable the determination of well statuses at multiple time-intervals throughout the field production life-cycle. Therefore, this tutorial builds upon the knowledge presented in the :doc:`drilling order optimization <../well_order/well_order>` and :doc:`well selection optimization <../well_selection/well_selection>` by adding new complexity to the workflow presented there.
5+
This tutorial aims to demonstrate how to optimize the dynamic operational
6+
schedule of wells by swapping the status to be assigned to each well over time
7+
in order to maximize (or minimize) a user-defined objective function. This can
8+
be used to determine the schedule of wells alternating between open/closed
9+
status (as the example described in this tutorial), but it can also be applied
10+
to more general cases with more possible statuses (e.g., conversion of well
11+
types producer/injector/shut over time). The well swapping optimization
12+
functionality is also based on the priority-based parametrization used for
13+
drilling order and well selection optimization, but the approach is extended to
14+
multiple sets of priority controls to enable the determination of well statuses
15+
at multiple time-intervals throughout the field production life-cycle.
16+
Therefore, this tutorial builds upon the knowledge presented in the
17+
:doc:`drilling order optimization <../well_order/well_order>` and
18+
:doc:`well selection optimization <../well_selection/well_selection>`
19+
by adding new complexity to the workflow presented there.
620

721
First, we formulate an example optimization problem and we explain the configuration files. Next, we show how to launch an optimization experiment and then we analyze the results:
822

@@ -35,7 +49,16 @@ Optimization variables
3549
Swapping priority values
3650
************************
3751

38-
In order to determine the status of the wells at each time period, a priority-based parametrization is used to assist in selecting which wells should be switched to a higher hierarchy status (in this case, the open status). This follows the same approach as in :doc:`well selection optimization <../well_selection/well_selection>`, where the subset of wells to be selected is determined by the set of priority values of all wells, together with the exact number of wells to be selected. The main difference here is that well swapping optimization entails a dynamic selection of wells over time. Therefore, multiple sets of priority values are needed, i.e. one set of well priorities for each time period.
52+
In order to determine the status of the wells at each time period,
53+
a priority-based parametrization is used to assist in selecting which wells
54+
should be switched to a higher hierarchy status (in this case, open status).
55+
This follows the same approach as in :doc:`well selection optimization
56+
<../well_selection/well_selection>`, where the subset of wells to be
57+
selected is determined by the set of priority values of all wells, together
58+
with the exact number of wells to be selected. The main difference here is
59+
that well swapping optimization entails a dynamic selection of wells over time.
60+
Therefore, multiple sets of priority values are needed, i.e. one set of well
61+
priorities for each time period.
3962

4063
.. note::
4164
Another difference with respect to well selection optimization is that some changes in status may not be allowed. This is not applicable to the simple example in this tutorial, but it may be relevant in cases with more possible statuses and irreversible changes in status. In those situations, the logic to select well statuses becomes more involved, requiring the tracking of the history of statuses in order to determine the possible status changes for the subsequent time periods. For information on how to define more complex well swapping constraints, see relevant documentation section `(EVEREST documentation <https://everest.readthedocs.io/en/latest/forward_model_jobs.html#well_swapping-category>`_)
@@ -244,7 +267,10 @@ In our case we can find optimization results in ``r{{configpath}}/../output/r{{c
244267
.. note::
245268
Depending on the choice of ``speculative`` option in ``optimization`` section, the calculations for current best solution and for the gradient might be split in multiple batches, see `EVEREST documentation <https://everest.readthedocs.io/en/latest/config_reference.html#>`_.
246269

247-
The :ref:`figure_objectives_wsw` shows average objective function at the iterations of the optimization experiment (average NPV over all geological realizations). The increase in objective function value of $1.09e+09 was achieved by changing the well swapping schedule from the initial guess.
270+
The :ref:`figure_objectives_wsw` shows average objective function at the
271+
iterations of the optimization experiment (average NPV over all geological realizations).
272+
The increase in objective function value of $1.09e+09 was achieved by changing
273+
the well swapping schedule from the initial guess.
248274

249275
.. _figure_objectives_wsw:
250276
.. figure:: images/optimization/wsw_objectives.svg

0 commit comments

Comments
 (0)