Code Monkey home page Code Monkey logo

pyresim's Introduction

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.

pyresim's People

Contributors

mohammedsaif38 avatar yohanesnuwara avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyresim's Issues

Standarize Template File

Hi Yohanes! I was checking some of your code and found something maybe you could check:

As I understand, you are using template.txt as a way to tell users how we are supposed to load data. But with this way I think it is harder to parse it appropriately. Have you tried using a JSON style template? I think it could bring something more maintenable. For example:

template:txt:

RESERVOIR DESCRIPTION

GEOM PROP FLUID
REG HOMOG 1PHASE

RESERVOIR INPUT

NX NY NZ DX DY DZ KX KY KZ PORO RHO CPORE MU B CFLUID
50 50 0 100 150 75 150 100 0 0.2 50 0 3.5 1 0


Can become this:

template.json:

{
'RESERVOIR DESCRIPTION':
{
'GEOM' : 'REG',
'PROP' : 'HOMOG',
'FLUID' : '1PHASE'
}
.....
.....
.....
.....
}

With that you can use json library in Python to parse required information and handle much better the missing one.

Just a thought! And thanks for your dedication!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.