ogs5py:OpenGeoSys5的Python API
项目描述
欢迎使用ogs5py
目的
ogs5py是为OpenGeoSys 5科学建模软件包提供的Python API。
安装
您可以使用以下命令安装最新版本
pip install ogs5py
或者使用 conda
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 代码出版物
Sebastian Müller. GeoStat-Framework/ogs5py. Zenodo. 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-2023(受 Falk Hesse 和 Miao Jing 的启发)
此项目基于 OGSPY。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。