--------------------------------
Beta state
- Package has been moved to github: https://github.com/optbrea/diffractio/
* Improvements:
- new fresnel_equations_kx, fresnel_equations, transmitances_reflectances_kx, transmitances_reflectances functions.
- Pyvista has been implemented for 3D visualization.
- 'check_none' function (utils_common) has been implemented to check if a variable is None.
- 'add function' (utils_common, and scalar_fields) has been modified to take into consideration different procedures for adding sources or masks.
- 'oversampling function' has been implemented to increase the resolution of the masks (utils_common, and Scalar X, XY, XYZ, XZ, Z). This is also performed with the cut_resample function. However, this function oversamples with integer factors.
- FP_WPM for vector XZ and XYZ fields has been implemented.
- Implementation of scalar (intensity, phase, amplitude) and vector (irradiance, energy_density, etc) parameters in get function.
- new module diffractio.py to import all the frames: u = Diffractio('scalar', 'source', x=x, wavelength=0.6328*um) produced the same as u=Scalar_source_X(x=x, wavelength=0.6328*um)
* Fix bugs:
- new definition of X mask: fresnel_lens
- ndgrid -> meshgrid (this produced a lot of minor bugs)
- bug in scalar_x field: kernelRSinverse and CZT when z<0. (bakcward propagation).
* Refactoring:
- refraction_index -> refractive_index ... in all words.
- XZ masks: sphere -> cylinder.
semi-sphere -> semi-cylinder.
square -> rectangle,
* New features:
- XY masks: edge_rough, slit_rough, double_slit_rough, squares_nxm
- XY masks: .dxf method for loading masks from .dxf files.
- XZ masks: .dxf method for loading masks from .dxf files.
- XZ masks: insert_array_masks, aspheric_lens, lens
- XZ masks: New refractive_index_from_scalar_mask_XY method.
- XYZ masks: .stl method for loading 3D masks from .stl files.
- has_edges parameters in WPM and BPM methods can be an array masking in desired z positions.
- vector XZ fields: FPWPM algorithm has been implemented for vector propagation.
- vector XYZ fields: FPWPM algorithm has been implemented for vector propagation.
- vector XY mask: q_plate, SLM, radial_polarizer, azimuthal_polarizer, RCP, LCP, RCP2LCP, LCP2 RCP.
- new function: get_instance_size_MB to get the size of the instance in MBytes, and .size(verbose) method in all classes.
* Documentation:
- New pages for the new features.
- Changed citing reference to SPIE article: Luis Miguel Sanchez-Brea, Angela Soria-Garcia, Joaquin Andres-Porras, Veronica Pastor-Villarrubia, Mahmoud H. Elshorbagy, Jesus del Hoyo Muñoz, Francisco Jose Torcal-Milla, and Javier Alda "Diffractio: an open-source library for diffraction and interference calculations", Proc. SPIE 12997, Optics and Photonics for Advanced Dimensional Metrology III, 129971B (18 June 2024); https://doi.org/10.1117/12.3021879