Ejemplo n.º 1
0
    def do_collect(self, item, **kwargs):
        import inspect

        items = self.filter(item)
        if len(items) == 1:
            item = items[0]
        else:
            item = items

        T = type(item)
        if inspect.isclass(T):
            collect_method = self.__collect_method_dict__.get(T, None)
            if collect_method is None:
                for M in inspect.getmro(T):
                    collect_method_name = "collect_%s" % M.__name__
                    if hasattr(self, collect_method_name):
                        collect_method = getattr(self, collect_method_name)
                        self.__collect_method_dict__[T] = collect_method
                        break
            if collect_method is None:
                LOG.warn("No collect method found for object of type %s" % T)
            else:
                collect_method(item, **kwargs)

        return
Ejemplo n.º 2
0
    def initialize(self):

        ## standard gratings 1550nm
        def STANDARD_GRATING_1550_TE():
            from picazzo.fibcoup.uniform import UniformLineGrating as _ULG
            from ipkiss.plugins.photonics.wg.basic import WgElDefinition
            std1550_grating_trench = 0.315
            std1550_grating_period = 0.630
            std1550_grating_n_o_periods = 25
            std_lin_grating_wg_def = WgElDefinition(wg_width=10.0)
            G = _ULG(name="std_grating_1550",
                     origin=(0.0, 0.0),
                     period=std1550_grating_period,
                     line_width=std1550_grating_trench,
                     n_o_periods=std1550_grating_n_o_periods,
                     wg_definition=std_lin_grating_wg_def,
                     process=TECH.PROCESS.FC)
            return G

        ## standard gratings 1550nm TM polarization
        def STANDARD_GRATING_1550_TM():
            from picazzo.fibcoup.uniform import UniformLineGrating as _ULG
            from ipkiss.plugins.photonics.wg.basic import WgElDefinition
            std1550_grating_trench = 0.540
            std1550_grating_period = 1.080
            std1550_grating_n_o_periods = 16
            std_lin_grating_wg_def = WgElDefinition(wg_width=10.0)
            G = _ULG(name="std_grating_1550_tm",
                     origin=(0.0, 0.0),
                     period=std1550_grating_period,
                     line_width=std1550_grating_trench,
                     n_o_periods=std1550_grating_n_o_periods,
                     wg_definition=std_lin_grating_wg_def,
                     process=TECH.PROCESS.FC)
            return G

        def STANDARD_2DGRATING_1550_TE():
            from picazzo.fibcoup.uniform_2d import SymmetricUniformRect2dGrating as _UG2D
            from ipkiss.plugins.photonics.wg.basic import WgElDefinition
            std1550_2dgrating_period = 0.605
            std1550_2dgrating_hole_diameter = 0.390  # desired after litho: 370
            std1550_2dgrating_n_o_periods = 19
            std1550_2dgrating_wg_def = WgElDefinition(wg_width=12.0)
            std1550_2dgrating_wg_length = 11  # length of trench before the taper starts
            std1550_2dgrating_trench_overlap = 4  # length of overlap between taper and fiber coupler trench
            std1550_2dgrating_dev_angle = 3.1  # angle deviation w/respect to 90 degrees.
            G = _UG2D(name="std_2dgrating_1550",
                      period=std1550_2dgrating_period,
                      hole_diameter=std1550_2dgrating_hole_diameter,
                      n_o_periods=std1550_2dgrating_n_o_periods,
                      wg_definition=std1550_2dgrating_wg_def,
                      wg_length=std1550_2dgrating_wg_length,
                      dev_angle=std1550_2dgrating_dev_angle,
                      process=TECH.PROCESS.WG)
            return G

        self.DEFAULT_GRATING_TE = STANDARD_GRATING_1550_TE()
        self.DEFAULT_GRATING_TM = STANDARD_GRATING_1550_TM()
        self.DEFAULT_GRATING = self.DEFAULT_GRATING_TE

        try:
            self.DEFAULT_2D_GRATING = STANDARD_2DGRATING_1550_TE()
        except Exception, exc:
            LOG.warn("TECH.IO.FIBCOUP.DEFAULT_2D_GRATING will not be set : " +
                     str(exc))