You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I guess the current implementation is valid for the limit z >> z_R but z/z_R would have to be of the 10 to make this approximation accurate on the 1% level. Not sure this would be true in all applications.
The text was updated successfully, but these errors were encountered:
0- Standard Fresnel
1- Fresnel with the analytical treatment of the quadratic (leading) phase terms
2- Similar to 1, yet with different processing near a waist
3- For propagation from a waist over a ~large distance
4- For propagation over some distance to a waist
In this paper, we show that removing the curvature of the wavefront eases the sampling requirements for wavefront propagation. Removing a R very near to the exact one also does the job. In fact, there are some conditions (when propagating to the focal plane were L=-R in Eq. 11) where intentionally the removed curvature is near, but not exactly the same.
I agree with you on your point about Gaussian beams and the radii of curvature, however, on the standard SRW, this value being exat or just near it will not affect the simulation results. However, if srwl_wf.Rx and srwl_wf.Ry are used somewhere else 9user input), this may be problematic, indeed.
Having said that, I would propose you add an ideal lens at the position you are calculating the wavefront with f=-srwl_wf.Rx and check the resulting wavefront phase radius of curvature. You should have something converging to a plane wave, where srwl_wf.Rx and srwl_wf.Ry go to 1e23.
Maybe Oleg could say more about how Rx and Ry are calculated, but I think the calculation is done for an unwrapped phase-cut along x=0 and y=0 and a subsequent fit to it.
I use
wpg.generators.build_gauss_wavefront()
to setup a Gaussian wavefront 100 m from the source position. E.g.:Then I query for the radius of curvatures:
To my knowledge, it should be Rx = z * sqrt( 1 + ( z_Rx / z )^2 ) and likewise for Ry (z_R being the Rayleigh length). Cf here: https://www.rp-photonics.com/gaussian_beams.html.
I guess the current implementation is valid for the limit z >> z_R but z/z_R would have to be of the 10 to make this approximation accurate on the 1% level. Not sure this would be true in all applications.
The text was updated successfully, but these errors were encountered: