Welcome to Petres

Petres is a lightweight, open-source Python library for reservoir grid modeling, providing a fully programmatic approach to constructing Corner-Point grid models.

Important

Petres is currently in early development. The API is not yet stable and may change without notice.

Features

Grid Generation

Construct Corner-Point, Rectilinear, and Regular grids. Apply boundary polygons to deactivate cells outside the target region.

Rectilinear and Regular Grids
Structural Modeling

Generate horizon and zone surfaces from well tops to support grid construction.

Grid Modeling from Horizons and Zones
Property Modeling

Assign petrophysical properties to grid cells using stochastic or deterministic methods, derived attributes, or interpolation from well data.

Property Modeling
Import & Export Grids

Handle Eclipse grids (SLB reservoir simulator) using the .GRDECL file format. Visualize and export modeled Corner-Point grids.

Exporting Grid Models
Visualization

Interactive 2D and 3D rendering of Corner-Point grids, structural zones, horizons, and spatial property distributions.

Grid Visualization

Why Petres?

  • Open Access: Free alternative for engineers and students without access to expensive commercial softwares.

  • Scriptable Modeling: Avoid UI complexity and work with code-driven workflows.

  • Fully Customizable: Integrate your own code alongside built-in methods.

  • AI Integration: Use the Python ecosystem to apply AI and Machine Learning techniques.

Technical Architecture

Component

Implementation

Grid Operations

High-performance, vectorized array computations using NumPy.

2D Plotting

2D plots are generated via the Matplotlib.

3D Visualization

Interactive 3D rendering and mesh visualization via PyVista.

Kriging Interpolation

Ordinary and Universal Kriging implemented via PyKrige.

RBF Interpolation

Multi-dimensional Radial Basis Function interpolation utilizing SciPy.

IDW Interpolation

In-house implementation for Inverse Distance Weighting.

Getting Started

Start modeling with Petres by following the Installation Guide and the Quickstart Tutorial. The source code is also available on GitHub.

Contributing

Contributions of all sizes are welcome, whether it’s fixing bugs, improving documentation, adding new features, or suggesting ideas for future development.

If you’d like to contribute, please read the Developer Guide to learn about the project structure, development workflow, coding standards, testing, and how to submit a pull request.

Contact

For questions, suggestions, or collaboration, feel free to reach out: