The Ansys Innovation Space website recently experienced a database corruption issue. While service has been restored there appears to have been some data loss from November 13. We are still investigating and apologize for any issues our users may have as a result.

Ansys Learning Forum Forums Discuss Simulation Photonics – Chinese 有限周期光栅的衍射级次和光场分布 Reply To: 有限周期光栅的衍射级次和光场分布

2357898783
Subscriber

老师,这个是我构建平顶光束的一个脚本。另外补充一下我们上面的模型的仿真区域大小是50微米*50微米,最大能做到的仿真的光栅区域大小是100微米*100微米,更大的可能要在电脑上重新试一试。

# Clear existing variables
clear;
#switchtolayout;

# Define position vectors for spatial grid
x = linspace(-45e-6, 45e-6, 41);  # Updated x range
y = linspace(-45e-6, 45e-6, 41);  # Updated y range
z = -0.2e-6;  # Set z position to 0.11 micrometers
X = meshgridx(x,y);
Y = meshgridy(x,y);

# Wavelength and wave vector
lambda0 = 0.5e-6;
f = c/lambda0;
k = 2*pi/lambda0;

# Define the flat-top beam profile
w0 = 25e-6;  # beam waist
sigma = 0.5e-6;  # controls edge smoothness
G = 1.0;  # peak amplitude

# Beam envelope: Gaussian edges with a flat top
#envelope = G * exp(-((-(X^2 + Y^2) - w0^2)^2 / (2*sigma^2)));
R =30e-6;#调控平顶的半径
r = (R-sqrt(X^2+Y^2))/lambda0;
n=10;#调控平顶的范围
envelope = ((exp(n*r)-exp(-n*r))/(exp(n*r)+exp(-n*r))+1)/2;


# Define electric field components for radial polarization (as an example)
phi = atan2(Y, X);
Ex = cos(phi) * envelope;
Ey = sin(phi) * envelope;
Ez = 0;

# Package field data into the dataset for Import Source
EM = rectilineardataset("EM fields", x, y, z);
EM.addparameter("lambda", c/f, "f", f);
EM.addattribute("E", Ex, Ey, Ez);

# Save dataset to .mat file
#matlabsave("import_data.mat", EM);

# Load dataset into Import Source
select("import_beam");
importdataset(EM);
set("center wavelength", lambda0);
set("wavelength span", 0);

# Run simulation
#run;

# Visualize the field
#visualize(EM);