[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.5 Semi-infinite stacks

Say you wanted to model the incoupling from a dielectric waveguide to a photonic crystal waveguide (fig. 2.4).

figs/infstack

Using other modelling tools, you would have to study a finite structure, i.e. at some point you would have to terminate the photonic crystal and introduce a photonic crystal/air interface. Reflections from this interface could travel back to the dielectric waveguide and disturb the simulation results due to the Fabry-Perot effect.

In CAMFR we can solve this problem by using an InfStack, which allows us to model the structure of fig. 2.4 where the crystal extends all the way towards infinity in the propagation direction. In this way, we can study the incoupling problem in isolation of edge effects from the other side of the crystal.

The following code illustrates how to achieve this:

 
#! /usr/bin/env python

###################################################################
#
# A semi-infinite photonic crystal.
#
###################################################################

from camfr import *

set_lambda(1.5)
set_N(50)

# Set geometry parameters

GaAs = Material(3.4)
air  = Material(1.0)
  
a = .600     # period
r = .150/2.0 # rod radius

set_lower_wall(slab_H_wall)

cl = 0       # air cladding
periods = 4  # lateral periods

# Define slabs.

inc_wg = Slab(GaAs(1.5*r) + air(a-2.5*r+periods*a+cl))

no_rods = Slab(air(a-r+periods*a+cl))
 
cen = Slab(  air(a-r)                                               \
           + periods*(GaAs(2*r) + air(a-2*r))                       \
           + air(cl) )

# Calculate semi-infinite stack.

s_inf = InfStack(cen(2*r) + no_rods(a-2*r))
s = Stack(inc_wg(a) + s_inf)

s.calc()

print abs(s.R12(0,0))**2

If you are only interested in the reflection coefficient of the fundamental mode of the incoupling waveguide, this works fine. However, when using InfStack, the transmission to the Bloch modes of the semi-infinite stack is not calculated to save time.

If you are interested in these quantanties, you have to make some small modifications:

 
s_inf = BlochStack(cen(2*r) + no_rods(a-2*r))
s = Stack(inc_wg(a) + s_inf(0))

When you are using a BlochStack instead of an InfStack, all the scattering matrices are calculated. Moreover, s.T12(0,0) refers to the transmission to the Bloch mode of the semi-infinite stack, rather than to the transmission to some waveguide mode of one of the slabs making up the semi-infinite structure, which is usually not of interest.

Note that BlochStack can be used in the beginning of a Stack too.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by root on August, 27 2008 using texi2html 1.76.