RuntimeError:组<model>:找不到设计变量'paraboloid.x'的输出

问题描述

我一直在尝试在Mac上运行openmdao。 Openmdao似乎与mpi4py一起安装,但是代码似乎无法正常工作。我一直收到以下错误 “ RuntimeError:组():找不到设计变量'paraboloid.x'的输出。” 以下是代码。此代码是openmdao入门页面中提供的示例代码。请帮忙!

import openmdao.api as om

# build the model
prob = om.Problem()

prob.model.add_subsystem('paraboloid',om.ExecComp('f = (x-3)**2 + x*y + (y+4)**2 - 3'))

# setup the optimization
prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'

prob.model.add_design_var('paraboloid.x',lower=-50,upper=50)
prob.model.add_design_var('paraboloid.y',upper=50)
prob.model.add_objective('paraboloid.f')

prob.setup()

# Set initial values.
prob.set_val('paraboloid.x',3.0)
prob.set_val('paraboloid.y',-4.0)

# run the optimization
prob.run_driver()

# minimum value
print(prob.get_val('paraboloid.f'))

# location of the minimum
print(prob.get_val('paraboloid.x'))
print(prob.get_val('paraboloid.y'))

解决方法

此代码仅适用于OpenMDAO> = 3.2(自动ivc功能)。使用命令print(text.strip()) 检查您的版本。否则,您必须添加IndepVarComp声明(请参见Conversion Guide for the Auto-IVC (IndepVarComp) Feature)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...