Definition at line 986 of file general_optics.py. 00986 : 00987 oldlambda=self.beam.get_lambda() 00988 if oldlambda==self.last_lambda: return 00989 00990 if type(self.external_index) is types.FunctionType: 00991 self.ambient_index=self.external_index(oldlambda) 00992 else: 00993 self.ambient_index=self.external_index 00994 n1=self.ambient_index 00995 00996 if type(self.index) is types.FunctionType: 00997 self.medium_index=self.index(oldlambda) 00998 else: 00999 self.medium_index=self.index 01000 01001 n2=self.medium_index 01002 01003 if hasattr(self, "radius"): 01004 raise "Warning...", "Curved dielectric interfaces don't work yet! try again later" 01005 if type(self.radius) is not types.TupleType: 01006 rx=ry=self.radius 01007 else: 01008 rx,ry=self.radius 01009 if rx is not Infinity: 01010 cx=(n1-n2)/(rx*n2) 01011 else: 01012 cx=0.0 01013 if ry is not Infinity: 01014 cy=(n1-n2)/(ry*n2) 01015 else: 01016 cy=0.0 01017 self.d_scalar=n1/n2 #always diagonal, for scalar media, so we don't have to localize 01018 self.strength=Numeric.array(((cx,0),(0,cy))) 01019 else: 01020 self.strength=Numeric.array(((0.,0.),(0.,0.))) 01021 01022 self.last_lambda=oldlambda 01023 def q_transform(self):
|