scalar_fields_XY.py, CZT propagation method based field output, needs to be multiplied by '1j'

Issue #303 resolved
Haritejas Iyer created an issue

I am currently using the bluestein algorithm based propagation from diffractio, scalar_fields_XY.py.

For my work I need to compare the output phase and intensity after a simple Z-scan. For the purpose of benchmarking I created a small numpy based direct integration program which solves the first Rayleigh-Sommerfeld integral (ref: Fourier Optics, J. Goodman, 4th-Ed; Eq.3.45). I have taken care to use the same constants as is and also has been followed in the diffractio czt method.

This program and the CZT based method were used to propagate a 800nm plane wave through a 20um wide hole, on to a screen placed at z=110mm, where a 1D-output (along x, y=0) was finally calculated. Upon comparison I find that the intensity matches as expected, but the phase was mismatched. I find that this is corrected if I multiply the CZT based output field by 1j.

Usually most applications seem to be only concerned wit the intensity, maybe this 1j factor could be incorporated in the bluestein algorithm in diffractio? Could this be confirmed, I have not looked into the bluestein algorithm as given here yet..

Comments (3)

  1. LUIS MIGUEL SANCHEZ BREA repo owner

    Dear Haritejas Iyer.

    Thank you very much for your suggestion. I have checked that what you proposed is right and I changed CZT definition in readme-change branch.

    Please check, that now the solution is correct.

  2. LUIS MIGUEL SANCHEZ BREA repo owner

    Dear Haritejas Iyer.

    Thank you very much for your suggestion. I have checked that what you proposed is right and I changed CZT definition in readme-change branch.

    Please check, that now the solution is correct.

  3. Log in to comment