Skip to content
/ pyscal Public

Python module for relative permeability/SCAL support in reservoir simulation

License

Notifications You must be signed in to change notification settings

equinor/pyscal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d915943 · Sep 1, 2022
Aug 16, 2022
Sep 1, 2022
Jun 7, 2022
Aug 17, 2022
Aug 16, 2022
Mar 23, 2020
Jun 27, 2019
Oct 2, 2019
May 31, 2022
Oct 8, 2021
Oct 23, 2020
May 22, 2019
Aug 11, 2022
Jun 26, 2019
May 12, 2021
May 12, 2021
Aug 11, 2022
Aug 16, 2022
Mar 15, 2022

Repository files navigation

Build Status](https://github.com/equinor/pyscal/actions?query=workflow%3Apyscal) Language grade: Python Total alerts codecov Python 3.8-3.9 Code style: black PyPI version Downloads License: GPL v3

pyscal

Pyscal art, interpolation in random Corey curves

Python tool module for relative permeability/SCAL support in reservoir simulation

Documentation

Feature overview

  • Command line tool for generating Eclipse input from parameters in an XLSX- or CSV-file.

  • API to create relative permeability curves through correlations or tables.

  • Consistency checks for three-phase setups, ensures compatibility of oil-water tables and gas-oil tables.

  • Support for handling uncertainty, doing book-keeping for low, base and high cases, and the possiblity to interpolate between these cases using a number from -1 to +1.

Command line tool

Example use with CSV input for one SATNUM:

$ cat relperminput.csv
SATNUM, swl, sorw, Nw, Now
1,      0.1, 0.05, 2, 3
$ pyscal relperminput.csv --delta_s 0.1 -o relperm.inc
Written to relperm.inc

where relperm.inc can be used directly as an INCLUDE file in Eclipse or Flow. The same table as in the CSV above could have been in an XLSX file also.

Python API usage

Using the Python API, the same curves as above can be constructed with

from pyscal import WaterOil

wo = WaterOil(h=0.1, sorw=0.05, swl=0.1)
wo.add_corey_water(nw=2)
wo.add_corey_oil(now=3)
print(wo.SWOF())

which will produce the output

SWOF
--
-- pyscal: 0.4.1
-- swirr=0 swl=0.1 swcr=0.1 sorw=0.05
-- Corey krw, nw=2, krwend=1, krwmax=1
-- Corey krow, now=3, kroend=1
-- krw = krow @ sw=0.46670
-- Zero capillary pressure
-- SW     KRW       KROW      PC
0.1000000 0.0000000 1.0000000 0
0.2000000 0.0138408 0.6869530 0
0.3000000 0.0553633 0.4471809 0
0.4000000 0.1245675 0.2709139 0
0.5000000 0.2214533 0.1483818 0
0.6000000 0.3460208 0.0698148 0
0.7000000 0.4982699 0.0254427 0
0.8000000 0.6782007 0.0054956 0
0.9000000 0.8858131 0.0002035 0
0.9500000 1.0000000 0.0000000 0
1.0000000 1.0000000 0.0000000 0
/