From fe8d0f267ad8586242172b23322ac01d0b40cba0 Mon Sep 17 00:00:00 2001 From: Eugeniy Mikhailov Date: Tue, 13 May 2014 16:24:42 -0400 Subject: fixed normalization for LaguerreGaussianE(n,0, ...) Overlap of LaguerreGaussianE(n,0, ...) with itself was equal to 0.5 For example ------------------------------------------ screensize=0.125; nptsr=500; nptstheta=100; accuracy=0.001; n=400; [rmesh,thetamesh,xmesh,ymesh]=polarmesh([0,screensize,nptsr],[0 2*pi nptstheta],'lin'); domain(:,:,1)=rmesh; domain(:,:,2)=thetamesh; w=0.008; R=-1e3; lambda=0.795e-6; q=q_(w,R,lambda); z1=LaguerreGaussianE([0,0,q_(w,R,lambda),lambda],xmesh,ymesh,'cart'); z2=LaguerreGaussianE([0,0,q_(w,R,lambda),lambda],xmesh,ymesh,'cart'); a=overlap(z1,conj(z2),domain,rmesh) ------------------------------------------ a use to be 0.5 instead of 1 As result decomposition -> composition cycle was not producing the same beam --- transverse/LaguerreGaussianE.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'transverse') diff --git a/transverse/LaguerreGaussianE.m b/transverse/LaguerreGaussianE.m index f95985d..adc004a 100644 --- a/transverse/LaguerreGaussianE.m +++ b/transverse/LaguerreGaussianE.m @@ -175,14 +175,14 @@ w=w_(q,lambda); if min(size(r))>=2 for u=1:size(params,1) z(:,:,u) = a(u)... - .* sqrt(2*factorial(p(u))/(1+(m(u)==0))/pi/(factorial( m(u)+p(u) )))/w(u)... + .* sqrt(2*factorial(p(u))/pi/(factorial( m(u)+p(u) )))/w(u)... .* (sqrt(2)*r/w(u)).^m(u) .*exp(1i*signm(u)*m(u).*theta).* LaguerrePoly([p(u),m(u)],2*r.^2/w(u).^2)... .* exp( -1i*2*pi/lambda(u)*r.^2/2/q(u)); end else for u=1:size(params,1) z(:,u) = a(u)... - .* sqrt(2*factorial(p(u))/(1+(m(u)==0))/pi/(factorial( m(u)+p(u) )))/w(u)... + .* sqrt(2*factorial(p(u))/pi/(factorial( m(u)+p(u) )))/w(u)... .* (sqrt(2)*r/w(u)).^m(u) .* exp(i*signm(u)*m(u).*theta).* LaguerrePoly([p(u),m(u)],2*r.^2/w(u).^2)... .* exp( -1i*2*pi/lambda(u)*r.^2/2/q(u)); end -- cgit v1.2.3