Esempio n. 1
0
	def propagate(self,beam):
#		print 'propagate with ABCD elements', self.abcd
		self.beam=beam
		self.q1=self.beam.q1
		self.q2=(self.c+self.d*self.q1)/(self.a+self.b*self.q1)
		#the task of getting R and waist from complex parameter q can be put into a separate method
		self.R12=np.real(self.q2)#1/R2
		self.lamda2=self.beam.lamda/self.n
		self.waist2=np.sqrt(1/np.imag(self.q2)/3.145*(self.beam.lamda)/(self.n))
		beam2=gbeam(self.waist2,self.lamda2,self.R12)
		return beam2
Esempio n. 2
0
import numpy as np
from gbeam import gbeam
import propagateclass as pg
from propagateclass import general_element
from propagateclass import freespace
beam1=gbeam(1.1*10**-3,780*10**-9,0)
abcd=np.array([[1,0],[-1/10**-2,1]])

len1=general_element(abcd,1)
len1.givebeam(beam1)
beam2=len1.propagate(beam1)

fp1=freespace(10*10**-2,1)
fp1.givebeam(beam1)
fp1.propagate(beam1)

beam3=fp1.propagate(len1.propagate(beam1))
print 'waist propagate:',pg.findfocus(beam2).waist
#print 'beam3 waist:',beam3.waist,'beam 3 radiuscur:',1/beam3.R1,