ogs5py: a python API for OpenGeoSys5
Project description
Welcome to ogs5py
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
Documentation for ogs5py
You can find the documentation under geostat-framework.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.
from ogs5py import OGS
from matplotlib import pyplot as plt
model = OGS(task_root="pump_test", task_id="model")
# generate a radial mesh
model.msh.generate("radial", dim=2, rad=range(51))
# generate a radial outer boundary
model.gli.generate("radial", dim=2, rad_out=50.)
model.gli.add_points([0., 0., 0.], "pwell")
model.gli.add_points([1., 0., 0.], "owell")
model.bc.add_block( # boundary condition
PCS_TYPE='GROUNDWATER_FLOW',
PRIMARY_VARIABLE='HEAD',
GEO_TYPE=['POLYLINE', "boundary"],
DIS_TYPE=['CONSTANT', 0.0],
)
model.st.add_block( # source term
PCS_TYPE='GROUNDWATER_FLOW',
PRIMARY_VARIABLE='HEAD',
GEO_TYPE=['POINT', "pwell"],
DIS_TYPE=['CONSTANT_NEUMANN', -1.0e-04],
)
model.ic.add_block( # initial condition
PCS_TYPE='GROUNDWATER_FLOW',
PRIMARY_VARIABLE='HEAD',
GEO_TYPE='DOMAIN',
DIS_TYPE=['CONSTANT', 0.0],
)
model.mmp.add_block( # medium properties
GEOMETRY_DIMENSION=2,
STORAGE=[1, 1.0e-04],
PERMEABILITY_TENSOR=['ISOTROPIC', 1.0e-4],
)
model.num.add_block( # numerical solver
PCS_TYPE='GROUNDWATER_FLOW',
LINEAR_SOLVER=[2, 5, 1.0e-14, 1000, 1.0, 100, 4],
)
model.out.add_block( # point observation
PCS_TYPE='GROUNDWATER_FLOW',
NOD_VALUES='HEAD',
GEO_TYPE=['POINT', "owell"],
DAT_TYPE='TECPLOT',
TIM_TYPE=['STEPS', 1],
)
model.pcs.add_block( # set the process type
PCS_TYPE='GROUNDWATER_FLOW', NUM_TYPE='NEW'
)
model.tim.add_block( # set the timesteps
PCS_TYPE='GROUNDWATER_FLOW',
TIME_START=0,
TIME_END=600,
TIME_STEPS=[[10, 30], [5, 60]],
)
model.write_input()
success = model.run_model()
point = model.readtec_point(pcs='GROUNDWATER_FLOW')
time = point['owell']["TIME"]
head = point['owell']["HEAD"]
plt.plot(time, head)
plt.show()
OGS5 executable
To obtain an OGS5 executable, ogs5py
brings a download routine:
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).
Also "latest" and "stable" are possible.
For OGS 5.7 there are executables for Windows/Linux and MacOS.
For "5.8", "latest" and "stable" there are no MacOS pre-builds.
Have a look at the documentation for all options.
If you have compiled your own OGS5 version, you can add your executable to the ogs5py config path with:
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:
model.run_model(ogs_exe="path/to/ogs")
Requirements:
Contact
You can contact us via info@geostat-framework.org.
License
MIT © 2018-2019 (inspired by Falk Hesse and Miao Jing)
This project is based on OGSPY.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ogs5py-1.0.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f7188b4ea477e8701769918617611cf00ec3414a75627cd86cd4a2a25b102bc |
|
MD5 | 44330ad8462b1a673fe09403650f6250 |
|
BLAKE2b-256 | 36f171ef636283a5d0d5704218c2c0a41f2f7a1c4d4dba61e3d43d59cec4698c |