예제 #1
0
 def setUp(self):
     '''setup test'''
     self.top = set_as_top(Assembly())
     self.top.add('comp', OptRosenSuzukiComponent_Deriv())
     self.top.add('driver', NEWSUMTdriver())
     self.top.driver.workflow.add('comp')
     self.top.driver.itmax = 30
     self.top.driver.iprint = 0
     self.top.driver.lobj = 0
예제 #2
0
 def setUp(self):
     '''setup test'''
     self.top = set_as_top(Assembly())
     self.top.add('comp', ParaboloidComponent())
     self.top.add('driver', NEWSUMTdriver())
     self.top.driver.workflow.add('comp')
     self.top.driver.itmax = 300
     self.top.driver.iprint = 0
     self.top.driver.lobj = 0
예제 #3
0
    def setUp(self):
        '''setUp'''

        self.top = set_as_top(Assembly())
        self.top.add('comp', ParaboloidComponent())
        self.top.add('driver', NEWSUMTdriver())
        self.top.driver.workflow.add('comp')
        self.top.driver.itmax = 30
        self.top.driver.iprint = 0
        self.top.driver.lobj = 0
        self.top.driver.ilin = numpy.array([1], dtype=int)
예제 #4
0
 def setUp(self):
     '''setup test'''
     self.top = set_as_top(Assembly())
     self.top.add('comp', ConstrainedBettsComponent())
     self.top.add('driver', NEWSUMTdriver())
     self.top.driver.workflow.add('comp')
     self.top.driver.itmax = 100
     # use finite differences for gradients for objective
     #      and constraint functions
     # use the default values for the step size = 0.01
     self.top.driver.iprint = 0
     self.top.driver.epsrsf = 0.0000005
예제 #5
0
 def setUp(self):
     '''setup test'''
     self.top = set_as_top(Assembly())
     self.top.add('comp', Example1FromManualComponent())
     self.top.add('driver', NEWSUMTdriver())
     self.top.driver.workflow.add('comp')
     self.top.driver.itmax = 100
     self.top.driver.iprint = 0
     self.top.driver.lobj = 1
     self.top.driver.epsrsf = 0.0005
     self.top.driver.epsodm = 0.001
     self.top.driver.epsgsn = 0.001
     self.top.driver.default_fd_stepsize = 0.001
     self.top.driver.stepmx = 1e10
     self.top.driver.maxrsf = 30
예제 #6
0
    def test_initial_run(self):
        # Test the fix that put run_iteration at the top
        #   of the start_iteration method

        class MyComp(Component):

            x = Float(0.0, iotype='in', low=-10, high=10)
            xx = Float(0.0, iotype='in', low=-10, high=10)
            f_x = Float(iotype='out')
            y = Float(iotype='out')

            def execute(self):
                if self.xx != 1.0:
                    self.raise_exception("Lazy", RuntimeError)
                self.f_x = 2.0 * self.x
                self.y = self.x

        @add_delegate(HasParameters)
        class SpecialDriver(Driver):

            implements(IHasParameters)

            def execute(self):
                self.set_parameters([1.0])
                super(SpecialDriver, self).run_iteration()

        top = set_as_top(Assembly())
        top.add('comp', MyComp())
        top.add('driver', NEWSUMTdriver())
        top.add('subdriver', SpecialDriver())
        top.driver.workflow.add('subdriver')
        top.subdriver.workflow.add('comp')

        top.subdriver.add_parameter('comp.xx')
        top.driver.add_parameter('comp.x')
        top.driver.add_constraint('comp.y > 1.0')
        top.driver.add_objective('comp.f_x')

        top.run()