def configure(self):
        """Creates a new Assembly containing a PlugNozzleGeometry and DOE"""

        self.replace("driver",
                     create("openmdao.lib.drivers.doedriver.DOEdriver"))

        self.driver.add(
            "DOEgenerator",
            create("openmdao.lib.doegenerators.optlh.LatinHypercube",
                   num_samples=5))

        self.add("gc",
                 create("openmdao.lib.components.geomcomp.GeomComponent"))
        self.gc.add(
            "parametric_geometry",
            create(
                "openmdao.examples.nozzle_geometry_doe.simple_nozzle.PlugNozzleGeometry"
            ))

        self.driver.add_parameter('gc.cowl.thickness[7]', low=0.0, high=0.5)
        self.driver.add_parameter('gc.cowl.thickness[8]', low=0.0, high=0.5)
        self.driver.add_parameter('gc.cowl.R[7]', low=-0.1, high=0.2)
        self.driver.add_parameter('gc.cowl.R[8]', low=-0.1, high=0.2)
        self.driver.add_parameter('gc.plug.R[7]', low=-0.1, high=0.5)
        self.driver.add_parameter('gc.plug.R[8]', low=-0.1, high=0.5)

        self.add("sc",
                 create("openmdao.lib.components.sleep_comp.SleepComponent"))
        self.driver.workflow.add("sc")
        self.set('sc.sleep_time', 1.0)
    def configure(self):
        """Creates a new Assembly containing a PlugNozzleGeometry and DOE"""

        self.replace("driver",
                     create("openmdao.lib.drivers.doedriver.DOEdriver"))

        self.driver.add("DOEgenerator",
                        create("openmdao.lib.doegenerators.optlh.LatinHypercube",
                               num_samples=5))

        self.add("gc", create("openmdao.lib.components.geomcomp.GeomComponent"))
        self.gc.add("parametric_geometry",
                    create("openmdao.examples.nozzle_geometry_doe.simple_nozzle.PlugNozzleGeometry"))

        self.driver.add_parameter('gc.cowl.thickness[7]', low=0.0, high=0.5)
        self.driver.add_parameter('gc.cowl.thickness[8]', low=0.0, high=0.5)
        self.driver.add_parameter('gc.cowl.R[7]', low=-0.1, high=0.2)
        self.driver.add_parameter('gc.cowl.R[8]', low=-0.1, high=0.2)
        self.driver.add_parameter('gc.plug.R[7]', low=-0.1, high=0.5)
        self.driver.add_parameter('gc.plug.R[8]', low=-0.1, high=0.5)

        self.add("sc",
                 create("openmdao.lib.components.sleep_comp.SleepComponent"))
        self.driver.workflow.add("sc")
        self.set('sc.sleep_time', 1.0)
 def create(self,typname,name):
     ''' create a new object of the given type. 
     '''
     try:
         if (typname.find('.') < 0):
             self.default(name+'='+typname+'()')
         else:
             self.proj.__dict__[name]=create(typname)
     except Exception, err:
         self.error(err,sys.exc_info())
 def create(self,typname,name):
     ''' create a new object of the given type. 
     '''
     try:
         if (typname.find('.') < 0):
             self.default(name+'='+typname+'()')
         else:
             self._globals[name]=create(typname)
     except Exception, err:
         self.error(err,sys.exc_info())
 def add_component(self,name,classname,parentname):
     ''' add a new component of the given type to the specified parent. 
     '''
     if (parentname and len(parentname)>0):
         parent, root = self.get_container(parentname)
         if parent:
             try:
                 if classname in self.proj.__dict__:
                     parent.add(name,self.proj.__dict__[classname]())
                 else:
                     parent.add(name,create(classname))
             except Exception, err:
                 self.error(err,sys.exc_info())
         else:
             print "Error adding component: parent",parentname,"not found."
 def create(self, typname, version=None, server=None,
            res_desc=None, **ctor_args):
     """
     If *typname* is an allowed type, returns an object of type *typname,*
     using the specified package version, server location, and resource
     description. All arguments are passed to :meth:`factorymanager.create`.
     """
     self._logger.debug('create typname %r, version %r server %s,'
                        ' res_desc %s, args %s', typname, version, server,
                        res_desc, ctor_args)
     if typname in self._allowed_types:
         obj = create(typname, version, server, res_desc, **ctor_args)
         self._logger.log(LOG_DEBUG2, '    returning %s', obj)
         return obj
     else:
         raise TypeError('%r is not an allowed type' % typname)
 def create(self, typname, version=None, server=None,
            res_desc=None, **ctor_args):
     """
     If *typname* is an allowed type, returns an object of type *typname,*
     using the specified package version, server location, and resource
     description. All arguments are passed to :meth:`factorymanager.create`.
     """
     self._logger.debug('create typname %r, version %r server %s,'
                        ' res_desc %s, args %s', typname, version, server,
                        res_desc, ctor_args)
     if typname in self._allowed_types:
         obj = create(typname, version, server, res_desc, **ctor_args)
         self._logger.log(LOG_DEBUG2, '    returning %s', obj)
         return obj
     else:
         raise TypeError('%r is not an allowed type' % typname)
 def add_component(self,name,classname,parentname):
     ''' add a new component of the given type to the specified parent. 
     '''
     if (parentname and len(parentname)>0):
         parent = self.top.get(parentname)
     else:
         parent = self.top
     
     if parent:
         try:
             if classname in self._globals:
                 parent.add(name,self._globals[classname]())
             else:
                 parent.add(name,create(classname))
         except Exception, err:
             self.error(err,sys.exc_info())