如何获取 Auto-IVC 组件输出名称列表

how to get list of Auto-IVC component output names

我正在切换到使用 Auto-IVC 组件而不是 IndepVar 组件。我希望能够获得 Auto-IVC 组件的提升输出名称列表,这样我就可以使用它们从配置文件中提取适当的值并以此方式设置值。这将摆脱一些样板文件。

p.model._auto_ivc.list_outputs()

returns 一个空列表。 p.model__dict__ 似乎编码了这些信息,但我不知道那里到底发生了什么,所以我想知道是否有更简单的方法。

为了避免将来的读者混淆,我假设您的意思是您想要连接到 auto_ivc 输出的变量的升级 输入 名称。

我们没有内置函数来执行此操作,但您可以使用如下代码来执行此操作:

seen = set()
for n in p.model._inputs:
   src = p.model.get_source(n)
   if src.startswith('_auto_ivc.') and src not in seen:
       print(src, p.model._var_allprocs_abs2prom['input'][n])
       seen.add(src)

假设 'p' 是您的问题实例的名称。

上面的代码只是打印每个 auto_ivc 输出名称,后跟它所连接的提升输入。

这是我们的一个简单测试用例 运行 时的输出示例:

_auto_ivc.v0 par.x