Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jason first commit #19

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/.quarto/
595 changes: 595 additions & 0 deletions BayesianFWI/abstract.html

Large diffs are not rendered by default.

602 changes: 602 additions & 0 deletions BayesianKrig/abstract.html

Large diffs are not rendered by default.

576 changes: 576 additions & 0 deletions DetectabilityWithVision/abstract.html

Large diffs are not rendered by default.

75 changes: 75 additions & 0 deletions MaxInjectionRate/MaxQ.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
title: "Maximizing CO2 injection rate without exceeding the fracture pressure via gradient based optimization method."
author:
- name: Haoyun Li
orcid:
email: hli853@gatech.edu
url:
affiliations:
name: Georgia Institute of Technology
url: https://slim.gatech.edu/
- name: Ziyi Yin
orcid: "0000-0002-5024-8771"
email: ziyi.yin@gatech.edu
url: https://ziyiyin97.github.io
affiliations:
name: Georgia Institute of Technology
url: https://slim.gatech.edu/
- name: Thomas Grady
affiliations:
- name: Georgia Institute of Technology
url: https://slim.gatech.edu/
- name: Felix J. Herrmann
orcid: "0000-0003-1180-2167"
affiliations:
- name: Georgia Institute of Technology
url: https://slim.gatech.edu/
---

## Objectives/Scope (600 characters)

To achieve higher storage efficiency and avoid leakage risks in geological carbon storage projects, it is crucial to design a CO~2~ injection strategy for maximal CO~2~ injection without exceeding the fracture pressure of the reservoir. Unfortunately, conventional local search methods require massive numerical simulations that are computationally expensive. To reduce the computational costs, we propose to reformulate the problem with the log-barrier method and use gradient-based optimization. Synthetic experiments show that we find the optimal injection strategy with much fewer numerical simulations.

<!--I didn't read paragraphs below into details since math is not allowed and also they seem deviated from the main message. Maths can be shown in figures. Either R or finite-difference are not related to the main message. I suggest we show an experiment where we compare the number of simulations for 2 methods

1. local search (or any other reasonable conventional methods)
2. gradient-based optimization method

In the end, they should reach a similar solution such that injection amount is similar. I would expect gradient-based method leads to fewer simulations, which would be the main message of this abstract.-->

## Methods, Procedures, Process (1500 characters)
We are trying maximizing the injection rate over a time period and the pressure at each time cannot exceed the pressure limit. The optimization problem can be formulated as,
$$
\max_{q(t)} \int_{t=0}^{T} q(t) dt \ \ s.t. \ \ p_x(S(K, q(t))) < p_{max}, \forall x \in Seal, \ t \in [0, T]
$$
Here, $q(t)$ is the injection rate at time $t$, $p_x$ is the pressure at location $x$, $S$ is the two-phase flow simulator, $K$ is the permeablity, $p_{max}$ is the fracture pressure, $Seal$ is the set of all the points on the seal, $T$ is the total injected period. \
To better solve above the unconstrained optimization problem, we reformulate the it via log barrier method and calculate the integral via sum over discrete time points, which is,
$$
\min_{q(t)} [-\sum_{t=t_0}^{t_n} q(t) dt - \sum_{t=t_0}^{t_n} \sum_{x \in Seal} \log(p_{max}-p_x(S(K, q(t)))) ]
$$
And the second log penalty term will be boomed to positive infinity if the input of log function is negative, which means we exceed the fracture pressure. \
Since the first term of sum of the injected amount and the second log penalty term have different physical quantity, we tune a weight term $R$ to balance the two terms on a validation set. The $R$ turns to be in the range of $2 \times 10^7$ to $4 \times 10^7$. And with the weight term $R$, the objective function is,
$$
\min_{q(t)} [- \frac{1}{R} \sum_{t=t_0}^{t_n} q(t) dt - \sum_{t=t_0}^{t_n} \sum_{x \in Seal} \log(p_{max}-p_x(S(K, q(t))))]
$$
Then, we use our gradient-based optimzation method, which can choose the right step size to do the gradient descent, to find the injection rate which reaches the mimnimum of the objective function. This injection rate is the possible maximum injection rate without going over the pressure limit. \
And the gradient of objective function w.r.t. injection rate is calculated by finite difference method, since $S$, the two phase simulator, is a quite complex function, which is hard to express in clear formulas.

## Results, Observations, Conclusions (1500 characters)
We simulate the injection scenario with the North Sea Compass model, which has the geological feature very close to the real CO2 injection sites. We inject the CO2 for $250$ days, and set the fracture pressure to be $2 \times 10^7$. The permeability slice(in millidarcy) and injection location is displayed in Figure 2(a). \
We try with three types of injection rate, constant injection rate(one time step), injetion rate varying in two time steps, injection rate varying in five time steps. All these types of injection rate are initialized be small(between 0 and 1) at first, then we run our gradient-based optimization method on the objective function with weight to find the maximum injection rate. The optimal(maximum) injection rate of these three types are shown in Figure 2(b). (Some analyses for the injection rate behavior. The storage capacities for the final injection for these three types are separately, will add this part later.) \
The gradient-based algorithm runs 20 iterations for finding the optimal injection rate for two time steps injection rate, I plot the saturation and pressure plots at initial(0th iteration) middle(5th iteration) and final(20th iteration)in Figure 1. It is clear that the gradient-based algorithm works well to quickly find the maximmum injection rate in few iterations. Also, the trend of the increasing pressure at seal points is obvious. More information is in slimgroup.github.io/IMAGE2023.

::: {#fig-1 }
![](figs/fig1.png){width="100%"}

Change of saturation and pressure on two time steps vector over iterations.

:::

::: {#fig-2 }
![](figs/fig2.png){width="100%"}

*(a)* displays the permeability slice and injection location. *(b)* displays the optimal injection rate for one time step, two time steps, three time steps injection rate.

:::
Binary file added MaxInjectionRate/figs/fig1.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 added MaxInjectionRate/figs/fig2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
683 changes: 683 additions & 0 deletions OneShot/abstract.html

Large diffs are not rendered by default.

Loading