PIPESIM Python Toolkit 系列(3):模型上下文——查找与过滤组件的核心机制

云智设计
云智设计
云智设计
编辑
140
文章
0
粉丝
PIPESIM评论25阅读模式

模型上下文Model Context)是 PTK 最核心的设计理念。它定义了"操作的关注范围"——你想对模型的哪一部分执行读取或修改。理解上下文是高效使用 PTK 的关键。

PIPESIM Python Toolkit 系列(3):模型上下文——查找与过滤组件的核心机制

上下文是什么?

上下文由三个要素组成:文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26887.html

  • Context(范围):模型中的关注区域,如某一口井、所有油嘴或特定管线
  • Parameter(参数):该范围内的组件属性
  • Value(值):参数的具体数值或数据表

四种上下文指定方式

1. 关键字参数(最常用)文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26887.html

# 查找名为 Well01 的井
model.find(Well='Well01')

# 查找所有油嘴
model.find(Choke=ALL)

# 查找 Well01 中的所有油管
model.find(Well='Well01', Tubing=ALL)

2. 字典方式文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26887.html

model.find(**{'Well':'Well01', 'Completion':ALL})

3. 字符串路径(精确匹配单一组件)文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26887.html

model.find(context="Well01:VertComp")  # 井:组件名

4. 组件类型过滤文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26887.html

from sixgill.definitions import ModelComponents
model.find(component=ModelComponents.CHOKE)
model.find(component=ModelComponents.PUMP)

理解上下文层级

PTK 的上下文是层级化的。当指定 Well='ESP_Well' 时,返回的不仅是井本身,还包括井下所有子组件:文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26887.html

['ESP_Well', 'ESP_Well:Casing', 'ESP_Well:ESP_7',
 'ESP_Well:Packer', 'ESP_Well:Tubing', ...]

Name='ESP_Well' 只返回井本身。这个区别在参数操作时尤为重要——使用 Well 上下文可以跨子组件查询参数,而不需要知道具体哪个组件持有该参数。文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26887.html

创建过滤模型

对大型模型,可以创建只包含特定组件的"子模型":文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26887.html

wellmodel = model.filter(Well="Well_1")
wellmodel.find(component=ModelComponents.COMPLETION)

过滤后的模型拥有原始模型的所有方法,但操作范围仅限于过滤后的组件集合。文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26887.html 文章源自云智设计-https://www.cidrg.com/cid-college/tutorial/pipesim/26887.html

云智设计应力分析服务

客服微信
扫一扫
weinxin
EngGPT
微信号已复制
云智微信公众号
扫一扫
weinxin
cidrg_com
公众号已复制
 
云智设计
  • 本文由 云智设计 发表于2026年6月6日 09:00:00
  • 本站原创文章转载请注明文章出处及链接,谢谢合作!
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证