JDiffraction: a GPGPU-accelerated JAVA library for numerical propagation of scalar wave fields
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 x 2048 pixel images up to 74 frames per second.