Photonics

Photonics

Topics related to Lumerical and more.

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.

    • uzmayaqoob1960
      Subscriber

      DEar Jing have u got any guidance how to impinge OAM source in Lumerical?

      If yes then plz let me know too.

       

    • Guilin Sun
      Ansys Employee

      You have analytical solution for the OAM source. Please refer to this example https://optics.ansys.com/hc/en-us/articles/360034383054-Using-an-equation-to-define-the-spatial-field-profile-of-a-source-in-FDTD

Viewing 3 reply threads
  • The topic ‘How to set the OAM parameters of incident light in Lumerical FDTD?’ is closed to new replies.