Welcome to Diffractio: Python diffraction and interference’s documentation!
- 1. Python Diffraction-Interference module
- 2. Installation
- 3. Usage
- 4. diffractio
- 4.1. diffractio package
- 4.1.1. Submodules
- 4.1.2. diffractio.config module
- 4.1.3. diffractio.scalar_fields_X module
Scalar_field_X
Scalar_field_X.self.x
Scalar_field_X.self.wavelength
Scalar_field_X.self.u
Scalar_field_X.self.quality
Scalar_field_X.self.info
Scalar_field_X.self.type
Scalar_field_X.self.date
kernelRS()
kernelRSinverse()
PWD_kernel()
WPM_schmidt_kernel()
polychromatic_multiprocessing()
extended_source_multiprocessing()
extended_polychromatic_source()
quality_factor()
get_RS_minimum_z()
- 4.1.4. diffractio.scalar_fields_XY module
- 4.1.5. diffractio.scalar_fields_XYZ module
- 4.1.6. diffractio.scalar_fields_XZ module
- 4.1.7. diffractio.scalar_fields_Z module
- 4.1.8. diffractio.scalar_masks_X module
- 4.1.9. diffractio.scalar_masks_XY module
- 4.1.10. diffractio.scalar_masks_XYZ module
- 4.1.11. diffractio.scalar_masks_XZ module
- 4.1.12. diffractio.scalar_sources_X module
- 4.1.13. diffractio.scalar_sources_XY module
- 4.1.14. diffractio.utils_common module
- 4.1.15. diffractio.utils_drawing module
- 4.1.16. diffractio.utils_math module
nextpow2()
Bluestein_dft_x()
Bluestein_dft_xy()
find_local_extrema()
reduce_to_1()
distance()
nearest()
nearest2()
find_extrema()
ndgrid()
get_amplitude()
get_phase()
amplitude2phase()
phase2amplitude()
normalize()
binarize()
discretize()
delta_kronecker()
vector_product()
dot_product()
divergence()
curl()
get_edges()
cut_function()
fft_convolution2d()
fft_convolution1d()
fft_filter()
fft_correlation1d()
fft_correlation2d()
rotate_image()
cart2pol()
pol2cart()
fZernike()
laguerre_polynomial_nk()
get_k()
get_k_deprecated()
filter_edge_1D()
filter_edge_2D()
- 4.1.17. diffractio.utils_multiprocessing module
- 4.1.18. diffractio.utils_optics module
roughness_1D()
roughness_2D()
beam_width_1D()
width_percentage()
beam_width_2D()
refractive_index()
FWHM1D()
FWHM2D()
DOF()
detect_intensity_range()
MTF_ideal()
lines_mm_2_cycles_degree()
MTF_parameters()
gauss_spectrum()
lorentz_spectrum()
uniform_spectrum()
normalize_field()
field_parameters()
convert_phase2heigths()
convert_amplitude2heigths()
fresnel_equations_kx()
transmitances_reflectances_kx()
fresnel_equations()
transmitances_reflectances()
- 4.1.19. diffractio.utils_slicer_deprecated module
- 4.1.20. diffractio.utils_tests module
- 4.1.21. diffractio.vector_fields_X module
- 4.1.22. diffractio.vector_fields_XY module
- 4.1.23. diffractio.vector_fields_XYZ module
- 4.1.24. diffractio.vector_fields_XZ module
- 4.1.25. diffractio.vector_fields_Z module
- 4.1.26. diffractio.vector_masks_XY module
- 4.1.27. diffractio.vector_sources_XY module
- 4.1.28. Module contents
- 4.1. diffractio package
- 5. New Features
- 6. Tutorials
- Algorithms
- 1. Fast Fourier Transform (FFT)
- 2. Rayleigh-Sommerfeld (RS)
- 3. Beam Propagation Method (BPM)
- 4. Wave propagation Method (WPM)
- 5. Chirped Z-transform (CZT)
- 6. Vector Fast Fourier Transform (VFFT)
- 7. Vector Rayleigh-Sommerfeld method (VRS)
- 8. Vector Chirped Z-transform (VCZT)
- 9. Comparison between Rayleigh-Sommerfeld (RS) and WPM Propagation Method (WPM)
- 10. Comparison between Wave propagation Method (WPM) and Beam Propagation Method (BPM)
- 11. Comparison between Rayleigh-Sommerfeld (RS) and Chirped Z-transform (CZT)
- 6.1. Scalar_X
- 6.1.1. Characteristics
- 6.1.2. Example of light sources
- 6.1.2.1. Creating an instance
- 6.1.2.2. Plane wave
- 6.1.2.3. Gauss beam
- 6.1.2.4. Spherical wave
- 6.1.2.5. Several plane waves with different inclination
- 6.1.2.6. Several gauss beams with different position
- 6.1.2.7. Several Gauss beam with different inclination
- 6.1.2.8. Sum of two gauss beams with different inclination: interference
- 6.1.3. Example of masks
- 6.1.3.1. Creating an instance
- 6.1.3.2. Procedures to generate masks
- 6.1.3.3. slit
- 6.1.3.4. double_slit
- 6.1.3.5. two levels
- 6.1.3.6. gray scale
- 6.1.3.7. prism
- 6.1.3.8. Fresnel biprism
- 6.1.3.9. Fresnel biprism from material properties n and h
- 6.1.3.10. standard lens
- 6.1.3.11. Fresnel lens: amplitude and phase
- 6.1.3.12. rough surface
- 6.1.3.13. Dust particles with different sizas
- 6.1.3.14. dust particles
- 6.1.3.15. bit structure
- 6.1.3.16. Gratings
- Scalar_Z
- Scalar_XZ
- 1. Characteristics
- 2. Propagation and other parameters
- 3. Save and load masks and fields
- 4. Surface detection of masks
- 5. Reduction of the field
- 6. Incident field: location
- 7. Recovering the final field
- 8. Beam Propagation Method: Filtering
- 9. Rotating masks and fields
- 10. Find focus tool
- 11. Examples of multiprocessing
- 12. Example of masks
- 13. Definite masks
- 13.1. semi plane
- 13.2. layer
- 13.3. rectangle
- 13.4. slit
- 13.5. sphere or ellipsoid
- 13.6. semi sphere
- 13.7. wedge
- 13.8. prism
- 13.9. biprism
- 13.10. Ronchi grating
- 13.11. grating with substrate
- 13.12. sine grating
- 13.13. probe
- 13.14. convergent plane lens
- 13.15. convergent lens
- 13.16. divergent plane lens
- 13.17. divergent lens
- 13.18. rough surface
- 14. Drawing XZ: focal area of an apheric lens
- Scalar_XY
- 1. Characteristics
- 2. Propagation
- 3. Example of light sources
- 3.1. Creating an instance
- 3.2. plane wave
- 3.3. Gauss beam
- 3.4. spherical wave
- 3.5. vortex beam
- 3.6. Vortex beams
- 3.7. Laguerre beam
- 3.8. Laguerre beams
- 3.9. Hermite_Gauss
- 3.10. Zernike beam
- 3.11. Zernike beams
- 3.12. Several plane waves inclined
- 3.13. plane waves with parameters from dictionary
- 3.14. several parallel Gauss beams
- 3.15. several inclined Gauss beams
- 3.16. Interference
- 4. Examples of masks
- 5. Other procedures to generate XY masks
- 6.2. Scalar_XYZ
- Vector_XY
- 6.3. Other cases
- 6.4. Some info about drawing and videos
- Algorithms
- 7. Examples
- 7.1. Focusing a Gauss beam
- 7.2. Reflection and refraction
- 7.3. Diffraction by a single slit
- 7.4. Arago point
- 7.5. Diffraction by different objects: xy frame
- 7.5.1. Slit
- 7.5.2. double slit
- 7.5.3. square
- 7.5.4. circle
- 7.5.5. ring
- 7.5.6. cross
- 7.5.7. edge
- 7.5.8. image
- 7.5.9. mask_from_function
- 7.5.10. astigmatism
- 7.5.11. Fresnel lens
- 7.5.12. biprism
- 7.5.13. axicon
- 7.5.14. Laguerre spiral
- 7.5.15. forked grating
- 7.5.16. Roughness and speckle
- 7.5.17. Blazed grating
- 7.6. Scattering by a small cylinder
- 7.7. Inteferences using Fresnel biprism
- 7.8. Focusing light with a lens
- 7.9. Binary phase diffractive lens
- 7.10. Talbot effect
- 7.11. Blazed gratings
- 7.12. Dammann gratings
- 7.13. Objects with a variable refraction index
- 7.14. Vector Double slit experiment
- 7.15. Vector Rayleigh-Sommerfeld method
- About functiong
- 1. Developing new functions
- 2. Add surfaces to an object
- 3. Filtering: removing artifacts in BPM and WPM
- 4. Multiprocessing examples
- 4.1. Extended Source
- 4.2. Polychromatic light sources
- 4.3. Simultaneous experiments: moving a grating in a double grating experiment
- 4.4. Drawing at several distances
- 4.5. Several independent experiments
- 4.6. def test_extended_polychromatic_source(self):
- 4.7. Multiprocessing implemented in XZ module
- 5. Check power in Rayleigh-Sommerfeld propagation
- 6. Showing phase figures only at positions with high intensity
- 7. Quality factor
- 8. WPM algorithm in X frame for big masks
- 9. Has_edges parameter in WPM and BPM
- 8. Contributing
- 9. Credits
- 10. Results obtained with Diffractio
- 11. History
- 11.1. 0.0.0 (2017-01-01)
- 11.2. 0.0.1 (2019-02-09)
- 11.3. 0.0.2 (2019-10-01)
- 11.4. 0.0.5 (2019-10-06)
- 11.5. 0.0.6 (2019-10-22)
- 11.6. 0.0.7 and 0.0.8 (2020-05-02)
- 11.7. 0.0.9 and 0.0.10 (2020-05-02)
- 11.8. 0.0.11 and 0.0.12 (2021-05-09)
- 11.9. 0.0.13 (2021-08-11)
- 11.10. 0.1.0 (2022-10-12)
- 11.11. 0.1.1 (2022-10-16)
- 11.12. 0.2.3 (2023-11-21)
- 11.13. 0.3.1
- 11.14. 0.3.1