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



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

p.model._auto_ivc.list_outputs()

返回一个空列表。似乎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

最新更新