Skip to content

pinga-lab/DisReserv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DisReserv (v1.0): 3D DISPLACEMENT AND STRESS FIELDS OF COMPACTING RESERVOIR: ALTERNATIVE SOLUTIONS

Simulate reservoir compaction due to pore-pressure changes by integrating the solution proposed by Sharma (1956) and Tempone et al. (2010) on the volume of rectangular cells. This strategy is similar to that proposed by Muñoz and Roehl (2017). The difference here is that we solve the volume integrals according to Nagy et al. (2000), Nagy et al. (2002) and Fukushima (2020)

  • Sharma, B. D. (1956). Stresses in an infinite slab due to a nucleus of thermoelastic strain in it. Z. Angew. Math. Mech. 36 (1/2): 75.

  • Nagy, D., Papp, G. and Benedek, J. (2000). The gravitational potential and its derivatives for the prism. Journal of Geodesy 74: 552. https://doi.org/10.1007/s001900000116

  • Nagy, D., Papp, G. and Benedek, J. (2002). Corrections to “The gravitational potential and its derivatives for the prism”. Journal of Geodesy 76: 475. https://doi.org/10.1007/s00190-002-0264-7

  • Tempone, P., Fjær, E. and Landrø, M. (2010). Improved solution of displacements due to a compacting reservoir over a rigid basement. Applied Mathematical Modelling 34: 3352. https://doi.org/10.1016/j.apm.2010.02.025

  • Muñoz, L. F. P. and Roehl, D. (2017). An analytical solution for displacements due to reservoir compaction under arbitrary pressure changes. Applied Mathematical Modelling 52: 145. https://doi.org/10.1016/j.apm.2017.06.023

  • Fukushima, T. (2020). Speed and accuracy improvements in standard algorithm for prismatic gravitational field. Geophysical Journal International 222: 1898–1908. https://doi.org/10.1093/gji/ggaa240

This paper has been submitted for publication in Brazilian Journal of Geophysics (2022) of the Brazilian Geophysical Society

Abstract

We have presented alternative solutions for the displacement and stress fields outside and inside of a 3D right rectangular prism under constant pressure. These solutions are obtained by integrating the well-known nucleus-of-strain solution over the volume of the prism. They are based on the similarity between the gravitational potential yielded by a volume source under a density variation and the thermoelastic displacement potential yielded by a volume source in a half-space under a pressure variation. This similarity enables the use of closed expressions of the gravitational potential and its derivatives. We use our solution for approximating the displacement and stress fields due to a reservoir with arbitrary shape and under arbitrary pressure changes. We discretized the reservoir as a grid of 3D right rectangular prisms juxtaposed in the horizontal and vertical directions. Each prism has homogeneous pressure; however, pressure variations among different prisms are allowed. This parametrization of the reservoir yields a piecewise-constant distribution of pressure in the subsurface. We validate the resultant displacement and stress fields due to the reservoir by numerical simulations including a reservoir with arbitrary geometry and under arbitrary pressure distribution, based on a production oil field in offshore Brazil.

Reproducing the results

You can download a copy of all the files in this repository by cloning the git repository:

git clone https://github.com/pinga-lab/DisReserv.git

All source code used to generate the results and figures in the paper are in the code folder. The sources for the manuscript text are in manuscript folder. The figures shown in the paper were generated by running the source codes in the code folder and they were saved in the Fig folder. See the README.md files in each directory for a full description.

The calculations and figure generation are all run inside Jupyter notebooks. You can view a static (non-executable) version of the notebooks in the nbviewer webservice:

http:https://nbviewer.jupyter.org/github/pinga-lab/DisReserv

See sections below for instructions on executing the code.

Setting up your environment

You'll need a working Python 3.7.6 environment with all the standard scientific packages installed (numpy, scipy, matplotlib, etc). The easiest (and recommended) way to get this is to download and install the Anaconda Python distribution. Make sure you get the Python 3.7.6 version.

Use conda package manager (included in Anaconda) to create a virtual environment with all the required packages installed. Run the following command in this folder (where environment.yml is located):

conda env create

To activate the conda environment, run

source activate disreserv

or, if you're on Windows,

activate disreserv

This will enable the environment for your current terminal session. After running the code, deactivate the environment with the following commands:

source deactivate

or, if you're on Windows,

deactivate

Windows users: We recommend having a bash shell and the make installed to run the code, produce the results and check the code. You may download the Git for Windows and the Software Carpentry Windows Installer.

Running the code

To execute the code in the Jupyter notebooks, you must first start the notebook server by going into the repository folder and running:

jupyter notebook

Make sure you have the conda environment enabled first.

This will start the server and open your default web browser to the Jupyter interface. In the page, go into the code folder and select the notebook that you wish to view/run.

The notebook is divided into cells (some have text while other have code). Each cell can be executed using Shift + Enter. Executing text cells does nothing while executing code cells runs the code and produces it's output. To execute the whole notebook, run all cells in order or use "Cell -> Run All" from the menu bar.

Archived version at Zenodo

You can also find an archived version of the code at:

DOI

License

All source code is made available under a BSD 3-clause license. You can freely use and modify the code, without warranty, so long as you provide attribution to the authors. See LICENSE.md for the full license text.

The manuscript text is not open source. The authors reserve the rights to the article content, which is currently submitted for publication in Brazilian Journal of Geophysics (2022)