Skip to content

Reservoir simulator in Python language

License

Notifications You must be signed in to change notification settings

k1m190r/pyresim

 
 

Repository files navigation

PyReSim*

Python reservoir simulation from single-phase simple reservoir to multi-phase complex reservoir

*) still on work. Progress bar 40%

This repository is still worked on. However, each week or so, there will be a teaser posted in my LinkedIn, about one reservoir simulation case and how PyReSim is used to solve. It will be scheduled for launch once all simulators have been set up and complete (scheduled in 2021). See my progress bar to keep updated, stay tuned!

Aspects simulated in PyReSim

Aspects Availability
Reservoir geometry Regular 1D and 2D; 2D cylindrical well simulation; 2D reservoir with different elevations; 2D reservoir with irregular boundaries; 3D reservoir (*)
Reservoir property Homogeneous (both isotropic & anisotropic permeability); heterogeneous (*)
Boundary conditions Specified flow rate; Specified pressure; Specified pressure gradient; No flow
Well details Diameter; skin factor; location at the grid block (center, edge, or corner)
Well-operating conditions Specified flow rate (producer/injector well); Specified flowing borehole pressure (FBHP); Specified pressure gradient; Shut-in
Reservoir fluid types Single-phase incompressible fluid (brine), slightly-compressible fluid (undersaturated oil), compressible fluid (gas); Multi-phase reservoir (brine-oil-gas)
Solver methods Matrix inversion (very 3x basic method); explicit; implicit; Crank-Nicholson; many more.

(*) These aspects are still not available on the first launch (in 2021). It will be available on the second launch (afterwards).

Teasers

Teaser No. Picture Description Input data Simulator
1

Click here for case description
A gas-free oil in a 2D reservoir with uniform
grid dimension. Reservoir boundary in the west
has constant pressure, in the east is sealed (no flow),
in the south has pressure gradient, and in the
north has constant rate. Five wells penetrates
the reservoir, with various wellbore radius,
skin, and operating conditions.
input file source code
2

Click here for case description
A 2D reservoir with irregular boundaries
hosting a volatile oil. The reservoir is bounded
by a constant pressure. 2 wells penetrate into the
reservoir, and the flow rate as well as FBHP will be
reported after 50 days.
input file source code
3
The same 2D reservoir in Teaser 2, has now
elevations (Pseudo-3D). The reservoir hosts gas.
The reservoir is bounded by a constant pressure.
2 wells penetrate into the reservoir, and the flow
rate as well as FBHP will be reported after 50 days.
Coming soon Coming soon

Challenging Case

PyReSim will be performed to a more challenging case. This case is obtained from a "Chapter Project" in Basic Applied Reservoir Simulation (Ertekin, Abou-Kassem, King; 2001). In this case, the reservoir geometry is complex (irregular boundary, varied grid size) and reservoir property is heterogeneous. See more details of this case

Open for Contribution!

These is a list contains several options for contributions:

  • Help writing and translating a reservoir data into Schlumberger ECLIPSE format, or JSON format
  • (Updated more soon)

Let's make PyReSim better together. If you're confident to contribute, please let me know and mail me

List of our collaborators:

License

The author chooses Creative Commons BY-NC-ND 4.0 International to license this work. Please read what's permitted and what's not permitted here

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

About

Reservoir simulator in Python language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 95.0%
  • Python 5.0%