GoGPT Best VPN GoSearch

OnWorks 网站图标

r.solute.transportgrass - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 r.solute.transportgrass

这是 r.solute.transportgrass 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


r.溶质运输 - 瞬态、受限和非受限的数值计算程序
二维溶质运移

关键词


栅格、水文、溶质运移

概要


r.溶质运输
r.溶质运输 - 帮帮我
r.溶质运输 [-fc] c=姓名 =姓名 HC_X=姓名 HC_Y=姓名 状态=姓名 差异_x=姓名
差异_y=姓名 [q=姓名[CIN=姓名] cs=姓名 rd=姓名 nf=姓名 最佳=姓名 底部=姓名
产量=姓名 [vx=姓名[vy=姓名] 时间=浮动 [最大=整数[错误=浮动]
[解算器=姓名[放松=浮动[al=浮动[at=浮动[循环=浮动[=绳子]
[--覆盖] [--帮助] [--详细] [--安静] [--ui]

标志:
-f
使用全填充二次线性方程组,默认为稀疏线性
方程系统。

-c
使用 Courant-Friedrichs-Lewy 准则进行时间步长计算

--覆盖
允许输出文件覆盖现有文件

- 帮帮我
打印使用摘要

--详细
详细模块输出

- 安静的
静音模块输出

--用户界面
强制启动 GUI 对话框

参数:
c=姓名 [必需的]
初始浓度 [kg/m^3]

=姓名 [必需的]
测压头 [m]

HC_X=姓名 [必需的]
以 [m/s] 为单位的水力传导率张量的 x 部分

HC_Y=姓名 [必需的]
以 [m/s] 为单位的水力传导率张量的 y 部分

状态=姓名 [必需的]
每个单元格的状态,= 0 - 非活动单元格,1 - 活动单元格,2 - dirichlet- 和 3 -
转移边界条件

差异_x=姓名 [必需的]
[m^2/s] 中扩散张量的 x 部分

差异_y=姓名 [必需的]
[m^2/s] 中扩散张量的 y 部分

q=姓名
地下水源和汇 [m^3/s]

CIN=姓名
以 [kg/s] 为单位的与水源或汇相关的浓度源和汇

cs=姓名 [必需的]
以 [kg/s] 为单位的内部源和内部汇的浓度(即化学反应)

rd=姓名 [必需的]
延迟系数 [-]

nf=姓名 [必需的]
有效孔隙率 [-]

最佳=姓名 [必需的]
含水层顶面 [m]

底部=姓名 [必需的]
含水层底面 [m]

产量=姓名 [必需的]
数值溶质运移计算的结果浓度为
写在这张地图上。 [公斤/米^3]

vx=姓名
计算并存储 x 方向的地下水过滤速度矢量部分 [m/s]

vy=姓名
计算并存储y方向的地下水过滤速度矢量部分[m/s]

时间=浮动 [必需的]
以秒为单位的计算时间
默认: 86400

最大=整数
用于求解线性方程组的最大迭代次数
默认: 10000

错误=浮动
迭代求解器的错误中断标准
默认: 0.000001

解算器=姓名
求解线性方程组的求解器类型
选项: 高斯, 鲁, 雅各比, 索尔, 比格表
默认: 比格表

放松=浮动
jacobi 和 sor 求解器用于加速或稳定的松弛参数
默认: 1

al=浮动
纵向色散长度。 [米]
默认: 0.0

at=浮动
横向色散长度。 [米]
默认: 0.0

循环=浮动
如果 CFL 标志关闭,则使用此时间循环次数。 时间步长将变为
dt/循环。
默认: 1

=绳子
设置流量稳定方案(完全或指数逆风)。
选项: 充分, EXP
默认:

商品描述


该数值程序计算数值隐式瞬态和稳态溶质
含水层饱和区多孔介质中的输运。 计算基于
栅格地图和当前区域设置。 所有初始条件和边界条件必须是
作为光栅图提供。 该位置的单位必须是米。

该模块对掩码设置敏感。 掩码外的所有单元格都是
忽略和处理为无流边界。
该模块计算溶液的浓度和可选的速度场,
基于水力传导率、有效孔隙度和初始测压法
头。 如果使用 paraview 导出矢量分量,则可以使用 paraview 对其进行可视化
r.out.vtk。
使用 r.gwflow 计算含水层的测压高度。 测压高度
和水力传导率用于计算流动方向和平均值
地下水的流速。 这是溶质运移计算的基础。
溶质传输将始终计算瞬态。 对于稳态计算集
时间步长到大量(数十亿秒)。
为了减少数值分散,这是对流项和
有限体积离散化,您可以使用小的时间步长并在完整和
指数逆风。

附注


溶质运移计算基于扩散/对流偏微分
方程和数值隐式有限体积离散化。 专门针对这种
微分方程是扩散/扩散项和对流的组合
学期。 离散化导致不对称线性方程组的形式为 Ax =
b,必须解决。 溶质输运偏微分方程为
以下表格:

(dc/dt)*R = div (D grad c - uc) + cs -q/nf(c - c_in)

· c -- 浓度[kg/m^3]

· u——地下水平均流速向量

· dt -- 瞬态计算的时间步长,单位为秒 [s]

·R——线性延迟系数[-]

· D——扩散和色散张量[m^2/s]

· cs -- 内部浓度源/汇[kg/m^3]

· c_in——进水溶质浓度[kg/m^3]

· q -- 内井源/汇[m^3/s]

· nf -- 有效孔隙率 [-]
实现了三种不同的边界条件,Dirichlet、Transmission 和
诺依曼条件。 可以设置单个单元格的计算和边界状态
状态图。 支持以下状态:

· 0 == inactive - 状态为 0 的单元格将不被计算,活动单元格将
对非活动单元没有流动边界

· 1 == active - 此单元格用于 sloute 传输计算,内部源
可以为这些单元格定义

· 2 == Dirichlet - 这种类型的细胞将有一个固定的浓度值
不会随着时间而改变

· 3 == 传输 - 这种类型的细胞应该放在流出边界上
确保溶质流流出
请注意,所有需要的栅格地图都被读入主内存。 另外线性
方程组将被分配,因此该模块的内存消耗迅速增长
与输入地图的大小。
由此产生的线性方程组 Ax = b 可以用多个求解器求解。 一些
实现了具有非对称稀疏矩阵和二次矩阵支持的迭代求解器。
雅可比法、高斯-赛德尔法和双共轭梯度稳定法
(bicgstab) 方法。 此外,还提供直接高斯求解器和 LU 求解器。 那些
直接求解器仅适用于二次矩阵,因此在大地图上使用它们时要小心
(大小为 10.000 个单元的地图将需要超过 XNUMX GB 的内存)。 总是喜欢一个
稀疏矩阵求解器。


使用这个小的 python 脚本创建一个有效的地下水流/溶质运输区域
和数据。 确保您不在纬度/经度投影中。
#!/usr/bin/环境 蟒蛇
# 这是地下水流动和溶质运输的示例脚本
# 在草中计算
导入系统
导入操作系统
将草脚本导入为草
# 覆盖现有地图
草.run_command("g.gisenv", set="OVERWRITE=1")
草消息(_(“设置区域”))
# 面积为 200m x 100m,像元大小为 1m x 1m
草运行命令(“g.region”,res=1,res3=1,t=10,b=0,n=100,s=0,w=0,e=200)
草.run_command("r.mapcalc", 表达式="phead = if(col() == 1 , 50, 40)")
草.run_command("r.mapcalc", expression="phead = if(col() ==200 , 45 + row()/40, phead)")
草.run_command("r.mapcalc", expression="status = if(col() == 1 || col() == 200 , 2, 1)")
grass.run_command("r.mapcalc", expression="well = if((row() == 50 && col() == 175) || (row() == 10 && col() == 135) , -0.001, 0)")
草运行命令(“r.mapcalc”,表达式=“hydcond = 0.00005”)
草.run_command("r.mapcalc", 表达式="recharge = 0")
草.run_command("r.mapcalc", 表达式="top_conf = 20")
草.run_command(“r.mapcalc”,表达式=“底部= 0”)
草.run_command("r.mapcalc", 表达式="poros = 0.17")
草.run_command("r.mapcalc", 表达式="syield = 0.0001")
草.run_command("r.mapcalc", 表达式="null = 0.0")
草消息(_(“计算稳态地下水流量”))
草.run_command("r.gwflow",solver="cg", top="top_conf", bottom="bottom", phead="phead",\
status="status", hc_x="hydcond", hc_y="hydcond", q="well", s="syield",\
充值=“充值”,输出=“gwresult_conf”,dt=8640000000000,类型=“受限”)
草消息(_(“生成传输数据”))
草.run_command("r.mapcalc", expression="c = if(col() == 15 && row() == 75 , 500.0, 0.0)")
grass.run_command("r.mapcalc", expression="cs = if(col() == 15 && row() == 75, 0.0, 0.0)")
草.run_command("r.mapcalc", expression="tstatus = if(col() == 1 || col() == 200 , 3, 1)")
草.run_command("r.mapcalc", 表达式="diff = 0.0000001")
草.run_command("r.mapcalc", 表达式="R = 1.0")
# 计算初始状态
草.run_command("r.solute.transport",solver="bicgstab", top="top_conf",\
bottom="bottom", phead="gwresult_conf", status="tstatus", hc_x="hydcond", hc_y="hydcond",\
rd="R", cs="cs", q="well", nf="poros", output="stresult_conf_0", dt=3600, diff_x="diff",\
diff_y="diff", c="c", al=0.1, at=0.01)
# 以 300 天为步长计算 10 天的溶质输运
对于 dt 输入 范围(30):
草.run_command("r.solute.transport",solver="bicgstab", top="top_conf",\
bottom="bottom", phead="gwresult_conf", status="tstatus", hc_x="hydcond", hc_y="hydcond",\
rd="R", cs="cs", q="well", nf="poros", output="stresult_conf_" + str(dt + 1), dt=864000, diff_x="diff",\
diff_y="diff", c="stresult_conf_" + str(dt), al=0.1, at=0.01)

使用 onworks.net 服务在线使用 r.solute.transportgrass


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。