有没有办法通过在 OpenMDAO 中创建 XDSM 图来扩展组?
Is there a way to expand groups with the XDSM diagram creation in OpenMDAO?
我的大部分测试文件都涉及创建连接到组的 IndepVarComp。当我从测试文件创建 XDSM 时,它只显示 IndepVarComp 框和组框。有没有办法让它扩大组并显示里面的内容?
这在处理包含多个级别组的顶级模型时也很有用,我想在其中扩展一个或两个级别并将其余级别关闭。
有一个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
,而是它们的组 cycle
):
要从命令行启用递归,请使用 --recurse
标志:
openmdao xdsm sellar_pyxdsm.py -f pdf --recurse
默认情况下启用该功能,在命令行中您必须包含该标志。如果这对您没有预期的效果,请提供示例。
您可以找到很多具有不同选项的示例 in the tests of the XDSM plugin。一些选项,如 recurse
、include_indepvarcomps
、include_solver
和 model_path
控制 XDSM 中包含的内容。
我的大部分测试文件都涉及创建连接到组的 IndepVarComp。当我从测试文件创建 XDSM 时,它只显示 IndepVarComp 框和组框。有没有办法让它扩大组并显示里面的内容?
这在处理包含多个级别组的顶级模型时也很有用,我想在其中扩展一个或两个级别并将其余级别关闭。
有一个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
,而是它们的组 cycle
):
要从命令行启用递归,请使用 --recurse
标志:
openmdao xdsm sellar_pyxdsm.py -f pdf --recurse
默认情况下启用该功能,在命令行中您必须包含该标志。如果这对您没有预期的效果,请提供示例。
您可以找到很多具有不同选项的示例 in the tests of the XDSM plugin。一些选项,如 recurse
、include_indepvarcomps
、include_solver
和 model_path
控制 XDSM 中包含的内容。