build a q tensor from a) another valid inverse q tensor qit, b) a scalar complex q parameter which creates a diagonal q inverse tensor ( (1/q, 0), (0,1/q) ) c) a vector of two q parameters which creates a diagonal q inverse tensor ( (1/q[0], 0), (0, 1/q[1]) ) d) a radius of curvature r, wavelength lambda_initial, and medium index, which creates a diagonal tensor. If r is general_optics.Infinity, beam is collimated Definition at line 154 of file general_optics.py. 00154 : 00155 """build a q tensor from 00156 a) another valid inverse q tensor qit, 00157 b) a scalar complex q parameter which creates a diagonal q inverse tensor ( (1/q, 0), (0,1/q) ) 00158 c) a vector of two q parameters which creates a diagonal q inverse tensor ( (1/q[0], 0), (0, 1/q[1]) ) 00159 d) a radius of curvature r, wavelength lambda_initial, and medium index, which creates a diagonal tensor. 00160 If r is general_optics.Infinity, beam is collimated 00161 """ 00162 00163 self.name=name 00164 self.lambda0=lambda_initial*medium_index 00165 self.medium_index=medium_index 00166 if qit is not None: #we are given a real inverse-q tensor, just use it 00167 self.qit=qit 00168 else: 00169 if q is None: 00170 if r is Infinity: 00171 rinv=0 00172 else: 00173 rinv=1.0/r 00174 qi=complex(rinv, -self.lambda0 / (self.medium_index*(math.pi*w**2)) ) 00175 self.qit=Numeric.array(((qi,0),(0,qi))) 00176 elif isinstance(q, complex): 00177 self.qit=Numeric.array(((1.0/q,0),(0,1.0/q))) 00178 else: 00179 self.qit=Numeric.array(((1.0/q[0],0),(0,1.0/q[1]))) 00180 def q_moments(self):
|