ogs5py

A Python-API for the OpenGeoSys 5 scientific modeling package.

https://github.com/geostat-framework/ogs5py

Science Score: 41.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

ogs5 opengeosys python python-api
Last synced: 6 months ago · JSON representation ·

Repository

A Python-API for the OpenGeoSys 5 scientific modeling package.

Basic Info
Statistics
  • Stars: 22
  • Watchers: 6
  • Forks: 8
  • Open Issues: 2
  • Releases: 0
Topics
ogs5 opengeosys python python-api
Created almost 8 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

Welcome to ogs5py

DOI PyPI version Continuous Integration Coverage Status Documentation Status Code style: black

ogs5py-LOGO

Purpose

ogs5py is A python-API for the OpenGeoSys 5 scientific modeling package.

Installation

You can install the latest version with the following command:

pip install ogs5py

Or with conda:

conda install ogs5py

Citation

If you are using ogs5py in your publication please cite our paper:

Müller, S., Zech, A. and Heße, F.: ogs5py: A Python-API for the OpenGeoSys 5 Scientific Modeling Package. Groundwater, 59: 117-122. https://doi.org/10.1111/gwat.13017, 2021.

You can cite the Zenodo code publication of ogs5py by:

Sebastian Müller. GeoStat-Framework/ogs5py. Zenodo. https://doi.org/10.5281/zenodo.2546767

If you want to cite a specific version, have a look at the Zenodo site.

Documentation for ogs5py

You can find the documentation under ogs5py.readthedocs.io.

Further Information

  • General homepage: https://www.opengeosys.org/ogs-5
  • OGS5 Repository: https://github.com/ufz/ogs5
  • Keyword documentation: https://ogs5-keywords.netlify.com
  • OGS5 Benchmarks: https://github.com/ufz/ogs5-benchmarks
  • ogs5py Benchmarks: https://github.com/GeoStat-Framework/ogs5py_benchmarks

Tutorials and Examples

In the following a simple transient pumping test is simulated on a radial symmetric mesh. The point output at the observation well is plotted afterwards. For more details on this example, see: Tutorial 1

```python from ogs5py import OGS, specialrange, generate_time from matplotlib import pyplot as plt

discretization and parameters

time = specialrange(0, 3600, 50, typ="cub") rad = specialrange(0, 1000, 100, typ="cub") obs = rad[21] angles = 32 storage = 1e-3 transmissivity = 1e-4 rate = -1e-3

model setup

model = OGS(taskroot="pumptest", task_id="model")

generate a radial mesh and geometry ("boundary" polyline)

model.msh.generate("radial", dim=2, rad=rad, angles=angles) model.gli.generate("radial", dim=2, radout=rad[-1], angles=angles) model.gli.addpoints([0.0, 0.0, 0.0], "pwell") model.gli.addpoints([obs, 0.0, 0.0], "owell") model.bc.addblock( # boundary condition PCSTYPE="GROUNDWATERFLOW", PRIMARYVARIABLE="HEAD", GEOTYPE=["POLYLINE", "boundary"], DISTYPE=["CONSTANT", 0.0], ) model.st.addblock( # source term PCSTYPE="GROUNDWATERFLOW", PRIMARYVARIABLE="HEAD", GEOTYPE=["POINT", "pwell"], DISTYPE=["CONSTANTNEUMANN", rate], ) model.ic.addblock( # initial condition PCSTYPE="GROUNDWATERFLOW", PRIMARYVARIABLE="HEAD", GEOTYPE="DOMAIN", DISTYPE=["CONSTANT", 0.0], ) model.mmp.addblock( # medium properties GEOMETRYDIMENSION=2, STORAGE=[1, storage], PERMEABILITYTENSOR=["ISOTROPIC", transmissivity], ) model.num.addblock( # numerical solver PCSTYPE="GROUNDWATERFLOW", LINEARSOLVER=[2, 5, 1e-14, 1000, 1.0, 100, 4], ) model.out.addblock( # point observation PCSTYPE="GROUNDWATERFLOW", NODVALUES="HEAD", GEOTYPE=["POINT", "owell"], DATTYPE="TECPLOT", ) model.pcs.addblock( # set the process type PCSTYPE="GROUNDWATERFLOW", NUMTYPE="NEW" ) model.tim.addblock( # set the timesteps PCSTYPE="GROUNDWATERFLOW", **generatetime(time) ) model.writeinput() model.run_model() ```

Drawdown

OGS5 executable

To obtain an OGS5 executable, ogs5py brings a download routine:

python from ogs5py import download_ogs download_ogs()

Then a executable is stored in the ogs5py config path and will be called when a model is run.

You can pass a version statement to the download_ogs routine, to obtain a specific version (5.7, 5.7.1 (win only) and 5.8). For OGS 5.7 there are executables for Windows/Linux and MacOS. For "5.8" there are no MacOS pre-builds.

If you have compiled your own OGS5 version, you can add your executable to the ogs5py config path with:

python from ogs5py import add_exe add_exe("path/to/your/ogs/exe")

Otherwise you need to specify the path to the executable within the run command:

python model.run_model(ogs_exe="path/to/ogs")

Requirements:

Contact

You can contact us via info@geostat-framework.org.

License

MIT © 2018-2023 (inspired by Falk Hesse and Miao Jing)

This project is based on OGSPY.

Owner

  • Name: GeoStat Framework
  • Login: GeoStat-Framework
  • Kind: organization
  • Email: info@geostat-framework.org
  • Location: UFZ Leipzig

Python framework for geostatistical simulations

Citation (CITATION.bib)

@article{https://doi.org/10.1111/gwat.13017,
author = {Müller, Sebastian and Zech, Alraune and Heße, Falk},
title = {ogs5py: A Python-API for the OpenGeoSys 5 Scientific Modeling Package},
journal = {Groundwater},
volume = {59},
number = {1},
pages = {117-122},
url = {https://ngwa.onlinelibrary.wiley.com/doi/abs/10.1111/gwat.13017},
doi = {https://doi.org/10.1111/gwat.13017},
eprint = {https://ngwa.onlinelibrary.wiley.com/doi/pdf/10.1111/gwat.13017},
year = {2021}
}

GitHub Events

Total
  • Watch event: 2
Last Year
  • Watch event: 2

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 385
  • Total Committers: 3
  • Avg Commits per committer: 128.333
  • Development Distribution Score (DDS): 0.016
Past Year
  • Commits: 48
  • Committers: 1
  • Avg Commits per committer: 48.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
MuellerSeb m****b@p****e 379
Sebastian s****r@u****e 4
fhesze f****e@g****m 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 9
  • Total pull requests: 7
  • Average time to close issues: 8 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.89
  • Average comments per pull request: 0.14
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • MuellerSeb (8)
  • yasinahmadpoor (1)
Pull Request Authors
  • MuellerSeb (6)
  • dependabot[bot] (1)
Top Labels
Issue Labels
enhancement (4) bug (3) help wanted (2) good first issue (1) invalid (1) doc (1) question (1)
Pull Request Labels
enhancement (4) bug (3) doc (2) dependencies (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 153 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 25
  • Total maintainers: 3
pypi.org: ogs5py

ogs5py: a python API for OpenGeoSys5

  • Versions: 19
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 153 Last month
Rankings
Dependent packages count: 10.0%
Forks count: 12.6%
Stargazers count: 13.9%
Average: 15.7%
Downloads: 20.2%
Dependent repos count: 21.7%
Last synced: 7 months ago
conda-forge.org: ogs5py

ogs5py: a python API for OpenGeoSys5

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 47.2%
Average: 47.3%
Forks count: 47.5%
Last synced: 6 months ago