Skip to content

Instantly share code, notes, and snippets.

@bbrelje
Created March 2, 2021 03:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bbrelje/9a540d5b8c7629a6380ba5686749f7fd to your computer and use it in GitHub Desktop.
Save bbrelje/9a540d5b8c7629a6380ba5686749f7fd to your computer and use it in GitHub Desktop.
Weird promote order issue
import openmdao.api as om
class MyGroupAsteriskFirst(om.Group):
def setup(self):
self.add_subsystem('foo', om.IndepVarComp('thrust', val=2.0), promotes_outputs=['*'])
self.add_subsystem('blah', om.ExecComp('a=b+c',a={'units':'kg','value':1},b={'units':'kg','value':1},c={'units':'kg','value':1}), promotes_inputs=['*',('c','thrust')])
class MyGroupAsteriskLast(om.Group):
def setup(self):
self.add_subsystem('foo', om.IndepVarComp('thrust', val=2.0), promotes_outputs=['*'])
self.add_subsystem('blah', om.ExecComp('a=b+c',a={'units':'kg','value':1},b={'units':'kg','value':1},c={'units':'kg','value':1}), promotes_inputs=[('c','thrust'),'*'])
if __name__ == "__main__":
print('does not raise error')
p2 = om.Problem(model=MyGroupAsteriskFirst())
p2.setup()
p2.run_model()
print('done running first one')
print('=====================')
print('raises error')
p = om.Problem(model=MyGroupAsteriskLast())
p.setup()
p.run_model()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment