openmdao - 有没有办法通过在 OpenMDAO 中创建 XDSM 图来扩展组?
问题描述
我的大多数测试文件都涉及创建连接到组的 IndepVarComp。当我从测试文件创建 XDSM 时,它只显示 IndepVarComp Box 和 Group Box。有没有办法让它扩大小组并显示里面的内容?
这在处理包含多个级别组的顶级模型时也很有用,我想扩展一两个级别并关闭其余级别。
解决方案
有一个recurse
选项可以控制组是否展开。这是一个关于 Sellar 问题的小示例,用于探索此选项。这些学科d1
和d2
属于一个名为cycle
.
import numpy as np
import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarNoDerivatives
from omxdsm import write_xdsm
prob = om.Problem()
prob.model = model = SellarNoDerivatives()
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
upper=np.array([10.0, 10.0]), indices=np.arange(2, dtype=int))
model.add_design_var('x', lower=0.0, upper=10.0)
model.add_objective('obj')
model.add_constraint('con1', equals=np.zeros(1))
model.add_constraint('con2', upper=0.0)
prob.setup()
prob.final_setup()
# Write output. PDF will only be created, if pdflatex is installed
write_xdsm(prob, filename='sellar_pyxdsm', out_format='pdf', show_browser=True,
quiet=False, output_side='left', recurse=True)
recurse=False
与(d1
和d2
没有显示,而是他们的 Group )相同的代码cycle
:
要从命令行启用递归,请使用以下--recurse
标志:
openmdao xdsm sellar_pyxdsm.py -f pdf --recurse
默认情况下,该功能是打开的,您必须在命令行中包含该标志。如果这对您来说没有按预期工作,请提供一个示例。
您可以在 XDSM 插件的测试中找到许多具有不同选项的示例。某些选项(如、 和recurse
)include_indepvarcomps
控制XDSM 中包含的内容。include_solver
model_path
推荐阅读
- flutter - 颤动的tflite对象检测在物理设备上不起作用
- django - 更新通过 ForeignKey 连接的模型
- mongodb - MongoDB聚合双重查找和管道
- python - django cache_page 如何设置版本
- c# - Discord.Net 角色不会在机器人中更新
- python - 如何处理买卖历史csv
- ruby-on-rails - 如何在 .inky Action Mailer 模板中放置一个按钮(和链接)?
- tcl - 为什么这个二进制扫描类型说明符用反斜杠转义?
- azure - 如何在 Azure 门户中传递 Dockerfile 或 docker-compose?
- react-native - 使用 RNCamera 进行文本识别