管网模拟(Network Simulation)是 PIPESIM 最核心的功能。PTK 通过 tasks.networksimulation 模块提供完整的模拟流程控制——从边界条件设置到结果提取,全部可编程化。
获取当前边界条件
conditions = model.tasks.networksimulation.get_conditions()
# 获取特定 Study 的条件
late_life = model.tasks.networksimulation.get_conditions(
study="Late Field Life")设置边界条件
from sixgill.definitions import Parameters, Constants
boundaries = {
"Well:VertComp": {
Parameters.Boundary.PRESSURE: float('nan'),
Parameters.Boundary.TEMPERATURE: 150,
Parameters.Boundary.FLOWRATETYPE:
Constants.FlowRateType.LIQUIDFLOWRATE,
Parameters.Boundary.LIQUIDFLOWRATE: 200
}
}
model.tasks.networksimulation.set_conditions(boundaries=boundaries)运行模拟
关键性能提示:务必明确指定所需的系统变量和剖面变量!不指定时 PTK 会返回全部变量,严重影响性能。文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26878.html
from sixgill.definitions import SystemVariables, ProfileVariables
system_vars = [
SystemVariables.PRESSURE,
SystemVariables.TEMPERATURE,
SystemVariables.VOLUME_FLOWRATE_LIQUID_STOCKTANK,
SystemVariables.BOTTOM_HOLE_PRESSURE,
]
profile_vars = [
ProfileVariables.TEMPERATURE,
ProfileVariables.ELEVATION,
ProfileVariables.TOTAL_DISTANCE,
]
results = model.tasks.networksimulation.run(
system_variables=system_vars,
profile_variables=profile_vars)带自定义条件的模拟
results = model.tasks.networksimulation.run(
boundaries=boundaries,
system_variables=system_vars,
profile_variables=profile_vars)这种"一次性传参"模式特别适合批量工况的排队模拟。文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26878.html 文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26878.html

客服微信
扫一扫

EngGPT
微信号已复制
云智微信公众号
扫一扫

cidrg_com
公众号已复制



