Photonics

Photonics

How to set the OAM parameters of incident light in Lumerical FDTD?

    • JING PENG
      Subscriber

      Hi Everyone,

      Right now, I want to set up the orbital angular momentum (OAM) modes of the incident light in Lumerical FDTD. Does anyone know how to set the OAM mode of incident light?

      It looks like that we can't set up this in the software itself, but we might be able to set it up in the lumerical script section. Below is an example of setting some parameters of the incident light, which I got online. It might a hint/reference to you.

      Really hope someone can tackle this issue. Thanks.

      # scriptfile:usr_custom_source.lsf
       
      # define position vectors
       
      x=linspace(-10e-6,10e-6,401);
      y=linspace(-10e-6,10e-6,401);
      z=0; #this is z z-normal source
       
      X=meshgridx(x,y);
      Y=meshgridx(x,y);
       
      lambda0=0.5e-6;
      f=c/lambda0;
      w=2*pi*f;
      k=2*pi/lambda0;
       
      #calculate k-space field profiles
      NA=0.2;
       
      kx=linspace(-k,k,200);
      ky=linspace(-k,k,200);
      Kx=meshgridx(kx,ky);
      Ky=meshgridy(kx,ky);
      phi=atan2(Ky,Kx);
      theta=real(acos(sqrt(1-Kx^2/k^2-Ky^2/k^2)));
      envelope=exp(-0.5*(Kx^2+Ky^2)/(NA*k)^2);
       
      Exk=cos(phi)*cos(theta)*envelope;
       
      Eyk=sin(phi)*cos(theta)*envelope;
       
      Ezk=sin(theta)*envelope;
       
      Ex=-1i*czt(Exk,kx,ky,x,y);
       
      Ey=-1i*czt(Eyk,kx,ky,x,y);
       
      Ez=-1i*czt(Ezk,kx,ky,x,y);
       
      Hxk=-sqrt(eps0/mu0)*sin(phi)*envelope;
      Hyk=sqrt(eps0/mu0)*cos(phi)*envelope;
      Hx=-1i*czt(Hxk,kx,ky,x,y);
      Hy=-1i*czt(Hyk,kx,ky,x,y);
      Hz=0*Ex;
       
      # sacle fild so E^2=1
       
      E2=abs(Ex)^2+abs(Ey)^2+abs(Ez)^2;
      scaleFactor=sqrt(max(E2));
      Ex=Ex/scaleFactor;
      Ey=Ey/scaleFactor;
      Ez=Ez/scaleFactor;
      Hx=Hx/scaleFactor;
      Hy=Hy/scaleFactor;
      Hz=Hz/scaleFactor;
       
      # package field data into the EM fields dataset
       
      EM=rectilineardataset("EM fields",x,y,z);
      EM.addparameter("lambda",c/f,"f",f);
      EM.addattribute("E",Ex,Ey,Ez);
      EM.addattribute("H",Hx,Hy,Hz);
       
      # save dataset to .mat file
      matlabsave("import_data.mat",EM);
    • Guilin Sun
      Ansys Employee

      This question has been replied here  请问和求教Lumerical FDTD 中如何设置入射光的光子轨道角动量OAM的问题   

      Please note that there are limited number of standard sources in FDTD. However, with import, you can set up whatever the source you want.

Viewing 1 reply thread
  • You must be logged in to reply to this topic.