问题标签 [petrel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
106 浏览

petrel - Petrel 中细胞来源的默认设置是什么?

我想从 Petrel 模型中将 Permeability 导出为 ASCII 文件。似乎细胞原点在 I=0;J=最大J;k=0。

为什么 J 指数在最大 J 而不是 J=0?

0 投票
1 回答
81 浏览

ocean - 如何找到与相应粗网格单元关联的所有细网格单元的 Index3?

如何找到与相应粗网格单元关联的所有细网格单元的 Index3?

使用的术语:

细网格:假设有一个尺寸为 10 x 10 x 2 的网格

粗网格:这是细网格的粗略版本,尺寸可能为 5 x 5 x 1。

那么对于 Coarse Grid 中给定的网格单元,我们能否找到与之关联的对应的细网格单元。是否有现成的方法可用,或者如果我们需要制作自己的方法,我应该使用哪个服务。

对于任何给定的粗网格单元,我们可以找到 8 个角点,现在我的目标是找到由这 8 个角点组成的体积内的所有细网格单元。

在这里,我们谈论的是单个网格单元,而不是整个网格,只是为了避免混淆我提到它。此问题适用于使用 Ocean API 的开发人员。

0 投票
1 回答
122 浏览

c# - 为什么我在插件区域看不到我的窗口?

我无法在插件区域看到我的窗口。我知道必须在该Integrate部分添加一些代码。但是我不知道是哪个。

我怎样才能让它可见?真的有可能吗?如果没有,我如何在 Petrel 中显示一个窗口?

0 投票
0 回答
2113 浏览

ocean - Petrel 2012 找不到许可证服务器

我正在使用 windows8 并收到以下错误:

首先,我尝试安装 Schlumberger 许可 2012,但出现运行时错误。

然后我安装了 schlumberger 许可 2010。但 petrel 2012 无法找到 locahost 许可服务器,尽管 petrel 2011 工作正常。

这些错误是否与 Windows 8 有关?我在某处读到 Petrel 与 Windows 8 不兼容?

0 投票
1 回答
445 浏览

ocean - 如何通过鼠标单击事件在 Petrel 2d Mapwindow 中获取坐标?

如何通过鼠标单击事件在 Petrel 2d Mapwindow 中动态获取坐标?

0 投票
1 回答
511 浏览

ocean - 在海燕地图窗口上绘图

我正在开发一个海燕插件,我需要在海燕地图窗口上绘制线条、多边形,是否可以使用鼠标事件?

0 投票
1 回答
75 浏览

ocean - 具有从公共类继承的多个域对象的结构化归档

我正在为 Petrel 编写一个 Ocean 插件,需要保留一些自定义域对象,而且一切似乎都指向使用结构化存档数据源。我创建了一个通用类来保存许多标准域对象(机器人、名称、颜色、图像、评论、历史等),以避免为我创建的每个域对象重写它。Ocean 开发指南只有简单的类没有继承的例子,但考虑到一切都有一个版本号,我预见到当基类版本与继承的版本不同时,一个潜在的问题-class-1 与继承的不同- class-2,然后我在基类中更新一些东西。

是否可以将结构化档案与公共基类一起使用?版本控制是否有任何特殊注意事项,或者我需要注意的其他事项?

ETA:一个简单的类图,显示了我尝试过的关系和一些东西

所有类都被标记Archivable,并且在ClassD_myClassAObjects被标记Archived。一切都可以保存,但是当我加载时,我得到一个InvalidCastException,因为它试图将List<ClassB>转换为List<ClassA>. 铸造应该工作,因为ClassB继承自ClassA,不应该吗?

0 投票
2 回答
290 浏览

ocean - 在 Petrel 中获取当前单位系统

我目前正在开发一个插件,我需要在其中获取 petrel 中的当前单位系统(即在现场或公制系统中)。如何得到它?

0 投票
2 回答
185 浏览

ocean - 如何使用 CaseRunner 函数运行模拟案例?

我目前正在开发一个Petrel插件,我需要在其中运行一个模拟案例(通过“For Loop”),我创建了我的案例运行器,导出它并运行它......但是在完成模拟并关闭之后控制台,我检查了CaseRunner.IsRunning属性,它显示了true!这导致结果尚未加载到海燕系统。

我尝试在完成Run案例后手动加载结果(caserunner在我的代码中使用和使用批处理文件),但在编程环境中看不到任何结果。

有人有解决这种情况的方法吗?
这是我的代码的相关部分:

实际上,我检查了该过程何时完成;在“cRunners.Run”之后,代码等待退出进程,使用:

当控制台自行关闭时,我检查了 cRunners.IsRunning 术语。但是,我不是那么专家……你能给我看一个使用 CaseRunnerMonitor 的例子吗?派生类的定义及其实现。

  • 我所需要的只是通过 for 循环运行模拟案例 n 次,并在每次运行后访问其提供的摘要结果。

我尝试了一些不同的场景来获得我想要的结果,我把其中的一些放在这里首先我创建了我的 CaseRunnerMonitor 类:

然后使用它:

但问题是我的运行完成后 MyTest 案例结果部分为空。在这种情况下,当第 8 次(最后一次)模拟完成时,所有结果都会加载到海燕。如果我不激活 Wait() 函数,所有 8 次运行几乎都在同时调用......</p>

我改变了我的场景,每次运行后我的回调读取模拟结果,改变一些东西并调用下一次运行,所以我创建了我的 CaseRunnerMonitor 类:

然后使用它:

在这种情况下,不需要 wait() 函数。但问题是我在当前运行完成之前访问 MyTest 案例结果的一个级别。即,当运行 6 完成时,我可以通过 MyTest.Results 查看第 5 步结果,而第 6 步结果为空,尽管运行完成。

0 投票
0 回答
87 浏览

ocean - 从现有网格创建新网格

我正在研究 Petrel 中的网格合并,我需要知道如何在 petrel 中创建一个新的网格,从现有网格到海洋的新给定分辨率?