 ## Photonics

• 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);
• Guilin Sun 