[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Say you wanted to model the incoupling from a dielectric waveguide to a photonic crystal waveguide (fig. 2.4).
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.