跳转到主要内容

ogs5py:OpenGeoSys5的Python API

项目描述

欢迎使用ogs5py

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

ogs5py-LOGO

目的

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找到文档。

更多信息

教程和示例

以下在一个径向对称网格上模拟了一个简单的瞬态抽水试验。随后绘制了观测井的点输出。有关此示例的更多详细信息,请参阅: 教程 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()

Drawdown

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

下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

ogs5py-1.3.0.tar.gz (99.3 kB 查看哈希值)

上传 源代码

构建分发

ogs5py-1.3.0-py3-none-any.whl (131.6 kB 查看哈希值)

上传于 Python 3

由以下提供支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面