【问题标题】:how to get list of Auto-IVC component output names如何获取 Auto-IVC 组件输出名称列表
【发布时间】:2021-08-03 21:36:47
【问题描述】:

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

p.model._auto_ivc.list_outputs()

返回一个空列表。似乎 p.model__dict__ 中已编码此信息,但我不确切知道那里发生了什么,所以我想知道是否有更简单的方法。

【问题讨论】:

    标签: openmdao


    【解决方案1】:

    为避免未来读者混淆,我假设您的意思是您希望为连接到 auto_ivc 输出的变量提升 input 名称。

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

    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
    

    【讨论】:

      猜你喜欢
      • 2014-03-17
      • 2015-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多