Physical optics propagation

  • 9 June 2021
  • 4 replies
  • 298 views

Badge

When I run POP analysis for different grid phases, the display sometimes shows the beam small and sometimes it shows an enlarged beam. I want the beam size to be comparable (all beams to be of similar scale) in the POP display window. How to do that via ZOS-API?


4 replies

Userlevel 6
Badge +2

Hi 


I would avoid changing the beam size within POP as the size of the array is optimized for the propagation of the beam. But this can be done in the POP properties.

So I would keep the beam size as it is and save the ZBF files. Then you can either modify the ZBF in ZPL using the keyword ZBFRESAMPLE. We don't have a similar keyword in API. What software do you use in API? Or you can just fix the scale using the BeamFileViewer. Or if you plot from the API, you can just plot the region of interest.


Let us know your comments.


Thank you.


Sandrine

Badge

Hi Sandrine,


I am using Python to establish link to Zemax. One way to change some POPsettings is by accessing the cfg file, using Modifysettings (ZPL) and loading the cfg back to the analysis. But the Modifysettings function has options for Physical optics but not Beam File viewer. I have attached three pictures for your reference. These pictures have same POP settings (modified using the above method), just a different phasescreen (which should not change the beam profile drastically). The beam should look similar in all cases. But there is something abnormal. 


I fixed the width using POP_WIDEX and POP_WIDEY (On removing this, the beams look fine but not the desirable x and y width). Also I am using imshow from matplotlib in python to plot these images. 

figure0.pngfigure1.pngfigure6.png
Userlevel 6
Badge +2

POP_WIDEX and POP_WIDEY will actually fix the beam size, whereas I would recommend not to modify the beam size. The beam size has to be wider than the beam because the beam is Fourier transformed when it is propagated. If you are plotting using Python, could you just display the beam on a specific x and y range?

 

As an additional comment, the POP settings are not available directly from the API: link

 

 

Badge

I have a question related to this discussion. I’m running 2 different variants of the same POP system using the API, and for post-analysis the beams should really align along the same grid of x-y coordinates. However, depending on the differences between the variants, the spacing between datapoints can turn out to be different. This leads to problems.
So I would require something similar to ZBFRESAMPLE. What casting method does it use? I could just implement something similar.

Reply