# Ogs5py - a Python API for OGS5

**URL:** <https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313>\
**Category:** Help & Support\
**Tags:** ogs5, ogs5-input-files, ogs5-keywords\
**Created:** [January 15, 2019, 5:07pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313 "2019-01-15T17:07:13Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [January 15, 2019, 5:07pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/1 "2019-01-15T17:07:13Z")

</div>

Hey there,

I wrote a Python-API for OGS5 as presented at the user-meeting on 2019-01-11.  
You can find it on Github as part of the GeoStat-Framework:  
[https://github.com/GeoStat-Framework/ogs5py](https://github.com/GeoStat-Framework/ogs5py)

I also wrote a script-generation routine, to convert existing models to an ogs5py-script.  
I created a repository where I converted most of the Benchmark-scripts (about 300). You can find it here:  
[https://github.com/GeoStat-Framework/ogs5py\_benchmarks](https://github.com/GeoStat-Framework/ogs5py_benchmarks)

A presentation and short introduction to ogs5py can be found here:  
[Presentation User-Meeting (Jan 2019)](https://github.com/GeoStat-Framework/ogs5py_benchmarks/raw/master/presentation.pdf)

Feel free to contribute and I would be happy about any suggestions!

Cheers,  
Sebastian

---

<div class="post-metadata">

**Author:** ![thomas.kalbacher](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/thomas.kalbacher/32/1401_2.png) [@thomas.kalbacher](https://discourse.opengeosys.org/u/thomas.kalbacher)\
**Post date:** [January 17, 2019, 3:56pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/2 "2019-01-17T15:56:48Z")

</div>

Hey Sebastian,  
that’s a nice API and I love the script generator! At the moment there are 165 benchmark tests running after each pull request and not 300 I think. It needs a cleaning up off the list on github to distinguish between recently running and older benchmarks (archiv).

@bilke : is that correct`? 165 running benchmarks

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [January 17, 2019, 5:09pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/3 "2019-01-17T17:09:40Z")

</div>

Hey Thomas,

I think the generator is a powerful tool to convince people to use ogs5py. Another nice side effect is, that the benchmarks now appear in a unique format and a key-word check was performed (I found some bugs in the benchmarks because of that).

But I’ve still got some questions:

1. I ran into the problem, that there are some subkeywords, that can appear multiple times. In the current status of ogs5py this in not easily doable and I have to come up with a handy solution for that situation. Can you give me a list of sub-keywords this applies to?
2. Is there a common format for the ASC files I could come up with?
3. A list of the running benchmarks would be nice as you just said.
4. You mentioned some keywords, where some data is written directly after the keyword. This is not covered by ogs5py yet. Could you provide a list of keys with this property? I just took care of the DDC files, where the number of the subdomain is written (redundantly) after the #DOMAIN keyword.

Cheers,  
Sebastian

---

<div class="post-metadata">

**Author:** ![bilke](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/bilke/32/868_2.png) [@bilke](https://discourse.opengeosys.org/u/bilke)\
**Post date:** [January 17, 2019, 8:49pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/4 "2019-01-17T20:49:07Z")

</div>

Hi Guys,

thanks Sebastian for sharing this project! I had a quick look at your presentation from last week and this looks really cool and useful! I think this would be a really powerful addition and we should think about integration this into the code mainline. Although we thought the current version 5.8 would be the last I already see this in an upcoming version 5.9 …

For the current list of tested benchmarks check this Jenkins page: [https://jenkins.opengeosys.org/job/ufz/job/ogs5/job/master/lastBuild/testReport/(root)/projectroot/](https://jenkins.opengeosys.org/job/ufz/job/ogs5/job/master/lastBuild/testReport/(root)/projectroot/)

At the moment we have 189 active benchmarks (165 of them in the standard configuration `OGS_CONFIG=FEM`).

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [January 18, 2019, 11:43pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/5 "2019-01-18T23:43:20Z")

</div>

Thanks bilke for the Link! I created a list of active benchmarks:

> <https://github.com/GeoStat-Examples/ogs5py_benchmarks/blob/master/active_names.csv>

And again I found some bugs in the benchmark files. See:

> <https://github.com/ufz/ogs5-benchmarks/issues/27>
>
> While checking the actively ran Benchmarks, I found an unknown Sub-keyword (\`$AR…EA\`) in the following two mmp files:
> 
> T/HT\_var\_density\_1D.mmp
> T/Viscosity/viscosity\_yaws.mmp
> 
> Should it be \`$GEOMETRY\_AREA\`?

> <https://github.com/ufz/ogs5-benchmarks/pull/26>
>
> found with ogs5py

Cheers,  
Sebastian

---

<div class="post-metadata">

**Author:** ![thomas.kalbacher](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/thomas.kalbacher/32/1401_2.png) [@thomas.kalbacher](https://discourse.opengeosys.org/u/thomas.kalbacher)\
**Post date:** [January 21, 2019, 4:16pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/6 "2019-01-21T16:16:22Z")

</div>

> [@sebastian.mueller](#):
>
> 1. I ran into the problem, that there are some subkeywords, that can appear multiple times. In the current status of ogs5py this in not easily doable and I have to come up with a handy solution for that situation. Can you give me a list of sub-keywords this applies to?

Could you give an example please?

> [@sebastian.mueller](#):
>
> 1. Is there a common format for the ASC files I could come up with?

The ASC files relate to ESRI arcgis: [Esri ASCII-Raster-Format—Hilfe | ArcGIS for Desktop](http://desktop.arcgis.com/de/arcmap/10.3/manage-data/raster-and-images/esri-ascii-raster-format.htm)

> [@sebastian.mueller](#):
>
> 1. You mentioned some keywords, where some data is written directly after the keyword. This is not covered by ogs5py yet. Could you provide a list of keys with this property? I just took care of the DDC files, where the number of the subdomain is written (redundantly) after the #DOMAIN keyword.

That’s just a handful keywords which are not that common. I will check it out.

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [January 21, 2019, 6:44pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/7 "2019-01-21T18:44:51Z")

</div>

> [@thomas.kalbacher](#):
>
> Could you give an example please?

- `lag2d` repeated NEIGHBOR (cct)
- `decal` repeated NEIGHBOR (cct)
- `2D1P_transport` repeated POROSITY (mmp)
- `Nuklidtransport` repeated MASS\_DISPERSION (mmp)
- `cement2d` repeated KINETIC\_GEM (gem)
- `model_1` repeated DAT\_TYPE (out)
- `Leakage` repeated TIM\_TYPE (out)
- `CO2-FLOW` repeated DAT\_TYPE (out)
- `2pf_2pt` repeated SIMULATOR (pcs)

These are the ones I found.

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [January 22, 2019, 2:35pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/8 "2019-01-22T14:35:38Z")

</div>

# I just released the first official Version: **ogs5py v0.6**

> **[Release v0.6 · GeoStat-Framework/ogs5py](https://github.com/GeoStat-Framework/ogs5py/releases/tag/v0.6)**
>
> First release of the OGS5 Python API.
> Now you can setup, run and post-process your OGS5 Model dynamically in Python.
> Info
> Code: https://github.com/GeoStat-Framework/ogs5py
> Documentation: https://ge...

You can install it now via pip:

```
pip install ogs5py

```

I also created a first documentation:

> **[ogs5py Quickstart — ogs5py 1.3.0 documentation](https://geostat-framework.readthedocs.io/projects/ogs5py/en/stable/)**

There you can find a Quickstart and a simple tutorial. In addition all FileClasses are documented and linked against the Keyword documentation.

It was published on Zenodo:

> **[GeoStat-Framework/ogs5py v0.6](https://zenodo.org/records/2546786)**
>
> First release of the OGS5 Python API. Now you can setup, run and post-process your OGS5 Model dynamically in Python. Info Code: https://github.com/GeoStat-Framework/ogs5py Documentation: https://geostat-framework.readthedocs.io/projects/ogs5py...

I would love to hear what you think about this release!

---

<div class="post-metadata">

**Author:** ![thomas.kalbacher](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/thomas.kalbacher/32/1401_2.png) [@thomas.kalbacher](https://discourse.opengeosys.org/u/thomas.kalbacher)\
**Post date:** [January 22, 2019, 3:26pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/9 "2019-01-22T15:26:20Z")

</div>

After having a look on it, I would say:

| | |
| --- | --- |
| SPECIALCASE: | repeated NEIGHBOR (cct) refers to $NNEIGHBORS |
| SPECIALCASE: | decal repeated NEIGHBOR (cct) refers to $NNEIGHBORS |
| NOT-REPEATED: | 2D1P\_transport repeated POROSITY (mmp) |
| INPUT\_ERROR: | Nuklidtransport repeated MASS\_DISPERSION (mmp) |
| 3rdParty\_NOT\_OGS: | cement2dcement2d repeated KINETIC\_GEM (gem) |
| INPUT\_ERROR: | model\_1 repeated DAT\_TYPE (out) |
| INPUT\_ERROR: | Leakage repeated TIM\_TYPE (out) |
| INPUT\_ERROR: | CO2-FLOW repeated DAT\_TYPE (out) |
| NOT-REPEATED: | 2pf\_2pt repeated SIMULATOR (pcs) |

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [January 22, 2019, 5:38pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/10 "2019-01-22T17:38:11Z")

</div>

Ahhh!  
I found a bug in my reading routine. Therefore a lot of false-positive results showed up. I took the first key that matched the beginning of the given key… therefore POROSITY\_DISTRIBUTION was read as POROSITY and showed up two times afterwards.  
I fixed that. will be in Version **0.6.1**

I have to think about the $NNEIGHBORS keyword… this one needs special treatment.

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [May 16, 2019, 4:06pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/11 "2019-05-16T16:06:31Z")

</div>

> **[Release v0.6.4 · GeoStat-Framework/ogs5py](https://github.com/GeoStat-Framework/ogs5py/releases/tag/v0.6.4)**
>
> Release Notes
> Bugfixes
> 
> generator bugfix: more decimals to combine meshes: 51211a6
> Adopt new meshio container style: b08260b 167fb2c
> Better checking for the ogs executable: bffa41a 6c3895f
> Suppress...

ogs5py v0.6.4 released. Have a look at the changelog.  
You can update resp. install it via:

`pip install -U ogs5py`

## Bugfixes

- generator bugfix: more decimals to combine meshes: [51211a6](https://github.com/GeoStat-Framework/ogs5py/commit/51211a654c91432db0a46a5f269acfeed34c0076)
- Adopt new meshio container style: [b08260b](https://github.com/GeoStat-Framework/ogs5py/commit/b08260be821a09068a618c5e3b3804b7f0dcca38) [167fb2c](https://github.com/GeoStat-Framework/ogs5py/commit/167fb2c8e231ac4ab6a561a3b19345f2038065b0)
- Better checking for the ogs executable: [bffa41a](https://github.com/GeoStat-Framework/ogs5py/commit/bffa41a72d5283279428982ad82f07d16f1d9171) [6c3895f](https://github.com/GeoStat-Framework/ogs5py/commit/6c3895f25aa9c6b5316d31a0ea0cdc7eb289a839)
- Suppressing VTK Errors: [cfa4671](https://github.com/GeoStat-Framework/ogs5py/commit/cfa4671f93c54508db87aec181f9c8f0b892d61a)
- DOC updates: [9131e0c](https://github.com/GeoStat-Framework/ogs5py/commit/9131e0cf9e0e1f2a8d65ceaf0907fdbe4fa089bf) [7a27d8f](https://github.com/GeoStat-Framework/ogs5py/commit/7a27d8f9210362bd8516591a7aaa7d7d4004b7e9) [fc4314c](https://github.com/GeoStat-Framework/ogs5py/commit/fc4314cf5a4e055561bd8a4c805de06b6608082b)

## Additions

- New routine to zip data by IDs: [9accf6e](https://github.com/GeoStat-Framework/ogs5py/commit/9accf6e84b4cf25c485073c946728cc35d0c09ae)
- reading routines in the OGS Class: [592bc50](https://github.com/GeoStat-Framework/ogs5py/commit/592bc507ff10e9a8dbff5a49c510fa8acffe62a0)
- New `del_block` routine in Blockfiles: [8d15a90](https://github.com/GeoStat-Framework/ogs5py/commit/8d15a900103b72c2845129f5345ea8250be41384)

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [July 5, 2019, 2:00pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/12 "2019-07-05T14:00:56Z")

</div>

> **[Release v0.6.5 · GeoStat-Framework/ogs5py](https://github.com/GeoStat-Framework/ogs5py/releases/tag/v0.6.5)**
>
> Release Notes
> Bugfixes
> 
> gli.add\_polyline: Adding polyline by given point IDs was not possible: 3ec23af
> 
> Additions
> 
> New swap\_axis routine in msh and gli: You can now easily swap axis of a mesh. If y...

ogs5py v0.6.5 released. Have a look at the changelog.  
You can update resp. install it via:

`pip install -U ogs5py`

## Bugfixes

- gli.add\_polyline: Adding polyline by given point IDs was not possible: [3ec23af](https://github.com/GeoStat-Framework/ogs5py/commit/3ec23af77456200a128e8f9435be074375cb251d)

## Additions

- New swap\_axis routine in msh and gli: You can now easily swap axis of a mesh. If you have generated a 2D mesh in x-y you can get a x-z cross-section by swapping the y and z axis: [3ec23af](https://github.com/GeoStat-Framework/ogs5py/commit/3ec23af77456200a128e8f9435be074375cb251d)

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [August 22, 2019, 3:20pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/13 "2019-08-22T15:20:59Z")

</div>

# First stable release: ogs5py 1.0

> **[Release v1.0.0 · GeoStat-Framework/ogs5py](https://github.com/GeoStat-Framework/ogs5py/releases/tag/v1.0.0)**
>
> Release Notes
> Bugfixes
> 
> GLI.add\_polyline now allows integer coordinates for points: bf5d684
> MSH.centroids are now calculated as center of mass instead of center of element nodes: b0708a6
> MSH.show w...

ogs5py **v1.0.0** is finally released. There will be a publication about ogs5py in the near future.  
You can update resp. install it via:

`pip install -U ogs5py`

# ogs5py benchmarks

Almost all OGS5 Benchmarks were converted to an ogs5py script with the provided script generator. These benchmarks can be seen as a smorgasbord to provide a starting point for your own ogs5py model.

> **[GitHub - GeoStat-Examples/ogs5py\_benchmarks: The OGS5-Benchmarks written with ogs5py](https://github.com/GeoStat-Examples/ogs5py_benchmarks)**
>
> The OGS5-Benchmarks written with ogs5py

# Release Notes

### Bugfixes

- `GLI.add_polyline` now allows integer coordinates for points: [bf5d684](https://github.com/GeoStat-Framework/ogs5py/commit/bf5d684a2c01f2b6eb4e13098cfc77711c05d35d)
- `MSH.centroids` are now calculated as center of mass instead of center of element nodes: [b0708a6](https://github.com/GeoStat-Framework/ogs5py/commit/b0708a69bd290d613d663385193a3a9ff69ee625)
- `MSH.show` was not working: [6a0489b](https://github.com/GeoStat-Framework/ogs5py/commit/6a0489bc1675b909946e1a870459fc7f7ddf7629)
- `OGS.run_model` has now a better check for OGS success: [143d0ab](https://github.com/GeoStat-Framework/ogs5py/commit/143d0ab56e63f9e5cc1688bc621788ad42be67e9)
- `GMSH` interface was updated to new meshio-API: [d3e0594](https://github.com/GeoStat-Framework/ogs5py/commit/d3e05941a7a76a6d6fdf53a148af7b196fede66a)
- `RFR` file was not written: [41e55f3](https://github.com/GeoStat-Framework/ogs5py/commit/41e55f3d585afe6f8cdb9b94317d5166dc51b2e1)
- `BC` new sub-key TIME\_INTERVAL was missing: [94ec5c5](https://github.com/GeoStat-Framework/ogs5py/commit/94ec5c500de8877dc462df6ef86af5ae0187625f)

### Additions

- `download_ogs` downloads a system dependent OGS5 executable: [ede32e4](https://github.com/GeoStat-Framework/ogs5py/commit/ede32e411785b51cdd0983a924c3c7ea117ab026)
- `add_exe` add a self compiled OGS5 executable: [ede32e4](https://github.com/GeoStat-Framework/ogs5py/commit/ede32e411785b51cdd0983a924c3c7ea117ab026)
- `MSH.import_mesh` now allows the import of material\_id and element\_id if given as cell\_data in the external mesh: [00a77fa](https://github.com/GeoStat-Framework/ogs5py/commit/00a77fae9d492eb16872443e9be4262d4515da27)
- `MSH.export_mesh` now automatically exports material\_id (already the case before) and element\_id.  
Also you can now export additional `point_data` and `field_data` : [00a77fa](https://github.com/GeoStat-Framework/ogs5py/commit/00a77fae9d492eb16872443e9be4262d4515da27)
- New method `MSH.set_material_id` to set the material IDs for specific elements: [4b11c6a](https://github.com/GeoStat-Framework/ogs5py/commit/4b11c6a70164565a8ab0b58d56b084b27ea781f1)
- `MSH.show` now can show additional cell\_data: [ffd7604](https://github.com/GeoStat-Framework/ogs5py/commit/ffd76045e0591a00fd51c937ba62c4d5945c3fed)
- New routine `show_vtk` to show vtk output with mayavi: [f640c19](https://github.com/GeoStat-Framework/ogs5py/commit/f640c1977d7b9a869c56f61186613c8b9c9ef345)
- New method `OGS.output_files` to get a list of output files: [2f5f102](https://github.com/GeoStat-Framework/ogs5py/commit/2f5f10237c1b54d21b0b6a01598680e889dc7bf6)
- New attribute `file_name` for files: [632c2e7](https://github.com/GeoStat-Framework/ogs5py/commit/632c2e7b1ab33ec3b55bd8be6fbbe1f67d5c5651)
- BlockFile: new method `append_to_block` : [efc9aac](https://github.com/GeoStat-Framework/ogs5py/commit/efc9aac16293960f199440d5df3ff924f8d593ff)
- `OGS.gen_script` now allowes multiple subkeys: [2cd344b](https://github.com/GeoStat-Framework/ogs5py/commit/2cd344b3ad6b6e1d7fcfd9e560854e5fe102b604)

### Changes

- `MSH.export_mesh` argument `add_data_by_id` renamed to `cell_data_by_id` : [00a77fa](https://github.com/GeoStat-Framework/ogs5py/commit/00a77fae9d492eb16872443e9be4262d4515da27)
- `OGS.run_model` argument `ogs_root` renamed to `ogs_exe` : [6fcdb61](https://github.com/GeoStat-Framework/ogs5py/commit/6fcdb617b4f61e738240830d637a0718732a66ad)
- Files that can occure multiple times (mpd, rfr, …) are better handled now: [4a9c9d2](https://github.com/GeoStat-Framework/ogs5py/commit/4a9c9d2a2209e49b336bdb59fd51f3362be44c8f)
- `ogs5py` is now licensed under the MIT license: [ae96c0e](https://github.com/GeoStat-Framework/ogs5py/commit/ae96c0e7a5889632e9c34d0fc4577df587da3164)
- Extra named files now get their name by keyword `name` : [632c2e7](https://github.com/GeoStat-Framework/ogs5py/commit/632c2e7b1ab33ec3b55bd8be6fbbe1f67d5c5651)

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [April 2, 2020, 5:46pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/14 "2020-04-02T17:46:05Z")

</div>

# New release: ogs5py v1.1

> **[Release v1.1.0 · GeoStat-Framework/ogs5py](https://github.com/GeoStat-Framework/ogs5py/releases/tag/v1.1.0)**
>
> Release Notes
> Installation
> You can install ogs5py with pip:
> pip install ogs5py
> 
> Documentation
> The documentation can be found at: https://ogs5py.readthedocs.io/
> What's new?
> Bugfixes
> 
> meshio 4 was no...

# Release Notes

## Installation

You can install ogs5py with pip:

```
pip install ogs5py

```

## Documentation

The documentation can be found at: [https://ogs5py.readthedocs.io/](https://ogs5py.readthedocs.io/)

## What’s new?

### Bugfixes

- meshio 4 was not compatible
- fixed integer type in exporting meshes with element/material IDs
- better check for OGS5 success on Windows

### Changes

- drop py2.7 support

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [June 29, 2020, 2:36pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/15 "2020-06-29T14:36:16Z")

</div>

ogs5py got its own publication now:  
[https://ngwa.onlinelibrary.wiley.com/doi/abs/10.1111/gwat.13017](https://ngwa.onlinelibrary.wiley.com/doi/abs/10.1111/gwat.13017)

Cite it, if you use it 😉

---

<div class="post-metadata">

**Author:** ![sebastian.mueller](https://discourse.opengeosys.org/user_avatar/discourse.opengeosys.org/sebastian.mueller/32/420_2.png) [@sebastian.mueller](https://discourse.opengeosys.org/u/sebastian.mueller)\
**Post date:** [May 15, 2022, 3:43pm UTC](https://discourse.opengeosys.org/t/ogs5py-a-python-api-for-ogs5/313/16 "2022-05-15T15:43:22Z")

</div>

New Release: ogs5py v1.2

> **[Release v1.2.1 · GeoStat-Framework/ogs5py](https://github.com/GeoStat-Framework/ogs5py/releases/tag/v1.2.1)**
>
> Release Notes
> Installation
> You can install ogs5py with pip:
> pip install ogs5py
> 
> Documentation
> The documentation can be found at: https://ogs5py.readthedocs.io/
> What's new?
> Enhancements
> 
> MSH.import\_...

## 1.2.1 - 2022-05-15

### Enhancements

- `MSH.import_mesh` can handle `meshio.Mesh` as input now [#13](https://github.com/GeoStat-Framework/ogs5py/pull/13)

### Changes

- `pygmsh` support was removed. You can’t use pygmsh Geometry objects to generate meshes anymore. Please generate beforehand and import the generated mesh. Other generators are using `gmsh` directly now. [#13](https://github.com/GeoStat-Framework/ogs5py/pull/13)

## 1.2.0 - 2022-05-15

### Enhancements

- move to a `pyproject.toml` based installation: [d5ea756](https://github.com/GeoStat-Framework/ogs5py/commit/d5ea756629f3aaad6f4f8e197926f932677a6658)
- move from `develop`/`master` branches to a single `main` branch
- use GitHub Actions for CI: [b6811ce](https://github.com/GeoStat-Framework/ogs5py/commit/b6811ce3c39fa0eea849aac146384032cda10a37)
- use f-strings where possible [#11](https://github.com/GeoStat-Framework/ogs5py/pull/11)
- simplified documentation [#11](https://github.com/GeoStat-Framework/ogs5py/pull/11)
- added changelog to documentation [#11](https://github.com/GeoStat-Framework/ogs5py/pull/11)
- added citation file and paper reference [#11](https://github.com/GeoStat-Framework/ogs5py/pull/11)
- use Python 3 style classes [#11](https://github.com/GeoStat-Framework/ogs5py/pull/11)

### Changes

- `downlaod_ogs` only supports version “5.7”, “5.7.1” and “5.8” since the CI for OGS5 was shut down: [8b1cc91](https://github.com/GeoStat-Framework/ogs5py/commit/8b1cc91e5e88ac65288bc30b9c44fda781b70710)

### Bugfixes

- make `downlaod_ogs` work again [8b1cc91](https://github.com/GeoStat-Framework/ogs5py/commit/8b1cc91e5e88ac65288bc30b9c44fda781b70710)
- documentation fix in `GLI.add_polyline` [#7](https://github.com/GeoStat-Framework/ogs5py/issues/7)
- require `pygmsh<7` for now [#11](https://github.com/GeoStat-Framework/ogs5py/pull/11)
