## 3 Problem Description
### BO Framework  
To formulate a BO framework, the objective function, its constraints, and the decision variables have to be defined. The target is to maximize the total amount of CO2 sequestered in the aquifer after continuous injection for 40 years and concurrent brine production with constant target rates. This is handled by introducing two types of groups, injectors and producers, with each group consisting of a number of identical wells.  
Constraints are set to the maximum and minimum bottomhole pressure thresholds, as well as to the maximum afforded breakthrough rate of CO2 recycling. High non-linearity is introduced to the problem by the effect of the wells' location on the objective function and of the dynamic schedule changes occurring when operational constraints are violated. If, for example, an injector is placed close to a producer, then it is likely that CO2 breakthrough will occur way sooner than otherwise. Subsequently, the producer will be closed off, and pressure will build up at a faster rate so that the constraint of maximum bottomhole pressure for the injector will be reached sooner, resulting in reduced sequestration. The depth at which each well is situated also plays a huge part in the breakthrough time. Since  
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Parameter** & **Value** & **Unit** \\ \hline Average pressure (\(P\)) & 5000 & Psi \\ Temperature (\(T\)) & 200 & \({}^{\circ}\) F \\ Porosity (\(\phi\)) & 0.25 & \\ Average depth (\(D\)) & \(10,180\) & ft \\ Average x permeability (\(k\)) & 300 & mD \\ Bulk volume (\(V\)) & \(2.4\cdot 10^{11}\) & scf \\ Water in place & \(1.7\cdot 10^{9}\) & STB \\ \hline \hline \end{tabular}
\end{table}
Table 1: Aquifer characteristics.  
Figure 2: Depth value per cell in the aquifer. The z-axis is scaled by a factor of 5 for visualization purposes. The tool used is ResInsight, which is an open-source cross-platform 3D visualization, curve plotting, and post-processing tool for reservoir models and simulations.  
CO\({}_{2}\) tends to migrate upwards, CO\({}_{2}\) travels faster to a producer situated near the crest. In contrast, if the producer is situated closer to the reservoir bottom, CO\({}_{2}\) breakthrough is delayed. The theoretical maximum amount of CO\({}_{2}\) stored is easily calculated as the target rate of the injectors over the timespan of injection. However, this maximum may be unobtainable due to the constraints already mentioned.  
The well placement optimization problem can be formulated as shown in Equation (14).  
\[\begin{array}{ll}\underset{\mathbf{x}}{\text{maximize}}&f(\mathbf{x})\\ \text{subject to}&g_{i}(\mathbf{x})\leq 0,\quad i=1,2,\ldots,m\end{array} \tag{14}\]  
where \(f(\mathbf{x})\) corresponds to the CO\({}_{2}\) mass sequestered, which can be sampled by simulation runs, and \(g_{i}(\mathbf{x})\leq 0\) are the scheduling constraints, where \(\mathbf{x}\) represents the decision variables, which, in this case, are the coordinates \((x,y)\) of each vertical well. Most commercial and research reservoir simulators can embed scheduling constraints into their runs, thus ensuring that the simulation is operationally feasible. This way, the scheduling constraints are handled by the simulator and thus do not need to be explicitly handled by the optimizer. There are, however, additional constraints related to the feasibility of the input space, as discussed in the next subsection. For the optimization process, the python package Bayesian Optimization [65] was utilized.