Source code for openmdao.test_suite.components.paraboloid_feature
"""
Demonstration of a model using the Paraboloid component.
"""
import openmdao.api as om
[docs]
class Paraboloid(om.ExplicitComponent):
"""
Evaluates the equation f(x,y) = (x-3)^2 + xy + (y+4)^2 - 3.
"""
[docs]
def setup(self):
self.add_input('x', val=0.0)
self.add_input('y', val=0.0)
self.add_output('f_xy', val=0.0)
[docs]
def setup_partials(self):
# Finite difference all partials.
self.declare_partials('*', '*', method='fd')
[docs]
def compute(self, inputs, outputs):
"""
f(x,y) = (x-3)^2 + xy + (y+4)^2 - 3
Minimum at: x = 6.6667; y = -7.3333
"""
x = inputs['x']
y = inputs['y']
outputs['f_xy'] = (x - 3.0)**2 + x * y + (y + 4.0)**2 - 3.0
if __name__ == "__main__":
model = om.Group()
model.add_subsystem('parab_comp', Paraboloid())
prob = om.Problem(model)
prob.setup()
prob.set_val('parab_comp.x', 3.0)
prob.set_val('parab_comp.y', -4.0)
prob.run_model()
print(prob['parab_comp.f_xy'])
prob.set_val('parab_comp.x', 5.0)
prob.set_val('parab_comp.y', -2.0)
prob.run_model()
print(prob.get_val('parab_comp.f_xy'))