ogs5py:OpenGeoSys5 的 python API
项目描述
欢迎来到 ogs5py
目的
ogs5py 是OpenGeoSys 5科学建模包的 python-API。
安装
您可以使用以下命令安装最新版本:
pip install ogs5py
或使用康达:
conda install ogs5py
引文
如果您在出版物中使用 ogs5py,请引用我们的论文:
Müller, S.、Zech, A. 和 Heße, F.:ogs5py:OpenGeoSys 5 科学建模包的 Python-API。地下水,59:117-122。https://doi.org/10.1111/gwat.13017,2021年。
您可以通过以下方式引用 ogs5py 的 Zenodo 代码发布:
塞巴斯蒂安·穆勒。地理统计框架/ogs5py。泽诺多。https://doi.org/10.5281/zenodo.2546767
如果您想引用特定版本,请查看Zenodo 网站。
ogs5py 的文档
您可以在ogs5py.readthedocs.io下找到文档。
更多信息
- 通用主页:https ://www.opengeosys.org/ogs-5
- OGS5 存储库:https ://github.com/ufz/ogs5
- 关键字文档:https ://ogs5-keywords.netlify.com
- OGS5 基准测试:https ://github.com/ufz/ogs5-benchmarks
- ogs5py 基准测试:https ://github.com/GeoStat-Framework/ogs5py_benchmarks
教程和示例
下面在径向对称网格上模拟一个简单的瞬态泵送测试。之后绘制观察井处的点输出。有关此示例的更多详细信息,请参阅:教程 1
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(task_root="pump_test", 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, rad_out=rad[-1], angles=angles)
model.gli.add_points([0.0, 0.0, 0.0], "pwell")
model.gli.add_points([obs, 0.0, 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", rate],
)
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, storage],
PERMEABILITY_TENSOR=["ISOTROPIC", transmissivity],
)
model.num.add_block( # numerical solver
PCS_TYPE="GROUNDWATER_FLOW",
LINEAR_SOLVER=[2, 5, 1e-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",
)
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",
**generate_time(time)
)
model.write_input()
model.run_model()
OGS5 可执行文件
要获取 OGS5 可执行文件,请ogs5py提供下载例程:
from ogs5py import download_ogs
download_ogs()
然后一个可执行文件存储在 ogs5py 配置路径中,并在模型运行时被调用。
您可以将version语句传递给download_ogs例程,以获取特定版本(5.7、5.7.1(仅限 win)和 5.8)。对于 OGS 5.7,有适用于 Windows/Linux 和 MacOS 的可执行文件。对于“5.8”,没有 MacOS 预构建。
如果您已经编译了自己的 OGS5 版本,则可以将可执行文件添加到 ogs5py 配置路径:
from ogs5py import add_exe
add_exe("path/to/your/ogs/exe")
否则,您需要在运行命令中指定可执行文件的路径:
model.run_model(ogs_exe="path/to/ogs")
要求:
接触
您可以通过info@geostat-framework.org联系我们。
执照
MIT © 2018-2022(灵感来自 Falk Hesse 和 Miao Jing)
该项目基于OGSPY。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。