JDiffraction: A GPGPU-accelerated JAVA library for numerical propagation of scalar wave fields

Abstract JDiffraction, a GPGPU-accelerated JAVA library for numerical propagation of scalar wave fields, is presented. Angular spectrum, Fresnel transform, and Fresnel–Bluestein transform are the numerical algorithms implemented in the methods and functions of the library to compute the scalar propagation of the complex wavefield. The functionality of the library is tested with the modeling of easy to forecast numerical experiments and also with the numerical reconstruction of a digitally recorded hologram. The performance of JDiffraction is contrasted with a library written for C++, showing great competitiveness in the apparently less complex environment of JAVA language. JDiffraction also includes JAVA easy-to-use methods and functions that take advantage of the computation power of the graphic processing units to accelerate the processing times of 2048×2048 pixel images up to 74 frames per second. Program summary Program title: JDiffraction Program Files doi: http://dx.doi.org/10.17632/nwrwz7mn7h.1 Licensing provisions: GNU General Public License 3 (GPL) Programming language: JAVA Nature of problem: In order to perform the numerical propagation of optical wave fields at any distance from the aperture the Fresnel–Kirchhoff diffraction integral must be calculated. The numerical implementation of this integral is very complex computationally, thus preventing any video-rate application that uses it. To surpass this problem Angular spectrum, Fresnel–Bluestein and Fresnel approaches have been implemented. Angular spectrum is used in any optical setup with small propagating distances. Fresnel is the fastest implementation for large propagation distances but without control of the resulting scaling of the propagated wavefields. Fresnel–Bluestein eliminates this latter problem with a slightly higher computational complexity. Solution method: Angular spectrum, Fresnel–Bluestein and Fresnel approaches for the numerical propagation of optical fields in the JAVA computation environment. Additional comments: Available for download from URL: http://unal-optodigital.github.io/JDiffraction/ . The API can be found here: http://unal-optodigital.github.io/JDiffraction/javadoc/index.html References: [1] P. Piedrahita-Quintero, C. Trujillo, J. Garcia-Sucerqui, JDiffracto 1.2 API, (2016). http://unaloptodigital.github.io/JDiffraction/javadoc/index.html (accessed June 7, 2016).

[1]  J. Wyant,et al.  Computer generated holograms for testing optical elements. , 1971, Applied optics.

[2]  E. Cuche,et al.  Digital holographic microscopy: a noninvasive contrast imaging technique allowing quantitative visualization of living cells with subwavelength axial accuracy. , 2005, Optics letters.

[3]  Jorge Garcia-Sucerquia,et al.  Numerical wave propagation in ImageJ. , 2015, Applied optics.

[4]  I. Smal,et al.  Tracking in cell and developmental biology. , 2009, Seminars in cell & developmental biology.

[5]  Pascal Picart,et al.  Digital three-color holographic interferometry for flow analysis. , 2008, Optics express.

[6]  Carlos Ferreira,et al.  Fast algorithms for free-space diffraction patterns calculation , 1999 .

[7]  J. Garcia-Sucerquia,et al.  Evaluation of the limits of application for numerical diffraction methods based on basic optics concepts , 2015 .

[8]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[9]  Thomas S. Huang,et al.  Digital Holography , 2003 .

[10]  Werner Jüptner,et al.  Digital recording and numerical reconstruction of holograms , 2002 .

[11]  J. Goodman Introduction to Fourier optics , 1969 .

[12]  Tomoyoshi Ito,et al.  Real-time digital holographic microscopy using the graphic processing unit. , 2008, Optics express.

[13]  Okan K. Ersoy,et al.  Diffraction, Fourier Optics and Imaging , 2006 .

[14]  Andrzej Ziólkowski,et al.  A numerical approach to nonlinear propagation of light in photorefractive media , 2014, Comput. Phys. Commun..

[15]  Zeev Zalevsky,et al.  Computation considerations and fast algorithms for calculating the diffraction integral , 1997 .

[16]  Carlos Trujillo,et al.  Accelerated Numerical Processing of Electronically Recorded Holograms With Reduced Speckle Noise , 2013, IEEE Transactions on Image Processing.

[17]  John M Tyler,et al.  Shifted Fresnel diffraction for computational holography. , 2007, Optics express.

[18]  M. Macka,et al.  Numerical model for light propagation and light intensity distribution inside coated fused silica capillaries , 2011 .

[19]  Emil Wolf,et al.  Principles of Optics: Contents , 1999 .

[20]  Maciej Sypek,et al.  Image multiplying and high-frequency oscillations effects in the Fresnel region light propagation simulation , 2003 .

[21]  Jorge Garcia-Sucerquia,et al.  Magnified reconstruction of digitally recorded holograms by Fresnel-Bluestein transform. , 2010, Applied optics.

[22]  Bo Sun,et al.  Flow visualization and flow cytometry with holographic video microscopy. , 2009 .

[23]  Jack J. Purdum,et al.  C programming guide , 1983 .

[24]  Carlos Trujillo,et al.  GRAPHICS PROCESSING UNITS: MORE THAN THE PATHWAY TO REALISTIC VIDEO-GAMES UNIDADES DE PROCESAMIENTO GRÁFICO: MÁS QUE LA RUTA HACIA JUEGOS DE VIDEO CON REALIDAD VISUAL Y DE MOVIMIENTO , 2011 .

[25]  Tomoyoshi Shimobaba,et al.  Computational wave optics library for C++: CWO++ library , 2011, Comput. Phys. Commun..

[26]  Anand,et al.  In-line digital holography for dynamic metrology of MEMS (Invited Paper) , 2009 .

[27]  Tomoyoshi Shimobaba,et al.  Aliasing-reduced Fresnel diffraction with scale and shift operations , 2013 .