-
-
April 28, 2022 at 8:34 amDoctorwhoSubscriber
In the metalens example, I found that the coding firstly map the 1D phase profile at each x position (x_mask) to the radii,
May 12, 2022 at 7:07 pmMay 13, 2022 at 8:33 amTaylor RobertsonAnsys Employee
I think the question is about constructing a non axially symmetric phase target. If you refer to the phase equation being solved for here, you can see that is actually axially symmetric because you can write it as a function of r^2. For that reason it is sufficient to solve it along y=0,.
This is exactly what is being done in the lines of code, you shared.
If you have a phase target that is not axially symmetric, you would probably need to write this as a function of two variables, with x, and y being the easiest choice, due the rectangular tiling of the meta atoms. I would suggest looping over x, y and constructing a 2D phase target array with. Then you could solve for the phase target at each position using scaler values. It would probably be OK to convert x_mask, y_mask from vectors to 2D arrays. The use array operations instead of loop, but this might be a bit more difficult. It could look something like this.
for (n =1:length(x_mask(n)){
for(m = 1:length(y_mask(m)){
...
phase_target(m,n) = f ( x_mask(n),y_mask(m)) ;
...
}}
Next when you create the radius mask, this would need to be a 2D array, but you could use the 2D version of interp - Script command.
Finally, adding the pillars would no longer be cylindrically symmetric, so again you could make this a two level loop of x and y instead of just r.
I hope this answers your question. Let us know if you have any trouble with the details.
Best Regards
May 13, 2022 at 8:33 amTaylor RobertsonAnsys Employee
I think the question is about constructing a non axially symmetric phase target. If you refer to the phase equation being solved for here, you can see that is actually axially symmetric because you can write it as a function of r^2. For that reason it is sufficient to solve it along y=0,.
This is exactly what is being done in the lines of code, you shared.
If you have a phase target that is not axially symmetric, you would probably need to write this as a function of two variables, with x, and y being the easiest choice, due the rectangular tiling of the meta atoms. I would suggest looping over x, y and constructing a 2D phase target array with. Then you could solve for the phase target at each position using scaler values. It would probably be OK to convert x_mask, y_mask from vectors to 2D arrays. The use array operations instead of loop, but this might be a bit more difficult. It could look something like this.
for (n =1:length(x_mask(n)){
for(m = 1:length(y_mask(m)){
...
phase_target(m,n) = f ( x_mask(n),y_mask(m)) ;
...
}}
Next when you create the radius mask, this would need to be a 2D array, but you could use the 2D version of interp - Script command.
Finally, adding the pillars would no longer be cylindrically symmetric, so again you could make this a two level loop of x and y instead of just r.
I hope this answers your question. Let us know if you have any trouble with the details.
Best Regards
May 13, 2022 at 8:33 amTaylor RobertsonAnsys Employee
I think the question is about constructing a non axially symmetric phase target. If you refer to the phase equation being solved for here, you can see that is actually axially symmetric because you can write it as a function of r^2. For that reason it is sufficient to solve it along y=0,.
This is exactly what is being done in the lines of code, you shared.
If you have a phase target that is not axially symmetric, you would probably need to write this as a function of two variables, with x, and y being the easiest choice, due the rectangular tiling of the meta atoms. I would suggest looping over x, y and constructing a 2D phase target array with. Then you could solve for the phase target at each position using scaler values. It would probably be OK to convert x_mask, y_mask from vectors to 2D arrays. The use array operations instead of loop, but this might be a bit more difficult. It could look something like this.
for (n =1:length(x_mask(n)){
for(m = 1:length(y_mask(m)){
...
phase_target(m,n) = f ( x_mask(n),y_mask(m)) ;
...
}}
Next when you create the radius mask, this would need to be a 2D array, but you could use the 2D version of interp - Script command.
Finally, adding the pillars would no longer be cylindrically symmetric, so again you could make this a two level loop of x and y instead of just r.
I hope this answers your question. Let us know if you have any trouble with the details.
Best Regards
May 18, 2022 at 12:47 pmDoctorwhoSubscriberThank you very much for your help! I will try the way you suggested.
Viewing 5 reply threads- The topic ‘How to map a general phase profile to design a metalens’ is closed to new replies.
Ansys Innovation SpaceTrending discussions- Difference between answers in version 2024 and 2017 lumerical mode solution
- Errors Running Ring Modulator Example on Cluster
- INTERCONNECT – No results unless rerun simulation until it gives any
- Import material .txt file with script
- Help for qINTERCONNECT
- Trapezoidal ring
- Issues with getting result from interconnent analysis script
- Topology Optimization Error
- Edge Coupler EME Example Issue
- How to measure transmission coefficients on a given plane .
Top Contributors-
1216
-
543
-
523
-
225
-
209
Top Rated Tags© 2024 Copyright ANSYS, Inc. All rights reserved.
Ansys does not support the usage of unauthorized Ansys software. Please visit www.ansys.com to obtain an official distribution.
-
The Ansys Learning Forum is a public forum. You are prohibited from providing (i) information that is confidential to You, your employer, or any third party, (ii) Personal Data or individually identifiable health information, (iii) any information that is U.S. Government Classified, Controlled Unclassified Information, International Traffic in Arms Regulators (ITAR) or Export Administration Regulators (EAR) controlled or otherwise have been determined by the United States Government or by a foreign government to require protection against unauthorized disclosure for reasons of national security, or (iv) topics or information restricted by the People's Republic of China data protection and privacy laws.