!! OLED emitter model !! !! import rayset from Lumerical !! as EMITTING RAYS file oled1.inr or oled2.inr !! !! meter units, individual edge objects, !! MonteCarlo tracing, directional mapping, internal !! absorber, external spherical detectors for forward !! and backward components !! Author: Jon Herlocker !! Copyright 2007, Breault Research Organization SYSTEM NEW RESET XMEMORY MIN UNITS M WAVELENGTH 500 NM MEDIA 1.48 'GLASS' COATING PROPERTIES 0.0 0.0 'PABS' !! system settings FRESNEL AVE SPLIT 1 MONTECARLO HALT 1E-4 CUTOFF 1E-12 100 !! system variables PLATE_THICKNESS=0.7E-3 !! chip thickness [m] PLATE_WIDTH=1E-3 !! chip full width [m] EMITTER_WIDTH=0.5E-3 !! emitting layer full width [m] DET_RADIUS=PLATE_WIDTH*10 !! size of outer ellipsoidal detector !! geometry SURFACE ELLIPSOID 3@(DET_RADIUS) 0 0 0 +Z !! outer detector forward ELLIPSOID 3@(DET_RADIUS) 0 0 0 -Z !! outer detector backward PLANE Z -(PLATE_THICKNESS/10) RECT 2@(EMITTER_WIDTH/2) !! internal absorber PLANE Z -(PLATE_THICKNESS/2) RECT 2@(PLATE_WIDTH/2) !! chip top PLANE Z (PLATE_THICKNESS/2) RECT 2@(PLATE_WIDTH/2) !! chip bottom PLANE X (PLATE_WIDTH/2) RECT (PLATE_WIDTH/2) (PLATE_THICKNESS/2) !! chip sides PLANE -X -(PLATE_WIDTH/2) RECT (PLATE_WIDTH/2) (PLATE_THICKNESS/2) !! chip sides PLANE Y (PLATE_WIDTH/2) RECT (PLATE_THICKNESS/2) (PLATE_WIDTH/2) !! chip sides PLANE -Y -(PLATE_WIDTH/2) RECT (PLATE_THICKNESS/2) (PLATE_WIDTH/2) !! chip sides !! TUBE Z -(PLATE_THICKNESS/2) 2@(PLATE_WIDTH/2), !! (PLATE_THICKNESS/2) 2@(PLATE_WIDTH/2) 1 1 OBJECT .9 'DETECTOR.FORWARD' INTERFACE 0 0 AIR AIR .8 'DETECTOR.BACKWARD' INTERFACE 0 0 AIR AIR .7 'CHIP.INNER.ABSORBER' INTERFACE COAT PABS GLASS GLASS !! absorber .6 'CHIP.OUTER.1' INTERFACE COAT BARE GLASS AIR .5 'CHIP.OUTER.2' INTERFACE COAT BARE GLASS AIR .4 'CHIP.OUTER.EDGE.X.P' INTERFACE COAT BARE GLASS AIR .3 'CHIP.OUTER.EDGE.X.N' INTERFACE COAT BARE GLASS AIR .2 'CHIP.OUTER.EDGE.Y.P' INTERFACE COAT BARE GLASS AIR .1 'CHIP.OUTER.EDGE.Y.N' INTERFACE COAT BARE GLASS AIR RETURN GROUP CHIP.? COLOR 20 RETURN !! source load IMMERSE GLASS LOADRAYS=1 $SCR 2 'Load rays from text or binary' Load rays via EMITTING RAYS? (text) \LOADRAYS:? (otherwise re-use previous binary ray file) &TIC $IF (LOADRAYS) GT 0.5 THEN !! load rays via text file $ECHO NONE $CASE LOWER $read oled1 $case upper $ECHO FLUX TOTAL 1 !! save rayset to binary dump file for reuse DUMP OLED1.DIS $ELSE !! reuse an existing binary dump file EMITTING DATA OLED1.DIS $ENDIF $TIC STATS $GRAB 'TOTAL' 0 1 NRAYS !! trace first to chip surfaces with global detector removed MISSED ARROW (PLATE_THICKNESS) WINDOW Y Z; WINDOW 2 CONSIDER EXCEPT DETECTOR.? !! trace to chip surfaces PLOT FACETS 3 3 0 OVERLAY TRACE PLOT 1>INT(NRAYS/111) COLORS 2 !! look at top surface rays CONSIDER ONLY CHIP.OUTER.2 !! examine irradiance SPOTS POSITION EVERY 1>INT(NRAYS/111111) YX 0.8 PIXELS 51 DISPLAY AVERAGE; AVERAGE PICTURE 'Top irradiance' HEADER _, _+(1.2*PLATE_THICKNESS/2) WRITE SHIFTED.DIS RETURN !! examine radiant intensity SPOTS DIRECTION ATTRIBUTE 0 YX PIXELS 51 DISPLAY AVERAGE; AVERAGE PICTURE 'Top intensity' HEADER _, _+(1.4*PLATE_THICKNESS/2) WRITE DSHIFTED.DIS RETURN !! display geometry with irradiance superimposed $VIEW &VIEW SHIFTED.DIS !! look only at rays on chip surfaces (all 6) CONSIDER ONLY CHIP.OUTER.? MOVE BY (PLATE_THICKNESS/100) !! move rays off chip surfaces CONSIDER ALL !! adds back outer detector for final trace $IO VECTOR REWIND !! plot and trace from chip surfaces to outer detectors PLOT FACETS 3 3 0 OVERLAY TRACE PLOT 1>INT(NRAYS/111) COLORS 2 !! look only at forward detector CONSIDER ONLY DETECTOR.FORWARD !! examine directional flux (radiant intensity) SPOTS DIRECTION EVERY ATTRIBUTE 0 YX PIXELS 15 DISPLAY PICTURE 'DCS forward intensity ' !! direction cosine space DIRECTIONAL UNWRAP 'forward intensity ' !! principal slices ANGLES !! convert to angles from DCS PICTURE 'angles forward intensity ' !! intensity in "angle space" RETURN RADIANT Z 90 0 36 -180 180 72 !! examine using a polar mapping DISPLAY PICTURE 'polar forward intensity ' RETURN