├── .github └── workflows │ └── build_latex.yml ├── .gitlab-ci.yml ├── README.md ├── paper ├── biblio.bib ├── images │ ├── Cizmar_1.pdf │ ├── DMD_abberations_setup.pdf │ ├── DMD_decorrelation_T.pdf │ ├── MMF_ref.pdf │ ├── Zernike_1.pdf │ ├── Zernike_2.pdf │ ├── aberr_setup.pdf │ ├── blazing_number_VS_wavelength.pdf │ ├── dmd_45.pdf │ ├── dumping.pdf │ ├── grating_geom.pdf │ ├── gratings_blazed.pdf │ ├── gratings_flat.pdf │ ├── mu_108.pdf │ ├── mu_1d.pdf │ ├── mu_2d.pdf │ ├── mu_2d_108.pdf │ ├── mu_2d_76.pdf │ ├── mu_76.pdf │ ├── mu_vs_diffeff.pdf │ ├── phase_vibrations.pdf │ ├── pixel_1.jpg │ ├── pixel_2.png │ └── xtalk.pdf ├── iopart.cls ├── iopart12.clo ├── main.pdf ├── main.tex └── movies │ ├── movie_evol_n_zernike_psf.avi │ ├── stability_with_clamp_movie.avi │ └── stability_without_clamp_movie.avi ├── python ├── DMD_diffraction_effects.ipynb ├── Experimental_aberration_correction.ipynb ├── Simulation_aberration_correction.ipynb ├── data_correction_Zernike ├── movie_evol_n_zernike_psf.avi ├── movie_evol_n_zernike_psf.gif └── shrink_data.py └── ressources └── logos ├── gscholar.svg └── orcid.svg /.github/workflows/build_latex.yml: -------------------------------------------------------------------------------- 1 | name: Build LaTeX Documents 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | 11 | jobs: 12 | build-latex-main: 13 | runs-on: ubuntu-latest 14 | container: texlive/texlive 15 | 16 | steps: 17 | - name: Checkout Repository 18 | uses: actions/checkout@v2 19 | 20 | - name: Build LaTeX Document 21 | run: | 22 | cd paper 23 | latexmk -bibtex -pdf main.tex 24 | 25 | - name: Upload Artifact 26 | uses: actions/upload-artifact@v2 27 | with: 28 | name: main.pdf 29 | path: paper/main.pdf 30 | retention-days: 730 31 | 32 | build-latex-other-main: 33 | runs-on: ubuntu-latest 34 | container: texlive/texlive 35 | if: github.ref != 'refs/heads/main' 36 | 37 | steps: 38 | - name: Checkout Repository 39 | uses: actions/checkout@v2 40 | 41 | - name: Build LaTeX Document 42 | run: | 43 | cd paper 44 | latexmk -bibtex -pdf main.tex 45 | 46 | - name: Upload Artifact 47 | uses: actions/upload-artifact@v2 48 | with: 49 | name: main.pdf 50 | path: paper/main.pdf 51 | retention-days: 14 52 | 53 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | image: texlive/texlive 2 | 3 | stages: 4 | - build 5 | 6 | building-latex-main: 7 | stage: build 8 | script: 9 | - cd paper 10 | - latexmk -bibtex -pdf main.tex 11 | artifacts: 12 | paths: 13 | - "paper/main.pdf" 14 | expire_in: 2 years 15 | only: 16 | - main 17 | 18 | building-latex-other-main: 19 | stage: build 20 | script: 21 | - cd paper 22 | - latexmk -bibtex -pdf main.tex 23 | artifacts: 24 | paths: 25 | - "paper/main.pdf" 26 | expire_in: 2 weeks 27 | except: 28 | - main 29 | # building-markdown-master: 30 | # image: ntwrkguru/pandoc-gitlab-ci 31 | # stage: build 32 | # script: 33 | # - pandoc -s ./paper/main.tex -o ./temp.md 34 | # artifacts: 35 | # paths: 36 | # - "README.md" 37 | # expire_in: 1 hour 38 | # only: 39 | # - main 40 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [_A practical guide to Digital Micro-mirror Devices (DMDs) for wavefront shaping_](https://arxiv.org/abs/2312.01352) 2 | 3 | 4 | 5 | ## **S. M. Popoff [![](./ressources/logos//orcid.svg)](https://orcid.org/0000-0002-7199-9814) [![](./ressources/logos/gscholar.svg)](https://scholar.google.com/citations?user=2OuzjokAAAAJ), M. W. Matthès [![](./ressources/logos/gscholar.svg)](https://scholar.google.com/citations?user=daSSCjUAAAAJ), Y. Bromberg [![](./ressources/logos//orcid.svg)](https://orcid.org/0000-0003-2565-7394) [![](./ressources/logos/gscholar.svg)](https://scholar.google.com/citations?user=S5znnzoAAAAJ), and R. Gutiérrez-Cuevas [![](./ressources/logos/orcid.svg)](https://orcid.org/0000-0002-3451-6684) [![](./ressources/logos/gscholar.svg)](https://scholar.google.com/citations?user=7BSmVYkAAAAJ)** 6 | 7 | ``` 8 | @misc{popoff2023DMDtutorial, 9 | title={{A practical guide to Digital Micro-mirror Devices (DMDs) for wavefront shaping}}, 10 | author={Popoff, Sébastien M. and Matthès, Maxime W. and Bromberg, Yaron and Gutiérrez-Cuevas, Rodrigo}, 11 | year={2023}, 12 | eprint={2311.17496}, 13 | archivePrefix={arXiv}, 14 | primaryClass={physics.optics}, 15 | doi={10.48550/arXiv.2311.17496}, 16 | url={https://doi.org/10.48550/arXiv.2311.17496}} 17 | ``` 18 | 19 | ## Supplementary animation: 20 | 21 | | ![video](./python/movie_evol_n_zernike_psf.gif) | 22 | | :------------------------------------------------------------------------------------------: | 23 | | **Evolution of the PSF with the number of Zernike polynomials (Nz) usef for the correction** | 24 | 25 | ## [/paper](paper/): Latex sources for the article 26 | 27 | Download last PDF version of the article [here](./paper/main.pdf) 28 | 29 | ## [/python](python/): Python examples 30 | 31 | ### Global requirements 32 | 33 | - scipy 34 | - numpy 35 | - matplotlib 36 | 37 | Install with: 38 | 39 | ```bash 40 | pip install scipy, numpy 41 | ``` 42 | 43 | or 44 | 45 | ```bash 46 | conda install scipy, numpy 47 | ``` 48 | 49 | ### 1. [DMD_diffraction_effects.ipynb.ipynb](python/DMD_diffraction_effects.ipynb.ipynb): Simulation of DMD diffraction effects 50 | 51 | See also our online tool on [wavevrontshaping.net](https://www.wavefrontshaping.net/post/id/49) 52 | 53 | ### 2. [Experimental_aberration_correction.ipynb](python/Experimental_aberration_correction.ipynb): Data analysis of the experimental characterization of the DMD aberrations 54 | 55 | ### Requirements \[optional - for video\] 56 | 57 | - cv2 58 | 59 | ```bash 60 | pip install opencv-python 61 | ``` 62 | 63 | or 64 | 65 | ```bash 66 | conda install -c anaconda opencv 67 | ``` 68 | 69 | ### 3. [Simulation_aberration_correction.ipynb](python/Simulation_aberration_correction.ipynb): Simulation of aberration compensation optimization 70 | 71 | ### Additional requirements 72 | 73 | - aotools (for Zernike polynomials) 74 | 75 | ```bash 76 | pip install scipy, numpy, aotools 77 | ``` 78 | 79 | ### Requirements \[optional\] 80 | 81 | - EasyOptimization 82 | 83 | ```bash 84 | pip install git+https://gitlab.institut-langevin.espci.fr/spopoff/EasyOptimization.git 85 | ``` 86 | -------------------------------------------------------------------------------- /paper/biblio.bib: -------------------------------------------------------------------------------- 1 | @article{Rudolf2021thermal, 2 | author = {Rudolf, B. and Du, Y. and Turtaev, S. and Leite, I. T. and {\v C}i{\v z}m{'a}r, T.}, 3 | doi = {10.1364/oe.442284}, 4 | files = {[\textquotesingle rudolf2021thermal.pdf\textquotesingle ]}, 5 | issue = {25}, 6 | journal = {Optics Express}, 7 | language = {en}, 8 | month = {12}, 9 | pages = {41808}, 10 | publisher = {The Optical Society}, 11 | title = {Thermal stability of wavefront shaping using a DMD as a spatial light modulator}, 12 | url = {http://dx.doi.org/10.1364/oe.442284}, 13 | volume = {29}, 14 | year = {2021} 15 | } 16 | @article{goorden2014superpixel, 17 | author = {Goorden, S. A. and Bertolotti, J. and Mosk, A. P.}, 18 | journal = {Optics Express}, 19 | title = {Superpixel-based spatial amplitude and phase modulation using a digital micromirror device}, 20 | year = {2014}, 21 | month = {jul}, 22 | number = {15}, 23 | pages = {17999}, 24 | volume = {22}, 25 | doi = {10.1364/oe.22.017999}, 26 | publisher = {The Optical Society} 27 | } 28 | 29 | @misc{SI, 30 | title = {{Supplemetary Material for `A practical guide to Digital Micro-mirror Devices (DMDs) for wavefront shaping'}}, 31 | author = {Popoff, S. M. and Matthès, M. W. and Bromberg, Y. and Gutiérrez-Cuevas, R.}, 32 | howpublished = {https://github.com/wavefrontshaping/tutorial-DMD-setup-2023} 33 | } 34 | 35 | @misc{popoffDMDDiffractionTool, 36 | title = {{{DMD Diffraction Tool}}}, 37 | author = {Popoff, S. M.}, 38 | journal = {wavefrontshaping.net}, 39 | urldate = {2023-11-09}, 40 | abstract = {Wavefrontshaping.net is dedicated to scientific applications of wavefront shaping techniques in complex media. Discover highlights of recent papers, publication databases, tutorials and more!}, 41 | howpublished = {https://www.wavefrontshaping.net/post/id/49}, 42 | file = {/home/spopoff/Zotero/storage/4ZMY6PV8/49.html} 43 | } 44 | 45 | @article{Lee2023compensation, 46 | author = {Lee, B.-R. and Marichal-Hern{'a}ndez, J. G. and Rodr{'\i}guez-Ramos, J. M. and Venkel, T. and Son, J.-Y.}, 47 | doi = {10.1016/j.optmat.2023.113863}, 48 | files = {[\textquotesingle lee2023compensation-a.pdf\textquotesingle ]}, 49 | journal = {Optical Materials}, 50 | language = {en}, 51 | month = {6}, 52 | pages = {113863}, 53 | publisher = {Elsevier BV}, 54 | title = {Compensation of wavefront aberration introduced by DMDs’ operation principle}, 55 | url = {http://dx.doi.org/10.1016/j.optmat.2023.113863}, 56 | volume = {140}, 57 | year = {2023} 58 | } 59 | 60 | 61 | @article{Zhuang2020, 62 | doi = {10.1142/s1793545820300116}, 63 | url = {https://doi.org/10.1142/s1793545820300116}, 64 | year = {2020}, 65 | month = aug, 66 | publisher = {World Scientific Pub Co Pte Ltd}, 67 | volume = {13}, 68 | number = {06}, 69 | author = {Zhuang, Z. and Ho, H. P.}, 70 | title = {Application of digital micromirror devices ({DMD}) in biomedical instruments}, 71 | journal = {Journal of Innovative Optical Health Sciences} 72 | } 73 | 74 | 75 | @misc{Gutierrez2024DMD, 76 | author = {Gutiérrez-Cuevas, R. and Popoff, S. M.}, 77 | title = {Binary holograms for shaping light with digital micromirror devices}, 78 | year = {2023}, 79 | eprint = {2311.16685}, 80 | archiveprefix = {arXiv}, 81 | primaryclass = {physics.optics}, 82 | url = {https://doi.org/10.48550/arXiv.2311.16685}, 83 | doi = {10.48550/arXiv.2311.16685} 84 | } 85 | 86 | @article{Park2015properties, 87 | author = {Park, M.-C. and Lee, B.-R. and Son, J.-Y. and Chernyshov, O.}, 88 | doc_url = {http://www.tandfonline.com/doi/pdf/10.1080/09500340.2015.1054445}, 89 | doi = {10.1080/09500340.2015.1054445}, 90 | files = {[\textquotesingle park2015properties-a.pdf\textquotesingle ]}, 91 | issue = {19}, 92 | journal = {Journal of Modern Optics}, 93 | language = {en}, 94 | month = {11}, 95 | pages = {1600--1607}, 96 | publisher = {Informa UK Limited}, 97 | title = {Properties of DMDs for holographic displays}, 98 | url = {http://dx.doi.org/10.1080/09500340.2015.1054445}, 99 | volume = {62}, 100 | year = {2015} 101 | } 102 | 103 | @misc{JacksonDMD, 104 | author = {Jackson, J. D.}, 105 | files = {[]}, 106 | title = {Visual Analysis of a Texas Instruments Digital Micromirror Device}, 107 | url = {http://www2.optics.rochester.edu/workgroups/cml/opt307/spr05/john/}, 108 | urldate = {2023-09-18}, 109 | note = {http://www2.optics.rochester.edu/workgroups/cml/opt307/spr05/john/, Accessed: 2021-09-18} 110 | } 111 | 112 | @article{Cox2021converting, 113 | author = {Cox, M. A. and Drozdov, A. V.}, 114 | doi = {10.1364/ao.412729}, 115 | files = {[\textquotesingle cox2021converting.pdf\textquotesingle ]}, 116 | issue = {2}, 117 | journal = {Applied Optics}, 118 | language = {en}, 119 | month = {1}, 120 | pages = {465}, 121 | publisher = {Optica Publishing Group}, 122 | title = {Converting a Texas Instruments {{DLP4710 DLP}} evaluation module into a spatial light modulator}, 123 | url = {http://dx.doi.org/10.1364/ao.412729}, 124 | volume = {60}, 125 | year = {2021} 126 | } 127 | 128 | @inproceedings{hofling2004alp, 129 | title = {{ALP: universal DMD controller for metrology and testing}}, 130 | author = {Hofling, R. and Ahl, E.}, 131 | booktitle = {Liquid Crystal Materials, Devices, and Applications X and Projection Displays X}, 132 | volume = {5289}, 133 | pages = {322--329}, 134 | year = {2004}, 135 | organization = {SPIE} 136 | } 137 | 138 | 139 | @misc{vialux, 140 | author = {ViALUX Messtechnik and Bildverarbeitung GmbH}, 141 | title = {Home ViALUX GmbH}, 142 | year = {}, 143 | url = {https://www.vialux.de/en/index.html}, 144 | urldate = {2023-10-30} 145 | } 146 | 147 | @software{popoff2016alp4lib, 148 | author = {Popoff, S. M.}, 149 | doi = {10.5281/zenodo.1160714}, 150 | title = {ALP4lib: A Python module to control Vialux DMDs}, 151 | url = {https://doi.org/10.5281/zenodo.1160714}, 152 | year = {2016} 153 | } 154 | 155 | @inproceedings{Dudley2003emerging, 156 | author = {Dudley, D. and Duncan, W. M. and Slaughter, J.}, 157 | booktitle = {Micromachining and Microfabrication}, 158 | doi = {10.1117/12.480761}, 159 | files = {[\textquotesingle dudley2003emerging.pdf\textquotesingle ]}, 160 | journal = {MOEMS Display and Imaging Systems}, 161 | month = {1}, 162 | publisher = {SPIE}, 163 | title = {Emerging digital micromirror device (DMD) applications}, 164 | url = {http://dx.doi.org/10.1117/12.480761}, 165 | venue = {San Jose, CA}, 166 | year = {2003} 167 | } 168 | 169 | @article{vellekoop2007focusing, 170 | author = {Vellekoop, I. M. and Mosk, A. P.}, 171 | doi = {10.1364/ol.32.002309}, 172 | journal = {Optics Letters}, 173 | month = {aug}, 174 | number = {16}, 175 | pages = {2309}, 176 | publisher = {The Optical Society}, 177 | title = {Focusing coherent light through opaque strongly scattering media}, 178 | url = {https://doi.org/10.1364\%2Fol.32.002309}, 179 | volume = {32}, 180 | year = {2007} 181 | } 182 | 183 | @article{Scholes2019structured, 184 | author = {Scholes, S. and Kara, R. and Pinnell, J. and Rodr'{\i}guez-Fajardo, V. and Forbes, A.}, 185 | doi = {10.1117/1.oe.59.4.041202}, 186 | files = {['scholes2019structured.pdf']}, 187 | issue = {04}, 188 | journal = {Optical Engineering}, 189 | month = {11}, 190 | pages = {1}, 191 | publisher = {SPIE-Intl Soc Optical Eng}, 192 | title = {Structured light with digital micromirror devices: a guide to best practice}, 193 | url = {http://dx.doi.org/10.1117/1.oe.59.4.041202}, 194 | volume = {59}, 195 | year = {2019} 196 | } 197 | 198 | @article{Cuche2000spatial, 199 | author = {Cuche, E. and Marquet, P. and Depeursinge, C.}, 200 | doi = {10.1364/ao.39.004070}, 201 | files = {[\textquotesingle cuche2000spatial.pdf\textquotesingle ]}, 202 | issue = {23}, 203 | journal = {Applied Optics}, 204 | language = {en}, 205 | month = {8}, 206 | pages = {4070}, 207 | publisher = {The Optical Society}, 208 | title = {Spatial filtering for zero-order and twin-image elimination in digital off-axis holography}, 209 | url = {http://dx.doi.org/10.1364/ao.39.004070}, 210 | volume = {39}, 211 | year = {2000} 212 | } 213 | 214 | @article{airy1835diffraction, 215 | title = {On the diffraction of an object-glass with circular aperture}, 216 | author = {Airy, George Biddell}, 217 | journal = {Transactions of the Cambridge Philosophical Society}, 218 | volume = {5}, 219 | pages = {283}, 220 | year = {1835} 221 | } 222 | 223 | @misc{github, 224 | author = {Popoff, S. M. and Guti{\'e}rrez-Cuevas, R.}, 225 | title = {Respoitory for the paper "A practical guide to Digital Micro-mirror Devices (DMDs) for wavefront shaping"}, 226 | year = {2013}, 227 | publisher = {GitHub}, 228 | journal = {GitHub repository}, 229 | howpublished = {\url{https://https://github.com/wavefrontshaping/tutorial-DMD-setup-2023}} 230 | } 231 | 232 | @article{Casini2014on, 233 | author = {Casini, R. and Nelson, P. G.}, 234 | doi = {10.1364/josaa.31.002179}, 235 | files = {['casini2014on.pdf']}, 236 | issue = {10}, 237 | journal = {Journal of the Optical Society of America A}, 238 | language = {en}, 239 | month = {10}, 240 | pages = {2179}, 241 | publisher = {The Optical Society}, 242 | title = {On the intensity distribution function of blazed reflective diffraction gratings}, 243 | url = {http://dx.doi.org/10.1364/josaa.31.002179}, 244 | volume = {31}, 245 | year = {2014} 246 | } 247 | 248 | @misc{WFSnet_diffraction, 249 | author = {Popoff, S. M.}, 250 | title = {Setting up a DMD: Diffraction effects}, 251 | url = {https://www.wavefrontshaping.net/post/id/21}, 252 | urldate = {2023-09-18}, 253 | note = {www.wavefrontshaping.net/post/id/21, Accessed: 2021-09-18} 254 | } 255 | 256 | @misc{TI, 257 | author = {Texas Instruments}, 258 | title = {Texas Instruments {{DLP}} Display and Projection Chipset Selection Guide}, 259 | url = {https://www.ti.com/lit/sg/sprt736d/sprt736d.pdf}, 260 | urldate = {2023-09-18}, 261 | note = {/www.ti.com/lit/sg/sprt736d/sprt736d.pdf, Accessed: 2021-09-18} 262 | } 263 | 264 | @article{Wang2023diffraction, 265 | author = {Wang, X. and Zhang, H.}, 266 | doi = {10.3390/photonics10020130}, 267 | files = {['wang2023diffraction.pdf']}, 268 | issue = {2}, 269 | journal = {Photonics}, 270 | language = {en}, 271 | month = {1}, 272 | pages = {130}, 273 | publisher = {MDPI AG}, 274 | title = {Diffraction Characteristics of a Digital Micromirror Device for Computer Holography Based on an Accurate Three-Dimensional Phase Model}, 275 | url = {http://dx.doi.org/10.3390/photonics10020130}, 276 | volume = {10}, 277 | year = {2023} 278 | } 279 | 280 | 281 | @article{lee1979binary, 282 | author = {Lee, W.-H.}, 283 | doi = {10.1364/ao.18.003661}, 284 | files = {['lee1979binary.pdf']}, 285 | issue = {21}, 286 | journal = {Applied Optics}, 287 | language = {en}, 288 | month = {11}, 289 | pages = {3661}, 290 | publisher = {Optica Publishing Group}, 291 | title = {Binary computer-generated holograms}, 292 | url = {http://dx.doi.org/10.1364/ao.18.003661}, 293 | volume = {18}, 294 | year = {1979} 295 | } 296 | 297 | @article{Popoff2010Measuring, 298 | author = {S. M. Popoff and G. Lerosey and R. Carminati and M. Fink and A. C. Boccara and S. Gigan}, 299 | doi = {10.1103/physrevlett.104.100601}, 300 | files = {['Popoff2010Measuring.pdf']}, 301 | journal = {Physical Review Letters}, 302 | month = {mar}, 303 | number = {10}, 304 | publisher = {American Physical Society (\lbrace{}APS\rbrace{})}, 305 | title = {Measuring the Transmission Matrix in Optics: An Approach to the Study and Control of Light Propagation in Disordered Media}, 306 | url = {https://doi.org/10.1103\%2Fphysrevlett.104.100601}, 307 | volume = {104}, 308 | year = {2010}, 309 | } 310 | 311 | @article{Brown2021multicolor, 312 | author = {Brown, P. T. and Kruithoff, R. and Seedorf, G. J. and Shepherd, D. P.}, 313 | doi = {10.1364/boe.422703}, 314 | files = {['brown2021multicolor.pdf']}, 315 | issue = {6}, 316 | journal = {Biomedical Optics Express}, 317 | language = {en}, 318 | month = {6}, 319 | pages = {3700}, 320 | publisher = {Optica Publishing Group}, 321 | title = {Multicolor structured illumination microscopy and quantitative control of polychromatic light with a digital micromirror device}, 322 | url = {http://dx.doi.org/10.1364/boe.422703}, 323 | volume = {12}, 324 | year = {2021} 325 | } 326 | 327 | @article{Matthes2019Optical, 328 | author = {Matthès, M. W. and del Hougne, P. and de Rosny, J. and Lerosey, G. and Popoff, S. M.}, 329 | doc_url = {https://www.osapublishing.org/viewmedia.cfm?URI=optica-6-4-465\&seq=0}, 330 | doi = {10.1364/OPTICA.6.000465}, 331 | files = {[\textquotesingle matthes2019optical.pdf\textquotesingle , \textquotesingle matthes2019optical-b.pdf\textquotesingle ]}, 332 | issue = {4}, 333 | journal = {Optica}, 334 | month = {04}, 335 | title = {Optical complex media as universal reconfigurable linear operators}, 336 | volume = {6}, 337 | year = {2019} 338 | } 339 | 340 | @article{Zernike1934beugungstheorie, 341 | author = {Zernike, von F.}, 342 | doc_url = {https://api.elsevier.com/content/article/PII:S0031891434802595?httpAccept=text/plain}, 343 | doi = {10.1016/s0031-8914(34)80259-5}, 344 | issue = {7-12}, 345 | journal = {Physica}, 346 | language = {de}, 347 | month = {5}, 348 | pages = {689--704}, 349 | publisher = {Elsevier BV}, 350 | title = {Beugungstheorie des schneidenver-fahrens und seiner verbesserten form, der phasenkontrastmethode}, 351 | url = {http://dx.doi.org/10.1016/s0031-8914(34)80259-5}, 352 | volume = {1}, 353 | year = {1934} 354 | } 355 | 356 | @inproceedings{hornbeck1997digital, 357 | title = {Digital light processing for high-brightness high-resolution applications}, 358 | author = {Hornbeck, Larry J}, 359 | booktitle = {Projection Displays III}, 360 | volume = {3013}, 361 | pages = {27--40}, 362 | year = {1997}, 363 | organization = {SPIE} 364 | } 365 | 366 | 367 | 368 | @article{gauthier2016direct, 369 | title = {Direct imaging of a digital-micromirror device for configurable microscopic optical potentials}, 370 | author = {Gauthier, G. and Lenton, I. and Parry, N. M. and Baker, M. and Davis, M. J. and Rubinsztein-Dunlop, H. and Neely, T. W.}, 371 | journal = {Optica}, 372 | volume = {3}, 373 | number = {10}, 374 | pages = {1136--1143}, 375 | year = {2016}, 376 | publisher = {Optica Publishing Group} 377 | } 378 | 379 | 380 | @article{yoon2018emerging, 381 | title = {Emerging applications of digital micromirror devices in biophotonic fields}, 382 | author = {Yoon, T. and Kim, C.-S. and Kim, K. and Choi, J.-r.}, 383 | journal = {Optics \& Laser Technology}, 384 | volume = {104}, 385 | pages = {17--25}, 386 | year = {2018}, 387 | publisher = {Elsevier} 388 | } 389 | 390 | 391 | @article{cha2000nontranslational, 392 | title = {Nontranslational three-dimensional profilometry by chromatic confocal microscopy with dynamically configurable micromirror scanning}, 393 | author = {Cha, S. and Lin, P. C. and Zhu, L. and Sun, P.-C. and Fainman, Y.}, 394 | journal = {Applied optics}, 395 | volume = {39}, 396 | number = {16}, 397 | pages = {2605--2613}, 398 | year = {2000}, 399 | publisher = {Optica Publishing Group} 400 | } 401 | 402 | 403 | @article{Townson2019aotools, 404 | author = {Townson, M. J. and Farley, O. J. D. and Orban de Xivry, G. and Osborn, J. and Reeves, A. P.}, 405 | doi = {10.1364/oe.27.031316}, 406 | files = {['townson2019aotools.pdf']}, 407 | issue = {22}, 408 | journal = {Optics Express}, 409 | language = {en}, 410 | month = {10}, 411 | pages = {31316}, 412 | publisher = {The Optical Society}, 413 | title = {AOtools: a Python package for adaptive optics modelling and analysis}, 414 | url = {http://dx.doi.org/10.1364/oe.27.031316}, 415 | volume = {27}, 416 | year = {2019} 417 | } -------------------------------------------------------------------------------- /paper/images/Cizmar_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/Cizmar_1.pdf -------------------------------------------------------------------------------- /paper/images/DMD_abberations_setup.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/DMD_abberations_setup.pdf -------------------------------------------------------------------------------- /paper/images/DMD_decorrelation_T.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/DMD_decorrelation_T.pdf -------------------------------------------------------------------------------- /paper/images/MMF_ref.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/MMF_ref.pdf -------------------------------------------------------------------------------- /paper/images/Zernike_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/Zernike_1.pdf -------------------------------------------------------------------------------- /paper/images/Zernike_2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/Zernike_2.pdf -------------------------------------------------------------------------------- /paper/images/aberr_setup.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/aberr_setup.pdf -------------------------------------------------------------------------------- /paper/images/blazing_number_VS_wavelength.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/blazing_number_VS_wavelength.pdf -------------------------------------------------------------------------------- /paper/images/dmd_45.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/dmd_45.pdf -------------------------------------------------------------------------------- /paper/images/dumping.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/dumping.pdf -------------------------------------------------------------------------------- /paper/images/grating_geom.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/grating_geom.pdf -------------------------------------------------------------------------------- /paper/images/gratings_blazed.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/gratings_blazed.pdf -------------------------------------------------------------------------------- /paper/images/gratings_flat.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/gratings_flat.pdf -------------------------------------------------------------------------------- /paper/images/mu_108.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/mu_108.pdf -------------------------------------------------------------------------------- /paper/images/mu_1d.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/mu_1d.pdf -------------------------------------------------------------------------------- /paper/images/mu_2d.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/mu_2d.pdf -------------------------------------------------------------------------------- /paper/images/mu_2d_108.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/mu_2d_108.pdf -------------------------------------------------------------------------------- /paper/images/mu_2d_76.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/mu_2d_76.pdf -------------------------------------------------------------------------------- /paper/images/mu_76.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/mu_76.pdf -------------------------------------------------------------------------------- /paper/images/mu_vs_diffeff.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/mu_vs_diffeff.pdf -------------------------------------------------------------------------------- /paper/images/phase_vibrations.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/phase_vibrations.pdf -------------------------------------------------------------------------------- /paper/images/pixel_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/pixel_1.jpg -------------------------------------------------------------------------------- /paper/images/pixel_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/pixel_2.png -------------------------------------------------------------------------------- /paper/images/xtalk.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/images/xtalk.pdf -------------------------------------------------------------------------------- /paper/iopart.cls: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `iopart.cls' 3 | %% 4 | %% This file is distributed in the hope that it will be useful, 5 | %% but WITHOUT ANY WARRANTY; without even the implied warranty of 6 | %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7 | %% 8 | %% Licensed under the LPPL: http://www.latex-project.org/lppl.txt 9 | %% Current Maintainer: IOP Publishing Ltd 10 | %% 11 | %% \CharacterTable 12 | %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z 13 | %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z 14 | %% Digits \0\1\2\3\4\5\6\7\8\9 15 | %% Exclamation \! Double quote \" Hash (number) \# 16 | %% Dollar \$ Percent \% Ampersand \& 17 | %% Acute accent \' Left paren \( Right paren \) 18 | %% Asterisk \* Plus \+ Comma \, 19 | %% Minus \- Point \. Solidus \/ 20 | %% Colon \: Semicolon \; Less than \< 21 | %% Equals \= Greater than \> Question mark \? 22 | %% Commercial at \@ Left bracket \[ Backslash \\ 23 | %% Right bracket \] Circumflex \^ Underscore \_ 24 | %% Grave accent \` Left brace \{ Vertical bar \| 25 | %% Right brace \} Tilde \~} 26 | % 27 | \NeedsTeXFormat{LaTeX2e} 28 | \ProvidesClass{iopart}[1996/06/10 v0.0 IOP Journals LaTeX article class] 29 | \newcommand\@ptsize{0} 30 | \newif\if@restonecol 31 | \newif\if@titlepage 32 | \newif\ifiopams 33 | \@titlepagefalse 34 | \DeclareOption{a4paper} 35 | {\setlength\paperheight {297mm}% 36 | \setlength\paperwidth {210mm}} 37 | \DeclareOption{letterpaper} 38 | {\setlength\paperheight {11in}% 39 | \setlength\paperwidth {8.5in}} 40 | \DeclareOption{landscape} 41 | {\setlength\@tempdima {\paperheight}% 42 | \setlength\paperheight {\paperwidth}% 43 | \setlength\paperwidth {\@tempdima}} 44 | \DeclareOption{10pt}{\renewcommand\@ptsize{0}} 45 | \DeclareOption{11pt}{\renewcommand\@ptsize{2}} % No 11pt version 46 | \DeclareOption{12pt}{\renewcommand\@ptsize{2}} 47 | \DeclareOption{draft}{\setlength\overfullrule{5pt}} 48 | \DeclareOption{final}{\setlength\overfullrule{0pt}} 49 | \DeclareOption{titlepage}{\@titlepagetrue} 50 | \DeclareOption{notitlepage}{\@titlepagefalse} 51 | \ExecuteOptions{letterpaper,final} 52 | \ProcessOptions 53 | \DeclareMathAlphabet{\bi}{OML}{cmm}{b}{it} 54 | \DeclareMathAlphabet{\bcal}{OMS}{cmsy}{b}{n} 55 | \input{iopart1\@ptsize.clo} 56 | \setlength\lineskip{1\p@} 57 | \setlength\normallineskip{1\p@} 58 | \renewcommand\baselinestretch{} 59 | \setlength\parskip{0\p@ \@plus \p@} 60 | \@lowpenalty 51 61 | \@medpenalty 151 62 | \@highpenalty 301 63 | \setlength\parindent{2em} 64 | \setcounter{topnumber}{8} 65 | \renewcommand\topfraction{1} 66 | \setcounter{bottomnumber}{3} 67 | \renewcommand\bottomfraction{.99} 68 | \setcounter{totalnumber}{8} 69 | \renewcommand\textfraction{0.01} 70 | \renewcommand\floatpagefraction{.8} 71 | \setcounter{dbltopnumber}{6} 72 | \renewcommand\dbltopfraction{1} 73 | \renewcommand\dblfloatpagefraction{.8} 74 | % 75 | \pretolerance=5000 76 | \tolerance=8000 77 | % 78 | % Headings for all pages apart from first 79 | % 80 | \def\ps@headings{\let\@oddfoot\@empty 81 | \let\@evenfoot\@empty 82 | \def\@evenhead{\thepage\hfil\itshape\rightmark}% 83 | \def\@oddhead{{\itshape\leftmark}\hfil\thepage}% 84 | \let\@mkboth\markboth 85 | \let\sectionmark\@gobble 86 | \let\subsectionmark\@gobble} 87 | % 88 | % Headings for first page 89 | % 90 | \def\ps@myheadings{\let\@oddfoot\@empty\let\@evenfoot\@empty 91 | \let\@oddhead\@empty\let\@evenhead\@empty 92 | \let\@mkboth\@gobbletwo 93 | \let\sectionmark\@gobble 94 | \let\subsectionmark\@gobble} 95 | % 96 | % \maketitle just ends page 97 | % 98 | \newcommand\maketitle{\newpage} 99 | % 100 | % Article titles 101 | % 102 | % Usage: \title[Short title]{Full title} 103 | % [Short title] is optional; use where title is too long 104 | % or contains footnotes, 50 characters maximum 105 | % 106 | \renewcommand{\title}{\@ifnextchar[{\@stitle}{\@ftitle}} 107 | \def\@stitle[#1]#2{\markboth{#1}{#1}% 108 | \thispagestyle{myheadings}% 109 | \vspace*{3pc}{\exhyphenpenalty=10000\hyphenpenalty=10000 110 | \Large\raggedright\noindent 111 | \bf#2\par}} 112 | \def\@ftitle#1{\markboth{#1}{#1}% 113 | \thispagestyle{myheadings}% 114 | \vspace*{3pc}{\exhyphenpenalty=10000\hyphenpenalty=10000 115 | \Large\raggedright\noindent 116 | \bf#1\par}} 117 | % 118 | % Can use \paper instead of \title 119 | % 120 | \let\paper=\title 121 | % 122 | % Generic title command for articles other than papers 123 | % 124 | % Usage: \article[Short title]{Article Type}{Full title} 125 | % [Short title] is optional; use where title is too long 126 | % or contains footnotes, 50 characters maximum 127 | % 128 | \newcommand{\article}{\@ifnextchar[{\@sarticle}{\@farticle}} 129 | \def\@sarticle[#1]#2#3{\markboth{#1}{#1}% 130 | \thispagestyle{myheadings}% 131 | \vspace*{.5pc}% 132 | {\parindent=\mathindent \bf #2\par}% 133 | \vspace*{1.5pc}% 134 | {\exhyphenpenalty=10000\hyphenpenalty=10000 135 | \Large\raggedright\noindent 136 | \bf#3\par}}% 137 | \def\@farticle#1#2{\markboth{#2}{#2}% 138 | \thispagestyle{myheadings}% 139 | \vspace*{.5pc}% 140 | {\parindent=\mathindent \bf #1\par}% 141 | \vspace*{1.5pc}% 142 | {\exhyphenpenalty=10000\hyphenpenalty=10000 143 | \Large\raggedright\noindent 144 | \bf#2\par}}% 145 | % 146 | % Letters to the Editor 147 | % 148 | % Usage \letter{Full title} 149 | % No short title is required for Letters 150 | % 151 | \def\letter#1{\article[Letter to the Editor]{Letter to the Editor}{#1}} 152 | % 153 | % Fast Track Communications (added by sxb 9 March 2011) 154 | % 155 | % Usage \ftc{Full title} - there's no short title 156 | \def\ftc#1{\article[Fast Track Communication]{Fast Track Communication}{#1}} 157 | % 158 | % 159 | % Review articles 160 | % 161 | % Usage: \review[Short title]{Full title} 162 | % [Short title] is optional; use where title is too long 163 | % or contains footnotes, 50 characters maximum 164 | % 165 | \def\review{\@ifnextchar[{\@sreview}{\@freview}} 166 | \def\@sreview[#1]#2{\@sarticle[#1]{Review Article}{#2}} 167 | \def\@freview#1{\@farticle{Review Article}{#1}} 168 | % 169 | % Topical Review 170 | % 171 | % Usage: \topical[Short title]{Full title} 172 | % [Short title] is optional; use where title is too long 173 | % or contains footnotes, 50 characters maximum 174 | % 175 | \def\topical{\@ifnextchar[{\@stopical}{\@ftopical}} 176 | \def\@stopical[#1]#2{\@sarticle[#1]{Topical Review}{#2}} 177 | \def\@ftopical#1{\@farticle{Topical Review}{#1}} 178 | % 179 | % Comments 180 | % 181 | % Usage: \comment[Short title]{Full title} 182 | % [Short title] is optional; use where title is too long 183 | % or contains footnotes, 50 characters maximum 184 | % 185 | \def\comment{\@ifnextchar[{\@scomment}{\@fcomment}} 186 | \def\@scomment[#1]#2{\@sarticle[#1]{Comment}{#2}} 187 | \def\@fcomment#1{\@farticle{Comment}{#1}} 188 | % 189 | % Rapid Communications 190 | % 191 | % Usage: \rapid[Short title]{Full title} 192 | % [Short title] is optional; use where title is too long 193 | % or contains footnotes, 50 characters maximum 194 | % 195 | \def\rapid{\@ifnextchar[{\@srapid}{\@frapid}} 196 | \def\@srapid[#1]#2{\@sarticle[#1]{Rapid Communication}{#2}} 197 | \def\@frapid#1{\@farticle{Rapid Communication}{#1}} 198 | % 199 | % Notes 200 | % 201 | % Usage: \note[Short title]{Full title} 202 | % [Short title] is optional; use where title is too long 203 | % or contains footnotes, 50 characters maximum 204 | % 205 | \def\note{\@ifnextchar[{\@snote}{\@fnote}} 206 | \def\@snote[#1]#2{\@sarticle[#1]{Note}{#2}} 207 | \def\@fnote#1{\@farticle{Note}{#1}} 208 | % 209 | % Preliminary Communications 210 | % 211 | % Usage: \prelim[Short title]{Full title} 212 | % [Short title] is optional; use where title is too long 213 | % or contains footnotes, 50 characters maximum 214 | % 215 | \def\prelim{\@ifnextchar[{\@sprelim}{\@fprelim}} 216 | \def\@sprelim[#1]#2{\@sarticle[#1]{Preliminary Communication}{#2}} 217 | \def\@fprelim#1{\@farticle{Preliminary Communication}{#1}} 218 | % 219 | % List of authors 220 | % 221 | % Usage \author[Short form]{List of all authors} 222 | % The short form excludes footnote symbols linking authors to addresses 223 | % and is used for running heads in printed version (but not on preprints) 224 | % 225 | \renewcommand{\author}{\@ifnextchar[{\@sauthor}{\@fauthor}} 226 | \def\@sauthor[#1]#2{\markright{#1} % for production only 227 | \vspace*{1.5pc}% 228 | \begin{indented}% 229 | \item[]\normalsize\bf\raggedright#2 230 | \end{indented}% 231 | \smallskip} 232 | \def\@fauthor#1{%\markright{#1} for production only 233 | \vspace*{1.5pc}% 234 | \begin{indented}% 235 | \item[]\normalsize\bf\raggedright#1 236 | \end{indented}% 237 | \smallskip} 238 | % 239 | % Affiliation (authors address) 240 | % 241 | % Usage: \address{Address of first author} 242 | % \address{Address of second author} 243 | % Use once for each address, use symbols \dag \ddag \S \P $\|$ 244 | % to connect authors with addresses 245 | % 246 | \newcommand{\address}[1]{\begin{indented} 247 | \item[]\rm\raggedright #1 248 | \end{indented}} 249 | % 250 | % American Mathematical Society Classification Numbers 251 | % Usage: \ams{57.XX, 58.XX} 252 | % 253 | \def\ams#1{\vspace{10pt} 254 | \begin{indented} 255 | \item[]\rm AMS classification scheme numbers: #1\par 256 | \end{indented}} 257 | % 258 | % A single Physics & Astronomy Classification Number 259 | % Usage \pacno{31.10} 260 | % 261 | \def\pacno#1{\vspace{10pt} 262 | \begin{indented} 263 | \item[]\rm PACS number: #1\par 264 | \end{indented}} 265 | % 266 | % Physics & Astronomy Classification Numbers (more than one) 267 | % Usage \pacs{31.10, 31.20T} 268 | % 269 | \def\pacs#1{\vspace{10pt} 270 | \begin{indented} 271 | \item[]\rm PACS numbers: #1\par 272 | \end{indented}} 273 | % 274 | % Submission details. If \jl command used journals name printed 275 | % otherwise Institute of Physics Publishing 276 | % 277 | \def\submitted{\vspace{28pt plus 10pt minus 18pt} 278 | \noindent{\small\rm Submitted to: {\it \journal}\par}} 279 | % 280 | \def\submitto#1{\vspace{28pt plus 10pt minus 18pt} 281 | \noindent{\small\rm Submitted to: {\it #1}\par}} 282 | % 283 | % For articles (other than Letters) not divided into sections 284 | % Usage \nosections Start of text 285 | % 286 | \def\nosections{\vspace{30\p@ plus12\p@ minus12\p@} 287 | \noindent\ignorespaces} 288 | % 289 | % Acknowledgments (no heading if letter) 290 | % Usage \ack for Acknowledgments, \ackn for Acknowledgement 291 | % 292 | \def\ack{\ifletter\bigskip\noindent\ignorespaces\else 293 | \section*{Acknowledgments}\fi} 294 | \def\ackn{\ifletter\bigskip\noindent\ignorespaces\else 295 | \section*{Acknowledgment}\fi} 296 | % 297 | % Footnotes: symbols selected in order \dag (1), \ddag (2), \S (3), 298 | % $\|$ (4), $\P$ (5), $^+$ (6), $^*$ (7), \sharp (8), \dagger\dagger (9) 299 | % unless optional argument of [] use to specify required symbol, 300 | % 1=\dag, 2=\ddag, etc 301 | % Usage: \footnote{Text of footnote} 302 | % \footnote[3]{Text of footnote} 303 | % 304 | \def\footnoterule{}% 305 | \setcounter{footnote}{1} 306 | \long\def\@makefntext#1{\parindent 1em\noindent 307 | \makebox[1em][l]{\footnotesize\rm$\m@th{\fnsymbol{footnote}}$}% 308 | \footnotesize\rm #1} 309 | \def\@makefnmark{\hbox{${\fnsymbol{footnote}}\m@th$}} 310 | \def\@thefnmark{\fnsymbol{footnote}} 311 | \def\footnote{\@ifnextchar[{\@xfootnote}{\stepcounter{\@mpfn}% 312 | \begingroup\let\protect\noexpand 313 | \xdef\@thefnmark{\thempfn}\endgroup 314 | \@footnotemark\@footnotetext}} 315 | \def\@xfootnote[#1]{\setcounter{footnote}{#1}% 316 | \addtocounter{footnote}{-1}\footnote} 317 | \def\@fnsymbol#1{\ifcase#1\or \dagger\or \ddagger\or \S\or 318 | \|\or \P\or ^{+}\or ^{\tsty *}\or \sharp 319 | \or \dagger\dagger \else\@ctrerr\fi\relax} 320 | % 321 | % IOP Journals 322 | % 323 | \newcounter{jnl} 324 | \newcommand{\jl}[1]{\setcounter{jnl}{#1}} 325 | \def\journal{\ifnum\thejnl=0 Institute of Physics Publishing\fi 326 | \ifnum\thejnl=1 J. Phys.\ A: Math.\ Gen.\ \fi 327 | \ifnum\thejnl=2 J. Phys.\ B: At.\ Mol.\ Opt.\ Phys.\ \fi 328 | \ifnum\thejnl=3 J. Phys.:\ Condens. Matter\ \fi 329 | \ifnum\thejnl=4 J. Phys.\ G: Nucl.\ Part.\ Phys.\ \fi 330 | \ifnum\thejnl=5 Inverse Problems\ \fi 331 | \ifnum\thejnl=6 Class. Quantum Grav.\ \fi 332 | \ifnum\thejnl=7 Network: Comput.\ Neural Syst.\ \fi 333 | \ifnum\thejnl=8 Nonlinearity\ \fi 334 | \ifnum\thejnl=9 J. Opt. B: Quantum Semiclass. Opt.\ \fi 335 | \ifnum\thejnl=10 Waves Random Media\ \fi 336 | \ifnum\thejnl=11 J. Opt. A: Pure Appl. Opt.\ \fi 337 | \ifnum\thejnl=12 Phys. Med. Biol.\ \fi 338 | \ifnum\thejnl=13 Modelling Simul.\ Mater.\ Sci.\ Eng.\ \fi 339 | \ifnum\thejnl=14 Plasma Phys. Control. Fusion\ \fi 340 | \ifnum\thejnl=15 Physiol. Meas.\ \fi 341 | \ifnum\thejnl=16 Combust. Theory Modelling\ \fi 342 | \ifnum\thejnl=17 High Perform.\ Polym.\ \fi 343 | \ifnum\thejnl=18 Public Understand. Sci.\ \fi 344 | \ifnum\thejnl=19 Rep.\ Prog.\ Phys.\ \fi 345 | \ifnum\thejnl=20 J.\ Phys.\ D: Appl.\ Phys.\ \fi 346 | \ifnum\thejnl=21 Supercond.\ Sci.\ Technol.\ \fi 347 | \ifnum\thejnl=22 Semicond.\ Sci.\ Technol.\ \fi 348 | \ifnum\thejnl=23 Nanotechnology\ \fi 349 | \ifnum\thejnl=24 Measur.\ Sci.\ Technol.\ \fi 350 | \ifnum\thejnl=25 Plasma.\ Sources\ Sci.\ Technol.\ \fi 351 | \ifnum\thejnl=26 Smart\ Mater.\ Struct.\ \fi 352 | \ifnum\thejnl=27 J.\ Micromech.\ Microeng.\ \fi 353 | \ifnum\thejnl=28 Distrib.\ Syst.\ Engng\ \fi 354 | \ifnum\thejnl=29 Bioimaging\ \fi 355 | \ifnum\thejnl=30 J.\ Radiol. Prot.\ \fi 356 | \ifnum\thejnl=31 Europ. J. Phys.\ \fi 357 | \ifnum\thejnl=32 J. Opt. A: Pure Appl. Opt.\ \fi 358 | \ifnum\thejnl=33 New. J. Phys.\ \fi} 359 | % 360 | % E-mail addresses (to provide links from headers) 361 | % 362 | \def\eads#1{\vspace*{5pt}\address{E-mail: #1}} 363 | \def\ead#1{\vspace*{5pt}\address{E-mail: \mailto{#1}}} 364 | \def\mailto#1{{\tt #1}} 365 | % 366 | % Switches 367 | % 368 | \newif\ifletter 369 | % 370 | \setcounter{secnumdepth}{3} 371 | \newcounter {section} 372 | \newcounter {subsection}[section] 373 | \newcounter {subsubsection}[subsection] 374 | \newcounter {paragraph}[subsubsection] 375 | \newcounter {subparagraph}[paragraph] 376 | \renewcommand\thesection {\arabic{section}} 377 | \renewcommand\thesubsection {\thesection.\arabic{subsection}} 378 | \renewcommand\thesubsubsection {\thesubsection.\arabic{subsubsection}} 379 | \renewcommand\theparagraph {\thesubsubsection.\arabic{paragraph}} 380 | \renewcommand\thesubparagraph {\theparagraph.\arabic{subparagraph}} 381 | \def\@chapapp{Section} 382 | 383 | \newcommand\section{\@startsection {section}{1}{\z@}% 384 | {-3.5ex \@plus -1ex \@minus -.2ex}% 385 | {2.3ex \@plus.2ex}% 386 | {\reset@font\normalsize\bfseries\raggedright}} 387 | \newcommand\subsection{\@startsection{subsection}{2}{\z@}% 388 | {-3.25ex\@plus -1ex \@minus -.2ex}% 389 | {1.5ex \@plus .2ex}% 390 | {\reset@font\normalsize\itshape\raggedright}} 391 | \newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% 392 | {-3.25ex\@plus -1ex \@minus -.2ex}% 393 | {-1em \@plus .2em}% 394 | {\reset@font\normalsize\itshape}} 395 | \newcommand\paragraph{\@startsection{paragraph}{4}{\z@}% 396 | {3.25ex \@plus1ex \@minus.2ex}% 397 | {-1em}% 398 | {\reset@font\normalsize\itshape}} 399 | \newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% 400 | {3.25ex \@plus1ex \@minus .2ex}% 401 | {-1em}% 402 | {\reset@font\normalsize\itshape}} 403 | \def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth 404 | \let\@svsec\@empty\else 405 | \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname. }\fi 406 | \@tempskipa #5\relax 407 | \ifdim \@tempskipa>\z@ 408 | \begingroup #6\relax 409 | \noindent{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}% 410 | \endgroup 411 | \csname #1mark\endcsname{#7}\addcontentsline 412 | {toc}{#1}{\ifnum #2>\c@secnumdepth \else 413 | \protect\numberline{\csname the#1\endcsname}\fi 414 | #7}\else 415 | \def\@svsechd{#6\hskip #3\relax %% \relax added 2 May 90 416 | \@svsec #8\csname #1mark\endcsname 417 | {#7}\addcontentsline 418 | {toc}{#1}{\ifnum #2>\c@secnumdepth \else 419 | \protect\numberline{\csname the#1\endcsname}\fi 420 | #7}}\fi 421 | \@xsect{#5}} 422 | % 423 | \def\@ssect#1#2#3#4#5{\@tempskipa #3\relax 424 | \ifdim \@tempskipa>\z@ 425 | \begingroup #4\noindent{\hskip #1}{\interlinepenalty \@M #5\par}\endgroup 426 | \else \def\@svsechd{#4\hskip #1\relax #5}\fi 427 | \@xsect{#3}} 428 | 429 | \setlength\leftmargini{2em} 430 | \setlength\leftmarginii{2em} 431 | \setlength\leftmarginiii{1.8em} 432 | \setlength\leftmarginiv{1.6em} 433 | \setlength\leftmarginv{1em} 434 | \setlength\leftmarginvi{1em} 435 | \setlength\leftmargin{\leftmargini} 436 | \setlength\labelsep{0.5em} 437 | \setlength\labelwidth{\leftmargini} 438 | \addtolength\labelwidth{-\labelsep} 439 | \@beginparpenalty -\@lowpenalty 440 | \@endparpenalty -\@lowpenalty 441 | \@itempenalty -\@lowpenalty 442 | \renewcommand\theenumi{\roman{enumi}} 443 | \renewcommand\theenumii{\alph{enumii}} 444 | \renewcommand\theenumiii{\arabic{enumiii}} 445 | \renewcommand\theenumiv{\Alph{enumiv}} 446 | \newcommand\labelenumi{(\theenumi)} 447 | \newcommand\labelenumii{(\theenumii)} 448 | \newcommand\labelenumiii{\theenumiii.} 449 | \newcommand\labelenumiv{(\theenumiv)} 450 | \renewcommand\p@enumii{(\theenumi)} 451 | \renewcommand\p@enumiii{(\theenumi.\theenumii)} 452 | \renewcommand\p@enumiv{(\theenumi.\theenumii.\theenumiii)} 453 | \newcommand\labelitemi{$\m@th\bullet$} 454 | \newcommand\labelitemii{\normalfont\bfseries --} 455 | \newcommand\labelitemiii{$\m@th\ast$} 456 | \newcommand\labelitemiv{$\m@th\cdot$} 457 | \newenvironment{description} 458 | {\list{}{\labelwidth\z@ \itemindent-\leftmargin 459 | \let\makelabel\descriptionlabel}} 460 | {\endlist} 461 | \newcommand\descriptionlabel[1]{\hspace\labelsep 462 | \normalfont\bfseries #1} 463 | \newenvironment{abstract}{% 464 | \vspace{16pt plus3pt minus3pt} 465 | \begin{indented} 466 | \item[]{\bfseries \abstractname.}\quad\rm\ignorespaces} 467 | {\end{indented}\if@titlepage\newpage\else\vspace{18\p@ plus18\p@}\fi} 468 | \newenvironment{verse} 469 | {\let\\=\@centercr 470 | \list{}{\itemsep \z@ 471 | \itemindent -1.5em% 472 | \listparindent\itemindent 473 | \rightmargin \leftmargin 474 | \advance\leftmargin 1.5em}% 475 | \item[]} 476 | {\endlist} 477 | \newenvironment{quotation} 478 | {\list{}{\listparindent 1.5em% 479 | \itemindent \listparindent 480 | \rightmargin \leftmargin 481 | \parsep \z@ \@plus\p@}% 482 | \item[]} 483 | {\endlist} 484 | \newenvironment{quote} 485 | {\list{}{\rightmargin\leftmargin}% 486 | \item[]} 487 | {\endlist} 488 | \newenvironment{titlepage} 489 | {% 490 | \@restonecolfalse\newpage 491 | \thispagestyle{empty}% 492 | \if@compatibility 493 | \setcounter{page}{0} 494 | \else 495 | \setcounter{page}{1}% 496 | \fi}% 497 | {\newpage\setcounter{page}{1}} 498 | \def\appendix{\@ifnextchar*{\@appendixstar}{\@appendix}} 499 | \def\@appendix{\eqnobysec\@appendixstar} 500 | \def\@appendixstar{\@@par 501 | \ifnumbysec % Added 30/4/94 to get Table A1, 502 | \@addtoreset{table}{section} % Table B1 etc if numbering by 503 | \@addtoreset{figure}{section}\fi % section 504 | \setcounter{section}{0} 505 | \setcounter{subsection}{0} 506 | \setcounter{subsubsection}{0} 507 | \setcounter{equation}{0} 508 | \setcounter{figure}{0} 509 | \setcounter{table}{0} 510 | \def\thesection{Appendix \Alph{section}} 511 | \def\theequation{\ifnumbysec 512 | \Alph{section}.\arabic{equation}\else 513 | \Alph{section}\arabic{equation}\fi} % Comment A\arabic{equation} maybe 514 | \def\thetable{\ifnumbysec % better? 15/4/95 515 | \Alph{section}\arabic{table}\else 516 | A\arabic{table}\fi} 517 | \def\thefigure{\ifnumbysec 518 | \Alph{section}\arabic{figure}\else 519 | A\arabic{figure}\fi}} 520 | \def\noappendix{\setcounter{figure}{0} 521 | \setcounter{table}{0} 522 | \def\thetable{\arabic{table}} 523 | \def\thefigure{\arabic{figure}}} 524 | \setlength\arraycolsep{5\p@} 525 | \setlength\tabcolsep{6\p@} 526 | \setlength\arrayrulewidth{.4\p@} 527 | \setlength\doublerulesep{2\p@} 528 | \setlength\tabbingsep{\labelsep} 529 | \skip\@mpfootins = \skip\footins 530 | \setlength\fboxsep{3\p@} 531 | \setlength\fboxrule{.4\p@} 532 | \renewcommand\theequation{\arabic{equation}} 533 | \newcounter{figure} 534 | \renewcommand\thefigure{\@arabic\c@figure} 535 | \def\fps@figure{tbp} 536 | \def\ftype@figure{1} 537 | \def\ext@figure{lof} 538 | \def\fnum@figure{\figurename~\thefigure} 539 | \newenvironment{figure}{\footnotesize\rm\@float{figure}}% 540 | {\end@float\normalsize\rm} 541 | \newenvironment{figure*}{\footnotesize\rm\@dblfloat{figure}}{\end@dblfloat} 542 | \newcounter{table} 543 | \renewcommand\thetable{\@arabic\c@table} 544 | \def\fps@table{tbp} 545 | \def\ftype@table{2} 546 | \def\ext@table{lot} 547 | \def\fnum@table{\tablename~\thetable} 548 | \newenvironment{table}{\footnotesize\rm\@float{table}}% 549 | {\end@float\normalsize\rm} 550 | \newenvironment{table*}{\footnotesize\rm\@dblfloat{table}}% 551 | {\end@dblfloat\normalsize\rm} 552 | \newlength\abovecaptionskip 553 | \newlength\belowcaptionskip 554 | \setlength\abovecaptionskip{10\p@} 555 | \setlength\belowcaptionskip{0\p@} 556 | % 557 | % Added redefinition of \@caption so captions are not written to 558 | % aux file therefore less need to \protect fragile commands 559 | % 560 | \long\def\@caption#1[#2]#3{\par\begingroup 561 | \@parboxrestore 562 | \normalsize 563 | \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par 564 | \endgroup} 565 | % 566 | \long\def\@makecaption#1#2{\vskip \abovecaptionskip 567 | \begin{indented} 568 | \item[]{\bf #1.} #2 569 | \end{indented}\vskip\belowcaptionskip} 570 | \let\@portraitcaption=\@makecaption 571 | 572 | \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} 573 | \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} 574 | \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} 575 | \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} 576 | \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} 577 | \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} 578 | \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} 579 | \ifiopams 580 | \renewcommand{\cal}{\protect\pcal} 581 | \else 582 | \newcommand{\cal}{\protect\pcal} 583 | \fi 584 | \newcommand{\pcal}{\@fontswitch{\relax}{\mathcal}} 585 | \ifiopams 586 | \renewcommand{\mit}{\protect\pmit} 587 | \else 588 | \newcommand{\mit}{\protect\pmit} 589 | \fi 590 | \newcommand{\pmit}{\@fontswitch{\relax}{\mathnormal}} 591 | \newcommand\@pnumwidth{1.55em} 592 | \newcommand\@tocrmarg {2.55em} 593 | \newcommand\@dotsep{4.5} 594 | \setcounter{tocdepth}{3} 595 | \newcommand\tableofcontents{% 596 | \section*{\contentsname 597 | \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}% 598 | \@starttoc{toc}% 599 | } 600 | \newcommand\l@part[2]{% 601 | \ifnum \c@tocdepth >-2\relax 602 | \addpenalty{\@secpenalty}% 603 | \addvspace{2.25em \@plus\p@}% 604 | \begingroup 605 | \setlength\@tempdima{3em}% 606 | \parindent \z@ \rightskip \@pnumwidth 607 | \parfillskip -\@pnumwidth 608 | {\leavevmode 609 | \large \bfseries #1\hfil \hbox to\@pnumwidth{\hss #2}}\par 610 | \nobreak 611 | \if@compatibility 612 | \global\@nobreaktrue 613 | \everypar{\global\@nobreakfalse\everypar{}} 614 | \fi 615 | \endgroup 616 | \fi} 617 | \newcommand\l@section[2]{% 618 | \ifnum \c@tocdepth >\z@ 619 | \addpenalty{\@secpenalty}% 620 | \addvspace{1.0em \@plus\p@}% 621 | \setlength\@tempdima{1.5em}% 622 | \begingroup 623 | \parindent \z@ \rightskip \@pnumwidth 624 | \parfillskip -\@pnumwidth 625 | \leavevmode \bfseries 626 | \advance\leftskip\@tempdima 627 | \hskip -\leftskip 628 | #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par 629 | \endgroup 630 | \fi} 631 | \newcommand\l@subsection {\@dottedtocline{2}{1.5em}{2.3em}} 632 | \newcommand\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} 633 | \newcommand\l@paragraph {\@dottedtocline{4}{7.0em}{4.1em}} 634 | \newcommand\l@subparagraph {\@dottedtocline{5}{10em}{5em}} 635 | \newcommand\listoffigures{% 636 | \section*{\listfigurename 637 | \@mkboth{\uppercase{\listfigurename}}% 638 | {\uppercase{\listfigurename}}}% 639 | \@starttoc{lof}% 640 | } 641 | \newcommand\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} 642 | \newcommand\listoftables{% 643 | \section*{\listtablename 644 | \@mkboth{\uppercase{\listtablename}}{\uppercase{\listtablename}}}% 645 | \@starttoc{lot}% 646 | } 647 | \let\l@table\l@figure 648 | \newenvironment{theindex} 649 | {\if@twocolumn 650 | \@restonecolfalse 651 | \else 652 | \@restonecoltrue 653 | \fi 654 | \columnseprule \z@ 655 | \columnsep 35\p@ 656 | \twocolumn[\section*{\indexname}]% 657 | \@mkboth{\uppercase{\indexname}}% 658 | {\uppercase{\indexname}}% 659 | \thispagestyle{plain}\parindent\z@ 660 | \parskip\z@ \@plus .3\p@\relax 661 | \let\item\@idxitem} 662 | {\if@restonecol\onecolumn\else\clearpage\fi} 663 | \newcommand\@idxitem {\par\hangindent 40\p@} 664 | \newcommand\subitem {\par\hangindent 40\p@ \hspace*{20\p@}} 665 | \newcommand\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}} 666 | \newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} 667 | \newcommand\contentsname{Contents} 668 | \newcommand\listfigurename{List of Figures} 669 | \newcommand\listtablename{List of Tables} 670 | \newcommand\refname{References} 671 | \newcommand\indexname{Index} 672 | \newcommand\figurename{Figure} 673 | \newcommand\tablename{Table} 674 | \newcommand\partname{Part} 675 | \newcommand\appendixname{Appendix} 676 | \newcommand\abstractname{Abstract} 677 | \newcommand\today{\number\day\space\ifcase\month\or 678 | January\or February\or March\or April\or May\or June\or 679 | July\or August\or September\or October\or November\or December\fi 680 | \space\number\year} 681 | \setlength\columnsep{10\p@} 682 | \setlength\columnseprule{0\p@} 683 | 684 | \newcommand{\Tables}{\clearpage\section*{Tables and table captions} 685 | \def\fps@table{hp}\noappendix} 686 | \newcommand{\Figures}{\clearpage\section*{Figure captions} 687 | \def\fps@figure{hp}\noappendix} 688 | % 689 | \newcommand{\Figure}[1]{\begin{figure} 690 | \caption{#1} 691 | \end{figure}} 692 | % 693 | \newcommand{\Table}[1]{\begin{table} 694 | \caption{#1} 695 | \begin{indented} 696 | \lineup 697 | \item[]\begin{tabular}{@{}l*{15}{l}}} 698 | 699 | \def\endTable{\end{tabular}\end{indented}\end{table}} 700 | \let\endtab=\endTable 701 | % 702 | \newcommand{\fulltable}[1]{\begin{table} 703 | \caption{#1} 704 | \footnotesize 705 | \lineup 706 | \begin{tabular*}{\textwidth}{@{}l*{15}{@{\extracolsep{0pt plus 12pt}}l}}} 707 | \def\endfulltable{\end{tabular*}\end{table}\normalsize} 708 | % 709 | % 710 | \newcommand{\Bibliography}[1]{\section*{References}\par\numrefs{#1}} 711 | \newcommand{\References}{\section*{References}\par\refs} 712 | 713 | \def\thebibliography#1{\list 714 | {\hfil[\arabic{enumi}]}{\topsep=0\p@\parsep=0\p@ 715 | \partopsep=0\p@\itemsep=0\p@ 716 | \labelsep=5\p@\itemindent=-10\p@ 717 | \settowidth\labelwidth{\footnotesize[#1]}% 718 | \leftmargin\labelwidth 719 | \advance\leftmargin\labelsep 720 | \advance\leftmargin -\itemindent 721 | \usecounter{enumi}}\footnotesize 722 | \def\newblock{\ } 723 | \sloppy\clubpenalty4000\widowpenalty4000 724 | \sfcode`\.=1000\relax} 725 | \let\endthebibliography=\endlist 726 | \def\numrefs#1{\begin{thebibliography}{#1}} 727 | \def\endnumrefs{\end{thebibliography}} 728 | \let\endbib=\endnumrefs 729 | % 730 | \def\thereferences{\list{}{\topsep=0\p@\parsep=0\p@ 731 | \partopsep=0\p@\itemsep=0\p@\labelsep=0\p@\itemindent=-18\p@ 732 | \labelwidth=0\p@\leftmargin=18\p@ 733 | }\footnotesize\rm 734 | \def\newblock{\ } 735 | \sloppy\clubpenalty4000\widowpenalty4000 736 | \sfcode`\.=1000\relax 737 | } 738 | % 739 | \let\endthereferences=\endlist 740 | \newlength{\indentedwidth} 741 | \newdimen\mathindent 742 | \indentedwidth=\mathindent 743 | % 744 | % Macro to used for references in the Harvard system 745 | % 746 | \newenvironment{harvard}{\list{}{\topsep=0\p@\parsep=0\p@ 747 | \partopsep=0\p@\itemsep=0\p@\labelsep=0\p@\itemindent=-18\p@ 748 | \labelwidth=0\p@\leftmargin=18\p@ 749 | }\footnotesize\rm 750 | \def\newblock{\ } 751 | \sloppy\clubpenalty4000\widowpenalty4000 752 | \sfcode`\.=1000\relax}{\endlist} 753 | % 754 | \def\refs{\begin{harvard}} 755 | \def\endrefs{\end{harvard}} 756 | % 757 | \newenvironment{indented}{\begin{indented}}{\end{indented}} 758 | \newenvironment{varindent}[1]{\begin{varindent}{#1}}{\end{varindent}} 759 | % 760 | \def\indented{\list{}{\itemsep=0\p@\labelsep=0\p@\itemindent=0\p@ 761 | \labelwidth=0\p@\leftmargin=\mathindent\topsep=0\p@\partopsep=0\p@ 762 | \parsep=0\p@\listparindent=15\p@}\footnotesize\rm} 763 | 764 | \let\endindented=\endlist 765 | 766 | \def\varindent#1{\setlength{\varind}{#1}% 767 | \list{}{\itemsep=0\p@\labelsep=0\p@\itemindent=0\p@ 768 | \labelwidth=0\p@\leftmargin=\varind\topsep=0\p@\partopsep=0\p@ 769 | \parsep=0\p@\listparindent=15\p@}\footnotesize\rm} 770 | 771 | \let\endvarindent=\endlist 772 | 773 | \def\[{\relax\ifmmode\@badmath\else 774 | \begin{trivlist} 775 | \@beginparpenalty\predisplaypenalty 776 | \@endparpenalty\postdisplaypenalty 777 | \item[]\leavevmode 778 | \hbox to\linewidth\bgroup$ \displaystyle 779 | \hskip\mathindent\bgroup\fi} 780 | \def\]{\relax\ifmmode \egroup $\hfil \egroup \end{trivlist}\else \@badmath \fi} 781 | \def\equation{\@beginparpenalty\predisplaypenalty 782 | \@endparpenalty\postdisplaypenalty 783 | \refstepcounter{equation}\trivlist \item[]\leavevmode 784 | \hbox to\linewidth\bgroup $ \displaystyle 785 | \hskip\mathindent} 786 | \def\endequation{$\hfil \displaywidth\linewidth\@eqnnum\egroup \endtrivlist} 787 | % 788 | \@namedef{equation*}{\[} 789 | \@namedef{endequation*}{\]} 790 | % 791 | \def\eqnarray{\stepcounter{equation}\let\@currentlabel=\theequation 792 | \global\@eqnswtrue 793 | \global\@eqcnt\z@\tabskip\mathindent\let\\=\@eqncr 794 | \abovedisplayskip\topsep\ifvmode\advance\abovedisplayskip\partopsep\fi 795 | \belowdisplayskip\abovedisplayskip 796 | \belowdisplayshortskip\abovedisplayskip 797 | \abovedisplayshortskip\abovedisplayskip 798 | $$\halign to 799 | \linewidth\bgroup\@eqnsel$\displaystyle\tabskip\z@ 800 | {##{}}$&\global\@eqcnt\@ne $\displaystyle{{}##{}}$\hfil 801 | &\global\@eqcnt\tw@ $\displaystyle{{}##}$\hfil 802 | \tabskip\@centering&\llap{##}\tabskip\z@\cr} 803 | \def\endeqnarray{\@@eqncr\egroup 804 | \global\advance\c@equation\m@ne$$\global\@ignoretrue } 805 | \mathindent = 6pc 806 | % 807 | \def\eqalign#1{\null\vcenter{\def\\{\cr}\openup\jot\m@th 808 | \ialign{\strut$\displaystyle{##}$\hfil&$\displaystyle{{}##}$\hfil 809 | \crcr#1\crcr}}\,} 810 | % 811 | \def\eqalignno#1{\displ@y \tabskip\z@skip 812 | \halign to\displaywidth{\hspace{5pc}$\@lign\displaystyle{##}$% 813 | \tabskip\z@skip 814 | &$\@lign\displaystyle{{}##}$\hfill\tabskip\@centering 815 | &\llap{$\@lign\hbox{\rm##}$}\tabskip\z@skip\crcr 816 | #1\crcr}} 817 | % 818 | \newif\ifnumbysec 819 | \def\theequation{\ifnumbysec 820 | \arabic{section}.\arabic{equation}\else 821 | \arabic{equation}\fi} 822 | \def\eqnobysec{\numbysectrue\@addtoreset{equation}{section}} 823 | 824 | \newcounter{eqnval} 825 | 826 | % 2012: if you have an eqn numbered by parts (eg eqn 6a, 6b) this allows 827 | % you to refer to it by just the number (eg eqn 6) if the label is between 828 | % the \multiparteqn and the \numparts 829 | \def\multiparteqn{\addtocounter{equation}{1} 830 | \eqnarray\nonumber 831 | \endeqnarray 832 | 833 | \vspace{-72pt} 834 | } 835 | 836 | \def\numparts{\addtocounter{equation}{1}% 837 | \setcounter{eqnval}{\value{equation}}% 838 | \setcounter{equation}{0}% 839 | \def\theequation{\ifnumbysec 840 | \arabic{section}.\arabic{eqnval}{\it\alph{equation}}% 841 | \else\arabic{eqnval}{\it\alph{equation}}\fi}} 842 | 843 | \def\endnumparts{\def\theequation{\ifnumbysec 844 | \arabic{section}.\arabic{equation}\else 845 | \arabic{equation}\fi}% 846 | \setcounter{equation}{\value{eqnval}}} 847 | % 848 | \def\cases#1{% 849 | \left\{\,\vcenter{\def\\{\cr}\normalbaselines\openup1\jot\m@th% 850 | \ialign{\strut$\displaystyle{##}\hfil$&\tqs 851 | \rm##\hfil\crcr#1\crcr}}\right.}% 852 | % 853 | \newcommand{\e}{\mathrm{e}} 854 | \newcommand{\rme}{\mathrm{e}} 855 | \newcommand{\rmi}{\mathrm{i}} 856 | \newcommand{\rmd}{\mathrm{d}} 857 | \renewcommand{\qquad}{\hspace*{25pt}} 858 | \newcommand{\tdot}[1]{\stackrel{\dots}{#1}} % Added 1/9/94 859 | \newcommand{\tqs}{\hspace*{25pt}} 860 | \newcommand{\fl}{\hspace*{-\mathindent}} 861 | \newcommand{\Tr}{\mathop{\mathrm{Tr}}\nolimits} 862 | \newcommand{\tr}{\mathop{\mathrm{tr}}\nolimits} 863 | \newcommand{\Or}{\mathord{\mathrm{O}}} %changed from \mathop 20/1/95 864 | \newcommand{\lshad}{[\![} 865 | \newcommand{\rshad}{]\!]} 866 | \newcommand{\case}[2]{{\textstyle\frac{#1}{#2}}} 867 | \def\pt(#1){({\it #1\/})} 868 | \newcommand{\dsty}{\displaystyle} 869 | \newcommand{\tsty}{\textstyle} 870 | \newcommand{\ssty}{\scriptstyle} 871 | \newcommand{\sssty}{\scriptscriptstyle} 872 | \def\lo#1{\llap{${}#1{}$}} 873 | \def\eql{\llap{${}={}$}} 874 | \def\lsim{\llap{${}\sim{}$}} 875 | \def\lsimeq{\llap{${}\simeq{}$}} 876 | \def\lequiv{\llap{${}\equiv{}$}} 877 | % 878 | \newcommand{\eref}[1]{(\ref{#1})} 879 | \newcommand{\sref}[1]{section~\ref{#1}} 880 | \newcommand{\fref}[1]{figure~\ref{#1}} 881 | \newcommand{\tref}[1]{table~\ref{#1}} 882 | \newcommand{\Eref}[1]{Equation (\ref{#1})} 883 | \newcommand{\Sref}[1]{Section~\ref{#1}} 884 | \newcommand{\Fref}[1]{Figure~\ref{#1}} 885 | \newcommand{\Tref}[1]{Table~\ref{#1}} 886 | 887 | \newcommand{\opencircle}{\mbox{\Large$\circ\,$}} % moved Large outside maths 888 | \newcommand{\opensquare}{\mbox{$\rlap{$\sqcap$}\sqcup$}} 889 | \newcommand{\opentriangle}{\mbox{$\triangle$}} 890 | \newcommand{\opentriangledown}{\mbox{$\bigtriangledown$}} 891 | \newcommand{\opendiamond}{\mbox{$\diamondsuit$}} 892 | \newcommand{\fullcircle}{\mbox{{\Large$\bullet\,$}}} % moved Large outside maths 893 | \newcommand{\fullsquare}{\,\vrule height5pt depth0pt width5pt} 894 | \newcommand{\dotted}{\protect\mbox{${\mathinner{\cdotp\cdotp\cdotp\cdotp\cdotp\cdotp}}$}} 895 | \newcommand{\dashed}{\protect\mbox{-\; -\; -\; -}} 896 | \newcommand{\broken}{\protect\mbox{-- -- --}} 897 | \newcommand{\longbroken}{\protect\mbox{--- --- ---}} 898 | \newcommand{\chain}{\protect\mbox{--- $\cdot$ ---}} 899 | \newcommand{\dashddot}{\protect\mbox{--- $\cdot$ $\cdot$ ---}} 900 | \newcommand{\full}{\protect\mbox{------}} 901 | 902 | \def\;{\protect\psemicolon} 903 | \def\psemicolon{\relax\ifmmode\mskip\thickmuskip\else\kern .3333em\fi} 904 | \def\lineup{\def\0{\hbox{\phantom{\footnotesize\rm 0}}}% 905 | \def\m{\hbox{$\phantom{-}$}}% 906 | \def\-{\llap{$-$}}} 907 | % 908 | %%%%%%%%%%%%%%%%%%%%% 909 | % Tables rules % 910 | %%%%%%%%%%%%%%%%%%%%% 911 | 912 | \newcommand{\boldarrayrulewidth}{1\p@} 913 | % Width of bold rule in tabular environment. 914 | 915 | \def\bhline{\noalign{\ifnum0=`}\fi\hrule \@height 916 | \boldarrayrulewidth \futurelet \@tempa\@xhline} 917 | 918 | \def\@xhline{\ifx\@tempa\hline\vskip \doublerulesep\fi 919 | \ifnum0=`{\fi}} 920 | 921 | % 922 | % Rules for tables with extra space around 923 | % 924 | \newcommand{\br}{\ms\bhline\ms} 925 | \newcommand{\mr}{\ms\hline\ms} 926 | % 927 | \newcommand{\centre}[2]{\multispan{#1}{\hfill #2\hfill}} 928 | \newcommand{\crule}[1]{\multispan{#1}{\hspace*{\tabcolsep}\hrulefill 929 | \hspace*{\tabcolsep}}} 930 | \newcommand{\fcrule}[1]{\ifnum\thetabtype=1\multispan{#1}{\hrulefill 931 | \hspace*{\tabcolsep}}\else\multispan{#1}{\hrulefill}\fi} 932 | % 933 | % Extra spaces for tables and displayed equations 934 | % 935 | \newcommand{\ms}{\noalign{\vspace{3\p@ plus2\p@ minus1\p@}}} 936 | \newcommand{\bs}{\noalign{\vspace{6\p@ plus2\p@ minus2\p@}}} 937 | \newcommand{\ns}{\noalign{\vspace{-3\p@ plus-1\p@ minus-1\p@}}} 938 | \newcommand{\es}{\noalign{\vspace{6\p@ plus2\p@ minus2\p@}}\displaystyle}% 939 | % 940 | \newcommand{\etal}{{\it et al\/}\ } 941 | \newcommand{\dash}{------} 942 | \newcommand{\nonum}{\par\item[]} %\par added 1/9/93 943 | \newcommand{\mat}[1]{\underline{\underline{#1}}} 944 | % 945 | % abbreviations for IOPP journals 946 | % 947 | \newcommand{\CQG}{{\it Class. Quantum Grav.} } 948 | \newcommand{\CTM}{{\it Combust. Theory Modelling\/} } 949 | \newcommand{\DSE}{{\it Distrib. Syst. Engng.\/} } 950 | \newcommand{\EJP}{{\it Eur. J. Phys.} } 951 | \newcommand{\JNE}{{\it J. Neural Eng.} } %added 30/11/2004 GMD 952 | \newcommand{\PB}{{\it Phys. Biol.} } %added 30/11/2004 GMD 953 | \newcommand{\SMS}{{\it Smart Mater. Struct.} } %added 30/11/2004 GMD 954 | \newcommand{\HPP}{{\it High Perform. Polym.} } % added 4/5/93 955 | \newcommand{\IP}{{\it Inverse Problems\/} } 956 | \newcommand{\JHM}{{\it J. Hard Mater.} } % added 4/5/93 957 | \newcommand{\JO}{{\it J. Opt.} } 958 | \newcommand{\JOA}{{\it J. Opt. A: Pure Appl. Opt.} } 959 | \newcommand{\JOB}{{\it J. Opt. B: Quantum Semiclass. Opt.} } 960 | \newcommand{\JPA}{{\it J. Phys. A: Math. Gen.} } % superseded by \jpa below 961 | \newcommand{\JPB}{{\it J. Phys. B: At. Mol. Phys.} } %1968-87 962 | \newcommand{\jpb}{{\it J. Phys. B: At. Mol. Opt. Phys.} } %1988 and onwards 963 | \newcommand{\JPC}{{\it J. Phys. C: Solid State Phys.} } %1968--1988 964 | \newcommand{\JPCM}{{\it J. Phys.: Condens. Matter\/} } %1989 and onwards 965 | \newcommand{\JPD}{{\it J. Phys. D: Appl. Phys.} } 966 | \newcommand{\JPE}{{\it J. Phys. E: Sci. Instrum.} } 967 | \newcommand{\JPF}{{\it J. Phys. F: Met. Phys.} } 968 | \newcommand{\JPG}{{\it J. Phys. G: Nucl. Phys.} } %1975--1988 969 | \newcommand{\jpg}{{\it J. Phys. G: Nucl. Part. Phys.} } %1989 and onwards 970 | \newcommand{\JMM}{{\it J. Micromech. Microeng.\/} } 971 | \newcommand{\MSMSE}{{\it Modelling Simul. Mater. Sci. Eng.} } % sxb changed to 'Simul' 15 Mar 2011 972 | \newcommand{\MST}{{\it Meas. Sci. Technol.} } %1990 and onwards 973 | \newcommand{\NET}{{\it Network: Comput. Neural Syst.} } 974 | \newcommand{\NJP}{{\it New J. Phys.} } 975 | \newcommand{\NL}{{\it Nonlinearity\/} } 976 | \newcommand{\NT}{{\it Nanotechnology} } 977 | \newcommand{\PAO}{{\it Pure Appl. Optics\/} } 978 | \newcommand{\PM}{{\it Physiol. Meas.} } % added 4/5/93 979 | \newcommand{\PMB}{{\it Phys. Med. Biol.} } 980 | \newcommand{\PPCF}{{\it Plasma Phys. Control. Fusion\/} } % added 4/5/93 981 | \newcommand{\PSST}{{\it Plasma Sources Sci. Technol.} } 982 | \newcommand{\PUS}{{\it Public Understand. Sci.} } 983 | \newcommand{\QO}{{\it Quantum Opt.} } 984 | \newcommand{\QSO}{{\em Quantum Semiclass. Opt.} } 985 | \newcommand{\RPP}{{\it Rep. Prog. Phys.} } 986 | \newcommand{\SLC}{{\it Sov. Lightwave Commun.} } % added 4/5/93 987 | \newcommand{\SST}{{\it Semicond. Sci. Technol.} } 988 | \newcommand{\SUST}{{\it Supercond. Sci. Technol.} } 989 | \newcommand{\WRM}{{\it Waves Random Media\/} } 990 | % 991 | % Other commonly quoted journals 992 | % 993 | \newcommand{\AC}{{\it Acta Crystallogr.} } 994 | \newcommand{\AM}{{\it Acta Metall.} } 995 | \newcommand{\AP}{{\it Ann. Phys., Lpz.} } 996 | \newcommand{\APNY}{{\it Ann. Phys., NY\/} } 997 | \newcommand{\APP}{{\it Ann. Phys., Paris\/} } 998 | \newcommand{\CJP}{{\it Can. J. Phys.} } 999 | \newcommand{\JAP}{{\it J. Appl. Phys.} } 1000 | \newcommand{\JCP}{{\it J. Chem. Phys.} } 1001 | \newcommand{\JJAP}{{\it Jpn. J. Appl. Phys.} } 1002 | \newcommand{\JP}{{\it J. Physique\/} } 1003 | \newcommand{\JPhCh}{{\it J. Phys. Chem.} } 1004 | \newcommand{\JMMM}{{\it J. Magn. Magn. Mater.} } 1005 | \newcommand{\JMP}{{\it J. Math. Phys.} } 1006 | \newcommand{\JOSA}{{\it J. Opt. Soc. Am.} } 1007 | \newcommand{\JPSJ}{{\it J. Phys. Soc. Jpn.\/} } 1008 | \newcommand{\JQSRT}{{\it J. Quant. Spectrosc. Radiat. Transfer\/} } 1009 | \newcommand{\NC}{{\it Nuovo Cimento\/} } 1010 | \newcommand{\NIM}{{\it Nucl. Instrum. Methods\/} } 1011 | \newcommand{\NP}{{\it Nucl. Phys.} } 1012 | \newcommand{\PL}{{\it Phys. Lett.} } 1013 | \newcommand{\PR}{{\it Phys. Rev.} } 1014 | \newcommand{\PRL}{{\it Phys. Rev. Lett.} } 1015 | \newcommand{\PRS}{{\it Proc. R. Soc.} } 1016 | \newcommand{\PS}{{\it Phys. Scr.} } 1017 | \newcommand{\PSS}{{\it Phys. Status Solidi\/} } 1018 | \newcommand{\PTRS}{{\it Phil. Trans. R. Soc.} } 1019 | \newcommand{\RMP}{{\it Rev. Mod. Phys.} } 1020 | \newcommand{\RSI}{{\it Rev. Sci. Instrum.} } 1021 | \newcommand{\SSC}{{\it Solid State Commun.} } 1022 | \newcommand{\ZP}{{\it Z. Phys.} } 1023 | \newcommand{\GRG}{{\it Gen. Rel. Grav.} } 1024 | \newcommand{\PF}{{\it Phys. Fluids\/} } 1025 | \newcommand{\SPJ}{{\it Sov. Phys.--JETP\/} } 1026 | % 1027 | % More journals added 8 Mar 2011, below (sxb) 1028 | % 1029 | \newcommand{\jpa}{{\it J. Phys. A: Math. Theor.} } 1030 | \newcommand{\BF}{{\it Biofabrication\/} } 1031 | \newcommand{\BB}{{\it Bioinspir. Biomim.} } 1032 | \newcommand{\BMM}{{\it Biomed. Mater.} } 1033 | \newcommand{\CSD}{{\it Comput. Sci. Disc.} } 1034 | \newcommand{\ERL}{{\it Environ. Res. Lett.} } 1035 | \newcommand{\JBR}{{\it J. Breath Res.} } 1036 | \newcommand{\JGE}{{\it J. Geophys. Eng.} } 1037 | \newcommand{\JOPT}{{\it J. Opt.} } 1038 | \newcommand{\JRP}{{\it J. Radiol. Prot.} } 1039 | \newcommand{\MET}{{\it Metrologia\/} } 1040 | \newcommand{\NF}{{\it Nucl. Fusion\/} } 1041 | \newcommand{\PED}{{\it Phys. Educ.} } 1042 | % 1043 | % More journals added 6 Feb 2014, below (sxb) 1044 | % 1045 | \newcommand{\TDM}{{\it 2D Mater.} } 1046 | \newcommand{\MRE}{{\it Mater. Res. Express\/} } 1047 | \newcommand{\MAF}{{\it Methods Appl. Fluoresc.} } 1048 | \newcommand{\TMR}{{\it Transl. Mater. Res.} } 1049 | \newcommand{\STMP}{{\it Surf. Topogr.: Metrol. Prop.} } 1050 | % 1051 | % The following journals are externally-edited and the usual IOP Publishing 1052 | % submission guidelines do *not* apply if you're submitting to them. 1053 | % 1054 | \newcommand{\AJ}{{\it AJ\/} } 1055 | \newcommand{\APJ}{{\it ApJ\/} } 1056 | \newcommand{\APJL}{{\it ApJL\/} } 1057 | \newcommand{\APJS}{{\it ApJS\/} } 1058 | \newcommand{\ANSN}{{\it Adv. Nat. Sci: Nanosci. Nanotechnol.} } 1059 | \newcommand{\CJCP}{{\it Chin. J. Chem. Phys.} } 1060 | \newcommand{\CPB}{{\it Chinese Phys. B\/} } 1061 | \newcommand{\CPC}{{\it Chinese Phys. C\/} } 1062 | \newcommand{\CPL}{{\it Chinese Phys. Lett.} } 1063 | \newcommand{\CTP}{{\it Commun. Theor. Phys.} } 1064 | \newcommand{\EPL}{{\it EPL\/} } 1065 | \newcommand{\FDR}{{\it Fluid Dyn. Res.} } 1066 | \newcommand{\IZV}{{\it Izv. Math.} } 1067 | \newcommand{\JOS}{{\it J. Semicond.} } 1068 | \newcommand{\PHU}{{\it Phys.-Usp.} } 1069 | \newcommand{\PST}{{\it Plasma Sci. Technol.} } 1070 | \newcommand{\QEL}{{\it Quantum Electron.} } 1071 | \newcommand{\RAA}{{\it Res. Astron. Astrophys.} } 1072 | \newcommand{\RCR}{{\it Russ. Chem. Rev.} } 1073 | \newcommand{\RMS}{{\it Russ. Math. Surv.} } 1074 | \newcommand{\MSB}{{\it Sb. Math.} } 1075 | \newcommand{\SFC}{{\it Science Foundation in China\/} } 1076 | \newcommand{\STAM}{{\it Sci. Technol. Adv. Mater.} } 1077 | \newcommand{\LP}{{\it Laser Phys.} } 1078 | \newcommand{\LPL}{{\it Laser Phys. Lett.} } 1079 | \newcommand{\APEX}{{\it Appl. Phys. Express\/} } 1080 | % 1081 | % SISSA journals 1082 | % 1083 | \newcommand{\JCAP}{{\it JCAP\/} } 1084 | \newcommand{\JHEP}{{\it J. High Energy Phys.\/} } 1085 | \newcommand{\JSTAT}{{\it J. Stat. Mech.} } 1086 | \newcommand{\JINST}{{\it JINST\/} } 1087 | % 1088 | % These are the IOP Conference Series journals: again, if you're 1089 | % submitting to one of these journals you shouldn't be using iopart.cls 1090 | % 1091 | \newcommand{\JPCS}{{\it J. Phys.: Conf. Ser.} } 1092 | \newcommand{\EES}{{\it IOP Conf. Ser.: Earth Environ. Sci.} } 1093 | \newcommand{\MSE}{{\it IOP Conf. Ser.: Mater. Sci. Eng.} } 1094 | 1095 | % 2012 new option for twocolumn output 1096 | \def\ioptwocol{\setlength\hoffset{-0.5in}\setlength\voffset{-0.5in}\setlength\textwidth{6.75in} 1097 | \setlength\columnsep{0.2in}\setlength\textheight{9.25in}\mathindent=0in\twocolumn} 1098 | % 1099 | % 1100 | \pagestyle{headings} 1101 | \pagenumbering{arabic} % Arabic page numbers 1102 | \raggedbottom 1103 | \onecolumn 1104 | \endinput 1105 | %% 1106 | %% End of file `iopart.cls'. 1107 | 1108 | -------------------------------------------------------------------------------- /paper/iopart12.clo: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `iopart12.clo' 3 | %% 4 | %% This file is distributed in the hope that it will be useful, 5 | %% but WITHOUT ANY WARRANTY; without even the implied warranty of 6 | %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7 | %% 8 | %% \CharacterTable 9 | %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z 10 | %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z 11 | %% Digits \0\1\2\3\4\5\6\7\8\9 12 | %% Exclamation \! Double quote \" Hash (number) \# 13 | %% Dollar \$ Percent \% Ampersand \& 14 | %% Acute accent \' Left paren \( Right paren \) 15 | %% Asterisk \* Plus \+ Comma \, 16 | %% Minus \- Point \. Solidus \/ 17 | %% Colon \: Semicolon \; Less than \< 18 | %% Equals \= Greater than \> Question mark \? 19 | %% Commercial at \@ Left bracket \[ Backslash \\ 20 | %% Right bracket \] Circumflex \^ Underscore \_ 21 | %% Grave accent \` Left brace \{ Vertical bar \| 22 | %% Right brace \} Tilde \~} 23 | \ProvidesFile{iopart12.clo}[1997/01/15 v1.0 LaTeX2e file (size option)] 24 | \renewcommand\normalsize{% 25 | \@setfontsize\normalsize\@xiipt{16}% 26 | \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ 27 | \abovedisplayshortskip \z@ \@plus3\p@ 28 | \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ 29 | \belowdisplayskip \abovedisplayskip 30 | \let\@listi\@listI} 31 | \normalsize 32 | \newcommand\small{% 33 | \@setfontsize\small\@xipt{14}% 34 | \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ 35 | \abovedisplayshortskip \z@ \@plus3\p@ 36 | \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ 37 | \def\@listi{\leftmargin\leftmargini 38 | \topsep 9\p@ \@plus3\p@ \@minus5\p@ 39 | \parsep 4.5\p@ \@plus2\p@ \@minus\p@ 40 | \itemsep \parsep}% 41 | \belowdisplayskip \abovedisplayskip 42 | } 43 | \newcommand\footnotesize{% 44 | % \@setfontsize\footnotesize\@xpt\@xiipt 45 | \@setfontsize\footnotesize\@xpt{13}% 46 | \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ 47 | \abovedisplayshortskip \z@ \@plus3\p@ 48 | \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ 49 | \def\@listi{\leftmargin\leftmargini 50 | \topsep 6\p@ \@plus2\p@ \@minus2\p@ 51 | \parsep 3\p@ \@plus2\p@ \@minus\p@ 52 | \itemsep \parsep}% 53 | \belowdisplayskip \abovedisplayskip 54 | } 55 | \newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} 56 | \newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt} 57 | \newcommand\large{\@setfontsize\large\@xivpt{18}} 58 | \newcommand\Large{\@setfontsize\Large\@xviipt{22}} 59 | \newcommand\LARGE{\@setfontsize\LARGE\@xxpt{25}} 60 | \newcommand\huge{\@setfontsize\huge\@xxvpt{30}} 61 | \let\Huge=\huge 62 | \if@twocolumn 63 | \setlength\parindent{14\p@} 64 | \else 65 | \setlength\parindent{18\p@} 66 | \fi 67 | \setlength\headheight{14\p@} 68 | \setlength\headsep{14\p@} 69 | \setlength\topskip{12\p@} 70 | \setlength\footskip{24\p@} 71 | \setlength\maxdepth{.5\topskip} 72 | \setlength\@maxdepth\maxdepth 73 | \setlength\textwidth{37.2pc} 74 | \setlength\textheight{56pc} 75 | \setlength\oddsidemargin {\z@} 76 | \setlength\evensidemargin {\z@} 77 | \setlength\marginparwidth {72\p@} 78 | \setlength\marginparsep{10\p@} 79 | \setlength\marginparpush{5\p@} 80 | \setlength\topmargin{-12pt} 81 | \setlength\footnotesep{8.4\p@} 82 | \setlength{\skip\footins} {10.8\p@ \@plus 4\p@ \@minus 2\p@} 83 | \setlength\floatsep {14\p@ \@plus 2\p@ \@minus 4\p@} 84 | \setlength\textfloatsep {24\p@ \@plus 2\p@ \@minus 4\p@} 85 | \setlength\intextsep {16\p@ \@plus 4\p@ \@minus 4\p@} 86 | \setlength\dblfloatsep {16\p@ \@plus 2\p@ \@minus 4\p@} 87 | \setlength\dbltextfloatsep{24\p@ \@plus 2\p@ \@minus 4\p@} 88 | \setlength\@fptop{0\p@} 89 | \setlength\@fpsep{10\p@ \@plus 1fil} 90 | \setlength\@fpbot{0\p@} 91 | \setlength\@dblfptop{0\p@} 92 | \setlength\@dblfpsep{10\p@ \@plus 1fil} 93 | \setlength\@dblfpbot{0\p@} 94 | \setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@} 95 | \def\@listI{\leftmargin\leftmargini 96 | \parsep=\z@ 97 | \topsep=6\p@ \@plus3\p@ \@minus3\p@ 98 | \itemsep=3\p@ \@plus2\p@ \@minus1\p@} 99 | \let\@listi\@listI 100 | \@listi 101 | \def\@listii {\leftmargin\leftmarginii 102 | \labelwidth\leftmarginii 103 | \advance\labelwidth-\labelsep 104 | \topsep=3\p@ \@plus2\p@ \@minus\p@ 105 | \parsep=\z@ 106 | \itemsep=\parsep} 107 | \def\@listiii{\leftmargin\leftmarginiii 108 | \labelwidth\leftmarginiii 109 | \advance\labelwidth-\labelsep 110 | \topsep=\z@ 111 | \parsep=\z@ 112 | \partopsep=\z@ 113 | \itemsep=\z@} 114 | \def\@listiv {\leftmargin\leftmarginiv 115 | \labelwidth\leftmarginiv 116 | \advance\labelwidth-\labelsep} 117 | \def\@listv{\leftmargin\leftmarginv 118 | \labelwidth\leftmarginv 119 | \advance\labelwidth-\labelsep} 120 | \def\@listvi {\leftmargin\leftmarginvi 121 | \labelwidth\leftmarginvi 122 | \advance\labelwidth-\labelsep} 123 | \endinput 124 | %% 125 | %% End of file `iopart12.clo'. 126 | -------------------------------------------------------------------------------- /paper/main.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/main.pdf -------------------------------------------------------------------------------- /paper/main.tex: -------------------------------------------------------------------------------- 1 | \documentclass[12pt]{iopart} 2 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3 | % INSTITUTE OF PHYSICS PUBLISHING % 4 | % % 5 | % `Preparing an article for publication in an Institute of Physics % 6 | % Publishing journal using LaTeX' % 7 | % % 8 | % LaTeX source code `ioplau2e.tex' used to generate `author % 9 | % guidelines', the documentation explaining and demonstrating use % 10 | % of the Institute of Physics Publishing LaTeX preprint files % 11 | % `iopart.cls, iopart12.clo and iopart10.clo'. % 12 | % % 13 | % `ioplau2e.tex' itself uses LaTeX with `iopart.cls' % 14 | % % 15 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 | % 17 | % First we have a character check 18 | % 19 | % ! exclamation mark " double quote 20 | % # hash ` opening quote (grave) 21 | % & ampersand ' closing quote (acute) 22 | % $ dollar % percent 23 | % ( open parenthesis ) close paren. 24 | % - hyphen = equals sign 25 | % | vertical bar ~ tilde 26 | % @ at sign _ underscore 27 | % { open curly brace } close curly 28 | % [ open square ] close square bracket 29 | % + plus sign ; semi-colon 30 | % * asterisk : colon 31 | % < open angle bracket > close angle 32 | % , comma . full stop 33 | % ? question mark / forward slash 34 | % \ backslash ^ circumflex 35 | % 36 | % ABCDEFGHIJKLMNOPQRSTUVWXYZ 37 | % abcdefghijklmnopqrstuvwxyz 38 | % 1234567890 39 | % 40 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 41 | % 42 | 43 | % !TEX root =main.tex 44 | 45 | \usepackage{graphicx} 46 | \usepackage{subcaption} 47 | \usepackage{orcidlink} 48 | 49 | \usepackage{amsfonts} 50 | \expandafter\let\csname equation*\endcsname\relax 51 | 52 | \expandafter\let\csname endequation*\endcsname\relax 53 | 54 | \usepackage{amsmath} 55 | \usepackage{listings} 56 | \usepackage{xcolor} 57 | 58 | \usepackage[most, breakable]{tcolorbox} 59 | \usepackage{hyperref} 60 | 61 | \hypersetup{ 62 | breaklinks = true, 63 | colorlinks=true, 64 | linkcolor=blue, 65 | filecolor=magenta, 66 | urlcolor=blue, 67 | citecolor=red 68 | } 69 | 70 | 71 | \definecolor{bg}{RGB}{255,249,227} 72 | \definecolor{light_orange}{RGB}{255,193,134} 73 | % \newcommand{\red}[1]{\textcolor{red}{#1}} 74 | \newcommand{\red}[1]{#1} 75 | 76 | \newtcolorbox{optional}[1][]{% 77 | enhanced jigsaw, 78 | %oversize, 79 | colback=bg, 80 | boxrule=0pt, 81 | overlay unbroken and first ={% 82 | \draw[line width=0.2pt,double=bg,draw=bg!70!black, 83 | double distance=1pt,] (frame.north west) -- (frame.north east); 84 | \draw[line width=0.2pt,double=bg,draw=bg!70!black, 85 | double distance=1pt,] (frame.south west) -- (frame.south east);}, 86 | breakable, 87 | arc=0pt,outer arc=0pt, 88 | #1}% 89 | 90 | \newtcolorbox{tldr}[1][]{% 91 | enhanced jigsaw, 92 | %oversize, 93 | colback=light_orange, 94 | boxrule=0pt, 95 | overlay unbroken and first ={% 96 | \draw[line width=0.2pt,double=bg,draw=bg!70!black, 97 | double distance=1pt,] (frame.north west) -- (frame.north east); 98 | \draw[line width=0.2pt,double=bg,draw=bg!70!black, 99 | double distance=1pt,] (frame.south west) -- (frame.south east);}, 100 | arc=0pt,outer arc=0pt, 101 | #1}% 102 | 103 | 104 | \definecolor{codegreen}{rgb}{0,0.6,0} 105 | \definecolor{codegray}{rgb}{0.5,0.5,0.5} 106 | \definecolor{codepurple}{rgb}{0.58,0,0.82} 107 | \definecolor{backcolour}{rgb}{0.95,0.95,0.92} 108 | 109 | \lstdefinestyle{mystyle}{ 110 | backgroundcolor=\color{backcolour}, 111 | commentstyle=\color{codegreen}, 112 | keywordstyle=\color{magenta}, 113 | numberstyle=\tiny\color{codegray}, 114 | stringstyle=\color{codepurple}, 115 | % basicstyle=\ttfamily\footnotesize, 116 | basicstyle=\ttfamily, 117 | breakatwhitespace=false, 118 | breaklines=true, 119 | captionpos=b, 120 | keepspaces=true, 121 | numbers=left, 122 | numbersep=5pt, 123 | showspaces=false, 124 | showstringspaces=false, 125 | showtabs=false, 126 | tabsize=2 127 | } 128 | \lstMakeShortInline[columns=fixed]! 129 | \lstset{style=mystyle} 130 | 131 | \newcommand{\be}{\begin{equation}} 132 | \newcommand{\ee}{\end{equation}} 133 | 134 | 135 | %Uncomment next line if AMS fonts required 136 | %\usepackage{iopams} 137 | \begin{document} 138 | 139 | \title{A practical guide to Digital Micro-mirror Devices (DMDs) for wavefront shaping} 140 | 141 | \author{Sébastien M. Popoff~\footnote{corresponding author}~\orcidlink{0000-0002-7199-9814}} 142 | \address{Institut Langevin, ESPCI Paris, PSL University, CNRS, France} 143 | \ead{sebastien.popoff@espci.psl.eu} 144 | 145 | \author{Rodrigo Gutiérrez-Cuevas~\orcidlink{0000-0002-3451-6684}} 146 | \address{Institut Langevin, ESPCI Paris, PSL University, CNRS, France} 147 | \ead{rodrigo.gutierrez-cuevas@espci.psl.eu} 148 | 149 | \author{Yaron Bromberg~\orcidlink{0000-0003-2565-7394}} 150 | \address{Racah Institute of Physics, The Hebrew University of Jerusalem, Israel} 151 | 152 | \author{Maxime W. Matthès} 153 | \address{Institut Langevin, ESPCI Paris, PSL University, CNRS, France} 154 | 155 | 156 | 157 | % \address{IOP Publishing, Temple Circus, Temple Way, Bristol BS1 6HG, UK} 158 | \vspace{10pt} 159 | \begin{indented} 160 | \item[]September 2023 161 | \end{indented} 162 | 163 | \begin{abstract} 164 | Digital micromirror devices have gained popularity in wavefront shaping, 165 | offering a high frame rate alternative to liquid crystal spatial light modulators. 166 | They are relatively inexpensive, offer high resolution, 167 | are easy to operate, and a single device can be used in a broad optical bandwidth. 168 | However, some technical drawbacks must be considered 169 | to achieve optimal performance. 170 | These issues, often undocumented by manufacturers, 171 | mostly stem from the device's original design for video projection applications. 172 | Herein, we present a guide to characterize and mitigate these effects. 173 | Our focus is on providing simple and practical solutions 174 | that can be easily incorporated into a typical wavefront shaping setup. 175 | \end{abstract} 176 | 177 | % 178 | % Uncomment for keywords 179 | %\vspace{2pc} 180 | %\noindent{\it Keywords}: XXXXXX, YYYYYYYY, ZZZZZZZZZ 181 | % 182 | % Uncomment for Submitted to journal title message 183 | %\submitto{\JPA} 184 | % 185 | % Uncomment if a separate title page is required 186 | %\maketitle 187 | % 188 | % For two-column output uncomment the next line and choose [10pt] rather than [12pt] in the \documentclass declaration 189 | %\ioptwocol 190 | % 191 | 192 | \section{Introduction} 193 | 194 | Since the advent of adaptive optics, various technologies have been employed 195 | to modulate the amplitude and/or phase of light. 196 | Early adaptive optics devices, utilized in fields like microscopy and astronomy, 197 | offer rapid modulation capable of compensating for the aberrations of optical systems 198 | in real-time. 199 | However, these devices are constrained by a limited number of actuators, 200 | restricting their utility in complex media where a large number of degrees of freedom is essential. 201 | Liquid Crystal Spatial Light Modulators (LC-SLMs), 202 | which allow for the control of light phase across typically more than a million pixels, 203 | have emerged as powerful tools for wavefront shaping in complex media 204 | since the seminal work of A. Most and I. Vellekoop in the mid-2000s~\cite{Vellekoop2007focusing}. 205 | Nonetheless, LC-SLMs are hampered by their slow response time, 206 | permitting only a modulation speed ranging from a few Hz to \red{a few hundred} Hz.\\ 207 | 208 | Digital Micromirror Devices (DMDs) have emerged as a technology bridging the gap 209 | between these two types of systems; 210 | they offer a large number of pixels (similar to LC-SLMs) and fast modulation speeds (typically up to several tens of kHz). 211 | Their high speed capabilities made them attractive for real-time applications, 212 | in particular for high-resolution imaging microscopy 213 | requiring fast scanning or illumination shaping~\cite{cha2000nontranslational,Zhuang2020}, 214 | biolithography~\cite{yoon2018emerging}, 215 | and optical tweezers~\cite{gauthier2016direct}. 216 | However, DMDs are restricted to hardware binary amplitude modulation and are not optimized for coherent light applications. 217 | Utilizing DMDs for coherent control of light in complex media is therefore non-trivial 218 | and necessitates specific adaptations for efficient use.\\ 219 | 220 | 221 | 222 | 223 | To comprehend both the capabilities and limitations 224 | of DMD technology for coherent wavefront shaping, 225 | it is crucial to understand the device's operating principles 226 | and its original design intentions. 227 | Investigated and developed by Texas Instruments since the 1980s, 228 | DMDs gained prominence in the 1990s for video projection applications since the 1990s 229 | under the commercial name of Digital Light Processing (DLP)~\cite{hornbeck1997digital,Dudley2003emerging}. 230 | The technology enables high-resolution, high-speed, and high-contrast-ratio modulation of light. 231 | DMDs operate by toggling the state of small mirrors between two distinct angles, denoted as $\pm \theta_\text{DMD}$. 232 | The device is originally engineered for amplitude modulation in video projection applications. 233 | In this configuration, one mirror angle directs light into the projection lens, 234 | while the alternate angle results in the light path being blocked (see Fig.~\ref{fig:combined_pixel}). 235 | Given that projectors utilize incoherent light and that the DMD plane is optically conjugated with the projection screen, 236 | aberrations within the DMD plane are generally not problematic. 237 | Similarly, phase fluctuations induced by temperature variations, 238 | as well as minor vibrations from the cooling hardware, are inconsequential in this context. 239 | The DMD is designed to produce binary on/off modulation, 240 | which is then leveraged to generate grayscale images via pulse-width modulation. 241 | Color modulation is accomplished through the use of a color wheel in conjunction with a bright white light source.\\ 242 | 243 | Third-party companies have developed kits tailored for research applications, 244 | which include a DMD, a control board, and a software interface. 245 | Specifically, Vialux devices~\cite{vialux} offer an FPGA board that enables high-speed modulation 246 | by allowing frames to be stored in the device's memory~\cite{hofling2004alp}. 247 | However, standard Texas Instruments video projector evaluation modules can also be repurposed into wavefront shaping devices~\cite{Cox2021converting}, 248 | though at a compromised modulation speed. 249 | These systems can further be converted into phase or complex field modulators. 250 | This is typically achieved by encoding the optical phase into 251 | the spatial displacement of binary spatial fringes displayed on the DMD, 252 | followed by filtering the high spatial frequencies in the Fourier plane~\cite{lee1979binary}. 253 | Such a configuration permits multi-level complex modulation but sacrifices spatial resolution. 254 | The implementation and performance of such systems are explored in a separate tutorial~\cite{Gutierrez2024DMD} 255 | and will not be elaborated upon here. 256 | For the remainder of this paper, it will be assumed that the DMD is used for complex modulation via such a method.\\ 257 | % While the present tutorial is not constrained to any specific device, 258 | % the software section will predominantly focus on the Vialux control board. 259 | 260 | While other articles exist describing the various aspects of DMDs~\cite{Park2015properties, Scholes2019structured, Cox2021converting, Wang2023diffraction}, 261 | this tutorial aims to provide a guide for easily setting up a DMD for wavefront shaping applications in complex media. 262 | In particular, we provide characterization and validation procedures that require minimal changes compared to typical wavefront shaping setups. 263 | \red{ 264 | More specifically, we place ourselves in a standard experiment where the goal is to shape the complex wavefront impinging on a complex medium and control or measure its output response. 265 | This is typically the case for a focusing experiment~\cite{Vellekoop2007focusing} or for measuring the transmission matrix of a complex medium~\cite{Popoff2010Measuring}. 266 | }\\ 267 | We first introduce the diffraction properties of a DMD 268 | and elaborate on how these could impact the system's efficiency. 269 | We also furnish a straightforward criterion for selecting the appropriate DMD parameters for a specified excitation wavelength. 270 | In the next section, 271 | we delve into the aberration impacts brought about by the non-flatness of the DMD surface. 272 | We demonstrate a simple process to characterize this effect and provide compensation solutions. 273 | In the third segment, 274 | we detail the influence of mechanical vibrations that are induced by the DMD's cooling system. 275 | Lastly, we discuss how the thermalization of the DMD chip can potentially result in variations to the DMD response over time. 276 | 277 | 278 | 279 | 280 | 281 | \begin{figure} 282 | \centering 283 | \begin{subfigure}{0.49\textwidth} 284 | \centering 285 | \includegraphics[width = \textwidth]{images/pixel_1.jpg} 286 | \label{fig:pix_left} 287 | \end{subfigure} 288 | \begin{subfigure}{0.49\textwidth} 289 | \centering 290 | \includegraphics[width = \textwidth]{images/pixel_2.png} 291 | \label{fig:pix_right} 292 | \end{subfigure} 293 | \caption{ 294 | \textbf{Principle of operation of a DMD in a digital projector.} 295 | Left, incident light can be reflected towards the projection lens (state {\em on}), 296 | or onto a beam dump (state {\em off}). 297 | Right, zoom on the pixels. 298 | Image adapted from \cite{JacksonDMD}. 299 | } 300 | \label{fig:combined_pixel} 301 | \end{figure} 302 | 303 | 304 | 305 | 306 | 307 | 308 | \section{Choosing the right DMD: Diffraction effects} 309 | 310 | \subsection{A 1D model} 311 | 312 | A significant distinction between liquid crystal modulators and DMDs 313 | lies in the geometry of the pixel surface. 314 | This difference gives rise to diffraction effects that can adversely affect 315 | both the modulation quality and system efficiency. 316 | The impact of these diffraction effects is highly contingent on several factors: 317 | the wavelength of the illumination, the pixel pitch, and both the incident and outgoing angles. 318 | Therefore, alongside selecting an appropriate anti-reflection coating, 319 | it is crucial to ensure that the pixel pitch is compatible with the specific configuration being used. 320 | Texas Instruments offers chips with a variety of pixel pitches $d$, 321 | ranging approximately from $5$ to $\sim25$ \textmu m~\cite{TI}.\\ 322 | 323 | 324 | To achieve a qualitative understanding of this issue, 325 | we consider a 1D array of pixels as illustrated in Fig.~\ref{fig:grating_geom}. 326 | % For simplicity, we will focus on scenarios where both the incident and outgoing angles 327 | % are nearly perpendicular to the modulator surface, and the mirror tilt angle is minimal. 328 | Initially, let's assume that all pixels are in the same state and are illuminated by a plane wave originating from the far field. 329 | Under these conditions, the pixelated modulator essentially functions as a grating, 330 | with a period $d$ that is equivalent to the pixel pitch. 331 | It is important to underscore that these modulators possess a hardware-limited fill factor, 332 | typically around 90\%. 333 | This translates to an effective active pixel size of $d' < d$.\\ 334 | 335 | In general, a grating gives rise to various diffraction orders 336 | with differing intensities 337 | and angles $\theta_p$, as dictated by the grating equation: 338 | $ 339 | \text{sin}(\theta_p) = p\lambda/d = p \, \text{sin}(\theta_D), 340 | $ 341 | where $\lambda$ is the wavelength of the light, 342 | $\theta_D$ is the angle of the first-order diffraction, 343 | and $p$ is an integer value denoting the orders of diffraction. 344 | The intensity of the individual diffraction orders is influenced by 345 | the response of a single pixel, 346 | constituting the unit cell of the grating, 347 | and that is governed by $d$, $d'$, and its rotation angle in the case of a DMD. 348 | Importantly, we can decouple the effects of the grating's periodicity, 349 | which influences the angles of the diffraction orders, 350 | from the effects of the response of a single pixel, 351 | which shapes the envelope of the angular response.\\ 352 | 353 | \begin{figure} 354 | \centering 355 | \includegraphics[width = \textwidth]{images/grating_geom.pdf} 356 | \caption{ 357 | \textbf{1D grating geometry.} 358 | Schematic representation of the geometry of two types of modulators: 359 | (a) the liquid crystal modulator, equivalent to a flat grating, 360 | and (b) the DMD geometry, equivalent to a blazed grating. 361 | $\alpha$ denotes the incident angle relative to the normal of the array plane, 362 | $\theta_0$ refers to the angle of the zeroth diffraction order, 363 | and $\theta_B$ is the tilt angle of the mirrors.\\ 364 | } 365 | \label{fig:grating_geom} 366 | \end{figure} 367 | 368 | 369 | For a case of normal incidence with an LC-SLM (Liquid Crystal Spatial Light Modulator), 370 | we can assume that the response of a single pixel is uniform over its surface. 371 | Similarly, in the scenario of a blazed grating, 372 | such as a DMD, a linear phase slope is present on each pixel. 373 | This is due to the tilt angle $\theta_B$ of the mirrors. 374 | For an arbitrarily selected incidence angle $\alpha$, 375 | a global phase slope is introduced. 376 | This results in a trivial shift of the angular diffraction pattern by an angle $\alpha$. 377 | In essence, the incident angle $\alpha$ serves to shift the entire angular diffraction pattern 378 | relative to the case of normal incidence, 379 | while the blazed angle $\theta_B$ 380 | —the tilt angle of the mirror in the DMD projected onto the axis we consider— 381 | only shifts the envelope by an angle of $2\theta_B$. 382 | Whenever the fill factor approaches 100\%, 383 | i.e. when $d \approx d'$, 384 | the envelope for a flat grating achieves its maximum at $\theta_0 = -\alpha$; 385 | this corresponds to the angle of the zeroth-order diffraction, 386 | and the intensity nears zero for all other orders. 387 | In these specific conditions, a singular diffraction order is visually perceived, corresponding to the optimum scenario. 388 | The addition of a blazed angle $\theta_B$ results in both 389 | a shift in the envelope and in the position of its maximum, 390 | now indicated by $\theta_0 = 2\theta_B - \alpha$. 391 | In the general case, 392 | this position may not align with a diffraction order anymore~\cite{Park2015properties}. 393 | We provide in Appendix A. a 1D computation of this effect. 394 | A more accurate computation of the far field can be found in ~\cite{Wang2023diffraction}.\\ 395 | 396 | 397 | We represent in Fig.~\ref{fig:gratings} the angular response of a flat grating and a blazed grating 398 | for a 1D filling fraction of 95\% (correponding to a 2D filling fraction of $\approx 90$\%). 399 | For a flat grating, the zero-th order contains most of the intensity, 400 | the other orders being negligible in comparison. 401 | For the blazed grating example shown, 402 | we are in a situation close to the worst case scenario: 403 | Two diffraction orders have a significant and comparable intensity, 404 | and other orders also have a non-negligible contributions. 405 | In the optimal scenario, where the peak of the envelope corresponds to a diffraction order, 406 | it results in a single diffraction order carrying the majority of the energy. 407 | This state is achieved when the conditions of the blazed grating equation are fulfilled~\cite{Casini2014on}: 408 | 409 | 410 | 411 | \begin{equation} 412 | \text{sin}(2\theta_B-\alpha) + \text{sin}(\alpha) 413 | = 2 \,\text{sin}(\theta_B) \,\text{cos}(\theta_B-\alpha) 414 | = p\frac{\lambda}{d} \, . 415 | \label{eq:blazed_eq} 416 | \end{equation} 417 | 418 | \noindent We note that the incident angle $\alpha$ olso affects the diffraction efficiency. 419 | 420 | 421 | 422 | \begin{figure} 423 | \centering 424 | \begin{subfigure}{0.49\textwidth} 425 | \centering 426 | \includegraphics[width = \textwidth]{images/gratings_flat.pdf} 427 | \label{fig:flat_grating} 428 | \end{subfigure} 429 | \begin{subfigure}{0.49\textwidth} 430 | \centering 431 | \includegraphics[width = \textwidth]{images/gratings_blazed.pdf} 432 | \label{fig:blazed_right} 433 | \end{subfigure} 434 | \caption{ 435 | \textbf{Flat grating vs blazed grating.} 436 | Far field diffraction patterns for a 1D flat grating (left) and a 1D blazed grating (right) 437 | for an input angle of $\alpha = -20^\circ$, 438 | a filling fraction of 95\% (corresponding to a 2D filling fraction of $\approx 90$\%), 439 | a pixel tilt angle of $\theta_B = 5^\circ$, 440 | and a wavelength to pixel pitch ratio $0.05$. 441 | Vertical lines represent the angles of the diffraction orders 442 | and the black dashed curve represent the amplitude of the field. 443 | } 444 | \label{fig:gratings} 445 | \end{figure} 446 | 447 | 448 | 449 | 450 | % \begin{equation} 451 | % R_\text{flat}(x) \propto \Pi\left(x/d'\right) \otimes_x \sum_k \delta(x-k d) 452 | % \end{equation} 453 | 454 | % small angle approximation 455 | % \begin{equation} 456 | % R_\text{blazed}(x) \propto \left[\Pi\left(x/d'\right) \times e^{j\frac{2\pi}{\lambda}\theta_B}\right]\otimes_x \sum_k \delta(x-k d) 457 | % \end{equation} 458 | 459 | \subsection{The 2D case} 460 | 461 | To analyze more precisely the effect of diffraction in a DMD, 462 | one needs to consider the 2D surface of the modulator. 463 | We can establish a Cartesian coordinate system on the plane of the DMD, 464 | with axes $x$ and $y$ aligned with the pixel sides 465 | (refer to Fig.~\ref{fig:2d_geom}a). 466 | Pixels are uniformly repeated along these axes. 467 | However, a technical challenge arises 468 | in that the axis of rotation of the pixels 469 | aligns with the pixel diagonals, 470 | resulting in a rotation by 45 degrees with respect to the $x$ and $y$ axes. 471 | For the convenience of alignment and manipulation of the optical setup, 472 | it is preferable to work with the incident and outgoing beams 473 | which have the optical axis contained in the horizontal plane, 474 | i.e. a plane parallel to the table surface. 475 | A straightforward and prevalent solution is to rotate the chip by 45 degrees 476 | relative to the horizontal plane, 477 | which aligns the pixel’s axis of rotation to be vertical. 478 | This configuration is depicted in Fig.~\ref{fig:2d_geom}b.\\ 479 | 480 | 481 | 482 | \begin{figure} 483 | \centering 484 | \includegraphics[width = 0.9\textwidth]{images/dmd_45.pdf} 485 | \caption{ 486 | \textbf{2D grating geometry.} 487 | (a) Schematic representation of the geometry of the DMD. 488 | The incident and reflection angles $\alpha'$ and $\theta_0'$ are situated 489 | within the horizontally plane, illustrated in yellow. 490 | (b) Photograph of the DMD chip oriented so that the rotation axis of the pixels 491 | is aligned vertically. 492 | } 493 | \label{fig:2d_geom} 494 | \end{figure} 495 | 496 | The 2D array can be seen as 2 orthogonal 1D gratings in the $x$ and $y$ directions, 497 | both having the same properties. 498 | A more comprehensive depiction of the 2D system can be found in~\cite{Scholes2019structured}. 499 | In order to utilize Eq.(\ref{eq:blazed_eq}), 500 | one first needs to project 501 | the different angles of the problem onto the incident planes 502 | of the two 1D gratings. 503 | This yields 504 | $\alpha = \text{arctan}\left(\text{tan}(\alpha')/\sqrt{2}\right)$, 505 | $\theta = \text{arctan}\left(\text{tan}(\theta')/\sqrt{2}\right)$, 506 | and $\theta_B = \text{arctan}\left(\text{tan}(\theta_\text{DMD})/\sqrt{2}\right)$, 507 | where $\theta_\text{DMD}$ represents the true rotation angle of the mirrors relative to the diagonal of the pixels, 508 | and $\alpha'$ and $\theta'$ denote the incident and outgoing angles in the horizontal plane. 509 | We can quantify how close we are to the ideal case, 510 | i.e., when satisfying the blazed equation outlined by Eq.(\ref{eq:blazed_eq}), 511 | by defining a {\em blazed number} $\mu$ as introduced in~\cite{WFSnet_diffraction}: 512 | 513 | 514 | 515 | \begin{equation} 516 | \mu = 517 | \left| 518 | \lfloor 4 \frac{d}{\lambda} 519 | \left[ 520 | \text{sin}(\theta_B)\text{cos}(\theta_B-\alpha) 521 | \right] 522 | \rfloor 523 | \mod{2} -1 524 | \right| \, , 525 | \label{eq:blazed_number} 526 | \end{equation} 527 | 528 | with $\lfloor . \rfloor$ representing the floor function, 529 | and $\mod{2}$ the modulo 2 operation. 530 | $\mu$ is maximal and equals $1$ when the blazing equation is satisfied, 531 | i.e. when one order of diffraction contains most of the energy, 532 | and minimal when we are in the worst-case scenario, 533 | i.e. when four orders of diffraction have a significant and equal intensity.\\ 534 | 535 | 536 | To demonstrate the effect, we conduct a simulation of a DMD using Python 537 | (refer to tutorial and code in~\cite{WFSnet_diffraction}) 538 | with two pixel pitches of 539 | $d=7.6$\textmu m and $d=10.8$\textmu m, 540 | under a coherent excitation at $\lambda=633$nm. 541 | Fig.~\ref{fig:mu76} shows the estimated blazed number $\mu$ 542 | as a function of the angle of incidence $\alpha'$ in the horizontal plane, 543 | along with the far field diffraction pattern for two distinct incident angles. 544 | Fig.~\ref{fig:mu_2d} shows the blazed number as a function of both the incident angle 545 | and the wavelength for pixel pitches of $d=7.6$\textmu m and $d=10.8$\textmu m. 546 | It should be noted that the efficiency of diffraction can be altered by adjusting 547 | the angle of incidence. 548 | However, its impact is relatively confined 549 | within an acceptable angular range that aligns with experimental limitations 550 | (i.e. for angles far from $\pm 90^\circ$). 551 | Far-field patterns are centered around the maximum of the envelope 552 | $\theta_\text{max} = 2\theta_B - \alpha$ 553 | (marked by a yellow cross). 554 | We see that for small values of $\alpha$, 555 | the pixel pitch of $d=10.8$\textmu m leads to a blazed number $\mu$ 556 | close $1$. 557 | It corresponds in the far field to having one bright order of diffraction 558 | close to the maximum of the envelope. 559 | 560 | \begin{figure} 561 | % \centering 562 | % \begin{subfigure}{0.49\textwidth} 563 | % \centering 564 | % \includegraphics[width = \textwidth]{images/mu_76.pdf} 565 | % \end{subfigure} 566 | % \begin{subfigure}{0.49\textwidth} 567 | % \centering 568 | % \includegraphics[width = \textwidth]{images/mu_108.pdf} 569 | % \end{subfigure} 570 | \includegraphics[width = \textwidth]{images/mu_1d.pdf} 571 | \caption{ 572 | \textbf{Blazed number and far-field diffraction patterns, extreme cases.} 573 | Blazing number $\mu$ (Eq.(\ref{eq:blazed_number})) as a function of the incident angle $\alpha'$ (top) 574 | for a pixel pitch of $d=7.6$\textmu m (a.) 575 | and $d=10.8$\textmu m (b.). 576 | Corresponding far-field diffraction pattern (bottom) 577 | for two incident angles $\alpha' = 0^\circ$ and $\alpha' = 25^\circ$. 578 | The yellow cross indicates the maximum of the envelope $\theta_\text{max} = 2\theta_B - \alpha$. 579 | } 580 | \label{fig:mu76} 581 | \end{figure} 582 | 583 | \begin{figure} 584 | \centering 585 | \includegraphics[width = \textwidth]{images/mu_2d.pdf} 586 | \caption{ 587 | \textbf{Blazed number as a function of the wavelength and the incident angle. 588 | } 589 | Color map representation of the blazed number for a pixel pitch of $d=7.6$\textmu m (a.) 590 | and $d=10.8$\textmu m (b.). 591 | } 592 | \label{fig:mu_2d} 593 | \end{figure} 594 | 595 | To illustrate the link between the blaze number and the efficiency of the diffraction setup, 596 | we compute the ratio of the energy in the brightest diffraction spot to the total diffracted energy 597 | for different values of the wavelength, 598 | with fixed values for the pixel pitch (7.6 \textmu m) and incident angle (normal incidence). 599 | We simulate the DMD with no gap between the pixels (i.e., a filling fraction of 100\%) 600 | and with 30 pixels in each direction, 601 | where all the mirrors of the pixels are in the same state. 602 | The results are shown in Fig.~\ref{fig:mu_vs_diff}. 603 | We observe that the maxima (resp. minima) of the diffraction efficiency 604 | correspond to the maxima (resp. minima) of the blaze number. 605 | Note that the actual values of the minimum and maximum diffraction efficiency depend on the parameters of the DMD, such as pixel pitch, filling fraction, resolution, etc. 606 | 607 | \begin{figure} 608 | \centering 609 | \includegraphics[width = \textwidth]{images/mu_vs_diffeff.pdf} 610 | \caption{ 611 | \textbf{Blazed number vs diffraction efficiency. 612 | } 613 | Plot of the blazed number and the diffraction efficiency for a normal incidence and a pixel pitch of 7.6 \textmu m 614 | as a function of the wavelength. 615 | The diffraction efficiency is estimated by comparing the energy in a diffracted limited spot at the 616 | location of the brightest diffraction order to the total diffracted energy. 617 | } 618 | \label{fig:mu_vs_diff} 619 | \end{figure} 620 | 621 | \subsection{Modulation cross-talk} 622 | 623 | In practice, we place a pinhole or iris to select 624 | one order of diffraction, 625 | corresponding to the {\em on} state. 626 | Having a small value for the blaze number $\mu$ 627 | not only restricts the amount of light modulation 628 | due to the diminished diffraction efficiency, 629 | it also influences the modulation quality by inducing cross-talk 630 | between the two states of the DMD pixels. 631 | Until now, we have assumed that all the pixels are in the same state. 632 | In actual usage of the DMD, 633 | it becomes necessary to modulate the state of each pixel individually. 634 | When $\mu$ approaches zero, higher orders of diffraction 635 | still possess a significant intensity, 636 | as demonstrated in the 1D case in Fig~\ref{fig:gratings}. 637 | One adverse implication is that pixels in the {\em off} state 638 | may contain orders of diffraction that are not blocked by the pinhole, 639 | and therefore, will contribute as an interference to the modulated wavefront. 640 | We show in Fig.~\ref{fig:xtalk} the normalized amplitude of the diffraction patterns 641 | corresponding to all the pixels in the {\em on} (blue curve) and {\em off} (orange curve) states 642 | for the same experimental conditions but with two different pixel pitches 643 | leading to situations close to the worst (a) and best (b) case scenarios. 644 | We observe the presence of a non-negligible contribution of the {\em off} state 645 | at the main diffraction order of the {\em on} state in the first case. 646 | While this contribution might appear weak, 647 | it does affect the quality of the modulation 648 | since the modulation scheme typically necessitates about half the pixels 649 | to be in the {\em off} state for phase modulation~\cite{lee1979binary}, 650 | and even more so for elaborate modulation schemes~\cite{goorden2014superpixel,Gutierrez2024DMD}.\\ 651 | 652 | 653 | 654 | \begin{figure} 655 | \centering 656 | \includegraphics[width = 0.95\textwidth]{images/xtalk.pdf} 657 | \caption{ 658 | \textbf{Cross-talk between {\em on} and {\em off} states.} 659 | We show the computed normalized amplitude of the diffraction patterns corresponding 660 | to all the pixels in the {\em on} state (blue) 661 | and {\em off} state (orange) 662 | for two different pixel pitches, 663 | $d = 7.6$\textmu m (a.) 664 | and $d = 10.8$\textmu m (b.) 665 | with the same experimental conditions. 666 | In the first case, $\mu$ is close to $0$, 667 | we observe a non-negligible contribution of the {\em off} state 668 | at the main diffraction order of the {\em on} state, 669 | thus creating unwanted cross-talk. 670 | In the second case, $\mu$ is close to $1$, 671 | the contribution of the {\em off} state is negligible. 672 | } 673 | \label{fig:xtalk} 674 | \end{figure} 675 | % For an incident angle $\alpha'$ 676 | % and a reflected angle $\beta'$ 677 | % in the horizontal plane, 678 | % we can use the grating equation 679 | % presented in Eq.~\ref{eq:blazed_eq} 680 | 681 | \subsection{Dispersion} 682 | 683 | 684 | DMDs are composed of metallic small mirrors, 685 | the response of which is minimally affected by wavelength changes. 686 | This is particularly advantageous for broadband applications requiring amplitude modulation 687 | and operating on a plane conjugated to the DMD's surface. 688 | This is the case for the originally intended application of video projection. 689 | However, for wavefront-shaping applications, 690 | it is typically required to select a specific diffraction order 691 | to acheive phase or complex modulation~\cite{lee1979binary,Gutierrez2024DMD}. 692 | Under such circumstances, 693 | the wavelength-dependency of the diffraction effect becomes important. 694 | The blazed number, denoted by $\mu$ (according to Eq.(\ref{eq:blazed_number})), 695 | scales inversely with the wavelength. 696 | Fig.~\ref{fig:dispersion} shows the blazed number $\mu$ 697 | as a function of the wavelength for two pixel pitches $d=7.6$\textmu m and $d=10.8$\textmu m, 698 | with an incident angle of $\alpha' = 20^\circ$. 699 | Within the visible spectrum, $\mu$ fluctuates between $0$ to $1$ over a typical range of roughly 100 nm.\\ 700 | 701 | 702 | 703 | \begin{figure}[ht] 704 | \centering 705 | \includegraphics[width = 0.75\textwidth]{images/blazing_number_VS_wavelength.pdf} 706 | \caption{ 707 | \textbf{Dispersion of the diffraction effect.} 708 | Blazing number $\mu$ (Eq.(\ref{eq:blazed_number})) as a function of the incident wavelength 709 | for an incident angle $\alpha' = 20^\circ$ 710 | and a pixel pitch of $d=7.6$\textmu m (blue curve) 711 | and $d=10.8$\textmu m (dashed black curve). 712 | } 713 | \label{fig:dispersion} 714 | \end{figure} 715 | 716 | 717 | 718 | \begin{tldr} 719 | \textbf{TL;DR:}\\ 720 | DMDs act as blazed gratings. 721 | For a given operation wavelength, 722 | we need to find the right pixel pitch 723 | to have a good modulation quality 724 | and diffraction efficiency. 725 | It can be done by estimating the \textit{blazed number} $\mu$ introduced in eq.~(\ref{eq:blazed_number}) 726 | or directly using our custom online tool~\cite{popoffDMDDiffractionTool}. 727 | \end{tldr} 728 | 729 | 730 | \subsection{Python code example} 731 | 732 | We provide in the paper repository~\cite{github} a Python code 733 | to simulate the diffraction effect of a DMD 734 | by computing the far field pattern for a set of realistic parameters. 735 | It provides a simple way to estimate the blazed number $\mu$ introduced in eq.~(\ref{eq:blazed_number}) 736 | to assess the quality of the modulation at the desired wavelength 737 | for a given pixel pitch. 738 | We also propose an online tool accessible at 739 | \url{https://www.wavefrontshaping.net/post/id/49}. 740 | 741 | 742 | 743 | 744 | % Let's consider first a 1D toy model to have a qualitative understanding of the problem. 745 | 746 | 747 | % Liquid crystal pixels are flat and aligned with the array surface. 748 | % The periodicity of the pixels makes the device behave as a flat grating. 749 | % Thus, the reflection angle is the opposite of the incident one compared to the normal of the array plane. 750 | % That implies that the path coming from each element of the device has the same optical path length 751 | % (see Fig.~\ref{fig:reflection} left). 752 | 753 | 754 | % In a DMD, the modulation is achieved by setting each pixel to one of two states, 755 | % corrsponding to angles $\pm \theta$ with respect to the the normal of the array plane. 756 | % It thus acts as a blazed grating. 757 | % Two consecutive pixels, or elements, now give rise to a phase difference 758 | % between two parallel rays reflected of neighboring pixels (see Fig.~\ref{fig:reflection} right). 759 | % In the Fourier plane, where we commonly select the zero-th order, all the diffraction orders are shifted compared to the optical axis within the same envelope. In the worst scenario, we can end up with four diffraction orders with approximately the same intensity, each significantly shifted compared to the optical axis. An example is shown in Figure 6. This is almost exactly what I had the first time I set up my DMD while I expected something like in Figure 5. 760 | 761 | % Another way of seeing this effect is to consider that the diffraction orders (satisfying the grating equation) do not match anymore the angle of the reflected beam. 762 | 763 | % We first use a 1D model to evaluate the effect of the tilt angle on the diffraction pattern. We then use simple numerical calculations to estimate the profile of the diffraction pattern. The full Python code used in this post is available as an IPython Notebook on my GitHub account: blazing_angle_DMD.ipynb. 764 | 765 | 766 | 767 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 768 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 769 | %%%%%%%%%%%%%%%%%%%%%% ABERRATIONS %%%%%%%%%%%%%%%%%%%%%%%%%%% 770 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 771 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 772 | 773 | 774 | \section{Characterizing aberration effects} 775 | 776 | \subsection{Presentation of the problem} 777 | 778 | While only capable of providing hardware binary amplitude modulation, 779 | DMDs serve as a potent tool for wavefront shaping and sensing. 780 | These applications critically require characterization and correction of aberrations 781 | caused by the non-flatness of the DMD surface. 782 | For LC-SLMs, the manufacturer typically characterizes the surface's inhomogeneities within the plane of the modulator and 783 | provides a spatial phase profile of the introduced aberrations based on the operational wavelength. 784 | It is noteworthy that when utilized for intensity modulation on a plane conjugated to the DMD plane, 785 | as it is done in digital projectors, 786 | the system becomes insensitive to the aberrations caused by the DMD surface. 787 | Consequently, these effects are commonly overlooked and rarely documented in the information provided by the manufacturers. 788 | Nonetheless, they are non-negligible, with deviations from a flat surface 789 | that typically spans several wavelengths~\cite{Brown2021multicolor}.\\ 790 | 791 | 792 | 793 | \subsection{Finding the correction pattern} 794 | 795 | In the literature, various methods have been proposed to characterize 796 | the phase pattern of the DMD aberrations in the plane of the modulator. 797 | Typically, this involves using a model for the aberrations, 798 | tweaking the parameters to align with the measurements~\cite{Matthes2019Optical,Scholes2019structured, Brown2021multicolor}. 799 | An alternative approach entails direct measurement of the distorted wavefront, 800 | either employing a wavefront sensor such as a Shack-Hartmann~\cite{Lee2023compensation}, 801 | or via interferometry. 802 | While such methods yield accurate results, 803 | they necessitate adaptation to the particular 804 | setup conditions, 805 | and frequently require supplementary optical components, 806 | meticulous alignment, 807 | and custom software. 808 | Furthermore, they also demand 809 | a meticulously calibrated and stable setup. 810 | In this section, we introduce a straightforward method to characterize the aberrations using a lens and a camera. 811 | This technique can be employed for any system that offers phase modulation, 812 | such as LC-SLMs or deformable mirrors. \\ 813 | 814 | 815 | 816 | \begin{figure} 817 | \centering 818 | \includegraphics[width = 0.95\textwidth]{images/DMD_abberations_setup.pdf} 819 | \caption{ 820 | \textbf{Setup for aberration correction.} 821 | (a) A schematic representation of the DMD array divided into macropixels, 822 | of which the phase can be controlled. 823 | The precise shape of the macropixels and the area controlled are not crucial for the characterization of aberrations to be effective, 824 | provided that the spatial sampling is sufficient to capture the highest spatial frequencies of the aberrations. 825 | (b) A schematic representation of the setup employed to characterize the aberrations. 826 | A camera is used to image the far field on the DMD surface using a lens. 827 | (c) shows the ideal intensity pattern corresponding to the numerical aperture of the illumination setup, 828 | i.e. its theoretical ideal point spread function. 829 | (d) show the actual recorded intensity pattern corresponding to a distorted point spread function due to the DMD aberrations. 830 | } 831 | \label{fig:dmd_aberr_setup} 832 | \end{figure} 833 | 834 | 835 | We assume the DMD is configured to deliver phase modulation~\cite{lee1979binary,Gutierrez2024DMD}. 836 | This implies that the modulator can be divided into $N$ sections, 837 | which we designate as {\em macropixels}, 838 | where the phase can be controlled independently. 839 | We use a lens and a camera in its Fourier plane, 840 | illuminating the modulator with a collimated beam 841 | that extends over the entire area of the modulator intended for use. 842 | In scenarios where there are minimal or no aberrations, 843 | the intensity pattern observed would mimic the PSF of the lens, 844 | such as an Airy disk depicted in Fig.~\ref{fig:dmd_aberr_setup}.c. 845 | However, in practice, we encounter a substantially distorted pattern, 846 | like the one represented in Fig.~\ref{fig:dmd_aberr_setup}.d. 847 | A more detailed depiction of the setup for aberration characterization, 848 | in the context of a wavefront shaping application in complex media is presented in Fig.~\ref{fig:dmd_aberr_setup2}.a. 849 | In the case where the medium is a multimode fiber, 850 | one could leverage the reflection from the input surface 851 | to directly visualize the intensity pattern of the input plane, 852 | as shown in Fig.~\ref{fig:dmd_aberr_setup2}.b. 853 | \red{ 854 | Note that for the later approach to be reliable, it is necessary to properly align the system to ensure that the plane of the input facet corresponds exactly to the Fourier plane of the DMD, and that the input facet plane is conjugated with the camera plane. 855 | } 856 | \\ 857 | 858 | \begin{figure} 859 | \centering 860 | \includegraphics[width = 0.95\textwidth]{images/aberr_setup.pdf} 861 | \caption{ 862 | \textbf{Detailed aberration characterization setup.} 863 | (a) A laser beam is expanded and collimated using a telescope (lenses L and L'). 864 | The DMD is represented in transmission for simplicity. 865 | Light reflected from the DMD is focused by a lens L$_\text{1}$ 866 | onto the complex medium to study, namely a scattering medium (SC) 867 | or a multimode fiber (MMF). 868 | A beamsplitter is used to image the far field of the DMD onto a camera 869 | using a lens (L$_\text{2}$). 870 | The intensity pattern, up to a homotetic transformation, 871 | represent the input excitation on the medium 872 | which also corresponds to the PSF of the illumination setup. 873 | (b) In the case of a multimode fiber, 874 | one can take advantage of the reflection of the input facet 875 | to directly image the intensity pattern of the input plane. 876 | } 877 | \label{fig:dmd_aberr_setup2} 878 | \end{figure} 879 | 880 | We hypothesize that the aberrations brought about by the DMD are smooth, 881 | and can be depicted by a phase pattern $\phi^\text{aber}$ in the plane of the DMD array. 882 | This could be feasibly approximated by a finite number of Zernike polynomials 883 | $Z_n(r,\theta)$~\cite{Zernike1934beugungstheorie}, as follows: 884 | 885 | 886 | 887 | \begin{equation} 888 | \phi^\text{aberr}(r,\theta) \approx \sum_{n=0}^N a_n Z_n(r,\theta) \, . 889 | \end{equation} 890 | 891 | The goal is to find and display the phase value 892 | $\phi_i^\text{corr}$ on each macropixel $i$ that best compensates for the aberrations, 893 | i.e. $\phi_i^\text{corr} = -\phi^\text{aber}(r_i,\theta_i)$. 894 | We create this pattern in the basis of Zernike polynomials 895 | 896 | \begin{equation} 897 | \phi_i^\text{corr} = \sum_{n=0}^N a'_n Z_n(r,\theta) \, , 898 | \end{equation} 899 | 900 | \noindent the best correction is obtained for 901 | 902 | 903 | \begin{equation} 904 | a'_n = -a_n \,\, \forall n \in [0..N]\, . 905 | \end{equation} 906 | 907 | \begin{figure} 908 | \centering 909 | \includegraphics[width = 0.95\textwidth]{images/Zernike_1.pdf} 910 | \caption{ 911 | \textbf{Correction phase map.} 912 | (a) Schematic representation of the function we want to optimize, 913 | i.e. we optimize the ratio between 914 | the sum of the intensity of the measured image in a diffraction-limited disk 915 | and the sum of the intensity elsewhere. 916 | We both want to maximize the intensity of the main lobe of the point spread function 917 | and minimize its side lobes. 918 | (b) Values of the experimentally obtained optimal coefficients in the Zernike polynomials basis. 919 | (c) Resulting optimal phase pattern in the chosen illumination area. 920 | } 921 | \label{fig:phase_corr} 922 | \end{figure} 923 | 924 | We perform a sequential optimization of parameters $a_n$ 925 | to maximize a specific function designed 926 | to be maximal for the ideal correction of optical aberrations. 927 | We first generate a mask, represented by a disk, 928 | centered around the point of maximum intensity of the original image (refer to Fig.~\ref{fig:dmd_aberr_setup}.d) 929 | with a radius equivalent to a single speckle grain. 930 | The exact size of this radius for a successful optimization is not critical 931 | and can be determined by approximating the dimensions of the ideal point spread function, 932 | expressed as $r_0 \approx M \frac{\lambda}{2 NA}$, 933 | where $NA$ is the numerical aperture of the optical system and $M$ refers to its magnification. 934 | For a given output intensity pattern, we compute an element-wise product between this image 935 | and the created mask, followed by a summation. 936 | This calculated sum is then divided by an analogous product, but with the complementary mask substituted in place of the original 937 | in order to minimize the side lobes of the point spread function. 938 | We set initial parameter values as $a'_n = 0\,\, \forall n \in [0..N]$. 939 | For each parameter, we test different values of $a'_n$, 940 | construct the phases for every micropixel according to 941 | $\phi_i^\text{corr} = \sum_{n=0}^N a'_n Z_n(r_i,\theta_i)$, 942 | record the resulting intensity profile, 943 | and evaluate the corresponding cost function. 944 | For each parameter, the value that results in the maximum output is retained. 945 | To mitigate potential noise or instability, this complete process is reiterated $3$ times for each parameter.\\ 946 | 947 | 948 | To estimate the quality of the correction, 949 | we compute the Strehl ratio of the point spread function. 950 | It is defined as the maximum of the measured PSF divided 951 | by the maximum of the ideal one. 952 | This optimal PSF is 953 | the squared modulus of the Fourier transform of a circular aperture~\cite{airy1835diffraction}: 954 | 955 | \begin{equation} 956 | PSF_\text{ideal} \propto 957 | \left[ 958 | J_1\left(k a \frac{R}{\sqrt{R^2+f^2}}\right) 959 | \right]^2 \, , 960 | \end{equation} 961 | 962 | with $J_1$ the Bessel function of the first kind of order $1$, 963 | $k = 2\pi/\lambda$ the wavenumber, 964 | $a$ the radius of the aperture, 965 | $R$ the radial coordinate in the Fourier plane, 966 | and $f$ the focal length of the lens.\\ 967 | 968 | 969 | As an illustration, we conduct an optimization procedure using 11 Zernike polynomials. 970 | We use a V-9501 Vialux DMD with a DLP9500 TI chip 971 | of resolution 1920 by 1200 pixels and a pixel pitch of 10.8 \textmu m. 972 | The optimization is performed on a disk of radius $340$ pixels, 973 | The illumination is done using an expanded laser beam at 633 nm, 974 | corresponding to the aperture of our optical setup. 975 | We exclude the first three Zernike polynomials in the optimization process, 976 | starting from the radial degree $2$. 977 | Indeed, the initial one, known as the piston, does not influence the PSF quality. 978 | The subsequent ones, the tip and the tilt, cause the PSF to shift. 979 | Our procedure relies on optimizing the maximum of the PSF, wherever that is, 980 | rendering us indifferent to these two parameters. 981 | After optimization, 982 | it is possible to generate the correction pattern using a selected number of Zernike polynomials 983 | in order to investigate their impact on the PSF quality. 984 | We see here that using about 10 Zernike polynomials is sufficient to obtain a Strehl ratio $>0.99$. 985 | Fig.~\ref{fig:zernike} demonstrates the Strehl ratio and the intensity profiles of the PSF 986 | for different counts of the utilized Zernike polynomials. 987 | It is important to note that we do not use the full surface of the DMD. 988 | Using a larger area may lead to stronger deformations of the PSF, 989 | requiring a larger number of Zernike polynomials to be corrected accurately. 990 | The experimental data, in addition to the Python code used to generate the figures, can be accessed in the dedicated repository~\cite{github}.\\ 991 | 992 | 993 | 994 | 995 | 996 | \begin{figure} 997 | \centering 998 | \includegraphics[width = 0.95\textwidth]{images/Zernike_2.pdf} 999 | \caption{ 1000 | \textbf{Effect of Zernike polynomials on the optimization of the PSF.} 1001 | (a) Strehl ratio of the point spread function as a function of the number of Zernike polynomials used 1002 | for the compensation of the aberrations. 1003 | (b) Intensity profile of the point spread function for different number of Zernike polynomials 1004 | in linear and logarithmic scale. 1005 | To generate this data, we take the final solution of the optimization experimental procedure, 1006 | i.e. the optimal coefficients $a'_n$, 1007 | and generate the corrected PSF with an increasing number of Zernike polynomials. 1008 | } 1009 | \label{fig:zernike} 1010 | \end{figure} 1011 | 1012 | 1013 | \subsection{Python code example} 1014 | 1015 | We provide in the paper repository~\cite{github} a Python code example 1016 | to simulate the effect of aberration on a DMD 1017 | and then perform a sequential optimization as previously proposed 1018 | to learn the characterize pattern. 1019 | We make use of the !aotools! package~\cite{Townson2019aotools} for generating Zernike polynomials. 1020 | 1021 | % In this section, we provide Python code snippets for performing aberration correction. 1022 | % We presuppose that phase modulation can be controlled using a function, 1023 | % !display_phase_mask(phase_pattern)!, to display a desired phase pattern 1024 | % with real values between $0$ and $2\pi$. 1025 | % It is important to note that phase modulation utilizing a DMD demands an appropriate setup 1026 | % and process. Although not detailed here, 1027 | % this is elaborated upon in the referenced tutorial~\cite{Gutierrez2024DMD}. 1028 | % Additionally, we assume the existence of a function, !get_camera_image()!, 1029 | % which returns the intensity pattern as measured by the camera. 1030 | 1031 | 1032 | 1033 | \begin{tldr} 1034 | \textbf{TL;DR:}\\ 1035 | DMDs are not flat and can introduce aberrations; 1036 | these are typically much stronger than those commonly observed with liquid crystal SLMs. 1037 | This can be counteracted in situ using a standard setup and a straightforward optimization procedure 1038 | to maximize the intensity at the central position of the point spread function. 1039 | \end{tldr} 1040 | 1041 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1042 | %%%%%%%%%%%%%%%%%%%% 4. STABILITY %%%%%%%%%%%%%%%%%%%%%%%%%%% 1043 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1044 | 1045 | \section{Mechanical and thermal stability} 1046 | 1047 | Unlike the original purpose of the DMD, i.e. amplitude modulation for video projectors, 1048 | typical scientific applications require a high stability of the generated wavefront. 1049 | This is particularly true for applications in complex media, 1050 | such as strongly scattering media or multimode fiber, 1051 | where a small change in the phase front can lead to a large change in the output intensity profile. 1052 | While LC-SLMs design has been improved and adapted to scientific applications 1053 | over the last decades, 1054 | DMD are still relatively new tools for wavefront shaping and sensing 1055 | and are prone to instabilities that need to be addressed by the user. 1056 | In this section, we present the effect of mechanical and thermal instabilities 1057 | and how to limit their impact on the wavefront quality with simple solutions.\\ 1058 | 1059 | 1060 | \subsection{Mechanical stability} 1061 | 1062 | 1063 | Most DMD kits consist of two primary components, 1064 | the chip itself and the electronic board that controls it. 1065 | This could be the standard electronics board typically used for video projectors, 1066 | as seen in TI evaluation kits, 1067 | or an FPGA specifically designed for rapid scientific usage, 1068 | as offered by Vialux~\cite{vialux} for instance. 1069 | Integral to these electronics is a fan designed to cool both the chip and the electronic board. 1070 | However, due to the use of a rigid flat cable for connection between the chip and the electronics board, 1071 | these parts are not mechanically independent. 1072 | As such, vibrations originating from the board are partially transmitted to the chip, 1073 | resulting in minute rotations of the mirror surface. 1074 | Although this perturbation is inconsequential for video projection, 1075 | they can have significant impacts on applications involving complex media 1076 | given their high sensitivity to phase front variations.\\ 1077 | 1078 | 1079 | Due to its high sensitivity in complex media, 1080 | it is convenient to characterize this effect 1081 | directly on the system's response, 1082 | rather than constructing a distinct setup to analyze the wavefront itself. 1083 | An example of such a setup is demonstrated in Fig.~\ref{fig:MMF_ref}, 1084 | although a similar approach can be employed with a scattering medium. 1085 | We enlarge a laser beam onto the DMD and transmit the incoming light through a multimode fiber. 1086 | Additional elements are required in the setup to fulfill the requirement for complex modulation~\cite{Gutierrez2024DMD}. 1087 | For the sake of clarity, we present a simplified version of the setup where those elements are not present. 1088 | The output from the fiber is then made to interfere with a reference arm 1089 | in an off-axis configuration~\cite{Cuche2000spatial}, 1090 | allowing us to detect changes in the output complex field 1091 | by recording the interference pattern using a camera.\\ 1092 | 1093 | 1094 | 1095 | 1096 | \begin{figure}[ht] 1097 | \centering 1098 | \includegraphics[width = 0.95\textwidth]{images/MMF_ref.pdf} 1099 | \caption{ 1100 | \textbf{Measuring stability at the output of a multimode fiber.} 1101 | Schematic representation of the setup used to measure the phase fluctuations 1102 | through a multimode fiber. 1103 | An equivalent setup can be used with a scattering medium. 1104 | } 1105 | \label{fig:MMF_ref} 1106 | \end{figure} 1107 | 1108 | In the supplementary materials~\cite{SI}, we present an animation illustrating the dynamic pattern. 1109 | In off-axis holography, 1110 | the local transverse displacement of the fringes 1111 | is directly proportional to the phase, 1112 | with a displacement equivalent to the period of the fringes corresponding to $2\pi$~\cite{Cuche2000spatial}. 1113 | This permits us to estimate the fluctuation in phase over time at a given position of the output plane. 1114 | As illustrated in Fig.~\ref{fig:phase_vibrations} (depicted by the red curve), 1115 | the phase varies rapidly over time, 1116 | a fluctuation attributed to the rapid mechanical vibrations transmitted by the board.\\ 1117 | 1118 | 1119 | 1120 | \begin{figure}[ht] 1121 | \centering 1122 | \includegraphics[width = 0.75\textwidth]{images/phase_vibrations.pdf} 1123 | \caption{ 1124 | \textbf{Vibration induced phase fluctuations.} 1125 | Phase fluctuations measured over time at 1126 | a specific position on a plane located at the distal end of a multimode fiber. 1127 | We employ off-axis holography using the setup depicted in Fig.~\ref{fig:MMF_ref}. 1128 | The red and blue curves correspond to the phase fluctuations 1129 | measured respectively without and with vibration damping 1130 | by securing the flat cable with foam, as illustrated in Fig.~\ref{fig:dumping}. 1131 | } 1132 | \label{fig:phase_vibrations} 1133 | \end{figure} 1134 | 1135 | 1136 | A simple yet effective solution consists in dampening the vibrations 1137 | at the flat cable's level by clamping it with a soft material, 1138 | as depicted in Fig.~\ref{fig:dumping}. 1139 | This can be achieved using commonly available materials. 1140 | In this context, we utilize simple foam, typically used for packaging, and secure it to the cable 1141 | with two metallic plates, screws, and nuts. 1142 | We observe a significant decrease in the phase fluctuations, 1143 | as demonstrated in Fig.~\ref{fig:phase_vibrations} (blue curve).\\ 1144 | 1145 | 1146 | 1147 | \begin{figure}[ht] 1148 | \centering 1149 | \includegraphics[width = 0.95\textwidth]{images/dumping.pdf} 1150 | \caption{ 1151 | \textbf{Dumping mechanical vibrations.} 1152 | Pictures of experimental setups where a damping of the vibrations is implemented. 1153 | (a) The flat cable is secured with foam and metallic plates. 1154 | (b) The flat cable is in tension against a foam material supported by a metallic plate. 1155 | } 1156 | \label{fig:dumping} 1157 | \end{figure} 1158 | 1159 | \begin{tldr} 1160 | \textbf{TL;DR:}\\ 1161 | The functioning of DMDs can be perturbed by vibrations transmitted from the electronics board 1162 | via the rigid flat cable that links it to the DMD chip. 1163 | This adverse effect can be minimized by securing the cable with a soft material 1164 | that serves to dampen these vibrations. 1165 | \end{tldr} 1166 | 1167 | \subsection{Thermal stability} 1168 | 1169 | Electronics utilized to control the DMD chip experience thermal variations during operation. 1170 | The dynamics of this effect are dependent on the frame rate. 1171 | Specifically, the chips heats up more quickly when increasing the frame rate. 1172 | The increase of temperature can reach more than $15$ degrees Celsius 1173 | when running a sequence at maximum speed (20-30 kHz)~\cite{Rudolf2021thermal}. 1174 | Notably, this effect is less pronounced when the device is on but not running a sequence. 1175 | Temperature fluctuations can cause deformations on the chip's surface 1176 | and can modify the phase response of the glass protective window. 1177 | This creates low order aberrations, which degrade the quality of the wavefront. 1178 | While this issue is comparatively less critical than static aberrations and mechanical instabilities 1179 | previously detailed, 1180 | it nonetheless has a substantial impact on the complex medium's response 1181 | when a DMD is employed to modulate the input wavefront.\\ 1182 | 1183 | \red{Empirically, we observe deformations of the pattern 1184 | at the output of the medium under study when the DMD chip heats up after switching on the device. 1185 | These deformations originate from a temperature-dependent perturbation of the modulated field. 1186 | We attribute this effect to the transparent part of the DMD 1187 | (i.e., the protection glass window) 1188 | having a refractive index that significantly changes with temperature. 1189 | Once the device reaches thermal equilibrium, this effect stabilizes, 1190 | allowing us to find the appropriate correction mask as described in Section 3 of the manuscript. 1191 | It is important to stress that it is the thermal fluctuations that impact the stability of the modulation, 1192 | not the temperature itself, 1193 | as we obtain stable experimental conditions even when equilibrium is reached 1194 | at the maximal operating temperature of the modulator without thermal cooling.\\} 1195 | 1196 | 1197 | 1198 | 1199 | Before initiating a wavefront shaping experiment, 1200 | it is important to characterize the influence of temperature 1201 | to assess the extent to which it impacts the results. 1202 | Although the exact effect on the wavefront distortion can be directly quantified~\cite{Rudolf2021thermal}, 1203 | it is typically more convenient 1204 | to directly measure the effect on the studied system's response. 1205 | \red{Directly using the output of the complex medium under study presents multiple advantages. First, it allows the setup to remain unchanged and facilitates easy re-characterization of the effect if some parameters change. Additionally, complex media tend to be very sensitive to input phase changes, with the sensitivity varying from one medium to another. By using the complex medium itself, we obtain the exact sensitivity needed for the current setup. Therefore, regardless of the qualitative changes in the input field, stability in the output indicates that the setup is adequate for studying the medium in question.} 1206 | To do so, we use a setup similar to the one presented in the previous section 1207 | and depicted in Fig.~\ref{fig:MMF_ref}. 1208 | We can then estimate the field or intensity decorrelation over time. 1209 | We present here results with intensity correlation, as it does not require a reference arm. 1210 | The measured output pattern typically take the form of a seemingly random speckle pattern, 1211 | that is sensitive to minute changes in the input wavefront. 1212 | The correlation estimation is obtained by comparing the output intensity pattern 1213 | $I(\vec{r}, t)$ at a given time $t$ 1214 | to the one at $t=0$. 1215 | We use the following expression for the correlation: 1216 | 1217 | 1218 | 1219 | \begin{equation} 1220 | C(t) = 1221 | \frac{ 1222 | \left\langle 1223 | \bar{I}(\vec{r}, t) \bar{I}(\vec{r}, t=0) 1224 | \right\rangle_{\vec{r}} 1225 | }{ 1226 | \sqrt{ 1227 | \left\langle 1228 | \bar{I}(\vec{r}, t)^2 1229 | \right\rangle_{\vec{r}} 1230 | \left\langle 1231 | \bar{I}(\vec{r}, t=0)^2 1232 | \right\rangle_{\vec{r}} 1233 | } 1234 | } \, , 1235 | \label{eq:temp_decorr} 1236 | \end{equation} 1237 | 1238 | 1239 | 1240 | 1241 | with $\bar{I}(\vec{r}, t) = I(\vec{r}, t) - \left\langle I(\vec{r}, t) \right\rangle_{t}$ 1242 | and $\left\langle . \right\rangle_{\vec{r}}$. 1243 | $\left\langle . \right\rangle_{t}$ 1244 | represent the spatial averaging over the region of interest 1245 | of the output plane (i.e. the plane of the camera sensor) 1246 | and the temporal averaging over the measured frames. 1247 | Fig.~\ref{fig:temp_decorr} shows the measured decorrelation 1248 | over time when running an sequence in an infinite loop. 1249 | $t=0$ correspond in the first case (a) 1250 | to the start of a sequence 1251 | and is set in the second one to 1252 | 4.2 hours post the after of the sequence (b). 1253 | For the scenario (a), it is to note that before the sequence commenced, 1254 | the DMD was active but remained in the idle state, 1255 | meaning that it was not executing a sequence. 1256 | We observe a non-negligible decorrelation over time 1257 | after the sequence started 1258 | that slows down after about 1 hour. 1259 | When running the same experiment 4.2 hours after starting the sequence, 1260 | the correlation is now stable.\\ 1261 | 1262 | 1263 | 1264 | \begin{figure}[ht] 1265 | \centering 1266 | \includegraphics[width = 0.95\textwidth]{images/DMD_decorrelation_T.pdf} 1267 | \caption{ 1268 | \textbf{Effect of temperature.} 1269 | Temporal decorrelation of a speckle pattern measured at the output of a multimode fiber 1270 | when running a sequence in an infinite loop. 1271 | We use Eq.(\ref{eq:temp_decorr}) to estimate the correlation between the intensity pattern 1272 | at a given time $t$ and the one at $t=0$. 1273 | $t=0$ corresponds respectively to the start of the sequence (a) 1274 | and to 4.2 hours after the start of the sequence (b). 1275 | } 1276 | \label{fig:temp_decorr} 1277 | \end{figure} 1278 | 1279 | The more efficient way to counteract this effect is to use a 1280 | closed-loop system to stabilize the temperature of the DMD chip. 1281 | This can be achieved by using a thermoelectric cooler 1282 | as demonstrated in Ref.~\cite{Rudolf2021thermal} 1283 | and depicted in Fig.~\ref{fig:decorr_T}. 1284 | 1285 | \begin{figure} 1286 | \centering 1287 | \includegraphics[width = 0.65\textwidth]{images/Cizmar_1.pdf} 1288 | \caption{ 1289 | \textbf{Thermal stabilization of the DMD chip.} 1290 | Schematic representation of the setup utilized to regulate the temperature of the DMD chip. 1291 | A thermoelectric cooler and a heat sink is employed to control the temperature, 1292 | while a thermistor is used to measure deviations from the temperature setpoint. 1293 | A closed-loop system is used to regulate the temperature. 1294 | Image adapted from~\cite{Rudolf2021thermal}. 1295 | } 1296 | \label{fig:decorr_T} 1297 | \end{figure} 1298 | 1299 | \begin{tldr} 1300 | \textbf{TL;DR:}\\ 1301 | DMDs take about an hour to thermally stabilize when a sequence is running. 1302 | It can countered by using a thermoelectric cooler 1303 | and a temperature sensor. 1304 | It can also be simply mitigated by letting a sequence run for few hours 1305 | before starting the experiment. 1306 | \end{tldr} 1307 | 1308 | \section{Conclusion} 1309 | DMDs are powerful tools for wavefront shaping applications in complex media 1310 | due to their high pixel count, relative low cost, and high refresh rate. 1311 | However, mostly due to their original purpose of amplitude modulation 1312 | of incoherent light for video projection, 1313 | several effects need to be taken into account when using DMDs for wavefront shaping. 1314 | First, the choice of its pixel pitch must be made carefully 1315 | by considering the wavelength of operation 1316 | to ensure a good modulation quality and diffraction efficiency. 1317 | Furhtermore, the DMD surface is not flat and can introduce aberrations 1318 | which can be corrected using a simple optimization procedure. 1319 | Finally, the DMD is sensitive to mechanical vibrations and thermal variations, 1320 | which can be mitigated ensuring a good mechanical and thermal isolation of the device. 1321 | 1322 | % \section{Acknowledgments} 1323 | 1324 | \section*{Data and code availability} 1325 | 1326 | \noindent Data and code examples are available in the dedicated repository~\cite{github}. 1327 | 1328 | 1329 | \section*{Appendix A: 1D calculation of the DMD diffraction effect} 1330 | \label{app:1D} 1331 | 1332 | 1333 | Assuming the effect of the device's finite size and illumination to be negligible, 1334 | and situating ourselves within the context of the small-angle approximation, 1335 | we can represent the field reflected from the device 1336 | under the influence of plane wave illumination 1337 | across two systems as follows: 1338 | 1339 | 1340 | \begin{equation} 1341 | \begin{aligned} 1342 | R_\text{flat}(x) & \propto \left[\Pi\left(x/d'\right) \otimes_x \sum_k \delta(x-k d)\right]e^{-j\frac{2\pi}{\lambda}\text{sin}(\alpha) x} \\ 1343 | R_\text{blazed}(x) & \propto 1344 | \underbrace{ 1345 | \left( 1346 | \underbrace{\Pi\left(x/d'\right)}_\text{pixel size} 1347 | \times 1348 | \underbrace{e^{j\frac{2\pi}{\lambda}2\text{sin}(\theta_B-\alpha) x}}_{\substack{\text{blazed angle} \\ \text{+ angle of incidence}}} 1349 | \right) 1350 | }_\text{pixel response} 1351 | \otimes_x 1352 | \left[ 1353 | \underbrace{\sum_k \delta(x-k d) }_\text{periodicitiy} 1354 | . 1355 | \underbrace{ 1356 | e^{-j\frac{2\pi}{\lambda}\text{sin}(\alpha) kd} 1357 | }_\text{angle of incidence} 1358 | \right] 1359 | \, , 1360 | \end{aligned} 1361 | \label{eq:grating_response} 1362 | \end{equation} 1363 | 1364 | with $\Pi(x)$ the rectangular function, 1365 | representing the finite size of the pixel, 1366 | defined as: 1367 | 1368 | \begin{equation} 1369 | \Pi(x) = 1370 | \begin{cases} 1371 | 1, & \text{if } -\frac{1}{2} < x < \frac{1}{2}, \\ 1372 | 0, & \text{otherwise}. 1373 | \end{cases} 1374 | \end{equation} 1375 | 1376 | The intensity as a function of the angle in the far-field 1377 | is given, up to a homotetic transformation, 1378 | by the absolute value squared of 1379 | 1380 | The Fourier transform of Eq.~\ref{eq:grating_response} can be written as: 1381 | 1382 | 1383 | 1384 | 1385 | 1386 | 1387 | \begin{equation} 1388 | \begin{aligned} 1389 | I_\text{flat}(\theta) \propto 1390 | \sum_p \delta(\text{sin}(\theta)+\text{sin}(\alpha)) 1391 | \times 1392 | \text{sinc}^2\left( \left[\text{sin}(\theta)+\text{sin}(\alpha)\right] \frac{\lambda}{d'}\right) \\ 1393 | I_\text{blazed}(\theta) \propto 1394 | \underbrace{ 1395 | \sum_p \delta(\text{sin}(\theta)+\text{sin}(\alpha)-p\,\theta_D) 1396 | }_\text{orders of diffraction} 1397 | \times 1398 | \underbrace{ 1399 | \text{sinc}^2\left( \left[\text{sin}(\theta)+\text{sin}(\alpha)\right] \frac{\lambda}{d'}\right) 1400 | }_\text{envelope} \, . 1401 | \end{aligned} 1402 | \end{equation} 1403 | 1404 | 1405 | We observe that the envelope (right hand term) is maximal for $\text{sin}(\theta_{max}) = \text{sin}(\alpha-2\theta_B)$ 1406 | while the effect of the periodicity (left hand term) is maximal for $\text{sin}(\theta_p)+ \text{sin}(\alpha) = p \lambda/d$, 1407 | representing the orders of diffraction. 1408 | 1409 | \section*{Acknowledgments} 1410 | 1411 | \noindent 1412 | S.M.P, M.W.M, and R.G.C and acknowledge the French \textit{Agence Nationale pour la Recherche} grants No. ANR-23-CE42-0010-01 MUFFIN and No. ANR-20-CE24-0016 MUPHTA 1413 | and the Labex WIFI grant No. ANR-10-LABX-24, ANR-10-IDEX-0001-02 PSL*. 1414 | 1415 | 1416 | \section{Bibliography} 1417 | 1418 | 1419 | \bibliographystyle{unsrt} 1420 | \bibliography{biblio} 1421 | 1422 | \end{document} 1423 | 1424 | -------------------------------------------------------------------------------- /paper/movies/movie_evol_n_zernike_psf.avi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/movies/movie_evol_n_zernike_psf.avi -------------------------------------------------------------------------------- /paper/movies/stability_with_clamp_movie.avi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/movies/stability_with_clamp_movie.avi -------------------------------------------------------------------------------- /paper/movies/stability_without_clamp_movie.avi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/paper/movies/stability_without_clamp_movie.avi -------------------------------------------------------------------------------- /python/data_correction_Zernike: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/python/data_correction_Zernike -------------------------------------------------------------------------------- /python/movie_evol_n_zernike_psf.avi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/python/movie_evol_n_zernike_psf.avi -------------------------------------------------------------------------------- /python/movie_evol_n_zernike_psf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wavefrontshaping/tutorial-DMD-setup-2023/34c677534f9ea6a2962a167e246d5755d33cfbc6/python/movie_evol_n_zernike_psf.gif -------------------------------------------------------------------------------- /python/shrink_data.py: -------------------------------------------------------------------------------- 1 | import pickle 2 | 3 | DATA_FILE = "./data_correction_Zernike_big" 4 | NEW_DATA_FILE = "./data_correction_Zernike" 5 | 6 | with open(DATA_FILE, "rb") as file: 7 | data = pickle.load(file) 8 | 9 | new_data = { 10 | "final_last_image": data["final_last_image"], 11 | "zernike_coefficients": data["zernike_coefficients"], 12 | "correction_complex_mask": data["correction_complex_mask"], 13 | "evol_coeff_imgs": data["evol_coeff_imgs"], 14 | } 15 | data = new_data 16 | 17 | pickle.dump(data, open(NEW_DATA_FILE, "wb")) 18 | -------------------------------------------------------------------------------- /ressources/logos/gscholar.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 33 | 36 | 40 | 44 | 50 | 54 | 55 |