GeoEnergyIO.jl

Parsers and processing for geoenergy data file formats in Julia.
Author sintefmath
Popularity
7 Stars
Updated Last
2 Months Ago
Started In
January 2024

GeoEnergyIO

Stable Dev Build Status

Module for parsing and processing various types of input files used in geo-energy reservoir simulation (geothermal, carbon storage, gas storage, oil and gas recovery).

Currently contains two main features:

  • Parser for .DATA reservoir simulation cases. The format originated with the Eclipse reservoir simulator produced by SLB and is now used by many reservoir simulators. The most useful publicly available description of one such dialect is found in the OPM Flow manual.
  • A corner-point grid processor that converts parsed GRDECL files into unstructured meshes that handles general faults through the unstructured mesh from Jutul.jl.

Here is an example mesh parsed from the OLYMPUS Optimization Benchmark Challenge:

image

The supported file formats contain a great number of possible keywords. Not all keywords are supported. For keywords with limited support, a warning will be emitted. Contributions for additional keywords or other relevant input formats are welcome. If you have an example that you'd like to get working, please post it under the issues tab. GeoEnergyIO.jl originated as a part of the Julia reservoir simulation package JutulDarcy.jl where it enables reservoir simulation of simulation cases read from input files.

Installation

The package is registered in the official Julia registry. Install Julia and install using the package manager:

using Pkg;
Pkg.add("GeoEnergyIO")

Usage

Once the module is installed you can read a .DATA file with all include files:

using GeoEnergyIO
data = parse_data_file("MY_MODEL.DATA")

Units will automatically be converted to strict SI by default. If you want

You can also read .GRDECL files that contain a specification of a corner point grid:

grdecl = parse_grdecl_file("MY_GRID.GRDECL")

This can then be processed and converted into a volumetric grid suitable for visualization or simulation:

g = mesh_from_grid_section(grdecl)

For more information and a description of different options, see the latest documentation.

License and acknowledgements

The code is provided under the MIT license, allowing for commercial usage provided that sufficient attribution is provided. The test data sets come in part from the opm-tests repository. These files are licensed under the Open Database License. For more details, see the headers of those files. Other files are taken from or generated by MRST.