{ "info": { "author": "Luis Miguel Sanchez Brea", "author_email": "optbrea@ucm.es", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "================================================\nPython Diffraction-Interference module\n================================================\n\n\n.. image:: https://img.shields.io/pypi/v/diffractio.svg\n :target: https://pypi.org/project/diffractio/\n\n.. image:: https://img.shields.io/travis/optbrea/diffractio.svg\n :target: https://bitbucket.org/optbrea/diffractio/src/master/\n\n.. image:: https://readthedocs.org/projects/diffractio/badge/?version=latest\n :target: https://diffractio.readthedocs.io/en/latest/\n :alt: Documentation Status\n\n\n* Free software: MIT license\n\n* Documentation: https://diffractio.readthedocs.io/en/latest/\n\n\n.. image:: logo.png\n :width: 75\n :align: right\n\n\nFeatures\n----------------------\n\nDiffratio is a Python library for Diffraction and Interference Optics.\n\nIt implements Scalar and paraxial vector Optics. The main algorithms used are Rayleigh Sommerfeld (RS), Beam Propagation Method (BPM) and Fast Fourier Transform (FFT). When possible, multiprocessing is implemented for a faster computation.\n\nThe scalar propagations techniques are implemented to:\n\n* X - fields are defined in the x axis.\n* XZ - fields are defined in the xz plane, being z the propagation direction.\n* XY - fields are defined in the xy transversal plane.\n* XYZ - fields are defined in the xyz volume.\n\nEach technique present three modules:\n\n* sources: Generation of light.\n* masks: Masks and Diffractive Optical elements.\n* fields: Propagation techniques, parameters and general functions.\n\nThe paraxial vector propagation techniques are implemented to:\n\n* XY - fields are defined in the xy transversal plane.\n\n\nSources\n========\n\nOne main part of this software is the generation of optical fields such as:\n\n* Plane waves.\n* Spherical waves.\n* Gaussian beams.\n* Bessel beams.\n* Aberrated beams.\n\nAlso, in the XY module the following sources are defined:\n\n* Vortex beams.\n* Laguerre beams.\n* Hermite-Gauss beams.\n* Zernike beams.\n* Bessel beams.\n\n.. image:: source.png\n :width: 400\n\n\nMasks\n=============\n\nAnother important part of Diffractio is the generation of masks and Diffractive Optical Elements such as:\n\n* Slits, double slits\n* Lenses, diffractive lenses, aspherical lenses.\n* Gratings, prisms, biprism\n* Rough surfaces, dust ks are defined as plane. However, in the XZ and XYZ frames, volumetric mask are also defined.\n\n\n.. image:: mask1.png\n :width: 400\n\n.. image:: mask2.png\n :width: 400\n\n\nFields\n=========\n\nIn these module, algorithms for propagation of light are implemented. We have implemented the following algorithms for light propagation:\n\n* **Rayleigh-Sommerfeld (RS)** which allows in a single step to propagate to a near or far observation plane, which allows fast computations. The fields and the masks must be defined in a plane.\n\n* **Beam propagation method (BPM)** which allows to analyze the propation of light in volumetric elements, such as spheres, cylinders and other complex forms.\n\n* **Fast Fourier Transform (FFT)** which allows, in a single step to determine the field at the far field.\n\n\n\nThe fields, masks and sources can be stored in files,\n\nAlso drawings can be easily obtained, for intensity, phase, fields, etc.\n\nIn some modules, videos can be generated for a better analysis of optical fields.\n\n.. image:: propagation.png\n :width: 400\n\n\nOther features\n=================\n\n* Intensity, MTF and other parameters are obtained from the optical fields.\n\n* Fields can be added and interference is produced. Masks can be multiplied, added and substracted in order to make complex structures\n\n* Resampling fields in order to analyze only areas of interest.\n\n* Save and load data for future analysis.\n\n* Rayleigh-Sommerfeld implementation is performed in multiprocessing for fast computation.\n\n* Polychromatic and extended source problems can also be analyzed using multiprocessing.\n\n\nParaxial vector beams\n==================================\n\nHere, we implement new classes where the fields $E_x$ and $E_y$ are generated and propagted using Rayleigh-Sommerfeld approach.\nAlso, simple and complex polarizing masks can be created.\n\n.. image:: vector_gauss_radial_fields.png\n :width: 700\n\n.. image:: vector_gauss_radial_stokes.png\n :width: 700\n\n\nAuthors\n---------------------------\n\n* Luis Miguel Sanchez Brea \n\n\n **Universidad Complutense de Madrid**,\n Faculty of Physical Sciences,\n Department of Optics\n Plaza de las ciencias 1,\n ES-28040 Madrid (Spain)\n\n.. image:: logoUCM.png\n :width: 125\n :align: right\n\n\n\nCiting\n---------------------------\n\nL.M. Sanchez Brea, \"Diffratio, python module for diffraction and interference optics\", https://pypi.org/project/diffractio/ (2019)\n\n\nReferences\n---------------------------\n\n* J. W. Goodman, Introduction to Fourier optics. McGraw-Hill, 1996.\n* F. Shen y A. Wang, \u00abFast-Fourier-transform based numerical integration method for the Rayleigh-Sommerfeld diffraction formula\u00bb, Applied Optics, vol. 45, n.\u00ba 6, pp. 1102\u20131110, 2006.\n* Z. Qiwen, Vectorial optical fields: Fundamentals and applications. World scientific, 2013.\n* B. E. Saleh y M. C. Teich, Fundamentals of photonics. John Wiley & Sons, 2019.\n* J. A. Ogilvy, Theory of Wave Scattering from Random Rough Surfaces.Adam Hilger, 1991.\n* \"Numerical Methods in Photonics Lecture Notes\". http://ecee.colorado.edu/~mcleod/teaching/nmip/lecturenotes.html.\n* Beam width: https://en.wikipedia.org/wiki/Beam_diameter\n\n\n\n\nCredits\n---------------------------\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n=======\nHistory\n=======\n\n0.0.0 (2017-01-01)\n------------------------\n\nPre-alpha state.\n\n* I have been developing and using the module diffractio for at least 5 years for teaching and research. It was in python2 version and not completely clear.\n\n\n0.0.1 (2019-02-09)\n------------------------\n\nPre-alpha state.\n\nModules are passed to python3.\n\n\n0.0.2 (2019-10-01)\n------------------------\nAlpha state\n\n * copyreg removed (previous not worked)\n * change fft to scipy: \"from scipy.fftpack import fft, ifft, fftshift\"\n\n\n First release on PyPI in pre-alpha state.\n\n\n\n0.0.5 (2019-10-06)\n------------------------\nAlpha state\n\n * Included vector paraxial (fields, sources, masks) modules, tests, and tutorial.\n\n\n * Modules\t= 9/10.\n * Functions \t= 9/10.\n * Tutorial \t= 7/10.\n * Examples \t= 4/10.\n * Tests \t= 9/10.\n * Drawing \t= 8/10.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/optbrea/diffractio/src/master/", "keywords": "diffractio,optics,diffraction,interference,Rayleigh-Sommerfeld,Beam Propagation Method,BPM", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "diffractio", "package_url": "https://pypi.org/project/diffractio/", "platform": "", "project_url": "https://pypi.org/project/diffractio/", "project_urls": { "Homepage": "https://bitbucket.org/optbrea/diffractio/src/master/" }, "release_url": "https://pypi.org/project/diffractio/0.0.6/", "requires_dist": null, "requires_python": "", "summary": "Optical Diffraction and Interference (scalar and vectorial)", "version": "0.0.6" }, "last_serial": 5999983, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "ec66846ed7f3427dac50a4a9166a4b12", "sha256": "4c9d30eb10b78e983ca71ea76f55e1f8383569c443bad17a55c343d47e6ee14d" }, "downloads": -1, "filename": "diffractio-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ec66846ed7f3427dac50a4a9166a4b12", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 121764, "upload_time": "2019-09-27T13:50:18", "url": "https://files.pythonhosted.org/packages/f1/e7/60e7c77ebee98f97f185f70b989eea7ff9a25a1bb0cf1effcef71ae00d93/diffractio-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e1d297529ab93a24ed7544c7f903f5f", "sha256": "0b1e29fdd2d0ba0bf9c80517716101d9f553cc6b3756d7aa98f97818f14005dd" }, "downloads": -1, "filename": "diffractio-0.0.1.tar.gz", "has_sig": false, "md5_digest": "2e1d297529ab93a24ed7544c7f903f5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17569250, "upload_time": "2019-09-27T13:50:22", "url": "https://files.pythonhosted.org/packages/da/c3/fac913bd521372fd3f28731325f218cff9a957963de0498ae28d2ed54cd5/diffractio-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "2a7c5356dcf32d346bbfadbae6325470", "sha256": "cb275620321141f6f74f9f707b0f3efff33d34bbef9bfa8afdf41de8b8e70377" }, "downloads": -1, "filename": "diffractio-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a7c5356dcf32d346bbfadbae6325470", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 119200, "upload_time": "2019-09-27T22:08:59", "url": "https://files.pythonhosted.org/packages/42/34/239add22208ba506e778fff63d645b510bca28afb08f6e25aca3bad99daf/diffractio-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "065dc28e20ce9e350dbeee1159ea79bd", "sha256": "0a900f0bfbd85c121b5c2a2075f611fb26c8caa2f77c03acf89300d781336f8b" }, "downloads": -1, "filename": "diffractio-0.0.2.tar.gz", "has_sig": false, "md5_digest": "065dc28e20ce9e350dbeee1159ea79bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17567714, "upload_time": "2019-09-27T22:09:11", "url": "https://files.pythonhosted.org/packages/a7/05/cdbd9e23da803982a2b56d6f69c57d92377855f3b855810a71a2c1e60466/diffractio-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "2dc6ffa831345e939993fe1c17296181", "sha256": "48c4d2edd28bd6391530a10b7a209365dd71e845bbb510b2cfab1f78d834d698" }, "downloads": -1, "filename": "diffractio-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2dc6ffa831345e939993fe1c17296181", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 118039, "upload_time": "2019-09-29T00:03:31", "url": "https://files.pythonhosted.org/packages/9c/45/732c3d256a83eb4f622715f164eb302ed29ae83e4d59664b265c3efbb697/diffractio-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f71dd82a3837995f8fef7592e361194", "sha256": "0b0bd85e32d4dd48ad707c061be1d872f729ec453e32e73a04c697fac002f666" }, "downloads": -1, "filename": "diffractio-0.0.3.tar.gz", "has_sig": false, "md5_digest": "6f71dd82a3837995f8fef7592e361194", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23760759, "upload_time": "2019-09-29T00:03:40", "url": "https://files.pythonhosted.org/packages/c9/3a/0722b155086d1f801387259b8dfa6bfd0a722de93dd33db188bda5dd5026/diffractio-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "27dc204d8ef8f0ced00361b3b7366b8a", "sha256": "c0783a309caa6ebcf57dfe181e15e28c383b5c898ef7ff5b3b4e563e3e022565" }, "downloads": -1, "filename": "diffractio-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "27dc204d8ef8f0ced00361b3b7366b8a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 116142, "upload_time": "2019-09-29T10:27:14", "url": "https://files.pythonhosted.org/packages/a3/75/f107a1ecd5bd8ab1edf3402dfee4673d7b21ca50f9a50645436c33df7774/diffractio-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd4f0b36e3ef7e3755cf8d7ebab67e2c", "sha256": "e9eb92bd504f537705df1a240804527f9ff9b6101a7566237f4a872123d222d2" }, "downloads": -1, "filename": "diffractio-0.0.4.tar.gz", "has_sig": false, "md5_digest": "fd4f0b36e3ef7e3755cf8d7ebab67e2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23758310, "upload_time": "2019-09-29T10:27:23", "url": "https://files.pythonhosted.org/packages/ab/b2/11262d3cbb8f58ace39ceb0a76f64edaabefea43fa88b2047630b8924c51/diffractio-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "7334c692fc598bacc93861fe3c359592", "sha256": "c1c2d0ab2a1b8030b4bbe4ca04c9d4372d9c428623d4e8377b7ac833d34a15d9" }, "downloads": -1, "filename": "diffractio-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7334c692fc598bacc93861fe3c359592", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 127593, "upload_time": "2019-10-07T14:53:34", "url": "https://files.pythonhosted.org/packages/2c/56/5471b4236d1dacb287b96a85063590f6e68566259e24d176e5c3ddde0105/diffractio-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "864601fc313d6296081a70f5b6cde9c4", "sha256": "6c95eee18f5072607e19571659380578dcc71ca5bd67df1f7000c83ebc551700" }, "downloads": -1, "filename": "diffractio-0.0.5.tar.gz", "has_sig": false, "md5_digest": "864601fc313d6296081a70f5b6cde9c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5454711, "upload_time": "2019-10-07T14:53:37", "url": "https://files.pythonhosted.org/packages/f0/60/055fe2161a242c7cdab89280c9c14fd7c48457552b9938e08c9479d18853/diffractio-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "b3436117f607257ae3bee3e9c40a7ab4", "sha256": "ecba053bed30855e713b4c0690064bdd5657f2c0ba6dd61e73062428751ae83c" }, "downloads": -1, "filename": "diffractio-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b3436117f607257ae3bee3e9c40a7ab4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 127353, "upload_time": "2019-10-19T14:29:50", "url": "https://files.pythonhosted.org/packages/b5/cc/483f99fc2b9a492666f9ef5a466a37443ccbd42656ef11246b416113a4c7/diffractio-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49dab79fdedb97a5045c05c8319b1ce7", "sha256": "4073d647c5f7f95fc70e621673f94bfd0128d4ad2b0ca23ea609c58b34d6ede6" }, "downloads": -1, "filename": "diffractio-0.0.6.tar.gz", "has_sig": false, "md5_digest": "49dab79fdedb97a5045c05c8319b1ce7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5697166, "upload_time": "2019-10-19T14:29:56", "url": "https://files.pythonhosted.org/packages/3c/ce/ee171f73b1a4719722effd8b80bad89d51f94f057c2db6d21a3d0ba021cd/diffractio-0.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b3436117f607257ae3bee3e9c40a7ab4", "sha256": "ecba053bed30855e713b4c0690064bdd5657f2c0ba6dd61e73062428751ae83c" }, "downloads": -1, "filename": "diffractio-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b3436117f607257ae3bee3e9c40a7ab4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 127353, "upload_time": "2019-10-19T14:29:50", "url": "https://files.pythonhosted.org/packages/b5/cc/483f99fc2b9a492666f9ef5a466a37443ccbd42656ef11246b416113a4c7/diffractio-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49dab79fdedb97a5045c05c8319b1ce7", "sha256": "4073d647c5f7f95fc70e621673f94bfd0128d4ad2b0ca23ea609c58b34d6ede6" }, "downloads": -1, "filename": "diffractio-0.0.6.tar.gz", "has_sig": false, "md5_digest": "49dab79fdedb97a5045c05c8319b1ce7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5697166, "upload_time": "2019-10-19T14:29:56", "url": "https://files.pythonhosted.org/packages/3c/ce/ee171f73b1a4719722effd8b80bad89d51f94f057c2db6d21a3d0ba021cd/diffractio-0.0.6.tar.gz" } ] }