Quick viewing(Text Mode)

Nanolithography Toolbox

Nanolithography Toolbox

NIST Handbook 160

Nanolithography Toolbox

Krishna C. Balram, Daron A. Westly, Marcelo Davanco, Karen E. Grutter, Qing Li, Thomas Michels, Christopher H. Ray, Liya Yu, Richard J. Kasica, Christopher B. Wallin, Ian J. Gilbert, Brian A. Bryce, Gregory Simelgor, Juraj Topolancik, Nicolae Lobontiu, Yuxiang Liu, Pavel Neuzil, Vojtech Svatos, Kristen A. Dill, Neal A. Bertrand, Meredith G. Metzler, Gerald Lopez, David A. Czaplewski, Leonidas Ocola, Kartik A. Srinivasan, Samuel M. Stavis, Vladimir A. Aksyuk, J. Alexander Liddle, Slava Krylov, and B. Robert Ilic

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160

NIST Handbook 160

Nanolithography Toolbox

Krishna C. Balram, Daron A. Westly, Marcelo Pavel Neuzil Davanco, Karen E. Grutter, Qing Li, Thomas Brno University of Technology (BUT), Central Michels, Christopher H. Ray, Liya Yu, Richard J. European Institute of Technology (CEITEC), Kasica, Christopher B. Wallin, Ian J. Gilbert, Kristen Technicka 3058/10, CZ-616 00 Brno, Czech Republic A. Dill, Neal A. Bertrand, Kartik A. Srinivasan, Department of Microsystems, Northwestern Samuel M. Stavis, Vladimir A. Aksyuk, J. Alexander Polytechnical University, Xi’an, P.R. China Liddle, Slava Krylov, and B. Robert Ilic Vojtech Svatos Center for Nanoscale Science and Technology Brno University of Technology (BUT), Central Brian A. Bryce European Institute of Technology (CEITEC), Harvey Mudd College, Claremont, CA 91711 USA Technicka 3058/10, CZ-616 00 Brno, Czech Republic Gregory Simelgor, Meredith G. Metzler and Gerald Lopez Edico Genome, La Jolla, CA 92037 USA Quattrone Nanofabrication Facility, University of Pennsylvania, Philadelphia, PA 19104 USA Juraj Topolancik Roche Sequencing Solutions, Pleasanton, CA 94588 David A. Czaplewski and Leonidas Ocola Center for Nanoscale Materials, Argonne National Nicolae Lobontiu Laboratory, Lemont, IL 60439 USA University of Alaska, Mechanical Engineering, Anchorage, AK 99508 USA Slava Krylov Tel Aviv University, School of Mechanical Engineering, Ramat Aviv 69978 Tel Aviv, Israel

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160

October 2016

U.S. Department of Commerce Penny Pritzker, Secretary

National Institute of Standards and Technology Willie May, Under Secretary of Commerce for Standards and Technology and Director

Nanolithography Toolbox Version 2016.10.01

Email: [email protected] This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

National Institute of Standards and Technology Chapter Contents Images from various CNST projects.

Platform Independent Fractals Vertex control of shapes Grayscale Image to GDS Curved geometries Scripting Polar and Hexagonal Arrays CNST Library Pillar - Hole Arrays Couplers Grating Couplers Photonic Crystals Spirals Waveguides, S-Bends, Y-Bends Gratings Custom Tapers Verniers Reticle Frame Generator Arbitrary Function Generator JEOL Job File Generator Label Maker - Text To GDS JEOL Write Time Estimation

1 Contents

Email: [email protected]

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: 1 Nanolithography Toolbox 1

Nanolithography Toolbox 8 1.1 Overview ...... 8 1.1.1 Terms Of Use ...... 10 1.1.2 Disclaimer ...... 10 1.1.3 Acknowledgements ...... 10 1.1.4 Development Team ...... 10 1.1.5 Future Developments ...... 11 1.1.6 Java 8 Requirements ...... 12 1.1.7 Distribution Package ...... 12 1.1.8 Modes of Operation ...... 12 1.1.8.1 CNST Scripting ...... 12 1.1.8.2 Graphical User Interface ...... 15

GDS Scripting 16 2.1 Setup, Execution and Examples ...... 16 2.1.1 Quick Start Setup ...... 16 2.1.2 Setup - CNSTdefaultValues.xml open and save directories 17 2.1.3 Graphical User Interface Execution ...... 18 2.1.4 Running CNST Scripts From a Terminal Command Prompt 19 2.1.5 Running Multiple CNST Scripts - Batch File Mode . . . . 19 2.1.6 Running CNST Scripts Within Matlab ...... 20 2.1.7 Python Script Generation ...... 21 2.1.8 NotePad++ Syntax Coloring ...... 22 2.1.9 Scripting Examples ...... 23 2.1.9.1 Basic Scripting Example ...... 23 2.1.9.2 Scripting Example - Labeled Calibration Ruler . . 24 2.1.9.3 Labeled Electrodes ...... 25 2.1.9.4 MEMS Comb Drive Flexures ...... 26 2.1.9.5 MEMS Radial Comb Drive Circular Hub ...... 27 2.1.9.6 Scripting Example Files Description ...... 28 2.2 Interface Functions ...... 32 2.2.1 Comments ...... 32 2.2.2 Creating Structures (Cells) ...... 32 2.2.3 Layer ...... 32 2.2.4 Data Type ...... 32 2.2.5 GDS Rendering Resolution ...... 32 2.2.6 Shape Resolution ...... 33

2 Chapter 1 CONTENTS

2.2.7 Font Outline Width ...... 33 2.2.8 Calls To Multiple CNST Script Files ...... 34 2.2.9 Log File Time Date Stamp ...... 34 2.3 Shapes ...... 35 2.3.1 Circles and Ellipses ...... 35 2.3.1.1 Primitive Ellipse ...... 35 2.3.1.2 Vectorized Ellipse ...... 35 2.3.2 Circle through three points ...... 36 This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: 2.3.3 Circle With a Wave Boundary ...... 37 2.3.4 Cross ...... 38 2.3.5 L-Shape ...... 39 2.3.6 Pie Shaped Arc ...... 40 2.3.7 Pie Shaped Arc - Vector ...... 40 2.3.8 Polygon ...... 41 2.3.9 Rectangle ...... 42 2.3.10 Rounded Rectangle ...... 43 2.3.11 Rectangular SU-Shape ...... 44 2.3.12 Rectangle With a Linear Taper ...... 45 2.3.13 Star ...... 46 2.3.14 Torus - Arc ...... 47 2.3.15 Torus - Vector ...... 47 2.3.16 Torus With a Wave boundary ...... 48 2.4 Arrays and Instances ...... 49 2.4.1 Rectangular Arrays ...... 49 2.4.2 Hexagonal Arrays ...... 50 2.4.3 Polar Arrays ...... 51 2.4.4 Instancing GDS Structures ...... 52 2.4.5 Points To Instance ...... 53 2.4.6 Pillar-Hole Hexagonal and Square Arrays ...... 54 2.5 General Area Operations ...... 56 2.5.1 Boolean Operations ...... 56 2.5.2 General Area Copies, Shape Bias and Affine Transfor­ mations ...... 58 2.6 Text Labels, PostScript and Logos ...... 60 2.6.1 Text ...... 60 2.6.2 Text Outline ...... 61 2.6.3 Label Maker ...... 62 2.6.4 Label Maker - Outline Text ...... 64 2.6.5 PostScript to GDS ...... 66 2.6.5.1 PostScript Pixel Value ...... 66 2.6.5.2 PostScript Fracturing ...... 66 2.6.5.3 Defining Postscript Shapes ...... 66 2.6.6 CNST and NIST logos ...... 68 2.7 Objects ...... 69 2.7.1 Arc (Torus-Circle) bounded square-hex arrays ...... 69 2.7.2 Bezier Curve ...... 70

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 3 of 488 Chapter 1 CONTENTS

2.7.3 Fractals ...... 74 2.7.4 Function Plot ...... 75 2.7.5 Grayscale ...... 77 2.7.5.1 Polygons ...... 77 2.7.5.2 Ramp ...... 79 2.7.5.3 Spiral Staircase ...... 81 2.7.6 Interdigitated Electrodes ...... 83 2.7.7 Junctions ...... 86 This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: 2.7.7.1 T Junction ...... 86 2.7.7.2 H Junction ...... 87 2.7.7.3 Arrow Junction ...... 88 2.7.8 Meander Channel ...... 89 2.7.9 Points To Shape ...... 92 2.7.10 Polygon Along a Path ...... 93 2.7.11 Random Polygons ...... 94 2.7.12 Random Ellipses and Vectorized Ellipses ...... 95 2.7.13 Resolution Test Pattern ...... 96 2.7.14 Spirals ...... 99 2.7.15 Spiral - Rectangular ...... 100 2.8 Alignment and Reticle Elements ...... 101 2.8.1 Alignment Marks - Predefined ...... 101 2.8.2 Alignment Marks - Custom ...... 105 2.8.3 Reticle Barcode and Label Frames ...... 107 2.8.4 Vernier ...... 108 2.8.5 Vernier With Labels ...... 109 2.8.6 Arrows ...... 110 2.9 CNST Nanophotonics Library ...... 111 2.9.1 Waveguides ...... 112 2.9.1.1 Waveguide ...... 112 2.9.1.2 Waveguide Slot ...... 113 2.9.1.3 Waveguide Inverse ...... 114 2.9.1.4 Waveguide Inverse Slot ...... 115 2.9.1.5 Waveguide Expander ...... 116 2.9.2 Tapers ...... 117 2.9.2.1 Linear Taper ...... 117 2.9.2.2 Linear Taper Slot ...... 118 2.9.2.3 Linear Taper Inverse Slot ...... 119 2.9.2.4 Exponential Taper ...... 120 2.9.2.5 Exponential Taper Inverse ...... 121 2.9.2.6 Exponential Taper Inverse Slot ...... 122 2.9.2.7 Custom Taper ...... 123 2.9.3 Couplers ...... 124 2.9.3.1 Directional Couplers ...... 124 2.9.3.2 S-Bend Taper ...... 128 2.9.3.3 S-Bend Funnel ...... 129 2.9.3.4 S-Bend ...... 130

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 4 of 488 Chapter 1 CONTENTS

2.9.3.5 S-Bend Inverse ...... 131 2.9.3.6 S-Bend Inverse Slot ...... 132 2.9.3.7 Y-Bend ...... 133 2.9.3.8 Y-Bend Inverse ...... 134 2.9.3.9 Y-Bend Inverse Slot ...... 135 2.9.3.10 Y-Bend - 90 degree ...... 136 2.9.3.11 Y-Bend Inverse - 90 degree ...... 137 2.9.3.12 Y-Bend Inverse Slot - 90 degree ...... 138 This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: 2.9.3.13 90 Degree Bend ...... 139 2.9.3.14 90 Degree Bend Inverse ...... 140 2.9.3.15 90 Degree Bend Inverse Slot ...... 141 2.9.3.16 180 Degree Bend ...... 142 2.9.3.17 180 Degree Bend Inverse ...... 143 2.9.3.18 180 Degree Bend Inverse Slot ...... 144 2.9.4 Racetrack ...... 145 2.9.5 Spiral Delay Line ...... 146 2.9.6 Inverse Spiral Delay Line ...... 148 2.9.7 Gratings ...... 150 2.9.7.1 Grating ...... 150 2.9.7.2 Apodized Grating ...... 151 2.9.7.3 Grating Coupler ...... 152 2.9.7.4 Grating Couplers With Waveguides ...... 153 2.9.8 Photonic Crystals and Hexagonal Arrays ...... 156 2.9.9 Disc-Ring Architectures ...... 157 2.9.9.1 Disc-Ring - Bezier Curves, Arcs and Endcaps . . 157 2.9.9.2 Disc-Ring Infinite ...... 159 2.9.9.3 Disc-Ring Infinite Inverse ...... 161 2.9.9.4 Disc-Ring Infinite Inverse Positive Tone ...... 163 2.9.9.5 Disc-Ring Symmetric Bezier ...... 165 2.9.9.6 Disc-Ring Symmetric Arc ...... 175 2.9.9.7 Disc-Ring Symmetric Inverse Bezier ...... 185 2.9.9.8 Disc-Ring Symmetric Inverse Arc ...... 195 2.9.9.9 Disc-Ring Symmetric Inverse Positive Tone Bezier205 2.9.9.10 Disc-Ring Symmetric Inverse Positive Tone Arc . 215 2.9.9.11 Disc-Ring Pulley Bezier ...... 225 2.9.9.12 Disc-Ring Pulley Arc ...... 235 2.9.9.13 Disc-Ring Pulley Inverse Bezier ...... 245 2.9.9.14 Disc-Ring Pulley Inverse Arc ...... 255 2.9.9.15 Disc-Ring Pulley Inverse Positive Tone Bezier . . 265 2.9.9.16 Disc-Ring Pulley Inverse Positive Tone Arc . . . . 275 2.9.10 Waveguide Inverse Photonic Crystals (Ellipse) ...... 285 2.9.11 Waveguide Photonic Crystals (Ellipse) ...... 286 2.9.12 Waveguide Inverse Photonic Crystals (Rectangle) . . . . 287 2.9.13 Waveguide Photonic Crystals (Rectangle) ...... 288 2.9.14 Waveguide Photonic Crystals (Flush Rectangle) . . . . . 289 2.9.15 Various Waveguide-Disc-Tip Coupled Structures . . . . . 290

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 5 of 488 371 364 364 361 361 357 347 357 311 314 317 373 372 372 368 368 370 370 370 370 368 363 363 363 363 363 363 365 359 360 358 360 360 360 313 329 340 319 298 298 298 299 300 302 360 . page 6 of 488 ...... Default Values Initialization File Initialization Values Default Main Align Pattern Pattern Dose Matrix Hub With Straight and Circular Springs and Circular Hub With Straight Bi-Morph Thermal Actuator Actuator Bi-Morph Thermal ...... Photonic Crystals Random Polygons Random Rectangular Array EBL Write Time Estimation Label Maker Text To GDS Arbitrary Function Generator Binary Zone Plate EBL Max Clock CNST Reticle Frame Generator Generic Reticle Frames Ebeam - Job and Schedule File Generator EBL Alignment Offset Spirals Gratings Suspended Fluid Cell Array (Square/Hex) Pillar-Hole Torus Grating Coupler - Bulls Eye Doubly Clamped Beams Interacting Arrays Structures Measurement Strain Stress, Gears Anchored Flexures Cantilevers Actuators Actuators Bolometers Interface 3.2.3.1 3.2.3.2 3.2.3.3 3.2.3.4 3.2.3.5 2.10.8.2 Diamond Ring 2.10.3.1 2.10.8.1 Guckel Rings 2.10.3.2 Radial Comb Drive 2.10.1.1 Bent Beams 2.10.1.2 2.10.1.3 Combs and Drive Elements 2.10.1.4 Folded Springs CONTENTS User 1 3.3.5 3.3.6 3.3.7 3.2.6 3.3.1 3.3.2 3.3.3 3.3.4 Advanced CAD Resources 3.2.5 3.2.1 3.2.2 3.2.3 3.2.4 Lithography Machine Resources 3.1.4 3.1.5 Basic Shapes 2.10.9 3.1.1 3.1.2 3.1.3 2.10.6 2.10.7 2.10.8 2.10.3 2.10.4 2.10.5 2.10.1 2.10.2 3.3 3.2 3.1 2.10 MEMS - NEMS Library Graphical NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Chapter

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 404 414 417 401 394 394 387 391 381 374 374 374 377 453 395 396 398 383 385 388 389 379 373 376 376 479 376 page 7 of 488 ...... Alignment and Reticle Element Methods Alignment and Reticle Library Methods Nanophotonics MEMS NEMS Library Methods Shape Methods Array Methods Methods and Logo Labels, PostScript Text, Miscellaneous Object Methods Accessor and Mutator Methods Methods and Struct GDS Area Miscellaneous Custom Class Methods Objects -GDS Area and Data-types Layers Centering GDS Area Objects PostScript to GDS Curved Fluidic Channels MEMS Perforated Flexures Labeled Arrays Fractals Fractals Grayscale Image To GDS and Affine Transformations Boolean Operations Verniers Verniers Template Script Method Access Cantilever Arrays Reference 4.2.7 4.2.8 4.2.9 4.2.3 4.2.4 4.2.5 4.2.6 4.2.1 4.2.2 Reference Methods 4.1.6 4.1.7 4.1.8 4.1.9 4.1.10 4.1.5 4.1.4 3.3.10 3.3.11 4.1.3 Programming Examples 3.3.9 4.1.1 4.1.2 3.3.8 4.2 4.1 Bibliography Programming NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 – 70 ects. To ects. To page 8 of 488 ]. also package The 103 – 83 ] at nanoscale ] dimensions at re­ 37 – 1 orts in nanoscale optics and photon­ and optics nanoscale in orts ], images to GDS, polar arrays (also, hexag­ 8. In addition to standard Java libraries, the 82 – 77 Overview ]. Consequently, we have developed a library of com­ nanophotonics we have ]. Consequently, 69 – latform independent CNST Nanolithography toolbox for scripted layout layout scripted for toolbox Nanolithography CNST independent latform aggressively address to designed was processing complex and generation scaled nanoscale device architectures. design phase, Within the layout 38 The CNST nanolithography also toolbox contains primitives (ellipses, torus, At CNST, we have strong research eff research strong have we CNST, At ] and other complex structures) with precise control of vertex location in 1.1 P onal and rectangular), and many more customized shapes. we Additionally, flexures, actuators, of variety containing elements of library MEMS a include pattern placement (Figure 1.1). (Figure placement pattern v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox objects [76]. hexagonal), a variety of spirals, (rectangular, arrays pillar-hole etc), rectangles, fractals, gratings, verniers, arbitrary function generator (shapes defined by zone GDS, to postScript GDS, to text makers, label function), mathematical a plates, grayscale objects [ structures[ array interacting beams, and clamped contains CNST-developed reticle generators for various steppers (barcode, label, reticle marks), a CNST ebeam lithography write time and estimator, a of display graphical a with generator file schedule and job lithography ebeam complex shapes to GDSII. complex shapes to ics [ S-bends based ponents (the CNST library contains nanophotonics microrings, on Bezier curves, photonic crystals, variety of tapers, grating couplers [ NanoFab two the of either the using example, for lithography, high-resolution X) MacOS and Windows (Linux, system operating any on run will and pendent imprecise representation of curved objects [ representation imprecise line-edge roughness. in increased sults the consequent events from Scattering eff dissipative enhanced leads peripheries to asperities along device we tools, layout commercial standard with along dilemmas, these circumvent streaming directly for package software scripting CAD custom a developed have the GDSII file. Accurate shape representation is of particular importance to toolbox utilizes the freely available JGDS library for encoding shapes to GDS GDS to shapes encoding for library JGDS available freely the utilizes toolbox terface terface enables significant user customization to lay out structures outside inde­ the toolbox is platform designs. available of the standard Furthermore, keV 100keV tools with sub-nm grid snapping capability. The flexible scripting in­ 75 with Java standard edition (SE)

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 EBL Basic frame arrays Reticle shapes generator calculator max clock Pillar-Hole page 9 of 488 EBL Function generator write time estimation GUI Machine Resources EBL Spirals JDF-SDF definition CNST Toolbox Library Nanolithography Nanophotonics to other software Interface Library Scripting MEMS-NEMS Programming CNST Nanolithography Toolbox chart illustrating a myriad of available com­ chart a illustrating myriad of available CNST Nanolithography Toolbox plex shapes, objects and functions. User defined custom 1.1: methods Vertex NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure curves control Complex Control scripting methods Access to statements hierarchy Structural

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 10 of 488 Team Use Of Acknowledgements Development Disclaimer Terms Li, T. Michels, C. H. Ray, L. Yu, R. Michels, L. Kasica, Li, Yu, C. C. H. T. B. Ray, Wallin, I. Gilbert, B. A. Bryce, Simelgor, J. Topolancik, N. Lobontiu , Y. Liu, P. Neuzil, V. Svatos, K. A. Dill, N. Dill, A. K. Svatos, V. Neuzil, P. Liu, Y. , Lobontiu N. Topolancik, J. Simelgor, Bertrand, M. Metzler, Bertrand, G. D. Lopez, M. A. Metzler, Czaplewski, L. Ocola, K. Srinivasan, S. 1.1.3 1.1.4 1.1.2 1.1.1 ogy (NIST) by employees of the Federal Government in the course of their official their of course the in Government Federal the of employees by (NIST) ogy this software duties. Code States United the of 105 Section 17 title to Pursuant Many researchers at NIST, CNST and external collaborators have made substan­ made have collaborators external and CNST NIST, at researchers Many tial contributions the to nanolithography toolbox. The most development team Westly, A. Daron Maryland), of (University Balram C. Krishna of consists notably Marcelo Davanco, Karen Grutter, Qing Li (University of Maryland), Thomas Michels, Christopher H. Ray, Liya Yu, Richard Kasica, Christopher B. Wallin Neuzil (Brno University of Technol- Pavel Institute), Polytechnic Liu (Worcester v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox If you developed layouts using the CNST nanolithography toolbox, please ac­ please toolbox, nanolithography CNST the using layouts developed you If reference: knowledge its use by including the following Q. G. can be redistributed and/or modified freely provided that any derivative works any derivative that provided and/or freely modified can be redistributed it, and any modified versions bear derived from they are bear that some notice been modified. they have that some notice imply not procedure. does experimental the identification specify Such to als and Standards of Institute National the by endorsement or recommendation the purpose. for the best available necessarily identified are is not subject to copyright protection and is in the public domain. The NIST experimental system. an is toolbox CNST nanolithography assumes no NIST guarantees, no makes and parties, other by use its for whatsoever responsibility or any other characteristic. reliability, or implied, about its quality, expressed Stavis, V. Aksyuk, J. A. Liddle, S. Krylov and B. V. R. Ilic, Stavis, J. Res. Natl. Inst. Stand. The Nanolithography Toolbox, K. C. Balram, D. A. Westly, M. Davanco, K. Grutter, K. Grutter, M. Davanco, K. C. Balram, D. A. Westly, The Nanolithography Toolbox, This manual identifies certain commercial equipment, instruments, and This materi­ manual identifies commercial certain materials and instruments, equipment, the that imply it does nor Technology, This software was developed at the National Institute of Standards and Technol­ and Standards of Institute National the at developed was software This 121, pp. 464-475 (2016). http://dx.doi.org/10.6028/jres.121.024 A. (University of Maryland), Ian Gilbert (University of Maryland), Brian A. Bryce (Harvey Mudd College), Gregory Simelgor (Edico Genome), Juraj Topolancik (Roche Sequencing Solutions), Nicolae Lobontiu (University of Alaska), Yuxiang (University Sequencing (Roche of Solutions), Alaska), Nicolae Yuxiang Lobontiu We would appreciate acknowledgment would if appreciate the We is software used. This software

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 11 of 488 orts have been made to ensure that the The software will evolve over time, implementing Developments Future Please direct comments, suggestions, encountered bugs to Nanolithog­ 1.1.5 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox [email protected]. [email protected]. CNST nanolithography toolbox is supported on Linux, Windows and MacOS as the CNST identifies and prioritizes new applications. features ing within the CNST community. that hope the with distributed is toolbox The community. CNST the within ing it will be useful, but without without even any an warranty, implied warranty for any particular purpose. All eff Neal A. Bertrand, Meredith Metzler (University of Pennsylvania), Gerald Lopez Lopez Gerald Pennsylvania), of (University Metzler Meredith Bertrand, A. Neal Samuel Srinivasan, Kartik Laboratory), National (Argonne Ocola Leonidas tory), University) (Tel-Aviv Krylov Slava Liddle, Alexander J. Aksyuk, Vladimir Stavis, Ilic. and B. Robert ogy, KIST-Europe), Vojta Svatos (Brno University of Technology),Kristen A. Dill, A. Technology),Kristen of University (Brno Svatos Vojta KIST-Europe), ogy, The CNST nanolithography toolbox is broad in scope and continuously grow­ continuously and scope in broad is toolbox nanolithography CNST The X. (University of A. David Pennsylvania), Czaplewski (Argonne National Labora­

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 file page 12 of 488 extension extension and converts .cnst CNSTnanoToolboxVXXXX.jar –version The CNST Nanolithography Toolbox executable executable The CNST Nanolithography Toolbox version numbers. represent file. JAR Java X’s the CNST ebeam tool values for parameter Default file directories. module, load and save containing syntax coloring XML language Directory scripting, GUI module definition file, numerous examples. and programming java CNSTnanoToolboxVXXXX.jar Package –jar Operation XXXX.jar Scripting Requirements of java alues.xml 8 oolboxV CNST aultV Modes Distribution Java nanoT def ST 1.1.8.1 1.8.X_XX indicates Java version 8 is available. To run the CNST NanoLithog­ 8 version is available. Java To 1.8.X_XX indicates Upon of execution the code, will java the CNST Nanolithography Toolbox java version "1.8.0_40" java (build 1.8.0_40-b26) SE Runtime Environment Java(TM) mode) 64-Bit Server VM (build 25.40-b25, mixed HotSpot(TM) Java 1.1.8 1.1.7 1.1.6 CNST CN Examples scripting feature is listed as the first option within the resource menu. The scripting module reads in an ASCII file with a v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox raphy Toolbox, either double click on the manner: 64-bit Windows 7. as it appears under shows the toolbox 1.2 Figure edition (SE) 8, hence earlier versions will not work correctly. To determine the determine To correctly. work not will versions earlier hence 8, (SE) edition type: prompt linux/mac terminal) the (windows command or SE version, at appear in a similar fashion as seen in 1.2. figure The menu appearance may vary slightly depending on the operating system the interface is running under. is running under. the interface vary slightly depending system on the operating The most powerful feature The of most the powerful CNST feature nanolithography toolbox is scripting. The package contains the following files and directories: files and directories: The package contains the following The graphical user interface (GUI) was constructed using JavaFX components. using JavaFX (GUI) was constructed The graphical user interface The code employs a variety of elements contained in latest java standard Virtually any shape can using be the constructed CNST Scripting features. The At the terminal prompt the following would appear: following the prompt terminal the At (X’s represent version numbers) or run from a command prompt in a following in a following a command prompt version numbers) or run from represent (X’s

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 .cnst files is page 13 of 488 .cnst ers a myriad of options that are either not or found ex­ content in the main panel display. in the main panel display. content CNST nanolithography toolbox graphical user interface running under Win­ CNST graphical user nanolithography interface toolbox within the left panel in a collapsible displayed are features dows 7. Various menu. tree Highlighting a node of a feature particular branch will display 1.2: CNST scripting off files is described in section 2.1.5. NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox prompt (see section 2.1). Additionally, running batch execution of many of execution batch running 2.1). section (see prompt Additionally, errors become visually distinct. errors complex objects directly to GDS. We also provide an extensive library of objects an extensive also provide GDS. We to complex objects directly elements. nanophotonic including numerous design phase, During the pattern objects scripting CNST the which between points grid into up broken is space rendered. are 1.3 shows various Figure points connecting a variety of gener­ waveguide, crystal photonic taper, (exponential elements nanophotonic ated y-splitters, waveguides, s-bends and rings). Syntax coloring for Figure available using available NotePad++. This improves and readability-structure feature tremely tremely difficult to implement within standard CAD packages that produce GDS files. The full for command CNST reference scripting is included in sec­ tion 1.1.8.2. Figure 1.4 illustrates a variety of generated GDS shapes. CNST scripting is either carried out from the GUI or from the terminal command

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ... page 14 of 488 K I J F G H E D CNST Scripting example illustrating a variety of available shapes streamed shapes CNST streamed Scripting a example illustrating variety of available GDSII. to directly Pattern layout design schematic highlighting various available nanophotonic nanophotonic available various highlighting schematic design layout Pattern elements. A B C 1.4: 1.3: Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 branch Shapes page 15 of 488 Basic Pillar-Hole (Square/Hex) Array Array (Square/Hex) Pillar-Hole Interface User Graphical Pillar-hole array module example showing various available options within available example showing various module array Pillar-hole GUI. the main panel of the toolbox 1.5: Double clicking on a module feature or single clicking on the triangle directly directly triangle the on clicking single or feature module a on clicking Double 1.1.8.2 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure button. button. highlighted a shows 1.5 Figure node within the left panel. The main panel shows various available module GUI. within the toolbox parameters to to the left that node expands the menu the options. instance, displayed. For are node all Consequently, branch that module within elements arrays arrays, branch has several objects including polygon-based pillar-hole accessible the of gratings. any and Highlighting spirals couplers, grating tori, of nodes feature will display available options of the specified module. In case file GDS as such field text a within parameters defined user arrays, pillar-hole name, number of sides (shape vertices), GDS layer, rotation, radius, object to buttons with along pitch) and elements of number (position, options array generate a GDS file with the specified options, an about button, and an Exit collapsible tree with options representing available toolbox features. toolbox features. available The with large collapsible options tree representing module options. selected canvas displaying right panel is the dynamic The main window of the graphical used interface is divided into three parts. static. is and logo CNST the has panel title top The a contains panel left The

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 GDS Scripting

Email: [email protected] This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: 2.1 Setup, Execution and Examples

Scripting execution takes place either from the graphical user interface or the terminal command prompt.

2.1.1 Quick Start Setup

1. Change the and parameters in the CNSTdefaultValues.xml setup file (see section 2.1.2).

2. Setup syntax coloring within NotePad++ (see section 2.1.8).

3. Create script files with extension .cnst. See scripting examples in sec­ tion 2.1.9.6 and constructors in this chapter.

4. Run scripts either within the graphical user interface (section 2.1.3) or via command prompt (section 2.1.4).

16 Monday, December 21, 2015 9:34 AM 9:34 2015 21, December Monday, Monday, December 21, 2015 9:40 AM 9:40 2015 21, December Monday, direc­ file. The file. page 17 of 488 CNSTdefault­ save and CNSTdefaultValues.xml -1- open -1- CNSTdefaultValues.xml (b) (a) file within a text editor and change the setup file for (a) Windows and (b) Mac/Unix/Linux platforms. (a) Windows and (b) Mac/Unix/Linux platforms. setup file for /Users/user/CNSTnanoToolBox/saveFiles/ C:\Users\user\Documents\CNSTnanoToolBox\saveFiles\ - CNSTdefaultValues.xml C:\Users\user\CNSTnanoToolBox\saveFiles\ /Users/user/CNSTnanoToolBox/saveFiles/ C:\Users\user\Documents\CNSTnanoToolBox\loadFiles\ /Users/user/CNSTnanoToolBox/loadFiles/ C:\Users\user\CNSTnanoToolBox\loadFiles\ /Users/user/CNSTnanoToolBox/loadFiles/ Values.xml Modification to open and save directory variables within the within variables directory save and open to Modification CNSTdefaultValues.xml Setup script and GDS files are respectively read and saved. and saved. read script respectively and GDS files 2.6 and are 2.6 Figures 2.6: tories 2.1.2 D:\DOCUMENTS\zTESTfiles\XMLsetupINFO.xml D:\DOCUMENTS\zTESTfiles\XMLsetupINFO.xml setup file resides in the same directory as the Java executable .jar executable as the Java directory in the same setup file resides NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure .cnst Mac/Unix/Linux platforms. Windows and for modifications illustrate open and save directory variables within the directory open and save toolbox will not function on some operating systems if these values are not changed. properly Open the The CNST NanoLithography ToolBox requires that the that requires ToolBox NanoLithography CNST The the of modification the requires scripts executing running and in step The first and parameters to a directory where

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 (step (step 1) page 18 of 488 Scripting label, the full path of the label, the full path CNST Execution (step 4) and the full path of the script the of path full the and 4) (step label. in the desired GDS file Type name Open button (step 2). (step button Within the file manager locate File: Interface button. button. Under the STATUS: Script CNSTnanoToolboxVXXXX.jar User Script GDS GDS generation using the graphical scripting interface. scripting interface. using the graphical GDS generation Load –jar 2.7: ) ) ) script file (step 3), click (step file script (c Graphical (b (d java (a) Figure file or at the prompt type: the prompt file or at .cnst 2.1.3 file will appear in the NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Start the graphical user interface by either double clicking on the executable executable the on clicking double either by interface user graphical the Start jar and then click the the and click the Create saved GDS file will appear. GDS file will appear. saved When the interface appears, in the left panel click

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 . For . For then Prompt option page 19 of 488 Start Mode and cast the file. getfonts File Command [option] CNSTbatchFile.BAT - Batch outputFileName.gds , i.e. Terminal a BAT Scripts . . . From CNST Scripts $>.\CNSTbatchFile.BAT inputFileName.cnst CNSTnanoToolboxVXXXX.jar Multiple CNST –jar resulting structures into an outputFileName.gds into structures resulting Process a CNST scripting file inputFileName.cnst a CNST Process Obtain system fonts and store them into a time/date stamped file. stamped time/date a into them store and fonts system Obtain names within various available spelling font correctly Useful for constructors. text Running Running within the ’search programs and files’. Within the Linux and Mac getfonts java cnstscripting cmd robilic\CNSTscripting C:\Users\robilic\CNSTscripting>CNSTbatchFile.BAT 2.1.5 2.1.4 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox In Linux or Mac type dot then backslash followed by the filename: In Linux or Mac type dot then backslash followed java java –jar CNSTnanoToolboxVXXXX.jar cnstscripting scriptFileN.cnst outputN.gds instance, the text file would have the following entries: the following file would have the text instance, java –jar CNSTnanoToolboxVXXXX.jar cnstscripting scriptFile01.cnst java output01.gds –jar CNSTnanoToolboxVXXXX.jar cnstscripting scriptFile02.cnst output02.gds Batch mode execution of many CNST script files is performed from a terminal terminal a from performed is files script CNST many of execution mode Batch command prompt. In click Windows, open to the command prompt, type where file prompt. command text a a terminal open environments create First 2.1.4). ( section previous the within defined format the has entry line each In atime/date stamped ASCII file. stamped ASCII atime/date [option] allows the extraction of all available system font names to be stored into To execute the ASCII batch file, at the windows DOS prompt type the file name: file the type prompt DOS windows the at file, batch ASCII the execute To At the terminal command prompt, the command below allows script execution the command below allows script execution command prompt, the terminal At without the graphical user interface. using the Additionally, Windows, name the file with an extension

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ); ript.cnst for ); n' page 20 of 488 ' 0.4 4 44 0 ellipse' file. Subsequently, file. Subsequently, ); nt GDS layers names with spaces ellipses, each cast into a ellipses, each cast into e ); ); , int2str(i), Matlab ); to to create a GDS file. This was ' ' ); ); java ' layer' matlabScript.cnst ); Within ); 'w' , ); , int2str(i), Scripts , int2str(i), ); '"C:\Program Files\KLayout (64bit)\klayout" D: 'java -jar CNSTnanoToolbox.jar cnstscripting matlabSc GDS generation and viewing using a Matlab script. a Matlab and viewing using GDS generation ); CNST '%s%s\n' '%s%s%s%s\n' 2.8: '# Creating array of 100 ellipses along the diagonal\ 'matlabScript.cnst' '0 0 2 4 44 0 ellipse\n\n' '0.001 shapeReso\n\n' '0.001 gdsReso\n' '# Creating a simple ellipse with Matlab\n' '11 layer\n' '\n' '\n' Figure Running fprintf(fileID, fprintf(fileID,

i=1:100 Example matlab files are located in \EXAMPLES\CNSTscripting\Matlab. located files are Example matlab The return status shows the command prompt output during code execution. execution. code during output prompt command the shows status return The erent GDS layer, along a diagonal. diagonal. a along the using generated was latter The layer, GDS erent atus, cmdout rintf(fileID, rintf(fileID, rintf(fileID, rintf(fileID, rintf(fileID, atus, cmdout rintf(fileID, rintf(fileID, 2.1.6 fp fprintf(fileID, matlabGDSoutput.gds' st [status,cmdout] = dos( \DOCUMENTS\zTESTfiles\saveFiles\matlabGDSoutput.gds' st fileID = fopen( fp % open GDS with klayout - use quotes around directory % array of 100 ellipses along a diagonal with differ fp fp fp fp end fclose(fileID); % run the java code from matlab [status,cmdout] = dos( fp for 1/6/16 5:16 PM D:\DOCUMENTS\z...\CNSTscriptingWithMatlab.m 1 of 1 loop control statement. statement. loop control NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox In this case, the directory where the output GDS resides (see save directory 2.1.2). in section information Matlab Matlab allows for execution of system commands and return outputs. Fig­ a 2.1.6 shows how generates ure matlab using a system command, matlab runs another 2.1.4. section in described commands using by accomplished Lastly, in editor, and viewer layout source open an kLayout, executes command system the output GDS file. to display order file has The two generated GDS structures. diff The first has a single ellipse, and the second has 100

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 page 21 of 488 circles, each circles, 100 )) )) %(xCoord,yCoord))) )) )) )) ))) ) )) +1 'w' )) %(x , )) script file that contains two GDS structures, one Generation '%d layer\n' '%.4f %.4f 0.2 0.2 44 0 ellipse\n' Script (num): ( ( *math.pi/num '11 layer\n' '0 0 2 4 44 0 ellipse\n\n' '# 100 circles along a circular path\n' '\n' 2 str str '0.001 gdsReso\n' '0.001 shapeReso\n\n' Python' '# Creating a simple ellipse with '\n' ( ( ( ( ( ( ( ( 10 xrange 'pythonScript.cnst' ( str str str str str str str str Python programming example used to generate an array of array an generate to used example programming Python path. circular a along rendered the shows Inset layer, GDS distint a within path. along a circular GDS output of circles write( write( 100 in math Python f. xCoord = radius * math.cos(x*increment) yCoord = radius * math.sin(x*increment) f. open pythonScript.cnst x 2.9: f.close radius = num = increment = for f.write( f.write( f.write( f.write( f.write( f.write( f.write( f.write( import f = # -*- coding: utf-8 -*- """ Created on Wed Jan 20 21:21:47 2016 @author: rob """ 2.1.7 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure in another GDS structure. The latter is accomplished within a for loop repetition repetition loop for a within accomplished is structure. GDS another latter in The statement. Subsequently the nanolithography toolbox is used to create an 2.9. output GDS file seen as an inset in figure located Example files python are . in \EXAMPLES\CNSTscripting\Python Python programming can be used to create complex CNST scripting files. create can be used to Python programming Pro­ loops, Booleans, branch­ variable initialization, gramming in general allows for ing, control statements, conditionals and other methods to be used files. script constructing algorithmically 2.9cre­ figure in shown when program The ates a with a single ellipse, and another with an array of circles along a circular path path along a circular of circles with a single ellipse, and another with an array

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Monday, April 13, 2015 4:22 PM 4:22 2015 13, April Monday, 57.43 script files page 22 of 488 109.402 c c curveto curveto curveto curveto .cnst > c h CNSTscripting.xml lan­ CNSTscripting.xml language definition file. language definition \ arrayPolar -1- > 1R 131.602 329.459 132.156 329.065 language definition file. will have proper syntax coloring (Fig­ coloring syntax proper have will c verniers 37.141 225.803 31.551 197.69 33.297 c NotePad++XML \ .cnst CNSTscripting.xml Coloring 10 1 50 4 > Syntax struct CNSTscripting \ > > > 88.063 301.713 81.117 296.862 71.086 287.424 62.605 218.252 82.602 238.932 98.328 262.112 Lyr1 Layer4 c m struct struct struct 340.0 220.0 30.0 100.0 250.0 50.0 moveto 33.684 197.733 37.059 199.932 40.801 202.615 Notepad++ Notepad++ screenshot illustrating syntax coloring of defined by the CNSTscripting.xml EXAMPLES \ c NotePad++ 2.10: layer layer choose close NotePad++ and reopen a file with extension .cnst a file with extension and reopen close NotePad++ Some versions may require users to repeat this procedure this procedure repeat users to require Some versions may Language -> Define your language.... Language -> Define -> click Import.... 2.1.8 verniersTest 0 0 1 4 0.01 11 polarArrayV1rotated myPattern postScript1 postScript2 278.424 120.648 299.865119.484 126.66 321.201 316.112 197.725 new 1 new 277.61423749153965 500.0 300.0closepath 544.7715250169207 300.0 600.0 < # Verniers between Layer 1 and Layer 4 < # constructing polar array < < < 1 40.801 202.615 274.576 48.113 259.424 41.59 239.428 < 2 300.0 600.0 300.0 655.2284749830793 277.61423749153965222.38576250846035 700.0 700.0 250.0 200.0200.0 700.0 655.2284749830793 544.7715250169207 200.0 222.38576250846035 600.0 500.0 250.0 500.0 Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox 2. guage definition file and click open 3. structor keywords listed within the XML file could be used to create a language within the XML listed file could be used create to keywords structor accom­ is NotePad++ within coloring Syntax editor. text any for file definition in the provided plished by reading extension with files all Subsequently, 2.10). ure This is useful when visualizing and debugging scripts. The following syntax coloring: NotePad++ for is a procedure The package provides a language definition XML file for Notepad++. Notepad++. for file XML definition language a provides package The con­ The 4. 1.

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Tuesday, September 27, 2016 4:44 PM 4:44 2016 27, September Tuesday, page 23 of 488 -1- m) of the GDS file. This µ m) of vectorized shapes. µ scriptingExampleBasicScriptingExam­ > > Example struct ellipse ellipse struct rectangle Examples Scripting gdsReso shapeReso defines the rendering resolution (in layer dataType layer Basic simpleRectangles circlesAndEllipses defines the output rendering resolution (in resolution defines the output rendering ple.cnst). Basic scripting example ( D:\DOCUMENTS\zTESTfiles\loadFiles\0000ANLpattern.cnst # create an ellipse 0 0 40 100 88# create ellipse in GDS layer 40 with a datatype 44 22.0 40 44 100 80 40 40 44 0 # create a GDS structure/cell to store shapes < # set GDS layer 4 # create a rectangle -5 20 0 28 0 # create another structure < 0.001 0.001 Scripting 2.11: 2.1.9.1 Initialize layers and dataTypes, then place objects into structures. The shapeReso Create structures. structures. Create gdsReso 2.1.9 3. NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure following subsections introduce a variety of constructors for creating complex creating a variety of for constructors subsections introduce following shapes. parameter is included at the top of each file. of each the top at is included parameter 2. Figure Figure 2.11 shows a simple script that creates two structures, rectangle and the one other with two ellipses. with a The for procedure creating script files is the following: vectorized shape. vectorized 4. 1. each for changed be can and file the in anywhere placed be can parameter This

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 } nm m long. m 250 µ labelMaker 10 page 24 of 488 Monday, January 18, 2016 6:33 PM Ruler scriptingExam­ m and m µ 5 . 7 Calibration 0051rowCol ) illustrates the construction of (b) a of (b) the construction ) illustrates markers are are markers 10 -1- > ) (a) (b and - Labeled > 5 2 -0.5 -2 arrayRect > arrayRect Example > arrayRect > 15Arial rectangle 10 7.5 2 1 10 0 1 rectangle struct 5541501 struct 20um > Scripting pleLabeledCalibrationRuler.cnst labeled calibration ruler. ruler. labeled calibration Labeled calibration ruler example. (a) Example script ( m long. Markers labeled long. m Markers µ 5 struct 00211101 2.12: gdsReso shapeReso 2.1.9.2 layer tickMarkExtension 0 5 10 15 tickMark tickMarkExtension calibrationRuler tickMark tickMarkExtension C:\Users\rob\Downloads\zJava\loadFiles\0000000000scriptingExampleRuler.cnst < # tick mark label (TAB delimited) { 0.001 0.001 4 Calibration Ruler # Example - Labelled #### tick marks 5um long and 250nm wide < -0.125 0 0.125 wide #### tick mark extension 2.5um long and 250nm 5 0 < -0.125 0 0.125 2.5 0 < # 20um long < # add tick mark extensions every 5um < # add tick mark extensions every 10um NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure The example script creates a labeled calibration ruler. are marks Tick ruler. calibration labeled a creates script example The microscopes. (optical and electron) calibrating is useful for This type structure wide and wide

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 top Wednesday, December 23, 2015 9:31 AM 9:31 2015 23, December Wednesday, } } } page 25 of 488 } ) illustrates the labelMaker structure. structure. Bond labelMaker labelMaker labelMaker > > > > autoOutLett electrodes autoOutLett autoOutLett -1- > autoOutLett structure is into structure instantiated bezierCurve bezierCurve bezierCurve bezierCurve ) is then instantiated to construct the construct to instantiated then is ) > > > > > instanceSym > > instance 1 0 instance arrayRect N instance electrodes m bond pad. bond m instantiated then is structure The scriptingExampleElectrode.cnst instance instance µ 1 90 1 0 N Y instance > 1 0 1 0 1 -90 250 X N Y constructor, ensuring symmetric extents around the the around extents symmetric ensuring constructor, > 1 0 cross cross cross Electrodes > electrodeSegment N 4750 0 > struct 0 0 4750 0 0 0 cross cross 100410751004104575 01000 0 01000 5000 0 0 0 1004275 5000 4600 0 4275 500 0 500 struct 0 0 0 4750 0 0 5 1 500 1 1 struct rectangle struct 0 0 0 0 4750 4750 , which is then used to form the > Labeled Serif Serif Serif Serif Scripting example ( with labels and 5 levels of alignment crosses. construction of electrodes gdsReso instanceSym rectangular array, Bezier curves and alignment then are crosses array, 1 rectangular struct shapeReso × 2.13: 5 electrodeSegment electrodes electrodeHalf electrodeHalf 0 8 0 8 8 0 8 0 top electrodes electrodeSegment bondPad250um 625 250 6251125 900 250 2200 11251625 625 900 250 2200 2250 16252125 2150 625 900 250 20 2250 2300 2125 0 2150 625 900 20 2300 2350 0 2150 625 20 2350 0 2150 20 0 electrodeHalf electrodeSegment electrodeSegment electrodeSegment bondPad250um D:\DOCUMENTS\zTESTfiles\loadFiles\zTEMP\ElectrodeExample.cnst < # electrode set < < < # electrode labels top and bottom - Letters { { # electrode labels left and right - Numbers { { # top cell centered electrode cell using instanceSym < < < < < < < < # JEOL alignment crosses 500 500 10750 750 60 101000 0 1000 60 101250 0 1250 101500 1500 60 10 0 60#1/2 electrode 0 60< 0 < < < 0.001 0.01 # 250um bondpad < 0 0 250 250 0 # 1/8 electrode 2.1.9.3 pad labels then are added and NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure using the origin. into into a ( added. structure This electrodeHalf The script initiates with a with initiates script The

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Thursday, January 07, 2016 7:40 PM 7:40 2016 07, January Thursday, flexure2E page 26 of 488 constructor. Subse­ constructor. combDriveV1 combDriveV1 -1- flexure2E ) (a) (b Flexures Drive Comb > struct MEMS MEMS linear comb drive actuating flexure example. (a) Example script drive elements connected to a movable flexure. a movable flexure. to drive elements connected ) illustrates the construction of (b) comb (scriptingExampleMEMSv1.cnst) illustrates gdsReso shapeReso 2.14: 2.1.9.4 layer memsExample D:\DOCUMENTS\zTESTfiles\loadFiles\zTEMP\scriptingExampleMEMSv1.cnst # Example - MEMS Flexure With Comb Drive Elements < # Flexure 0 0 8.2# Top Comb 0.2 0.88-5.15 0.22 29.48 2.44 0.4# Bottom Comb 20 3.4 8 10.15.15 1.44 9.1 -29.48 2.42 10 0.4 3.4 1.1 3.4 0.2 4.1 10.1 8.44 31 9.1 4.4 0.2 10 0.4 7 1.1 7 0 4.1 0 31 0.2 7 180 0.001 0.001 4 Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox quently, two linear comb drive structures are connected to the flexure element. the to flexure connected are two linear comb drive structures quently, The example script below first creates a microelectromechanical systems (MEMS) flexure with two anchored pads using the using pads anchored two with flexure (MEMS)

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Thursday, January 07, 2016 7:28 PM 7:28 2016 07, January Thursday, page 27 of 488 -1- Hub combRadialV2 combRadialV2 combRadialV2 combRadialV2 Circular ) used to create (b) four radial comb drive comb radial four (b) create to used ) circularSpring > ) Drive (a) (b struct Comb Radial gdsReso shapeReso MEMS scriptingExampleMEMSv2.cnst layer MEMS radial comb drive actuator example. hub. a circular to elements connected (a) Example script ( circularSpringExample D:\DOCUMENTS\zTESTfiles\loadFiles\0000000000scriptingExampleMEMSv2.cnst 0.001 0.001 4 # Example - MEMS Flexure With Comb Drive Elements < # circular spring 0 0 1# radial combs 4 3.410 40 0 128 40 18 40 10 0.2 1 4 7-10 30 40 0 0 1.1 1 40 2.2 30 40 -10 10 1.1 1 4 32 2.2 30 40 40 10 1.1 1 20 32 2.2 30 1 40 10 1.1 7 20 32 2.2 0 1 40 10 7 20 32 90 1 40 7 20 180 1 7 270 2.15: 2.1.9.5 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure to a circular hub. a circular to The example script below first creates four radial comb structures connected connected structures comb radial four creates first below script example The

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 my- page 28 of 488 demonstrates the demonstrates is an example demon­ example an is Description creates a structure with the name the with structure a creates contains examples of variety of multi­ Files example demonstrates circular (section 2.3.3) (section circular demonstrates example is a simple script the demonstrating use of prim­ illustrates the use of the Bezier curve construc­ curve Bezier of the use the illustrates . The folder also contains an Excel spreadsheet Example with data used in several presented examples. A brief ers a variety of constructor objects that allow for any conceiv­ any for allow that objects constructor of variety a ers Scripting constructed from various and spiral primitive elements, including text from constructed files) and the corresponding GDS output files are contained in a folder folder a in contained are files output GDS corresponding the and files) 2.1.9.6 .cnst Pattern ne transformation of the of transformation affine and biasing shape copies, area general operations, is demonstrated. areas scriptingCNSTasmlContactLabelBarcodeGenerator.cnst use (label of and various used generate constructors to logo) and CNST ASML PAS5500 i-line stepper reticles (reticle marks, label, and logo). barcode scriptingCircleTorusWave.cnst with sinusoidally varying boundaries. (section 2.3.16) structures and torus v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox itive shapes. line First, comments. we introduce of Then, features resolution output and shapes vectorized is explained. the GDS rendered Next, we present and layers. (cells) following, GDS structures Directly creating for constructors poly­ rectangles, rounded rectangles, (arcs), tori ellipses, vectorized ellipses, structures GDS initialized within constructed are crosses and shapes, star gons, and layers. scriptingBezierCurve.cnst tor. scriptingBooleansGenAreasBiasTransformations.cnst strating extraction of shapes layer from a GDS structure and casting the re­ sulting shapes into a generalized area object. Using these objects boolean CNSTscripting.xlsx file is given below. description of each example script scriptingAlignmentFeatures.cnst verniers, strategies, mark alignment defined user custom and preconfigured level in section 2.8. described and arrows. are Details of these features scriptingArraysAndInstancing.cnst objects. The structure is then instantiated at a 10X reduced magnification. hexagonal and polar rectangular, into arranged is structure the Furthermore, arrays. scriptingBasicShapes.cnst CNST scripting off scripting CNST of number a output. includes GDS a chapter into This rendered be to shape able ob­ these of functionality the on elaborate to designed examples scripting CNST jects. constructor. scripting CNST each covers collection example the Overall, examples. the presented of each in comments mentation scripts example The \loadFiles\CNSTscripting To improve the To readability of the script, we included brief constructor docu­ (

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 in­ script­ point ) x,y page 29 of 488 CNSTscript­ show various exam­ scriptingDiscRingSym­ example script creates the the creates script example , is an example of a basic script basic a of example an is is an example using construc­ (Bezier -(Bezier coupling), defined angle (Arcs - (Arcs length coupling and angle both (Bezier - coupling length defined) and is an example script of labeled electrodes is an example script of labeled electrodes are a collection of examples using the using examples of collection a are script creates four MEMS radial comb drives comb radial MEMS four creates script script creates a MEMS flexure with two linear with a MEMS flexure script creates illustrates illustrates the use of constructors from sec­ shows several functional plotting examples us­ example employs data from the scriptingDiscRingSymmetricPulleyDOUBLE3.cnst was used to create the GDS rendered output in , is an example using a variety of grayscale con­ shows the use of various fractal constructors de­ . customTaper ) y ,T x (T θ y T x file (CustomTaper sheet) to create a taper defined by the ( defined by a taper create to sheet) file (CustomTaper constructor section 2.4.4. constructor scriptingDiscRingSymmetricPulleyDOUBLE4.cnst stance scriptingLabelMaker.cnst ing.xlsx scriptingExampleLabeledCalibrationRuler.cnst NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure 2.45. Figure scriptingLabelOutline.cnst chip labels. tion 2.6.4. generate used to are outlines text Here, tors from sections 2.9.7.1 and from tors 2.9.7.3. scriptingGrayscale.cnst section 2.7.5. from structors scriptingInstanceExamples.cnst connected to a circular hub as described in section 2.1.9.5. a circular to connected scriptingFractals.cnst fined in section 2.7.3. scriptingFunctionPlot.cnst defined in section 2.7.4. ing constructors scriptingGratingsAndGratingCoupler.cnst labeled calibration ruler in section 2.1.9.2. labeled calibration scriptingExampleMEMSv1.cnst comb drive elements. 2.1.9.4. included in section Details of this scripts are scriptingExampleMEMSv2.cnst ples of the ring-disc systems with two coupling regions described in sections 2.9.9.2 sections in described regions coupling two with systems ring-disc the of ples to 2.9.9.16. scriptingExampleBasicScriptingExample.cnst shown in section 2.1.9.1. scriptingExampleElectrode.cnst scriptingDiscRingPulleysArc.cnst defined) show various examples of the disc pulley system described in sec­ tions 2.9.9.2 to 2.9.9.16. scriptingDiscRingSymmetricPulleyDOUBLE1.cnst and pairs. termi­ then file, script cnst the into pasted and copied simply was Data by T nated scriptingCustomTaper.cnst scriptingDiscRingPulleysBezier.cnst ingDiscRingPulleysBezierLC.cnst metricPulleyDOUBLE2.cnst with alignment crosses as shown in section 2.1.9.3. with alignment crosses

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 script­ is created created is page 30 of 488 example highlights example test shows various MEMS various shows scriptingMulti­ , example demonstrates demonstrates example example demonstrates demonstrates example example demonstrates the use the demonstrates example example demonstrates the use example demonstrates are files used to generate generate to used files are shows various examples of doubly of examples various shows scriptingMEMSarraysHIERARCHY.cnst illustrates illustrates various meandering channels shows various examples of cantilevers of is a script demonstrating structure instanti­ structure demonstrating script a is and shows various examples of MEMS actuators shows various MEMS accelerometer type an­ shows a variety of miscellaneous objects (inter­ miscellaneous variety of shows a scriptingMultiFile2.cnst , point pairs. point structure a case this In ) example shows the use of the three logo constructors constructors logo three the of use the shows example x,y ( . gener­ to files script multiple calls example that an This is scriptingMultiFile8.cnst and of various waveguides, slot waveguides and couplers defined in sections 2.9.1.1 sections in defined couplers and waveguides slot waveguides, various of File4.cnst shows interacting MEMS arrays as described in section 2.10.7. as described in section MEMS arrays shows interacting scriptingMEMScantilevers.cnst scriptingMEMSactuators.cnst scriptingMEMSdoublyClampedBeams.cnst to to 2.9.3.15. scriptingPhotonicsGratingCouplersWithWaveguides.cnst as defined in section 2.9.7.4. waveguides integrated couplers with grating scriptingPillarHoleHexagonalSquareArrays.cnst defined in section 2.4.6. arrays hexagonal and square the use of pillar-hole scriptingPoints2Instance.cnst defined user at ation and instantiated along a spiral path. Coordinates for the path were calcu- v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox ate a GDS output as seen in section 2.2.8. ate scriptingPhotonicCrystalsHexArrays.cnst crystals defined in section 2.9.8. of photonic scriptingPhotonicsCoupledWaveguideDiscTip.cnst de­ as tips, and discs waveguides, of architectures coupled various of use the fined in section 2.9.15. scriptingPhotonicsCouplersBendsMisc.cnst clamped beams of varying length extending from a base as described in sec­ in described as base a from extending length varying of beams clamped tion 2.10.6. scriptingMEMSflexures.cnst mass as described in section 2.10.4. with a proof flexures chored scriptingMEMSstressStrainMeasurementStructures.cnst Rings (see section 2.10.8). including Guckel devices measurement stress-strain scriptingMISCobjects.cnst in section 2.7. found electrodes) digitated scriptingMultiFile1.cnst scriptingLogos.cnst section 2.6.6. from scriptingMeanderChannels.cnst 2.10.1. as described in section scriptingMEMSarraysFLAT.cnst ingMultiFile.gds varying length extending from a base as described in section 2.10.5. a base as described in section from varying length extending with end reservoirs using constructors from section 2.7.8. section from constructors using with end reservoirs

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 T S con­ con­ file (Cus­ page 31 of 488 textOutline (number of skipped of (number T defined by the expo­ CNSTscripting.xlsx S constructor for creating creating for constructor W constructor. In the example, the In constructor. ). This feature is useful when CNSTscripting.xlsx textgds spiralDelayLineArchV2Inv similar to the previous example, while all other parameters remain remain parameters other all while 4 to to 0 describes the usage of spiral delay line script renders two user defined shapes. shapes. Both defined user two renders script fontOutline example demonstrates the use of various photonic­ various of use the demonstrates example using Figure 2.47 guidelines. using Figure example shows the use of the of use the shows example demonstrates postScript file a conversion to GDS demonstrates was used to create the GDS rendered output in varies from from varies illustrates illustrates the use of verniers between two litho­ script creates two along distinct paths user defined script creates spiralDelayLineArchV2 demonstrates production of Archimedes, Fermat and Fermat of Archimedes, production demonstrates T S file (CustomTaper and Gaussian sheets). and Gaussian file (CustomTaper demonstrates the use of use the demonstrates while all other parameters remain constant. remain while all other parameters to 8 to . line constructors Example describes the inverse spiral delay e W point pairs. Here, the two paths are defined within the supplementary ) varies from 0 varies from T x,y sure sleeve sure except except the spirals form a slot waveguide of width scriptingSpiralDelayLinesInverse.cnst file (SpiralArray sheet). file (SpiralArray scriptingPoints2Instance.cnst NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox crystal based waveguides defined in sections 2.9.10 to 2.9.14. 2.9.10 to defined in sections crystal based waveguides structor. structor. As shown in figure 2.44, the fonts rendered are defined by a shape outline of a user-specified width ( sys­ lithography beam electron write-time-limited, by defined devices labeling tems. scriptingVerniers.cnst graphic levels. scriptingWaveGuidePhCs.cnst Logarithmic spirals as defined in section 2.7.14. Logarithmic scriptingText.cnst objects within GDS files. text scriptingTextOutline.cnst structor. In the example, the In structor. constant. scriptingSpirals.cnst Figure 2.131. 2.131. Figure scriptingSpiralDelayLines.cnst 2.9.5). (section constructors the illustrates example The S CNSTscripting.xlsx the supplementary from shape. extracted were rendered statements Postscript file scriptingPostScript.eps shapes are defined within the supplementary and Gaussian sheets). tomTaper scriptingPolyPath.cnst scriptingPostScript.cnst scriptingRaceTrack.cnst lated lated using Excel and presented in the supplementary turns) parameter from the from parameter turns) (number of skipped turns) parameter from (number the of skipped turns) from parameter (Archimedes (Archimedes and as Fermat defined in section 2.9.6) and illustrates the (

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 32 of 488 struct> , underscore (_), question 9, mark underscore layer dataType gdsReso − 0 , z − is specified in units of micrometers. is specified in units of micrometers. a , (Cells) Z − A Resolution ypeNumber Functions layerNumber m rendering resolution. resolution. defines a 0.001µm rendering gdsResolution 255. Any value be outside this range will automatically 255. Any value be outside this range will automatically

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 m (b) µ 1 page 33 of 488 (c) is specified in units m. This value could be µ 001 . 0 fontOutline shapeReso shapeResolution (b) idth m font outline width. defines a 0.400µm font m rendering resolution. resolution. defines a 0.001µm rendering Width example illustrating rendering a text object at (a) shapeResolution ontOutlineW f Resolution Outline 0.1µm and (c) 0.01µm. shapeReso Font Shape (a) fontOutline shapeReso 2.16: 2.2.7 2.2.6 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox text text and label objects (see sections 2.44 and 2.6.4). Default global value is 0.1µm. outlined object each could be changed for This value Figure 0.400 of micrometers. of micrometers. changed for each shape, providing flexibility on the number of points used to to used points of number the on flexibility providing shape, each for changed define a particular GDS shape. Parameter 0.001 The method sets the font outline width (in micrometers). This is used for outline for micrometers). used (in is width This outline font the sets method The The method sets the rendering resolution resolution for subsequent shapes Text elements, etc). Default global value is (primarily vector defined shapes, S-Bends, Y-Bends, postscript file conversions, defined (primarily shapes, vector S-Bends, Y-Bends,

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 34 of 488 has the exten­ the has logFileTimeDate must be omitted in the in omitted be must ) will be executed until setup file. Also, backslash fileName> fileName> .cnst Files fileName> , hence hence , cnstScriptFileName Script Stamp cnstScriptFileName CNST . is defined by the rectory> field within the sion The At At the end of each GDS export a log file, containing a variety of information, (Windows) and forward slash (MacOSX, Linux) characters are omitted prior to to prior omitted are characters Linux) (MacOSX, slash forward and (Windows) Windows:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 expressed expressed page 35 of 488 ) ), defined by expressed expressed in ), the number ) y (x,y r x,y θ ( (x,y ellipse θ and x r ) ellipseVector (x,y θ parameter parameter (see section 2.2.6). ) constructor parameters. parameters. constructor x ) r (x,y (x,y θ θ ) sides N ,y y (x r y shapeReso ), defined by two radii ( r y . r x,y ( and ellipseVector sides Ellipse x Ellipse x Ellipses r ellipse and ), and rotated about the center at an angle at center about the and rotated ), y y r 2.17: ) and rotated about the center at an angle Primitive Vectorized x y r and sides x x Shapes Figure r Circles N 2.3.1.1 2.3.1.2 2.3.1 2.3 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox regularly spaced. More vertices are allocated to regions of higher curvature. of higher curvature. regions spaced. to regularly allocated are vertices More Elliptical shape is constructed from Bezier curves, centered at at Bezier curves, centered Elliptical from shape is constructed radii ( two in degrees. Rendering resolution of the vectorized shape (number of shape distributed, evenly are vertices shape where example ellipse primitive the Unlike not are vertices curves, Bezier using constructed is form vectorized the since Elliptical shape is centered at at Elliptical shape is centered of sides ( degrees. at evenly distributed are the shape defining vertices In this scenario, of 2π/Nangular increments vertices) vertices) is controlled using the

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 36 of 488 circlethree ) 3 ,y 3 sides N (x parameters. parameters. 3 y 3 points x circlethree 2 2.18: three ) y 2 ) ,y 1 2 ,y 1 (x Figure 2 (x x through 1 y Circle ). 1 x sides 2.3.2 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox The resulting shape is defined by the the three points and the number of sides shape is defined by the the three The resulting (N

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 A ). x,y ( page 37 of 488 is the number of sides used to to sides used of the number is circleWave s r N ) , π (x,y 2 is an integer number of oscillations ) θ n to to s (x,y Boundary is the rotation about the center point. about the center is the rotation ) (x,y with a sinusoidal boundary centered at at centered boundary sinusoidal a with n A N r Wave r Circle with a sinusoidal boundary variation. variation. with a sinusoidal boundary Circle a x y 2.19: With Figure Circle 2.3.3 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Circular structure of radius of structure Circular represents the sine wave amplitude, 0 from extending the boundary along θ and construct the boundary,

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 38 of 488 ) and rotation ) about and rotation L cross ) ), length ( (x,y L W ) ,y L θ W (x constructor parameters. parameters. constructor ), width ( x,y ( cross expressed in degrees. in degrees. expressed ) 2.20: (x,y Figure x y W Cross 2.3.4 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Cross is Cross defined by the center an angle θ at the center

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2.3.5 L-Shape

L-shape is defined by the center (x,y), widths (W1 and W2), lengths (L1 and L2) and rotation about the center at an angle θ(x,y) expressed in degrees.

x y W1 L1 W2 L2 θ(x,y) Lshape This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

W2

L2 L1

W1

(x,y)

Figure 2.21: Lshape constructor parameters.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 39 of 488 . Sweep ) arc page 40 of 488 parameter parameter (x,y θ ) ), sweep angles, y r arcVector (x,y θ and shapeReso x ) r (x,y are expressed in degrees. in degrees. expressed are θ sides ) x ) N (x,y (x,y θ s e θ e θ x e r θ θ ), and θ e s θ s θ and θ Waveguide Waveguide s y ) y - Vector r ,y y ), defined by an two radii ( r (x ) and rotated about the center point about by the center ) and rotated y r x,y Arc Arc ( sides x N x r constructor used to create user defined pie-shaped arc sections. user defined pie-shaped arc create used to constructor Shaped Shaped arc Illustration Illustration shows an arc section at one end of a waveguide. Rounding waveguide corners alleviates stress crowding at sharp corners. This is thin films, (resist, layers particularly thick useful stressed when patterning etc). y Pie Pie 2.22: x y r 2.23: x 2.3.7 2.3.6 Figure Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox resolution of the defined shape is controlled using the the using controlled is shape defined the of resolution defined in section 2.2.6. angles, start and end angles (θ angles, start and the number of sides ( The vectorized pie shaped arc is constructed using Bezier curves. Bezier using constructed is Rendering arc shaped pie vectorized The Arc shape is centered at at shape is centered Arc

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), sides N page 41 of 488 polygon ), number of sides ( r ) expressed in degrees. in degrees. expressed A shape θ ) (x,y θ (x,y θ r ) constructor parameters. parameters. constructor ,y , outer radius ), ( outer sides (x N x,y ( polygon r 2.24: y Figure x Polygon 2.3.8 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Polygon is defined by the center Polygon an angle at about the center and rotation a closed figure. form to an arbitrary number of vertices by is characterized

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 H ) C ,y C (x ) θ C ,y L (c) C (x page 42 of 488 H rectangle rectangleLH rectangleC ) ) ) LL LL C ,y ,y L ,y (b) ) LL LL C LL (x (x (x ,y θ θ θ LL (x ) θ LL ,y UR LL y H (x ) corners. define used to are constructors Three ◦ UR ,y 90 UR LH x L UR (x C LL LL y y y (a) ) LL Three rectangle constructors. constructors. rectangle , and Three , (b) rectangleLH (a) rectangle ,y (c) rectangleC LL Rectangle C LL LL (x ) x x x θ 2.25: LL ,y LL 2.3.9 (x NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure the rectangular object. the rectangular The shape consists of four The shape consists of four

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x ). r C y r ,y C x ( page 43 of 488 ) C ) roundrect roundrectC ,y L (b C (x ) ). rectangles Rounded ) LL C LL ,y ,y ,y LL C and are centered at at centered are and (x (x LL θ θ x ) and are rendered ) using and the are rendered H ( y r H y y and is defined using the lower left corner left lower the using defined is r r ). The curved sections of the rounded x , height height , r L H x x x r r y r roundrect are of length of are Rectangle resolution parameter (see section 2.2.6). parameter resolution of the Rotation LH L H r L (a) ) and height values ( L roundrectC LL C y y Rounded Rounded rectangle constructors defined by (a) lower left corner ). (roundrectC coordinates ) and (b) center (roundrect Rounded shapeReso ) ), length ( 2.26: LL LL ,y LL C ,y x x LL 2.3.10 LL H (x x NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure defined using defined Rounded rectangle constructor constructor rectangle Rounded defined are rectangle by the two radii ( specified is about the lower left rectangle corner rounded (

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 3 L positive, page 44 of 488 ) ) 2 ,L 1 (x,y (x,y L ) ) (b (d negative, (c) negative, rectSUshape 2 L allow for a variety of S- and ) ) i L positive values. ( (x,y 3 positive, 3 W θ ,L 1 L 3 negative, L negative, L 2 ,L 2 3 1 SU-Shape L L W 1 are positive,(b) are ) i 2 L L (c (a) ) ) x y L Rectangular SU-shapes Rectangular using constructed various length values. (a) all lengths and (d) L negative 1 Rectangular (x,y (x,y L 2.27: 2.3.11 Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox and negative values of the three lengths U-shapes. metal bond pads. runners to routing useful for are These structures The below constructor creates a rectangular S- a rectangular creates The below constructor and objects. U-shape Positive

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 2 L L page 45 of 488 and length 1 2 w w . 2 2 rectTaper L ) (x,y θ Taper 2 L 2 w Linear 1 L a to the end taper width w the end taper width to 1 Rectangle with a taper at one end. with a taper at Rectangle L 1 1 With 1 2.28: w ) Figure x y w (x,y Rectangle 2.3.12 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Below constructor creates a parametrized rectangle of width a parametrized rectangle Below creates constructor length taper the over linearly varies region Tapered taper. a to connected width w a the rectangle from

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 46 of 488 ), number of points o r expressed in degrees. in degrees. expressed ) star (x,y and ) θ i ) r (x,y (x,y θ θ points ) N ◦ constructor parameters. parameters. constructor r ,y ), the two radii ( (x o i r r star x,y ( i r 2.29: y x Figure Star ), and rotation about the center at an angle at about the center ), and rotation points 2.3.13 N NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Star Star is defined by the center (

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 s θ . page 47 of 488 r constructor constructor constructors. constructors. ) w ) ,y (b (x torusW torusW and width w parameter parameter defined in ). start angles, Sweep e θ torus torusW sides and (b) N torus sides sides N N shapeReso , defined by an inner and outer radii outer and inner an by defined ), and defined by an inner and outer torusVector ) e e x,y θ θ ( x,y o ( r s s θ i , see section 2.3.1.2). of resolution Rendering o y s w θ r r θ = i ) are expressed in degrees. in degrees. expressed ) are The x r o e r is centered at at centered is r x y r θ i y r and - Vector - Arc torus ) s x x y r ,y θ (a) (x ). The shape by is subtracting constructed two circles vectorized o r Example of arc sections defined by (a) Example of arc Torus Torus e ), sweep angle, and the number of sides ( sides of number the and angle, sweep ), θ o and r i 2.30: r and 2.3.15 2.3.14 i r the defined shape is controlled using the NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox radii ( section 2.2.6. Figure and end angles ( radius r shape defined by the midpoint a similar creates The vectorized torus is centered at A shape defined by defined shape A (vectorized (vectorized ellipses with (

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 . , ◦ π r 2 ◦ r is the to to and ) 0 i r ) (x,y ) y page 48 of 488 θ the number the (b i (x, r n torusWaveIn torusWaveOut ) ) (x,y (x,y θ θ s s boundary with inner and outer with inner sinusoidal boundaries and in outer ) n A N n A N x,y ◦ Wave ( represents the sine wave amplitude, wave sine the represents r ◦ ◦ a r r A ) i i (a) i (x,y r With ). out of phase (torusWaveOut x y r x y r 2 π ) and radii (a) in phase (torusWaveIn with inner and outer wave Torus (b) out of phase. of out Torus 2 π 2.31: is the number of sides used to construct and each boundary, 2.3.16 s NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure phase or phase of oscillations along the inner and outer boundaries extending from N point. about the center rotation Torus structure with a sinusoidal Torus boundary of inner and outer radii at is centered The structure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2.4 Arrays and Instances

2.4.1 Rectangular Arrays

The method instantiates and arrays a GDS structure on a periodic rectangular grid. 2 constructors are available. Both define the starting point of the array (x,y) along with the number of columns (Ncolumns) and rows (Nrows). First (de- This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: noted as the 1 parameter prior arrayRect constructor) has a defined pitch of Δx and Δy in the x and y directions respectively. The second (denoted as the 2 parameter prior arrayRect constructor) is characterized by the number of elements distributed evenly between the start (x, y) and end (xe,ye) points of the array.

(xe,ye)

Δy

(x,y) Δx (x,y)

(a) (b)

Figure 2.32: Two versions of the rectangular array constructor arrayRect (a) 1 (b) 2.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 49 of 488 page 50 of 488 arrayHex> Δs rows N . ), number of columns and rows x,y ( columns N y Δs constructor used to create hexagonal arrays. hexagonal arrays. create used to constructor x ) Arrays (x,y arrayHex ) are specified, with previously defined structure instantiated instantiated structure defined previously with specified, are ) rows 2.33: N Hexagonal and Figure columns 2.4.2

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , (b) , = 0. r ) and ) times 1R s ) radii, ) arrayPolar> arrayPolar> arrayPolar> arrayPolar> r e r = 5 and 60 page 51 of 488 # 1 = θ 1 1R 2 2R θ . (a) times starting at at starting times # # ) and end ( end and ) Δr Δr r r 90 s r 0 1 2 3 4 5 = (b) = 5 In figure 2.34a, GDS m. Version 1R rotates rotates 1R m. Version θ # . µ r e e e e r r r r 0 . Δr arrayPolar ), along with start ( start with along ), 1 e is instantiated θ 120 s s s s r r r r degrees, and radially starting and radially starting degrees, = and θ Δθ # # Δθ Δθ θ θ is instantiated starting angularly at ), along with start ( with start along ), e oBeArrayed e e e e , and radially 120, and θ θ θ θ θ = e = 0. θ s s s s ) and end angles ( angles end and ) s θ θ θ θ to to θ 60 oBeArrayed = 60 structureT θ = m with radial increments of increments radial with m s µ θ in the angular and radial directions respectively. Region respectively. directions radial and angular the in 0 m. Version 2R rotates each instance to point towards point to each towards instance 2R rotates m. Version . 90 # 0 1 2 3 4 5 µ = (a) r ) and end angles ( end and ) 0 structureT s . θ = 4 Arrays θ r , in angular increments of 30 of 120, in angular increments = 4 and and 2R. = r # Four versions of the polar array constructor constructor array polar the of versions Four 2 e θ 120 m to to m θ Polar = µ 0 θ m to m to to to . ) radii, are specified, ) number radii, of are between is instances the defined regions 2.34: µ e 0 r 60 . = 2 Versions 2 and 2R: Start ( Start 2R: and 2 Versions = r 2.4.3

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ) LL ,y LL x ( instanceSym> page 52 of 488 θ (c) , mirroring (MIR), mirroring ), instance> x,y ( within other structures. within other structures. θ ) MIR MAG x,y ( UR y UR MIR MAG x LL y x y ) are defined in an identical manner as for defined in an identical manner as for ) are θ LL constructor. constructor. (b) x y Structures x coordinates of the structural boundary. This method of the structural boundary. coordinates ) GDS are double values. double are UR ) ,y UR x constructor. constructor. Polar Polar Array example. (a) cell containing two objects, versions (b) 1 and (c) 1R of the arrayPolar structureToBeInstanced

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 53 of 488 points2instance ) x 4 n y ) ,y 3 4 ,y (x 3 (x ) n ) 5 x 2 ,y ,y 5 2 (x (x y ··· ) 1 ,y 2 1 y constructor used to instantiate structures (cells) at user (cells) at structures constructor used to instantiate (x positions. ) i 2 coordinate pairs. coordinate Instance ,y x ) i To 1 y Points to instance example. instance to Points along instanced a defined path by a Structure set of (x,y defined (x points2instance Points 1 2.37: 2.36: » «structureToBeInstanced x 2.4.5 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure Figure by defining the instanced structure in double brackets, then the instantiating structure at the specified coordinates, terminated by . points2instance the constructor This method instantiates GDS structures along a list of user defined points. process: step two first, following the within accomplished is methodology This

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 sqrHole> hexHole> sqrPillarC> hexPillarC> sqrHoleC> hexHoleC> sqrPillar> hexPillar> arrays arrays of parameter. parameter. page 54 of 488 ) y θ θ θ θ θ θ θ θ θ N y y y y y y y y × sqrHoleVC> hexHoleVC> sqrPillarV> hexPillarV> sqrHoleV> hexHoleV> sqrPillarVC> hexPillarVC> N N N N N N N N x N ( x x x x x x x x θ θ θ θ θ θ θ θ defines the polygon, N N N N N N N N ) y y y y y y y y Arrays y y y y N N N N N N N N p p p p sides x x x x x x x x N x x x x x x x x ( N N N N N N N N p p p p p p p p y y y y p p p p Square sides sides sides sides sides sides sides sides x x x x x x x x p p N N N N N N p p p p p p N N and y y y y y y y y y y y y y y y y r r r r r r r r r r r r r r r r x x x x x x x x x x x x x x x x r r r r r r r r r r r r r r r r y y y y y y y y y y y y y y y y x x x x x x x x x x x x x x x x Hexagonal parameter. Vectorized array constructors are defined by the by defined are constructors array Vectorized parameter. defines an octogon. Vertices of the vectorized shapes are defined of the shapes vectorized are defines an octogon. Vertices Pillar-Hole = 8 . Narrow elliptical shapes are best defined in vectorized forms. forms. vectorized in defined best this In are shapes elliptical Narrow . shapeReso V sides

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: py ry ry (x,y) px (x,y) px rx rx (a) (b)

(x,y) (x,y)

py ry ry px px rx rx (c) (d)

Figure 2.38: Square and hexagonal arrays of holes defined by the lower-left corner ((a) and (b)) and by the centroid ((c) and (d)).

(a) (b) (c)(d)(e)

Figure 2.39: Various pillar-hole examples. (a) Nsides = 4, (b) Nsides = 4 and θ = 45 de­ grees, (c) ellipses with Nsides defined, (d) vectorized ellipses with denser number of vertices at curved sections where shapeReso defines the ren­ dered resolution, (e) ellipse array with θ = 22 degrees.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 55 of 488 ). ) B (e A page 56 of 488 objects. genAreaName genArea> OPERATION> ) ) are then extracted B (d A constructor, constructor, the objects are ) B (c genArea extractedGDSLayer A Operations Area ) B (b Operations A A (AND) B A (OR) B B A (SUBTRACT) B A (XOR) is a string constructed form a continuous set of characters continuous set of a characters form is a string constructed constructor takes on values: the following constructor takes AND, OR, SUBTRACT Boolean operations Boolean between operations two objects. generalized area (a) two general area objects A and B, (b) A (AND) B, (c) A (OR) B, (d) A (SUBTRACT) B, A (XOR) B. (e) A (XOR) General Boolean B spaces or tabs. spaces (a) genAreaName

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Tuesday, November 24, 2015 4:54 PM 4:54 2015 24, November Tuesday, con­ ) ) (c (b instance page 57 of 488 genArea -1- string identifier can not contain spaces spaces contain not can identifier string > (a) > > > genAreaName subtract genArea genArea 1) 44 11 7 struct ellipse > ellipse NOTES: Boolean SUBTRACT operation between an ellipse and a pentagon. (a) CNST script, (b) ellipse and a pentagon GDS shapes, (c) resulting GDS a Boolean shape subtraction following between an ellipse and a pentagon. When extracting large instantiated GDS arrays, the the arrays, GDS instantiated large extracting When struct 2) gdsReso shapeReso 2.41: layer layer Processing large, clear-field arrayed patterns could lead, under oper­ certain patterns arrayed clear-field large, Processing resultsSUBTRACT genArea1 genArea2 genArea1 devices genArea2 devices devices D:\DOCUMENTS\zTESTfiles\loadFiles\0000booleanManual.cnst # genArea1 SUBTRACT genArea2 cast to GDS layer 44 < < # extract shapes in layer 11 and store into variable genArea1 < # extract shapes in layer 7 and store into variable genArea2 < # create struct to store results < # create an ellipse in layer 11 11 0 0 2# create a pentagon in layer 7 4 447 0 1 0 1.5 1.5 5 0 0.001 0.001 structor flattens structor the flattens data (i.e. the GDS is structure hierarchy not preserved). NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure performed on a smaller instantiated GDS structure. structure. GDS circumvents instantiated smaller a on process This performed GDS structure. of the arrayed the hierarchy a host of dillemas and preserves 3) number of vertices. shapes to with a large ations, packages Some commercial limit per GDS shape. vertex an upper have example: Boolean SUBTRACT or tabs. tabs. or when intensive computationally is procedure the operations, Boolean to Similar a take could operations these used. are Consequently, arrays instantiated large the using built arrays, periodic large time. of amount For considerable constructor, the above process is considerably faster when operations are IMPORTANT

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 are are y and page 58 of 488 Transfor­ x , genAreaCopy> genAreaCopyC> resultGDSLayer Affine genArea 0). , and θ and constructor. then objects The constructor. Bias instantiation, the process of copying of process the instantiation, BIAS resultGDSLayer BIAS resultGDSLayer genArea Shape θ θ struct omits area scaling. Rotation defined by the Copies, = 1 defines the areas extracted via extracted defines the areas Area - first centers the object around the origin, then performs affine performs then origin, -the around object the centers first - of the the structural to coordinates objects relative translates is expressed in degrees in degrees is expressed genAreaName General These constructors copy a defined general area (flattened area) into an Variable Variable defines BIAS the parameter amount of expansion shape (positive perimeter mations 2.5.2 genAreaName

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 59 of 488 BIAS (Negative) BIAS (Negative) BIAS (Positive) BIAS (Positive) ) (a) (b and negative bias. and negative Shape biasing (a) expanding and (b) contracting an area using a positive a using area an contracting (b) and expanding (a) biasing Shape 2.42: NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 60 of 488 does not exist, not does Logos textgds> textgdsC> textgds> textgds> textgds> 0 0 0 and fontName fontName x y x y 0 0 0 example. 20 20 20 fontSize fontSize fontSize fontSize }} ) of the text string. text the of ) function Interface }} }} }} Serif Arial PostScript {{Algerian}} {{ {{ textgdsC textgds GDS rendered {{fontName {{fontName 2.43: !@#$}} }} }} }} }} defines the rendering resolution of the text. text. the of resolution rendering the defines Parameter ext Labels, ext ext Figure ) or at center ( center at or ) values are in micrometers. Font size is specified by conventional in micrometers. values are Font ) shapeReso <{{4!AaBbCc <{{SomeT <{{4!AaBbCc Text represents all printable characters. characters. printable all the represents If x,y Text <{{someT <{{someT ( textgds ext 2.6.1 2.6 parameter parameter NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox "Serif" will be used and a comment will be placed within the error log file. If list will within font the "Serif" does system font not exist, then first encountered be used. in line ascender the to descender the from measured definitions, fontmetrics micrometers. fonts. Text shapes are directly placed within the active GDS structure. structure. GDS active the within placed directly There are shapes fonts. Text left lower the at either is placement where shapes, text for constructors two are ( corner someT The following are scripts used to generate the text in Figure 2.43: in Figure the text generate scripts used to are The following Text shape is characterized by a string of characters using vector based system system based vector using characters of string a by characterized is shape Text

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ) does page 61 of 488 fontOutline textOutline shape in the fontName fontName Text textOutline> textOutlineC> parameter. parameter. x y x y ). two for constructors are There x,y ( fontSize fontSize fontSize fontSize }} }} Text Outline GDS example. Outline GDS example. Text values are in micrometers. size Font is specified 2.44: ) of the text string. Interface function parameter ) {{fontName {{fontName x,y ( Figure Within this object, errors dealing with exceeding maximum dealing Within with this object, exceeding errors }} }} ext ext Outline textOutlineC NOTE: defines the rendering resolution of the text. If the Text <{{someT <{{someT 2.6.2 parameter (see section 2.2.7). parameter NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox IMPORTANT number of GDS vertices could be encountered. circumvent this dilemma, To shapeReso system the within file. font log encountered first then exist, not does "Serif" If font list will be used. the to descender the from measured definitions, fontmetrics conventional by line in micrometers. ascender Outline width is specified using the lithography) are of consideration. In a similar manner to name section, the outline a font shape string of is previous characterized text, and size, width of the outline and position text shapes, where placement is either at the lower left corner ( not exist, "Serif" will be used and a comment will be placed within the error or at center ( Text outline shapes are useful when lithographic write times (e.g. electron beam (e.g. times electron write lithographic when useful are shapes outline Text when using larger letters, increase the shapeReso increase letters, when using larger

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x Δ labelMaker} labelMaker} font- ). Each labelMaker} labelMaker} labelMaker} labelMaker} page 62 of 488 out rowCol ). Label place­ r y y ,y Δ Δ r ), font name ( ), font ). con­ remaining 2 x x x rowColumn ( col Δ Δ N r r and y y Carriage returns cannot Carriage returns r r autoOut autoRowCol autoOutLett autoRowColLett x x 2) y y y y outer Δ Δ Δ Δ )or a combination of numbers of combination a )or option. the for placement Label x y x y x x x x Δ Δ Δ Δ : SEPARATED allowed. All specified parameters r r r r y y y y are are constructed from any printable ) and columns ( separated. separated. r r r r n x x x x row NOT N ...L autoRowColumnLetters TAB 1 row-column x y x y x y x y L ). In name all is not cases, contained if the font m), and the pitch along the two directions ( autoRowColumn and n and µ in ...L option initiates with the top-left label at a position and fontName fontName fontSize fontName fontSize Labels 2 outer ,L 1) 1 col col L N N fontSize fontSize Maker row row autoOuter N N and the left hand side placement initiates at and at the left hand side initiates placement NOTES: row-column ) fontName fontName fontSize fontName fontSize fontName fontName fontSize fontName fontSize n n autoOuterLetters L L x,y Label col col col col ( ...... N N N N ) are specified. Similarly, custom labels are defined by an additional set labels are custom specified. ) are Similarly, 2 2 option is along the top and left side of the chip array. Top side placement Top option is along the top and left side of the chip array. ), font size ( y L L Δ ). In both ( cases number of rows row row row row 1 1 2.6.3 x,y {N {N {N {L {N {L TAB are parameters labels where 2 custom Name be used within the script line constructor. be used within the script line constructor. v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox ment for the and ( of label parameters Label maker has 6 available constructors. constructors. gen­ available 6 automatically has constructors 4 maker Label erate labels based on the number of rows and columns. Chip labels are ei­ ( numbers ther ( letters and labels ( user-defined, custom, generate structors an has pair constructor outer starts at IMPORTANT between constructor parameters is 4 auto labels: 4 auto ASCII character, including the space character. including the space ASCII character. character, space separation Therefore, within above constructors must be within above constructors ( a Serif font. to will default list, label maker font within the system

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 63 of 488 (f) (b) (d) ) ,y (x x Δ (c) (e) (a) Label Maker Constructor Examples: Constructor , , (b) autoRowCol Label Maker (a) autoOut ) . , (e) out, and (f) rowCol , (d) autoRowColLett (c) autoOutLett ) r y ,y ,y Δ r (x (x 2.45: NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 labelOutline} labelOutline} labelOutline} labelOutline} labelOutline} labelOutline} shapeReso page 64 of 488 out rowCol y y Δ Δ x x Δ Δ r r y y Carriage returns cannot Carriage returns r r autoOut autoRowCol autoOutLett autoRowColLett x x 2) y y y y Δ Δ Δ Δ x y x y x x x x Within this object, errors dealing dealing errors object, this Within Δ Δ Δ Δ : SEPARATED allowed. All specified parameters r r r r 3) y y y y are are constructed from any printable separated. separated. r r r r n x x x x Text NOT ...L TAB 1 parameter (see section 2.2.7). (see section parameter x y x y x y x y L - Outline fontName fontName fontSize fontName fontSize Labels 1) col col N N Maker row row N N NOTES: fontName fontName fontSize fontName fontSize fontName fontSize fontName fontName fontSize n n L L Label col col col col ...... N N N N 2 2 L L row row row row 1 1 2.6.4 {N {N {N {L {N {L TAB are parameters labels where 2 custom parameter. parameter. NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox be used within the script line constructor. constructor. line script the within used be the fontOutline is specified using circumvent circumvent this dilemma, when using larger letters, increase the IMPORTANT between constructor parameters is This method is identical to the previously defined label maker section (2.6.3) This method defined is label identical maker the to previously 4 auto labels: 4 auto ASCII character, including the space character. including the space ASCII character. character, space separation Therefore, within above constructors must be within above constructors with exceeding maximum number of GDS vertices could be encountered. To with the exception that rendered shapes are outlined text objects. text width outlined Outline are shapes rendered that exception the with

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 and page 65 of 488 autoRowColLett (b) (a) x Δ ) ) ,y ,y y Δ (x (x Label Maker Outlined Text Constructor Examples: Constructor (a) Text Outlined Maker Label . (b) rowCol 2.46: NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 psFracEle­ page 66 of 488 pixelScaling psFracElements psPixelValue Shapes psPixelValue psPixelValue times. Alternatively, times. Alternatively, psFracElements Value 20 0.100 Pixel Fracturing GDS 10.000 Postscript FracturedElements pixelScaling to , implying that the shape is unfractured. unfractured. is shape The the that implying 1, -direction. postscript -direction. each for changed be could value This y numberOf PostScript Defining PostScript PostScript parameter allows direct control of allows parameter control number direct of vertices per GDS shape. 2.6.5.1 2.6.5.3 2.6.5.2 2.6.5 e 2.47 illustrates the relevant portion of the EPS file. This information is ments Bitmap images could be vectorized using either Illustrator, Inkscape (open source package) or some other package capable of exporting EPS files. Fig­ ur within the CNST script file. copied and pasted v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Default global value is value global Default per GDS shape. the maximum number of vertices could exceed implies that the overall postscript shape area will be subdivided into 20 seg­ the along ments shape. reduces the postscript image by 10. Once the value is set, subsequent postscript subsequent set, is value the 10. Once by image postscript the reduces shapes are rendered to this value. This value postscript shape. could be changed for each PostScript shapes are defined by double values in conjunction with constructors constructors with conjunction in values double by defined are shapes PostScript doubles. 1.000. is value global Default coordi­ postscript the that implies This unscaled and in units of micrometers. values are nate Parameter represents the scaling of the postscript coordinate values. For instance, instance, values. coordinate the scaling of the postscript For represents scales each postscript value by 10 The following parameter defines the number of fractured postscript shapes. shapes postscript continuous large, scaled, aggressively since important is This (moveTo (m), lineTo (l), curveTo (c), etc). The pixel value defines scaling of these these of scaling defines etc). value (c), pixel The curveTo (l), lineTo (m), (moveTo

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 67 of 488 . . . GDS shape of the rendered postscript shape. GDS shape of the rendered 2.48: Figure PostScript scriptingPostScript.eps example. scriptingPostScript.eps PostScript the denotes rele­ The arrow the CNST script file. into be copied and pasted to vant text olog 2.47: ostScript Example - PSshapeRaven.eps P f QQ showpage 3.843 140.852 3.562 c 142.531 3.175 q 0 -1 1510 88 86.913 rectclip 151 q -870 re g W n 6.23 134.422 6.87 134.422 6.179 c 134.426 5.476 138.051 2.675 5.913 134.035 6.249 c 134.035 6.593 134.09 6.675 134.363 6.738 c 140.336 1.617 c 142.469 0.624 146.109 0.07 147.922 0.46 c h 135.105 6.913 136.297 6.339 137.813 5.074 c 138.77 4.277 139.641 4.046 142.695 3.468 142.695141.691 3.335 3.015 c c 142.695 139.914 3.066 3.327 142.234 138.77 2.917 3.808 137.688 4.706 c 135.844 143.895 0.167 m 142.457138.094 0.456 2.331 140.961 135.961 0.925 3.824 140.039 134.777 1.378 5.058 c c 134.176 5.687 134.035 %%Trailer %%EndPr %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 0 -1 151%%EndPageSetup 87 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ ) are are ) page 68 of 488 cnstLogo nistCnstLogo and (b) and constructor. constructor. parameter defines the defines parameter ) (b ) or combined ( combined ) or shapeReso cnstEmblem cnstLogo nistLogo nistCnstLogo cnstLogoEmblem nistLogo , scale scale scale scale logos y y y y cnstLogo NIST , using the nistLogo NIST logo created x x x x (a) and 2.50: parameter. parameter. CNST logos created using the (a) the using created logos CNST structors. using the nistCnstLogo NIST and CNST logos created Combined constructor. Figure CNST cnstEmblem 2.51: 2.49: 2.6.6 placed placed at that coordinates define the centroid of the GDS logo shape. Since Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure logos are cast using postscript values, the the values, postscript using cast are logos rendering resolution of the logo shapes. Scaling of the resulting logo is set using the scale dividual ( Three Three constructors are available for placement of CNST and NIST logos. In­

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 = 8) and with i o r N r arcSquareFillV> arcHexFill> arcHexFillV> arcSquareFill> page 69 of 488 shapeReso ). Parameter Parameter ). Δx Δx Δx Δx ), start and end and start ), o r s s arrays n n are either defined by by defined either are ). s s s s and r r r r s ) or by the (f) i r (c) r arcHexFillV ) ) ) ) (x,y (x,y (x,y (x,y and θ θ θ θ ). For a defined torus by ). For N N N N N square-hex arcHexFill e e e e θ θ θ θ and s s s s (e) (b) θ θ θ θ o o o o r r r r arcSquareFillV bounded i i i i r r r r y y y y arcSquareFill = 8) boundary. ( x x x x s 360. radius of dots circular The n (d) (a) = e . A circular boundary is represented by a radius a by 360. represented is boundary circular A θ ) and the number of ( vertices = e e θ (Torus-Circle) θ and boundary. boundary. Hexagonal array of dots inside (d) an arc, (e) circular and (f) Square Square array inside (a) an arc, (b) circular and (c) hexagonal ( hexagonal (N and Objects Arc and s = 0 θ s 2.52: θ = 0 defines the shape rotation about the arc origin (x,y about the arc defines the shape rotation s ) θ 2.7.1 = 0, , 2.7 (x,y

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1, ) ≤ (2.3) (2.4) (2.5) (2.1) (2.2) t 3y ) ≤ ,P 0 2y space as space 3x ) ,P page 70 of 488 2x x,y parameter. In parameter. ) 3y 3x P P 3 (b , with respective 3 3 )(P P t t 3 3 P 1y t + + )(P ,P + 2y 2x 2 0y 1x P P and P 2 2 ,P 2 (P 0 )t )t shapeReso )t P 0x t t k t P (P − − − k is a variable ranging variable a is t )! t k 3(1 3(1 3(1 n−1 − + + ) + t 1 1x 1y !(n − k tP tP tP 2 (1 2 2 ) k ) ) t t t C − k − n − n n! is the index, the is

k n =0 = = 3(1 k n 3(1 3(1 , but become closer together in ( closer together but become , equation 2.1 becomes equation k t + + + C 0 ) = ) n P 0x 0y = 3 = 1 3 P P 3y ) t B(t 3 3 t ) ) ) ,P t t − . Equation 2.3 for the two coordinates is written as is written . the two coordinates 2.3 for Equation 2y 3x 2 − − (1 ,P (1 (1 = 2x Curve ) = = and P x y ) ) 1 (a) B(t )(P 1y B(t B(t Cubic Bezier curves rendered at a (a) at lower and (b) higher resolution. Bezier Cubic curves rendered Dots curve vertices. rendered represent )(P ,P Bezier 0y 1x is the binomial coefficient given by is the polynomial degree, degree, polynomial the is ,P (P k 2.53: n C 0x n = 0 (P t 2.7.2 Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure Figure 2.53 shows rendered curves at varying resolution. Rendered curves exhibit an increased vertex density at higher curvatures automatically. The in spaced uniformly are points increases. curvature and curved shapes. with n With points P control shapes are rendered to a resolution defined by the by defined resolution a to rendered are shapes vector computer in path a as used curve parametrized a is curve Bezier general, graphics. of Bezier multiple can paths be used to model smooth Concatenation as expressed is mathematically A Bezier curve complexity. curves of arbitrary The nanolithography toolbox complex employs cubic Bezier creating curves for The toolbox employs Bezier curves to represent complex curved objects. curved complex represent to The curves Bezier employs toolbox The where where where the corresponding start and end points are

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Bezier Curve is defined using a start (x1,y1) and end (x2,y2) points, two control

points (cx1,cy1) and (cx2,cy2), curve width (W ) and θ(x1,y1) rotation about (x1,y1). shapeReso parameter defines the rendering resolution of the Bezier curve.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: (cx2,cy2) (x2,y2)

(x1,y1) (cx1,cy1)

Figure 2.54: Bezier Curve example showing the start and end points along with the corresponding control points.

Figure 2.55: Two example GDS shapes of the bezierCurve constructor. Highlighted periphery shows curved sections with densely packed vertices.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 71 of 488 ) 2 ,y 2 (x bezier- page 72 of 488 bezierCurveInv> ) 1 ,y 1 (x θ ) 2 s W ) ,cy 1 2 e ,cy (cx W 1 2 (cx y 2 x 2 cy 2 cx constructor. constructor. 1 cy e s 1 W W cx CurveInv Schematic Schematic illustration showing various parameters from the ) 1 1 y ,y 2.56: 1 1 (x

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: (x2,y2) (cx2,cy2)

We g (cx1,cy1) Ws (x1,y1)

Figure 2.57: Schematic illustration of the bezierCurveInvSlot constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 73 of 488 page 74 of 488 ). Iteration x,y ( sierpinskiTriangle> sierpinskiCarpet> vicsekSaltire> vicsekCross> curvedTree> parameter. parameter. W idth Length Length Length Length Length iterations iterations iterations iterations iterations y y y y y Generated GDS fractal examples shapes. Generated x x x x x 2.58: Figure Fractals 2.7.3

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 functionRT> functionXY> ), ◦ co­ N ( ) 22.5 180 (2.6) (2.7) 180 0 0 r,θ 1000, a ) to gen­ ) to ( 1 1 = page 75 of 488 N and ) 0.22 (b) = 2. In order to x,y ( functionXY> functionRT> ). EL 1000 1000 0.22 ) ) (θ . Functional representa­ . Functional (x,y (x,y BEV θ θ 6.28 ER ), number of segments 0 U and (b) r = 1, parameter parameter is as represented ) θ x 44 θ (x MIT ) = 2. Join is by represented the D −10 −10 0 88 − JOIN JOIN e ), = and 4θ ( 10 10 x 2 U r,θ

( x ( ROUN CAP scriptingFunctionPlot.cnst JOIN 11sin 44)}} SQUARE 14sin = = 0, ) and = (−x/ ) (θ N W CAP NW r ER (x Function plots (a) y Function y = 1, or (a) U U x θ MIT ROUND 2.59: and upper limits Math.exp L L 10). Both curves were constructed using = ) ∗ − )}} Plot L , t θ 2) ∗ ROUND Figure (10 CAP x y x x y θ and = 0, m, L µ x T . Mathematical functions are represented in terms of the Java ( )}} t )}} about 22 Function . (x (t , cap and join parameters. Cap is represented by the following integer integer following the by parameters. join and cap ), represented is Cap ◦ Math.sin(4 Math.sin(x/ 5 BUT . W ∗ ∗ ( <{{y <{{r 22 ), lower As seen above, in polar coordinates 2.7.4 x,y <{{11 <{{14 following following integer values a variable NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox erate functional plots in Figure 2.59: functional plots in Figure erate Functional plots in figures 2.59(a) and 2.59(a) figures in plots Functional by rotated respectively are 2.59b and given by the two curves is correspondingly tion for avoid exceeding GDS shape point limits, each horizontally function exceeding is fractured avoid the centroid. and vertically about Functional plot method allows functional representation in representation functional allows method plot Functional ordinate systems. Generated curves are defined by a function, translation values The following scripts (see example file The following width of 0 ( width

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1) ). Several x page 76 of 488 ( ) ) ) ) Math.sin (x 1 10 − n x log e x random number in [0, sinh(x cosh(x tanh(x is represented as is represented ) x ( sin Math.log10(x) Math.expm(x) Math.pow(x,n) Math.random() Math.sinh(x) Math.cosh(x) Math.tanh(x) ) ) ) ) x x ln(x √ e π cos(x tan(x sin(x Math.log(x) Math.exp(x) Math.sqrt(x) Math.PI Math.cos(x) Math.tan(x) Math.sin(x) NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Math class methods. For instance instance class Math methods. For methods from the Java Math class are shown below. The entire Java Math class limits, method is summary available including documentation, argument online.

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ) n (c and x ,r y ), with ,d page 77 of 488 x x,y d ( . y r = x = 4, r x s r (inner). Figures 2.60a, b and grayENgon grayER 0 y ) ) r ) (b (x,y (x,y θ θ ) and (c) N s s (outer) (outer) to 1 n n N − y y n d r y x x d degree rotated n-gon structures where the number of sides of number the where structures n-gon rotated degree x y r x y d x 45 d ers a variety of means for constructing grayscale objects from objects from constructing grayscale ers a variety of means for Polygons rotation about rotation the origin. Rectangular structures 2.60a) (figure Evenly distributed grayscale segments for (a) rectangles and n-gons with (a) rectangles segments for grayscale Evenly distributed ) large number of vertices (N number of vertices (b) large (a) Grayscale (x,y θ (figure 2.60c). 2.60c). (figure 2.60: 2.7.5.1 = 4 2.7.5 , and s y NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure number of segmentations, the outermost dimensions defined by defined dimensions outermost the segmentations, of number r to equivalent are N segmented segmented polygons. GDS layers are assigned to each of the sections with layer numbers ranging from c show evenly distributed grayscale structure are centered at This section off

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ) The (c . i y r = . Similarly, . Similarly, i page 78 of 488 n x y . d n y > r = 4, r > s ··· 3 ) coordinate )) pairs. coordinate ··· y i )). constructors The grayUDR grayUDNgon y 3 d 1 y y ,r r 1 n 2 > ) ) i y y y ,r . . . x r r r 2 > 1 r y x 1 ( (x,y (x,y 2 d r x ) and (c) N y θ θ ( r s r > 2 (or > 1 x s y ) r (or 1 N d y ) yi 1 ... y ,d n n y n ) y ,d and xi x d r 1 and r r d n (b x ( x n d n x d n ( x r x d r > > ··· ··· 3 ··· ··· 3 x x d r 2 2 y > y > d r 2 2 x x d r 2 2 x x n 2 1 > > d r y y y 1 1 . . . d d d x x 1 1 d 1 x y y d r d 2 x 1 d 1 x x r d ... User defined distribution of grayscale segments for (a) rectangles and (N number of vertices n-gons with (b) large n x d (a) x y x y 2.61: NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure User defined grayscale segments are shown in figures 2.61a, b and c. that assume further r n-gon segments for respective respective constructors are defined by The outer most segment is defined by defined is segment most outer The

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2.7.5.2 Ramp

grayERamp constructor allows ramping with either UP = 1, where the dx is subdivided into n segments with GDS layer numbers range from 0 to n 1. Alternatively, with UP = 0, the GDS layer numbers range from n 1 to 0. gray­− ERamp2 constructor forms a double ramp (up then down) with evenly− divided segments where GDS layers range from

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: ⎧ ⎪L n ...L ...L n n is even ⎨⎪ 2 0 2 1 L = ⎪ − (2.8) ⎪⎩L n 1 ...L0 ...L n 1 n is odd −2 −2

x y dx dy n UP θ(x,y) grayERamp

x y dx dy n θ(x,y) grayERamp2

L0 L1 L2 Ln 1 Ln 1 L1 L0 ··· − − ···

dy dy

(x,y) (x,y) dx dx (a) (b)

L n 1 L L L L n 1 −2 ··· 1 0 1 ··· −2

dy

(x,y) dx (c)

Figure 2.62: Evenly distributed grayscale ramp segments using grayERamp with UP values of (a) 1 and (b) 0. (c) Grayscale ramp up/down segments using the grayERamp2 constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 79 of 488 and (2.9) ) t y ,y d t with GDS n x 0 x ( page 80 of 488 with UP val­ UP with L 1 n > · y · , d ··· · n 3 n x x > d ) −1 < (b 2 n is the number of defined of number the is grayURRamp L n−3 ··· n 2 grayUDRamp grayUDRamp2 L 3 x ) ) t t < x n−2 ,y ,y ··· 3 2 t t L 2 1 (x (x is even is odd and n = = x , where where 1, θ θ n n n n < x − 1 n x UP −1 y y ) 2 0 2 n n−1 d d L ··· (c y ..L n n d . ...L x x n 0 0 x .L ..L ...... 1 constructor with an even number of points n. constructor n−2 defined: L −1 ··· 2 ,L 2 2 2 n n−3 0 0 x x n−1 L L L L x n−3 ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ 1 1 2 L x x x = (a) −1 L t t 2 n . Constructors assume y y ··· ··· ) L t 1 ,y t t x User defined grayscale ramp segments using segments ramp grayscale defined User grayURRamp2 ues of (a) 1 and (b) 0. (c) Grayscale ramp up/down segments using the t x x (x θ 0 1 2.63: L x Figure / v2016.09.01 • http://www.nist.gov/cnst NIST • CNST Nanolithography Toolbox Similarly, user defined ramp segments are defined using the below constructors. constructors. below the using defined are segments ramp defined user Similarly, to equal is shapes constructed of Number by translation a positions. segment undergo segments Grayscale rotation grayUDRamp2 for layers

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), n ( ). ) page 81 of 488 (x,y 1 10 n n 9 2 ◦ n n r i ) r ) ) 8 3 ,y n n (c (b (x 7 4 n n ), number of arc segments 6 5 ◦ n n r graySpiralStairOverlap and the rotation angle (θ and the rotation ) and ) i r ( (x,y sides θ sides N n 4 3 2 1 0 9 8 7 6 5 ). The resulting structure is defined by the center i L L L L L L L L L L L ◦ ( Staircase r i (a) Spiral ), inner and outer radii Grayscale spiral with Grayscale staircase overlapping segments. (a) 3D projection parameters. showing and various (b) constructor 2D illustration (c) Scan­ structure. Scale fabricated beam ion focused a of micrograph electron ning 200 nm. to bar corresponds of L. Ocola [82]) (Courtesy x y r x,y ( 2.64: 2.7.5.3 erent erent GDS layers position NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure number of sides of each segment (N number of sides of diff The spiral structure is constructed using overlapping arc segments cast to

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 82 of 488 9 0 L L 1 10 n 8 1 n L L 9 2 ◦ r n n graySpiralStair ) (x,y i ) r θ ) 8 3 7 2 ,y L L n n (b (x sides Grayscale spiral staircase. spiral staircase. Grayscale N n is represented by a distinct GDS layer. by a distinct GDS layer. is represented 7 4 2.65: ) n n ◦ i r i 6 3 Figure L L 5 6 n n x y r 4 5 L L Here, each segment (n Here, The following constructor creates a grayscale spiral staircase structure NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox without overlapping arc segments. arc without overlapping

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 83 of 488 3 3 intElec1 intElec2 l l ) ) (x,y (x,y 1 1 l l θ θ and (b) intElec2. W W b b H H ) (a) (b N p b N p b 3 3 p p l l 2 2 l l Electrodes 1 1 l l 1 1 w w 2 2 Interdigitated electrodes (a) intElec1 electrodes Interdigitated 2 2 2 2 w w l l w w 1 1 2.66: W W b b ) ) Interdigitated Figure x y w x y w (x,y (x,y H H b b 2.7.6 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 84 of 488 3 3 l l 1 1 intElec3 intElec4 l l ) ) and (b) intElec4. (x,y (x,y θ θ W W b b ) H H (a) (b p b p b p p N N 3 3 l l 2 2 l l 1 1 1 1 w w l l 2 2 2 2 l l 2 2 w w w w Interdigitated electrodes (a) intElec3 electrodes Interdigitated 1 1 W W b b 2.67: ) ) y (x,y (x, x y w x y w H H b b Figure NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 85 of 488 3 l intElec5 1 ) l (x,y θ W b H N p b p 3 l Interdigitated electrodes intElec5. electrodes Interdigitated 2 l 1 w 1 l 2.68: 2 w 2 w Figure 1 2 l W x y w b ) (x,y H b NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2.7.7 Junctions 2.7.7.1 T Junction

x y w1 w2 L1 L2 r Nsides θ(x,y) tJunction This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

L1 w2

L2 w1

r (x,y)

(a)

L1 w2

L2 w1

r (x,y)

(a)

Figure 2.69: T junction (a) with and (b) without (r = 0) circular ports.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 86 of 488 2.7.7.2 H Junction

x y w1 w2 L1 L2 r Nsides θ(x,y) hJunction This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

L1 w2

L2 w1

r (x, y)

(a)

L1 w2

L2 w1

(x,y) (b)

Figure 2.70: H junction (a) with and (b) without (r = 0) circular ports.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 87 of 488 2.7.7.3 Arrow Junction

x y w1 w2 L1 L2 r Nsides θ θ(x,y) arrowJunction This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

θ L2 w2

L1 w 1 r (x,y)

(a)

θ L2 w2

L1 w1 (x,y)

(b)

Figure 2.71: Arrow junction (a) with and (b) without (r = 0) circular ports.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 88 of 488 meanderSqr> meanderRamp> meanderTri> meanderSin> of width b page 89 of 488 ) ) ) ) parameters. parameters. = 0. ) 2 (x,y (x,y (x,y (x,y 2 and H H a = 2 . Number of wave b and 1 (H a b c θ a b ca θ b ca θ b c θ and/or L . = 0 1 segments H and height height and = ) segments ˜ refmeanderPortsExample, rectangular rectangular refmeanderPortsExample, 2 1 and are of length L L a = and ANN AN AN AN x 1 (L W W W W 2 2 2 2 H H H H . a number from is constructed structure The sine wave Channel N 2 2 2 2 L L L L 1 1 1 1 H H H H 1 1 1 1 Meander e 2.72 illustrates the four meander channel configurations with re­ Figur . Wave structures initiate at 2.7.8

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 2 2 2 H H H H , 2 2 2 2 L L L L page 90 of 488 meanderSin constructors. constructors. c c c c and (d) meanderTri ) ) ) (c (a) (b (d b b b b N N N N ...... A A A A a a a a W W W W ) ) ) ) 1 1 1 1 ,y ,y ,y ,y Example shapes illustrating various parameters from the (a) Example from shapes various illustrating parameters (b) meanderSqr, (c) meanderRamp L L L L (x (x (x (x 2.72: 1 1 1 1 H H H H Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 H = 0. 2 H 2 = L =left (b) 0, 2 page 91 of 488 L 2 W W = H 1 = H 2 L = 1 L c c c ) ) (c (a) (b ...... b b b N N N . . . and (c) reservoirs and using (c) reservoirs = 0 1 H = 1 L A A A a a a ) ) ,y ,y W (x (x ) 1 ,y Meander channel example illustrating various rectangular reservoir con­ reservoir rectangular various illustrating example channel Meander using reservoir figurations. right (a) without Structures reservoir using reservoir L (x 2.73: 1 H NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 92 of 488 point pairs. point point Last ) ) x 4 ). 5 ) ,y x,y 3 4 ,y ( 5 ,y (x 3 (x (x ) ... ) ) 5 points2shape 2 1 ,y ,y n 5 ,y 2 y 1 (x (x constructor illustrating a illustrating constructor closed shape con­ n y x ··· ) to close the shape. close the shape. to points, (x 1 ) example illustrating a GDS rendered polygon. a GDS rendered example illustrating 2 1 ,y y 1 ,y 2 1 (x x points2shape 1 y Shape 1 x To points2shape 2.75: Example of the points 5 from structed Points connects the first (x connects the first 2.74: ) Figure n ,y 2.7.9 n NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure The method creates a polygon from user defined user from polygon a creates method The (x

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 = 0, T BUT page 93 of 488 polypath ) Join x ) along a defined path by 3 ). 5 ,y W 3 ,y 5 (x (x Cap ) ... ) ) 4 2 1 ,y ,y W 4 ,y = 2. 2 1 (x (x EL n y y constructor constructor illustrating a shape rendered con­ n ) Path points, (x x 1 . Join is represented by the following integer a ,y = 1, BEV 1 = 2 (x ··· polypath 2 example illustrating a GDS polygon along a Gaussian path. along a Gaussian path. a GDS polygon example illustrating y Along 2 x SQUARE = 0, ROUND polypath 1 , or y ER Example of the points 5 from structed Polygon = 1 1 2.77: x 2.76: point pairs. values integer by the following Cap is represented ) 2.7.10 Figure x,y NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure ROUND values MIT The method creates a polygon of a specified The width method ( creates (

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ) S I will = 1 ). R R R R , with 400, page 94 of 488 and = 3 S randomPolygons> option for for features features for option for m respectively. Generated respectively. m R µ R R 2 R . Separation parameter I number of shapes are then H e e N m and m 1, each shape will be randomly N µ 1 S . The sides is created sides and cast is into created a GDS s s N and height N is set to r R W R H with r W y m, number of elements and iterations were set to to set were iterations and elements of number m, µ x 40 Polygons uniqueStructName × m µ 40 an element radius and separation of separation and radius element an View of a generated GDS file using the Random Polygons module. Polygons area Random The the using file GDS generated a of View was enabled. shapes had (a) 44 sides and (b) 3 sides with random rotation Random 2.78: Random rotation Random is rotation enabled if 2.7.11

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ). = 1). R page 95 of 488 randomEllipses> randomEllipsesV> R R R R randomEllipsesV I I e e ) between adjacent circular ) between circular adjacent N N Ellipses S S S s N . y y y r r x x Vectorized r r S H H ) and vectorized ellipses ( ellipses vectorized and ) and W W y y x x Ellipses x r randomEllipses y r GDS rendered random ellipses with random rotation enabled (R random ellipses with random rotation GDS rendered defines the rendering resolution of randomEllipsesV . of resolution defines the rendering Random ellipse example showing ( separation boundaries defined by the radius r Random 2.80: 2.79: 2.7.12 Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 construc­ page 96 of 488 ) creates a creates ) can be any positive any be can i resoPatternPi width. resoPatternPi w nπ and (b) and ). pattern ensure to In this scenario, is an even positive integer. For even is an even positive integer. For circumference, circumference, resoPattern resoPatternPi (w ) ) πr resoPattern ) 2 (a) (b ,...,n (x,y (x,y 4 θ constructor, the constructor, structure is defined by the , Pattern = 2 and width i ) (r Test x y r w θ x y r n , where , where resoPattern i = ), radius /w (x,y Resolution patterns using (a) using patterns Resolution tors. Resolution 360 2.81: 2.7.13 Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Radial pattern below is useful for characterizing the stigmation of a lithogra­ a of stigmation the characterizing for useful is below pattern Radial phy tool. Using the origin center symmetry, the across segments of distribution zero. than ( constructor second The greater integer of π is an integer the end-segment where similar figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , in H re­ S (text (text H and (b) and , height , page 97 of 488 incremental incremental W ), with a δ e resoPatternRS 2.0 resoPatternRSA and W ) s value of W ··· resoPatternRS (x,y (W ) ) S θ (x,y (a) (b . The font resolution is defined using the . using defined is resolution font The W N 1.25 H N θ S δ H constructors. constructors. e W ) 1.0 ,y s W parameter. The font height is equal to the value of value the to equal is height font The parameter. 1.0 (x x y W ) elements in each row. above the directly label is placed A text elements in each row. ,y H N (x soPatternRSA Resolution pattern of rectangular lines using (a) using lines rectangular of pattern Resolution x y W and shapeReso W 2.82: 2 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure patterns using a start and end width values using a start and end width values patterns units. micrometer pitch pitch of value the indicating lines of array global scale). shown to 2.82 is not label in Figure Resolution pattern formed using two rows of rectangles of width of rectangles of rows two using formed pattern Resolution variation. variation. The space between the arrays is defined by the parameter The following constructor creates arrays of rectangular shaped resolution

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , H re­ and (b) and , height page 98 of 488 W resoPatternLS W 2.0 resoPatternLSA ) value of W ··· resoPatternLS (x,y ) S θ (x,y ) (a) (b in micrometer units. in micrometer N 0.8 S incremental incremental variation. The space between the H N θ δ δ H ) 0.4 constructors. constructors. e 1.0 ,y . label definition is identical to one Text described for W (x H H constructor (previous example). example). (previous constructor s = ), with a e x y W W number of shapes. The maximum number of generated shapes shapes. generated of of number number maximum The W N soPatternLSA Resolution pattern of rectangular lines using (a) using lines rectangular of pattern Resolution and x y W s and W ( W 2.83: 2 Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox pitch pitch is defined when the resoPatternRS S by the parameter is defined arrays values The following resolution patter is formed using L-shapes of width of L-shapes using is formed patter resolution The following An arrayed version of the above is constructor defined by a start and An end arrayed width

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 99 of 488 Separation (c) spiralArch spiralFermat spiralLog (Figure 2.84a). (Figure ) π (2 / ) increment increment increment spiralArch spiralFermat spiralLog width (b) + b 0.010 Separation a a separation = ( m turns turns turns , is shown in Figure 2.84b. as defined Figure spiral, in logarithmic shown The is , the pitch between subsequent spiral turns. Fermats spiral, turns. spiral subsequent between pitch the Fermats N N N in Figure 2.84: in Figure θ 2 0) a = √ , where where , = (a) GDS rendered spiral examples. (a) Archimedes (b) Fermat and (c) Logarith­ spiral examples. GDS rendered (b) Fermat (a) Archimedes mic spiral. Spirals r mθ W idth W idth W idth = 0,y = , is shown in Figure 2.84c. Figure point the in by shown defined is is , spiral each of Center r 2.84: y y y bθ ). ae 2.7.14 x x x 0 0 1.0 5.0 2 0.010 0 0 2.50 7 0 8 4.4 4.0 8 0.1 0 .010 = NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox origin (x Figure r Spiral objects are characterized by uniform, converging and diverging spacing and diverging converging by uniform, characterized Spiral objects are between subsequent turns. spiral an Archimedes spacing represents Constant defines parameter as defined The following scripts were used to the generate spirals around the centered (x,y where where

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , start w page 100 of 488 , of width urns t N p spiralRect w ) (x,y s θ L Rectangular spiral. Rectangular turns ) p N (x,y 2.85: s L Figure w between turns. - Rectangular x y Spiral and pitch p and pitch s 2.7.15 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Below constructor creates a rectangular spiral of length L

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 m) m). rep­ µ µ 80 , 255) 1000 m − µ − , defines the ) if their re­ alignFFFB2 page 101 of 488 ) (0 m W (80 are GDS layer GDS are layer I µ (x,y b and to to alignVern> θ L 0. extents Pattern are tone-reversed tone-reversed are ) m) 1000 b µ − L and ( (x,y a 80 ), pattern extents range extents pattern ), θ L − , Elements defines the resolution be­ W alignFFFB1> alignFFFB2> align3Level> m ) and width ( alignVernLb2> alignVernLb1> I alignFFFB1 L µ and/or I a ) ) L 80 position. The pattern pattern extents in range from ) ) ) I L are integer values integer are ) − ( c (x,y (x,y (x,y (x,y (x,y b L θ θ x,y align3Level vernReso θ θ θ 900µm). ( are are integer values defining the two are activated. are activated. The boolean inversion b 1000µm). INV and b Reticle L c b L a L m. Layers , µ a INV and L alignVernLb2 - Predefined b b b INV a ). vernReso vernReso to (900µm, to L L L L 155µm). and and a b b to (1000µm, to V L L a a a parameter parameter defines the resolution between the two L pattern pattern extents in range from IN Marks a a −900µm) L L vernReso to (117µm, to m), whereas b µ y y L −1000µm) vernReso a

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 102 of 488 are shown sepa­ are b L , and a L . Two layers layers . Two ) (a) (b alignFFFB2 and (b) alignFFFB1 rately as blue (left) and orange (right). orange and (left) blue as for rately used be could methods These alignment. or front-to-back front-to-front Two Two level lithography alignment mark strategies constructed using (a) 2.86: NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ) L I ) (c page 103 of 488 . c respectively. ( Length respectively. b verniers constructed using constructed verniers L y and (c) L and b and a x L , (b) L a L ) (b with layers (a) L with layers ) parameters define the region extent used for tone reversal reversal tone used for extent define the ) region parameters W I . are Blue orange and layers W Two-level alignment mark strategy with strategy mark alignment Two-level alignVern and width ( of the specified alignment layers. This method conventional is suitable for lithography applications. overlay Three-level, front-side, lithography alignment mark strategy constructed constructed strategy mark alignment lithography front-side, Three-level, using align3Level (a) 2.88: 2.87: NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 . and Blue page 104 of 488 verniers, and la­ layer y alignVernLb2 and x and (b) and a a L L ) respectively. respectively. These method is suitable for (a) (b b alignVernLb1 L and b b a L L L Two-level alignment mark strategies with Two-level (a) using constructed bels orange layers are lithography applications. conventional overlay 2.89: Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ). at at ) will and and x,y ( W ) ) L L B P P ( ( INV page 105 of 488 command (see command and width ( alignCustC4> ), a horizontal and ) L alignCustC3> layer ) W B ( ( ) alignCustC2> (x,y alignCustC1> ), paddle length ), paddle length θ ) (x,y L L ), a horizontal and vertical θ ( ( ) about the center point (x,y W W ) θ I ( (x,y W I θ (x,y L W I θ I L I W denotes the denotes boundary within which I ), length ), length L I W signifies that tone reversal within the I W W L ( ( I INV ). INV = 0 2 from the edge. from W INV ) X B - Custom L INV X INV L W and L 2 and width P , and a rectangle of length ), and a rectangle 1 W 2 L P I L L d B P Marks L WL P 2 and . A value 1 1 W L ( WL INV 1 from the cross edge. the cross from 1 )

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W B L P W , P L 1 B d L d L ) ) 2 L L I I L W W page 106 of 488 (b (d alignCustC2 , (b) alignCustC1 W W I I constructors. constructors. X L L P W 1 P L 2 L 1 L ) L L I I W W (c (a) Custom Custom alignment crosses using (a) , (d) alignCustC4 (c) alignCustC3 2.90: W W I I Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 will 0 page 107 of 488 characters) characters) 22 cnstASML> cnstContact5> cnstContact7> Frames MIRROR Label MIRROR MIRROR and }} {{barCode CNST ASML PAS5500 reticle frame with MIRROR= reticle CNST ASML PAS5500 0. Barcode }} <{{labelText }} <{{labelText 2.91: }} <{{labelText Reticle Figure 2.8.3 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox mirror the resulting reticle frame. frame. reticle the resulting mirror logo: and label barcode, marks, reticle with frame stepper PAS5500 ASML CNST inch and 7 inch). Contact reticle frames contain a label (up to inch). to 7 (up and label inch a contain frames reticle Contact along with a NIST and CNST logos. In all cases MIRROR defines is if parameter the that final structure will be mirrored. Any integer other than Contact Frames: Frames: Contact The following methods create reticle marks, barcodes and labels for the CNST the CNST and labels for marks, barcodes reticle methods create The following ASMLPAS5500 i-line stepper and reticle labels for contact lithography tools (5 tools lithography contact for labels and reticle stepper i-line ASMLPAS5500

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 b L align- , width ), L ( and/or a page 108 of 488 represent a represent L ) W I ( alignCustVern> ) W (x,y θ and width and W p I ) (orange) created using the (orange) created L I b L ( ) I L L b I (x,y L I a s I s (blue) and defines the resolution of the verniers. of the defines the resolution a L = layers of inversion boolean 0, b I p vernReso and/or constructor. constructor. = 0 a ). length of rectangle Dotted I LW p ( b L CustVern Verniers between layers between layers Verniers , i.e. 0, a Vernier take place. take Any other integer value will invert the pattern within the 2.92: not , and pitch pitch and ), 2.8.4

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 verniers> P itch page 109 of 488 L W L f ontSize . These strings cannot have W example between two lithographic LblB LblB and itch LblA P verniers LblA LblB LblA ticks constructor illustrating parameters between two between parameters illustrating constructor N Labels veniers . Text font used is Serif. The verniers are centered at at Serif. is centered used are font verniers The . Text With vernierReso are are GDS layer numbers (integers from 0 to 255), Parameter LyrB shapeReso and string parameters and string parameters . Vernier resolution is in micrometers. parameters, micrometers. in is resolution layer two The ). Vernier GDS rendered GDS output rendered of the levels. Example of the of Example layers. LyrB Vernier x,y ( LyrA 2.94: 2.93: represents the total number of represents vernier labels defined bars. are by Text and ontSize y f 2.8.5 ticks

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , arrowHead page 110 of 488 N ) ) . . . ,y (c structures. structures. (x arrowHead> arrow> arrowArray> element. Constructor ) ) ) (x,y (x,y (x,y arrow θ θ θ L features. features. ) ) ,y W (b (x arrow constructors. constructors. LN W W WL a a a L L L a a a a a 2 L W and (c) arrowArray GDS file example with arrowArray Rendered ) ,y W (a) (x 2.96: a defines a linear array of N defines a linear array Example shapes illustrating various parameters from the (a) the from parameters various illustrating shapes Example 2 (b) arrow W Arrows

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 111 of 488 Library nm stoichiometric silicon nitride silicon stoichiometric nm 700 b d Nanophotonics Silicon nitride waveguides with square ((a) and (b)) and rounded corners rounded and (b)) and ((a) square with waveguides nitride Silicon at stresses corners alleviate edges. with rounded waveguide Waveguides formation. cracks and preventing (a) in bar Scale thereby corners, sharp ((c) and (d)). Waveguides with square corners show cracks initiating at the ((c) corners and show at (d)). cracks initiating with square Waveguides 20µm. 250µm and in (b) and (d) represents (c) represents CNST c a nm patterned ZEP layer on top of top on layer ZEP patterned nm 2.97: 600 2.9 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure initiated initiated at the sharp edges within the nitride layer during the reactive ion 2.97a, b). (figure step etch by corner rounding The dilemma was circumvented sciences. sciences. user the allowing definitions, constructor several has element Each using either positive resists. tone or structures negative create to Additionally, addition points. of allow endcaps the constructors at for structural termination of deposition. vapor chemical pressure cracks low using case, this In deposited applications. applications. Many of these shapes (tapers, etc) S-bends, could be Y-bends, used for micro- and nano-fluidics, MEMS/NEMS and other fields of applied venting undesired formation of stress cracks. example stress an of shows 2.97 Figure formation undesired venting This in turn alleviates stresses at sharp field crowding corners, thereby pre­ This section contains a variety of shapes commonly encountered nanophotonic nanophotonic encountered commonly shapes of variety a contains section This (figure 2.97c, d). 2.97c, (figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 and t ), width lef 2 ,y EC 1). 2 page 112 of 488 x = ( right ) 2 0), (b) with left end cap waveguide> = 0,E ,y t 2 = ), end point (x lef 1 ,y right constructor. constructor. The method is ben­ right 1 E x ( EC = t t lef lef E ( ) ) EC waveguide W W W (c (a) (b ) 1 . The waveguide is defined in the horizontal the in ). defined is waveguide The ,y correspond to slot waveguides without and without waveguides slot to correspond 1 1 must be satisfied. vertical For waveguides, 1 (x ,y 2 1 x x ( 0), (c) with right endcap (E = and = W θ 1 0 x ) 2 1 y right ,y 1 2 (x x = 1,E t 1 y = defined by 90. parameters endcaps are Waveguide lef ) Waveguide 1 Waveguide example using the Waveguide resist. tone a negative from waveguides Waveguides eficial when creating examples (a) without endcaps 1 (E ,y 1 Waveguides

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), W ( . Slot slot W page 113 of 488 . The shape 0), (b) with right slot = constructor. constructor. The W ) ) right waveguideSlot> 2 2 E ,y ,y = 2 2 ), waveguide width t 2 (x (x right lef ,y 2 E ( x EC ). is defined in The waveguide correspond to slot waveguides waveguides slot to correspond ( must be satisfied. vertical For 1 1 waveguideSlot t 2 ,y x 1 lef (x = and slot slot 1 0 EC W W x ) (b) (a) 1 1). ,y ), end point 1 1 = (x ,y θ 1 x W W right ( Slot =parame­ by defined are endcaps 90. Waveguide slot ) 1 W = 0,E ) ) ,y t 1 1 1 (x . Endcap values of . values Endcap ,y ,y lef W θ 1 1 (x (x right 2 and rotation about point and rotation y ) EC 2 Waveguide x slot Slot waveguide example using the resist. tone negative a from waveguides creating when beneficial is method Positive-tone resist exposure creates a waveguide of width examples (a) without endcaps waveguide end cap (E and 1 t y lef 2.99: 1 EC

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 0), (b) with page 114 of 488 = right ). waveguide The 1 E , waveguide width waveguide ), correspond correspond to slot ,y ) ) 2 = 1 2 2 1 must be satisfied. For be satisfied. must For waveguideInv> t ,y x ,y ,y 2 ( 2 2 2 y lef x constructor. The method constructor. is ( E and (x (x = ( right 1 0 y EC t lef 1). e e , end point end ), = 1 waveguideInv EC W W W W ,y (b) (a) 1 ) 1 = 90. endcaps defined are by Waveguide x right ( ,y ) 1 1 ,y (x 1 θ = 0,E . Endcap values of and rotation about point about rotation and (x t ) θ e e Inverse lef right W W ( ) ) EC 1 1 W ,y ,y 1 1 2 and (x (x y t 2 lef x Waveguide Waveguide example using the Waveguide resist. a positive tone from waveguides Inverse beneficial when creating waveguide examples (a) without endcaps right end cap (E EC 1 y 1 2.100:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 = t lef E ( constructor. constructor. page 115 of 488 ), waveguide 2 ,y 2 x 1). ( ) ) = 2 2 waveguideInvSlot> ,y ,y 2 2 and rotation about point and rotation right (x (x ) e right waveguideInvSlot W = 0,E ( EC t ), end point 1 t lef ,y lef 1 x e e ( EC W W W W Slot ) (b) (a) 1 ,y 1 (x θ s s W W e Inverse W ), exposed sleeve width s ) ) s 1 1 W W ,y ,y ( must be satisfied. must be satisfied. 0), (b) with right end cap (E 1 1 2 = (x (x W x = 2 1 right y x Waveguide resist. resist. Inverse slot waveguide examples (a) without endcaps E Inverse slot waveguide example using the using example waveguide slot Inverse a positive tone from waveguides The method is beneficial when creating 2 x ), slot width 1 W 2.101: y ( . The waveguide is defined either in the horizontal or vertical direction, ). direction, vertical or horizontal the in either defined is waveguide The 1 1 2.9.1.4 ,y 1

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , ΔL (2.10) (2.11) and two di­ page 116 of 488 H H b b , length division L wgExpander> ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ) ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ) x w (x,y , base height ( θ is represented in nanometers. in nanometers. is represented , length 2 λ 2 w w −x erf H − 1 ⎛ ⎞⎞ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ λ b ) θ y 0 L 0 w exp are in micrometers. in micrometers. )are The variable gap is (x, sin Waveguide expander Waveguide H 1.5 = , wavelength ,b 0 . λ Wavelength 0 aw w b w 2λπ 2.102: ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎛ Expander and ln b 1 ΔL,w,w Figure L, ΔL a b θ w ) = ( ) (x g (x , beam waist w g θ Waveguide

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), width 2 ,y constructor. constructor. 2 page 117 of 488 ). linear The x ( 1 ,y 1 ) x 2 ( ,y 2 linearTaper> (x linearTaper 2 ), end point 1 ) W 1 ,y ,y 1 1 x (x ( θ 2 W 1 W 2 points, and rotation about point about rotation and points, y ) 1 2 W W 2 ( Taper ) x 1 ,y 1 must be satisfied. must be satisfied. 1 2 (x y y and end and Linear Structure is useful with negative tone resists. resists. tone with negative is useful Structure Linear waveguide taper generated using the = ) 1 1 1 Tapers W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ) ), 2 2 s ,y W 2 ( x ( must be must 2 y page 118 of 488 = and end 1 linearTaperSlot ) y 1 ) s 2 or , end point end ), W ,y ( 2 1 2 linearTaperSlot> x ,y (x 1 = ) x 1 ( 1 2 s x ,y 1 W (x θ 2 W 2 s W 1 ). either defined is shape taper linear The s 1 W ,y 1 points, slot width at start points, slot width at x 1 ( ) 2 2 W Slot W W ( 1 s 1 respectively. respectively. W 3 W s Taper ) 1 2 and end y ,y ) 1 and W 1 (x 1 2 s W ( x Linear Linear taper slot waveguide structure created using the created structure Linear taper slot waveguide resists. tone tone is useful with negative Structure constructor. Positive of with end and start of structure waveguide tapered a generate resists W 1 y 2.104: 1 2.9.2.2

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 or 2 x = and end and 1 ) x 1 s page 119 of 488 ), end point 1 W ( ,y 1 ) x 2 ( linearTaperInvSlot> ,y 2 g ) (x 1 ,y 1 2 ). shape taper linear The constructor. constructor. s (x 1 θ W ,y 1 x 2 ( 2 s W W 1 Slot s points, slot width at start at width slot points, ) W 2 W ( g 1 W 2 Inverse W Example of the linearTaper 1 and end and s ) 1 1 W W Taper W ) ( 2.105: 1 , and rotation about point about rotation and ), ,y 2 g 1 ( y (x Figure 2 Linear x 1 y must be satisfied. must be satisfied. , width at start at width ), points, gap points, 2 2 y ) 1 2 2.9.2.3 ,y s = 2

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ). 1 ,y 1 x ( ) 2 page 120 of 488 exponentially L,y ) 1 + 1 ,y 1 (x x ( exponentialTaper> constructor. constructor. 2 ) W 1 ,y 1 (x segments. at start point start at , and rotation about point about rotation and ), ) 1 1 ,y W 1 ( x N θ ( 2 from from L W Taper 1 Example of the exponentialTaper 1 at a length a at 2.106: ) W LW 2 ) W ( 1 Exponential ,y 1 Figure 1 y (x 1 2.9.2.4

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 N con­ and ) e W ( ) 2 page 121 of 488 exponentially L,y ) 1 + 1 ,y 1 (x x ( exponentialTaperInv 2 exponentialTaperInv> W ) 1 ,y ), exposed sleeve width at start point start at 1 1 ) (x 1 ,y θ 1 W x ( ( e Inverse W from from L N Taper ). The exponential curve is constructed from 2 1 W ,y 1 x ( 1 e at at a length 1 W ) W 2 LW ) W ( 1 Exponential Tapered exponential shape created using the exponential shape created Tapered structor. ,y 1 1 y (x 1 2.107:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 s W ( ). The 1 exponen­ ,y ) 1 2 page 122 of 488 x ( exponentially L,y ) 1 + 1 exponentialTaperInvSlot> ,y 1 (x x ( ) 1 ,y 1 (x 2 θ s W 2 Slot s 2 W ), start and end slot widths at start point start at 1 W ) 1 ,y segments. 1 1 s W x ( ( and rotation about point W ) Inverse e e W ( from from W L Taper constructor. constructor. N 1 2 W W e 1 at at a length s 1 W ) W 2 W ) ( 1 Exponential tialTaperInvSlot Tapered exponential slot waveguide shape created using the using created shape waveguide slot exponential Tapered LW ,y 1 (x 1 ), exposed sleeve width y 2 s 2.108: W 1 2.9.2.6

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 123 of 488 constructor with constructor and rotated about and rotated customTaper coordinates. coordinates. Points ) ) y ) ,T y x x,y ( ,T T x ( (T θ y T customTaperExamples x T n y n x . ) y ,T ··· x Taper (T 2 y 2 x Custom Two example GDS shapes of the of shapes GDS example Two user defined vertices. highlighted 1 y 2.109: 1 x 2.9.2.7 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure Custom tapered shape characterized by user-defined by user-defined shape characterized tapered Custom to translated shape that’s y = 0, closing the tapered point θ the translation (x1, y1) to (xn, yn) are generated (top portion of the curve) and mirrored around around mirrored and curve) the of portion (top generated are yn) (xn, to y1) (x1,

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 constructor. constructor. page 124 of 488 r 3 L directionalCoupler1> ) (x,y θ directionalCoupler1 ) sides 2 ,y e 2 N g w w (x 2 1 r L L g 2 e w 2 Couplers w 3 L 2 L 1 e w Directional Directional coupler example using the Directional 1 w 1 e 1 Couplers 1 w w 2.110: 2.9.3.1 2.9.3

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 constructor. constructor. page 125 of 488 r 3 L directionalCoupler2> ) (x,y θ directionalCoupler2 ) sides 2 ,y 2 e N g w w (x 2 1 r L L g 2 e w 2 w 3 L 2 L 1 e w Directional coupler example using the Directional 1 w 1 e 1 1 w w 2.111:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 constructor. constructor. page 126 of 488 r 2 L directionalCoupler3> directionalCoupler3 ) (x,y ) θ ,y (x 1 L sides N e g w w r 2 L 1 L g e w w Directional coupler example using the Directional 2.112:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 B H constructor. constructor. page 127 of 488 B L directionalCoupler4 directionalCoupler4> ) ) ,y (x (x,y 1 θ L e B g w w H B L 1 L g e w w Directional coupler example using the Directional

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , height ), L ) ( page 128 of 488 H + L,y constructor. constructor. sBendTaper> , length ), + (x x,y ( ) H end (x,y θ W end W L waveguide widths, and rotation about point about rotation and widths, waveguide ) start W end W ( H Taper An example GDS shape of the sBendTaper parameter parameter defines the rendering resolution of the S-bend and end and L start ) W 2.114: ) S-Bend start y ,y W ( (x Figure shapeReso

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), height ) L sBendFun­ ( H page 129 of 488 + y L, + parameter parameter defines ), length (x x,y ( sBendFunnel> ) shapeReso ). (x,y θ x,y ( L Funnel constructor. constructor. W and rotation about point H ) S-Bend nel Schematic illustration showing various parameters from the from parameters various showing illustration Schematic ) W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ). 1 ,y 1 x ) ( . 2 y H , 2 − page 130 of 488 1 (x sBend> sBendLH> ) ) 1 1 ,y ,y 1 1 (x (x parameters. parameters. are constructors Both ) and the rotation about the start point and the rotation H ( ) W θ L parameters parameters are defined by positive and W ( would place the end point at y the end point at would place points. the by characterized is second The H ) 2 2 y H W θ ,y and 2 x and height and L ( ) 2 L ( x L parameter defines the rendering resolution of the S-bend the of resolution rendering the defines parameter 1 1 and end and y y ) 1 , length ), 1 ,y W 1 ,y S-Bend An example S-Bend GDS shape illustrating various parameters from the from various parameters An example S-Bend GDS shape illustrating two sBend constructors. 1 1 1 x ( ) x ( 1

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), y ) is L ( H W + 1 sBendInv L,y + page 131 of 488 , length ), 1 1 (x ,y 1 and the rotation and the rotation x ) ( sBendInv> e W parameters are defined are parameters ) 1 and a slot of width H ,y 1 e (x would place the end point end the place would W θ and constructor constructor is used to create H + L W e W parameter defines the rendering reso­ rendering the defines parameter sBendInv L , exposure sleeve width ( ), exposure W shapeReso ). 1 ,y Inverse 1 LHW x ( 1 y . e S-Bend constructor. constructor. Schematic illustration showing various parameters from the showing from various illustration parameters Schematic H W W . For instance, a negative value of value negative a instance, ). For − 1 1 1 , waveguide width ( ), waveguide ) ,y 1 H 1

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 . ). ), ) 1 H g ( H ,y − 1 + 1 x y 1 param­ ( ) 1 ), gap L,y s sBendInvS­ ,y + page 132 of 488 1 W 1 ( x ( (x value at value at y sBendInvSlot> ) 1 ,y 1 ), slot width (x H θ constructor is used to create create to used is constructor ( e ), height L ( parameters parameters are defined by positive and g W L sBendInvSlot would place the would end place point H Slot H s and W ), length L 1 and the rotation about the start point start the about rotation the and ,y ) 1 e x ( Inverse W ( parameter parameter defines the rendering resolution of the S-bend LH constructor. constructor. e s S-Bend lot Schematic illustration showing various parameters from the showing from illustration various Schematic parameters W g W 1 y ) 1 ,y shapeReso 2.118: H 1 1 (x 2.9.3.6

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), ) ) 1 2 3 ,y ,y ,y 1 2 3 x points ( (x (x ) 2 2 3 ,y value. page 133 of 488 would place would place 2 H H W 3 x 3 ( yBend> yBendLH> H and the rotation parameters. parameters. Both ) ) ) 1 1 ) W 3 ,y ,y ( 1 1 H (x (x and and two end 2 ) 1 H ( W θ W θ ,y 1 parameter parameter defines the rendering x ( 3 3 2 3 y H L L 3 3 x L shapeReso . H 2.119 shows a negative Figure 3 ). H . For instance, a negative value of a negative instance, ). For 1 1 and pair of height − 2 2 ,y ) 1 ,y 1 y H 3 1 x L x ( ( 2 2 )). The second is characterized by the start point and x L 3 2 ,y value at y value at L ( 3 x Y-Bend An example Y-Bend GDS shape illustrating various parameters from the from parameters various illustrating shape GDS Y-Bend example An two yBend constructors. ( 1 1 y y and ) ) 2.119: 1 1 1 2 ,y ,y 2.9.3.7 1

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ) ) 2 3 ,y ,y 2 3 (x (x value in yBendInv 3 2 3 and a slot page 134 of 488 H H H e W yBendInv> W + and the rotation ) ), a pair of heights ) W 1 e 3 ,y L 1 W ( parameter parameter defines the (x θ and 2 L , hence value of e ( 3 constructor constructor is used to create W H − . For instance, a negative value of value negative a instance, ). For 1 shapeReso 1 y W ,y 1 2 3 x L L yBendInv ( 3 ), exposure sleeve H W value at ( y 3 parameters. parameters. ), a pair of lengths L 1 ) 1 ,y 1 ,y 1 x 2 ( x Inverse H ( 2 L Y-Bend constructor. constructor. Schematic illustration showing various parameters from the from showing various parameters illustration Schematic ), waveguide width is constructed. The shape characterized is characterized by the e 1 3 y W H W ) 2.120: 1 1 and ,y would place the end point 2.9.3.8

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2.9.3.9 Y-Bend Inverse Slot

Similar to Y-Bends (section 2.9.3.7), yBendInv constructor is used to create a y-bend slot waveguide bifurcation using a positive tone resist. The shape characterized is characterized by the start coordinate point (x1,y1), a pair of lengths (L2 and L3), a pair of heights (H2 and H3), slot width (Ws), gap (g), exposure sleeve width (We) and the rotation about the start point (x1,y1) parameters. shapeReso parameter defines the rendering resolution of the This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: Y-bend (Bezier based) curve. Both length and height parameters are defined by positive and negative double precision values relative to the start coordinate point (x1,y1). For instance, a negative value of H3 would place the end point y value at y H , hence value of H value in Figure 2.121 is negative . 1 − 3 3

L2

(x2,y2)

H2

We g

(x1,y1)

H3

Ws (x3,y3)

L3

Figure 2.121: Schematic illustration showing various parameters from the yBendInvS­ lot constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 135 of 488 page 136 of 488 yBend90> ) (x,y θ sides N w degree An example of a 90 degree Y-Bend. Y-Bend. An example of a 90 degree w 2 r ) 2 1 r r - 90 1 ,y 2.122: (x Figure Y-Bend

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 137 of 488 w yBendInv90> e ) w (x,y θ degree sides N - 90 e w w 2 Inverse r An example of a 90 degree Y-Bend inverse shape. Y-Bend An example of a 90 degree ) 2 1 r r 1 ,y (x 2.123: Y-Bend Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 138 of 488 s yBendInvSlot90> w g ) e (x,y w θ degree - 90 sides N e Slot w g s Inverse w ) An example of a 90 degree Y-Bend inverse slot shape. Y-Bend An example of a 90 degree 2 1 2 r r ,y r (x 1 Y-Bend 2.124: Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 139 of 488 ) H + 1 90degreeBend> 90degreeBendLH> parameters. parameters. Both construc­ and the about rotation the L,y ) ) + H W ) ) 1 ( ( 1 1 (x ,y ,y 1 1 points. characterized is second The (x (x ) 2 ,y L 2 x ( and height ) W θ L ( parameter defines the rendering resolution of resolution rendering the defines parameter Bend 2 W y H W θ and end and ) 1 ) 1 ), length ,y 1 1 ,y 2 H 1 x L x ,y ( 1 shapeReso (x Degree x ( ). 1 1 1 90 ,y y y 1 An example 90 degree bend GDS shape illustrating various parameters parameters various illustrating shape GDS bend degree 90 example An the two constructors. from x ( 1 1 2.125:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , ). ), 1 H W ,y − ( 1 90de­ 1 x y ( page 140 of 488 parameters. parameters. constructor constructor ) 1 value at value at ,y ) y 1 x H ( + 1 90degreeBendInv> , waveguide width width waveguide ), L,y H ( + 1 ) 1 (x ,y 1 90degreeBendInv (x θ , height ), L ( e L W Inverse would place would the place end point H , length ), 1 is constructed. The shape is characterized by ,y Bend 1 W x e ( constructor. constructor. W W ) and the rotation about the start point and the rotation 1 ) e Degree ,y H in Figure 2.126 is positive . in Figure 1 LHW W ( (x 90 greeBendInv Schematic Schematic illustration showing various parameters from the parameter defines the rendering resolution of the 90 degree (Bezier degree 90 the of resolution rendering the defines parameter 1 y and a slot of width e 2.126: 1 W 2.9.3.14 +

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 pa­ 90de­ page 141 of 488 constructor is constructor shapeReso , hence , value hence of ) . For instance, a instance, ). For H 1 H − ,y + 1 1 y 1 x ( ), exposure sleeve width L,y 90degreeBendInvSlot> g + ( parameters. parameters. 1 ) ) (x 1 value at value at 1 ,y Slot y ,y 1 90degreeBendInv ), gap 1 s (x x ( θ W ( L e Inverse g W constructor. constructor. ), slot width Bend H e ( W g W ) 1 would place would the place end point Degree ,y H 1 H ), height (x L ( 90 LHW greeBendInvSlot Schematic Schematic illustration showing various parameters from the 1 y 2.127: ), length and the rotation about the start point and the rotation 1 1 ) 2.9.3.15 ,y e in Figure 2.127 is positive. in Figure 1

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 with 2 L page 142 of 488 and 1 L 180degreeBend> 2 L ) (x,y is measured from the midpoints of from is measured N θ D D . constructing the The number of vertices D 180 degree bend example. 180 degree Bend parameter. parameter. ) DW N 2.128: W (x,y 1 2 L L Degree Figure 1 180 degree, u-shaped, bend is characterized by a lengths a by characterized is bend u-shaped, degree, 180 2.9.3.16

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 143 of 488 2 L . e 180degreeBendInv> ) (x,y θ N D Inverse e W Bend 180 degree bend inverse example. bend inverse example. 180 degree ) W DW 2.129: (x,y e W Degree 2 degree bend in the previous section (2.9.3.16), the inverse inverse the (2.9.3.16), section previous the in bend degree L 1 Figure L 180 180 1 2.9.3.17

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 L page 144 of 488 . 180degreeBendInvSlot> ) Slot (x,y N θ D Inverse e g W Bend 180 degree bend inverse slot example. 180 degree ) W (x,y 2.130: DW Degree g degree inverse bend in the previous section (2.9.3.17), the the (2.9.3.17), section previous the in bend inverse degree e 2 L Figure W 180 180 1 1 L 2.9.3.18

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2.9.4 Racetrack

Racetrack object is characterized by the center coordinate (x,y), length of the straight section (L), track width (W ), inner radius (rin), rotation about the center point (θ(x,y)), and the number of segments creating each of the curved sections (N ).

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

W

rin (x,y)

W L

Figure 2.131: An example GDS shape illustrating various parameters from the race- Track constructors. Dots along the structural periphery represent the number of points (N ) used to construct the curved racetrack sections.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 145 of 488 2.9.5 Spiral Delay Line

Interdigitated spiral delay line objects are characterized by either uniform (Archimedes) and converging (Fermat’s) spacing between subsequent turns. Constant spacing Archimedes spiral delay line illustrated in Figure 2.9.5a is represented by � mθ (2.12) r(θ) = This publication is available free of charge from: mθ (2.13) − where m = (S + W )/ (2π), and the separation parameter S defines the pitch between subsequent spiral turns. Spiral is further defined by ΔR defining the resolution of the spiral, the length of the coupling waveguide (L), the rotation about center (θ(x,y)), and EC = 1 or 0 corresponding to the waveguide coupling segment without and with semi-circular endcaps. Fermat’s spiral spiral delay line illustrated in Figure 2.9.5b is represented by ⎧ ⎪ √a2θ (2.14) r(θ) = ⎨ ⎪ ⎩ √a2θ (2.15) −

x y W Nturns S ΔR L θ(x,y) EC spiralDelayLineArch

x y W Nturns a ΔR L θ(x,y) EC spiralDelayLineFermat http://dx.doi.org/10.6028/NIST.HB.160

L L

W W

(a) (b)

Figure 2.132: Spiral delay lines for the (a) Archimedes spiral constructor spiralDe­ layLineArch and (b) Fermat spiral constructor spiralDelayLineFermat. Central dot represents the coordinate defined by (x,y).

IMPORTANT NOTE: The above interdigitated spirals are created and fractured along the y axis. On the one hand, this action eliminates any possibility of exceeding maximum− number of allowed points per GDS shape. On the opposite

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 146 of 488 ), spiral 0) defining x,y spiralDelay­ page 147 of 488 ( ≥ T S L spiralDelayLineArchV2 is an integer ( ) between subsequent turns, turns, subsequent between ) T S S EC ) ) (x,y (x,y T L θ , separation ( separation ), S T S turns N ( T constructor. constructor. Parameter SP , and the number of skipped turns before spiral rendering rendering spiral before turns skipped of number the and ), T P ( turns W N LineArchV2 the number of skipped turns before rendering of the spiral initiates. of the spiral initiates. rendering the number of skipped turns before Archimedes interdigitated spiral delay line constructed by constructed line delay spiral interdigitated Archimedes . In this case, points per spiral turn are controlled, hence for spirals for hence controlled, are turn spiral per points ). case, this In T S ( 2.133: The following is an interdigitated Archimedes The spiral Archimedes line is following delay that an allevi­ interdigitated x y W NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure points per turn per points initiates containing many turns, the resolution of the outermost ring will be coarser rings. than the internal than ones shown much faster This spiral is generated 2.132. in Figure amounts of RAM and takes a considerable amount of time for spirals of many of spirals for time of amount considerable a takes and RAM of amounts collection points. large turns defined by a end of the spectrum, this action is computation intensive, consuming large ates ates some of the computational strains of the previous version. The delay in 2.133 line Figure is illustrated by characterized a point center width, the number of turns of number the width,

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 L e W W spi­ ), x,y ( page 148 of 488 , number of e W spiralDelayLine- (b) value defining resolu­ defining value R Δ spiralDelayLineArchInv spiralDelayLineFermatInv EC EC W ) ) , exposure sleeve width L (x,y (x,y W Line e and (b) Fermat spiral constructor and (b) Fermat W L θ L θ R R Delay ) between turns, and the and turns, between ) Δ Δ S S a ), slot width . Central dot represents the coordinate defined by x,y are the corresponding slot and exposure sleeve widths. slot and exposure the corresponding are ( Spiral e turns turns (a) N N e e FermatInv ralDelayLineArchInv and W Inverse spiral delay Inverse lines spiral the for delay (a) spiral Archimedes constructor ), separation ( separation ), W W Inverse turns W W N 2.134: y y 2.9.6 x x W NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure Inverse spiral delay line objects are characterized by either uniform (Archimedes) (Archimedes) uniform either by characterized are objects line delay spiral Inverse spacing between subsequent turns. Section 2.9.5 and (Fermat’s) converging the construction of the shows two details spirals. for defined These spirals are by the point center ( turns of the spiral. tion rendering

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), x,y ( L 0) defining ≥ spiralDelay­ page 149 of 488 e T ), separation W S turns N ( is an integer ( is an integer spiralDelayLineArchV2Inv T ), and the number of skipped S T P ( EC ) ) ). turn spiral per points case, this In axis. As mentioned in the previous T (x,y − (x,y S y ( L θ T S T S T constructor. Parameter constructor. SP The above interdigitated spirals (Figures 2.134- 2.135) turns N e NOTE: LineArchV2Inv the number of skipped turns before rendering of the spiral initiates. of the spiral initiates. rendering the number of skipped turns before Archimedes interdigitated spiral delay line constructed by constructed line delay spiral interdigitated Archimedes W W 2.135: between subsequent turns, points per turn ) x y W S are are created and fractured along the NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox IMPORTANT maximum number any of section, possibility fracturing of eliminates exceeding the fracturing is computationally allowed points per GDS shape. Unfortunately, defined turns many of spirals for RAM of amounts large consuming intensive, collection points. by a large Figure spiral width, exposure sleeve width, the number of turns initiates rendering spiral before turns the of resolution the turns, many containing spirals for hence controlled, are rings. be coarser than the internal ring will outermost The delay line illustrated in Figure 2.135 is characterized by a center point center a by characterized is 2.135 Figure in illustrated line delay The The following is another version of the inverted Archimedes spiral delay line. is The another version following spiral of delay the Archimedes inverted (

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 parameter parameter grating> page 150 of 488 lines N lines N and arrayed (instanti­ and arrayed L itch P constructor. constructor. W L W itch P y x Example of the grating singleRectangleStructName ame ) ,y (x 2.136: Figure Grating Gratings 2.9.7.1 2.9.7

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), the in­ L G page 151 of 488 ( apodizedGrating> ), and grating with the lower the with ) ) L CC 2 (x,y G d ( θ (+ 5 constructor. constructor. d to to ) 4 L 2 d G H − L 3 ( 2 G d + 2 d 1 d ) ), duty cycle ff cuto L ,y 4 H G p (x ( 3 p 2 p L 2 G 1 ). − p Grating Example of the apodizedGrating CC . from extends grating The i d d 2.137: H and L ), grating line height i L Apodized p Figure ΔG ΔG ( L G y 2.9.7.2

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 construc­ page 152 of 488 gratingCoupler> from center to the mid­ the to center from gratingCoupler of the section, arc start ) r ) ( elements p ( for each of the arc sections arc the of each for N s e ) θ θ p sides N ( sides , distance distance ), N and pitch W ) x,y ( W e ( θ ). r s θ elements ) p Coupler , number of sides of number ), ,y e θ (x ( W r Grating Example illustrating various parameters of the of parameters various illustrating Example tor. y 2.138: and end angles end and 2.9.7.3 )

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2.9.7.4 Grating Couplers With Waveguides

The following constructors generate grating couplers with integrated waveg­ uides within the x y plane using − � 2 2 qλ = nef f x + y xnc cosθc (2.16) ◦ −

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: where the focal point is located at the origin (x,y) with x along the waveguide axis, q is an integer for each grating line, θc is the grating angle span, nc and nef f are the respective cladding and effective refractive index values, and λ is the wavelength. The following are the constructors for the waveguide (GDS◦ Layer Lwg ) with an integrated grating coupler (GDS Layer Lg )

◦ As labeled in Figures 2.139 and 2.140, the structure is placed and rotated (θ(x,y)) relative to the origin (x,y). Waveguides are constructed using a bezier s-bend curve and defined by a width (w), length (L) and height (H). A negative value of H will extend the waveguide below the y-axis. Sleeve width for inverse waveguides (Figures 2.139a and 2.140a) is defined by s, R is the distance to the outermost grating, gp is the grating pitch and the duty cycle is defined by the ratio value. Consequently the grating line width is given by

g = g ratio (2.17) w p ∗

Ng defines the number of generated grating lines with the maximum number grating lines within R given by

nef f R Nmax = ceil (2.18) λ ◦ The outer and inner radius of each ring is defined by

qλ rq(out) = ◦ (2.19) n n cos α cosθ ef f − c i

r = r (g ratio) = r g (2.20) q(in) q(out) − p ∗ q(out) − w where λ θ = arccos nef f ◦ (2.21) − gp

and αi is the angular range from θx to θc. Parameter (x,y,w,L,H,s,λ ,R,gp) dimensions are expressed in micrometers.− ◦

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 153 of 488 = 0. c c 2 2 c c θ θ EC 2 2 θ θ − − page 154 of 488 p p g g w w R R g g c c θ θ ) ) ,y ,y (x (x ) (a) (b L L Grating couplers (a) waveguide with sleeve and (b) waveguide with waveguide (b) and sleeve with waveguide (a) couplers Grating 2.139: w s w H H Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 c c 2 2 c c θ θ 2 2 θ θ − − page 155 of 488 p p g g w w R R g g c c θ θ ) ) ,y ,y (x (x ) (a) (b L L = 1. Grating couplers with endcaps. Grating with sleeve and (b) waveg­ (a) waveguide uide with EC 2.140: w s w H H NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 156 of 488 in the corre­ phC> phCV> hex> hexV> y N δ δ and defines the number x sides sides N Arrays sides N N N y y y y N N N N r r x x x x between the two arrays. arrays. Parameter two the between ) N N N N δ ( ) δ Hexagonal p p p p , parameter (a) (b x x x x hex r r r r p p and x x ), number of elements p ), resulting structures are circles with number of circles are structures ), resulting and y y y y x ( x x x x phC hexV ) ) Crystals (x,y (x,y ), pitch and r represents the name for the structure (cell) for the circular the circular for (cell) the the structure name for represents ( directions, and spacing and directions, y phCV (a) Photonic crystal and (b) hexagonal array examples illustrating various illustrating examples array hexagonal (b) and crystal Photonic (a) parameters. constructor and Photonic x 2.141: , circle ), radius circle Within constructors 2.9.8

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2.9.9 Disc-Ring Architectures

2.9.9.1 Disc-Ring - Bezier Curves, Arcs and Endcaps

The following sections illustrate coupled waveguides to disc and ring structures. The coupling region is defined by an arc section that symmetrically interacts with the disc/ring structure. The waveguide region leading away from the coupling region is defined by either a Bezier or an arc segment. This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

1 P1 L 1 C1 H C2 P2 2 θ θ (x,y) (x,y)

(a) (b)

Figure 2.142: Schematic illustration highlighting the waveguide coupling region con­ structed using (a) Bezier and (b) arc segments.

Figure 2.142a illustration has coupling region (labeled as 1) defined by an arc. The continuing segment ending at a distance L is defined by a Bezier curve consisting of start and end points (P1 and P2) and their corresponding control points C1 and C2. Control points are defined as,

R C = P + cos(φ) (2.22a) 1x 1x 4 ∗ R C = P sin(φ) (2.22b) 1y 1x −4 ∗ L C = P (2.22c) 2x 2x − 2 C2y = P2y (2.22d)

where R = √H2 + L2, and φ = 90 θ. − Figure 2.142b shows a coupling region defined by two arc segments. For this segment, the straight waveguide portion of length L is omitted. In both cases, the drawn structures are mirrored around the y axis. −

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 157 of 488 page 158 of 488 (b) (a) = 1. structure. the end point of the waveguide denotes circle The red Illustrations showing semicircular encaps on the right hand side of (a) a (a) side of right hand the encaps on showing semicircular Illustrations waveguide. positive inverse and inverse an Endcaps (b) and waveguide parameter when waveguide the of sides right and left both on included are EC width. waveguide radius of the equals half of the endcap Semicircular 2.143: Figure 2.143 shows shows waveguide structures with semicircular endcaps. with semicircular structures 2.143 shows shows waveguide Figure NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox stressed stressed thin film underlayers are patterned using thick resists. The corner field, thereby stress the end alleviates termination waveguide the at rounding mitigating resist and thin film cracking during subsequent reactive ion etch steps. processing Figure The structures are encountered in subsequent sections and are useful when useful are and sections subsequent in encountered are structures The

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 and is an ) L ( and EC controls controls if i page 159 of 488 r , number of number ), EC ) x,y W g r ( ,y L (b) W (x ) above a disc and ring discInfinite> ringInfinite> ∞ = , waveguide length ), waveguide g ( and the ring is characterized characterized is ring the and wg ) R d r ( ). Boolean parameter r W ( d r constructors. constructors. Infinite N gN L g W L EC W EC ) for waveguides without and with endcaps, respectively. and with endcaps, respectively. without waveguides for W g and ring width ,y r L i (a) r (x = 1 W d i Disc-Ring of the (a) discInfinite various parameters Examples illustrating (b) ringInfinite ), gap between the object and shape N and EC ( ). radius a by defined is object Disc = 0 W 2.144: ( EC 2.9.9.2

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Infinite disc and ring structures with an additional coupling waveguide.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

L1 L1

W1 W1

g1 g1

Wr

rd ri (x,y) (x,y)

g2 g2

W2 W2

L2 L2

(a) (b)

Figure 2.145: Examples illustrating various parameters of the (a) discInfDS and (b) ringInfDS constructors.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 160 of 488 ). r W and ( i page 161 of 488 r is formed is by formed , waveguide ), waveguide e L ( ) W W W g r ,y L (b) ringInfiniteInv> discInfiniteInv> W (x and ring width ) ), number of segments i r . The overall shapes are ( e EC EC x,y ( W e e ) above a disc and ring objects. ∞ for waveguides without and with and without waveguides for = , waveguide ), length waveguide ). Disc object is defined by a radius = 1 e g wg ( R W ( EC Inverse and constructors. constructors. = 0 d r EC Infinite N gN L g W L W W W e controls controls if semicircular endcaps are incorporated in ) W W g ,y L r EC (a) (x W d i Disc-Ring of the (a) discInfiniteInv various parameters Examples illustrating (b) ringInfiniteInv and exposure sleeve width ) W 2.146: ( and the ring is characterized by an inner radius 2.9.9.3 ), gap between the object and shape )

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 and i page 162 of 488 r 2 1 e 2 1 e 2 1 discInfInvDS> ringInfInvDS> ) g W W W W g r 2 1 ,y L L (b) W (x EC EC 2 2 e e W W 2 2 W W 2 2 L L 2 2 g g 1 1 e e W W 1 1 W W d constructors. constructors. r 1 1 2 1 L L e 2 1 e 2 1 ) g W W W W g 1 1 2 1 ,y L L (a) (x N g N g r Examples illustrating various parameters of the (a) discInfInvDS various parameters Examples illustrating (b) ringInfInvDS W d i 2.147:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2.9.9.4 Disc-Ring Infinite Inverse Positive Tone

The structure is similar to the disc-ring waveguide structure defined in sec­ tion 2.9.9.2. Here, a waveguide of width W and either a ring of width Wr or disc of radius r r are formed by positive tone resist exposure of the respective d − e exposure sleeve regions We and re. The overall shapes are characterized by a straight waveguide (Rwg = ) above a disc and ring objects. Both objects are described by the center coordinate∞ (x,y), number of segments (N ), gap This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: between the object and shape (g), waveguide length (L), waveguide width (W ) and exposure sleeve width (We). Disc object is defined by a radius (rd ) and the ring is characterized by a radius (ri ) and ring width (Wr ).

L L

We We W W g g

re rd re Wr re ri (x,y) (x,y)

(a) (b)

Figure 2.148: Examples illustrating various parameters of the (a) discInfiniteInvPos and (b) ringInfiniteInvPos constructors.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 163 of 488 Infinite inverse positive disc and ring structures with an additional coupling waveguide.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

L1 L1

We1 We1 W1 W1 g1 g1

re rd re Wr re ri (x,y) (x,y)

g2 g2 W2 W2 We2 We2

L2 L2 (a) (b)

Figure 2.149: Examples illustrating various parameters of the (a) discInfInvPosDS and (b) ringInfInvPosDS constructors.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 164 of 488 ) ). r W Disc ( −R ), width discSym­ = wg N page 165 of 488 L L ( and width ) discSymmetric> ringSymmetric> i waveGuide r ( R ( , gap between the object between ), gap H H N ), number of sides d θ r r ( i θ θ ), ring radius ) ) r W g W g W d ) r ,y ,y ( constructors. constructors. (a) (b WLHECWLHEC Bezier (x (x wg wg )objects. Both objects described (disc/ring) by are ), disc radius, , number of segments ( of ), number Symmetric Ring H ( x,y ( −R N g θ N N g θ N = and (b) ringSymmetric for waveguides without and with endcaps, respectively. and with endcaps, respectively. without waveguides for r , waveguide opening angle ), waveguide g W ( = 1 ), height L Disc-Ring metric Example shapes illustrating various parameters the from (a) ( i d waveGuide R ( and EC 2.150: = 0 2.9.9.5 ), length

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ 1 page 166 of 488 L discSymDS discSymDS> EC 2 L H 2 d W r 2 1 2 1 θ ) 2 g W W g 2 ,y L (x H g 1 L 1 W wg N θ 1 g Example shape illustrating various parameters from the from parameters various illustrating shape Example structor. N d 2.151:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 discSymPul 1 page 167 of 488 L L discSymPul> EC 2 2 1 H H H 2 L 2 2 1 2 1 2 1 θ θ ) W g W W g ,y 2 θ (x d 2 r g 1 H 1 L 1 W wg N 1 θ 1 g constructors. constructors. Example shape illustrating various parameters from the N d 2.152:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ 1 page 168 of 488 L ringSymDS> ringSymDS EC 2 L 2 H W 2 2 1 r i θ 2 1 ) r g W W g W H g 2 ,y L (x 1 L 1 W wg N θ 1 g N r Example shape illustrating various parameters from the from various parameters Example shape illustrating structor. W i 2.153:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ringSymPul 2 1 page 169 of 488 L L ringSymPul> EC 2 H 2 2 H L H 2 W 2 1 2 1 r 2 2 1 θ θ ) g W W g W θ ,y 2 (x i r H g 1 L 1 W wg N 1 θ 1 g N constructor. constructor. Example shape illustrating various parameters from the r W i 2.154:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W W discSym­ page 170 of 488 L L discSymmetricLC> ringSymmetricLC> H H d constructors. constructors. r LHEC r i ) ) r g W g ) c c ,y ,y L L (a) (b WLHECW (x (x wg wg N N c c . c and (b) ringSymmetricLC N gN L g L r W metricLC Example shapes illustrating various parameters the from (a) d i 2.155: The following disc-ring waveguide symmetric structures are defined by the are symmetric structures disc-ring waveguide The following

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W 1 page 171 of 488 L discSymLCDS discSymLCDS> EC 2 L H 2 W d r 2 2 1 2 ) g W g c 2 ,y L L (x H g 1 L 1 W wg N c L 1 g constructor. constructor. Example shape illustrating various parameters from the from parameters various illustrating shape Example N d 2.156:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 2 W W 2 1 page 172 of 488 L L discSymLCPul> discSymLCPul EC 2 H 2 2 1 L H H 2 W 2 c 2 1 ) L g g 2 1 c c ,y 2 L L (x g d 1 r H 1 L 1 W wg N 1 c L 1 g constructor. constructor. Example shape illustrating various parameters from the from parameters various illustrating shape Example N d 2.157:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W 1 page 173 of 488 L ringSymLCDS> ringSymLCDS EC 2 L 2 W H 2 2 r i 2 1 ) r H g g W g W c 2 ,y L L 1 (x L 1 W wg N c L 1 g N r constructor. constructor. Example shape illustrating various parameters from the from parameters various illustrating shape Example W i 2.158:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 2 W W ringSymLCPul> 2 1 page 174 of 488 L L ringSymLCPul EC 2 H 2 L 2 2 1 W H H 2 c L r 2 ) 2 1 g g g W ,y 2 1 c c 1 (x L L i H r 1 L 1 W wg N 1 c L 1 g N constructor. constructor. Example shape illustrating various parameters from the from parameters various illustrating shape Example r W i 2.159:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), ), d r W ( ( discSym­ page 175 of 488 ), width wg S S N L L ( ), disc radius, S L discSymmetricA> ringSymmetricA> ( EC EC for waveguides without and waveguides for ), gap between the object and S S = 1 N constructors. constructors. ), number of sides EC d r r θ i WL WL θ θ ( ) ) Arc r W g W g W ) ,y ,y and (a) (b (x (x wg wg = 0 EC ). r W Symmetric ), number of segments ( N gN θ g N θ N and (b) ringSymmetricA x,y r W and width ( ) Disc-Ring metricA Example shapes illustrating various parameters the from (a) , waveguide opening angle ), waveguide i r d i g ( 2.160: 2.9.9.6

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 176 of 488 discSymADS S L discSymADS> EC d r 2 1 2 θ 2 1 ) g W W g L 2 ,y L 2 (x W 2 g S L 1 W wg N θ 1 g constructor. constructor. Example shape illustrating various parameters from the N d 2.161:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 177 of 488 discSymAPul 2 1 S S L L discSymAPul> EC 2 S L 1 2 2 1 θ 1 θ 2 ) 2 W W g g ,y W (x 2 θ d r 2 g 1 S L 1 W wg N 1 θ 1 constructor. constructor. Example shape illustrating various parameters from the g N d r 2.162:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 178 of 488 ringSymADS S L ringSymADS> EC 2 L 2 1 r 2 i θ 2 1 ) r g W W g W W 2 ,y L 2 (x g S L 1 W wg N θ 1 g N constructor. constructor. Example shape illustrating various parameters from the r W i 2.163:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 179 of 488 ringSymAPul 2 1 S S L L ringSymAPul> EC 2 S L 1 2 2 1 r 2 θ 1 θ 2 ) W W g W g W ,y 2 (x i θ r 2 g S L W wg N 1 g θ constructor. constructor. Example shape illustrating various parameters from the N r W i r 2.164:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W W discSym­ page 180 of 488 S S L L discSymmetricLCA> ringSymmetricLCA> EC EC constructors. constructors. S S r . W c d r WL WL i ) ) r g g ) c c ,y ,y L L (a) (b (x (x wg wg N N c c and (b) ringSymmetricLCA N gN L g L r W metricLCA Example shapes illustrating various parameters the from (a) d i 2.165: The following arc based, disc-ring waveguide symmetric structures are

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W discSymL- page 181 of 488 S L discSymLCADS> EC 2 L 2 d r 2 W 2 1 ) g W g c 2 ,y 2 L L g (x S L 1 W wg N c L constructor. constructor. 1 g CADS Example shape illustrating various parameters from the (a) N d 2.166:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 W W discSymL- page 182 of 488 2 1 S S L L discSymLCAPul> EC 2 S L 2 d W r 1 2 ) 2 g g 2 1 c c c ,y L L L (x 2 g 1 S L 1 W wg N constructor. constructor. 1 c L 1 g CAPul Example shape illustrating various parameters from the (a) N d 2.167:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W page 183 of 488 ringSymLCADS S L ringSymLCADS> EC 2 L 2 r W W 2 2 g i 2 1 ) r g W g c 2 ,y S L L L (x 1 W wg N c L 1 g N r constructor. constructor. Example shape illustrating various parameters from the from various parameters Example shape illustrating W i r 2.168:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 W W page 184 of 488 2 1 ringSymLCAPul S S L L ringSymLCAPul> EC 2 S L 2 W r 2 W c L i 1 2 ) r g g 2 2 1 c c ,y g L L (x 1 S L 1 W wg N 1 c L 1 g N constructor. constructor. Example shape illustrating various parameters from the Example from shape various illustrating parameters r W i 2.169:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 discSym­ page 185 of 488 is formed by formed is W L L . tone Using a negative discSymmetricInv> ringSymmetricInv> e W Bezier constructors. constructors. H H LHEC LHEC d e e r r θ θ ) ) Inverse i W W g W W g W e e ) r ,y ,y (a) (b (x (x WW WW wg wg Symmetric and (b) ringSymmetricInv N g θ N N g θ N r Disc-Ring metricInv Example shapes illustrating various parameters the from (a) W i d 2.170: 2.9.9.7 to a slotted waveguide. waveguide. a slotted to

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 discSymIn­ page 186 of 488 1 L discSymInvDS> EC 2 L 2 e W H 2 2 1 d e 2 1 e r θ 2 1 W ) g W W W g W 2 ,y 2 L (x H g 1 L 1 e W 1 W wg N constructor. constructor. θ 1 vDS Example shape illustrating various parameters from the (a) the from parameters various illustrating shape Example g N d 2.171:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 discSymIn­ page 187 of 488 discSymInvPul> EC 2 1 L 2 L H 2 L 2 e 2 W H 2 1 W H 2 2 1 2 1 2 1 e e θ 2 θ θ ) g W W g W W 2 ,y g (x 1 d r H 1 L 1 e W 1 W wg N constructor. constructor. 1 θ vPul Example shape illustrating various parameters from the (a) the from parameters various illustrating shape Example 1 g N d 2.172:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 188 of 488 ringSymInvDS ringSymInvDS> 1 L EC 2 L 2 e W 2 H W 2 1 2 r e 2 1 e θ 2 1 ) i W g W W W g W r 2 ,y H g L (x 1 L 1 e W 1 W wg N θ 1 g constructor. constructor. Example shape illustrating various parameters from the from parameters various illustrating shape Example N r W i 2.173:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ringSymInvPul> page 189 of 488 EC 2 H 2 1 L L 2 L 2 e W 2 2 H W 2 1 θ H 2 2 1 2 1 r 2 1 g e e 2 1 θ θ W g W W g 1 W W ) H i ,y r 1 (x L 1 e W 1 W wg N 1 θ 1 g Example shape illustrating various parameters from the ringSymInvPul from various parameters Example shape illustrating constructor. N r W i 2.174:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 The following disc-ring waveguide symmetric inverse structures are defined by the coupling length parameter Lc.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

W H L Lc

We g

rd (x,y)

(a)

W H L Lc

We g

Wr ri (x,y)

(b)

Figure 2.175: Example shapes illustrating various parameters from the (a) discSym­ metricInvLC and (b) ringSymmetricInvLC constructors.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 190 of 488 1 discSymIn­ W page 191 of 488 discSymInvLCDS> 1 L EC 2 L 2 e W 2 H W 2 1 d e 2 2 e r 2 1 ) g W W g W c 2 ,y L L H g (x 1 L 1 e W 1 W wg N constructor. constructor. c L 1 g vLCDS Example shape illustrating various parameters from the (a) the from parameters various illustrating shape Example N d 2.176:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 discSymIn­ W W page 192 of 488 discSymInvLCPul> EC 2 2 1 L L H 2 L 2 e W 2 2 W 1 H 2 H c 2 1 L e e ) 2 1 2 g g ,y 2 1 W W g c c (x L L 1 d H r 1 L 1 e W 1 W wg constructor. constructor. N 1 c L vLCPul Example shape illustrating various parameters from the (a) the from parameters various illustrating shape Example 1 g N d 2.177:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W page 193 of 488 ringSymInvL- ringSymInvLCDS> EC 1 2 L L 2 e W 2 W 2 H 2 1 r e 2 e H g 2 1 ) i W g W W g W r c 1 2 ,y L L L (x 1 e W 1 W wg N c L 1 constructor. constructor. g N CDS Example shape illustrating various parameters from the r W i 2.178:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 ringSymInvLCPul> W W page 194 of 488 ringSymInvL- EC 2 H 2 1 2 L L L 2 e W 2 W 2 c 2 L H H 2 g 2 1 r e e ) 2 1 1 W g g ,y 2 W W c c H L (x L i 1 r L 1 e W 1 W wg N 1 c L constructor. constructor. 1 g CPul Example shape illustrating various parameters from the N r W i 2.179:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 e e W W W W discSym­ page 195 of 488 is formed by S S W L L . tone Using a negative e W discSymmetricInvA> ringSymmetricInvA> Arc constructors. constructors. EC EC S S L L d r r Inverse i θ θ e e ) ) r g g W ) ,y ,y (a) (b (x (x WW WW wg wg Symmetric and (b) ringSymmetricInvA N g θN N g θ N r Disc-Ring metricInvA Example shapes illustrating various parameters the from (a) W d i 2.180: 2.9.9.8 to a slotted waveguide. waveguide. a slotted to

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e W W page 196 of 488 discSymInvADS S L discSymInvADS> EC 2 L 2 e W 2 d 2 r e 2 W θ 2 1 ) g W W g 2 2 ,y g L (x S L 1 e W 1 W wg N θ 1 g constructor. constructor. Example shape illustrating various parameters from the from parameters various illustrating shape Example N d 2.181:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 2 e 1 e W W W W page 197 of 488 discSymInvAPul 2 1 S S L L discSymInvAPul> EC 2 S L 2 e W 2 W 1 2 2 ) θ 1 θ 2 θ g g ,y 2 (x g 1 d S r L 1 e W 1 W wg N 1 θ constructor. constructor. Example shape illustrating various parameters from the from parameters various illustrating shape Example 1 g N d 2.182:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 e W W ringSymIn­ page 198 of 488 S L ringSymInvADS> EC 2 L 2 e W 2 W 2 2 e 2 r i g θ 2 1 ) r g W W g W 2 ,y S L L (x e W 1 W wg N θ constructor. constructor. 1 g N vADS Example shapes illustrating various parameters from the r W i 2.183:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 2 e 1 e W W W W page 199 of 488 ringSymInvA- 2 1 ringSymInvAPul> S S L L EC 2 S L 2 e W 2 W 2 θ 1 2 r 2 ) θ 1 θ 2 g g W g ,y 1 S (x i L r 1 e W 1 W wg N 1 θ constructor. constructor. 1 g Pul Example shapes illustrating various parameters from the from parameters various illustrating shapes Example N r W i 2.184:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 e e W W W W discSym­ page 200 of 488 S S L L constructors. constructors. discSymmetricInvLCA> ringSymmetricInvLCA> . c EC EC r S S L L W d r e e i ) ) r g g ) c c ,y ,y L L (a) (b (x (x WW WW wg wg N N and (b) ringSymmetricInvLCA c c N g L N g L r metricInvLCA Example shapes illustrating various parameters the from (a) W d i 2.185: The following arc based, disc-ring waveguide symmetric inverse structures symmetric inverse structures based, disc-ring waveguide arc The following

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e W W page 201 of 488 discSymInvL- S L discSymInvLCADS> EC 2 L 2 e W d 2 r 2 e 2 2 1 ) W g W W g c 2 ,y 2 L L g (x S L 1 e W 1 W wg constructor. constructor. N c L 1 CADS Example shape illustrating various parameters from the g N d r 2.186:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 2 e 1 e W W W W page 202 of 488 discSymInvL- 2 1 S S L L discSymInvLCAPul> EC 2 S L 2 e W 2 W d r 2 c 1 2 ) g L g 2 1 c c ,y 2 L L g (x 1 S L 1 e W 1 W wg constructor. constructor. N c L CAPul Example shape illustrating various parameters from the 1 g N d 2.187:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e W W page 203 of 488 ringSymInvL- S L ringSymInvLCADS> EC 2 L 2 e W r 2 W W 2 e 2 2 i 2 1 ) r g g W W g c 2 ,y S L L L (x 1 e W 1 W wg N c constructor. constructor. L 1 g CADS Example shape illustrating various parameters from the N r W i 2.188:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 2 e 1 e W W W W page 204 of 488 ringSymInvLCAPul> ringSymInvLCA- 2 1 S S L L EC 2 S L 2 e W 2 W 2 r c L W 2 i g 1 2 r g g 2 1 1 c c ) S L L ,y L 1 (x e W 1 W wg N 1 c L constructor. constructor. 1 g Pul Example shape illustrating various parameters from the from parameters various illustrating shape Example N r W i 2.189:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 discSym­ Bezier page 205 of 488 away from a from away g Tone L L constructors. constructors. discSymmetricInvPos> ringSymmetricInvPos> Positive H H i r d e e r θ θ LHEC LHEC ) ) Inverse W g W W g W ) e e ,y ,y (a) (b (x (x e r WW WW r e r W wg wg e r and (b) ringSymmetricInvPos Symmetric . N g θ N N g θ N e e e r r and r r Disc-Ring metricInvPos Example shapes illustrating various parameters the from (a) e W i d 2.190: 2.9.9.9

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Disc symmetric inverse positive structure with an additional coupling waveg­ uide.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

θ H We1

L1 W1 g1

re rd (x,y)

g2 W2 We2

L2

Figure 2.191: Example shape illustrating various parameters from the discSymIn­ vPosDS constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 206 of 488 2 1 e e W W discSymIn­ page 207 of 488 discSymInvPosPul> 1 2 L L EC 2 H 2 L 2 e 2 H W H 2 W 1 d 2 1 r 2 2 θ 2 θ θ g W g ) W 2 ,y g (x 1 H 1 L e r 1 e W 1 W constructor. constructor. wg N 1 θ 1 vPosPul Example shape illustrating various parameters from the g N e r 2.192: d

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Ring symmetric inverse positive structure with an additional coupling waveg­ uide.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

θ H We1

L1 W1 g1

re Wr re ri (x,y)

g2 W2 We2

L2

Figure 2.193: Example shape illustrating various parameters from the ringSymIn­ vPosDS constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 208 of 488 2 1 e e W W ringSymIn­ page 209 of 488 ringSymInvPosPul> 2 1 EC L L 2 H 2 L 2 e W 2 2 H H W 2 i θ r 1 2 1 2 2 θ θ 2 1 ) g g W g W 1 ,y H (x 1 L e r 1 e r W W 1 e r W wg constructor. constructor. N 1 θ 1 g vPosPul Example shape illustrating various parameters from the N e r r W 2.194: i

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 discSym­ e e W W W W page 210 of 488 L L constructors. constructors. . c discSymmetricInvPosLC> ringSymmetricInvPosLC> H H i r d LHEC LHEC r ) ) g g ) e e c c ,y ,y L L (a) (b (x (x e WW WW r r e r wg wg W and (b) ringSymmetricInvPosLC N N e r c c N g L N g L e e r r r metricInvPosLC Example shapes illustrating various parameters the from (a) W d i 2.195: The following disc-ring symmetric waveguide inverse positive tone struc­

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e discSymIn­ W W page 211 of 488 discSymInvPosLCDS> 1 L EC 2 L 2 e W H 2 W 2 d 2 e 2 r 2 ) g W W g c 2 ,y L H g L (x 1 L 1 e e r W 1 W constructor. constructor. wg N c L 1 g vPosLCDS Example shape illustrating various parameters from the N e r d 2.196:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 2 e W W 1 1 discSymIn­ e page 212 of 488 W W discSymInvPosLCPul> EC 1 2 2 L H L 2 L 2 e W 2 2 1 W H H 2 c L d 2 r 2 2 g g g ) c 1 c 1 L ,y L H (x 1 L 1 e e r W 1 W constructor. constructor. wg N 1 c L 1 g vPosLCPul Example shape illustrating various parameters from the N e r d 2.197:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e ringSymIn­ W W page 213 of 488 ringSymInvPosLCDS> 1 EC L 2 L 2 e W 2 W H 2 i r 2 2 e H g 2 1 ) g W W g 1 c 2 ,y L L L (x 1 e e W r r 1 W W e r wg N constructor. constructor. c L 1 g N e vPosLCDS Example shape illustrating various parameters from the r r W i 2.198:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 2 e W W 1 1 ringSymIn­ e ringSymInvPosLCPul> page 214 of 488 W W EC 2 H 2 1 L 2 L L 2 e W 2 W 2 2 c H 1 L H 2 i g r 1 2 1 ) H g g 2 1 c c ,y 1 L L L (x 1 e e r W r 1 W W e r wg constructor. constructor. N 1 c L 1 g N vPosLCPul Example shape illustrating various parameters from the e r r W i 2.199:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 e e W W W W Arc discSym­ page 215 of 488 S S Tone L L constructors. constructors. Positive discSymmetricInvPosA> ringSymmetricInvPosA> EC EC i r . S S d Inverse e r θ θ L L ) ) g g ) ,y ,y e e (a) (b (x (x and r e e r WW WW r e r W wg wg e Symmetric and (b) ringSymmetricInvPosA r N g θ N N g θ N e e r r Disc-Ring r metricInvPosA Example shapes illustrating various parameters the from (a) W away from a disc or using from a exposure a ring positive structure resist away g i d 2.200: 2.9.9.10

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e W W discSymIn­ page 216 of 488 S L discSymInvPosADS> EC 2 L constructors. constructors. 2 e W 2 2 d 2 e r θ 2 1 ) W g W W g 2 ,y 2 L g (x S L 1 e e r W 1 W and (b) ringSymInvPosADS wg N θ 1 g vPosADS Example shapes illustrating various parameters from the (a) from Example various shapes illustrating parameters N e r d 2.201:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 2 e 1 e W W W W page 217 of 488 2 1 discSymInvPos- S S L L discSymInvPosAPul> EC 2 S L 2 e W 1 d 2 2 r θ 2 1 θ W g g ) 2 ,y θ (x 2 g 1 S e L r 1 e W 1 W wg N constructor. constructor. 1 θ 1 APul Example shape illustrating various parameters from the Example from shape various illustrating parameters g N e r 2.202: d

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e W W ringSymIn­ page 218 of 488 S L ringSymInvPosADS> EC 2 L 2 e W i 2 r 2 2 e θ W 2 1 ) g W W g 2 2 ,y g L (x S L e r e r W W e W r wg constructor. constructor. g θ N N e vPosADS Example shape illustrating various parameters from the r r W i 2.203:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 2 e 1 e W W W W page 219 of 488 2 1 ringSymInvPos- S S L L ringSymInvPosAPul> EC 2 S L 2 e W 2 i W r 1 2 2 θ 2 1 θ ) θ g g ,y 2 g (x 1 S e L r 1 r e W W e 1 r W wg N 1 θ constructor. constructor. 1 g N APul Example shape illustrating various parameters from the from Example shape various parameters illustrating e r r W 2.204: i

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 e e W W W W discSym­ page 220 of 488 . c S S L L constructors. constructors. discSymmetricInvPosLCA> ringSymmetricInvPosLCA> EC EC i r S S d L L r ) ) g g ) c c e e ,y ,y L L (a) (b (x (x e WW WW r r e r wg wg and (b) ringSymmetricInvPosLCA W N N e r c c N g L N g L e e r r r metricInvPosLCA Example shapes illustrating various parameters the from (a) W d i 2.205: The following arc based, disc-ring waveguide symmetric inverse positive

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Disc symmetric inverse positive arc structure with an additional coupling waveg­ uide.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

W1 We1 Lc LS g1

re rd (x,y)

g2 W2 We2

L2

Figure 2.206: Example shape illustrating various parameters from the discSymIn­ vPosLCADS constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 221 of 488 2 1 2 e 1 e W W W W discSymIn­ page 222 of 488 2 1 S S L L discSymInvPosLCAPul> EC 2 S L 2 e W 2 d r W 2 1 g g 2 ) 2 1 c c c ,y L L L 2 (x g 1 S e L r 1 e W 1 constructor. constructor. W wg N 1 c L 1 vPosLCAPul Example shape illustrating various parameters from the g N e r 2.207: d

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Disc symmetric inverse positive arc structure with an additional coupling waveg­ uide.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

W1 We1 Lc LS g1

re Wr re ri (x,y)

g2 W2 We2

L2

Figure 2.208: Example shape illustrating various parameters from the ringSymIn­ vPosLCADS constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 223 of 488 2 1 2 e 1 e W W W W ringSymIn­ page 224 of 488 2 1 S S L L ringSymInvPosLCAPul> EC 2 S L 2 e W 2 W i r 2 c 2 1 L ) g g 2 2 1 c ,y c g L L (x 1 S e L r 1 e r W W 1 e r W constructor. constructor. wg N 1 c L 1 g N vPosLCAPul Example shape illustrating various parameters from the e r r W 2.209: i

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ). > r and W ( waveGuide page 225 of 488 R ( discPulley ), gap between N discPulley> ringPulley> ( ), number of sides θ and ring width ( ) i r ( d r i r r ) ) ). radius a by defined is object Disc W g W W g ) ,y ,y WLHECWLHEC H (a) (b ( (x (x , number of segments ), number of segments )objects. de­ are (disc/ring) objects Both θ θ Bezier wg wg x,y ( Ring H H −R , waveguide opening angle ), waveguide > and height and g Pulley ) ( constructors. constructors. L ( N g θ N N g θ N for waveguides without and with endcaps, respectively. and with endcaps, respectively. without waveguides for waveGuide r R ( , length ), W L L = 1 Disc-Ring W Example shapes illustrating various parameters of the (a) the of parameters various illustrating shapes Example (b) ringPulley ( i d and ring and and EC 2.210: ) , width ), and the ring is characterized by an inner radius = 0 2.9.9.11 Disc ) wg

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ page 226 of 488 discPulDS discPulDS> EC 2 L 2 d r W 2 1 2 1 2 ) g W W g 2 ,y L (x H g θ 1 L 1 H W wg N θ 1 g 1 L Example shape illustrating various parameters of the structor. N d 2.211:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ page 227 of 488 discPulPul> 2 discPulPul L EC 2 H 2 L 2 H 2 W 2 θ 2 2 1 2 1 θ d g W W g r ) 2 g ,y (x 1 1 H θ 1 1 L H 1 W wg N 1 θ 1 1 L g Example shape illustrating various parameters of the structor. N d 2.212:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ page 228 of 488 ringPulDS> ringPulDS EC 2 L 2 W 2 i r 2 1 r 2 1 ) H g g W W g W 2 ,y L 1 (x L θ 1 W H wg N θ 1 g N 1 L r Example shape illustrating various parameters of the structor. W i 2.213:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ ringPulPul> page 229 of 488 2 ringPulPul EC L 2 H 2 L 2 2 W H 2 θ 2 2 2 1 r g 2 1 θ i g W W g W r ) 1 ,y H 1 (x θ 1 L 1 1 W H wg N 1 θ 1 g 1 L N Example shape illustrating various parameters of the structor. r W i 2.214:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W W page 230 of 488 discPulleyLC discPulleyLC> ringPulleyLC> d r i r r ) ) g W g ) c c WLHECWLHEC ,y ,y L L (a) (b (x (x wg wg N N constructors. constructors. c c H H . c N gN L g L r W L L and (b) ringPulleyLC Example shapes illustrating various parameters of the (a) the of parameters various illustrating shapes Example d i 2.215: The following disc-ring waveguide pulley structures are defined by the

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W con­ page 231 of 488 discPulLCDS discPulLCDS> EC 2 L 2 d W r 2 2 2 ) g W g c 2 ,y L L (x H g 1 L 1 H W wg N c L 1 g 1 L Example shape illustrating various parameters of the of various parameters illustrating shape Example structor. N d 2.216:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W con­ page 232 of 488 2 L discPulLCPul discPulLCPul> EC 2 H 2 2 H L 2 ) W ,y 2 2 g g (x c 2 1 c c L L L 2 g d 1 r H 1 H L 1 W wg N 1 c L 1 L 1 g Example shape illustrating various parameters of the Example various shape parameters illustrating structor. 2 N W d 2.217:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W con­ page 233 of 488 ringPulLCDS> ringPulLCDS EC 2 L 2 W 2 i r 2 r 2 H g ) g W g W c 2 ,y 1 L L (x L 1 W H wg N c L 1 g N L r Example shape illustrating various parameters of the of parameters various illustrating shape Example structor. W i 2.218:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W con­ page 234 of 488 2 ringPulLCPul> L ringPulLCPul EC 2 H 2 L 2 2 H W i 2 c r r L 2 g g W 2 1 2 c c ) L L ,y H g (x 1 L 1 H W wg N 1 c L 1 g 1 L N Example shape illustrating various parameters of the various Example parameters shape illustrating structor. r 2 W W i 2.219:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), S S g L L ( discPulleyA page 235 of 488 ), and length and ring width ring and W ) ( i r ( discPulleyA> ringPulleyA> ), width EC EC wg ). a by defined is object Disc N S ( S S L d ( r i r r ) ) W g W W g ) ,y ,y WL WL (a) (b (x (x θ θ Arc wg wg constructors. constructors. ), gap between the object and waveguide N ), number of sides ( θ Pulley ( for waveguides without and with endcaps, respectively. respectively. endcaps, with and without waveguides for N g θ N N g θ N = 1 r EC W Disc-Ring and (b) ringPulleyA Example shapes illustrating various parameters of the (a) and i d and the ring is characterized by an inner radius inner an by characterized is ring the and ) = 0 d r ( 2.220: EC ), number of segments ). 2.9.9.12 r

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 S L con­ page 236 of 488 discPulADS discPulADS> EC 2 L d r 2 2 1 2 1 ) W g W W g 2 ,y L 2 (x g θ S L 1 W wg N θ 1 g Example shape illustrating various parameters of the of various parameters illustrating Example shape structor. N d 2.221:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 S S L L con­ page 237 of 488 discPulAPul discPulAPul> EC 2 S L 2 2 θ 2 1 W 2 1 d g W W g r ) 2 ,y θ (x 2 g 1 θ 1 S L 1 W wg N 1 θ 1 g Example shape illustrating various parameters of the of parameters various illustrating shape Example structor. N d 2.222:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 S L con­ page 238 of 488 ringPulADS ringPulADS> EC 2 L 2 W i r 2 1 r 2 2 1 ) g g W W g W 2 ,y L S (x L θ 1 W wg N θ 1 g N r Example shape various of illustrating parameters the structor. W i 2.223:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 S S L L con­ page 239 of 488 ringPulAPul ringPulAPul> EC 2 S L 2 W 2 θ 2 2 1 r θ 2 1 i g W W g W r ) 2 g ,y (x 1 S 1 L θ 1 W wg N 1 θ 1 g N Example shape illustrating various parameters of the of parameters various illustrating shape Example structor. r W i 2.224:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W W S S L L page 240 of 488 discPulleyLCA discPulleyLCA> ringPulleyLCA> EC EC r W S S d r i r ) ) g g ) c c WL WL ,y ,y L L (a) (b (x (x wg wg . c N N constructors. constructors. c c N gN L g L r W and (b) ringPulleyLCA Example shapes illustrating various parameters of the (a) the of parameters various illustrating shapes Example d i 2.225: The following arc based, disc-ring waveguide pulley structures are defined are structures pulley based, disc-ring waveguide arc The following

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W S L page 241 of 488 discPulLCADS discPulLCADS> EC 2 L d r 2 2 2 1 W ) g W g c 2 ,y L L 2 (x g S L 1 W wg N c L 1 g constructor. constructor. Example shape illustrating various parameters of the (a) the of parameters various illustrating shape Example N d 2.226:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 2 1 W S S L L page 242 of 488 discPulLCAPul discPulLCAPul> EC 2 S L 2 d r W 2 1 1 g g c 2 1 c c L ) L L 2 ,y g (x 1 S L 1 W wg N 1 c L 1 g constructor. constructor. Example shape illustrating various parameters of the (a) various parameters Example shape illustrating N d 2.227: 2 W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W S L con­ page 243 of 488 ringPulLCADS> ringPulLCADS EC 2 L r W 2 W i r 2 2 g 2 1 ) g W g c 2 ,y S L L (x L 1 W wg N c L 1 g N r Example shape illustrating various parameters of the of parameters various illustrating shape Example structor. W i 2.228:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 2 1 W S S L L page 244 of 488 ringPulLCAPul ringPulLCAPul> EC 2 S L r 2 W W 1 c i r L 2 1 g g 2 2 1 c c g ) L L 1 ,y S (x L 1 W wg N 1 c L 1 g N constructor. constructor. Example shape illustrating various parameters of the r W i 2.229: 2 W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 is formed is formed page 245 of 488 W discPulleyInv . Using a negative e W discPulleyInv> ringPulleyInv> d r Bezier i r e r e ) ) W W g W W W g ) LHEC LHEC ,y ,y (a) (b e e (x (x θ θ Inverse WW WW constructors. constructors. H H wg wg Pulley N g θN N g θ N 1 1 Disc-Ring r L L and (b) ringPulleyInv Example shapes illustrating various parameters of the (a) various Example parameters shapes illustrating W to a slotted waveguide. waveguide. a slotted to d i 2.230: 2.9.9.13

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ page 246 of 488 discPulInvDS> discPulInvDS EC 2 L 2 e W 2 d W r 2 1 e 2 1 e 2 2 1 ) g W W W W g 2 ,y L H g (x 2 θ L 2 e W H 2 W wg N θ 1 2 L g Example shape illustrating various parameters Example of shape various the illustrating parameters structor. N d 2.231:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ 2 discPulInvPul> L page 247 of 488 EC 2 H discPulInvPul 2 2 L H 2 e W 2 2 W θ 2 1 e 2 1 e 2 2 1 d θ g W W W W g r 2 ) g ,y 2 1 (x H θ 2 L 1 H 2 e W 2 W wg N 1 1 θ L 2 g Example shape illustrating various parameters Example of shape various the illustrating parameters structor. N d 2.232:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ ringPulInvDS> EC page 248 of 488 2 L ringPulInvDS 2 e W 2 W 2 H g i 2 1 r e 2 1 e r 2 1 ) 1 g W W W W g W L 2 ,y L (x 1 e θ W 1 W H wg N θ 1 g 1 N L r Example shape illustrating various parameters of Example the various shape parameters illustrating structor. W i r 2.233:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 con­ ringPulInvPul> 2 EC L page 249 of 488 2 H 2 ringPulInvPul L 2 2 e H W 2 W 2 2 θ θ 2 1 2 e 2 1 e r 2 1 i g W W W W g W r H g ) ,y 1 L 1 (x θ 1 e 1 W H 1 W wg N 1 θ 1 1 g L N Example shape illustrating various parameters of Example various the shape parameters illustrating structor. r W i 2.234:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W W page 250 of 488 discPulleyIn­ discPulleyInvLC> ringPulleyInvLC> d r i r e r e ) ) LHEC LHEC W g W W g ) c c ,y ,y L L (a) (b e e (x (x constructors. constructors. WW WW . c H H wg wg N N c c N g L N g L and (b) ringPulleyInvLC L L r vLC Example shapes illustrating various parameters of the (a) the of parameters various illustrating shapes Example W d i 2.235: The following disc-ring waveguide pulley inverse structures are defined by defined are structures pulley inverse waveguide disc-ring The following

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W page 251 of 488 discPulInvLCDS discPulInvLCDS> EC 2 L 2 e W d r 2 2 1 e 2 e W 2 1 ) g W W W g c 2 2 ,y L L (x H g 1 L 1 e H W 1 W wg N c L 1 L 1 g constructor. constructor. Example shape illustrating various parameters of the N d 2.236:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W 2 L discPulInvLCPul> page 252 of 488 discPulInvLCPul EC 2 H 2 2 H L 2 e W 2 d r W 2 1 e e 2 2 1 c g W W g 2 1 L c c ) L L 2 g ,y 2 (x H 1 L H 1 e W 1 W wg N 2 1 c L L 1 constructor. constructor. Example shape illustrating various of parameters the g N 2 d 2.237: W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W page 253 of 488 ringPulInvLCDS> ringPulInvLCDS EC 2 L 2 e W 2 W i 2 2 r e 2 e r 2 ) g W W W g W c 2 ,y H g L L (x 1 L 1 e W H 1 W wg N c L 1 g 1 L N constructor. constructor. Example shape illustrating various parameters of the r W i 2.238:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W ringPulInvLCPul> 2 L page 254 of 488 EC 2 ringPulInvLCPul H 2 L 2 2 e H W 2 W 2 c i 2 L r e e r 2 2 g W W g W g 2 1 c c 1 ) L L H ,y 1 (x L 1 e H W 1 W wg N 1 c L 1 1 g L constructor. constructor. Example shape illustrating various parameters of the N r W 2 i 2.239: W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 S S L L to a to g page 255 of 488 discPulleyInvA is formed by exposing is formed W discPulleyInvA> ringPulleyInvA> d . Using a negative tone resist, EC EC r Arc e i r e e r W S S ) ) W g W W g W W ) L L ,y ,y (a) (b e e (x (x θ θ Inverse constructors. constructors. WW WW wg wg Pulley N g θ N N g θ N Disc-Ring r and (b) ringPulleyInvA Example shapes illustrating various parameters of the (a) the of parameters various illustrating shapes Example W i d 2.240: 2.9.9.14

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 S L page 256 of 488 discPulInvADS discPulInvADS> EC 2 L 2 e W d r 2 2 1 e 2 1 e 2 1 W ) g W W W W g 2 ,y 2 L g (x S θ L 1 e W 1 W wg N θ 1 g constructor. constructor. Example shape illustrating various parameters of the N d 2.241:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 S S L L page 257 of 488 discPulInvAPul discPulInvAPul> EC 2 S L 2 e W 2 2 θ 2 1 W e 2 1 e 2 1 d 2 g W W W W g r θ ) 2 ,y g (x 1 1 θ S L 1 e W 1 W wg N 1 θ 1 g constructor. constructor. Example shape illustrating various parameters of the N d 2.242:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 S L page 258 of 488 ringPulInvADS> ringPulInvADS EC 2 L 2 e W 2 W i 2 1 2 r e 2 1 e r g 2 1 ) g W W W W g W 2 ,y S L L (x 1 e θ W 1 W wg N θ 1 g N constructor. constructor. Example shape illustrating various parameters of the r W i 2.243:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 S S L L page 259 of 488 ringPulInvAPul> ringPulInvAPul EC 2 L 2 e W 2 W 2 θ 2 1 2 e 2 1 e r θ 2 1 i g W W W W g W r 2 g ) ,y S L (x 1 θ 1 e W 1 W wg N 1 θ 1 g N constructor. constructor. Example shape illustrating various parameters of the r W i 2.244:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W W S S L L page 260 of 488 discPulleyIn­ discPulleyInvLCA> ringPulleyInvLCA> r W EC EC d r i r e e . S S c ) ) L L W g W g ) c c constructors. constructors. ,y ,y L L (a) (b e e (x (x WW WW wg wg N N c c and (b) ringPulleyInvLCA N g L N g L r vLCA Example shapes illustrating various parameters of the (a) the of parameters various illustrating shapes Example W d i 2.245: The following arc based, disc-ring waveguide pulley inverse structures are are inverse pulley structures based, disc-ring waveguide arc The following

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W S L page 261 of 488 discPulInvLCADS> discPulInvLCADS EC 2 L 2 e W d r 2 2 1 e 2 e W 2 1 ) g W W W g c 2 2 ,y L g L (x S L 1 e W 1 W wg N c L 1 g constructor. constructor. Example shape illustrating various parameters of the of parameters various illustrating shape Example N d 2.246:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 2 1 W S S L L page 262 of 488 discPulInvLCAPul> discPulInvLCAPul EC 2 S L 2 e W d r 2 1 2 e e 2 1 W g W W g 2 1 c c 2 c ) L L L ,y 2 (x g 1 S L 1 e W 1 W wg N 1 c L 1 constructor. constructor. Example shape illustrating various parameters of Example the various shape parameters illustrating g N 2 d 2.247: W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 W S L page 263 of 488 ringPulInvLCADS> ringPulInvLCADS EC 2 L 2 e W r 2 W W i 2 2 1 r e 2 e g 2 1 ) g W W W g c S 2 ,y L L L (x 1 e W 1 W wg N c L 1 g N constructor. constructor. Example shape illustrating various parameters of the of parameters various illustrating shape Example r W i 2.248:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 2 1 W S S L L page 264 of 488 ringPulInvLCADPul> ringPulInvLCAPul EC 2 S L 2 e r W W 2 W i 2 1 r 2 e e c 2 1 L g W W g 2 1 c c 2 ) L L g ,y 1 S (x L 1 e W 1 W wg N 1 c L 1 g constructor. constructor. Example shape illustrating various parameters of the parameters various shape illustrating Example N r W 2 i 2.249: W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 away from from away page 265 of 488 discPulleyIn­ g Bezier discPulleyInvPos> ringPulleyInvPos> Tone EC EC H H 1 1 L L d i r Positive r 1 1 1 1 e 1 e 1 e e 1 ) ) W W g W W g W W ) ,y ,y constructors. constructors. (a) (b 1 1 (x (x W W θ Inverse θ wg wg e r N N H H r e W θ θ r Pulley e r 1 1 N g N g . e e e and (b) ringPulleyInvPos r r 1 1 L L Disc-Ring r and r vPos Example shapes illustrating various parameters of the (a) the of parameters various illustrating shapes Example W e d i 2.250: 2.9.9.15

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Disc pulley inverse positive structure with an additional coupling waveguide.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

We1 W1 g1

H L1 θ rd re (x,y)

g2

W2 We2

L2

Figure 2.251: Example shape illustrating various parameters of the discPulInvPDS constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 266 of 488 2 L page 267 of 488 discPulInvPPul discPulInvPPul> EC 2 2 H H 2 L 2 e 2 d r θ W 2 1 2 e e 1 2 2 1 g W W W W g W ) 2 θ ,y 2 1 (x θ H g 1 1 L H e 1 r e W 1 W wg N 1 1 L θ 1 g constructor. constructor. Example shape illustrating various parameters of the N e r d 2.252:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ringPulInvPDS> page 268 of 488 ringPulInvPDS EC 2 L 2 e W 2 W 2 i r 2 1 2 e e 1 2 1 H g ) g W W W W g 2 ,y 1 L L (x 1 e θ W e 1 r W H r W wg e r N θ 1 g 1 N L e r constructor. constructor. Example shape illustrating various parameters of the r W i 2.253:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 L page 269 of 488 ringPulInvPPul> ringPulInvPPul EC 2 H 2 L 2 2 H e W 2 i 2 r W 2 1 θ 2 e e 1 2 2 1 θ g W W W W g 2 ) g ,y 1 1 H (x θ 1 L e r 1 1 e H r W W 1 e r W wg N 1 θ 1 1 L g N constructor. constructor. Example shape illustrating various parameters of the e r r W i 2.254:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 e e W W W W page 270 of 488 discPulleyIn­ discPulleyInvPosLC> ringPulleyInvPosLC> . c d i LHEC LHEC r constructors. constructors. r e e ) ) g g ) c c ,y ,y L L (a) (b (x (x WW WW e wg wg r N N H H r e c c W r e r N g L N g L and (b) ringPulleyInvPosLC e e r r L L r vPosLC Example shapes illustrating various parameters of the (a) the of parameters various illustrating shapes Example W d i 2.255: The following disc-ring waveguide pulley inverse positive tone structures disc-ring waveguide The following

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Disc pulley inverse positive structure with an additional coupling waveguide.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

Lc

g1

H L We1 1 W rd 1 re (x,y)

g2

W2 We2

L2

Figure 2.256: Example shape illustrating various parameters of the discPulInvPLCDS constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 271 of 488 1 1 e W W 2 L page 272 of 488 discPulInvPLCPul> discPulInvPLCPul EC 2 H 2 2 H L 2 e d W r 2 2 1 W g g 2 1 c c 2 c ) L L L ,y 2 g (x 1 H 1 1 L H e 1 r e W 1 W wg N 1 c L L 1 g constructor. constructor. Example shape illustrating various parameters of the various parameters Example shape illustrating N e 2 r 2 e d 2.257: W W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e W W ringPulInvPLCDS> page 273 of 488 EC ringPulInvPLCDS 2 L 2 e W 2 W 2 i r 2 2 e H g 2 1 ) g W W g c 1 2 ,y L L L (x 1 e W 1 e r W H r W wg e N r c L 1 g 1 N L e r constructor. constructor. Example shape illustrating various parameters of the of parameters various illustrating shape Example r W i 2.258:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e W W 2 L ringPulInvPLCPul> page 274 of 488 EC 2 ringPulInvPLCPul H 2 L 2 2 e H W 2 W i r 2 c 2 1 L g g 2 1 2 c c g ) L L 1 ,y H (x 1 L e 1 r 1 e H r W W 1 e W r wg N 1 c L 1 1 L g N constructor. constructor. Example shape illustrating various parameters of the of various parameters Example shape illustrating e r r 2 2 e W i 2.259: W W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 S S L L page 275 of 488 discPulleyIn­ Arc Tone discPulleyInvPosA> ringPulleyInvPosA> EC EC d S S i r Positive r L L e e constructors. constructors. ) ) e e W W g W W g . ) e ,y ,y (a) (b (x (x Here, Here, a slot waveguide is formed at a WW WW and r θ θ Inverse e e wg wg r r e W r Pulley e r N g θN N g θ N and (b) ringPulleyInvPosA e e r r Disc-Ring r vPosA Example shapes illustrating various parameters of the (a) the of parameters various illustrating shapes Example W away from a disc or using from a exposure a ring positive structure resist away d i g 2.260: 2.9.9.16

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Disc pulley inverse positive arc structure with an additional coupling waveguide.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

We1 W1 g1

θ rd re (x,y) LS

g2

W2 We2

L2

Figure 2.261: Example shape illustrating various parameters of the discPulInvPADS constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 276 of 488 2 1 S S L L page 277 of 488 discPulInvPAPul discPulInvPAPul> EC 2 S L 2 e W 2 d r 2 θ 2 1 2 e e 1 W 2 1 g W W W W g 2 θ ) 2 ,y g 1 (x 1 θ S L 1 e e W r 1 W wg N 1 θ 1 g constructor. constructor. Example shape various of illustrating the parameters N e r d 2.262:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 S L page 278 of 488 ringPulInvPADS> ringPulInvPADS EC 2 L 2 e W 2 W i r 2 1 2 e e 1 2 2 1 g ) g W W W W g 2 ,y S L L (x 1 e θ W e 1 r W r W wg e r N θ 1 g N e r constructor. constructor. Example shape illustrating various parameters of the r W i 2.263:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 1 S S L L page 279 of 488 ringPulInvPAPul> ringPulInvPAPul EC 2 L 2 e W 2 W i 2 r 2 2 1 θ 2 e e 1 θ 2 1 g W W W W g 2 g ) 1 ,y S 1 L (x θ 1 e e r W r 1 W W e r wg N 1 θ 1 g N e constructor. constructor. Example shape illustrating various parameters of the r r W i 2.264:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 e e W W W W S S L L page 280 of 488 discPulleyIn­ discPulleyInvPosLCA> ringPulleyInvPosLCA> EC EC constructors. constructors. . S S c d i L L r r e e ) ) g g ) c c ,y ,y L L (a) (b (x (x WW WW e wg wg r N N r e c c W r e r and (b) ringPulleyInvPosLCA N g L N g L e e r r r vPosLCA Example shapes illustrating various parameters of the (a) the of parameters various illustrating shapes Example W d i 2.265: The following disc-ring waveguide pulley inverse positive tone structures disc-ring waveguide The following

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Disc pulley inverse positive arc structure with an additional coupling waveguide.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

Lc

g1

We1 W rd 1 re (x,y) LS

g2

W2 We2

L2

Figure 2.266: Example shape illustrating various parameters of the discPulInvPLCADS constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 281 of 488 1 1 e 2 1 W S S W L L page 282 of 488 discPulInvPLCAPul discPulInvPLCAPul> EC 2 L 2 e d r W 2 1 2 g g 2 1 W c c ) L L 2 c ,y L (x 2 g 1 S L 1 e e r W 1 W wg N 1 c L 1 g constructor. constructor. Example shape illustrating various parameters of the of parameters various illustrating shape Example N e 2 r 2 e d 2.267: W W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e W S W L page 283 of 488 ringPulInvPLCADS> ringPulInvPLCADS EC 2 L 2 e W 2 W i r 2 2 2 e g 2 1 ) g W W g c S 2 ,y L L L (x 1 e W 1 e r W r W wg e N r c L 1 g N e r constructor. constructor. Example shape illustrating various parameters of the of parameters various illustrating shape Example r W i 2.268:

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1 1 e 2 1 W S S W L L page 284 of 488 ringPulInvPLCAPul> ringPulInvPLCAPul EC 2 S L 2 e W 2 i r W 2 1 2 g g c 2 c c L L ) L 2 ,y g 1 (x S L e 1 r e r W W 1 e W r wg N 1 c L 1 g N constructor. constructor. Example shape illustrating various parameters of the of parameters various illustrating shape Example e r r 2 2 e W i 2.269: W W

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 5) − W W 1 waveG­ and 7 page 285 of 488 − 7 5 5 a (Ellipse) 6 waveGuideInvPhCvary constructor. constructor. ) and the waveguide width waveguide the and ) N W 4 4 Crystals a y waveGuideInvPhC x 5 n W ). (1 numbers Indexed N ). by defined are structures Elliptical a n n x,y a y ( 4 x n x r Photonic y ) 4 ,...a r 4 (b) (a) 3 n 2 ,y y 3 a n r N x ,a (x r 1 n a . y ( r .. n 2 x Inverse 3 r N and (b) waveGuideInvPhCvary 2 ... a ), the number of shape sides ( sides shape of number the ), 2 y 2 x 2 r r y N 2 r ) 2 a 2 2 ,y 2 y 2 y and x r r (x r x or varying grid varying or 2 r uideInvPhC Example shapes illustrating various parameters from the (a) 1 ) x r a Waveguide N 1 1 a N 1 2.270: 1 1 1 y y 1 a r r constant ). is position waveguide center The 1 1 = 2.9.10 x x r r a W NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure the two radii ( radii two the below. the ellipse directly to correspond ( ( Waveguide shapes characterized by elliptical perforations on either a periodic a either on perforations elliptical by characterized shapes Waveguide

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 h h S S W W 7 waveGuide- page 286 of 488 5 5 a ) and is of height of is and ) o waveGuidePhCvary S h S o S ) and the waveguide width waveguide the and ) waveGuidePhC 4 4 a N h (Ellipse) S 5 6 o S x y W n ). The box defining the waveguide constructor. constructor. N ). by defined are structures Elliptical 4 x,y n x n ( r a ) 4 Crystals 4 (b) (a) 3 n ,y y x y a W 3 a ) correspond to the ellipse directly below. below. the ellipse directly to 5) correspond y r ,...a r (x n 2 − n N 1 ,a x r 1 n a y ( r ... 3 and n 7 2 x Photonic r N − 2 2 x ... r a ), the number of shape sides ( sides shape of number the ), 2 ) y 2 2 a 2 r 2 ,y y y N r r (x and (b) waveGuidePhCvary 2 2 y and x r r x a or varying grid varying or 2 r PhC Example shapes illustrating various parameters from Example the shapes (a) various illustrating from parameters ) 1 x r Waveguide N 1 1 2 1 1 N a 1 a a 2 2.271: 1 1 y y r r constant ). The position waveguide center is ). numbers (1 Indexed o 1 1 = 2.9.11 o h x x S r r S a W S Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox the two radii ( radii two the ( overhang the by structures elliptical the beyond extends ( ( ( Waveguide shapes by characterized elliptical on structures either a Waveguide periodic

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W W waveG­ page 287 of 488 7 5 5 a constructor. constructor. (Rectangle) ). waveguide The center W 4 4 Crystals a ). Rectangular structures are ) correspond to the rectangles rectangles the to correspond 5) n − 5 6 waveGuideInvRectPhCvary 1 ,...a 2 and ,a 4 1 x waveGuideInvRectPhC 7 x y W a L ( Photonic − ) 4 n 4 (b) (a) 3 y a ,y 3 a L (x a W n y L and (b) waveGuideInvRectPhCvary n x y x n L Inverse 3 y , and the waveguide width ( , and the waveguide L y ... n L 2 x 2 or varying grid x L a ) L 2 2 ) 2 and 2 a y ... y ,y L x L 2 (x L ). (1 numbers Indexed y 2 x uideInvRectPhC Example shapes illustrating various parameters from the (a) L L a Waveguide x,y 2 constant ( x 1 a L = a 1 1 1 2 2.272: ( y y 1 1 L L a 1 1 x x 2.9.12 L L NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure defined by the is position below. directly riodic Waveguide shapes characterized by rectangular perforations on either a pe­ perforations by shapes rectangular characterized Waveguide

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 h h S S W W and 7 waveG­ − 7 page 288 of 488 5 5 a constructor. constructor. 4 waveGuideRectPhCvary 4 a (Rectangle) h S 5 6 ). Indexed numbers (1 h o ). position waveguide The center S S waveGuideRectPhC W h 4 S ). defined are structures Rectangular x n o L ) 4 Crystals 4 S (b) (a) x y W 3 y ,y 3 a L n ,...a (x a 2 n ,a y 1 L a 3 n x y a W x ) and is of height ( n L Photonic and (b) waveGuideRectPhCvary y o S L 2 ... x n L x 2 2 ) 2 2 L a a y ,y 2 L (x y ... , and the waveguide width ( , and the waveguide L y 2 y 2 a or varying grid ( L x uideRectPhC Example shapes illustrating various parameters from the (a) L ) L Waveguide 2 x 1 and 1 2 a L 1 x 1 a 1 1 a 2 L 2.273: y y ). struc­ beyond the extends rectangular The box defining the waveguide L L constant ) correspond to the rectangles directly below. below. directly the rectangles to 5) correspond 1 1 x,y o = x x 2.9.13 ( o S − L L S a Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox by the is tures by the overhang ( 1 ( Waveguide shapes characterized by rectangular structures on either a periodic a either on structures rectangular by characterized shapes Waveguide

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 h S ) W W o S con­ waveG­ positioned page 289 of 488 5 5 y 5 5 a a L and x Rectangle) L waveGuideRectFlushPhCvary 4 4 h 4 4 a a S (Flush o waveGuideInvRectFlushPhCvary waveGuideRectFlushPhCvary 5) correspond to the rectangles d d S ). The box defining the waveguide − x,y ( and (b) Crystals (b) (a) x y W x y W 3 3 3 3 a a n n a a n n y y L L n n x x Photonic L L 2 2 x x ...... d d away from away top of waveguide, and the waveguide width L L 2 2 2 2 ) ) 2 2 a a a a ). Indexed numbers (1 d 2 2 ,y ,y y y h 2 2 S L L (x (x y y L L 2 2 x x uideInvRectFlushPhCvary Example shapes illustrating various parameters from the (a) structor. L L Waveguide ). defined are Rectangular structures by the n 1 1 a a 1 1 1 1 a a 1 1 2.274: y y ,...a L L 2 ). The position waveguide center is 1 1 ,a 2.9.14 x x o 1 L L S a W NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure and is of height ( below. directly flush at a distance (Figure 2.9.14) extends beyond the rectangular structures by 2.9.14) beyond the structures extends the (Figure overhang rectangular ( ( ( Waveguide shapes characterized by rectangular structures on a varying grid varying a on structures rectangular by characterized shapes Waveguide

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 290 of 488 wgdcdV1> ) (x,y Structures θ x d c c d e d Coupled e r r constructor. constructor. wg r y ) s g g w s d ,y wg L (x wg wgdcdV1 r wg c d 2.275: w L s y c d Figure Waveguide-Disc-Tip x d sides N e e Various r d r

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 wgdcdV2> ) (x,y θ page 291 of 488 c s g c d wg x r d wg w L constructor. constructor. S Y r t t wg r y Y ) S g w s t d wg 1 t ,y W L t W (x W wgdcdV2 t H c t H t d 1 s 2.276: W c 1 1 H H Figure y d x d sides

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160

W1

H1 This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

dy

D

r r dx (x,y)

g w s d g rwg

dc

c Lwg

c s

Figure 2.277: wgdcdV3 constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 292 of 488

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: tH

H D

dy

r r dx (x,y)

g w s d g rwg

dc

c Lwg

c s

Figure 2.278: wgdcdV4 constructor.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 293 of 488 wgdcdV5> ) page 294 of 488 (x,y θ 2 c d 1 c c d 2 c d s g constructor. constructor. r wg wg r r y H ) g w s t d wg ,y L wg (x wgdcdV5 w L 1 H c s t 2.279: d g c d x g d d y Figure d x d sides N r

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 wgdcdV6> ) (x,y θ page 295 of 488 2 c d 1 c H t c d s g 2 c d wg r constructor. constructor. r wg wg r y ) g w s H d wg ,y L w L (x wgdcdV6 H t 1 H 2.280: c s d c g g d d x y Figure d d x d sides N r

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 296 of 488 wgdcdV7> ) (x,y θ c c d x d g s g constructor. constructor. r wg y r ) d wg ,y s w wg c L c r d (x wg wgdcdV7 w L s x 2.281: d 2 r y d Figure sides N 2

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 3 wgdcdV8> L ) page 297 of 488 (x,y 2 L θ 3 L 1 L 2 L 1 HL s t L L constructor. constructor. W c ) 2 1 ,y W w w (x t s c c wgdcdV8 g c d g t c d L b 2.282: s L 2 / 2 f w f Figure 1 s w 4 / f H

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 . a 1) − and L (N H page 298 of 488 bentBeamArray p b ) + that could be used be could that (x,y ) θ d = 2h W L ( a H b b bentBeam w a L ) W (x,y W b b θ d a w L W a L d 3 l 1 W l H 4 Library b l d H H d suspended between two anchored electrodes. electrodes. suspended between two anchored The W 3 b l w 1 W W 2 l l c d 3 l 2 l parameter defines an extra GDS layer layer GDS extra an defines parameter 2 bent beam elements with a central rectangular structure. structure. rectangular central a with elements beam bent The l - NEMS h p N c 1 Beams W N d 4 l 3 and l Bent h h p H ) 2 Array of Array d structure. the central perforate to Bent beam of width defined by a are parameters anchor overlap and GDS layer a l x y w l Actuators MEMS 1 (x,y ) a 2.284: 2.283: (x,y 2.10.1.1 2.10.1 x y w l 2.10 Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure Bent beams form a class of linear displacement actuators. a class of actuators. linear Bent displacement beams form In this case, motion expansion of the beam. occurs via thermal

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 biMorph ering ) (x,y θ page 299 of 488 3 a l a L W 3 b w H b s L 2 l W s p H Actuator W p s s Bimorph thermal actuator. Bimorph thermal actuator. 3 H l s 4 2 l w Thermal 2.285: 1 l 1 2 1 l 4 w w w Figure 3 w Bi-Morph W 2 b w 1 a ) y g H erential erential thermal expansion of the bimorph actuator allows for in-plane 2.10.1.2 b (x, x y w NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Diff motion. Joule induced current wherein applied, is voltage a when occurs This heating causes uneven thermal expansion within the two beams of diff widths.

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 300 of 488 a . a 2 l H combDriveV1 b ) and L 1 l (x,y θ GDS layers respectively. The respectively. GDS layers b a L a L b L Elements Linear comb drive. H p b 2.286: p Drive N 2 2 l and Figure w 1 1 l w ) 2 w Combs (x,y 1 x y w 2.10.1.3 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Linear comb drive created using three GDS layers. Lower using the initialized and created are electrodes and upper base a correspondingly are GDS layers anchor overlap and

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 301 of 488 linearDriveL1 ) (x,y θ (rotor). (rotor). a b a L GDS Layer GDS Layer b b L L b p ) (anchor) and L W (x,y b a is used to calculate the number of rectangu­ of number the calculate to used is 2 ) l H N ( ). the is initialized composed The GDS structure from 1 p b w p g N p b a × 1 1 l 3 w l ( W b 2 Linear drive composed of anchored electrodes and a central rotor. rotor. and a central electrodes Linear drive composed of anchored l 1 g H l b 1 l 2.287: 1 3 l Figure x y w NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox lar rotor elements lar rotor L electrodes), and bottom (top layer Number of electrode elements elements electrode of Number

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 302 of 488 foldedSpring1A foldedSpring1B ) ) 2 (x,y (x,y 2 l p l w θ θ p w a a ) N N (a) (b a L a L 1 1 W W l l A b b 2A H H W W b b a a ) ) H H b b Springs (x,y (x,y p A Np b A N b 2 2 l l Folded 1 1 at the (a) midpoint and (b) bottom of pads. the (a) midpoint and (b) bottom at Folded springs with a single anchored pad. single anchored with a springs initiates spring meander The Folded 2.288: 2.10.1.4 x y w l x y w l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 303 of 488 foldedSpring2A foldedSpring2B ) ) (x,y (x,y θ θ 2 2 l p l w a a p w ) a L a L N N (a) (b W W b b 1 1 l l A A H H W W b b a a p A Np b A N b ) ) H H 2 2 b b l l (x,y (x,y 1 1 Folded springs with two anchored pads. two anchored springs with at meander initiates The spring Folded of pads. the (a) midpoint and (b) bottom 2.289: x y w l x y w l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 304 of 488 foldedSpring2C p w ) 2 l (x,y θ a a L N W b H W b 1 A l Folded springs with two anchored pads V2C. springs with two anchored Folded a ) p A N b H b 2 2.290: l (x,y 1 Figure x y w l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 305 of 488 foldedSpring2D p w ) 2 l (x,y θ a a L N W b H W b 1 A l Folded springs with two anchored pads V2D. springs with two anchored Folded a ) p A N b H b 2 (x,y 2.291: l 1 Figure x y w l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 306 of 488 2 l w 2 l foldedSpring2E foldedSpring2F w p ) ) p (x,y (x,y θ θ a a a L a L W W b b N H H N b b sides sides Folded springs with two anchored pads V2E and V2F. pads V2E and V2F. springs with two anchored Folded A A 1 1 l l p A Np N A N N 2 2 2.292: l l 1 1 W W b b Figure a a ) ) H H (x,y (x,y b b x y w l x y w l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 307 of 488 w foldedSpring2G p ) 2 l (x,y θ a a L W b N H b sides Folded springs with two anchored pads V2G. springs with two anchored Folded W b 1 A l a 2.293: p A N N ) 2 H l (x,y b Figure 1 x y w l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 308 of 488 w p 2 foldedSpring2H l ) (x,y θ a a L W N b H b sides Folded springs with two anchored pads V2H. springs with two anchored Folded W b p A N N 2.294: 1 A l a ) 2 l H 1 (x,y b Figure x y w l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 309 of 488 w foldedSpring2I p ) 2 l (x,y θ a r a L N sides N Folded springs with two anchored pads V2I. springs with two anchored Folded r ) p A N 2 2.295: l (x,y 1 A l a 1 Figure x y w l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 310 of 488 w p 2 foldedSpring2J l ) (x,y θ a a L r N sides N Folded springs with two anchored pads V2J. springs with two anchored Folded p A N r ) 2 l 2.296: (x,y 1 1 A l a Figure x y w l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 a L b L bolometerL ) f e d and and , L L L d e (x,y L ,L θ c d L f ,L L page 311 of 488 c 1 e g ,L L b d ,L number of points. L a c 2 L g L sides b L N parameter. Meandering parameter. a L ) (x,y shapeReso a b c d e f 2 L 2r sides N is constructed using is constructed 1 L i r L-shaped bolometer structure. structure. bolometer L-shaped 2 r r 1 2 r . the curved region defining The number of points g w g 2 i r L 2.297: 1 L 1 r 3 w g i Figure 2 r g 1 g b a 3 Bolometers w 3 c g 2 3 w d w 1 f using the below specified parameters. Rounded rectangles (layers parameters. specified below the using (layers rectangles Rounded e 2.10.2 ) are defined by a radius defined by a radius ) are f e x y w NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Below L-Shaped bolometer is constructed from GDS layers GDS layers from is constructed bolometer Below L-Shaped L L is defined by the rectangle of the rounded defined by radius curved region

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 a L b L bolometerU f e d ) L L L (x,y θ c L f L page 312 of 488 e L d L c L b L a L 2r 2 g ) 2 L a b c d e f 2 (x,y g 1 g sides 1 N L i U-shaped bolometer structure. structure. U-shaped bolometer r r r 2 2 w L 2.298: 1 L 1 w 3 1 g g i 2 Figure r g 1 g b a 3 w 3 c g 2 3 w w d 1 f e x y w NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 are evenly evenly are sides, gear sides, page 313 of 488 G constructors. constructors. N N gearT with r t h w and (b) g g h w w gear gearT ) ) gear (x,y (x,y θ r r position, radius position, N θ N ) ) ) t ) w x,y (a) (b ( (x,y (x,y G G , respectively. Number of gear elements gear of Number respectively. , h x y r w h N x y r w h N and w MEMS gear elements created using (a) MEMS gear elements created Gears 2.299: 2.10.3 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure MEMS gear elements defined by the by defined elements gear MEMS disc circumference. along the distributed width and height, height, and width

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 314 of 488 Springs circularSpring straightSpring ) ) (x,y (x,y w w θ θ a a R R Circular a a a L a L r r ) ) w w y y and i i (x, (x, r r beams beams N N Concentric hub with circular springs. hub with circular Concentric Concentric hub with straight springs. hub with straight springs. Concentric sides sides Straight RN RN 2.301: 2.300: r r With w w i i Figure Figure Hub x y w r x y w r 2.10.3.1 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 In figure 2.302, size of the surrounding electrodes depends on the number of electrodes (Ne) and the dimensionless parameter β, where 0 < β < 1. The gap between the electrodes is defined as βLes, where the electrode length segment � is defined as Les = C/Ne. C = 2πr is the circumference of the innermost � electrode, where r = R + wr /2 + g. Therefore, β defines the electrode gap as the fraction of the electrode segment. Number of sides Ns parameter is used to construct all circular objects. This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

x y w ri wr RNsides Nbeams g We Ne β ea a La θ(x,y) straightSpringE

ea g wr

f (β) R

ri w

(x,y) a We

Figure 2.302: Concentric hub with straight springs and surrounding electrodes.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 315 of 488 page 316 of 488 e W circularSpringE ) ) (β (x,y f θ a a L w a β e R a e r a ) N e g w y e i (x, r W g beams N sides Concentric hub with circular springs and surrounding electrodes. electrodes. and surrounding springs hub with circular Concentric RN r w i 2.303: Figure x y w r NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ), ), g ( sides N ( ◦ page 317 of 488 and gap and θ ) c w ( combRadialV1 ) (x,y θ a a L , comb width comb ), ◦ 2 θ ). ,w 1 a 1 θ w w ( sides Radial comb drive V1. N c w Drive combs 2.304: g N 2 g , number of sides for each comb arc segment each comb ), arc number of sides for w Comb c Figure , electrode widths electrode ), w ◦ combs θ and anchor GDS layer (L and anchor GDS layer 2 N ( r ( a θ 2 Radial w 2 r 1 1 r r ) 1 (x,y 2.10.3.2 , overlap angle overlap ), x y w θ NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Below constructors create radial comb-drives defined by an opening angle number of combs ) anchor overlap (a (

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 318 of 488 combRadialV2 ◦ θ ) (x,y θ a a L ◦ θ 1 θ w sides Radial comb drive V2. c N w g combs 2.305: 2 N w g c Figure a w θ 2 2 r r 1 2 r ) w 1 (x,y r 1 x y w NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 m l page 319 of 488 flexure2A ) (x,y θ a . by defined is layer Structural a a L L ) m w W (x,y b H b m l and GDS layer layer GDS and a m w Flexures 1 l 2 l w 1 2 Anchored Flexure V2A with two hinges supporting a proof mass. V2A with two hinges supporting a proof Flexure Anchored l a Anchored 2.306: W b x y w l Figure 2.10.4 H b NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox proof mass. proof In base all support of anchor the is cases,defined the rectangular width support anchor the by . the active layer The following constructors create accelerometer type anchored flexures with a flexures type anchored accelerometer constructors create The following Anchored Flexure V2A Flexure Anchored

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 l H c flexure2B page 320 of 488 ) (x,y θ a a L W b ) H y m b w (x, W s H s W c H m c l m l W c m w 1 Anchored Flexure V2B with two hinges supporting a proof mass. with two hinges supporting a proof V2B Flexure Anchored H l W s s 2 l 1 2.307: W b a Figure H x y w l b NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Anchored Flexure V2B Flexure Anchored

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 321 of 488 flexure2C ) (x,y w θ a a L W ) b y m w (x, H b p m l AN m l 3 l m w p 2 3 l l N 2 l Anchored Flexure V2C with a meander supporting a proof mass. with a meander supporting a proof V2C Flexure Anchored 1 l A 1 2.308: W b a x y w l Figure H b NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Anchored Flexure V2C Flexure Anchored

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 322 of 488 flexure2D ) (x,y θ a 1 a L l W b 4 6 l l ) 5 l y 1 w 4 (x, l Anchored Flexure V2D. V2D. Flexure Anchored 3 l 4 2 w 2 l w 2.309: 5 1 l 2 l l 4 3 l w Figure 3 6 w l 3 w 2 w W b 1 a x y w NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 323 of 488 flexure2E ) (x,y θ a a L W b g H 1 l ) g b b 1 w 4 l (x,y Anchored Flexure V2E. V2E. Flexure Anchored 3 3 l w 2 H l b 3 2.310: l 1 4 l w 5 W w b Figure 2 4 a w w b 3 w 2 2 l w 4 1 l 5 w x y w NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Anchored Flexure V2E Flexure Anchored

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 324 of 488 H b flexure4A ) (x,y H H 1 l b b θ a a L e b ) y m 2 w l w H (x, b m e e l b b m a a w m l 2 l 1 Anchored Flexure V4A with four hinges supporting a proof mass. hinges supporting a proof with four V4A Flexure Anchored H b 2.311: x y w l Figure NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Anchored Flexure V4A Flexure Anchored

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 g + H 2b + 2 2l = m l page 325 of 488 flexure4B ) (x,y θ a ) a L m w (x,y W b H g b m w 2 l w 1 Anchored Flexure V4B with four hinges supporting a proof mass. hinges supporting a proof with four V4B Flexure Anchored 1 l 2.312: W a b x y w l 2 2 l l Figure g H H b b NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Anchored Flexure V4B Flexure Anchored

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 g + H = 2b page 326 of 488 m l flexure4C ) (x,y θ a a L W b ) H m w (x,y g b m w 3 l 4 l 3 l 2 l 2 l Anchored Flexure V4C with four hinges supporting a proof mass. hinges supporting a proof V4C with four Flexure Anchored w 1 H 4 1 b g l l 2.313: a W b x y w l Figure NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Anchored Flexure V4C Flexure Anchored

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 327 of 488 flexure4D ) (x,y θ m l a a L W b ) H y m w (x, g b m l 1 m w w 2 l 1 l H b g 1 l a Anchored Flexure V4D with four hinges supporting a proof mass. hinges supporting a proof with four V4D Flexure Anchored 2 w W b 1 2.314: 3 2 w l Figure 2 x y w w NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Anchored Flexure V4D Flexure Anchored

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 328 of 488 flexure4E ) (x,y θ a 1 a L l W b H b ) 1 5 w l (x,y 4 l Anchored Flexure V4E. Flexure Anchored 3 2 3 l w w 3 2 l 4 l 2.315: l 1 2 l l 5 4 l Figure w 4 3 W w b w a 2 w H 1 b x y w NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Anchored Flexure V4E Flexure Anchored

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ). e H b ) variation H page 329 of 488 e b b ) variation start­ ) variation e b ). are The beams L s cantileverL cantileverL cantileverP cantileverSine ) ) variation ) over variation one period and base extent (b and base extent (b cantileverP ) ) ) ) w (x,y (x,y (x,y θ θ and of width that is a function of function a is that of width and p H , pitch (p ), pitch ) e b b L cantileverSine s (x,y ) H (c b ΔL Percent θ Amplitude e e e e b b b b H H H increments (b) Percentage ( (b) Percentage increments ΔL and (c) sinusoidal ( L p n b p n b p n b w s (a) with L L L L w s p ) e ΔL Cantilever arrays of varying length. (a) Linear ( from ing from with amplitude A. A p b L s Cantilevers ) e (x,y b L s x y w s x y wx s y w s (x,y 2.316: 2.10.5 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure soidal length variation with respect to the starting length ( the starting to with respect variation soidal length height of base a arranged on periodically (n), beam width (w the number of elements The following cantilever beam structures have a linear, percentage or sinu­

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 is ) are are ) and p is the (x,y θ n H and b . L E L page 330 of 488 ). Here, the e s e L , b e L to e to ( s L , w cantileverLSE ) (b cantileverLSE cantileverNLSE w ) ) (x,y (x,y p θ θ and the end length ) e b ) L e e L s b b s are and the base height. extent are (x,y ( H H H H b b E s e ). b and e p n b p n b b L L e e L L (a) w Cantilever arrays of varying length. (a) Linear ( ) length variation from s from ) length variation (b) nonlinear (cantileverNLSE p x y w s x y w s is positioned the at lower left corner of the base, ) e ) b L s x,y (x,y 2.317: ( Similar to figure 2.316, the cantilever variation for the below constructors constructors the below for cantilever variation the 2.316, figure Similar to NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure is bound between the starting length origin respectively. the cantilever width, start length, end lengths, and pitch, number of cantilever beams, (x,y about the origin the rotation

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 th n H b page 331 of 488 end s n cantileverCustom w ) n n s l (x,y ). Cantilever length and θ x,y ( H b end s . n l end n .. values. Space between the adjacent can- . w i l n . The base rectangle extends beyond the s n 3 and ... i w w ,...,s 2 2 3 3 l l s ,s 1 2 s 2 w w 2 2 2 s l s 1 l 1 Cantilever array constructed with custom, user defined beam dimensions. beam defined user custom, with constructed array Cantilever w 1 w 1 1 l s ) 1 2.318: y (x, x y s NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure tural origin is defined by the lower left corner at tilevers is defined by cantilever’s right edge by the amount s right edge by cantilever’s The following constructor creates cantilevers with custom parameters. parameters. custom with cantilevers Struc­ creates constructor following The widths are defined by the

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 H H b b page 332 of 488 b a l l H l t . is layer Structural ) ) a b a w cantileverSR cantileverSTri cantileverSTrap cantileverSPaddle L w w (b (d ) ) ) ) e e b b (x,y (x,y (x,y (x,y ) ) θ θ θ θ a a (x,y (x,y a a a a L L L L and GDS layer layer GDS and a a a a a e e e e b b b b H H H H H H b b b b b b b l l l H a t l l ) a b w (c w (a) w b b paddle cantilever structures stemming from a rectangularly anchored anchored rectangularly a from stemming structures cantilever paddle l l w w e (a) Rectangular, (b) rectangular with a triangular tip, (c) trapezoidal and (b) rectangular (a) Rectangular, base. (d) e b b a a ) ) a a w w w w (x,y (x,y 2.319: y y y y x x x x Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Below constructors create rectangular (with and without a triangular tip), trape­ tip), triangular a without and (with rectangular create constructors Below zoidal and paddle cantilever structures. base support anchor The rectangular width support anchor the by defined is . layer defined by the active

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Curved and straight-circular beams where the curved segment is defined by the number of vertices Nsides and radius R.

x y w R Nsides bH be a La θ(x,y) cantileverSCH This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: x y w R Nsides l bH be a La θ(x,y) cantileverSCF

R

w be

bH

a (x,y) (a)

R

w be l bH

a (x,y) (b)

Figure 2.320: (a) Curved and (b) straight-circular beams stemming from a rectangularly anchored base.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 333 of 488 2 w/ H H < b b h are are page 334 of 488 h b a l l H l t cantileverHR cantileverHTri cantileverHTrap cantileverHPaddle ) ) a b w ) ) ) ) w w (b (d h h (x,y (x,y (x,y (x,y θ θ θ θ e e b b a a a a L L L L ) ) a a a a a a (x,y (x,y e e e e b b b b H H H H H H b b b b b b h h h h b l l l H a t l l ) a b w (c w (a) w h b b h l l w w Hollow (a) rectangular, (b) rectangular with a triangular tip, (c) trape­ rectangu­ a from stemming structures cantilever paddle (d) and zoidal base. larly anchored 2. e a a / e b a b w w w w w ) ) a a 2.321: < y y y y (x,y (x,y x x x x Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Below constructors create rectangular (with and without a triangular tip), trape­ tip), triangular a without and (with rectangular create constructors Below parameter on structures. Constraints cantilever paddle and zoidal and h

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 The following two constructors create hollow curved and straight-circular beams. In both cases h < w/2

x y w R Nsides h bH be a La θ(x,y) cantileverHCH This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: x y w R Nsides l h bH be a La θ(x,y) cantileverHCF

R h w be

bH

a (x,y) (a)

R h w be l bH

a (x,y) (b)

Figure 2.322: Hollow (a) curved and (b) straight-circular beams stemming from a rect­ angularly anchored base.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 335 of 488 H b 3 l page 336 of 488 ) between the H g b cantileverPB2 cantileverPB3 ) ) (x,y (x,y 2 θ θ l g a a L L a a e e 2 l b b ) 3 parallel beams 2 parallel beams B B g l l (a) (b H H b b g g 2w 2w − − B B B B 2 l l l l g ≤ w ≤ (a) Two and (b) three parallel, interacting beams. parallel, interacting and (b) three (a) Two g 3 g l 1 l e b 2 2 l l ) 2.323: a 1 1 l (x,y l w Figure w w 1 l e b y y ) a x x (x,y NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Below constructors create connected parallel beams. connected Below create constructors The gap ( constraint: has the following electrodes

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2 l H b D ) w (b page 337 of 488 cantileverUR cantileverUCF cantileverUC 1 l e b ) ) ) ) a (x,y (x,y (x,y 2 (x,y θ θ θ l a a a L H a L a L a b B e e e l b b b r H H H ) b b b w (b 1 l e are are anchor overlap and anchor GDS layer b sides ) a a N L 2 (x,y l and sides a N r H b B B D l l B l 2 2 2 l l l U-shaped (a) rectangular, (b) circularly filleted corners and (c) circular circular (c) and corners filleted circularly (b) rectangular, (a) U-shaped cantilever structures. 1 1 1 w (a) 1 l e 2.324: b ) a x y w l x y w l x y w l (x,y NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure respectively. respectively. U-Shaped spring designs with sharp rectangular, circularly filleted and cir­ cular links. Parameters

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 H H b b 3 3 l l page 338 of 488 cantileverUCC cantileverUCP ) ) (x,y (x,y θ θ a a L L a a 2 2b 2a l l l e e b b H H b b ) 2 2 B B l l (a) (b w w B B l l 3 3 l l 2b l 2 2a below or above the top link. top below or above the l l 2 can be either positive of negative, respectively yielding a yielding respectively negative, of positive either be can 1 1 2 l l l U-shaped structure with a center (a) cantilever and (b) paddle. with a center U-shaped structure e e b b 2 2 are anchor overlap and anchor GDS layer, respectively. Central respectively. layer, GDS anchor and overlap anchor are w w 1 1 a w w L 2.325: 1 1 1 1 w w l l e e b b and ) ) a a a y y Figure (x,y (x,y x x NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox U-shaped structures with a central cantilever and a central paddle. central a and cantilever central a with structures U-shaped Parame­ ters length cantilever w cantilever of width

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Below constructors create curved cantilever structures. The rectangular base support anchor is defined by the anchor support width a and GDS layer La. Structural layer is defined by the active layer. Curved segments of the upper

and lower paddle oscillators are defined by ellipses with radii (rx1 ,ry1 ) and (rx2 ,ry2 ), respectively. This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

x y w l rx ry Nsides bH be a La θ(x,y) cantileverCE

x y w l rx1 ry1 rx2 ry2 Nsides wp lp bH be a La θ(x,y) cantileverCEPaddle

lp wp 2rx2 + w wp

ry2

rx2

l l rx rx1 w w

ry ry ry1

be be 2rx1 + w be

bH bH

a a (x, y) (a) (x,y) (b)

Figure 2.326: (a) Curved cantilever and (b) curved cantilever with a paddle.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 339 of 488 ) ) dcBeamL dcBeamP page 340 of 488 dcBeamL dcBeamP ) ) H H H H b b b b (x,y (x,y e e θ b b . L ΔL Percent θ ) increments increments and (b) Percentage ( e e (a) (b b b ΔL w w Beams H H with ΔL p p L s ) ) e e y p n b p n b b b L L s s (x, (x,y L L ). L Clamped variation variation from Doubly clamped beam arrays of varying length. (a) Linear ( s starting from length variation x y w s x y w s Doubly 2.327: 2.10.6 Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Similar to the cantilever structures in figures 2.316a and 2.316b, these are to respect with variation percentage and linear a beams with clamped doubly (s the starting length

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 . Lin­ (a) E s page 341 of 488 and L s and the end length end the and ) length variation from from variation length ) ) L s ( H H H H b b b b dcBeamLSE dcBeamNLSE E E s s e e ) ) b b (x,y (x,y dcBeamNLSE θ θ e e b b ) H H (a) (b w w p n b p n b p p ) and (b) nonlinear ( nonlinear (b) and ) L L ) ) e e e e b b L L s s L L (x,y (x,y . L dcBeamLSE to e to L Doubly clamped beam arrays of length varying between varying length of arrays beam clamped Doubly s ear ( ear x y w s x y w s 2.328: values. Similar to the cantilever arrays in figure 2.317, these are doubly clamped doubly are these 2.317, figure in arrays cantilever the to Similar ) L NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure beams with length variation bound between the starting the between bound variation length with beams (e

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 H H b b page 342 of 488 end s n dcBeamCustom w ) n 2 s n n s l (x,y θ H b end s n l n w ... n s 3 ... w 2 3 l 2 s 3 3 l s 2 w 2 w 2 2 s 2 s 2 2 l s 1 l 1 Doubly clamped array of beams constructed with custom, user defined user custom, with constructed beams of array clamped Doubly dimensions. 1 w w 1 1 l 1 s ) 2.329: (x,y x y s NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure parameters. parameters. 2.318. cantilevers in Figure custom is similar to The structure The following constructor doubly creates clamped beams with used defined

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Below constructors create rectangular and torsional doubly clamped beam structures. The rectangular base support anchor is defined by the anchor support width a and GDS layer La. Structural layer is defined by the active layer. This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: x y w l bH be a La θ(x,y) dcBeamR

x y w1 l1 w2 l2 bH be a La θ(x,y) dcBeamT

bH bH a a be be

l l2 l w w2

w1

be be

bH bH

a a (x,y) (a) (x,y) (b)

Figure 2.330: (a) Rectangular and (b) torsional doubly clamped beams.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 343 of 488 dcBeamT2 page 344 of 488 ) (x,y θ a a L W b 1 l 2 l H 2 1 w w g b 3 g l 4 2 w l Doubly clamped torsional beam. Doubly clamped torsional 3 1 w l 3 l 4 2.331: w 3 w W Figure b 2 a w ) H 1 b (x,y x y w NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Doubly clamped torsional beam. Doubly clamped torsional

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Doubly clamped array of N interacting beams with lengths ranging linearly from Ls to Le.

x y w Ls Le N bH bW a La θ(x,y) dcBeamCB This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

bW

bH w

a Ls Le (x,y)

Figure 2.332: Doubly clamped coupled beams.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 345 of 488 and and ) a 1 y ,r 1 x r page 346 of 488 ( dcBeamC ) . segments Curved (x,y θ layer H H a b b a L e e e b b 2 b y r H 2 b x l w w r + + w 2 1 x x sides 1 x 2r 2r N r 1 curved doubly clamped beams. 2 y y r r e e b b 2 ) x a a r 2.333: 1 (x,y y r 1 Figure x r l . is defined by the active layer Structural a w L y , respectively. ), respectively. x 2 y ,r 2 x NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Below constructor creates a curved doubly clamped beam structures. The base support anchor is defined by the anchor support width rectangular GDS layer of the upper and lower beams are defined by ellipses with radii (r

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 2.10.7 Interacting Arrays

The following objects each have two constructors. The bracketed constructor () creates hierarchical structures that are instantiated within the current structure. The id parameter is a string prefix all generated structures for the particular object. This parameter is a unique continuous string of characters (no spaces or tabs). To ensure compatibility with the GDSII standard, the allowed structure character names are A Z, This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: a z, 0 9, underscore (_), question mark (?) and dollar sign ($). Furthermore,− the− id parameter− should be limited to no more than 15 characters, otherwise under certain circumstances, it’s possible to overwriting existing structures. Two major benefits of this constructor are that processing is faster and smaller files are generated. Both are a consequence of GDS structural hierarchy. The second constructor is nearly identical with the exception of not having brackets, the string id parameter and the constructor suffix s. Furthermore, the constructor does not create any additional structures, hence resulting structures entirely are generated within the initialized structure. Consequently, the resulting files are bigger and take longer to generate. In both cases, structures are generated with the following 3 GDS layers: LyF - front side beam layer LyB - back side release layer LyM - front side circular metal dot layer

◦ ◦

x y N L1 W1 L2 W2 s H L He LB HB d Ns LyF LyB LyM θ(x,y) MARA ◦ ◦

LB W2

d L s s 2 H L1 ◦

HB L W1 ◦ He

(x,y)

Figure 2.334: Two rectangular arrays of N interacting beams created using MARAs and MARA constructors.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 347 of 488 , MATAs> MATA ) ) (x,y (x,y MATALWs θ θ page 348 of 488 M M MATALWs> Ly MATALW ) Ly ◦ ◦ ) B L L B (x,y Ly (x,y θ ◦ ◦ Ly F θ H H F M Ly M s Ly Ly Ly s B ) between the two arrays. arrays. ) between the two B d N Ly B Ly d N F H F B B Ly H Ly L s B and W b s e L a 1b H e d N ◦ W ) d N 2 H B L L (a) (b B ◦ ◦ b H 2b L H W B W 1 ◦ B s H L L L L e a 2b 1a e s H H W H W W ◦ 2b s s ◦ and widths (W interacting beams with identical parameters, with identical parameters, beams interacting L 2a e e L W 2a ◦ d d H H ◦ W W 2a ) ) s s 2 s H ,y ,y L W s H B B b 2 (x (x b L L 1b L W W W a B B a 1b 1a H H W LW Two interacting Two trapezoidal beam arrays with (a) identical ( ) length and width parameters. , MATA ) and (b) varying (MATAs MATALW W LW 1a 1 L W 1 L 2.335: x y N

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Array of two interacting rectangular beams.

◦ This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

x y N L1 W1 L2 W2 s e H He Ls LB HB d Ns LyF LyB LyM θ(x,y) MAR2 ◦

LB He W2

d L 2 H L1 ◦ s HB W1 H Ls e e ··· (x,y) N

Figure 2.336: Array of two interacting rectangular beams created using the MAR2s and MAR2, constructors.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 349 of 488 Array of three interacting rectangular beams.

◦ This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

x y N L1 W1 L2 W2 s e H He LB HB d Ns LyF LyB LyM θ(x,y) MAR3 ◦

LB He W2

d L 2 H L1 ◦ s s s HB W1 H e e ··· (x,y) N

Figure 2.337: Array of three interacting rectangular beams created using the MAR3s and MAR3 constructors.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 350 of 488 Rectangular top array of elements interacting with single beams. The lower single beam elements are individually addressable via electrodes of width Hw = W1 + 2W2 + 4s and height He.

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: e B B s F B M x,y ◦

x y N L1 W1 L2 W2 s e H He LB HB d Ns LyF LyB LyM θ(x,y) MARC ◦

LB He W2

d L 2 H L1 ◦ s s s HB W1 H e e ··· (x,y) N

Figure 2.338: Array of 2N rectangular beams interacting with N single beams created using the MARCs and MARCconstructors.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 351 of 488 MAT2s> ) and (x,y 1b MAT2 ) θ W M (x,y 2b θ Ly MAT2s W page 352 of 488 M B Ly Ly B F ··· Ly Ly s F Ly d N s ◦ B H H d N B B L N H s L B L e s 2a L s H W L ◦ 2 e L H ◦ s e H e 2b s e H W 2b 2a W 1 W L 2 2a L 1a W W 1b 2 s constructors. constructors. L W e d 1b 1a H W W Array of two interacting trapezoidal beams created using the using beams created trapezoidal of two interacting Array MAT2 e 1 ) 1a L H ,y W (x 1 B L 2.339: L B H x y N

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 MAT3s> ) MAT3s MAT3 (x,y ) θ 1b M (x,y page 353 of 488 W θ Ly M B 2b W Ly Ly B F Ly Ly s F ··· Ly ◦ d N s H B H d N B B L H e B H N L ◦ e H 2a ◦ W s e H 2 2b L s e H W e 2b 2a W W 2 constructors. constructors. 2a s L W 1b 2 1 L L W 1a 1b 1a W W W s and MAT3s Array of three interacting trapezoidal beams created using the trapezoidal beams interacting created of three Array 1 1a e e d L H H W s 1 L B 2.340: ) L ,y (x B H x y N

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 MATCs> ) MATC (x,y ) θ 1b M (x,y page 354 of 488 W θ Ly M B 2b W Ly Ly B F Ly Ly s F ··· Ly ◦ d N s H B H d N B B L H e B H N L ◦ e constructors. constructors. H 2a ◦ . W s e H e 2 2b L s e H W e and MATC 2b 2a W W 2 trapezoidal beams interacting with a N single beams created created beams single N a with interacting beams trapezoidal s 2a L W N and height H 2 1b 2 1 L L W + 4s 1a 1b 1a W 2b W W s Array of Array using the MATCs 1 1a e e d L H H + 2W W s 1 1a L B 2.341: ) W L ,y = (x B w H x y N

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ◦ L ◦ H page 355 of 488 ering lengths. ering ering lengths. ering MARALINEAR Δ. Δ constructors. constructors. MARALINEARs> ) + ) (x,y (x,y θ θ to Heto 3 3 e L L 2 2 L L 1 1 L L and MARALINEAR s s N N d d B B H H B B L L e e H H ◦ L ◦ L ◦ L ◦ s H s H s e W H d W W Δ ) Two interacting rectangular arrays between elements of diff of elements between arrays rectangular interacting Two Beam lengths vary linearly across the electrode base. Structures are using the MARALINEARs generated s L Δ ,y (x N B L 2.342: x y B Two interacting rectangular arrays between elements of diff of elements between arrays rectangular interacting Two H x y N L

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ◦ L ◦ H page 356 of 488 ering lengths. ering constructors. constructors. MARACURVE Δ MARACURVEs> . The non-linear ) ) Δ + (x,y (x,y e θ θ H 3 3 L ering lengths. The elec­ to to L e 2 2 L H L and MARACURVE 1 1 L L s s N d N d B B H H B B L L e e H H ◦ L ◦ L ◦ L ◦ s H s H s e W H d W W Δ ) using the MARACURVEs generated are Two interacting rectangular arrays between elements of diff of elements between arrays rectangular interacting Two Beam lengths vary non-linearly across the electrode base. Structures s L Δ ,y (x N B L 2.343: x y B Two rectangular arrays between Two elements of diff H x y N L

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 in e R to to · · s · R page 357 of 488 GuckelRing GuckelRingArray ) ) (x,y (x,y θ θ a a Structures a L a L R c c W W W W ) b r c c (x,y b L b L W W Measurement b c c Rings L sides W Strain ΔR N b RN e b ) Schemaric of a Guckel ring array structure with varying radius. structure ring array Schemaric of a Guckel y R Guckel a W s (x, Schemaric of a Guckel ring structure used for measuring residual stress. stress. measuring residual used for ring structure Schemaric of a Guckel R Stress, b 2.345: W x y r 2.344: Figure 2.10.8.1 2.10.8 x y r NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Below is a Guckel ring array structure. structure. ring array Below The is varying a radii Guckel range from of ΔR. increments Figure Guckel ring structures are used to estimate residual stress in structural layers. in structural layers. stress residual used estimate to are ring structures Guckel

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 358 of 488 diamondRing ) (x,y θ a ) a L (x,y 2 3 l w W b H 2 b 1 l w 3 l 3 w Stress measurement diamond ring. measurement Stress 2 l Ring 1 l 2.346: 1 3 l w 2 Figure w Diamond 1 W b a x y w 2.10.8.2 H b NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 fluidCell ) (x,y θ f L e L d L c L b page 359 of 488 ) and release ) and release L b f L a 4 L 3 w w ). The fluid input and a spiral delay delay spiral a and 3 r x,y g h i L ( 1 i w a b c d e f 3 2T parameter. parameter. r 1 22 w 2 L LL r 1 sides r 2 N w 3 r 2 b r Cell 1 r a h r r c 2 Fluid L ). ) with an integrated spiral delay line heater ( heater line spiral delay ) with an integrated 1 d e c L L 4 e w 3 w g ). Central red dot indicated coordinate c e a b d b L L L L Fluid cell ( Fluid cell (L trenches L 2T L ) with a suspended region defined by radius by defined region suspended a with ) f c Suspended w L 2 w 2.347: 1 2.10.9 x y w line heater ( / v2016.09.01 • http://www.nist.gov/cnst NIST • CNST Nanolithography Toolbox Figure Fluid cell ( cell Fluid the shapeReso defined by funnel shape are

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Graphical User Interface

Email: [email protected] This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

3.1 Basic Shapes

3.1.1 Pillar-Hole (Square/Hex) Array

Within in this module, polygons are created and arrayed. User defined parame­ ters consist of number of sides, size and rotation of individual elements, the GDS layer number, and lower left position, number of elements, and pitch be­ tween the arrayed structures. This module creates cells for individual elements used to create pillars and holes. Pillars are created by performing a boolean op­ eration between a box of dimensions (P itchx P itchy ) and the specified shape. The shapes are then instantiated within 4 arrayed× cells consisting of square and hexagonal arrays of both polarities. Figures 3.348(a h) show several examples of the pillar hole array. −

3.1.2 Torus

This module creates arc shapes defined by the start (θs) and end (θe) sweep angles of the individual elements. Torus is created by sweeping an arc over 2π radians, i.e. θ θ = 360degrees. Default parameters for the torus module e − s are θs = 0degrees and θe = 360degrees. Generated features are defined by the number of sides for the inner and outer arc segments, the GDS layer number, and rotation of individual shapes. Position, elements and pitch parameters define square and hexagonal array elements. Figures 3.348(i j) show 4 examples of various arcs. −

3.1.3 Grating Coupler - Bulls Eye

The module creates concentric arcs to form grating couplers or bulls-eye patterns. The arc section is defined by a sweep angle and arc width. The arrayed elements are located at the specified (x,y) position. First element is placed at a distance defined by the radius midpoint. Parameter Rings defines the number of arrayed elements instantiated at the specified pitch. Figures 3.348(k l) show several examples of grating coupler structures. −

360 ) s ( value. (3.25) (3.24) (3.26) (3.23) where where RX parameter. parameter. page 361 of 488 opCellSpacing Increment T θ 2 bθ 2π a width mθ ae √ + = = s = r r r = m . shows an example of a grating structure. An example of a )). spacing between turns spiral has a uniform Archimedes ) o p − m er three types of spirals, Archimedes, Fermat and (Fig­ Logarithmic er types three of spirals, Archimedes, Fermat Gratings Spirals We off We represents represents the table row number. The load table button allows users to 3.1.5 3.1.4 Figures Figures 3.348( and Logarithmic spiral is defined as and Logarithmic NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Fermat spiral is defined as Fermat X cell table. the populate will files text loaded from files. Top text upload Values \loadFiles\gratingTable. file is located text grating Gratings Gratings module lines generates at user-defined arrayed a predefined pitch. Each line of the table will create two cells, one for the line and the other for the grating array. Generated structure names will have a prefix ures 3.348( ures and is defined as Spirals are defined by their center position, GDS layer shape number, width, and number of turns. is specified by the resolution Shape the Choosing will many increase turns (high with resolution) a small increment GDS file generation time. Spiral structures are generated and placed into a named topGDS structure will have an instance of each array separated by the where where

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 362 of 488 ) ) ) (d (l (h) (p branch. Rectangular of arrays ) ) ) ) (o (k (g (c BasicShapes ) ) ) (j (n) (f (b torii and (j) arcs. (k) Grating coupler and (l) bulls-eye pattern. pattern. arcs. (j) and bulls-eye (l) and torii coupler Grating Spirals (k) created created using various parameters (m) (o) Archimedes, and (n) Fermat, Logarithmic. structure. (p) Grating Various examples from the Various (i) (a,e,g) holes and pillars. (b,f,h) Hexagonal of array (c) holes, (d) pillars, 3.348: ) ) (e (i (a) (m) NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 and and H AT attern P page 363 of 488 P Generator , File Align , tab, a string will indicate indicate will string a tab, Main Resources File Main Schedule initialization file. For example, po­ file. initialization For and ers a number of graphical features that that ers a number of graphical features Generator - Job Machine Initialization button within the within button Frames aultV alues.xml Frame About Values Reticle Lithography CNST def panel material parameters, jdf and sdf file names, align­ Reticle Main Default . Main Lithography Generic Ebeam CNST 3.2.3.2 3.2.3.1 3.2.2 3.2.3 3.2.1 3.2 sition size, auto-loader (ALD) position, paths, calibration parameters, alignment parameters, calibration paths, position, (ALD) auto-loader size, sition file. initialization the within If stored are that parameters few a represent marks NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox if values were loaded from the initialization file. the initialization loaded from if values were preset. are parameters The calibration and paths schemes, ment Many features within the CNST JEOL 6300 JDF-SDF module are customizable customizable are module JDF-SDF 6300 JEOL CNST the within features Many the provided using within the toolbox. values will be displayed this file is missing, hardcoded Also, the of left the to directly using the tabs located at the of at top the using panel the named tabs located DoseMatrix beam lithography tool. beam lithography tool. The module off help ensure proper pattern and alignment mark placement. it Additionally, matrices, dose base including features variation dose of variety wide a features single and multi-shot rank modulation, user defined dose table modulation, and several dose ramping functions. This node has 4 sections accessible steppers. steppers. user defined NIST label and and CNST barcode, logos. and label ASML barcode are limited remaining to options 12 are and 14 characters respectively. Two masks. contact inch 7 and inch 5 for and NIST with along label, cases, both In CNST logos are printed near the periphery of the mask. Contact labels are 22 characters. to limited stepper stepper and contact aligners. Default stepper option will print reticle marks, This module generates job and schedule files for the CNST JEOL 6300 electron 6300 electron job the and CNST This schedule JEOL module files for generates This module creates reticle frames for the CNST Nanofab ASML-PAS5500 i-line the CNST frames Nanofab for ASML-PAS5500 reticle This module creates Within the Within this module, reticle marks, label and barcode are generated for several for generated are marks, label and barcode Within this module, reticle

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 and P ), global AddFile page 364 of 488 section is only is section field within the within field GLMP ( P Align Alignment initialization file. initialization pa­ shows 3.349 Figure ) alignment marks. alignment ) The state. state. under 3.350 shows parameters Figure ) alignment marks. in The wafer positions are 4 M OFF panel. and , CHMARK 3 aultV alues.xml ,M 2 Main panel showing various available options under Main tab. Main panel showing various available ,M 1 M Pattern Align ) and chip ( chip and ) 3.349: variables are editable. Most of these parameters are predefined CNST def JEOL 6300 panel. JEOL RM tab. the alignment global option marks, activates while the The left-most Figure 3.2.3.4 3.2.3.3 GLMQRS ( ) and local ( used if global and local marks are selected under the under selected are marks local and global if used specified, arrays are generated from those pattern files and stored into a vector vector a into stored and files pattern those from generated are arrays specified, a add created. are definition files schedule and job when To accessed is array file name then click the type in a pattern the database, file to pattern button. A string label will appear and indicate that the entered .v30 file was added to the pattern file list. More files are added by repeating the previous will appear in the pull down selection box. names process. pattern Entered v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Q in coordinates units of micrometers. Under mark definition, mark width and the the global for specified in length micrometers values are Q Main local (chip) alignment. option controls right-most by The default options are by the inactive as indicated the Align CALP Main under the rameters This section defines within pattern arrays the job definition file. files Pattern The alignment panel allows users to define position and size of global ( global of size and position define to users allows panel alignment The within the within

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 tab. Delete panel. page 365 of 488 button. button. attern DoseMethod button overwrites overwrites button section, type in the start­ the in type section, GenerateArray UpdateArray ARRAY is used to determine a proper base dose for base dose for a proper determine is used to BaseDose is the default method for executing a on dose the matrix executing is method the for default Matrix Dose Alignment panel showing various alignment mark definitions under Align tab. DoseMatrix 3.350: 3.2.3.5 To view the arrays as well as the job and schedule files at any point during point any at files schedule and job the as well as arrays the view To Select a pattern, then type underneath the underneath type then pattern, a Select Following parameter modifications, clicking the clicking modifications, parameter Following NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Dose matrix module is a means to create complex dose and base dose ma­ trices. The initiates by procedure choosing a pattern file name, the position, number of elements and pitch between the elements of the resulting dose array (Figure 3.353). There are various options under the Standard chosen V30 file. Method feature is similar to the JEOL Array Check program. Following any alteration of any alteration Check program. Array Following is similar to the JEOL feature the elements, generated array clicking the Show SDF JDF button will update check panel. the job and schedule file panel as well as the array the previous entry. under the P 3.351 shows parameters Figure entry. the previous click the Show SDF JDF button. creation, the array A new frame will pop-up with files. sdf and jdf the of contents the containing area will frame Another text a 3.352). (Figure placed pop-up and are will show patterns graphically where The directly to the left of the Generates Arrays field. Repeat the process, i.e. field. process, the Arrays choose Repeat Generates the of left the to directly el­ between pitch elements, array of number position, pattern then name, file the click and modulation dose a enter ements, button to the right of the selection box within Generates Arrays field allows users to delete previously generated arrays stored within the selection box. ing coordinates of the first element of the array, then number of elements and the first of element of the array, ing coordinates pattern the for modulation dose the in type then elements, between pitch the file. a single element both leave Element values For at 1. Click the Generate Figure Array button. The value of the generated array will appear in a selection box selection a in appear will button. array Array generated the of value The Also, generated arrays can be modified by choosing an array from the saved list. saved the from array an choosing by modified be can arrays generated Also,

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 366 of 488 ). and Q Display showing user generated pattern arrays and global mark positions mark global and arrays pattern generated user showing Display Pattern panel showing user-defined pattern files, array definitions, and definitions, array files, pattern user-defined showing panel Pattern arrays. generated (P 3.352: 3.351: Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 and text text option selection Start Start able page 367 of 488 with a value a with NonlinearSE parameter) is parameter) text text fields are Ramp value of 100 for for 100 of value value of 100 for DoseT and Linear option. Depending on Start Start RESIST ercentage P ramp option and a value of of value a and option ramp ercent LinearSE selection. P and tabbed panel. Within the Dose or ype T value derived from the ercent P able Linear Linear DoseT RESIST jeol6300DoseTable directory. When using the table directory. jeol6300DoseTable options use respective right-most text-field values text-field right-most options use respective \ to increment the dose array from the starting value starting the from array dose the increment to text field. For instance, choosing instance, field. text For text field in conjunction with a with conjunction in field text ercent Start P loadFiles \ ercentage ercentage ect corrected pattern. pattern. ect corrected base dose Here ( and P parameter, with parameter, the P Dose matrix panel showing various user defined pattern, array and dose array panel showing Dose various matrix user defined pattern, parameters. uses values from the and represents the default value of the of value the default represents ype Linear T 3.353: text field values to determine the percentage dose modulation. dose modulation. the percentage determine field values to text OFFSET Dose ect corrected output file with extension JDI. An example dose matrix JDI file JDI. An example dose matrix with extension output file ect corrected Linear field within this tabbed panel. There are 4 options within the NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox entered or uploaded from a text file (Figure 3.354). (Figure file text a the assumes method The from uploaded or entered proximity beamer layout the in seen as format, table modulation dose standard eff in the is located method, ramp can either be the default used to modify the the individual table. values modulation from The sdf and jdf Figure under are two ramp methods that utilize number of arrayed elements, the of arrayed utilize number two ramp that methods are End of 10 within the Linear text field in conjunction with a 110, 100, be will values dose modulation percentage elements, 4 of array an an of array 8 modulation dose elements,percentage values will be 100, 110, modified within the schedule file, the pitch in the two directions will represent represent will directions two the in pitch the file, schedule the within modified the of the by represented a proximity eff a proximity menu. 121, 133.1, 146.41, 161.05, 177.16 and 194.87. Table tabbed panel, values for the shot rank and modulation are either manually either are modulation and rank shot the for values panel, tabbed Table 120 and 130. Analogously, with an active an with 130. and 120 Analogously, the within 10 which method is chosen, the respective

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ) Q (or P Calculate page 368 of 488 or click the ) Enter set f of ,Y set f of (X Estimation text text field, calculated values will appear. These Offset OFFSET lens electron beam lithography tools. Calculation is Time th Clock 5 OFFSET and Write Max Alignment th Dose matrix panel showing various user defined pattern, array and dose array panel showing Dose various matrix user defined pattern, parameters. 4 EBL EBL EBL 3.354: 3.2.6 3.2.5 3.2.4 time for the type. and tool writing dose, shot pitch based on beam current, micrometers in area die (written area die current, beam on based is Calculation writing tools), fracturing and CAD various -from obtained squared easily value a v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox for for the wafer center. Once the marks are located in the scanning electron type in the stage coordi­ (SEM) of either of the CNST ebeam tools, microscope of nates this observed mark position, then press button. Within the (.sdf file schedule the within placed are values these alignment. Furthermore, file) as: Figure the of positions mark designed the in positions. wafer observed Type with microme­ marks. coordinates (or wafer) This value is specified in material units. ter values those in type and position center holder substrate the Check files could be shown or generated using the respective buttons at the bottom bottom the at buttons respective the using generated or shown be could files of the panel. values should be used within the SETWFR routine to manually check global This module calculates the and This maximum the module writing minimum frequency calculates shot This module calculates an estimated electron beam lithography write time. sets between the designed and and designed the between offsets the calculates module alignment JEOL The

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 369 of 488 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox depends upon distance traveled and the EBL tool. tool. EBL the and calculation traveled estimated The distance upon depends time. calibration account tool into does not take dose, fields per die and the number of die. at Stage time 1sec­ is ’estimated’ motion stage since move. stage per ond (’estimate’) correct quite not is This

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 page 370 of 488 labels example \ loadFiles \ ers a more efficient function . definitions follow Functional x will generate number arrays, whereas whereas arrays, number generate will Resources within CNST scripting (see Section 2.2.6 (Figure 2.45a,b) and the respective custom, custom, respective the and 2.45a,b) (Figure Generator Column − CAD Column Row − shapeReso and Function Row GDS Maker and using the lower case variable To class. Scripting section 2.7.4 off Outer ) x ( f Outer Advanced Arbitrary Text Label Math Functions constructed with a large number of points could take a consider- a could take points of number large a with constructed Functions Within the label maker module, first, between the number of elements, pitch Within the label maker ers more flexibility with many more features not implemented within its GUI not implemented features flexibility with many more ers more 3.3.3 3.3.2 3.3.1 3.3 and Figure 2.16). The four label types are described within the label maker scripting command guide. reference This module does not implement auto­ the Java by a mathematical equation. User will input a lower and increment and upper line width bound, for the an function. Within this module, users define a function represented. This section also describes how functions are generator. v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox matic letter labeling. letter matic automatically illustrates further 2.6.3 section Scripting generated 2.45c,d). labels (Figure user-defined shape resolution. the rendered controls parameter Example of resolution Font and 2.2.6 Figure in respectively shown are text generated and resolution font 2.43. Label Maker module is used to generate chip labels into a GDS file that could that file GDS a into labels chip generate to used is module Maker Label options. type pattern. label 4 defined user a into are instanced be then There to data tab allowing delimited versatile imported more the variants custom are included label in files test are be cast as labels. Two directory. The files were generated in Excel and exported as plain text tab delimited. elements, font specifications and label type are specified. resolution is Font shapes. font construct that curves Bezier the of resolution rendering This the is defined parameter as Many of the modules in the advanced CAD resources are implemented within implemented are resources CAD advanced the in modules the of Many within figures and sections to scripting. CNST refer modules many Therefore, the scripting command chapter. reference Users should note that scripting off counterpart. Text to GDS module renders strings composed of vector fonts to GDS shapes. GDS to fonts vector of composed strings renders module GDS to Text The automated automated The Arbitrary Function Generator module will create a GDS file with module a will shape Generator create defined Arbitrary Function

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 . 255. 0nm, ,... . erent erent 2 (3.27) , ,... 1 632 , 2 , = 1 , λ page 371 of 488 = 0 n . Consequently, zones 0. Consequently, where where (b) n sides per zone, per sides 88 is the focal distance measured measured distance is the focal 2 f λ 4 2 zones, n 10 + module parameter. shows 3.355 Figure parameter. module nλf

Sides = n r Plate would respectively have GDS layer numbers 0 GDS layer have would respectively is the wavelength and is the wavelength 001m. (a) Single layer zone plate. (b) Enabling the diff (a) . λ ,... is rendered to GDS layer number number layer GDS to rendered is = 0 Zone n 258 f r ,r GDS output of a zone plate with plate zone a of output GDS and number. GDS layer a respective casts each zone to option layers 257 ,r Binary 256 is an integer, is an integer, r 3.355: n 3.3.4 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure defined GDS layer, or cast into zone-respective GDS layers. or cast GDS into layers. zone-respective Thisdefined implies GDS layer, that radius a at zone Due to GDS 8-bit restrictions, standard layer zone numbers above the upper number layer GDS to back counter the reset (255) bound radii at from the center of the zone plate. the double with plate. zone the constructed of is shape center Each the from the element central whereas and sides exterior) (interior number of prescribed user single a of composed plates. either zone binary are of Zones examples two In a binary zone plate, zones switch from opaque to transparent at radii, at transparent opaque to from zones switch In a binary zone plate, data to file. Also, casting a curved function defined by a large width could result result could width large a by defined function curved file. a to casting Also, data interiors. in a shape with looped able amount of GDS time file. to cast the resulting above Label indicator the module buttons will display the path and file name once finished it’s writing (circle) vertices are equal to the equal to are vertices (circle) where where

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 y ) is ) and and x idth W page 372 of 488 Iteration (b) s h d along the corresponding corresponding the along y S y S and x checkbox, each shape will be randomly S ), number of sides and GDS layer number parameters. parameters. number ), number of sides and GDS layer Crystals Polygons x ). between defined by the separation are Hexagonal arrays RandomRotation (a) S h ), and the array size array the and ), s Photonic crystal example of a rendered GDS structure labeled with mod­ GDS structure crystal Photonic example of a rendered ule parameters. photonicCrystalTable directory. separated, tab is value table Each directory. photonicCrystalTable \ Random Photonic parameters. If the randomly generated coordinate violates the minimum the violates coordinate generated randomly the parameters. If 3.356: By clicking the 3.3.6 3.3.5 loadFiles Random Polygons module will randomly place polygons into a user defined outer the between separation minimum the defines area. parameter Separation and radius outer the by defined objects. the of are perimeter radial Polygons number of sides. The polygon placement area is defined by the Length separation distance, the module will keep generating random coordinates parameter the by (defined failures of number maximum the until reached. is sides many with cell. top the within features for option rotated the Enabling v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure each table starts row on a new line. 3.356 Figure shows various parameters module. crystal the photonic from Photonic crystals module creates two hexagonal arrays of circles. circles. of are arrays hexagonal two Circles creates module crystals Photonic (d defined by a diameter neighbor ( nearest ( arrays two the data or populated manually either are values of 3.356). (Figure directions Table file. a text is loaded from is included in the table file crystal photonic Example \ Within the array circular elements are defined by the spacing proximity to the to defined by the spacing proximity are elements circular Within the array

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 use and x start SE value. page 373 of 488 randomPoly­ Length pairs tab or space non-linear y Amplitude and and will use the x SE coordinates coordinates where objects will parameter. Levers are character­ are Levers parameter. y Linear Sinusoid and type variation, the generator will uti­ x Array Elements and random randomly produces rotation values and respectively vary values the and respectively cantilever = 3 end ers identical elements (section 2.10.5) as well as well as 2.10.5) (section elements identical ers Percentage Sides or Arrays coordinate coordinate pairs and cast them to lattice sites. This Length value and will increment the length using the linear or linear the using length the increment will and value y Rectangular and and Linear start x start randomRectangularArray directory. To use the module, first choose To directory. randomRectangularArray period with an amplitude defined by the sin \ Cantilever Random Length Length The MEMS-NEMS library off library MEMS-NEMS The By choosing This module allows users to load This shape could be generated using the scripting constructor constructor scripting the using generated be could shape This 3.3.8 3.3.7 directions). directions). as well as the probability or rectangular) The shape size (square loadFiles be drawn. The ASCII file should be arranged with separated, separated, with one pair per line. The first line of the data file is defined as a header and is consequently skipped. An example file is located under the , as described in section 2.7.11. gons, as described in section module was suggested by a researcher and used for generating disordered NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox percentage parameters respectively. Type Type respectively. parameters percentage the lengths linearly and non-linearly. Type over a 2π can- illustrates 2.316 Figure functionality. enhanced with shapes other many resulting structures is defined by the by defined is structures resulting ized by a width, and pitch variable length values. to connected Cantilevers are base of a user specified height. a rectangular The width of the base rectangle and the base extent. is defined by the number of elements, pitch the lize results label field. label field. results non­ (linearly, a GDS file with a modulated module will create Cantilever Arrays structures. array cantilever etc) of Number sinusoidally, percentage, linearly, the size of the square or rectangular object, then check the Load File check box, check File Load the check then object, rectangular or square the of size the file, the on click file, text the with directory a to navigate , File Load click then directly field label the in displayed be will filename chosen The OK. click then file. GDS a into shapes the cast to GDS when Create click Then below. NOTE: loading from file, this module ignores the number of elements field, and will the within etc, shapes, skipped shapes, drawn of number total the display not metamaterial structures. structures. metamaterial \ Random rectangular array module will randomly place squares or rectangles rectangles or squares place randomly will module array rectangular Random (in pitch and elements of number the by specified area user-defined a into y that a lattice point is occupied are user-defined parameters. Furthermore, user can load oriented triangles within the array (see Figure 2.78 in section 2.7.11). 2.78 in section (see Figure within the array triangles oriented not useful, however, not with useful, however, value as the initial length value and will vary the cantilever lengths sinusoidally lengths cantilever the vary will and value length initial the as value

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 0)). The , (0 page 374 of 488 . Within the module, top of the GDS file. ) +y GDS To erent value, they will be both cast to GDS layer 1, GDS layer cast to be both they will value, erent Image Grayscale Fractals vernierTable directory. table value Each each is table tab separated, directory. vernierTable \ Verniers erent GDS layer 1 pixels. To have pixels merged, use a graphic editing a use merged, pixels have pixels. 1 GDS layer To erent If the BW option is checked, then all color values other than white (pixel Resulting data is stored into a GDS structure named a into GDS structure is data stored Resulting 3.3.11 3.3.10 3.3.9 loadFiles merged together in order to minimize the resulting GDS file size. minimize to the resulting in together order merged that Also note origin. the around hand left centered lower not The is cell top the within data corner of the image is mapped to the origin of the GDS file (point image is mapped within the first quadrant (+x, diff of are 2 pixels if however, 2 diff as then change the mode package to cast software image to black and BMP, white to RGB scale. 8-bit gray 3.357 Figure shows an image and GDS the resulting v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Grayscale Grayscale Image to GDS module will convert a 8-bit gray scale BMP (PNG or be mapped to numbers corresponding GDS 0 (GDS layer to layers 255). This In this case, the beam lithography. electron grayscale mapping is important for print to curve contrast resist a with conjunction in used be can file generated [104]. dimensional structures three data is read and converted line by line. Adjacent pixels of same value are \ command scripting the in shown is example line. new a on starts row Vernier 2.94. section 2.8.5 and figure reference structure GDS a fractals. into cross and stored is iteration saltire fractal Each section 2.7.3 defined in the scripting examples command are reference Fractal tilevers with linear, percentage, and sinusoidal length modulation. modulation. length sinusoidal and 2.317 percentage, Figure linear, with tilevers shows examples of a linear and exponential length using variation start and end length values. defined parameters consist of GDS layer numbers for layer A and B, vernier vernier layers, two the for labels text lines, tick vernier of number resolution, line width, length and pitch. of Table values are either manually populated file. a text is or loaded data from Example vernier table file is included in the of the final structure is defined by the module length and width parameters. value 255) will be cast to GDS layer 1. merged, GDS layer value 255) will are be cast to pixels In this case, adjacent JPG) and cast it to a GDS file where each level of gray (values 0 to 255) will This module contains Sierpinski triangle and carpet, curved tree, and the Vicsek the and tree, curved carpet, and triangle Sierpinski contains module This This module generates verniers between two specified alignment layers. verniers between two specified alignment layers. This module generates User (see also Figure 2.58). (see also Figure with a prefix cell name concatenated with the iteration number. The extent

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 files. This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: (a) (b) (c)

Figure 3.357: Grayscale to GDS. (a) 8-bit gray scale image (in this case black and white). The resulting GDS file (b) without and (c) with the BW option enabled.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 375 of 488 Programming Reference

Email: [email protected] This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: 4.1 Programming Examples

The nanolithography toolbox distribution includes a NetBeans 8.0.2 project entitled CNSTprogrammingExamples. The src directory contains a package with source .java example files. These files could be used with any integrated development environment (IDE) in conjunction with Java 8. Furthermore the nanolithography toolbox jar file must be included within the project compile- time libraries. The following examples illustrate access to existing scripting methods through programming. Furthermore, the project directory includes the output GDS example files. The following is a procedure for setting up the included Netbeans example project: 1. Start NetBeans -> File -> Open Project ... -> navigate to EXAMPLES Programming and open the CNSTprogrammingExamples project \ \ 2. To fix the broken library link, right click on the project and choose Properties, click Libraries and remove the red-error highlighted compile-time library. Click the "Add JAR/Folder" button, then choose the CNST Nanolithography Toolbox JAR file and click OK.

4.1.1 Template

1 package cnstprogrammingexamples ; 2 3 import CNST . S c r i p t i n g ; 4 import JGDS2 . � ; 5 import java . i o . F i l e ; 6 7 /� � 8 � 9 � @author rob 10 �/ 11 p u b l i c class Example01Template { 12 13 p u b l i c s t a t i c void main ( String [ ] args ) { 14 Lib l i b = new Lib ( ) ; 15 16 // I n s e r t Code Here 17 18 F i l e f = l i b . GDSOut ( "Example01Template . gds" ) ;

376 ; ; ) ; page 377 of 488 Math . cos ( i � ; ), or void are in increment) ) ) � ; { ) i ++) ; { Math . sin ( i { � " I n s t a n t i a t e d E l l i p s e s " ArrayList + f . getAbsolutePath) ( ) " " e l l i p s e S i n g l e " ; to Struct ( // un i t s i n micrometers Ref ( e l l i p s e , c i r c l e R a d i u s ; 100 ; Math . P I / numberOfInstances 20 new = Struct ( � Saved new here numberOfInstances = = ; " 2 Access < new = i main ( String [ ] args ) = ; Lib ( ) ; 0 methods ; = new increment ) , c i r c l e R a d i u s i Method � = c i r c l e R a d i u s increment ; cl as s ascl i n t Example02ScriptingMethodAccess � s c r i p t i n g method ( manyEllipses . add ( numberOfInstances ; Script e l l i p s e . add ( S c r i p t i n g . c r e a t e E l l i p s e ( 0 , 0 , 0.2 , 0.5 , 44 , 50 , i n t } f or Lib l i b Struct manyEllipses Struct e l l i p s e 4) ) // create a GDS // s t r u c i t n s t a to n t i a store t e e many l l i i n p s s t e a s n t i a t along e d a e l l c i i p r s c e u s l a r path // // create a GDS // s t r u c add t a S GArea i n g l of e E l l an i p s e e l l i p s e from the nanolithography toolbox double double cnstprogrammingexamples System . out . p r i n t l n System( l t . out n i . r p I n s e r t r e s n I java . i o . F i l e JGDS2 . JGDS2 CNST . S c r i p t i n g ) and of vector array these objects ( } p u b l i c s t a t i c void // The above example is a files for java accessing template the CNST nano­ @author rob 4.1.2 / � � � � � GArea } p u b l i c class / import import import package NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox methods within the toolbox. These methods either return a GDS Area object file input-output access. access. method. main a contains class example The input-output file 14 Line Line 18 sets the GDS output file. initializes the GDS library. The print statement file. lithography toolbox. Lines 3 and 4 import all the objects needed to access scripting methods and create the GDS file. Line 5 import statement allows The programming reference provides method headers for the available scripting available the for headers method provides reference programming The ( (line 19) is optional but helpful since it displays the full path of the saved GDS saved the of path full the displays it since helpful but optional is 19) (line which case the the areas are placed within a particular GDS structure. within a particular GDS structure. placed are which case the the areas 8 9 1 2 3 4 5 6 7 23 24 25 26 27 28 29 16 17 18 19 20 21 22 10 11 12 13 14 15 20 21 22 23 24 19

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 object. loop the ; page 378 of 488 radiusX , angle ) constructor constructor mag, for (line 17) with a ellipse Ref double double double gdsLayer ) ; . Using a ) y , ellipse i n t mirror ) mirror , mirror , ; double i n t i n t i n t 0) ) THETA , x , + f . getAbsolutePath) ( ) ; y ) y , y , y , manyEllipses " 0 , 0 l i b r a r y r a r b i l 0) ) . Please consult the JGDS user manual user JGDS the consult Please . to double double 0 , 0 double double double double GDS GDS to . of Line 19 an ellipse the adds into a GDS area Saved x , x , x , x , MIRROR the existing class must implement an interface the existing class must implement an interface " Example02Template" gds. " " to to Ref numSides , double double double double i n t Ref ( e l l i p s e e s p , i Refl l ( e RefmanyEllipses( , mirror s t r u c t u r e s e r u t c u r t s l i b . GDSOut ( b i GDSOut l . new new = int ellipseSingle GArea c r e a t e E l l i p s e ( f Programming example illustrating instantiation of objects created using of objects created instantiation example illustrating Programming the nanolithography scripting methods. radiusY , angle) adding l i b i ( addl . b i ( addl . F i l e l i F object is instantiated along a circular path using the using path circular a along instantiated is object // // System . out . p r i n t l n System( l t . out n i . r p 4.358: , then set set then , double double } constructors constructors To use mirroring within use mirroring To Line 22 creates a GDS structure object a GDS structure Line 22 creates The above example creates a GDS structure object a GDS structure The above example creates } p u b l i c s t a t i c Ref ( Struct structure , Ref ( Struct structureRef ( , Struct structure , Ref ( Struct structure , Figure v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Const [76]. instantiation on GDS structure information examples and more for raphy toolbox scripting methods using the following method header (Reference raphy scripting toolbox method methods header using (Reference the following methods) Methods section shows all the available ellipse Lines 31 and 32 add the two to the structures are The GDS following library. Ref structure object. structure nanolithog­ by one of the the ellipse available Here, is created structure name structure (line line 27). 4.358 shows the Figure output of the instantiated 30 31 32 33 34 35 36 37

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 SUB­ GDS ) occurs. and (e) operations. operations. page 379 of 488 XOR circle2 booleanCCW , (d) )(e (d SUBTRACT AND area object occurs in area line , (c) , and , OR Transformations temp XOR operation with operation , OR AND into a into Affine ) (c and ; circle1 ) (b Operations TRACT. Rendered Rendered GDS output shape of the (a) original two circles and various (b) between boolean the areas operations Rendered GDS output shape resulting from a subtraction between a circle circle a between subtraction a from resulting shape output GDS Rendered object. wave shape vertices. and a circle The black dots represent Boolean cnstprogrammingexamples 4.360: 4.359: (a) Directly following, in line 35 following, a boolean Directly Lines 25-30 a create GDS structure and two circular areas, then add the 4.1.3 package NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure In a similar fashion, the areas could be scaled, rotated and sheared. Lines structures. shows the output of the rendered 4.360 Figure Figure to the structure. areas A copy of 34. transformations. affine Java in built using translation area GDS a shows 37 Line structure. structure. GDS shapes. 4.359 shows the rendered Figure boolean operation between GDS areas. areas. GDS between struc­ GDS a operation boolean generates first code The wave and a circle boolean substraction between a circle store (line 18) to ture object. Lines 19 and 20 show instantiation of GDS areas using the available methods. the nanolithography toolbox from wave the circle Line 21 subtracts the in object. stored is circle (circle) result the Subsequently 40 to 59 repeat the process for a boolean a for process the repeat 59 to 40 The following example illustrates ne affi transformations of GDS areas and 1 2

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 3 import CNST . S c r i p t i n g ; 4 import JGDS2 . � ; 5 import java .awt.geom. AffineTransform ; 6 import java . i o . F i l e ; 7 8 /� � 9 � 10 � @author rob 11 �/

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: 12 p u b l i c class Example03BooleanOperationsTransformations { 13 14 p u b l i c s t a t i c void main ( String [ ] args ) { 15 Lib l i b = new Lib ( ) ; 16 // 17 // Subtraction of 2 GAreas c i r c l e circleWave − − 18 Struct booleanCCW = new Struct ( "BooleanCircleCircleWave" ) ; 19 GArea c i r c l e = S c r i p t i n g . c r e a t e E l l i p s e (0 , 0 , 14 , 14 , 44 , 0 , 4) ; 20 GArea circWave = S c r i p t i n g . createCircleWave ( 0 , 0 , 10 , 10 , 0.5 , 128 , 0 , 4) ; 21 circle .subtract(circWave) ; 22 booleanCCW . add ( c i r c l e ) ; 23 24 // boolean examples between 2 c i r c l e s 25 Struct booleanCircles = new Struct ( " BooleanCircles " ) ; 26 GArea c i r c l e 1 = S c r i p t i n g . c r e a t e E l l i p s e (0 , 0 , 1 , 1 , 44 , 0 , 4) ; 27 GArea c i r c l e 2 = S c r i p t i n g . c r e a t e E l l i p s e (1 , 1 , 1 , 1 , 44 , 0 , 4) ; 28 // add both c i r c l e s to the s t r u c t 29 booleanCircles .add(circle1) ; 30 booleanCircles . add ( c i r c l e 2 ) ; 31 32 // OR Example 33 // create a temporary copy of c i r c l e 1 34 GArea temp = new GArea ( c i r c l e 1 ) ; 35 temp . or ( c i r c l e 2 ) ; 36 // a f f i n e transform t r a n s l a t i o n 4um i n x − 37 temp.transform(AffineTransform. getTranslateInstance(4, 0)) ; 38 booleanCircles .add(temp) ; 39 40 // AND Example 41 temp = new GArea ( c i r c l e 1 ) ; 42 temp . and ( c i r c l e 2 ) ; 43 // a f f i n e transform t r a n s l a t i o n 8um i n x − 44 temp.transform(AffineTransform. getTranslateInstance(8, 0)) ; 45 booleanCircles . add ( temp ) ; 46 47 // XOR Example 48 temp = new GArea ( c i r c l e 1 ) ; 49 temp . xor ( c i r c l e 2 ) ; 50 // a f f i n e transform t r a n s l a t i o n 12um i n x − 51 temp.transform(AffineTransform. getTranslateInstance(12, 0)) ; 52 booleanCircles .add(temp) ; 53 54 // SUBTRACT Example 55 temp = new GArea ( c i r c l e 1 ) ; 56 temp.subtract(circle2) ; 57 // a f f i n e transform t r a n s l a t i o n 16um i n x − 58 temp.transform(AffineTransform. getTranslateInstance(16, 0)) ;

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 380 of 488 top i n t method is ; i n t page 381 of 488 ). Within the gdsLayer , rY , x,y ( i n t (line 16). struc­ This double top numElementsX , THETA , createSqrHoleC ; rX , i n t 0) ) ; double 0 , 0 + f . getAbsolutePath) ( ) double 0) ) y , " pitchY , gdsLayer ) y , 0 , 0 to i n t ; double ; double double Saved x , " Example03BooleanOperationsTransformations" . " x , THETA , pitchX , double ; RefbooleanCCW( , Ref( boole anCircl es , double ; createSqrHoleC(String uniqueStructName , Struct Arrays double ; l i b . GDSOut ( b i GDSOut l . ) new new = loop (lines 31-40) iterates through diameters and separations and separations diameters through loop (lines 31-40) iterates double ; GArea createTextGdsC ( String t e x t S t r i n g , String fontName , f � gds" fontSize , shapeReso) for Labeled l i b i ( addl . b i ( addl . F i l e l i F bool e an C i rc lesrc i temp) bool ( addC an. e // cnstprogrammingexamples System . out . p r i n t l n System( l t . out n i . r p java . i o . F i l e JGDS2 . JGDS2 CNST . S c r i p t i n g currentStruct , double double } numSides , numElementsY , (line 36). A string label is defined using and values the pitch (line diameter Directly following, a string defining the GDS structure name of individual a string defining the GDS structure following, Directly The program starts by initializing a GDS structure a GDS structure starts by initializing The program @author rob 4.1.4 / � � � � � } p u b l i c s t a t i c p u b l i c s t a t i c void / import import import package NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox extent extent and pitch, are calculated (line 35). Then within the GDS patterns structure the hole and array instantiate used to create top 37) and containing a label the is GDS text added area the to GDS structure ture will be used to hold instantiated arrays of various circular apertures. apertures. of various circular arrays will be hold Lines used instantiated to ture elements. array in line between circular is calculated In the inner loop, a pitch 33. 34). (line array established the is on based elements, arrays array of Number to to create an array of circular objects, centered at position method text using the centered created are each array loop, labels for toolbox scripting methods. For instance, general areas could be instantiated instantiated be could areas general instance, methods. scripting toolbox For using any of the available array methods. The following example uses a for with and separations various diameters through iterate loop to Labeled arrays could be created in a variety of ways using in a the variety nanolithography could of ways be created Labeled arrays 18-29 initialize a variety of variables used to create the arrayed structures. The nested (line 38). GDS output. 4.361 shows the rendered Figure 4 5 6 7 8 9 1 2 3 10 67 60 61 62 63 64 65 66 59

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 � − ) ( ) ( i n t ; ; , fontSize i n t page 382 of 488 + ( ; } + ( ; ; ) { " l a b e l O f f s e t = " A r i a l " p ; "um_p" arrayPitch , j − ; ; j ++) } � { ; "um i ++) ; { 0.25 , 0.5 , 1 , 2 arrayPitch { 1 , 2 , 3 , 4 ; ; � [ ] { + f . getAbsolutePath ( ) ) [ ] ; ) diameter [ i ] + ) "nm" "nm" { ; i n t ) ( arrayExtent / p i t c h ) ) diameter [ i ] + ; ; ; ; " top " separation . length i n t + ( ; i n t ( new double < ; 200 750 j 1000) + 1000) + "Example04LabeledArrays .gds" diameter . length 2000 new double = = ; " Saved to " 0.1 + ( = = arrayPitch , j � � ; 170 < = = ; " Struct ( Programming example of labeled arrays. example of labeled arrays. Programming 0 = � i ; ( diameter [ i ] + separation [ j ] ) = = ; main ( String [ ] args ) 44 4 = ; Lib ( ) " d = j ; 0 new = = , i p i t c h p i t c h arrayPitch , diameter [ i ] / 2 , diameter [ i ] / 2 , arrayExtent / 2 , 0 , gdsLayer , shapeReso ) ) 0 , 0 gdsLayer) ; numSides , pitch , pitch , numElements , numElements , " c i r c l_d e " Ref ( top , 0 , 0) ) = = = 4.361: new = l i b . GDSOut ( i i n t l b l S c r i p t i n g . createSqrHoleC ( s , top , i ( p i t c h top.add(Scripting .createTextGdsC(lbl , s numElements new = l a b e l O f f s e t p i t c h fontSize arrayPitch arrayExtent shapeReso = [ ] [ diameter [ ] separation i n t Example04LabeledArrays Figure } ( f o r gdsLayer numSides numElements l i b . add ( F i l e f i n t i n t n i t n i } f or String s , l b l Lib l i b Struct top // f o r loop to create arrays and l a b e l s // // // i n i t i a l i z e v a r i a b l e s double double double double double double double double System . out . p r i n t l n ( } p u b l i c s t a t i c void } p u b l i c class NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox 38 39 40 41 42 43 44 45 46 26 27 28 29 30 31 32 33 34 35 36 37 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 flexure2C page 383 of 488 method, the objects. flexure stored The createStruct objects. Line 34 performs a GArea GArea structure (line 37). (line structure the extracts 40 Line structure. structure. 4.362b shows the GDS Figure . Using the top top ; Flexures ; into a GDS structure. structure. a GDS into GDS the 4.362a shows Figure 7 ; and storing them into into them storing and ; and described in subsection 2.10.4. The code describes Perforated ArrayList ; is stored into a GDS structure (line 24). a GDS structure into is stored an array Line 27 stores � Struct Perforated flexures example showing GDS structures (a) flexureWithCir­ (a) structures GDS showing example flexures Perforated cles and (b) top. al MEMS flexure2C cnstprogrammingexamples java . i ojava . F . i l u e t i l . A r r a y L i s t JGDS2 . JGDS2 CNST . S c r i p t i n g 4.362: Lines 17 and 19 create Lines two 17 GDS and structures. 19 create Line the 21 stores and numbers layer GDS particular with areas extract GDS 32 and 30 Lines ) 4.1.5 (a) (b import import import import package storing storing vector array elements into a GDS structure, then extracting various NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox Figure stores stores the shapes into the instantiated the into stored is area perforated the them into anchors and stores output. rendered element into an layer GDS with circles of output. rendered is called a from layers structure perforated a construct to used then are areas GDS array circle and boolean subtraction between the flexure and the circle array. The resulting via boolean subtraction. via boolean subtraction. array vector The following code creates a perforated MEMS flexure. flexure. MEMS perforated a element scripting The creates code following The 1 2 3 4 5 6 7

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ; ; ) ; ; ) ; page 384 of 488 ; 4 , 4 anchor 7) i n = ; ; = ; " f l e x u r e W i t h C i r c l e s " , f le xu reW it hC ir cl es , 0 , { ; { Struct ( + f . getAbsolutePath ( ) ) ; ) new ; i n t o Struct = " c i r c l e A r r a y " ; " top " > S c r i p t i n g . createFlexure2C (0 , 0 , 0.5 , 5 , "Example05MEMSperforatedFlexure .gds" GArea(flexureWithCircles .getArea(4) , 4) = ; " Saved to " GArea GArea(flexureWithCircles .getArea(7) , 7) < al Struct ( ; new main ( String [ ] args ) new > Lib ( ) = new = 1 Ref ( top , Ref ( 0 fl , ex ur 0) eW ) it hC irc le s , 0 , 0) ) GArea(flexureWithCircles .getArea(1) , 1)) = = GArea new l i b . GDSOut ( < new new new = = Example05MEMSperforatedFlexure f l e x u r e W i t h C i r c l e s Struct layer 0 , 1 , 1 , 16 , 4 , 4 , 10 , 5 , 0 , 7) 30 , 2 , 40 , 20 , 8 , 10 , 5.2 , 4 , 0.4 , 1 , 0 , 4) l i b . add ( l i b . add ( F i l e f S c r i p t i n g . createStruct ( f le xur eW it hC ir cleScripting s , al ) .createSqrHoleC( f l e x u r e . subtract ( c i r c l e ) A r r a y L i s t Lib l i b Struct top Struct f l e x u r e W i t h C i r c l e s // boolean subtraction to // create store perforated boolean structure f l e// x u r e extract and // store anchors // // store A r r a y L i s t // creating an array of c i r c l e s ( c// i r c l e e x t ra c layer t in g // a l l e x t ra objects c t in g with a l l f objects l e x u r e layer with c 4 i r c l e layer 7 // // // creating element flexure2C , s t r u c t u r a l layer top . add ( f l e x u r e ) top . add ( System . out . p r i n t l n ( GArea f l e x u r e GArea c i r c l e } p u b l i c s t a t i c void @author rob / � � � � � } p u b l i c class / NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox 8 9 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 21 22 23 24 25 26 27 28 29 30 31 32 10 11 12 13 14 15 16 17 18 19 20

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 4.1.6 Custom Class Methods

The following example creates three methods identical to ones that generate yBend, yBendInv and yBendInvSlot structures described in corresponding sections 2.9.3.10, 2.9.3.11 and 2.9.3.12. Figure 4.363 shows the three 90 degree y-bend structures. This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from:

we w we g ws

r1 r1 r1

(x,y) w (x,y) (x,y)

r r2 r2 2

(a) (b) (c)

Figure 4.363: Programming example of creating 90 degree (a) y-bend, (b) y-bend in­ verse and (c) y-bend inverse slot structures.

The following code has four methods, main, createYBend90, createYBend­ Inv90 and createYBendInvSlot90. Within the main method, line 14 initializes the GDS library and lines 16 to 20 initialize variables used to define the 90 degree y-bend structures. Lines 22 to 24 create GDS structures to store shapes created by the respective methods. Here we use the following constructor

Struct ( String structName , GDS2Element shape )

Line 22 creates a 90 degree y-bend (figure 4.363a) by implementing the createYBend90 method defined by lines 37-41. The method simply creates upper arc using the Scripting.createTorusW method (line 38). The GDS area ga undergoes a Boolean OR with the lower arc. The arc shape is defined by the constructor torusW in section 2.3.15. Similarly, line 23 and 24 creates the remaining two 90 degree y-bend struc­ tures (figure 4.363b and 4.363c). The methods createYBendInv90 and cre­ ateYBendInvSlot90 reuse the defined createYBend90 method to create the resulting shapes. For instance, createYBendInv90 first creates a 90 degree y-bend of width w + 2we (line 47) and then subtracts a similar structure of width w (line 48) to create a 90 degree y-bend inverse GDS area. Analogously, lines 54-58 define a method that creates a 90 degree y-bend inverse slot structure.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 385 of 488 r1 , r1 , , ; ; THETA , gdsLayer ) ) page 386 of 488 double double y , i n t ; , double y , double ; THETA , , createYBend90 ( x , y , ; double x , ; numSides , x , 0.25 double { "yBendInvSlot90Test" ; = i n t { double r2 , r2 , w, 0 , 90 , numSides , 0 , ; + f . getAbsolutePath ( ) ) − ; ; " yBendInv90Test " double 4 we , 1 , g " yBend90Test " Struct ( = = numSides , Struct ( new ; ; double = ; i n t Struct ( 1 , ws 20 "Example06CustomClassMethods . gds" new ; ; " Saved to " w, = = w, 0 = new ; = ; 44 , gdsLayer GArea ( S c r i p t i n g . createTorusW (0 , r1 , r1 , w, 270 , main ( String [ ] args ) 0 = ; { Lib ( ) ; = = double Ref ( yBend90 , Ref ( 0 yBendInv90 , 0)Ref , ) ( yBendInvSlot90 0 , 0) ) , 0 , 0) ) 20 , r2 double ; 1.4 , we 0 , y new GArea createYBendInv90 ( GArea createYBend90 ( new = l i b . GDSOut ( = = = r2 , new new new = r2 , S c r i p t i n g . transformGArea ( ga , THETA , x , y ) r1 x THETA THETA = w ; gdsLayer) ) Example06CustomClassMethods � createYBendInvSlot90 ( x , y , r1 , r2 , ws , g , we , numSides , createYBendInv90 ( x , y , r1 , r2 , w, we , numSides , THETA , gdsLayer ) gdsLayer) ) 360 , numSides , 0 , gdsLayer ) ) r1 , r2 , w, numSides , THETA , gdsLayer ) ) THETA , gdsLayer ) ) numSides double i n t { l i b . add ( l i b . add ( l i b . add ( double F i l e f i n t n i Lib l i b Struct yBend90 Struct yBendInv90 Struct yBendInvSlot90 return // // // define v a r i a b l e s // double double double double cnstprogrammingexamples System . out . p r i n t l n ( GArea ga ga.or(Scripting .createTorusW(0, java . i o . F i l e JGDS2 . JGDS2 CNST . S c r i p t i n g } } p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void // // yBendInv90// // // yBend90 // @author rob / � � � � � p u b l i c class / import import import package NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox 1 2 3 4 5 6 7 8 9 39 40 41 42 43 44 45 46 25 26 27 28 29 30 31 32 33 34 35 36 37 38 14 15 16 17 18 19 20 21 22 23 24 10 11 12 13

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 ; ; double g , g � THETA , THETA y , page 387 of 488 numSides , numSides , numSides , + 2 numSides , g , g i n t n i we we � double we , we w , w � � numSides , we , we x , r2 , + 2 + 2 ws , ws + 2 ws r1 , ws w Data-types double double r2 , r2 , y , r2 , r2 , g , g r1 , and r1 , r1 , r1 , ; y , y , y { y , y , double ws , ws - Layers ; ; ; ; gdsLayer) ; ) ) ; gdsLayer) ; double " top " " top " createYBendInvSlot90( ; i n t n i ; ; THETA , THETA Objects r2 , gdsLayer) ) gdsLayer) gdsLayer) ) createYBend90x , ( createYBend90x , ( GArea Struct ( Struct ( = = S c r i p t i n g . c r e a t e E l l i p s e (0 , 0 , 0.4 , 0.8 , 44 , S c r 0 i p , t i n g 4) . c r e a t e E l l i p s e (0 , 0 , 0.4 , 0.8 , 44 , 0 , 4) THETA , THETA ga . gaor createYBend90( x , ( ga . su b tr a ctcreateYBend90 ( a tr. ga b su x , ( Area ga ga = = double acquires the data-type value, and is added to the Struct. and is added to value, the data-type acquires new new gdsLayer) ) numSides , THETA , THETA THETA , THETA THETA , THETA s t a t i c i t a t s = = r1 , GDS double return return GArea GArea ga . su b tr a ctcreateYBend90 ( a tr. ga b su x , ( yBendInvSlot90 } } p u b l i c i l b u p // // // The following is an equivalent strategy that casts the GDS area object casts onto that the GDS is area an equivalent The strategy following 4.1.7 singleEllipse .setDataType(44) } Scripting .setDataType(44) Struct top Struct top top.add(singleEllipse) top.add(singleEllipse) GArea e l l i p s e GArea e l l i p s e NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox a particular datatype. a particular datatype. GDS layer definitions are typically defined within the method constructor. Layer constructor. method the within defined typically are definitions layer GDS either subsequent defined GDS globally are objects data-types for or GDS area 4 lines, within a instance, the following assigned a to data-type. objects are For shapes, the GDS subsequent 44 is set for data-type layer is created, structure ellipse area 1 2 3 4 1 2 3 4 58 59 60 54 55 56 57 48 49 50 51 52 53 47

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 and class, rec . − 40, 1 , ; ; ) − page 388 of 488 ; getCenterX() ) Rectangle2D ; ) -rec.getCenterY()). rec . getCenterX) ( , ; − class. instantiating, of Instead { ; "yBendCenteredShape" ; ; + f . getAbsolutePath ( ) ) " yBendExample " bend Struct ( − { Objects ; ; Struct ( Rectangle2D new Ref ( yBendTest , = ; "Example07AreaExtents .gds" ; " Saved to " new Area ; a . getBounds2D. a ) ( new ; = = ; main ( String [ ] args ) (line23). Using the Java built-in S c r i p t i n g . createYbend (0 , 0 , 10 , 10 , 20 , Lib ( ) ; GDS AreayBend( . getArea ) ( ) Ref ( yBendTestRef , ( yBendCentered 0 , 0) , ) 0 , 0) ) = ; new Area l i b . GDSOut ( new new new = = = ; methods from the from methods Example07AreaExtents � 0 , 7 , 0.01) getCenterY) ( ) ) Centering l i b . add ( l i b . add ( F i l e f Lib l i b Struct yBendTest Struct yBendCentered // // creating and st orin g a y // e x t ra c t in g pattern extents Rectangle2D rec yBendTest .add(yBend) cnstprogrammingexamples yBendCentered . add ( Area a System . out . p r i n t l n ( GArea yBend java . awt .java geom . Area .awt.geom.java Rectangle2D . i o . F i l e JGDS2 . JGDS2 CNST . S c r i p t i n g } p u b l i c s t a t i c void @author rob 4.1.8 / � � � � � } p u b l i c class / import import import import import package the area boundary is extracted in line 24. The GDS structure containing the NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox getCenterY() the GDS area object could be added directly to a GDS structure using affine with (-rec.getCenterX(), transforms translational extents. Lines 18 and 19 define a GDS structure and area, respectively. GDS The respectively. area, and structure GDS a define 19 and extents. 18 Lines formed is structure new a 22, line 20). In (line structure the to added then is area GDS area. and centered is extracted The GDS area the resulting will store that stored into a Java the by determined offsets with instantiated then is area GDS for centering features around a specified origin or to create symmetric pattern symmetric pattern a specified origin or create to around features centering for The following code will find a centroid of code a will GDS find The shape. following a centroid is useful This procedure 1 2 3 4 5 6 7 8 9 26 27 28 29 30 31 32 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 10

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 1). − 31 x , y , (2 = page 389 of 488 double double double shapeReso , are rotation about rotation are x , in conjunction with conjunction in THETA , , the commands could commands the , double double double gdsLayer String THETA , implements Integer.MAX_VALUE and gdsLayer ) createPostScript ) GDS structure. structure. GDS ) corner left lower The double i n t . The resulting structure is fractured into a into fractured is ). structure resulting The ; createPostScript ( pixelValue x,y method (line 22), that directly stores generated generated stores directly that 22), (line method > ( fractureSegments , gdsLayer ) length limit. specifications, As defined by the Java { GDS void i n t GArea i n t < currentStruct pixelValue , to ; ; String createPostScript ( Struct currentStruct , to generate output GDS shapes. output GDS generate to variable psString String shapeReso, fractureSegments , double i n t ; A r r a y L i s t Example08PostScriptFracturing � pixelValue , y , String s , THETA, with postscript paths (line 11). Variables are defined and a GDS psString PostScript has a maximum character length of length character maximum a has s cnstprogrammingexamples java . i o . F i l e JGDS2 . JGDS2 CNST . S c r i p t i n g String s , Example08PSinterface double double shapeReso , , rendering resolution of the vectorized shape(section 2.2.6), pixel scaling of shape(section the 2.2.6), vectorized pixel resolution ), rendering @author rob 4.1.9 / String � � � � � x,y p u b l i c class p u b l i c s t a t i c p u b l i c s t a t i c void / import import import package instead of holding all postscript commands in one in commands postscript all holding of instead NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox respectively. respectively. In our example we used the used we example our In ( specified a into shapes at positioned is structure the of of fractureSegments. value the integer by equal segments defined number of Parameters a String is defined file. interface in the Example08PSinterface.java The two following objects: vectorized GDS shapes from creating for available methods are be distributed over multiple Strings. Strings. multiple over be distributed contains that Example 8 (Example08PSinterface.java) implements an interface a string program­ previous to manner similar a in 21) to 16 (lines created is structure examples. ming method a uses 22 Line mands. the the scripting, number where of postscript commands is prac­ Unlike tically unlimited, with it the interface is programming limited. This limitation the Java from stems a value of the postscript coordinates (section 2.6.5.1) and GDS layer number, The below code creates a GDS area using a string containing postscript com­ postscript containing string a using area GDS a creates code below The A host of memory dilemmas will be encountered prior reaching this A limit, host prior hence of reaching memory dilemmas will be encountered ( 5 6 7 8 9 1 2 3 4 10 11

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 12 13 p u b l i c s t a t i c void main ( S t r i n g [ ] args ) { 14 L i b l i b = new L i b ( ) ; 15 // v a r i a b l e s 16 i n t gdsLayer = 44 ; 17 double shapeReso = 0.001 ; 18 double p i x e l V a l u e = . 1 ; 19 i n t fractureSegments = 10 ; 20 //

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: 21 S t r uc t ps2gds = new S t r u c t ( " postScript2GDS " ) ; 22 S c r i p t i n g . c r e a t e P o s t S c r i p t ( ps2gds , 0 , 0 , psStr i n g , fractureSegments , 0 , shapeReso , p i x e l V al ue , gdsLayer ) ; 23 // 24 l i b . add ( new Ref ( ps2gds , 0 , 0) ) ; 25 F i l e f = l i b . GDSOut ( " Example 08Post Scr ip tFracturing . gds " ) ; 26 System . out . p r i n t l n ( " Saved to " + f . getAbsolutePath ( ) ) ; 27 } 28 }

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 390 of 488 and ) 1 ,y 1 x ( page 391 of 488 { { ; ; Channels ; main ( String [ ] args ) Lib ( ) ; Programming example of labeled fluidic channels. Programming Fluidic ; new = 4.364: ; Example09CurvedFluidicChannels � Curved Figure Lib l i b cnstprogrammingexamples java .awt.geom.java AffineTransform . i o . F i l e JGDS2 . JGDS2 CNST . S c r i p t i n g ). The curved segments were created using either bezier curves or 90 2 p u b l i c s t a t i c void @author rob ,y 4.1.10 / 2 � � � � � x p u b l i c class / import import import import package NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox defined scripting methods. Straight segments were constructed using the bends. torus degree The following example creates two sets of labeled fluidic channels using pre­ using channels fluidic labeled of sets two creates example following The waveguide method that defines a rectangular shape between points between shape rectangular a defines that method waveguide ( 7 8 9 1 2 3 4 5 6 10 11 12 13 14

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 � i − 1) − ; ; " S e r i f 8 − 1.0 , i = ; − 100 ; { axis page 392 of 488 − � − ; ; [ ] ; 1) − ; ; + ( i + 1) , ; ; ; ; ; ; i 2 ; ( numElectrodes( " " 20 � 250 , − − ; = new double = fontSize / 2 , 0 , 0 , { ; electrodeRadius + ; ( numElectrodes( − 7 , 7 numElectrodes � 1500 − = i ++) 250 − ; ; ; ; ; ; (2 // mirror around y ; = ; ; ; ; � ; ) x GArea ( channels ) 2000 channelWidth − − ( numElectrodes( � chipSize / 2 + y ) ) 1000 new i chipSize − − ; " chip " AffineTransform ( GArea ( electrode ) = = − = ; ; 100 , channelWidth electrodeRadius ; − radiusChannel radiusChannel = new new y numElectrodes 500 500 ; 0.1 , fontSize electrodeRadius 4 , 4 layerChannel2 8 − − = = ) Scripting .createTextGdsC( Scripting. createEllipse(0, 0, electrodeRadius Struct ( − 10000, electrodeRadius − < = = } � y + 2500 = = i chipSize / 2 chipSize / 2 200 , y3 x + 200 x2 + x3 + radiusChannel x5 + radiusChannel x6 + radiusChannel y3 + radiusChannel y4 y6 − = = = chipSize / 4 + i 40 2 ; new ======� 0 = = = ; radiusChannel x x7 x8 x4 x5 x6 y x2 x3 y7 y4 y5 y6 = 1) , fontSize , 0.0 , 1.0 i 40 , y3, channelWidth , , 0 , 0 , 0 layerChannel) ) chipSize / 2 + x , " electrodeSpacing ) layerChannel , shapeReso) channelWidth , 180 , 270 , 100 , 0 , channelWidth layerChannel , ), 0 ) , 0 , 0 layerChannel) ) channelWidth , 90 , 180 , 100 , 0 , layerChannelchannelWidth ) ) , , 0 , 0 , 0 layerChannel) ) channelWidth , 0 , 90 , 100 , 0 , layerChannelchannelWidth , ), 0 ) , 0 , 0 layerChannel) ) channelWidth , , 0 , 0 channelWidth, 0 layerChannel , , 0 ) ) layerChannel , shapeReso) ) − chipSize shapeReso i n t , electrodeRadius , 100 , 0 , layerChannel ) 0.0 , electrodeSpacing ( channelsMirror .transform(at) layerChannel radiusChannel radiusChannel channels.or(Scripting .createTorusW(x7, channels.or(Scripting y6, radiusChannelchannels.transform(AffineTransform , .createWaveGuide(x7, y7, x8, . getTranslateInstance( y7, channels.or(Scripting .createTorusW(x4, y3, channels.or(Scripting radiusChannel , .createWaveGuide(x4,channels.or(Scripting y4, x5, y4, .createTorusW(x5, channels.or(Scripting y5, radiusChannel , .createWaveGuide(x6, y5, x6, y6, channels.or(Scriptingchannels.or(Scripting .createWaveGuide(0,channels 0, .create90degreeBendLH(x2, . or x2, ( S c r i p 0, t i n g . createWaveGuide 0, x3, ( x2 200, + x3 , 200 , x2 + x3 double double double double double double double double double double double double double double GArea channelsMirror GArea l a b e l GArea channels i n t f or Struct chip AffineTransform at // // side channels 1 double double GArea electrode NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox 46 47 48 49 50 51 52 53 34 35 36 37 38 39 40 41 42 43 44 45 25 26 27 28 29 30 31 32 33 15 16 17 18 19 20 21 22 23 24

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 // − ; ; 4 ; � ; ; axis page 393 of 488 − ; ; , fontSize , , fontSize , chipSize / 2 + − ; ; ; ; { " S e r i f " " S e r i f " channelWidth ; ; x / 2 , 0) ) ) � i ++) ; 20 i − ; � ; ; − ; ; // l a b e l A B C D fontSize / 4 ; ; ) // mirror around y y ; ; ; ; electrodeRadius + − + f . getAbsolutePath ( ) ) − x GArea ( channels ) chipSize / 2 + x , ; electrodeRadius + � − − ; ; ; � chipSize / 2 + y ) ) 400 new ; − (2 GArea ( electrode ) = = channelWidth chipSize � ; ; ; � electrodeRadius � GArea ( l a b e l ) new i ; " f l u i d i c s . gds " electrodeRadius + electrodeSpacing ) numElectrodes / 2 " Saved to " � 200 = � < − pitch , 1 , chip , layerChannel2 , shapeReso ) ; 400 new = i fontSize/2 chipSize / 2 − 0.55 x x2 + radiusChannel y2 + radiusChannel ( i + 1) (2 2.5 50 − = = ; = = = = = ; 0 = = = = chipSize / 2 + chipSize (2 / 2 + fontSize / 2 Ref ( chip , 0 , 0) ) radiusChannel x y x2 x3 x4 y2 y3 − − = l i b . GDSOut ( i y ) ) ) = = chipSize / 2 + x , getTranslateInstance( getTranslateInstance ( chipSize electrodeSpacing ) + offsetX channelWidth , shapeReso , , 0 layerChannel2) ) channelWidth , , 0 , 0 , 0 layerChannel) ) channelWidth , 90 , 180 , 100 , 0 , layerChannel2 ) ) / 2 , 0 , chipSize / 4 , x2 , chipSize / 8 , x2 , y2 , layerChannel2 , shapeReso) new p i t c h offsetX x y = i n t l a b e l D C B A electrodeSpacing ) + offsetX x , y , 0 , 0 , x , y , 0 , 0 , pitch , 1 , chip , ( chip . add (chip channels .add(channelsMirror) ) chip . add (chip channels .add(channelsMirror) ) chip .add(label .transform(AffineTransform.chip .add(temp. transform(AffineTransform . channelsMirror . transformat( ) channels.or(Scriptingchannels.transform(AffineTransform .createWaveGuide(x3,channels . setLayer y3, layerChannel2 ( x4, . getTranslateInstance() y3, channels.or(Scripting .createBezierCurve(0, channels.or(Scripting electrodeRadius .createTorusW(x3, y2, radiusChannel , double double double double double double double double GArea channelsMirror GArea channels GArea temp Math) absx . ( = l i b . add ( F i l e f } } Scripting .createLabelMakerAutoOutLett(0, 4, Scripting .createLabelMakerAutoOutLett(0, 4, f o r electrodeSpacing // // Labels fo r the bottom electrodes // bottom channels double double double double channelWidth x System . out . p r i n t l n ( } } NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox 92 93 94 95 96 97 86 87 88 89 90 91 78 79 80 81 82 83 84 85 73 74 75 76 77 67 68 69 70 71 72 60 61 62 63 64 65 66 55 56 57 58 59 54

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Ar­ Ar­ cur­ or or page 394 of 488 radiusX , Struct GArea GArea , void double gdsLayer ) y , i n t objects but not array lists into the passed the into double GArea fontOutlineWidth ) THETA , x , pixelValue ) fracElements ) shapeReso ) gdsReso ) Methods i n t layer ) scripting constructor (also shown in the in shown (also constructor scripting double double double double layer ) double i n t double objects add i n t Methods ellipse ArrayList Mutator numSides , Struct getPixelValue ( ) getFontOutline ( ) getGDSreso ( ) getShapeReso ( ) i n t and setPixelValue ( setFontOutline ( setLayer( setFracElements ( setDataType ( setGDSreso ( setShapeReso ( getLayer ( ) getFracElements ( ) getDataType ( ) objects. These are useful for controlling GDS area objects in objects objects. area GDS controlling for useful are These followed followed by the script constructor name with the first letter . Since GArea c r e a t e E l l i p s e ( Section 4.2.2 contains methods for dealing with radiusY , . Reference Accessor create double Directly Directly following the method name are a set of parameters. All meth­ 4.2.1 4.2 p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b void l i c s t a t i c p u b void l i c s t a t i c p u b void l i c s t a t i c void p u b l i c s t a t i c i n t p u b l i c s t a t i c void p u b l i c s t a t i c p u b double l i c s t a t i c p u b i l i n c t s t a t i c double p u b l i c s t a t i c p u b i l i n c t s t a t i c p u b double l i c s t a t i c p u b double l i c s t a t i c void // e l l i p s e rentStruct rayList rayList NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox custom user defined methods. custom objects. These shapes are fully described in the GDS scripting chapter. objects. Exclud­ fully described in the GDS scripting chapter. These shapes are names methods shape the methods, miscellaneous and mutator access, ing the have the instance, capitalized. For a method entitled createEllipse have comment line) would previous of these objects, each vector array return types also have a void method. ods have a ods have parameter list with of the accessor exception methods that have empty parameter lists. Methods return types are either The void method stores the stores method void The The following subsection contain method headers that create complex GDS

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 > ga > < > > double x , GArea GArea GArea < < < x , GArea page 395 of 488 < double y ) double Methods THETA , double THETA , y ) x , double Struct double { y ) then place ga i n t o double double and − y ) x , double t r a n s la t e then rotate ga then place ga THETA , Area rotateArrayListGArea ( A r r a y L i s t transformArrayListGArea( A r r a y L i s t − double x , double > > A r r a y L i s t ga t r a n s l a te to ( x , y ) then rotate x , GDS rotate A r r a y L i s t ga about ( x , y ) − double r o t a t i o n only GArea GArea − double < < THETA , − ga , double t r a n s la t e v to ( x , y ) then rotate about ( x , y ) createStruct ( Struct currentStruct , A r r a y L i s t createStruct ( Struct currentStruct , A r r a y L i s t createStructTranslateRotate ( Struct currentStruct , createStructRotate ( Struct currentStruct , A r r a y L i s t > mirror ga then place ga i n t o currentStruct place ga i n t o currentStruct − rotate GArea v about a point ( x , y ) MIRROR ) THETA , − − double − objects into a GDS structure. structure. a GDS objects into GArea A r r a y L i s t A r r a y L i s t GArea transformGArea ( GArea v , GArea rotateGArea ( GArea v , THETA , < y ) y ga , double > Miscellaneous boolean double i n t o currentStruct about ( x , y ) y ) ga , , A r r a y L i s t currentStruct double GArea ga ) ga ga , 4.2.2 p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // rotateArrayListGArea // transormArrayListGArea // rotateGArea // transformGArea // createStructRotate // createStructTranslateRotate // createStruct // createStruct NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox GDS area objects. the Furthermore, void methods place constructed vector of GArea arrays ne transformations of single and vector array array and vector single of affine transformations used for These methods are

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 L , rY , i n t x2 , xUR , i n t i n t i n t double r , rX , THETA , double page 396 of 488 double radiusX , r , double double double W1, W1, W, W, THETA , THETA , double double rX , y , double y1 , double yLL , double double y , double y , gdsLayer ) double double double y , y , double double y , gdsLayer ) shapeReso ) double y , i n t gdsLayer ) double gdsLayer , double x , y , double i n t numSides , x1 , i n t double double x , i n t double xLL , x , double double i n t angleEnd , numSides , THETA , x , x , double double x , x , THETA , double i n t THETA , double x , THETA , double double gdsLayer ) double double double double y3 , double gdsLayer , double i n t double angleEnd , double double double i n t double L2 , double numSides , THETA , gdsLayer ) angleStart , x3 , shapeReso) numSides , THETA , i n t radiusY , i n t double i n t double Methods double double W2, W2, double double A , GArea createRectangle ( GArea createArcVector ( GArea createPolygon ( GArea createArc ( GArea createLshape ( GArea createCross ( GArea createCircleWave ( GArea createCircleThree ( GArea c r e a t e E l l i p s e V e c t o r ( GArea c r e a t e E l l i p s e ( double angleStart , yUR , THETA , radiusY , rY , y2 , Shape double gdsLayer ) double double double double i n t double radiusX , double double gdsLayer) gdsLayer , shapeReso) numSides , L1 , n , 4.2.3 p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c // rectangle // arcVector // polygon // arc // Lshape // cross // circleWave // c i r c l e t h r e e // e l l i p s e V e c t o r // e l l i p s e NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 L , L , rIn , L , rIn , rIn , L1 , double double double double w1 , i n t i n t double double double page 397 of 488 shapeReso ) double r , rIn , double double rIn , double double double yLL , double y , gdsLayer ) THETA , THETA , yLL , y , y , y , yC , gdsLayer ) gdsLayer , double double y , double i n t numPoints , double i n t i n t numPoints , double y , double y , double double double double double double double y , i n t i n t double x , xLL , x , x , x , THETA , xC , gdsLayer , THETA , THETA , double xLL , x , double double x , i n t double x , shapeReso ) numSides , numSides , double double double double x , double angleEnd , double double double angleEnd , double double i n t i n t gdsLayer ) L2 , double W, W, gdsLayer ) rY , THETA , double double A , A , double double i n t double i n t double double double double double double L3 , THETA , w2 , gdsLayer , rX , n , n , THETA , angleStart , i n t i n t i n t angleStart , double double gdsLayer ) gdsLayer ) double double double numPoints , GArea createTorusWaveOut ( GArea createTorusWaveIn ( GArea createTorusVector ( GArea createTorusW ( GArea createTorus ( GArea createStar ( GArea createRectTaper ( GArea createRectSUshape ( GArea createRoundRect ( GArea createRectangleC ( GArea createRectangleLH ( H, i n t i n t double rOut , rOut , rOut , L1 , L2 , H, H, i n t double double double width , double double gdsLayer) double gdsLayer) double double double rOut , rOut , shapeReso) THETA , THETA , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c // torusWaveOut // torusWaveIn // torusVector // torusW // torus // star // rectTaper // rectSUshape // roundrect // rectangleC // rectangleLH NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 JGDS can be ac­ page 398 of 488 numRows , numRows , numRows , double double double double i n t i n t i n t double double double double radiusEnd , radiusEnd , angleEnd , angleEnd , points2instance angleEnd , angleEnd , radiusEnd , radiusEnd , numColumns , numColumns , numColumns , and ) constructor. Refer to the double double i n t i n t i n t double double double double Ref double double y , y , y , double double double instanceSym radiusStart , radiusStart , angleStart , angleStart , , reference reference ( angleStart , angleStart , x , x , x , radiusStart , radiusStart , yE) dy ) dy JGDS double double double double double double double double double createArrayPolarV2(Struct structToBeArrayed , Struct createArrayPolarV1(Struct structToBeArrayed , Struct createArrayPolarV2R(Struct structToBeArrayed , Struct createArrayPolarV1R(Struct structToBeArrayed , Struct createArrayRectV2( Struct structToBeArrayed , Struct createArrayRectV1( Struct structToBeArrayed , Struct createArrayHex ( Struct structToBeArrayed , Struct instance double double Methods double double ds) xE , dx , Array currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , deltaRadius ) deltaRadius ) deltaAngle , deltaAngle , double double double numberOfRadii) numberOfRadii) numberOfAngles , numberOfAngles , 4.2.4 p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // arrayPolarV2R // arrayPolarV1 // arrayPolarV1R // arrayPolarV2 // arrayHex // arrayRectV2 // arrayRectV1 complished using the manual for information on Ref. information manual for Instantiation Instantiation using v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 double double double double i n t i n t i n t i n t i n t i n t i n t i n t i n t i n t i n t i n t page 399 of 488 rY , rY , rY , rY , rY , rY , rY , rY , numElementsY , numElementsY , numElementsY , numElementsY , double double double double double double double double numElementsX , numElementsX , numElementsX , numElementsX , i n t i n t i n t i n t rX , rX , rX , rX , rX , rX , rX , rX , i n t i n t i n t i n t double double double double double double double double pitchY , pitchY , pitchY , pitchY , gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) y , y , y , y , y , y , y , y , numElementsX , numElementsX , numElementsX , numElementsX , i n t i n t i n t i n t i n t i n t i n t i n t double double double double double double double double double double double double x , x , x , x , x , x , x , x , THETA , THETA , THETA , THETA , pitchX , pitchX , pitchX , pitchX , pitchX , pitchX , pitchX , pitchX , double double double double double double double double c r e a t e S q r P i l l a r ( String uniqueStructName , Struct c r e a t e S q r P i l l a r C ( String uniqueStructName , Struct c r e a t e H e x P i l l a r ( String uniqueStructName , Struct createHexPillarC ( String uniqueStructName , Struct createSqrHole(String uniqueStructName , Struct createSqrHoleC(String uniqueStructName , Struct createHexHole(String uniqueStructName , Struct createHexHoleC(String uniqueStructName , Struct double double double double gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) double double double double double double double double i n t i n t i n t i n t THETA , THETA , THETA , THETA , currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , numSides , numSides , numSides , numSides , numSides , numSides , numSides , numSides , numElementsY , numElementsY , numElementsY , numElementsY , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // hexHoleC // sqrHoleC // h e x P i l l a r C // s q r P i l l a r C // hexHole // sqrHole // h e x P i l l a r // s q r P i l l a r NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 double double double double i n t i n t i n t i n t double double double double double double double double page 400 of 488 rY , rY , rY , rY , rY , rY , rY , rY , THETA , THETA , THETA , THETA , double double double double double double double double numElementsY , numElementsY , numElementsY , numElementsY , double double double double rX , rX , rX , rX , rX , rX , rX , rX , i n t i n t i n t i n t double double double double double double double double y , y y , y y , y y , y y , y y , y , y y , y numElementsY , numElementsY , numElementsY , numElementsY , shapeReso ) shapeReso ) shapeReso ) shapeReso ) numElementsX , numElementsX , numElementsX , numElementsX , i n t i n t i n t i n t double double double double double double double double i n t i n t i n t i n t x , x , x , x , x , x , x , x , double double double double shapeReso) shapeReso) shapeReso) shapeReso) pitchY , pitchY , pitchY , pitchY , double double double double double double double double c r e a t e S q r P i l l a r V ( String uniqueStructName , Struct createSqrPillarVC ( String uniqueStructName , Struct createHexPillarV ( String uniqueStructName , Struct createHexPillarVC ( String uniqueStructName , Struct createSqrHoleV(String uniqueStructName , Struct createSqrHoleVC(String uniqueStructName , Struct createHexHoleV(String uniqueStructName , Struct createHexHoleVC( String uniqueStructName , Struct numElementsX , numElementsX , numElementsX , numElementsX , gdsLayer , gdsLayer , gdsLayer , gdsLayer , double double double double i n t i n t i n t i n t double double double double i n t i n t i n t i n t currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , currentStruct , pitchX , pitchX , pitchX , pitchX , pitchX , pitchX , pitchX , pitchX , gdsLayer , gdsLayer , gdsLayer , gdsLayer , THETA , THETA , THETA , THETA , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // hexHoleVC // sqrHoleVC // hexPillarVC // s q r P i l l a r V C // hexHoleV // h e x P i l l a r V // sqrHoleV // s q r P i l l a r V NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 y , y , pitchX xRow , xRow , THETA , THETA , double double page 401 of 488 columns , double double columns , gdsLayer , gdsLayer , double double double double double double i n t x , x , columns , i n t i n t i n t y , y , y , y , y , i n t shapeReso ) shapeReso ) rows , double double shapeReso , shapeReso , rows , Methods double double double double double THETA , THETA , gdsLayer , i n t rows , i n t x , x , x , x , x , double double i n t double double i n t Logo double double fontSize , fontSize , pitchY , Struct currentStruct , double double double double double y , y , and gdsLayer , gdsLayer , double double gdsLayer , gdsLayer , double double double createTextOutline ( String t e x t S t r i n g , createTextOutlineC ( String t e x t S t r i n g , i n t i n t i n t i n t > > fontSize , fontSize , fontSize , fontSize , fontSize , x , x , shapeReso ) pitchX , PostScript GArea GArea < < double double double double double double double createTextOutline ( Struct currentStruct , String createTextOutlineC ( Struct currentStruct , String createLabelMakerAutoOutLett( createLabelMakerAutoOut( createLabelMakerAutoRowCol( double double Labels, A r r a y L i s t A r r a y L i s t GArea createTextGdsC ( String t e x t S t r i n g , String fontName , GArea createTextGds ( String t e x t S t r i n g , String fontName , pitchY , Struct currentStruct , fontOutlineWidth , fontOutlineWidth , fontSize , fontSize , fontOutlineWidth , fontOutlineWidth , shapeReso) shapeReso) yRow , Text, gdsLayer , double double double , i n t t e x t S t r i n g , String fontName , t e x t S t r i n g , String fontName , String fontName , String fontName , String fontName , String fontName , String fontName , double double double double double double double shapeReso) THETA ) THETA THETA ) THETA 4.2.5 p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c // textOutlineC // labelMaker autoOut // labelMaker autoOutLett // t e x t O u t l i n e // textOutlineC // t e x t O u t l i n e // labelMaker autoRowCol // textgdsC // textgds NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x i n t x , x , xRow , pitchX xRow , y , columns double double columns , pitchY , pitchY , gdsLayer , i n t columns , double double page 402 of 488 double i n t double i n t columns , i n t double double i n t double y , y double y , rows , double double i n t y , y , x , rows , fontSize , gdsLayer , rows , i n t rows , fontSize , fontSize , fontOutlineWidth , double i n t shapeReso ) shapeReso ) i n t double i n t rows , double double i n t pitchX , pitchX , double x , double x , i n t x , x , double double double double double shapeReso ) pitchY , Struct currentStruct , double double double pitchY , Struct currentStruct , pitchY , Struct currentStruct , double pitchY , Struct str , double double fontSize , shapeReso ) double yRow , yRow yRow , yRow double gdsLayer , gdsLayer , double double double fontSize , double double i n t i n t fontSize , fontSize , fontSize , double double pitchY , Struct currentStruct , gdsLayer , pitchX , shapeReso ) pitchX , pitchX , pitchX , double i n t double shapeReso) double double xRow, xRow, gdsLayer , columns , String fontName , pitchY , Struct currentStruct , double createLabelOutlineAutoOutLett ( createLabelOutlineAutoRowColLett( createLabelOutlineAutoOut( createLabelOutlineAutoRowCol( createLabelOutlineCustomOuter(String [] stringArray , createLabelMakerAutoRowColLett( createLabelMakerCustomOuter(String [] stringArray , createLabelMakerCustomRowColumn( String [] stringArray double double columns , String fontName , columns , String fontName , double double i n t i n t double double i n t i n t double double pitchY , Struct currentStruct , y , y double shapeReso) yRow , fontOutlineWidth , fontOutlineWidth , pitchX , y , y , yRow , yRow , rows , gdsLayer , rows , rows , i n t double double String fontName , double double gdsLayer , , , , , String fontName , i n t i n t i n t String fontName , String fontName , Struct str , fontOutlineWidth , pitchX , double double double double double double double shapeReso) columns , String fontName , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // l a b e l O u t l i n e OUTER CUSTOM // l a b e l O u t l i n e autoRowColLett // l a b e l O u t l i n e autoOutLett // l a b e l O u t l i n e autoRowCol // labelMaker OUTER CUSTOM // l a b e l O u t l i n e autoOut // labelMaker autoRowColLett // labelMaker COLUMN ROW l CUSTOM a b e l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , y , scale , shapeReso scale , scale , page 403 of 488 double double double double y , throws double shapeReso , pitchY , Struct double double shapeReso ) double double x , THETA , y , y , y , double throws throws throws double double double double x , gdsLayer ) double double gdsLayer , double double i n t THETA , x , x , x , i n t pitchX , double gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer , i n t i n t i n t double double double double i n t i n t double shapeReso , columns , String fontName , y , y createPostScript ( > fractureSegments , i n t gdsLayer ) double shapeReso , shapeReso , shapeReso , i n t double GArea i n t fontOutlineWidth , < pixelValue , rows , x , createPostScript ( Struct currentStruct , createLabelOutlineCustomRowColumn( String [] double double double fractureSegments , THETA , i n t fontOutlineWidth , double double i n t double A r r a y L i s t GArea getNistCnstLogo ( GArea createNistLogo ( GArea createCnstEmblemLogo ( GArea createCnstLogo ( pixelValue , double y , String s , THETA , THETA , THETA , double ) String s , Struct str , stringArray , str , fontSize , FileNotFoundException FileNotFoundException FileNotFoundException FileNotFoundException scale , double double double double double shapeReso , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c // nistCnstLogo // nistLogo // cnstLogo // cnstEmblem // l a b e l O u t l i n e COLUMN ROW l CUSTOM a b e l // p o s t S c r i p t // p o s t S c r i p t NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 cx1 , i n t i n t double double double y2, double y1 , gdsLayer ) gdsLayer ) rOut , rOut , rOut , rOut , page 404 of 488 THETA , THETA , THETA , THETA , double double x2 , y2, y1 , i n t i n t double pitchX , pitchX , double double y1 , double double double double double double double double gap, i t e r a t i o n s , double double x2 , double x1 , double double rIn , rIn , rIn , rIn , shapeReso , double i n t x2 , x1 , gdsLayer ) shapeReso , shapeReso , cy2 , double double y , double x1 , numSides , numSides , numSides , numSides , i n t double double double double double double double i n t i n t i n t i n t double double double cy2 , y , y y , y y , y y , y double double cy2 , THETA , slotWidth , cx2 , x , Methods double gdsLayer ) pitchX , pitchX , double double double double slotWidth , angleEnd , angleEnd , angleEnd , angleEnd , i n t double double numSidesSmallObject , numSidesSmallObject , x , x , x , x , double double double cx2 , Object i n t i n t double double double cx2 , double double double double cy1 , double double double double THETA , double c r e a t e S i e r p i n s k i T r i a n g l e ( Struct currentStruct , c r e a t e A r c H e xF i l l ( Struct currentStruct , String createArcHexFillV ( Struct currentStruct , String createArcSquareFill ( Struct currentStruct , String createArcSquareFillV ( Struct currentStruct , String shapeReso , double double gdsLayer ) cy1 , sleeveWidth , double gdsLayer ) GArea createBezierCurveInvSlot( GArea createBezierCurveInv ( GArea createBezierCurve ( i n t cy1 , i n t angleStart , angleStart , angleStart , angleStart , rSmallObject , rSmallObject , rSmallObject , rSmallObject , sleeveWidth , double cx1 , double Miscellaneous double double String shortStructName , length , width , double double double double double double double double double double gdsLayer) gdsLayer) uniqueStructName , uniqueStructName , uniqueStructName , uniqueStructName , shapeReso , cx1 , y2, THETA , 4.2.6 p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // s i e r p i n s k i T r i a n g l e // bezierCurveInvSlot // bezierCurveInv // bezierCurve // arcSquareFillV // a r c H e x F i l l // arcSquareFillV // a r c S q u a r e F i l l NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 double i n t length , length , length , width , double gdsLayer ) page 405 of 488 THETA ) CAP , ang, i n t double double double double i n t thetaUpperLimit , throws double double W, W, double vary parameters length , double d , d JOIN , − i t e r a t i o n s , i t e r a t i o n s , i t e r a t i o n s , i t e r a t i o n s , double gdsLayer ) i n t N, i n t i n t i n t i n t i n t xLowerLimit , double double i n t y , y y , y y , y , y y , y y , y CAP , JOIN , i n t double i n t ScriptException thetaLowerLimit , double double double double double double y , createFunctionRTheta ( String function , createFunctionXY( String function , W, W, > > x , x , x , x , x , x , gdsLayer ) CAP , undocumented F r a c t a l xUpperLimit , undocumented F r a c t a l double double double throws gdsLayer ) GArea GArea − < < − i n t i n t double double double double double double x , y , N, i n t c r e a t e V i c s e k S a l t i r e ( Struct currentStruct , String createSierpinskiCarpet ( Struct currentStruct , String createVicsekCross ( Struct currentStruct , String createFunctionXY ( Struct currentStruct , String createTree ( Struct currentStruct , String createAnotherTree ( Struct currentStruct , String createCurvedTree ( Struct currentStruct , String W, W, double i n t depth , double double gdsLayer ) A r r a y L i s t A r r a y L i s t double i n t ScriptException x , i n t gdsLayer ) gdsLayer ) gdsLayer ) N, i t e r a t i o n s , i n t i n t i n t i n t xLowerLimit , i n t ScriptException ratio , function , xUpperLimit , double throws shortStructName , shortStructName , shortStructName , shortStructName , shortStructName , shortStructName , JOIN , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // functionRTheta // functionXY // functionXY // complex tree f r a c t a l // anotherTree f r a c t a l // curvedTree // vicsekCross // v i c s e k S a l t i r e // s i e r p i n s k i C a r p e t NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 THETA ) double x , y , THETA ) x , x , y , y , y y , y i n t x , y , page 406 of 488 double double double double double double THETA ) double double double double double numSides , UP , THETA ) double double x , x , x , x , i n t x , JOIN , double double boolean double i n t THETA ) double double double double numberOfSegments , CAP , thetaLowerLimit , i n t double numSides , numberOfSegments , i n t THETA ) i n t i n t W, W, double radY , numberOfSegments , THETA ) al , dY , y , createGrayENgon( createGrayUDR( createGrayERamp( createGrayERamp( createGrayUDNgon( i n t double numSides , numberOfSegments , numberOfSegments , > > > > > > double double i n t i n t i n t al , double double N, double Double radY , > GArea GArea GArea GArea GArea < < < < < < al , al , dY , dY , i n t radX , x , dX , THETA ) true or f a l s e true or f a l s e > > createFunctionRTheta(Struct currentStruct , String createGrayENgon ( Struct currentStruct , createGrayUDR ( Struct currentStruct , createGrayERamp ( Struct currentStruct , createGrayUDNgon ( Struct currentStruct , Double = = double < al contains dx and dy coordinate p a i r s al contains dx and dy coordinate p a i r s double double UP UP UP UP double double double double Double Double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t − − al contains dx and dy coordinate p a i r s al contains dx and dy coordinate p a i r s < < − − ScriptException radX , y , A r r a y L i s t y , y , dX , dX , THETA ) − − y , A r r a y L i s t A r r a y L i s t A r r a y L i s t function , thetaUpperLimit , double double double double double double double throws numSides , THETA ) THETA p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // grayUDR // grayERamp // grayUDNgon // grayUDNgon // grayENgon // grayENgon // grayUDR // grayERamp // grayERamp // grayERamp // functionRTheta NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x i n t UP , x , y , y , THETA ) THETA ) x , x , y , y , y x , double y , numSides , page 407 of 488 double baseHeight , double double double i n t double double boolean double double double double length2 , double THETA ) double x , x , THETA ) UP , x , x , THETA ) double numSegments , x , double numSides , i n t double double double double double double double boolean i n t pitch , double numSegments , UP , THETA ) rOut , dY , dY , Overlapping ARCs Overlapping ARCs i n t length1 , − − numberOfSegments , numberOfSegments , double double boolean i n t i n t double double double rOut , double dY , dY , numSegments , al , al , dY , dY , rIn , c r e a t e S p i r a l S t a i r ( createIntElec1 ( createGrayERamp2( createGrayUDRamp( createGrayUDRamp2 ( numberOfSegments , > > i n t > > > > > double create grayscale OVERLAPPING ARCs i n t double double width2 , − double double double numElectrodes , Double Double GArea GArea GArea GArea GArea rIn , rOut , < < < < < < < al , al , dY , y , dX , dX , create grayscale NON create grayscale NON THETA ) i n t > > double createGraySpiralStair ( Struct currentStruct , createGraySpiralStairOverlap ( Struct currentStruct , createGrayERamp ( Struct currentStruct , createGrayERamp2 ( Struct currentStruct , createGrayUDRamp ( Struct currentStruct , createGrayUDRamp2 ( Struct currentStruct , − − al contains x1 , x2 , . . . . xn al contains x1 , x2 , . . . . xn double double al contains x1 , x2 , . . . . xn al contains x1 , x2 , . . . . xn double − − double double double double Double Double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t − − y , < < THETA ) rIn , overlap , width1 , x , y , y , A r r a y L i s t y , A r r a y L i s t y , dX , THETA ) double double , A r r a y L i s t A r r a y L i s t double double double double double double double double double double numSides , THETA ) THETA p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // i n t E l e c 1 // g r a y S p i r a l S t a i r // grayUDRamp // g r a y S p i r a l S t a i r // grayUDRamp // grayERamp2 // grayERamp2 // graySpiralStairOverlap // grayUDRamp2 // grayUDRamp2 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , x , x , y , y , y , y , double double double double page 408 of 488 double double double double baseHeight , baseHeight , baseHeight , baseHeight , length2 , length2 , length2 , length2 , double double double double double double double double pitch , pitch , pitch , pitch , double double double double x , x , x , x , gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) length1 , length1 , length1 , length1 , double double double double i n t i n t i n t i n t double double double double pitch , pitch , pitch , pitch , double double double double double double double double length1 , length1 , length1 , length1 , gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) THETA , THETA , THETA , THETA , double double double double i n t i n t i n t i n t i n t width2 , width2 , width2 , width2 , double double double double double double double double numElectrodes , numElectrodes , numElectrodes , numElectrodes , createIntElec5 ( createIntElec4 ( createIntElec3 ( createIntElec2 ( THETA , THETA , THETA , THETA , THETA , i n t i n t i n t i n t double double double double > > > > width2 , width2 , width2 , width2 , numElectrodes , numElectrodes , numElectrodes , numElectrodes , GArea GArea GArea GArea double double double double double baseWidth , baseWidth , baseWidth , baseWidth , < < < < width1 , width1 , width1 , width1 , i n t i n t i n t i n t overlap , overlap , overlap , overlap , double double double double createIntElec4 ( Struct currentStruct , createIntElec3 ( Struct currentStruct , createIntElec2 ( Struct currentStruct , createIntElec1 ( Struct currentStruct , double double double double double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t double double double double baseWidth , baseWidth , baseWidth , baseWidth , baseWidth , overlap , overlap , overlap , overlap , width1 , width1 , width1 , width1 , y , y , y , y , double double double double double length2 , length2 , length2 , length2 , double double double double double double double double double double double double baseHeight , baseHeight , baseHeight , baseHeight , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // i n t E l e c 5 // i n t E l e c 4 // i n t E l e c 4 // i n t E l e c 3 // i n t E l e c 3 // i n t E l e c 2 // i n t E l e c 2 // i n t E l e c 1 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 b a , x , y , width , rad , rad , rad , x , y , y x , x , y , y , double x , double double double page 409 of 488 double double i n t i n t i n t double a , double double double double gdsLayer ) double double x , double double double double double pitch , width , rad , rad , rad , x , i n t gdsLayer ) L2 , L2 , L2 , H2 , x , x , double gdsLayer ) length1 , double i n t i n t double double double double double double double double double double THETA , double double double L2 , L2 , L2 , H2 , numCurveSegments , L2 , L1 , L1 , L1 , THETA , gdsLayer ) THETA , double i n t i n t double double double double double double double double double gdsLayer ) gdsLayer ) width2 , numCurveSegments , double gdsLayer ) numElectrodes , L2 , L1 , L1 , L1 , i n t i n t gdsLayer ) gdsLayer ) H1 , w2 , w2 , w2 , i n t createTjunction ( createHjunction ( THETA , createArrowJunction( createMeanderSin( i n t i n t double > > > > i n t i n t numPeriods , double double double double junctionAngle , double double double double THETA , THETA , double GArea GArea GArea GArea i n t baseWidth , THETA , < < < < H1 , w2 , w2 , w2 , junctionAngle , width1 , c , L1 , THETA , THETA , w1 , w1 , w1 , overlap , numPeriods , createIntElec5 ( Struct currentStruct , createTjunction ( Struct currentStruct , createHjunction ( Struct currentStruct , createArrowJunction( Struct currentStruct , createMeanderSin ( Struct currentStruct , double double double double double i n t double double double double double double double double double double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t double c , amplitude , y , y , y , y , y , L1 , b , w1 , w1 , w1 , numSides , numSides , numSides , double double , i n t i n t i n t amplitude , double double double double double length2 , double double double double double baseHeight , numSides , numSides , numSides , p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // meanderSin // meanderSin // arrowJunction // arrowJunction // hJunction // hJunction // tJunction // tJunction // i n t E l e c 5 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 < c , c , c , x , y , y width , width , width , Double x , x , y , y , y < height , double double double double double double gdsLayer ) page 410 of 488 double double double double double double double double c , c , c , double double double double i n t double b , b , b , x , y , A r r a y L i s t width , width , width , x , x , H2 , H2 , H2 , y , A r r a y L i s t double double double THETA , width , double double double double double double double double b , b , b , double double double double double a , a , a , x , double H2 , H2 , H2 , double L2 , L2 , L2 , double x , double double double double double double y , y double a , a , a , double double double JOIN , double double double double gdsLayer ) i n t L2 , L2 , L2 , double H1 , H1 , H1 , double double double createMeanderTri( createMeanderSqr( createMeanderRamp( i n t x , > > > CAP , numPeriods , numPeriods , numPeriods , double double double double double double i n t GArea GArea GArea i n t i n t i n t THETA , < < < double gdsLayer ) gdsLayer ) gdsLayer ) H1 , H1 , H1 , L1 , L1 , L1 , numPeriods , numPeriods , numPeriods , createMeanderTri ( Struct currentStruct , createMeanderSqr ( Struct currentStruct , createRandomPolygons(Struct currentStruct , String createMeanderRamp( Struct currentStruct , i n t i n t i n t width , double i n t i n t i n t double double double gdsLayer ) gdsLayer ) gdsLayer ) double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t GArea createPolyPath ( GArea createPoints2Shape ( al , amplitude , amplitude , amplitude , i n t i n t i n t y , y , y , L1 , L1 , L1 , THETA , THETA , THETA , double > al , double double double amplitude , amplitude , double double double double double amplitude , double double double double Double uniqueStructName , > THETA , THETA , THETA , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c // polypath // randomPolygons // points2shape // meanderTri // meanderTri // meanderRamp // meanderRamp // meanderSqr // meanderSqr NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 y , y x , x , y , i n t W, W, x , y , height , height , double i n t i n t double double page 411 of 488 double double double THETA , double double numElements , double double x , gdsLayer ) x , i n t separation , y , double double numElements , x , i n t gdsLayer ) i n t THETA , H, double i n t double i n t gdsLayer , gdsLayer , double double double width , width , gdsLayer , double gdsLayer ) gdsLayer ) i n t i n t double double THETA , x , i n t RANDOMROTATION, RANDOMROTATION, i n t i n t n , THETA , separation , double double i n t delta , separation , double numSides , THETA , THETA , double y , y y , y numberOfLines , double boolean THETA , i n t double i n t n , width , double double double width , double double double createResoPatternPi( createResoPattern( createResoPatternRSA( H, i n t double x , x , RANDOMROTATION, RANDOMROTATION, > > > RANDOMROTATION, RANDOMROTATION, radiusY , radiusY , endW , double double space , i t e r a t i o n s , double GArea GArea GArea width , width , numSides , < < < double double i n t boolean rad , shapeReso) rad , W, W, double double double boolean i n t double createResoPatternPi ( Struct currentStruct , createResoPattern(Struct currentStruct , createRandomEllipses( Struct currentStruct , String createResoPatternRS(Struct currentStruct , createRandomEllipsesV( Struct currentStruct , String numberOfLines , double double i n t double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t GArea createResoPatternRS ( startW , radius , radiusX , radiusX , rad , rad , y , y , y , H, i t e r a t i o n s , i t e r a t i o n s , numElements , i n t double i n t i n t double double double double double double double double double gdsLayer) gdsLayer) gdsLayer , numberOfLines , uniqueStructName , uniqueStructName , shapeReso) shapeReso) p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void // resoPatternRSA // resoPatternRS // resoPatternRS // resoPatternPi // resoPatternPi // resoPattern // resoPattern // randomEllipsesV // randomEllipses NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , y , x , i n t i n t i n t x , y , W, W, i n t inc , x , y , H, H, double double double double double double double double page 412 of 488 double double THETA , double double double x , double THETA , double double i n t double double x , y , inc , inc , x , H, double double double gdsLayer , gdsLayer , gdsLayer , gdsLayer , delta , delta , double double double double double i n t i n t i n t i n t double x , separation , inc , a , double double delta , THETA , THETA , THETA , THETA , double double double double numberOfLines , endW , endW , separation , a , i n t double double double double double turns , turns , createSpiralArch ( createSpiralFermat ( createResoPatternLSA( H, double double double double > > > i n t i n t endW , space , space , space , double GArea GArea GArea < < < turns , turns , gdsLayer ) startW , startW , width , width , shapeReso) W, W, double double double double createSpiralArch ( Struct currentStruct , createSpiralFermat ( Struct currentStruct , createResoPatternLS(Struct currentStruct , createResoPatternLSA(Struct currentStruct , createResoPatternRSA(Struct currentStruct , i n t i n t i n t numberOfLines , double double gdsLayer ) i n t double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t GArea createResoPatternLS ( startW , y , y , i n t width , width , y , y , y , THETA , H, double double double double double double double double double double gdsLayer) gdsLayer , numberOfLines , numberOfLines , numberOfLines , shapeReso) shapeReso) shapeReso) shapeReso) shapeReso) THETA , p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void // spiralFermat // spiralFermat // resoPatternLS // resoPatternLSA // s p i r a l A r c h // resoPatternLSA // s p i r a l A r c h // resoPatternLS // resoPatternRSA NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 inc , THETA , x , y , x , y , double page 413 of 488 double double numTurns , double double double double inc , b , x , i n t x , double double numTurns , double pitch , double b , a , i n t double double double pitch , a , len , turns , createSpiralRect ( createSpiralLog ( double double > > i n t double len , GArea GArea < < turns , gdsLayer ) gdsLayer ) width , width , createSpiralRect ( Struct currentStruct , createSpiralLog ( Struct currentStruct , i n t i n t i n t double gdsLayer ) gdsLayer ) double double A r r a y L i s t A r r a y L i s t i n t i n t width , width , y , y , THETA , THETA , gdsLayer ) i n t double double double double double double THETA , THETA , p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c // s p i r a l R e c t // s p i r a l R e c t // spiralLog // spiralLog NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 i n t i n t i n t x , y , x , y , x , x , y , y , L2INV , x , y , L1INV , THETA ) page 414 of 488 double double double double double double double double THETA ) double double x , boolean x , double boolean x , x , THETA ) THETA ) x , THETA ) THETA ) double double L1INV , double double double double double THETA ) double Methods double double vernReso , vernReso , layerC , boolean THETA ) THETA ) double invW , i n t double double THETA ) Element vernReso , layerSquare , layerSquare , double double layerC , double vernReso , createAlign3Level ( createAlignVern ( createAlignFFFB2 ( createAlignVernLb1( createAlignFFFB1 ( i n t i n t layer2 , layer2 , layerB , double > > > > > i n t double Reticle i n t i n t i n t invL , double invW , GArea GArea GArea GArea GArea < < < < < and layerSquare , layerSquare , layer2 , layerB , double createAlign3Level ( Struct currentStruct , createAlignVern ( Struct currentStruct , createAlignFFFB2 ( Struct currentStruct , createAlignFFFB1 ( Struct currentStruct , createAlignVernLb1(Struct currentStruct , layerCross , layer1 , layer1 , layerCross , layerA , i n t i n t double i n t i n t layer2 , i n t i n t i n t i n t i n t A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t i n t L2INV , invL , y , y , y , y , y , Alignment layer1 , layerA , layerCross , layerCross , i n t i n t layer1 , double double double double double double boolean 4.2.7 p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c // alignVernLb1 // alignVern // alignVernLb1 // alignVern // align3Level // align3Level // alignFFFB2 // alignFFFB2 // alignFFFB1 // alignFFFB1 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , y , L1 , L1 , L1 , L1 , i n t double double i n t gdsLayer THETA ) IL , IW , page 415 of 488 double double double double double double i n t boolean x , y , y , y , y , INVERSE , double double double BW, BW, THETA , THETA ) IL , throws double double double double double FileNotFoundException boolean gdsLayer ) double x , x , x , x , double double vernReso , INVERSE , i n t LX , LX double BL, throws gdsLayer ) double double double double TYPE , double double boolean gdsLayer ) THETA , i n t double i n t vernReso , FileNotFoundException INVERSE , i n t d , d PW, PW, gdsLayer ) IW , createAlignVernLb2( createCnstContact5 ( String label , createCnstASML ( String label , String layer2 , double > > > double gdsLayer ) MIRROR , i n t throws i n t double double double boolean THETA , i n t double TYPE , GArea GArea GArea < < < PL , PL , L2, L2 , FileNotFoundException i n t IL , layer2 , boolean double MIRROR , createAlignVernLb2( Struct currentStruct , createCnstContact5 ( Struct currentStruct , String createCnstASML ( Struct currentStruct , String label , layer1 , gdsLayer ) THETA , i n t IW , double double double double i n t throws A r r a y L i s t A r r a y L i s t A r r a y L i s t GArea createCustomCrossC4 ( GArea createCustomCrossC3 ( GArea createCustomCrossC2 ( GArea createCustomCrossC1 ( i n t double TYPE , boolean y , W1, W1, W1, W1, W1, W1, W1, W1, double i n t double layer1 , IL , IW , i n t ) String barcode , label , FileNotFoundException double double double double double gdsLayer ) barcode , INVERSE , TYPE , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void // cnstASML // cnstASML // cnstContact5 // cnstContact5 // cnstContact7 // alignCustC4 // alignCustC3 // alignCustC2 // alignCustC1 // alignVernLb2 // alignVernLb2 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , y , pitch i n t double i n t double double x , y , arrowW , i n t t i c k s , THETA ) double double page 416 of 488 lineWidth , y , double x , arrowW , i n t fontReso , boolean i n t pitch , INVERSE2 , double double double W, W, double THETA , gdsLayer , double double x , y , double double double gdsLayer ) i n t x , double double y , t i c k s , String label1 , pitch , FileNotFoundException length , double boolean i n t shapeReso) INVERSE1 , L , double double W, W, vernierReso , i n t THETA ) fontReso , THETA , double x , double fontSize , double double throws length , double THETA , double double boolean x , double gdsLayer ) INVERSE1 , double double double L , L double i n t width , double double double THETA , THETA IW , double vernierReso , layer2 , gdsLayer ) createVerniers ( createCustomVerniers( createCnstContact7 ( String label , pitch , layer2 , spacing , boolean lineLength , double > > > i n t i n t double THETA , i n t fontSize , width , width , double double double GArea GArea GArea double double < < < double IW, IL , FileNotFoundException layer2 , spacing , double layer1 , double double double arrowL , createVerniers ( Struct currentStruct , MIRROR , createCustomVerniers(Struct currentStruct , createCnstContact7 ( Struct currentStruct , String layer1 , i n t layer2 , i n t double i n t double double throws A r r a y L i s t A r r a y L i s t A r r a y L i s t custom ve r n i e r s with t e x t l a b e l s custom ve r n i e r s with t e x t l a b e l s GArea createArrowLinearArray ( GArea createArrow ( GArea createArrowHead ( vernReso , i n t double y , − − IL , lineWidth , lineLength , boolean arrowL , arrowL , y , layer1 , double i n t double , String label1 , String label2 , String label2 , label , layer1 , double double double double double double gdsLayer) gdsLayer ) vernReso , shapeReso) numberOfArrows , INVERSE2 , arrowW , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void // arrowArray // arrow // v er n i e r s // arrowHead // v er n i e r s // alignCustVern // alignCustVern // cnstContact7 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x2 x2 , x2 , gap , double double x2 , double double double double b , b double x1 , double page 417 of 488 ENDCAPLEFT double y , y1 , gdsLayer ) double x1 , i n t slotWidth1 , double ENDCAPRIGHT , w2 , double y1 , i n t y1 , i n t double double y1 , i n t invWidth , gdsLayer ) w2 , double double y1 , gdsLayer ) a , a double double double THETA , i n t baseHeight , double x , THETA , double x1 , i n t gdsLayer ) THETA , double double double w1 , w2 , double x1 , double x1 , i n t double x1 , double THETA , w1 , double double ENDCAPLEFT , double x1 , double THETA , double double gdsLayer ) double i n t double double i n t slotWidth , double double gdsLayer ) y2 , w1 , Methods lambda , double double slotWidth , i n t deltaLength , invWidth , y2 , w2 , ENDCAPRIGHT , THETA , createLinearTaperInvSlot( createLinearTaperSlot( slotWidth2 , double double double THETA , double > > i n t Library double gdsLayer ) w, double double double double x2 , y2 , double w0 , w, GArea GArea i n t slotWidth2 , double double w, < < x2 , w1 , w, double ENDCAPRIGHT , double double createLinearTaperSlot ( Struct currentStruct , length , double double i n t double double y2 , ENDCAPLEFT , double double double gdsLayer ) x2 , y1 , A r r a y L i s t A r r a y L i s t GArea createLinearTaper ( GArea createWaveGuideExpander( GArea createWaveGuideInvSlot ( GArea createWaveGuideInv ( GArea createWaveGuideSlot ( GArea createWaveGuide ( y2, i n t y2, i n t slotWidth1 , slotWidth2 , double angle , y1 , y2 , y2 , ENDCAPRIGHT , double gdsLayer ) Nanophotonics double double i n t double i n t double x2 , THETA , , , slotWidth1 , double double width , double double double double x1 , y1 , ENDCAPLEFT , THETA , 4.2.8 p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c // l i n e a r T a p e r I n v S l o t // linearTaperSlot // linearTaperSlot // linearTaper // wgExpander // waveguideInvSlot // waveguideInv // waveguideSlot // waveguide NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 i n t w2 , w2 , Tx , y1, w2 , x1 , double i n t i n t double double double double y , y , i n t i n t nPoints , gdsLayer , page 418 of 488 THETA , y1 , double double double double double x1 , double shapeReso ) double i n t i n t THETA , THETA , slotW2 , L3 , L3 , wEnd , al , double double x1 , nPoints , THETA , w1 , double double > double x , x , double shapeReso ) wEnd , THETA , i n t nPoints , double double x1 , double double double double double double double Double i n t < double double double double double L2 , L2 , wEnd , y2 , double slotWidth2 , gdsLayer , wStart , slotW1 , wEnd , slotW2 , numSides , numSides , i n t double double double wStart , double i n t i n t double gdsLayer , double double double numPoints , double gdsLayer ) r , r , x2 , we1 , we1 , shapeReso ) i n t createExpTaperInvSlot( createExpTaperInv( THETA , i n t wStart , double i n t > > length , double double double double wStart , double W2, W2, double slotW1 , double THETA , GArea GArea slotWidth1 , double g , g , < < length , y1 , THETA , w1 , w1 , shapeReso) inverseWidth , double double double createLinearTaperInvSlot ( Struct currentStruct , createExpTaperInvSlot ( Struct currentStruct , createExpTaperInv( Struct currentStruct , double double double double double length , double double double double double gdsLayer , y1 , W1, W1, double A r r a y L i s t A r r a y L i s t GArea createDirectionalCoupler2( GArea createDirectionalCoupler1( GArea createCustomTaper( ArrayList GArea createExponentialTaper ( double shapeReso) i n t length , widthAround , x1 , L1 , y1 , L1 , Ty , gap , we2 , we2 , double double double double gdsLayer) L , inverseWidth , nPoints , double double double double double double double double double double gdsLayer) gdsLayer) widthAround , gdsLayer , x1 , y1 , THETA , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // directionalCoupler2 // directionalCoupler1 // exponentialTaperInvSlot // exponentialTaperInvSlot // customTaper // exponentialTaperInv // exponentialTaperInv // exponentialTaper // l i n e a r T a p e r I n v S l o t NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 i n t double double L , sleeve , r , length , HB , L , i n t gdsLayer length , length2 , y , y , double page 419 of 488 x2 , x2 , width , gdsLayer , i n t shapeReso ) double shapeReso ) double double double double double double i n t THETA , double double double double y , y , double double y , double L2 , LB , x , x , y1 , double gap, THETA , y1 , y1 , double gdsLayer , y1 , y1 , double THETA , double double i n t double double double double double double x , double double double double x , height3 , x , double double double gdsLayer , L1 , L1 , x1 , sleeve , gdsLayer , x1 , x1 , shapeReso ) THETA , shapeReso ) double x1 , x1 , i n t width , double i n t double double wEnd , double double double slotWidth , double double double double double double gdsLayer ) g , g , double double double THETA , THETA , double i n t length3 , width , double y3 , width , double double double double gdsLayer , gdsLayer ) gdsLayer , double wStart , shapeReso) THETA , wE , wE , W, W, double double i n t height , double i n t i n t width , x3 , double double double double double double GArea createYbendLH ( GArea createYbend ( GArea createSbendInvSlot ( GArea createSbendInv ( GArea createSbendLH ( GArea createSbend ( GArea createSbendFunnel ( GArea createSbendTaper ( GArea createDirectionalCoupler4( GArea createDirectionalCoupler3( shapeReso) height , height2 , double THETA , height , shapeReso) THETA , THETA , H, H, w, w, double double double double double double y2 , y2 , , length , double double double double double double double double gdsLayer , shapeReso) numSides , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c // yBendLH // yBend // sBendInvSlot // sBendInv // sBendLH // sBend // sBendFunnel // sBendTaper // directionalCoupler4 // directionalCoupler3 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 r1 , x2 , double double i n t sleeve , double length2 r1 , THETA , double double width , double page 420 of 488 double double double r1 , L1 , gdsLayer , double y1 , gdsLayer , y1 , double y , double THETA , double double y1 , y1 , i n t double y1 , i n t double shapeReso ) double double y , double y1 , height3 , numSides , gap, double gdsLayer ) double y , y , double double double THETA , double x1 , i n t sleeve , gdsLayer , THETA , x , x1 , i n t double double double x1 , x1 , height3 , double double x1 , i n t we , double double x , double double x1 , double double double double x , x , shapeReso ) numSides , THETA , double double double double double gdsLayer , THETA , double i n t length3 , double slotWidth , sleeve , width , width , g , double double i n t double double we , double length3 , double double double double double double THETA , double shapeReso ) width , gdsLayer , numSides , ws , double gap, w, height2 , i n t i n t height , height , height , double double double double w, double double gdsLayer ) GArea create180bend ( GArea create90degreeInvSlot ( GArea create90degreeBendLH ( GArea create90degreeInv ( GArea create90degreeBend ( GArea createYBendInvSlot90 ( GArea createYBendInv90 ( GArea createYBend90 ( GArea createYbendInvSlot ( GArea createYbendInv ( height2 , double double double double r2 , y2 , THETA , i n t sleeve , r2 , shapeReso) shapeReso) double gdsLayer , double double double double r2 , , i n t slotWidth , length , length , length , double length2 , double double double gdsLayer) shapeReso) THETA , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c // 180degreeBend // 90degreeBendInvSlot // 90degreeBendLH // 90degreeBendInv // 90degreeBend // yBendInvSlot90 // yBendInv90 // yBend90 // yBendInvSlot // yBendInv NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 L1 , x , i n t x , i n t deltaR double ENDCAP , x , L1 , i n t numSides length , gdsLayer ) page 421 of 488 double i n t i n t double double i n t double double double double THETA , y , i n t gdsLayer ) double double pitch , separation , deltaR , numSides , a , double We, y , i n t THETA , y , i n t turns , ENDCAP , double gdsLayer ) double numSides , THETA , double double double double i n t i n t double x , i n t double i n t separation , double a , double THETA , ENDCAP , x , length , double gap , x , turns , turns , turns , gdsLayer ) We, i n t THETA , double double double ENDCAP , i n t i n t i n t i n t length , double double double double double i n t sleeveWidth , double double THETA , numSides , W, W, turns , turns , W, W, width , width , double width , createSpiralDelayLineArchInv( createSpiralDelayLineArch( createSpiralDelayLineFermat( ENDCAP , i n t > > > i n t i n t double THETA , double i n t length , double W, W, radiusInner , double double double double gdsLayer ) GArea GArea GArea deltaR , D , < < < skippedTurns , D , width , width , width , double y , y , y , i n t length , double double createSpiralDelayLineArch ( Struct currentStruct , createSpiralDelayLineFermat ( Struct currentStruct , createSpiralDelayLineArchV2 ( Struct currentStruct , THETA , i n t double double double gdsLayer ) D , double gdsLayer ) double double double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t GArea createRaceTrack ( GArea create180bendInvSlot ( GArea create180bendInv ( length , THETA , i n t double double L2 , i n t deltaR , width , x , x , x , y , y , y , L2 , gdsLayer ) double double double i n t double L2 , , , separation , length , deltaR , stepsPerTurn , double double double double double double double double double gdsLayer) gdsLayer) THETA , ENDCAP , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c // spiralDelayLineArchInv // spiralDelayLineArchV2 // spiralDelayLineFermat // spiralDelayLineFermat // spiralDelayLineArch // spiralDelayLineArch // raceTrack // 180degreeBendInvSlot // 180degreeBendInv NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , i n t i n t R1 , R1 a , height double double y , y turns , turns , double double i n t turns , ENDCAP , double double length , page 422 of 488 i n t pitch , double double ENDCAPS , THETA , i n t i n t p3 , p3 d5 , d5 i n t i n t double double sleeve , angleStart , gdsLayer ) x , double turns , double double i n t double double boolean thetaC , ENDCAP , THETA , double i n t double i n t p2 , p2 d4 , d4 double increment , sleeveWidth , sleeveWidth , length , length , sleeveWidth , double double numberOfElements , pitch , Height , double double THETA , i n t skippedTurns , double double double shapeReso ) numElements , layerGrating , double double double p1 , p1 d3 , d3 i n t length , sleeveWidth , i n t double double i n t nCladding , double gdsLayer ) ratio , width , double width , W, W, width , width , createSpiralDelayLineFermatInv( createGratingCWG( i n t deltaR , double double double double > > double Length , length , double d2 , d2 gratingLength , double double double numSides , double double GArea GArea double gdsLayer ) < < stepsPerTurn , width , r , gdsLayer , y , y , ENDCAP , i n t nEff , deltaR , y , y , double i n t double double createSpiralDelayLineArchInv ( Struct currentStruct , createSpiralDelayLineFermatInv ( Struct currentStruct , createSpiralDelayLineArchV2Inv ( Struct currentStruct , createGrating ( Struct currentStruct , String name , createGratingCoupler ( Struct currentStruct , i n t i n t i n t double layerWaveGuide , gdsLayer ) double double double double gdsLayer ) y , d1 , d1 i n t double double double double A r r a y L i s t A r r a y L i s t GArea createApodizedGrating( Struct currentStruct , dutyCycleCutoff , i n t x , x , y , y , i n t gratingPeriod , pitch , separation , deltaR , angleEnd , x , wgWidth , x , a , THETA , THETA , double double gdsLayer ) double double double double double x , lambda0, , i n t double double double double double double double double double double double gdsLayer) numberOfLines , numSides , p4 , p4 THETA , ENDCAP , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // gratingCWG // apodizedGrating // gratingCoupler // grating // spiralDelayLineArchV2Inv // spiralDelayLineFermatInv // spiralDelayLineFermatInv // spiralDelayLineArchInv NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , y , R1 , R1 double x , pitchX , pitchX , pitchX , pitchX , double double i n t page 423 of 488 double double double double double ENDCAPS , i n t i n t double double gdsLayer ) gdsLayer , double x , sleeve , double double double double i n t i n t i n t i n t double double gdsLayer , gdsLayer , ratio , ratio , Height , Height , boolean thetaC , double double i n t i n t radius , radius , radius , radius , nCladding , nCladding , double double double double double numberOfElements , double double double double Height , shapeReso ) THETA , THETA , double double i n t layerWaveGuide , layerWaveGuide , numberOfSides , numberOfSides , numberOfSides , numberOfSides , shapeReso ) y , y y , y y , y y , y layerGrating , Length , Length , i n t i n t i n t i n t i n t i n t nEff , nEff , double double double double i n t nCladding , ratio , double double double double double createGratingCWGinv( gratingPeriod , gratingPeriod , double double x , x , x , x , > double double double Length , double numSides , numSides , ENDCAPS , ENDCAPS , gdsLayer ) gdsLayer , elementsY , elementsY , elementsY , elementsY , GArea double double < i n t i n t double double double double gdsLayer , i n t i n t nEff , wgWidth , wgWidth , i n t i n t i n t i n t double lambda0, lambda0, R1 , R1 , createHex ( Struct currentStuct , String createGratingCWGinv(Struct currentStruct , createHexV ( Struct currentStuct , String createPhC ( Struct currentStuct , String createPhCV ( Struct currentStuct , String createGratingCWG ( Struct currentStruct , i n t boolean boolean layerWaveGuide , i n t double double double A r r a y L i s t double double double double gratingPeriod , shapeReso) wgWidth , y , y , THETA , elementsX , elementsX , elementsX , elementsX , i n t i n t i n t i n t lambda0, arrayPitchDelta , arrayPitchDelta , layerGrating , layerGrating , sleeve , sleeve , double double double double double double thetaC , thetaC , uniqueStructName , uniqueStructName , uniqueStructName , uniqueStructName , shapeReso) shapeReso) numberOfElements , numberOfElements , numSides , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // hexV // hex // phCV // phC // gratingCWGinv // gratingCWGinv // gratingCWG NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , i n t x , x , x , x , double boolean boolean gap , double double double double gap , gap , gap , x , x , double double page 424 of 488 length2 , gdsLayer ) ENDCAP , double double double double sleeveWidth , sleeveWidth , gap2, double i n t double double double width2 , double double sleeve2 , gdsLayer ) double i n t double double double boolean double i n t double gdsLayer ) ENDCAP , i n t i n t i n t gap2, waveguideLength , waveguideLength , waveguideLength , waveguideLength , i n t ENDCAP , length2 , double width2 , boolean gdsLayer ) double double double double ringWidth , i n t ringWidth , ringWidth , ringWidth , ENDCAP , boolean waveguideWidth , waveguideWidth , waveguideWidth , waveguideWidth , numberOfSidesDiscRing , gap, gap, gap, gap, double numberOfSidesDiscRing , double numberOfSidesDiscRing , numberOfSidesDiscRing , i n t double i n t i n t i n t double double double double double double double boolean ENDCAP , sleeveWidth , sleeveWidth , double double double double gap2, sleeve2 , length2 , gdsLayer ) radius , radius , radius , radius , radius , radius , radius , radius , i n t double double double width2 , boolean double c r e a t e D i s c I n f i n i t e I n v ( Struct currentStuct , c r e a t e D i s c I n f i n i t e ( Struct currentStuct , c r e a t e R i n g I n f i n i t e I n v ( Struct currentStuct , c r e a t e R i n g I n f i n i t e ( Struct currentStuct , createDiscInfInvDS ( Struct currentStuct , createRingInfInvDS ( Struct currentStuct , createDiscInfDS ( Struct currentStuct , createRingInfDS ( Struct currentStuct , double gdsLayer ) gdsLayer ) double double double double double double double double i n t i n t double y , y , ENDCAP , width2 , waveguideLength , waveguideLength , waveguideLength , waveguideLength , y , y , y , y , y , y , gap2, double double ENDCAP , ENDCAP , length2 , double double double double double double double double double double numberOfSidesDiscRing , double double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesDiscRing , boolean gdsLayer) waveguideWidth , waveguideWidth , waveguideWidth , waveguideWidth , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // r i n g I n f I n v D S // d i s c I n f I n v D S // r i n g I n f i n i t e I n v // d i s c I n f i n i t e I n v // ringInfDS // discInfDS // r i n g I n f i n i t e // d i s c I n f i n i t e NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , x , x , ENDCAP ENDCAP double double i n t double double double boolean x , double double gap , gap , i n t double double i n t i n t page 425 of 488 length2 , double double gdsLayer ) double double gap , gap , i n t boolean double i n t double double double ENDCAP , gdsLayer ) double ENDCAP , double double i n t sleeveWidth , sleeveWidth , double waveguideHeight , waveguideHeight , sleeve2 , double boolean ENDCAP , i n t gap2, waveguideAngle , waveguideLength , waveguideLength , boolean double double double double ENDCAP , double shapeReso ) ringDiscSleeveWidth , ringWidth , double boolean waveguideWidth , length2 , double double double ringDiscSleeveWidth , ringWidth , ringWidth , boolean double gap, gap, gap, double numberOfSidesDiscRing , numberOfSidesDiscRing , double double width2 , double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , double double i n t i n t double numberOfSidesDiscRing , numberOfSidesDiscRing , waveguideHeight , waveguideWidth , waveguideWidth , i n t i n t sleeveWidth , sleeveWidth , double double double waveguideLength , waveguideLength , sleeve2 , double i n t i n t radius , radius , width2 , gdsLayer , radius , radius , radius , radius , radius , double double double shapeReso) i n t double double double double double c r e a t e D i s c I n f i n i t e I n v P o s ( Struct currentStuct , c r e a t e R i n g I n f i n i t e I n v P o s ( Struct currentStuct , createDiscInfInvPosDS ( Struct currentStuct , createRingInfInvPosDS ( Struct currentStuct , createDiscSymmetric(Struct currentStuct , createRingSymmetric(Struct currentStuct , createDiscSymDS ( Struct currentStruct , double double length2 , double gdsLayer ) double double y , y , double double double double i n t y , y , ENDCAP , width2 , waveguideAngle , waveguideAngle , y , y , y , gap2 , double gdsLayer ) double double i n t double double x , x , ENDCAP , , ringDiscSleeveWidth , ringDiscSleeveWidth , double double double double double double numberOfSidesDiscRing , double numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesDiscRing , boolean gdsLayer , waveguideLength , waveguideWidth , waveguideWidth , waveguideLength , waveguideLength , waveguideWidth , waveguideWidth , gap2, p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discSymDS // ringSymmetric // discSymmetric // ringInfInvPosDS // discInfInvPosDS // r i n g I n f i n i t e I n v P o s // d i s c I n f i n i t e I n v P o s NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x i n t x , double width2 angle2 gap , x , x , x , double gap , gap , double double i n t i n t i n t page 426 of 488 ENDCAP , double ENDCAP , double shapeReso ) gap2, double double double double double double double double double double double double waveguideWidth , length2 , waveguideWidth , boolean ENDCAP , double double boolean gap2, gap2, waveguideHeight , i n t shapeReso ) i n t gdsLayer , double i n t i n t double double waveguideAngle , waveguideAngle , Lc , i n t double double boolean height2 , double double gdsLayer , waveguideWidth , waveguideWidth , waveguideWidth , double double double width2 , i n t ringWidth , double ENDCAP , ringWidth , ringWidth , numberOfSidesDiscRing , waveguideHeight , waveguideHeight , gap , gap , gap , double numberOfSidesDiscRing , double double numberOfSidesDiscRing , gdsLayer , double i n t double numberOfSidesCouplingRegion , ENDCAP , i n t i n t i n t double double boolean length2 , double double waveguideHeight , waveguideHeight , waveguideHeight , i n t double double double waveguideLength , shapeReso ) angle2 , radius , radius , boolean shapeReso) radius , radius , radius , radius , double double double double shapeReso) shapeReso) ENDCAP , length2 , double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , createDiscSymPul ( Struct currentStruct , createDiscSymmetricLC(Struct currentStruct , createRingSymPul ( Struct currentStruct , createRingSymmetricLC(Struct currentStruct , createDiscSymLCDS(Struct currentStruct , createRingSymDS ( Struct currentStruct , double double double double i n t i n t double double double double double double double length2 , double width2 , boolean y , y y , waveguideLength , waveguideLength , waveguideAngle , Lc , Lc , y , y , y , y , gap2, gdsLayer , double double double double width2 , gdsLayer , , , , , i n t height2 , double double double double double double numberOfSidesDiscRing , double double double double numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , gdsLayer , waveguideLength , waveguideLength , gdsLayer , waveguideLength , waveguideWidth , shapeReso) p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discSymLCDS // ringSymmetricLC // discSymmetricLC // ringSymPul // discSymPul // ringSymDS NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , i n t x , x , x , width2 Lc2 , x , x , width2 , gap , boolean gap , gap , i n t i n t double double page 427 of 488 i n t double double gap2, double double shapeReso ) ENDCAP , double double double double double double double double double double double double double waveguideWidth , height2 , double double gap2, gap2, ENDCAP , i n t boolean gap2, i n t double i n t i n t i n t i n t double waveguideAngle , waveguideAngle , Lc , Lc1 , double double double boolean height2 , gdsLayer , gdsLayer ) gdsLayer ) waveguideWidth , waveguideWidth , waveguideWidth , waveguideWidth , double double double double i n t length2 , i n t i n t ringWidth , ringWidth , ringWidth , ringWidth , waveguideHeight , double numberOfSidesDiscRing , gap, gap, gap, gap, double double double numberOfSidesDiscRing , double numberOfSidesDiscRing , shapeReso ) double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , i n t double ENDCAP , i n t i n t double double double double ENDCAP , ENDCAP , waveguideHeight , waveguideHeight , i n t i n t double double double double waveguideLength , waveguideLength , length2 , double width2 , radius , radius , boolean radius , radius , radius , radius , radius , double double boolean boolean shapeReso) double double numberOfSidesCouplingRegion , double createDiscSymmetricA(Struct currentStruct , createRingSymmetricA(Struct currentStruct , createDiscSymLCPul(Struct currentStruct , createRingSymLCPul(Struct currentStruct , createDiscSymADS ( Struct currentStruct , createRingSymADS ( Struct currentStruct , createRingSymLCDS(Struct currentStruct , i n t double gdsLayer , double double double double double double double double length2 , i n t length2 , waveguideLength , y , y , width2 , waveguideAngle , waveguideAngle , Lc2 , Lc1 , y , y , y , y , y , double double double double double , double double double double numberOfSidesDiscRing , double double double double double double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , gdsLayer) waveguideWidth , waveguideLength , gdsLayer , waveguideLength , waveguideWidth , waveguideLength , ENDCAP , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // ringSymADS // discSymADS // ringSymmetricA // ringSymLCPul // discSymmetricA // ringSymLCDS // discSymLCPul NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , x , gap , x , x , double angle2 , double double length2 , gap , gap , gap , i n t page 428 of 488 double double double double double double double double length2 , double double length2 , double double double double double width2 , gdsLayer ) waveguideWidth , waveguideWidth , waveguideWidth , i n t gap2, i n t i n t i n t double double double double double double width2 , gdsLayer ) i n t i n t waveguideAngle , Lc , Lc , i n t double ENDCAP , double width2 , gdsLayer ) width2 , angle2 , waveguideWidth , waveguideWidth , waveguideWidth , ringWidth , double double double i n t ringWidth , ringWidth , numberOfSidesDiscRing , boolean ENDCAP , gap2, double double double gap , gap , gap , double numberOfSidesDiscRing , double numberOfSidesDiscRing , double numberOfSidesDiscRing , gdsLayer ) i n t double numberOfSidesCouplingRegion , i n t i n t i n t i n t double double ENDCAP , double boolean gap2, gap2, gap2, i n t double length2 , double double waveguideLength , gdsLayer ) radius , radius , gdsLayer ) gdsLayer ) i n t radius , radius , radius , radius , radius , double double double boolean ENDCAP , i n t i n t double double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , createDiscSymAPul(Struct currentStruct , createDiscSymmetricLCA(Struct currentStruct , createDiscSymLCAPul(Struct currentStruct , createRingSymmetricLCA(Struct currentStruct , createRingSymAPul(Struct currentStruct , createDiscSymLCADS( Struct currentStruct , createRingSymLCADS( Struct currentStruct , double double i n t i n t i n t double double double double double y , y , boolean ENDCAP , width2 , ENDCAP , ENDCAP , waveguideLength , waveguideLength , waveguideAngle , Lc , Lc , Lc1 , y , y , y , y , y , double double double boolean length2 , double double double double double double numberOfSidesDiscRing , double double double numberOfSidesDiscRing , double double numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , boolean boolean waveguideLength , waveguideLength , waveguideLength , waveguideWidth , waveguideLength , x , x , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discSymLCAPul // ringSymLCADS // discSymLCADS // ringSymmetricLCA // discSymmetricLCA // ringSymAPul // discSymAPul NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , x , x , gap , double double double double double double double double gap , gap , i n t i n t i n t double width2 , page 429 of 488 double double double double double double double double boolean shapeReso ) sleeve2 , double double double double double width2 , double width2 , ENDCAP , i n t double shapeReso ) i n t length2 , double double Lc2 , waveguideHeight , waveguideHeight , i n t i n t waveguideLength , waveguideLength , waveguideLength , double waveguideAngle , waveguideAngle , Lc1 , boolean double double double double double width2 , gdsLayer , angle2 , shapeReso ) Lc2 , double double double gdsLayer ) waveguideWidth , waveguideWidth , waveguideWidth , ringWidth , double double double i n t i n t ringWidth , ringWidth , height2 , numberOfSidesDiscRing , gap2, double double double double gdsLayer , gap, gap, gap, sleeve2 , double numberOfSidesDiscRing , double numberOfSidesDiscRing , double gdsLayer ) shapeReso ) i n t double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , i n t i n t i n t i n t double double double double ENDCAP , gap2, gap2, gap2, ENDCAP , i n t i n t i n t sleeveWidth , sleeveWidth , sleeveWidth , double double double double double radius , radius , waveguideLength , gdsLayer , waveguideLength , ENDCAP , radius , radius , radius , radius , double double double boolean shapeReso) ENDCAP , i n t length2 , double double double boolean createDiscSymInvPul( Struct currentStruct , createDiscSymmetricInv( Struct currentStruct , createRingSymmetricInv( Struct currentStruct , createDiscSymInvDS(Struct currentStruct , createRingSymInvDS(Struct currentStruct , createRingSymLCAPul(Struct currentStruct , width2 , double double double double gdsLayer , double double double double double boolean y , y , double boolean i n t waveguideLength , ENDCAP , double length2 , waveguideAngle , waveguideAngle , waveguideAngle , y , y , y , y , double double length2 , double gap2, sleeveWidth , sleeveWidth , sleeve2 , length2 , double double double double double numberOfSidesDiscRing , double double double numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesDiscRing , waveguideHeight , numberOfSidesCouplingRegion , waveguideHeight , numberOfSidesCouplingRegion , waveguideHeight , boolean gdsLayer , waveguideWidth , waveguideWidth , waveguideLength , waveguideWidth , x , x , ENDCAP , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discSymInvPul // ringSymInvDS // discSymInvDS // ringSymmetricInv // ringSymLCAPul // discSymmetricInv NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x , x , x , double double gap , length2 double gap , double i n t double double double page 430 of 488 double double double shapeReso ) double boolean shapeReso ) i n t double double length2 , double double double waveguideHeight waveguideWidth , waveguideHeight , waveguideWidth , sleeve2 , double double i n t i n t length2 , double double double gdsLayer , i n t sleeve2 , double double waveguideHeight , waveguideHeight , waveguideHeight , i n t waveguideLength , ringWidth , double waveguideAngle , Lc , Lc , i n t numberOfSidesDiscRing , double gdsLayer , double double double double gdsLayer , shapeReso ) shapeReso ) sleeve2 , double waveguideWidth , waveguideWidth , waveguideWidth , i n t double double double double i n t width2 , i n t ringWidth , ENDCAP , ringWidth , numberOfSidesDiscRing , double double numberOfSidesDiscRing , gap , gap , gap , sleeve2 , double double double double width2 , shapeReso ) waveguideLength , i n t radius , radius , double numberOfSidesCouplingRegion , waveguideLength , i n t double ENDCAP , double boolean ENDCAP , i n t sleeveWidth , double double double double double double Lc2 , double width2 , double double double gdsLayer , waveguideLength , gdsLayer , waveguideLength , waveguideLength , radius , Lc , radius , radius , boolean radius , boolean y , y , i n t i n t height2 , double numberOfSidesCouplingRegion , double numberOfSidesCouplingRegion , createDiscSymInvLCPul(Struct currentStruct , createDiscSymmetricInvLC( Struct currentStruct , createRingSymInvPul(Struct currentStruct , createRingSymmetricInvLC( Struct currentStruct , createDiscSymInvLCDS(Struct currentStruct , createRingSymInvLCDS(Struct currentStruct , double width2 , angle2 , double double double i n t double double gdsLayer , i n t double double double double double height2 , double y , gap2, i n t sleeveWidth , y , y , gap2, ENDCAP , ENDCAP , sleeveWidth , double double Lc , x , Lc1 , x , y , gap , double double double double double double double gap2, gap2, , , , sleeveWidth , sleeveWidth , sleeveWidth , length2 , double double double double numberOfSidesDiscRing , double double numberOfSidesDiscRing , double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesDiscRing , boolean waveguideHeight , numberOfSidesCouplingRegion , boolean waveguideWidth , shapeReso) ENDCAP , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discSymInvLCPul // ringSymInvLCDS // discSymInvLCDS // ringSymmetricInvLC // discSymmetricInvLC // ringSymInvPul NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x , x , x , x , gap, double ENDCAP ENDCAP double double double double boolean gap , length2 , gap , double i n t i n t double double length2 , double width2 , gdsLayer ) page 431 of 488 double double double double double i n t double boolean shapeReso ) double double double double double gdsLayer ) double double i n t i n t i n t double i n t ENDCAP , i n t length2 , waveguideHeight , gap2, i n t sleeve2 , waveguideLength , waveguideLength , waveguideLength , waveguideAngle , waveguideAngle , Lc1 , sleeve2 , ENDCAP , double double double boolean ringWidth , double double double double waveguideWidth , gdsLayer , waveguideWidth , waveguideWidth , double double double ringWidth , double ringWidth , numberOfSidesDiscRing , i n t ringWidth , boolean numberOfSidesDiscRing , gap, gap, gap, i n t double double double numberOfSidesDiscRing , double sleeve2 , width2 , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , double numberOfSidesCouplingRegion , i n t double width2 , i n t double i n t ENDCAP , i n t i n t sleeveWidth , sleeveWidth , sleeveWidth , length2 , double double double radius , radius , double double gdsLayer ) waveguideLength , waveguideLength , waveguideLength , radius , double radius , radius , i n t radius , radius , double double double double boolean createDiscSymInvAPul( Struct currentStruct , createDiscSymmetricInvA(Struct currentStruct , createRingSymInvAPul(Struct currentStruct , createRingSymmetricInvA(Struct currentStruct , createRingSymInvLCPul(Struct currentStruct , createDiscSymInvADS(Struct currentStruct , createRingSymInvADS(Struct currentStruct , double double Lc2 , double double double width2 , gdsLayer ) angle2 , double double double y , y , double double i n t y , y ENDCAP , waveguideAngle , y , y , sleeve2 , height2 , double waveguideAngle , waveguideAngle , y , y , double double gdsLayer ) double double i n t double double double double boolean x , x , gap2, ENDCAP , , , sleeveWidth , sleeveWidth , sleeveWidth , double double double double double numberOfSidesDiscRing , double numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesCouplingRegion , waveguideWidth , waveguideWidth , waveguideWidth , gap2, gap2, p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discSymInvAPul // ringSymInvAPul // ringSymInvADS // discSymInvADS // ringSymmetricInvA // discSymmetricInvA // ringSymInvLCPul NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x i n t i n t gap , gap , boolean ENDCAP , double double double double double i n t double width2 , gdsLayer ) angle2 , Lc2 , page 432 of 488 i n t double double ENDCAP , ENDCAP , double i n t i n t double double double double boolean gdsLayer ) waveguideWidth , gap2, waveguideWidth , gap2, double double double i n t ENDCAP , i n t boolean boolean i n t i n t i n t i n t double double ENDCAP , double double gap2, gap2, gap2, length2 , waveguideLength , ringWidth , waveguideAngle , Lc , Lc , Lc1 , boolean ENDCAP , numberOfSidesDiscRing , length2 , length2 , double double double boolean double double waveguideWidth , waveguideWidth , waveguideWidth , waveguideWidth , i n t ringWidth , double double double double double ringWidth , numberOfSidesDiscRing , boolean double length2 , numberOfSidesDiscRing , double gap , gap , gap , gap , double double double double i n t double waveguideLength , i n t radius , radius , sleeve2 , double numberOfSidesCouplingRegion , waveguideLength , double i n t sleeveWidth , length2 , double double double double sleeve2 , sleeve2 , double radius , radius , double double double double waveguideLength , waveguideLength , waveguideLength , waveguideLength , radius , radius , Lc , y , y , double double numberOfSidesCouplingRegion , sleeve2 , double double numberOfSidesCouplingRegion , createDiscSymInvLCAPul(Struct currentStruct , createDiscSymmetricInvLCA(Struct currentStruct , createRingSymInvLCAPul(Struct currentStruct , createRingSymmetricInvLCA(Struct currentStruct , createDiscSymInvLCADS(Struct currentStruct , createRingSymInvLCADS(Struct currentStruct , double double double double double double gdsLayer ) i n t double double double width2 , i n t double double y , y , i n t y , y y , sleeveWidth , double sleeveWidth , sleeve2 , width2 , width2 , Lc , Lc1 , x , x , gap , double gdsLayer ) double double double double i n t double ENDCAP , , , sleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , double double numberOfSidesDiscRing , double double numberOfSidesCouplingRegion , numberOfSidesDiscRing , double double double double numberOfSidesDiscRing , double gdsLayer) numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesDiscRing , width2 , numberOfSidesCouplingRegion , gdsLayer) gdsLayer) waveguideWidth , x , x , Lc2 , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // ringSymInvLCAPul // discSymInvLCAPul // ringSymInvLCADS // discSymInvLCADS // ringSymmetricInvLCA // discSymmetricInvLCA NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x i n t double double double length2 double double double double double double double double double double i n t i n t i n t page 433 of 488 i n t i n t shapeReso ) gap , gap , gap , boolean shapeReso ) double double sleeve2 , double double double double double double double double double double double shapeReso ) double length2 , double double sleeve2 , waveguideHeight , waveguideHeight , waveguideHeight , waveguideLength , waveguideLength , waveguideLength , ringDiscSleeveWidth , ringWidth , waveguideAngle , waveguideAngle , waveguideAngle , double double gdsLayer , double double double double width2 , gdsLayer , shapeReso ) double double double waveguideWidth , waveguideWidth , waveguideWidth , ringDiscSleeveWidth , ringWidth , double double double double double i n t ringDiscSleeveWidth , ringWidth , i n t double double gdsLayer , gap, gap, gap, sleeve2 , double double double width2 , shapeReso ) double double radius , radius , double double i n t ENDCAP , numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesDiscRing , ENDCAP , gap2, sleeveWidth , sleeveWidth , sleeveWidth , double double double double double double i n t i n t i n t radius , radius , double double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , waveguideLength , waveguideLength , gdsLayer , waveguideLength , radius , radius , boolean ENDCAP , double boolean y , y , i n t i n t i n t i n t double double double createDiscSymInvPosPul( Struct currentStruct , createDiscSymmetricInvPos(Struct currentStruct , createRingSymInvPosPul( Struct currentStruct , createRingSymmetricInvPos(Struct currentStruct , createDiscSymInvPosDS(Struct currentStruct , createRingSymInvPosDS(Struct currentStruct , width2 , angle2 , double double double double double double double gdsLayer , double double boolean y , y , height2 , y , y y , y i n t ENDCAP , double double x , x , double double double double double length2 , gap2, gap2, , , , ringDiscSleeveWidth , ringDiscSleeveWidth , ringDiscSleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , double double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , waveguideHeight , waveguideHeight , boolean waveguideAngle , waveguideAngle , waveguideWidth , waveguideAngle , waveguideWidth , waveguideWidth , x , x , ENDCAP , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // ringSymInvPosPul // ringSymInvPosDS // discSymInvPosPul // ringSymmetricInvPos // discSymInvPosDS // discSymmetricInvPos NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 i n t double double double double double double double double double double double i n t i n t length2 , page 434 of 488 double gap , gap , gap , boolean boolean double shapeReso ) double double double width2 , i n t double ENDCAP , double double double i n t double i n t double Lc , length2 , length2 , double ringDiscSleeveWidth , ringWidth , waveguideHeight , waveguideHeight , waveguideHeight , waveguideHeight , waveguideHeight , waveguideWidth , waveguideWidth , ringDiscSleeveWidth , ringWidth , Lc , Lc1 , sleeve2 , boolean double double double double double double double double double double double double angle2 , shapeReso ) shapeReso ) ringDiscSleeveWidth , ringWidth , gdsLayer , waveguideWidth , waveguideWidth , waveguideWidth , double double double double double gap , i n t height2 , double double double gap , gap , radius , radius , sleeve2 , sleeve2 , double double double double double shapeReso ) shapeReso ) radius , radius , double width2 , numberOfSidesDiscRing , numberOfSidesDiscRing , double numberOfSidesDiscRing , gap2, ENDCAP , double double double double double double double double i n t i n t i n t radius , radius , double double waveguideLength , waveguideLength , waveguideLength , gdsLayer , gdsLayer , waveguideLength , waveguideLength , double y , y y , y double shapeReso) y , y , i n t i n t length2 , boolean createDiscSymmetricInversePosLC( Struct currentStruct createDiscSymInvPosLCPul( Struct currentStruct , createRingSymmetricInversePosLC( Struct currentStruct createRingSymInvPosLCPul(Struct currentStruct , createDiscSymInvPosLCDS(Struct currentStruct , createRingSymInvPosLCDS(Struct currentStruct , double double width2 , width2 , Lc2 , double double double double double double double gdsLayer , gdsLayer , y , y , double double double double x , x , i n t i n t numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , ENDCAP , ENDCAP , height2 , double double double x , x , i n t i n t double double numberOfSidesDiscRing , double double x , x , gap2, gap2, gap2, , , i n t ringDiscSleeveWidth , ringDiscSleeveWidth , ringDiscSleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , sleeve2 , double double double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , boolean waveguideHeight , boolean gdsLayer , Lc , Lc , ENDCAP , ENDCAP , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // ringSymInvPosLCPul // discSymInvPosLCPul // ringSymInvPosLCDS // discSymInvPosLCDS // ringSymmetricInvPosLC // discSymmetricInvPosLC NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 i n t i n t double ENDCAP ENDCAP double double double double double double boolean double double i n t i n t i n t i n t width2 , gdsLayer ) angle2 , page 435 of 488 i n t double double gap , gap , gap , ENDCAP , i n t double boolean double double double gdsLayer ) double double double double double i n t double double double sleeve2 , double boolean double waveguideHeight , gdsLayer , waveguideWidth , ENDCAP , length2 , gap2, gap2, waveguideLength , waveguideLength , ringDiscSleeveWidth , ringWidth , waveguideAngle , waveguideAngle , waveguideAngle , i n t double ENDCAP , length2 , double double double double double boolean ringDiscSleeveWidth , ringWidth , double double waveguideWidth , waveguideWidth , waveguideWidth , ringDiscSleeveWidth , ringWidth , double double double double double ENDCAP , width2 , boolean double gap, gap, gap, double double double double double sleeve2 , double double radius , radius , numberOfSidesDiscRing , double numberOfSidesDiscRing , numberOfSidesDiscRing , boolean sleeveWidth , sleeveWidth , length2 , double double double sleeve2 , i n t i n t i n t radius , radius , double waveguideLength , radius , radius , double double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , waveguideLength , waveguideLength , waveguideLength , Lc2 , y , y , i n t i n t i n t height2 , double double double double createDiscSymInvPosAPul(Struct currentStruct , createDiscSymmetricInvPosA(Struct currentStruct , createRingSymInvPosAPul(Struct currentStruct , createRingSymmetricInvPosA(Struct currentStruct , createDiscSymInvPosADS(Struct currentStruct , createRingSymInvPosADS(Struct currentStruct , double double double double double double double double double width2 , gdsLayer ) y , y , double double y , y , i n t double numberOfSidesCouplingRegion , sleeve2 , width2 , x , x , gap2, double gdsLayer ) i n t double double double double i n t sleeveWidth , x , x , ENDCAP , , ringDiscSleeveWidth , ringDiscSleeveWidth , ringDiscSleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , length2 , double double double double double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , gdsLayer) waveguideAngle , waveguideAngle , waveguideAngle , waveguideWidth , waveguideWidth , shapeReso) x , x , Lc1 , gap2, p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // ringSymInvPosAPul // discSymInvPosAPul // ringSymInvPosADS // ringSymmetricInvPosA // discSymInvPosADS // discSymmetricInvPosA NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 i n t i n t i n t i n t i n t double double double double double double double length2 , Lc2 , width2 , width2 , gdsLayer ) gdsLayer ) Lc2 , page 436 of 488 gap , gap , gap , ENDCAP , ENDCAP , i n t i n t double double double double double double double gdsLayer ) gdsLayer ) double double double double i n t i n t double double double i n t boolean boolean i n t i n t waveguideWidth , gap2, ENDCAP , ENDCAP , waveguideWidth , waveguideWidth , gap2, gap2, gap2, sleeve2 , waveguideLength , ringDiscSleeveWidth , ringDiscSleeveWidth , ringDiscSleeveWidth , ringWidth , ringWidth , ringWidth , Lc , Lc , Lc1 , ENDCAP , ENDCAP , length2 , length2 , double double double double double double double boolean boolean double double waveguideWidth , waveguideWidth , waveguideWidth , double double double double double double double double double boolean boolean double double gap , gap , gap , double double double width2 , radius , radius , radius , radius , radius , radius , numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesDiscRing , sleeveWidth , length2 , length2 , double double double sleeve2 , sleeve2 , i n t i n t i n t double gdsLayer ) waveguideLength , double double double double double double waveguideLength , waveguideLength , waveguideLength , waveguideLength , waveguideLength , i n t y , y , y , y , y , y , double double double double double createDiscSymInvPosLCAPul(Struct currentStruct , createDiscSymmetricInvPosLCA(Struct currentStruct , createRingSymInvPosLCAPul(Struct currentStruct , createRingSymmetricInvPosLCA(Struct currentStruct , createDiscSymInvPosLCADS(Struct currentStruct , createRingSymInvPosLCADS( Struct currentStruct , double double double double double double angle2 , double double double double double double numberOfSidesCouplingRegion , ENDCAP , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , sleeve2 , sleeve2 , width2 , width2 , x , x , x , x , x , x , double i n t i n t i n t sleeveWidth , boolean ringDiscSleeveWidth , ringDiscSleeveWidth , ringDiscSleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , double double double double double double numberOfSidesDiscRing , double double double double gdsLayer) numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesDiscRing , gdsLayer) numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , waveguideWidth , Lc , Lc , Lc1 , gap2, p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // ringSymInvPosLCAPul // discSymInvPosLCAPul // ringSymInvPosLCADS // discSymInvPosLCADS // ringSymmetricInvPosLCA // discSymmetricInvPosLCA NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 width2 angle2 x , x , x , x , i n t x , x , double gap , gap , gap , i n t i n t i n t i n t page 437 of 488 ENDCAP , double double double shapeReso ) double double double double double double double double double double double double double double ENDCAP , length2 , boolean ENDCAP , double gap2, gap2, waveguideHeight , waveguideHeight , waveguideHeight , shapeReso ) boolean i n t i n t i n t double waveguideAngle , waveguideAngle , waveguideAngle , double double boolean heigth2 , double double double double gdsLayer , shapeReso ) waveguideWidth , waveguideWidth , waveguideWidth , length2 , double double double width2 , i n t double ringWidth , ringWidth , ringWidth , double gap, gap, gap, double double double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesDiscRing , gdsLayer , double double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , ENDCAP , i n t i n t i n t i n t double double double length2 , waveguideHeight , waveguideHeight , waveguideHeight , i n t i n t i n t double double double waveguideLength , waveguideLength , waveguideLength , shapeReso ) width2 , gdsLayer , angle2 , boolean radius , radius , radius , radius , radius , radius , double double double double shapeReso) shapeReso) ENDCAP , i n t double double double createDiscPulley ( Struct currentStruct , createDiscPulPul ( Struct currentStruct , createRingPulley ( Struct currentStruct , createRingPulPul ( Struct currentStruct , createDiscPulDS( Struct currentStruct , createRingPulDS( Struct currentStruct , double double double double double double double double double double double length2 , width2 , boolean ENDCAP , waveguideAngle , waveguideAngle , waveguideAngle , y , y , y , y , y , y , gap2 , gap2, gdsLayer , double double , , i n t heigth2 , double double double double double double double double double double double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , boolean gdsLayer , gdsLayer , waveguideLength , waveguideLength , waveguideLength , waveguideWidth , waveguideWidth , waveguideWidth , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // r i n g P u l P u l // discPulDS // r i n g P u l l e y // ringPulDS // d i s c P u l P u l // d i s c P u l l e y NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 i n t i n t x , x , x , x , x , x , x , double width2 Lc2 , boolean gap , gap , gap , i n t page 438 of 488 gap2, ENDCAP , double double double double double shapeReso ) gap2, ENDCAP , double double double double double double double double double double double waveguideWidth , waveguideWidth , waveguideWidth , heigth2 , double ENDCAP , double double boolean gap2, gap2, i n t boolean i n t i n t double gdsLayer , double double i n t i n t i n t double Lc , Lc , Lc1 , i n t double double boolean heigth2 , gdsLayer , waveguideWidth , waveguideWidth , waveguideWidth , double double double i n t length2 , ENDCAP , ringWidth , ringWidth , ringWidth , waveguideHeight , double waveguideHeight , waveguideHeight , gap , gap , gap , double double numberOfSidesDiscRing , double numberOfSidesDiscRing , numberOfSidesDiscRing , shapeReso ) double ENDCAP , i n t i n t i n t double double double double boolean double double waveguideHeight , waveguideHeight , waveguideHeight , double double double length2 , double width2 , boolean shapeReso) radius , radius , radius , radius , radius , radius , double double double shapeReso) shapeReso) length2 , numberOfSidesCouplingRegion , double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , createDiscPulleyA ( Struct currentStruct , createDiscPulleyLC ( Struct currentStruct , createDiscPulLCPul ( Struct currentStruct , createRingPulleyLC ( Struct currentStruct , createRingPulLCPul ( Struct currentStruct , createDiscPulLCDS( Struct currentStruct , createRingPulLCDS(Struct currentStruct , i n t double gdsLayer , i n t i n t double double double double double double double double double length2 , double i n t waveguideLength , width2 , waveguideLength , waveguideLength , Lc , Lc , Lc2 , Lc1 , y , y , y , y , y , y , double double width2 , gdsLayer , , double double double double double double numberOfSidesDiscRing , double double double double double double double numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , gdsLayer , waveguideLength , waveguideLength , gdsLayer , waveguideLength , shapeReso) ENDCAP , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // ringPulLCPul // discPulleyA // ringPulLCDS // discPulLCPul // discPulLCDS // ringPulleyLC // discPulleyLC NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , x , x , x , x , x , double width2 , angle2 , gap , gap , gap , gap , i n t i n t i n t page 439 of 488 double double i n t double double double double double double double double double double length2 , double double double double double double double width2 , gdsLayer ) waveguideWidth , i n t ENDCAP , gap2, gap2, double double double gdsLayer ) i n t i n t i n t waveguideAngle , waveguideAngle , waveguideAngle , i n t double double boolean ENDCAP , width2 , gdsLayer ) gdsLayer ) angle2 , waveguideWidth , waveguideWidth , waveguideWidth , double double double i n t i n t ringWidth , ringWidth , ringWidth , boolean ENDCAP , double double gap, gap, gap, double numberOfSidesDiscRing , double numberOfSidesDiscRing , double numberOfSidesDiscRing , numberOfSidesDiscRing , gdsLayer ) numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , i n t i n t i n t i n t i n t double double double ENDCAP , ENDCAP , boolean gap2, gap2, i n t i n t i n t length2 , double double double waveguideLength , waveguideLength , waveguideLength , gdsLayer ) radius , radius , radius , radius , radius , radius , radius , double double boolean boolean ENDCAP , i n t double double double double numberOfSidesCouplingRegion , createDiscPulAPul ( Struct currentStruct , createRingPulleyA ( Struct currentStruct , createDiscPulleyLCA ( Struct currentStruct , createRingPulAPul ( Struct currentStruct , createRingPulleyLCA( Struct currentStruct , createDiscPulADS ( Struct currentStruct , createRingPulADS ( Struct currentStruct , i n t double double double double double double double boolean length2 , width2 , ENDCAP , waveguideLength , waveguideAngle , waveguideAngle , waveguideAngle , Lc , y , y , y , y , y , y , y , double double length2 , double double double double double double double numberOfSidesDiscRing , double double double numberOfSidesDiscRing , double double numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , boolean gdsLayer) waveguideLength , waveguideWidth , waveguideLength , waveguideWidth , waveguideLength , waveguideWidth , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // ringPulleyLCA // discPulleyLCA // ringPulAPul // discPulAPul // ringPulADS // discPulADS // ringPulleyA NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , gap , x , x , double double double length2 , gap , gap , i n t double double width2 , page 440 of 488 double double double double double shapeReso ) length2 , double double double double double double double waveguideWidth , waveguideWidth , double width2 , i n t i n t double i n t i n t double double Lc2 , double waveguideHeight , width2 , i n t i n t i n t waveguideLength , double waveguideAngle , Lc , Lc , Lc1 , double double double width2 , gdsLayer ) gdsLayer , shapeReso ) Lc2 , ringWidth , double gdsLayer ) waveguideWidth , waveguideWidth , waveguideWidth , waveguideWidth , double double double double i n t i n t numberOfSidesDiscRing , i n t ringWidth , ringWidth , ringWidth , gap2, gap2, double double double gap , gap , gap , gap , i n t double double double double numberOfSidesDiscRing , double numberOfSidesDiscRing , gdsLayer ) numberOfSidesCouplingRegion , i n t i n t i n t double double double double ENDCAP , ENDCAP , i n t double gap2, gap2, ENDCAP , sleeveWidth , double double double double radius , radius , gdsLayer ) gdsLayer ) gdsLayer , waveguideLength , i n t radius , radius , radius , radius , radius , double double boolean boolean ENDCAP , i n t i n t double numberOfSidesCouplingRegion , boolean numberOfSidesCouplingRegion , cre ate Di scP ull ey Inv er se ( Struct currentStruct , createRingPulleyInverse ( Struct currentStruct , createDiscPulLCAPul ( Struct currentStruct , createRingPulLCAPul(Struct currentStruct , createDiscPulLCADS(Struct currentStruct , createRingPulLCADS(Struct currentStruct , double double double i n t i n t y , y , double double double double double boolean ENDCAP , waveguideAngle , waveguideLength , ENDCAP , ENDCAP , length2 , waveguideLength , Lc , Lc1 , y , y , y , y , y , double double double double boolean x , x , sleeveWidth , length2 , double numberOfSidesDiscRing , double double double double numberOfSidesDiscRing , double double double double numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesDiscRing , waveguideHeight , numberOfSidesCouplingRegion , boolean numberOfSidesCouplingRegion , boolean waveguideWidth , waveguideLength , waveguideLength , waveguideLength , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // r i n g P u l l e y I n v // ringPulLCAPul // d i s c P u l l e y I n v // discPulLCAPul // ringPulLCADS // discPulLCADS NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x , x , x , x , x , double double double gap , length2 double double double double gap , gap , double i n t i n t double i n t page 441 of 488 double double double double double double double shapeReso ) double boolean shapeReso ) double sleeve2 , double double double double width2 , waveguideHeight , waveguideWidth , ENDCAP , double double shapeReso ) length2 , double double sleeve2 , double double waveguideHeight , waveguideHeight , i n t i n t waveguideLength , waveguideLength , waveguideLength , waveguideAngle , waveguideAngle , boolean double numberOfSidesDiscRing , double gdsLayer , shapeReso ) double double double width2 , gdsLayer , angle2 , double double double waveguideWidth , waveguideWidth , i n t double double i n t i n t ringWidth , ringWidth , height2 , double numberOfSidesDiscRing , double double gdsLayer , gap, gap, sleeve2 , double double numberOfSidesDiscRing , numberOfSidesDiscRing , width2 , shapeReso ) i n t radius , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , waveguideLength , i n t ENDCAP , i n t i n t double double double ENDCAP , gap2, gap2, i n t i n t i n t sleeveWidth , sleeveWidth , sleeveWidth , double double double double double gdsLayer , double double waveguideLength , waveguideLength , radius , Lc , boolean ENDCAP , i n t radius , radius , radius , radius , double double boolean shapeReso) y , length2 , double double double numberOfSidesCouplingRegion , createDiscPulInvPul ( Struct currentStruct , createRingPulInvPul ( Struct currentStruct , createDiscPulleyInvLC ( Struct currentStruct , createDiscPulleyInverseLC ( Struct currentStruct , createDiscPulInvDS ( Struct currentStruct , createDiscPulInvLCDS ( Struct currentStruct , createRingPulInvDS ( Struct currentStruct , width2 , angle2 , double double double double gdsLayer , i n t double double double double double double boolean height2 , double y , ENDCAP , i n t sleeveWidth , double double waveguideAngle , waveguideAngle , Lc , x , y , y , y , y , gap , double double length2 , boolean gap2, gap2, , , sleeveWidth , sleeveWidth , sleeve2 , double double double double double double double double numberOfSidesDiscRing , double double numberOfSidesDiscRing , waveguideHeight , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , waveguideHeight , waveguideHeight , waveguideWidth , gdsLayer , waveguideWidth , waveguideWidth , ENDCAP , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discPulInvLCDS // discPulleyInvLC // discPulleyInvLC // r i n g P u l I n v P u l // d i s c P u l I n v P u l // ringPulInvDS // discPulInvDS NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x x , x , x , x , double double gap , boolean gap , gap , gap , double double i n t double double double double length2 , gdsLayer ) page 442 of 488 double double double double double boolean i n t double double shapeReso ) double double length2 , double double waveguideHeight waveguideWidth , waveguideHeight , waveguideWidth , double sleeve2 , i n t i n t double i n t length2 , double double double gdsLayer , ENDCAP , i n t i n t double double waveguideHeight , waveguideHeight , waveguideLength , double waveguideAngle , Lc , Lc1 , i n t sleeve2 , double double double boolean shapeReso ) sleeve2 , double waveguideWidth , gdsLayer , waveguideWidth , waveguideWidth , double double double ringWidth , double width2 , ringWidth , ringWidth , ENDCAP , i n t numberOfSidesDiscRing , numberOfSidesDiscRing , double numberOfSidesDiscRing , gap , gap , gap , sleeve2 , double numberOfSidesDiscRing , double double double shapeReso ) waveguideLength , i n t double numberOfSidesCouplingRegion , double numberOfSidesCouplingRegion , waveguideLength , i n t i n t double double width2 , i n t boolean ENDCAP , i n t i n t sleeveWidth , double double double double double Lc2 , double width2 , double waveguideLength , waveguideLength , gdsLayer , waveguideLength , radius , radius , double radius , radius , radius , radius , radius , i n t height2 , double boolean numberOfSidesCouplingRegion , double numberOfSidesCouplingRegion , createDiscPulleyInvA ( Struct currentStruct , createRingPulleyInvA ( Struct currentStruct , createDiscPulInvLCPul ( Struct currentStruct , createRingPulInvLCPul ( Struct currentStruct , createDiscPulInvADS ( Struct currentStruct , createRingPulInvLCDS( Struct currentStruct , double width2 , Lc2 , double double double gdsLayer ) i n t double double gdsLayer , i n t double double double double double i n t double y , y y , gap2, i n t sleeveWidth , y , y , y , y , gap2, ENDCAP , height2 , sleeveWidth , double double waveguideAngle , waveguideAngle , Lc , Lc1 , y , double double double double double double double double double gap2, gap2, ENDCAP , , , , sleeveWidth , sleeveWidth , sleeveWidth , double double length2 , double numberOfSidesDiscRing , double numberOfSidesCouplingRegion , numberOfSidesDiscRing , double double double numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , boolean waveguideWidth , shapeReso) ENDCAP , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discPulInvADS // r i n g P u l l e y I n v A // d i s c P u l l e y I n v A // ringPulInvLCPul // discPulInvLCPul // ringPulInvLCDS NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x , x , x , i n t gap , gap , ENDCAP ENDCAP i n t double double gap , double double length2 , double i n t i n t double double double gdsLayer ) width2 , angle2 , page 443 of 488 double i n t double double ENDCAP , double i n t double boolean double double double double gdsLayer ) ENDCAP , waveguideWidth , waveguideWidth , gap2, double double i n t ENDCAP , boolean i n t i n t ENDCAP , i n t length2 , double double double boolean gap2, gap2, i n t sleeve2 , waveguideLength , waveguideLength , waveguideAngle , waveguideAngle , Lc , boolean ENDCAP , length2 , double double double boolean double double double waveguideWidth , waveguideWidth , waveguideWidth , ringWidth , double double double ringWidth , ringWidth , numberOfSidesDiscRing , boolean length2 , numberOfSidesDiscRing , double numberOfSidesDiscRing , gap, gap, gap, double double double i n t sleeve2 , double width2 , i n t numberOfSidesCouplingRegion , waveguideLength , waveguideLength , i n t double double double i n t sleeveWidth , sleeveWidth , length2 , double double double sleeve2 , double double gdsLayer ) radius , radius , double double waveguideLength , waveguideLength , waveguideLength , radius , radius , radius , i n t radius , double double double sleeve2 , double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , createDiscPulInvAPul ( Struct currentStruct , createDiscPulleyInvLCA ( Struct currentStruct , createRingPulInvAPul ( Struct currentStruct , createRingPulleyInvLCA ( Struct currentStruct , createDiscPulInvLCADS( Struct currentStruct , createRingPulInvADS( Struct currentStruct , double double double double double width2 , angle2 , double i n t i n t double double double y , y , y , ENDCAP , double y , y , sleeveWidth , sleeveWidth , sleeve2 , width2 , waveguideAngle , Lc , Lc , y , double double gdsLayer ) double double i n t double double double boolean , , sleeveWidth , sleeveWidth , sleeveWidth , double double double double numberOfSidesDiscRing , double double double double numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesDiscRing , width2 , numberOfSidesCouplingRegion , gdsLayer) gdsLayer) numberOfSidesCouplingRegion , gdsLayer) waveguideWidth , waveguideWidth , x , x , gap2, gap2, p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discPulInvLCADS // ringPulleyInvLCA // discPulleyInvLCA // discPulInvAPul // r i n g P u l I n v A P u l // ringPulInvADS NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x , i n t gap , double double double ENDCAP , double double double double double i n t i n t double width2 , Lc2 , page 444 of 488 double i n t double gap , ENDCAP , boolean shapeReso ) i n t double double double double boolean gdsLayer ) waveguideWidth , gap2, double double double i n t double i n t double boolean i n t i n t double i n t length2 , double double waveguideHeight , waveguideHeight , gap2, gap2, length2 , waveguideLength , waveguideAngle , waveguideAngle , Lc , Lc1 , ENDCAP , length2 , double double double double double gdsLayer , shapeReso ) double double waveguideWidth , waveguideWidth , waveguideWidth , waveguideWidth , ringDiscSleeveWidth , ringWidth , ringWidth , double double double double ringWidth , i n t ringDiscSleeveWidth , numberOfSidesDiscRing , boolean double double gap , gap , gap , gap , sleeve2 , double double double double shapeReso ) i n t double double double waveguideLength , sleeve2 , double double numberOfSidesDiscRing , ENDCAP , sleeveWidth , double double length2 , double double sleeve2 , double double i n t double radius , radius , radius , radius , double numberOfSidesCouplingRegion , gdsLayer , waveguideLength , waveguideLength , waveguideLength , waveguideLength , radius , radius , boolean i n t i n t double double numberOfSidesCouplingRegion , double createDiscPulleyInvPos ( Struct currentStruct , createRingPulleyInvPos ( Struct currentStruct , createDiscPulInvLCAPul ( Struct currentStruct , createDiscPulInvPDS ( Struct currentStruct , createRingPulInvLCAPul ( Struct currentStruct , createRingPulInvLCADS(Struct currentStruct , width2 , double double double double double double double double i n t double width2 , gdsLayer , double y , y , y , y , y , y i n t sleeveWidth , ENDCAP , sleeve2 , double width2 , Lc1 , y , double gdsLayer ) double double double double double i n t double gap2, , ringDiscSleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , double double numberOfSidesDiscRing , numberOfSidesDiscRing , double numberOfSidesDiscRing , double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesDiscRing , waveguideHeight , boolean gdsLayer) numberOfSidesCouplingRegion , waveguideAngle , waveguideWidth , x , x , x , x , Lc2 , ENDCAP , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discPulInvPDS // r i n g P u l l e y I n v P o s // d i s c P u l l e y I n v P o s // ringPulInvLCAPul // discPulInvLCAPul // ringPulInvLCADS NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x , x , x , i n t double double double double double double double double double double double double double double i n t i n t page 445 of 488 double i n t gap , gap , gap , gap , double sleeve2 , double double width2 , width2 , double double double ENDCAP , ENDCAP , double double double double shapeReso ) i n t i n t double double double double double waveguideHeight , waveguideHeight , waveguideWidth , double waveguideLength , waveguideLength , waveguideLength , ringDiscSleeveWidth , ringWidth , Lc , Lc , boolean boolean double double double double width2 , angle2 , angle2 , shapeReso ) shapeReso ) double double double waveguideWidth , waveguideWidth , double double double double ringDiscSleeveWidth , ringWidth , ringWidth , ringWidth , height2 , height2 , double double double double double gdsLayer , gap, gap, double double radius , radius , double i n t double double double double double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesDiscRing , gap2, gap2, gap2, sleeveWidth , sleeveWidth , sleeveWidth , double double i n t i n t i n t i n t double double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , gdsLayer , gdsLayer , waveguideLength , waveguideLength , radius , radius , radius , ENDCAP , radius , double double double shapeReso) shapeReso) y , y , i n t i n t i n t i n t i n t length2 , length2 , double double double createDiscPulInvPPul ( Struct currentStruct , createRingPulInvPPul ( Struct currentStruct , createDiscPulleyInvPosLC ( Struct currentStruct , createRingPulleyInvPosLC ( Struct currentStruct , createRingPulInvPDS ( Struct currentStruct , createDiscPulInvPLCDS( Struct currentStruct , double double double double double double double double double double boolean double double y , y numberOfSidesCouplingRegion , y , y , ENDCAP , ENDCAP , x , x , y , i n t double length2 , double double , ringDiscSleeveWidth , ringDiscSleeveWidth , ringDiscSleeveWidth , ringDiscSleeveWidth , sleeveWidth , sleeveWidth , sleeve2 , sleeve2 , double double double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , waveguideHeight , waveguideHeight , waveguideHeight , boolean boolean waveguideAngle , gdsLayer , gdsLayer , waveguideAngle , waveguideAngle , waveguideWidth , waveguideWidth , waveguideWidth , Lc , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // discPulInvPLCDS // ringPulInvPDS // ringPulleyInvPosLC // d i s c P u l I n v P P u l // r i n g P u l I n v P P u l // discPulleyInvPosLC NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x , double double double double double double double double double double boolean double double double i n t i n t double i n t length2 , gdsLayer ) page 446 of 488 i n t double double gap , gap , gap , i n t boolean boolean i n t shapeReso ) double double double double double double double double i n t sleeve2 , double double double length2 , length2 , double waveguideHeight , gdsLayer , waveguideWidth , ENDCAP , waveguideHeight , waveguideHeight , waveguideHeight , waveguideWidth , waveguideLength , waveguideAngle , waveguideAngle , Lc1 , i n t sleeve2 , double double double double double double double double double boolean ringDiscSleeveWidth , ringWidth , double waveguideWidth , waveguideWidth , gdsLayer , waveguideWidth , ringDiscSleeveWidth , ringWidth , double double double ringWidth , double ringDiscSleeveWidth , ENDCAP , i n t width2 , gap , gap , gap , sleeve2 , sleeve2 , double double double double double shapeReso ) shapeReso ) double double double double width2 , numberOfSidesDiscRing , double numberOfSidesDiscRing , numberOfSidesDiscRing , boolean ENDCAP , sleeveWidth , double double double double double double double i n t i n t i n t radius , radius , waveguideLength , radius , radius , numberOfSidesCouplingRegion , waveguideLength , waveguideLength , waveguideLength , waveguideLength , Lc2 , radius , double radius , i n t height2 , double boolean createDiscPulleyInvPosA ( Struct currentStruct , createRingPulleyInvPosA ( Struct currentStruct , createDiscPulInvPLCPul ( Struct currentStruct , createRingPulInvPLCPul ( Struct currentStruct , createDiscPulInvPADS ( Struct currentStruct , createRingPulInvPLCDS(Struct currentStruct , double double double width2 , width2 , Lc2 , double double double double double double double gdsLayer ) double gdsLayer , gdsLayer , double y , y , y , y , i n t double numberOfSidesCouplingRegion , y , i n t i n t numberOfSidesCouplingRegion , y , height2 , double double double gap2, i n t i n t double double double double double sleeveWidth , double x , x , gap2, gap2, gap2, ENDCAP , , ringDiscSleeveWidth , ringDiscSleeveWidth , ringDiscSleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , length2 , numberOfSidesDiscRing , numberOfSidesDiscRing , double double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesDiscRing , numberOfSidesCouplingRegion , waveguideAngle , waveguideWidth , shapeReso) Lc , x , Lc1 , x , ENDCAP , ENDCAP , p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // ringPulleyInvPosA // discPulInvPADS // discPulleyInvPosA // ringPulInvPLCPul // discPulInvPLCPul // ringPulInvPLCDS NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x x , i n t i n t ENDCAP ENDCAP double double double double double double double length2 , double double i n t double width2 , gdsLayer ) gdsLayer ) width2 , angle2 , page 447 of 488 i n t i n t gap , gap , gap , ENDCAP , i n t i n t double boolean double double double double gdsLayer ) gdsLayer ) double double double double double i n t i n t double double double boolean i n t i n t double ENDCAP , ENDCAP , length2 , double waveguideWidth , gap2, gap2, gap2, sleeve2 , waveguideLength , waveguideLength , ringDiscSleeveWidth , ringWidth , waveguideAngle , Lc , Lc , ENDCAP , ENDCAP , length2 , double double double double double boolean boolean double double double waveguideWidth , waveguideWidth , waveguideWidth , ringDiscSleeveWidth , double double double double double ringDiscSleeveWidth , ringWidth , ringWidth , boolean boolean double gap, gap, gap, double double double sleeve2 , double width2 , radius , radius , double double double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesDiscRing , sleeveWidth , sleeveWidth , length2 , length2 , double double double sleeve2 , i n t i n t i n t double double gdsLayer ) radius , double double numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , waveguideLength , waveguideLength , waveguideLength , waveguideLength , waveguideLength , radius , radius , radius , i n t y , y , i n t i n t double double double double double createDiscPulInvPAPul ( Struct currentStruct , createRingPulInvPAPul ( Struct currentStruct , createDiscPulleyInvPosLCA ( Struct currentStruct , createRingPulleyInvPosLCA ( Struct currentStruct , createRingPulInvPADS( Struct currentStruct , createDiscPulInvPLCADS( Struct currentStruct , double double double double double double width2 , angle2 , double double double double double y , y , y y , y ENDCAP , numberOfSidesCouplingRegion , y , sleeve2 , sleeve2 , width2 , x , x , double double gdsLayer ) i n t double i n t double double double boolean , , , ringDiscSleeveWidth , ringDiscSleeveWidth , ringDiscSleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , sleeveWidth , double double double double numberOfSidesDiscRing , double numberOfSidesDiscRing , numberOfSidesDiscRing , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , numberOfSidesCouplingRegion , gdsLayer) waveguideAngle , waveguideWidth , waveguideAngle , waveguideWidth , Lc , x , gap2, gap2, p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // ringPulInvPAPul // discPulInvPLCADS // discPulleyInvPosLCA // ringPulleyInvPosLCA // discPulInvPAPul // ringPulInvPADS NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 > i n t i n t i n t < double double double double double double double Double W, W, Lc2 , < i n t width2 , Lc2 , page 448 of 488 gdsLayer ) gap , gap , ENDCAP , ENDCAP , i n t double double gdsLayer ) double double double a , W, W, i n t double double gdsLayer ) i n t double boolean boolean double gdsLayer ) waveguideWidth , gap2, i n t waveguideWidth , gap2, gap2, i n t double double Lc1 , W, W, ENDCAP , y , y , W, W, length2 , length2 , double double double double double ringDiscSleeveWidth , ringWidth , waveguideWidth , ringWidth , double double double double double boolean double double a , gap , double double double x , x , y , double createWaveGuideInvPhCvary( ArrayList createWaveGuideInvPhC( ArrayList numberOfSidesDiscRing , numberOfSidesDiscRing , > > double length2 , double sleeve2 , sleeve2 , double double double i n t i n t radius , radius , waveguideLength , y , al i s a Double vector array containing rx1 al ry1 i s a Double vector array containing rx1 ry1 radius , waveguideLength , waveguideLength , GArea GArea x , < < − − al , al , al i s a Double vector array containing rx1 ry1 N1 al i s a Double vector array containing rx1 ry1 N1 double > > double double createDiscPulInvPLCAPul ( Struct currentStruct , createRingPulInvPLCAPul ( Struct currentStruct , createRingPulInvPLCADS(Struct currentStruct , createWaveGuideInvPhCvary(Struct currentStruct , createWaveGuideInvPhC(Struct currentStruct , − − double double double double double double double double x , y , y , Double Double A r r a y L i s t A r r a y L i s t y , numberOfSidesCouplingRegion , < < al , numberOfSidesCouplingRegion , sleeve2 , width2 , width2 , > i n t i n t double double double double sleeveWidth , x , x , a1 N1 . . . . rxn ryn an Nn values a1 N1 . . . . rxn ryn an Nn values . . . . rxn ryn Nn values . . . . rxn ryn Nn values A r r a y L i s t A r r a y L i s t ringDiscSleeveWidth , ringDiscSleeveWidth , al , sleeveWidth , sleeveWidth , double double double numberOfSidesDiscRing , gdsLayer) gdsLayer) numberOfSidesCouplingRegion , gdsLayer) Double Lc , Lc1 , x , p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // waveGuideInvPhCvary // waveGuideInvPhCvary // waveGuideInvPhC // waveGuideInvPhC // ringPulInvPLCAPul // discPulInvPLCAPul // ringPulInvPLCADS NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 > < > < al , i n t Sh , Sh i n t < > Double Double So , So So , So Sh , W, W, < < i n t page 449 of 488 double gdsLayer ) gdsLayer ) Double < Sh , i n t i n t double double double double So , So a , W, W, W, W, W, W, W, W, So , double gdsLayer ) double i n t double double double double double So , W, W, double y , y , y , y a , a , a W, W, W, W, double double double double double double double double a , a W, W, double x , x , x , y , y , y , y a , createWaveGuideInvRectPhCvary( ArrayList createWaveGuideInvRectPhC( ArrayList createWaveGuideRectPhC( ArrayList createWaveGuidePhCvary( ArrayList createWaveGuidePhC ( A r r a y L i s t double double al i s a Double vector array containing Lx1 al i s a Double vector array containing Lx1 > > > > > − − double double double double double double y , y y , double al i s a Double vector array containing Lx1 Ly1 al i s a Double vector array containing Lx1 Ly1 GArea GArea GArea GArea GArea x , x , x , < < − < < − < al , al , al , y , al i s a Double vector array containing Lx1 Ly1 al i s a Double vector array containing rx1 ry1 a1 al i s a Double vector array containing rx1 ry1 a1 > > > − − − double double gdsLayer ) gdsLayer ) createWaveGuideInvRectPhCvary(Struct currentStruct , createWaveGuideInvRectPhC(Struct currentStruct , createWaveGuidePhCvary( Struct currentStruct , createWaveGuidePhC(Struct currentStruct , ArrayList al i s a Double vector array containing rx1 ry1 N1 al i s a Double vector array containing rx1 ry1 N1 double double double x , x , − − i n t i n t double Double Double Double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t < < < al , al , al , x , Sh , Sh , > > > double double . . . . Lxn Lyn values . . . . Lxn Lyn values al , al , double Ly1 a1 . . . . Lxn Lyn an values Ly1 a1 . . . . Lxn Lyn an values N1 N1 . . . . rxn ryn an Nn values N1 N1 . . . . rxn ryn an Nn values . . . . Lxn Lyn values . . . . rxn ryn Nn values . . . . rxn ryn Nn values A r r a y L i s t A r r a y L i s t A r r a y L i s t double double gdsLayer) gdsLayer) gdsLayer) Double Double Double p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c // waveGuideRectPhC // waveGuideInvRectPhCvary // waveGuideInvRectPhCvary // waveGuideInvRectPhC // waveGuideInvRectPhC // waveGuidePhCvary // waveGuidePhCvary // waveGuidePhC // waveGuidePhC NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 i n t W, W, < i n t i n t d , d Sh , So , So d , d d , W, W, double page 450 of 488 rad , wgLength , double y , y double double double double double W, W, So , a , a double W, W, W, W, W, W, double double y , double x , double double double double double y , y wgWidth , y , y y , y y , y y , double W, W, double x , double al , double double double double double double x , > al i s a Double vector array al i s a Double vector array x , x , x , x , y , double dy , − − al i s a Double vector array containing al i s a Double vector array containing createWaveGuideInvRectFlushPhCvary( createWaveGuideRectFlushPhCvary( createWaveGuideRectPhCvary( ArrayList gdsLayer ) gdsLayer ) gdsLayer ) Double > > > − − double < i n t i n t i n t double double double double double al i s a Double vector array containing Lx1 al i s a Double vector array containing Lx1 double al , GArea GArea GArea − − x , < < < al , al , al , al , al i s a Double vector array containing Lx1 Ly1 Sh , Sh , Sh , > dx , > > > > − gdsLayer ) createWaveGuideInvRectFlushPhCvary( Struct createWaveGuideRectFlushPhCvary( Struct currentStruct createWaveGuideRectPhCvary( Struct currentStruct , createWaveGuideRectPhC( Struct currentStruct , gdsLayer ) double Double i n t double double double < i n t double Double Double Double Double A r r a y L i s t A r r a y L i s t A r r a y L i s t GArea createWgdcd1 ( < < < < al , So , d , So , So , Sh , > gdsLayer ) gdsLayer) . . . . Lxn Lyn values , A r r a y L i s t i n t A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t currentStruct , A r r a y L i s t containing Lx1 Ly1 a1 . . . Lxn Lyn an values containing Lx1 Ly1 a1 . . . Lxn Lyn an values double double double double double gdsLayer) Double Lx1 Ly1 a1 . . . Lxn Lyn an values Lx1 Ly1 a1 . . . Lxn Lyn an values Ly1 a1 . . . Lxn Lyn an values Ly1 a1 . . . Lxn Lyn an values numSides , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // waveGuideRectPhC // wgdcdV1 // waveGuideRectFlushPhCvary // waveGuideRectPhCvary // waveGuideInvRectFlushPhCvary // waveGuideRectPhCvary // waveGuideRectFlushPhCvary // waveGuideInvRectFlushPhCvary NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 tipH , i n t i n t i n t i n t i n t double triH , triCutH double double H2 , H2 , double d E l l i p s e , double cutWidth , cutWidth , double double double page 451 of 488 y , double gdsLayer ) rad , rad , rad , rad , rad , rad , double wgRad , sleeve , double double double double double double wgRad , i n t gap, cutPositionUpper double double double wgRad , wgRad wgWidth , double W2, W2, double double double double double double double double ry , x , double wgWidth , gap, gap, y , y , y , y , y , y , double gdsLayer ) THETA , cutPosition , cutPosition , bottomInteriorWidth , double double double double i n t wgWidthBottom , double wgRad , wgRad double double double double gdsLayer ) gdsLayer ) dBoxBelowGap , dBoxBelowGap , dBoxBelowGap , dBoxBelowGap , dy , double H2 , double double double double double double wgLength , double double double cutPositionUpper , gdsLayer ) wgLength , gap , x , x , x , x , x , x , i n t i n t double cutWidth , wgLength , THETA , tipY , double i n t double double double double double double sleeve , sleeve , double double double double double double double double double double gdsLayer ) gdsLayer ) wgTaperedLength , dx , dy , dy , dy , dy , dy , THETA , THETA , double double double cutWidth , cutWidth , createWgdcd8( double cutPosition , frameWidth , THETA , > i n t i n t double double wgLength , wgWidthTop , wgWidth , gap, sleeve , double double double double double double double double double tipS , double double wgWidth , GArea cutWidth , < double double double wgWidth , dx , dx , dx , dx , dx , wgRad , wgRad wgRad , wgRad THETA , THETA , double double double double gap , gap , double double double double double numSides , double double double double double double double double double A r r a y L i s t GArea createWgdcd7 ( GArea createWgdcd6 ( GArea createWgdcd3 ( GArea createWgdcd4 ( GArea createWgdcd5 ( GArea createWgdcd2 ( triH , cutPositionLower , cutPosition , cutPosition , double double cutWidth , i n t triH , sleeve , sleeve , tipW , wgWidth , gap, wgRad , W2, W2, double double double double double rad2 , , , cutPositionLower , distance , distance , sleeve , sleeve , wgStraightLengthTop , double double double double double double double double bottomTaperWidth , wgLength , wgLength , numSides , numSides , numSides , numSides , numSides , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c // wgdcdV8 // wgdcdV7 // wgdcdV6 // wgdcdV4 // wgdcdV5 // wgdcdV3 // wgdcdV2 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 L1 , i n t page 452 of 488 largeBoxH , double gdsLayer ) i n t largeBoxW , double THETA , dCut , double L3 , double i n t L2 , i n t cutWidth , NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , y , i n t y , double double i n t double x , y , i n t double gdsLayer ) x , y , page 453 of 488 double double double double width4 , i n t pitch , double double i n t double x , i n t i n t length2 , length3 , length3 , anchorDistance dimpleWidth , baseLayer , double double x , double gdsLayer ) double double numElements , double x , i n t pitch , pitch , double double x , i n t length2 , length2 , THETA , double i n t double double double double double width4 , dimpleHeight , dimpleLayer , double anchorDistance , anchorDistance , double i n t double double width3 , double double double double THETA , pitch , length3 , double dimpleLayer , double length1 , anchorDistance , anchorDistance , length2 , length2 , double gdsLayer ) baseWidth , baseHeight , double baseWidth , i n t double i n t double hOffset , dimpleHeight , length3 , double double length1 , length1 , width3 , gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) double double double double double double double Methods double dimpleWidth , i n t i n t i n t i n t anchorLayer , createBiMorph( createBentBeamArray( createCombDriveV1( createBentBeam( width2 , baseWidth , THETA , double double double > > > > double double double baseWidth , i n t hOffset , length2 , pitch , width2 , length1 , length1 , double dimpleWidth , anchorLayer , centralBeamWidth , Library THETA , THETA , THETA , THETA , GArea GArea GArea GArea double double double baseWidth , baseWidth , < < < < dimpleLayer , width , width , double i n t length2 , length4 , double double width2 , baseHeight , double double createBiMorph ( Struct currentStruct , createBentBeamArray(Struct currentStruct , createBentBeam ( Struct currentStruct , double double double i n t double double double double double NEMS double double width1 , double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t double double double double dimpleHeight , anchorDistance , length1 , width , length4 , width , width1 , baseHeight , centralBeamWidth , y , y , anchorLayer , MEMS dimpleLayer , double i n t width1 , y , y , i n t dimpleHeight , length1 , anchorDistance , length3 , length3 , double double double double double double double double double double double dimpleWidth , baseHeight , baseHeight , numElectrodes , anchorLayer , anchorLayer , anchorLayer , anchorLayer , numElements , 4.2.9 p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c // combDriveV1 // biMorph // biMorph // bentBeamArray // bentBeamArray // bentBeam // bentBeam NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , y , y y , y x , y , x , i n t double double double double gdsLayer ) THETA , THETA , THETA , double double double double double double double page 454 of 488 double double double double x , x , i n t pitch , pitch , length3 , double x , rotorLayer , double baseHeight , baseHeight , double double baseHeight , double double double gdsLayer ) i n t baseHeight , length2 , length2 , length2 , double double i n t pitch , length1 , double double double THETA , double double double double anchorLayer , anchorLayer , double i n t i n t rotorLayer , double double double double double double baseHeight , baseHeight , THETA , pitch , length2 , length2 , length2 , anchorLayer , anchorLayer , anchorLayer , i n t rotorPitch , pitch , i n t i n t i n t double double double length1 , length1 , length1 , width2 , double double double double double numberOfPeriods , numberOfPeriods , double anchorLayer , createLinearDriveV1( createFoldedSpring2A( createFoldedSpring1A( i n t i n t rotorPitch , anchorDistance , anchorDistance , double double double double numElectrodes , > > > i n t length1 , length1 , length1 , i n t anchorLayer , GArea GArea GArea baseWidth , < < < width , anchorDistance , width , anchorDistance , double double anchorDistance , double width1 , width1 , i n t numElectrodes , numberOfPeriods , numberOfPeriods , gap , double double double createLinearDriveV1 ( Struct currentStruct , createFoldedSpring2A(Struct currentStruct , createFoldedSpring1A(Struct currentStruct , createCombDriveV1(Struct currentStruct , amplitude , amplitude , numElectrodes , i n t i n t i n t double double double double double double gdsLayer ) gdsLayer ) double double A r r a y L i s t A r r a y L i s t A r r a y L i s t i n t double width , width , y , y , i n t i n t anchorDistance , double double width1 , baseWidth , baseWidth , baseWidth , y , y , gap , gdsLayer ) gdsLayer ) gdsLayer ) amplitude , amplitude , double double double double i n t i n t i n t pitch , pitch , length3 , double anchorDistance , length2 , double double double double double double double baseHeight , baseLayer , baseWidth , baseWidth , THETA , THETA , p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // foldedSpring2A // foldedSpring2A // foldedSpring1A // foldedSpring1A // linearDriveV1 // linearDriveV1 // combDriveV1 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , x , y , y , y y , y , double double double double double double double THETA , THETA , THETA , THETA , double double double double double double double double double double page 455 of 488 x , x , x , x , pitch , pitch , pitch , pitch , baseHeight , baseHeight , baseHeight , double double double double double double double double length2 , length2 , length2 , double double double double double double double double double double double anchorLayer , anchorLayer , anchorLayer , i n t i n t i n t double double double baseHeight , baseHeight , baseHeight , baseHeight , length2 , length2 , length2 , length2 , anchorLayer , anchorLayer , anchorLayer , anchorLayer , i n t i n t i n t i n t double double double double length1 , length1 , length1 , double double double double numberOfPeriods , numberOfPeriods , numberOfPeriods , createFoldedSpring2D( createFoldedSpring2C( createFoldedSpring2B( createFoldedSpring1B( i n t i n t i n t anchorDistance , anchorDistance , double anchorDistance , double double > > > > length1 , length1 , length1 , length1 , GArea GArea GArea GArea < < < < anchorDistance , width , anchorDistance , double width , anchorDistance , double width , anchorDistance , double numberOfPeriods , numberOfPeriods , numberOfPeriods , numberOfPeriods , double double double double createFoldedSpring2B( Struct currentStruct , createFoldedSpring2C( Struct currentStruct , createFoldedSpring1B( Struct currentStruct , amplitude , amplitude , amplitude , i n t i n t i n t i n t double double double double double gdsLayer ) double double gdsLayer ) gdsLayer ) A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t width , width , width , width , y , y , y , i n t i n t i n t double double double baseWidth , baseWidth , baseWidth , gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) amplitude , amplitude , double double amplitude , double double double amplitude , double double i n t i n t i n t i n t pitch , pitch , pitch , double double double baseWidth , baseWidth , baseWidth , baseWidth , THETA , THETA , THETA , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c // foldedSpring2D // foldedSpring2C // foldedSpring2C // foldedSpring2B // foldedSpring2B // foldedSpring1B // foldedSpring1B NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , x , x , y , y y , y y , y double double double double double double double double double double double double double double double double double double double double double page 456 of 488 x , x , x , pitch , pitch , pitch , baseHeight , baseHeight , baseHeight , i n t i n t i n t baseHeight , numSides , numSides , numSides , length2 , length2 , length2 , length2 , double double double double double double double double double i n t i n t i n t double anchorLayer , anchorLayer , anchorLayer , anchorLayer , i n t i n t i n t i n t double double double double length2 , length2 , length2 , anchorDistance , anchorDistance , anchorDistance , numSides , numSides , numSides , i n t i n t i n t length1 , length1 , length1 , length1 , double double double gdsLayer ) gdsLayer ) gdsLayer ) double double double numberOfPeriods , numberOfPeriods , numberOfPeriods , numberOfPeriods , i n t i n t i n t createFoldedSpring2F ( createFoldedSpring2E( createFoldedSpring2G( i n t i n t i n t i n t anchorDistance , anchorDistance , double double anchorDistance , anchorDistance , double double > > > length1 , length1 , length1 , THETA , THETA , THETA , GArea GArea GArea baseWidth , baseWidth , baseWidth , < < < width , width , width , double double width , double double numberOfPeriods , numberOfPeriods , numberOfPeriods , double double double createFoldedSpring2F( Struct currentStruct , createFoldedSpring2E( Struct currentStruct , createFoldedSpring2G(Struct currentStruct , createFoldedSpring2D(Struct currentStruct , amplitude , amplitude , amplitude , amplitude , double double double i n t i n t i n t double double double double double double double gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) A r r a y L i s t A r r a y L i s t A r r a y L i s t width , width , width , y , y , y , y , i n t i n t i n t i n t double double double double baseWidth , baseWidth , baseWidth , baseWidth , amplitude , amplitude , double double double amplitude , double double double double pitch , pitch , pitch , pitch , double double baseHeight , double baseHeight , double baseHeight , anchorLayer , anchorLayer , anchorLayer , THETA , THETA , THETA , THETA , p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // foldedSpring2G // foldedSpring2G // foldedSpring2F // foldedSpring2F // foldedSpring2E // foldedSpring2E // foldedSpring2D NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , x , y , y y , y , i n t i n t a , Lb , g3 , double double double y , double double double i n t double gdsLayer ) gdsLayer ) double double double double double double double double double double page 457 of 488 THETA , THETA , double x , x , x , i n t i n t pitch , pitch , pitch , diameter , diameter , baseHeight , La , double i n t shapeReso ) g2 , x , i n t double double numSides , numSides , numSides , length2 , length2 , length2 , double double double f , double double double double double double numSides , THETA , THETA , i n t i n t i n t double anchorLayer , double double i n t i n t double double double double double double g1 , r i , THETA , length2 , length2 , length2 , anchorDistance , anchorLayer , anchorLayer , numSides , numSides , numSides , e , i n t i n t i n t i n t i n t double length1 , double double length1 , length1 , double double double gdsLayer ) double double r , numberOfPeriods , numberOfPeriods , numberOfPeriods , w3 , Lf , i n t anchorLayer , anchorLayer , d , createFoldedSpring2I( createFoldedSpring2J( createBolometerL( createFoldedSpring2H( i n t i n t i n t double anchorDistance , double double > > > > i n t i n t i n t length1 , double double length1 , length1 , double Le , THETA , GArea GArea GArea GArea baseWidth , < < < < width , width , width , double L2 , w2 , anchorDistance , anchorDistance , c , i n t numberOfPeriods , numberOfPeriods , numberOfPeriods , double double double createFoldedSpring2I ( Struct currentStruct , createFoldedSpring2J( Struct currentStruct , createFoldedSpring2H(Struct currentStruct , amplitude , amplitude , amplitude , double i n t i n t i n t double Ld , double double double double double gdsLayer ) double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t i n t width , width , width , y , y , y , i n t anchorDistance , double anchorDistance , double double baseWidth , L1 , b , w1 , Lc , amplitude , double amplitude , double amplitude , double double double double gdsLayer) gdsLayer) i n t pitch , pitch , pitch , double double double double double diameter , double diameter , baseHeight , anchorLayer , THETA , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c // bolometerL // foldedSpring2J // foldedSpring2J // foldedSpring2I // foldedSpring2I // foldedSpring2H // foldedSpring2H NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 y La La y , y , a , Lb , g3 , i n t i n t i n t g2 , g2 , x , x , y , double double i n t f , f , numSides , numSides , double double double double double numSides , page 458 of 488 double double x , y , y double x , x , y , y i n t i n t double double La , double double double i n t double shapeReso ) double double g2 , x , i n t r i , r i , anchorDistance , gdsLayer ) g1 , g1 , THETA , THETA , double double e , e , double double double f , numberOfGears , numSides , i n t widthRing , double numberOfGears , x , x , double double i n t i n t double double double double double gdsLayer ) i n t double double double double double r , r , g1 , i n t r i , double THETA , THETA , w3 , double w3 , Lf , Lf , numberOfGears , numberOfGears , d , d , double e , height , gdsLayer ) i n t i n t i n t i n t height , double double double double double double double double THETA , i n t double double double numElements , Le , Le , r , L2 , L2 , w3 , Lf , double gdsLayer ) c , c , w2 , w2 , double createStraightSpring( d , createGear( createGearT( createBolometerU( i n t i n t i n t height , height , double > > > > i n t i n t THETA , radiusCenterHub , double double double double numSides , Ld , Ld , width , double double double double width , double Le , GArea GArea GArea GArea double double < < < < i n t i n t i n t gdsLayer ) L1 , L2 , L1 , b , b , w2 , double c , THETA , w1 , w1 , i n t numSides , double numSides , createBolometerL ( Struct currentStruct , createGear ( Struct currentStruct , createGearT ( Struct currentStruct , createBolometerU ( Struct currentStruct , i n t double Lc , Lc , double i n t width , width , Ld , i n t double double double double double double i n t i n t double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t rad , i n t width , rad , a , a , triangleL , y , y , L1 , b , g3 , g3 , THETA , w1 , Lb , Lb , double double anchorLayer , Lc , i n t i n t double double double double double , , , i n t i n t triangleL , radiusRing , double double double double double double double double double rad , rad , shapeReso) shapeReso) numSides , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // s t r a i g h t S p r i n g // gearT // gearT // gear // gear // bolometerU // bolometerU // bolometerL NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x y y x , x , y , double double double double double double gap , gap , double double double widthRing , widthRing , double page 459 of 488 widthRing , widthRing , x , x , i n t i n t double double double double x , anchorLayer , anchorLayer , double double gdsLayer ) gdsLayer ) double double anchorDistance , double double gap , gap , gapFraction , gapFraction , double double double double i n t i n t double i n t i n t widthRing , widthRing , widthRing , double double double gapFraction , gapFraction , double double double double THETA , THETA , anchorDistance , anchorDistance , double numElements , numElements , numElements , numElements , double double gdsLayer ) i n t i n t i n t i n t radiusCenterHub , radiusCenterHub , double double anchorDistance , anchorDistance , double double radiusCenterHub , radiusCenterHub , i n t gdsLayer ) gdsLayer ) numElements , numElements , numElements , i n t i n t numElectrodes , numElectrodes , createCircularSpring( createCircularSpringE( createStraightSpringE( i n t i n t i n t double double double double double double > > > numSides , numSides , THETA , i n t i n t radiusCenterHub , radiusCenterHub , numSides , numSides , radiusCenterHub , i n t i n t numElectrodes , numElectrodes , anchorLayer , anchorLayer , THETA , THETA , GArea GArea GArea i n t i n t width , width , < < < width , width , gdsLayer ) gdsLayer ) double i n t i n t i n t i n t double double numSides , numSides , numSides , double createCircularSpring ( Struct currentStruct , createCircularSpringE ( Struct currentStruct , createStraightSpring ( Struct currentStruct , createStraightSpringE ( Struct currentStruct , i n t i n t double double i n t i n t i n t double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t width , width , y , y , y radiusRing , radiusRing , width , y , y , radiusRing , anchorElectrodeDistance , anchorElectrodeDistance , radiusRing , electrodeWidth , electrodeWidth , THETA , THETA , anchorLayer , double double double double double double double double double , , , , i n t radiusRing , radiusRing , radiusRing , anchorElectrodeDistance , anchorElectrodeDistance , electrodeWidth , electrodeWidth , anchorDistance , anchorDistance , double double double double double double double double anchorLayer , anchorLayer , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // c i r c u l a r S p r i n g E // straightSpringE // c i r c u l a r S p r i n g E // straightSpringE // c i r c u l a r S p r i n g // c i r c u l a r S p r i n g // s t r a i g h t S p r i n g NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , y , y , gap , gap , THETA THETA THETA THETA double double wc , wc , THETA , THETA , double x , y , y y , y gdsLayer ) THETA , page 460 of 488 double double baseWidth , double double double double double double double double i n t double double double double widthMass , widthMass , double double double x , x , double gdsLayer ) wc , wc , connectorWidth , r2 , r2 , thetaComb , thetaComb , x , x , double double double baseHeight , i n t length2 , THETA , double double double double baseWidth , double double double double double double double double double anchorLayer , anchorLayer , double anchorLayer , anchorLayer , double double r2 , r2 , THETA , w2 , w2 , i n t i n t double anchorLayer , thetaComb , thetaComb , i n t i n t length2 , length2 , baseHeight , i n t double double double numSides , numSides , double double length1 , double double double double double i n t i n t w2 , w2 , squareWidth , r1 , r1 , anchorLayer , createFlexure2B ( createFlexure2A( createCombRadialV2( createCombRadialV1( connectorHeight , baseHeight , > > > > double i n t anchorDistance , anchorDistance , double double length1 , length1 , double anchorDistance , double anchorDistance , double numSides , numSides , anchorLayer , GArea GArea GArea GArea double double < < < < anchorDistance , lengthMass , r1 , r1 , i n t i n t width , w1 , w1 , i n t numElements , numElements , double double createFlexure2A( Struct currentStruct , createCombRadialV2(Struct currentStruct , createCombRadialV1(Struct currentStruct , double double double double i n t i n t double double double double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t width , anchorDistance , squareHeight , width , lengthMass , lengthMass , y , y , y , gap , gap , w1 , w1 , gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) numElements , numElements , i n t i n t i n t i n t thetaOverlap , thetaOverlap , , , i n t i n t i n t thetaOverlap , thetaOverlap , anchorDistance , double double double double double double double double double double double double double baseWidth , widthMass , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c // flexure2B // flexure2A // flexure2A // combRadialV2 // combRadialV2 // combRadialV1 // combRadialV1 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 i n t i n t double double x , x , x , x , y , y , y , periods , double double THETA , double double page 461 of 488 double double double double double i n t double double double double i n t i n t length3 , amplitude , double double double double double double double width4 , width4 , double gdsLayer ) gdsLayer ) anchorDistance , x , x , x , length4 , baseWidth , i n t i n t length3 , length2 , length2 , length3 , double width3 , baseHeight , width3 , length2 , double double anchorDistance , double double baseExtent , amplitude , squareWidth , double double double double double double double double double double double double double THETA , THETA , double double anchorLayer , connectorHeight , anchorDistance , anchorDistance , length2 , double double double width3 , width3 , baseWidth , gdsLayer ) i n t lengthMass , double double length6 , length3 , width2 , width2 , baseWidth , gap, i n t length2 , length1 , length1 , length2 , gdsLayer ) gdsLayer ) gdsLayer ) length1 , double double double double double double double baseExtent , i n t i n t i n t double baseWidth , createFlexure2E ( createFlexure2D( createFlexure2C( double double double double double double lengthMass , > > > double double double double THETA , double squareHeight , width2 , width2 , length1 , double double anchorLayer , anchorLayer , THETA , THETA , THETA , GArea GArea GArea baseWidth , baseWidth , < < < anchorDistance , double lengthMass , width , width , double width1 , baseHeight , width1 , i n t i n t length4 , length5 , length2 , length6 , double widthMass , gap, length1 , length1 , double double width5 , createFlexure2E ( Struct currentStruct , createFlexure2B ( Struct currentStruct , createFlexure2D( Struct currentStruct , createFlexure2C( Struct currentStruct , double double double double double double double double double double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t double double double double double double double double double baseHeight , width , width1 , width1 , widthMass , y , y , y , y , gdsLayer ) anchorLayer , periods , double i n t i n t length3 , length4 , length3 , length4 , anchorDistance , length1 , length5 , anchorDistance , double double double double double double double double connectorWidth , width4 , baseHeight , baseHeight , width5 , width4 , anchorLayer , anchorLayer , anchorLayer , baseWidth , widthMass , p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // flexure2E // flexure2C // flexure2E // flexure2D // flexure2C // flexure2B // flexure2D NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 double double x , x , x , y , y , y , y y , double gdsLayer double double page 462 of 488 baseExtent , double double double i n t double gap, i n t i n t length3 , baseHeight , widthMass , widthMass , double double double double double double double length1 , gdsLayer ) gdsLayer ) gdsLayer ) gap, x , x , x , x , double double baseWidth , THETA , i n t i n t i n t length2 , length2 , length2 , double double double double double baseExtent , double anchorLayer , double double double double double double i n t double gap, double double double THETA , THETA , THETA , double baseWidth , anchorDistance , length2 , anchorDistance , length2 , length2 , width3 , baseHeight , lengthMass , double double double double widthMass , length1 , length1 , length1 , double gdsLayer ) gdsLayer ) double double double double double double double baseHeight , double anchorLayer , i n t i n t createFlexure4B ( createFlexure4D( createFlexure4C( createFlexure4A( baseHeight , anchorDistance , double > > > > i n t double double double double widthMass , width2 , length1 , length1 , length1 , anchorLayer , anchorLayer , anchorLayer , THETA , THETA , GArea GArea GArea GArea double baseHeight , baseWidth , baseWidth , < < < < double lengthMass , gap, width , width , width , widthMass , i n t i n t i n t length4 , double double createFlexure4B ( Struct currentStruct , createFlexure4C( Struct currentStruct , createFlexure4A( Struct currentStruct , double double double double double double double double double double gdsLayer ) double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t double anchorDistance , i n t width , length4 , width , width , width1 , lengthMass , baseWidth , y , y , y , gap, length2 , double ) length3 , anchorDistance , anchorDistance , double double double double double double anchorDistance , double double double double double baseHeight , baseHeight , anchorLayer , anchorLayer , widthMass , widthMass , THETA , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c // flexure4D // flexure4C // flexure4C // flexure4B // flexure4B // flexure4A // flexure4A NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 y , i n t x , x , y , y , double THETA , THETA double double double THETA , x , x , y , linearVar gdsLayer ) double double page 463 of 488 double THETA , double double double double double double x , i n t double i n t i n t anchorDistance double double double double width4 , x , x , double double gdsLayer ) baseWidth , lengthMass , x , double double length4 , numElements , double i n t length3 , width3 , width3 , numElements , numElements , THETA , pitch , pitch , double double double double i n t double i n t i n t double double double double double double double THETA , sineAmplitude , baseExtent , baseExtent , double double linearVar , percentageVar , baseWidth , pitch , width3 , gdsLayer ) pitch , pitch , baseWidth , i n t double gdsLayer ) length3 , double double double baseHeight , width2 , width2 , widthMass , startL , startL , length2 , double double double double double i n t double double double anchorLayer , createCantileverL ( createCantileverSine( createCantileverP ( createFlexure4E ( THETA , double double double double double > > > > double double double i n t startL , width2 , THETA , startL , startL , baseExtent , baseHeight , baseHeight , gdsLayer ) anchorLayer , GArea GArea GArea GArea baseExtent , baseExtent , double baseHeight , < < < < width , width , width1 , width1 , i n t i n t length5 , length2 , length2 , baseHeight , length1 , double double double createCantileverL ( Struct currentStruct , createCantileverP ( Struct currentStruct , createFlexure4E ( Struct currentStruct , createFlexure4D( Struct currentStruct , double double double double double double double double double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t double double double double THETA , width , double anchorDistance , width , width , width1 , y , y , y , y , gap, anchorLayer , gdsLayer ) gdsLayer ) i n t double i n t double baseHeight , , , i n t length4 , length1 , length5 , length1 , anchorDistance , double double double double double double double double double baseHeight , width4 , baseHeight , percentageVar , gdsLayer) numElements , numElements , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void // c a n t i l e v e r L // c a n t i l e v e r P // c a n t i l e v e r L // flexure4E // flexure4E // c a n t i l e v e r S i n e // c a n t i l e v e r P // flexure4D NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , y , x , y , i n t y , THETA THETA THETA THETA pitch , double double pitch , double gdsLayer ) THETA , THETA , double double double i n t page 464 of 488 double double x , i n t THETA , double baseExtent , double double bH , x , i n t i n t x , double x , double double double double pitch , double pitch , double double double double pitch , endL , THETA , double endL , double bH , baseExtent , baseExtent , double double sEnd , double double double baseExtent , baseExtent , baseExtent , double double endL , double double baseHeight , endL , double gdsLayer ) startL , startL , double double double sEnd , startL , al , double i n t double double > anchorLayer , createCantileverSR ( createCantileverLSE( createCantileverNLSE ( createCantileverCustom( double double double > > > > double baseHeight , baseHeight , i n t Double startL , THETA , < startL , length , al , baseHeight , baseHeight , baseHeight , GArea GArea GArea GArea > < < < < width , width , al i s an array l i s t with values s1 w1 L1 . . . . sn al i s an array l i s t with values s1 w1 L1 . . . . sn width , double double − − double double createCantileverSine ( Struct currentStruct , createCantileverLSE ( Struct currentStruct , createCantileverNLSE ( Struct currentStruct , createCantileverCustom( Struct currentStruct , double double double double double Double < double double gdsLayer ) double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t y , A r r a y L i s t width , y , y , i n t width , anchorDistance , width , y , gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) numElements , numElements , double i n t i n t double double double , , i n t i n t i n t i n t sineAmplitude , double double double double gdsLayer) x , numElements , numElements , numElements , y , y A r r a y L i s t THETA , wn wn Ln wn wn Ln p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // cantileverSR // cantileverCustom // cantileverCustom // cantileverNLSE // cantileverNLSE // cantileverLSE // cantileverLSE // c a n t i l e v e r S i n e NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x y x , y , y , y x , i n t i n t double double double THETA , double double double double double x , page 465 of 488 double length , double double double x , lengthBot , x , i n t i n t double x , double double gdsLayer ) gdsLayer ) double baseHeight , double double double double double i n t i n t triangleHeight , double length , baseHeight , anchorLayer , lengthBot , anchorDistance , anchorDistance , baseExtent , double i n t double THETA , THETA , double double anchorLayer , widthTop , anchorDistance , anchorDistance , double double double widthTop , triangleHeight , baseExtent , double i n t double double numSides , length , double length , double double double gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) double double i n t widthTop , widthTop , i n t i n t i n t i n t createCantileverSTri( createCantileverSPaddle( createCantileverSTrap( createCantileverSCH( baseExtent , baseExtent , anchorDistance , double baseHeight , > > > > double length , double radius , widthBot , double anchorLayer , anchorLayer , THETA , THETA , THETA , THETA , GArea GArea GArea GArea baseExtent , baseExtent , anchorDistance , double double double widthBottom , < < < < width , double baseHeight , width , i n t i n t double createCantileverSTri ( Struct currentStruct , createCantileverSR ( Struct currentStruct , createCantileverSPaddle ( Struct currentStruct , createCantileverSTrap ( Struct currentStruct , double double double double double double double double double double widthBot , double double gdsLayer ) y , double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t widthBottom , y , y width , y , i n t baseExtent , width , lengthTop , baseHeight , baseHeight , y , double double gdsLayer ) double double double double x , y , y , , i n t baseExtent , anchorDistance , anchorDistance , double double double double double double lengthTop , baseHeight , baseHeight , anchorLayer , anchorLayer , anchorLayer , anchorLayer , THETA , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // cantileverSCH // c a n t i l e v e r S T r i // cantileverSR // cantileverSPaddle // cantileverSPaddle // cantileverSTrap // cantileverSTrap // c a n t i l e v e r S T r i NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 y x , y , x , x , y , i n t x , y , i n t length , hollowW double double double double double page 466 of 488 double double double double double x , double x , i n t i n t i n t double double x , double double double x , baseHeight , gdsLayer ) gdsLayer ) length , double double i n t i n t triangleHeight , anchorDistance , double double length , anchorDistance , anchorLayer , hollowW , double double double numSides , numSides , i n t baseExtent , double double THETA , THETA , i n t i n t double double double anchorDistance , anchorDistance , anchorDistance , triangleHeight , hollowW , baseExtent , double double double numSides , length , radius , radius , length , double double double gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) double i n t double widthTop , baseExtent , double i n t i n t i n t i n t i n t baseExtent , createCantileverHTri( createCantileverSCF( createCantileverHTrap( createCantileverHR ( anchorDistance , double > > > > double double double baseHeight , length , double radius , length , double double anchorLayer , anchorLayer , THETA , THETA , THETA , THETA , THETA , GArea GArea GArea GArea baseExtent , baseExtent , baseExtent , double < < < < width , width , width , width , i n t i n t double baseHeight , double createCantileverHTri ( Struct currentStruct , createCantileverSCF ( Struct currentStruct , createCantileverHR ( Struct currentStruct , createCantileverSCH(Struct currentStruct , double double double double double double double double double double double gdsLayer ) double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t double baseHeight , widthBottom , width , baseHeight , y , i n t baseExtent , width , width , hollowW , y , y , y , double double double double double , , anchorDistance , anchorDistance , double double double double double double double baseHeight , baseHeight , baseHeight , anchorLayer , anchorLayer , anchorLayer , anchorLayer , anchorLayer , hollowW , THETA , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void // cantileverSCF // cantileverSCH // cantileverHTrap // c a n t i l e v e r H T r i // cantileverHR // cantileverHR // cantileverSCF // c a n t i l e v e r H T r i NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x x , x , y , y , y y , y i n t double double length , hollowW double THETA , double double gdsLayer ) x , page 467 of 488 double double double double double length , double lengthBot , double i n t i n t double x , x , x , baseExtent , double double double lengthTop , double gdsLayer ) gdsLayer ) gdsLayer ) gdsLayer ) double length , double hollowW , double double i n t i n t i n t i n t anchorDistance , double THETA , double double double double double lengthBot , baseExtent , double double numSides , numSides , baseExtent , baseHeight , double double THETA , THETA , THETA , THETA , i n t i n t anchorLayer , widthTop , baseExtent , anchorDistance , double widthTop , length2 , double i n t baseExtent , double double baseHeight , double double double double numSides , numSides , double radius , radius , double double double gdsLayer ) gdsLayer ) double i n t i n t baseExtent , double widthTop , i n t i n t double anchorLayer , createCantileverPB2( createCantileverHPaddle( createCantileverHCF ( createCantileverHCH( hollowW , > > > > double double baseHeight , i n t baseHeight , radius , radius , widthBot , length1 , double double anchorLayer , anchorLayer , anchorLayer , anchorLayer , THETA , THETA , GArea GArea GArea GArea baseExtent , anchorDistance , baseHeight , widthBottom , < < < < double hollowW , width , width , double i n t i n t i n t i n t double baseHeight , createCantileverHPaddle ( Struct currentStruct , createCantileverHTrap ( Struct currentStruct , createCantileverHCF ( Struct currentStruct , createCantileverHCH(Struct currentStruct , double double double double double double double double double double widthBot , double y , double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t double baseHeight , y , y hollowW , width , width , anchorDistance , width , lengthTop , hollowW , y , y , gap, double double gdsLayer ) double double double x , y , y , , i n t baseExtent , anchorDistance , anchorDistance , anchorDistance , anchorDistance , double double double double double double double double double lengthTop , baseHeight , anchorLayer , anchorLayer , hollowW , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void // cantileverPB2 // cantileverHCH // cantileverHPaddle // cantileverHPaddle // cantileverHCF // cantileverHCF // cantileverHCH // cantileverHTrap NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , x , y , y , i n t x , y , y y , y { i n t double double gdsLayer THETA , THETA , double gdsLayer ) page 468 of 488 double double double double double baseExtent , double double double double double double double i n t baseExtent , i n t x , x , length3 , lengthTop , diameter , lengthTop , x , x , double double gdsLayer ) gdsLayer ) gdsLayer ) baseExtent , double double i n t double double THETA , i n t i n t length2 , length2 , length2 , length2 , baseHeight , THETA , double double double double double double baseHeight , double double anchorDistance , double double THETA , double double double double double double THETA , THETA , double anchorLayer , anchorLayer , double baseExtent , length2 , length2 , length2 , length2 , baseHeight , baseExtent , baseHeight , i n t i n t double gap, double double length1 , length1 , length1 , length1 , gdsLayer ) double double double double double double baseHeight , numSides , double double anchorLayer , i n t double anchorLayer , createCantileverPB3( createCantileverUR ( createCantileverUC( createCantileverUCF( i n t baseExtent , gap, > > > > i n t double double double double i n t double length1 , length1 , length1 , length1 , anchorLayer , anchorLayer , anchorLayer , THETA , GArea GArea GArea GArea anchorDistance , anchorDistance , double numSides , < < < < radius , double baseHeight , gap, i n t width , width , width , width , baseHeight , i n t i n t lengthTop , i n t createCantileverPB3 ( Struct currentStruct , createCantileverPB2 ( Struct currentStruct , createCantileverUR ( Struct currentStruct , createCantileverUCF( Struct currentStruct , double double double double double double double double double double double double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t double anchorDistance , radius , width , width , anchorDistance , width , width , lengthTop , baseHeight , y , y , y , y , gdsLayer ) gdsLayer ) anchorDistance , double i n t i n t ) baseExtent , anchorDistance , baseExtent , anchorDistance , length3 , double double double double double double double double double lengthTop , double double double lengthTop , lengthTop , anchorLayer , numSides , p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // cantileverUCF // cantileverUC // cantileverUCF // cantileverUR // cantileverUR // cantileverPB3 // cantileverPB3 // cantileverPB2 NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , x , y , y , y x , x , y , i n t i n t double double THETA , x , gdsLayer ) rY1 , rY , page 469 of 488 double double double double double double double double double double i n t numSides , i n t i n t x , x , length2 , double length2a , x , double double i n t double double gdsLayer ) baseExtent , double lengthTop , baseHeight , double i n t length1 , length1 , length2 , rY , THETA , double double double double anchorLayer , rX , rX1 , double anchorDistance , double double double i n t baseHeight , double double double double double lengthTop , THETA , anchorDistance , double double anchorLayer , anchorDistance , double length1 , length1 , baseExtent , rX , i n t length3 , double double double double lengthTop , width2 , width2 , length , length , length1 , double baseHeight , gdsLayer ) gdsLayer ) gdsLayer ) double double double double i n t i n t i n t double anchorLayer , createCantileverCE ( createCnntileverCEPaddle( createCantileverUCP( createCantileverUCC( baseExtent , anchorDistance , double double double > > > > length3 , double double double double i n t lengthTop , width2 , width2 , length , baseExtent , anchorLayer , THETA , THETA , THETA , GArea GArea GArea GArea baseExtent , anchorDistance , double double < < < < width , width , width , length2b , double baseHeight , width1 , width1 , i n t length3 , double double double createCantileverCE ( Struct currentStruct , createCantileverUC( Struct currentStruct , createCantileverUCP( Struct currentStruct , createCantileverUCC(Struct currentStruct , double numSides , double double double double double double gdsLayer ) i n t double double double double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t double i n t baseExtent , width , length3 , anchorDistance , length2b , baseHeight , width1 , width1 , y , y , y , y , y , gdsLayer ) baseHeight , i n t baseExtent , anchorDistance , length2 , double double double double double double double double double double double double double length2a , diameter , baseHeight , anchorLayer , anchorLayer , anchorLayer , numSides , THETA , p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // cantileverCEPaddle // cantileverCE // cantileverUCP // cantileverUCC // cantileverCE // cantileverUCP // cantileverUCC // cantileverUC NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 i n t THETA THETA double double double double double double double THETA , x , y , pitch , THETA , x , x , y , y y , page 470 of 488 i n t double rX1 , THETA , double double double double double double double double double gdsLayer ) gdsLayer ) numElements , numElements , paddleW , double double double double x , pitch , double double x , x , i n t i n t i n t i n t double double endL , linearVar , percentageVar , paddleW , double baseExtent , double double length , numElements , numElements , double double pitch , pitch , THETA , THETA , baseExtent , double linearVar , double double double percentageVar , i n t i n t double endL , baseExtent , baseExtent , double numSides , double double double double double startL , double double i n t pitch , pitch , double double double numSides , width , createDcBeamLSE( createDcBeamL( createDcBeamP( baseExtent , baseExtent , startL , startL , rY2 , > > > i n t double baseHeight , double double startL , double baseHeight , anchorLayer , anchorLayer , GArea GArea GArea baseExtent , baseExtent , double double rY2 , < < < double double double width , double y , i n t i n t baseHeight , baseHeight , startL , startL , createCnntileverCEPaddle ( Struct currentStruct , createDcBeamL ( Struct currentStruct , createDcBeamLSE ( Struct currentStruct , createDcBeamP ( Struct currentStruct , double double rX2 , double double double width , width , gdsLayer ) gdsLayer ) double double A r r a y L i s t A r r a y L i s t A r r a y L i s t double double double double i n t i n t width , baseHeight , baseHeight , rX2 , x , y , double gdsLayer ) double double gdsLayer ) gdsLayer ) numElements , i n t width , width , rY1 , y , y , , i n t i n t i n t anchorDistance , anchorDistance , double double double double double double baseHeight , baseHeight , gdsLayer) paddleL , paddleL , numElements , THETA , THETA , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // dcBeamLSE // dcBeamLSE // dcBeamP // dcBeamP // dcBeamL // dcBeamL // cantileverCEPaddle NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x , y , THETA THETA i n t double double double double double x , y , i n t double pitch , THETA , y , THETA , x , x , y , y , y length2 , page 471 of 488 i n t double double double double double i n t double double double THETA , x , double double double width4 , gdsLayer ) bH , double double double double double double x , double pitch , baseExtent , x , i n t gap, x , x , length2 , double endL , double anchorDistance , double double double baseExtent , double double width2 , bH , double double THETA , double double double baseHeight , baseExtent , double anchorLayer , sEnd , anchorDistance , double width3 , double endL , i n t double double double double length3 , double double width2 , startL , double gdsLayer ) gdsLayer ) double baseHeight , double sEnd , al , i n t i n t createDcBeamT( createDcBeamR( createDcBeamT2( createDcBeamCustom ( createDcBeamNLSE( baseExtent , length1 , > length , double double > > > > > double baseHeight , double double width2 , startL , anchorLayer , baseHeight , Double THETA , THETA , GArea GArea GArea GArea GArea baseExtent , anchorDistance , double double < < < < < < al , double i n t width , double length1 , length2 , > length , double createDcBeamT ( Struct currentStruct , createDcBeamR ( Struct currentStruct , createDcBeamCustom( Struct currentStruct , createDcBeamNLSE ( Struct currentStruct , double al i s a vector array of s1 w1 L1 . . . . sn wn LN values al i s a vector array of s1 w1 L1 . . . . sn wn LN values double double double double double − − width , width1 , gdsLayer ) double Double A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t A r r a y L i s t double double < double i n t width , baseHeight , width1 , y , A r r a y L i s t y , gdsLayer ) double double gdsLayer ) gdsLayer ) numElements , i n t anchorDistance , width , width1 , y , y y , y , i n t i n t i n t A r r a y L i s t baseExtent , length1 , double double double double double baseHeight , gdsLayer) anchorLayer , anchorLayer , numElements , THETA , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c // dcBeamT2 // dcBeamT // dcBeamT // dcBeamR // dcBeamR // dcBeamCustom // dcBeamCustom // dcBeamNLSE // dcBeamNLSE NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 rX2 gap, i n t i n t i n t double double double double double L2 , x , x , y , gdsLayer ) i n t x , y , layerFront double double double page 472 of 488 double numSides , numElements double y , i n t baseExtent , rX2 , THETA ) i n t i n t W2, W2, i n t i n t double rY1 , double double double lengthEnd , gdsLayer ) gdsLayer ) double double hElectrode , double lengthSide , x , double x , W1, W1, i n t i n t length3 , double double double width3 , THETA , double anchorDistance , baseExtent , anchorDistance , double x , double double numSides , double diameter , rY1 , L2, double double lengthEnd , double double double double rX1 , THETA ) THETA , THETA , i n t double baseWidth , double double double anchorDistance , L1 , layerMetal , double double double baseHeight , double double double double double double width2 , hOverlap , i n t lengthStart , lengthSide , length2 , gdsLayer ) gdsLayer ) gdsLayer ) HB , W1, W1, double double rX1 , diameter , double baseWidth , i n t i n t i n t anchorLayer , baseWidth , createMARA ( createDcBeamC ( createDcBeamCB ( baseHeight , length , double double > > > double double double double double i n t double double lengthStart , layerMetal , double layerBack , double baseHeight , anchorLayer , anchorLayer , L1, LB , THETA , THETA , THETA , GArea GArea GArea double baseWidth , < < < double space , numSides , HB , i n t width , width1 , numElements , i n t i n t i n t length , length1 , createMARAs ( Struct currentStruct , String id , createDcBeamT2 ( Struct currentStruct , createDcBeamC ( Struct currentStruct , createDcBeamCB ( Struct currentStruct , i n t double hOverlap , i n t double double double double double double double width , double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t y , baseHeight , rY2 , numSides , double double baseHeight , anchorDistance , double width , y , y , LB , W2, W2, layerBack , i n t layerFront , double double i n t double double hElectrode , width , double y , , , , i n t anchorDistance , anchorDistance , double double double double double double width4 , baseHeight , anchorLayer , anchorLayer , anchorLayer , space , rY2 , x , numElements , numElements , p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void // MARA // MARAs // dcBeamC // dcBeamC // dcBeamCB // dcBeamT2 // dcBeamCB NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Wb Wb y , y , LB, double i n t L2 , double double W1b, double double double space , i n t i n t double i n t double double W2, W2, hElectrode double page 473 of 488 x , y , hOverlap , HB , i n t i n t i n t lengthSide , layerBack , double double numSides , L2, LB, x , x , y , THETA ) Wa, Wa, double double double double double space , i n t i n t double double THETA ) double double double double HB , double double double diameter , double double double W1b, W1a, Wb, double double L2 , x , layerFront , layerMetal , double hOverlap , numSides , LB , x , layerBack , layerBack , L , L hElectrode , double W1b, i n t double space , i n t i n t double double double double diameter , Wb, i n t i n t lengthSide , double double layerFront , lengthSide , double double hOverlap , LB , double double L1, HB , Wa, Wa, hElectrode , double double W1a, W1a, W1, W1, i n t layerMetal , double double double THETA ) double numSides , i n t layerMetal , double double double diameter , space , W1a, layerBack , double double double HB , W2b, Wa, Wa, double double double i n t layerFront , layerFront , i n t double L , createMATA ( createMATALW ( i n t hElectrode , LB , numSides , L1 , L1 , > > i n t i n t lengthSide , double double double space , numElements , double double double hOverlap , THETA ) i n t hOverlap , i n t layerBack , double L , L L1, HB , GArea GArea hElectrode , double double LB , THETA ) THETA ) W2b, < < double double diameter , W2a, lengthSide , double double numElements , y , i n t layerBack , double double layerMetal , createMATAs ( Struct currentStruct , String id , createMATA ( Struct currentStruct , createMARA ( Struct currentStruct , createMATALWs ( Struct currentStruct , String id , createMATALW ( Struct currentStruct , layerFront , double numSides , numSides , i n t double double double i n t double double double double double W2b, i n t double double diameter , i n t i n t i n t double double A r r a y L i s t A r r a y L i s t y , space , LB , lengthSide , hElectrode , hOverlap , space , x , numElements , L2, HB , W2a, double numElements , numElements , layerFront , layerMetal , double i n t double double double i n t i n t , , i n t i n t layerFront , layerMetal , layerMetal , lengthSide , hElectrode , layerBack , double double double double double double double double diameter , diameter , hOverlap , x , numSides , numElements , numElements , y , THETA ) THETA HB , W2a, p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void // MATA // MATALW // MATA // MATAs // MATALW // MARA // MATALWs NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 y , y , LB, double L2 , L2 , double double W1b, W1b, double double double double i n t i n t diameter , i n t i n t double double double double double hOverlap , hOverlap , page 474 of 488 double lowerSpace , lowerSpace , HB , i n t i n t layerBack , L2, L2, LB, HB , x , x , y , y , double double double double i n t double layerMetal , double double double double double double double double double diameter , double double double double W1b, W1b, W1a, W1a, HB , i n t layerFront , layerMetal , lowerSpace , lowerSpace , LB , x , x , lengthSide , layerBack , layerBack , LB , W1b, W1b, i n t space , space , i n t double double double double double i n t i n t double layerFront , double double double lowerSpace , lowerSpace , double double double double L1 , L1 , HB , lengthSide , double double LB , W1a, W1a, W1a, i n t layerBack , double double THETA ) numSides , i n t double double space , space , W1a, W1a, layerBack , double double double W2b, W2b, double double double double i n t layerFront , layerFront , double createMAR3 ( createMAR2 ( i n t lengthSide , LB , hElectrode , hElectrode , numSides , L1 , L1 , > > i n t i n t double double double double space , space , double double THETA ) i n t L1, L1, GArea GArea layerFront , double double THETA ) THETA ) W2b, W2b, < < double double double double diameter , W2a, W2a, hElectrode , hElectrode , double double numElements , numElements , double i n t layerMetal , createMAR3s ( Struct currentStruct , String id , createMAR2s ( Struct currentStruct , String id , createMAR3 ( Struct currentStruct , createMAR2 ( Struct currentStruct , layerFront , numSides , numSides , i n t i n t double double double double double double W2b, W2b, i n t double double double diameter , i n t i n t i n t double double A r r a y L i s t A r r a y L i s t y , y , hOverlap , hOverlap , hElectrode , hElectrode , L2, L2, THETA ) HB , W2a, W2a, double double numSides , numElements , numElements , layerMetal , double double double i n t i n t i n t double double i n t layerMetal , layerMetal , layerBack , double double double double double double double double diameter , diameter , hOverlap , hOverlap , numSides , x , x , numElements , numElements , THETA ) THETA HB , W2a, W2a, p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void // MAR3 // MAR3 // MAR2 // MAR3s // MAR2 // MAR2s NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 y , y , LB, double L2 , L2 , double double double W1b, W1b, W1b, double double double double i n t i n t diameter , i n t i n t double double double double double hOverlap , hOverlap , page 475 of 488 double lowerSpace , lowerSpace , HB , i n t i n t layerBack , L2, L2, LB, HB , x , x , y , y , double double double double double i n t double layerMetal , double double double double double double double double double diameter , double double double double W1b, W1b, W1a, W1a, W1a, HB , i n t layerFront , layerMetal , lowerSpace , lowerSpace , LB , x , x , lengthSide , layerBack , layerBack , LB , W1b, W1b, i n t space , space , i n t double double double double double double i n t i n t double layerFront , double double double lowerSpace , lowerSpace , double double double double L1, L1, L1, HB , lengthSide , double double LB , W1a, W1a, W1a, W1a, i n t layerBack , double double THETA ) numSides , i n t double double space , space , W1a, W1a, layerBack , double double double double W2b, W2b, double double double double i n t layerFront , layerFront , double createMAT2 ( createMARC ( i n t lengthSide , LB , hElectrode , hElectrode , numSides , L1 , L1 , > > i n t i n t double double double double space , space , double double THETA ) i n t L1, L1, GArea GArea layerFront , double double THETA ) THETA ) W2b, W2b, < < double double double double diameter , W2a, W2a, hElectrode , hElectrode , double double numElements , numElements , numElements , double i n t layerMetal , createMAT2s ( Struct currentStruct , String id , createMAT3s ( Struct currentStruct , String id , createMARCs ( Struct currentStruct , String id , createMAT2 ( Struct currentStruct , createMARC ( Struct currentStruct , layerFront , numSides , numSides , i n t i n t i n t double double double double double double W2b, W2b, i n t double double double diameter , i n t i n t i n t double double A r r a y L i s t A r r a y L i s t y , y , y , hOverlap , hOverlap , hElectrode , hElectrode , L2, L2, THETA ) HB , W2a, W2a, double double numSides , numElements , numElements , layerMetal , double double double double i n t i n t i n t double double i n t layerMetal , layerMetal , layerBack , double double double double double double double double diameter , diameter , hOverlap , hOverlap , numSides , x , x , x , numElements , numElements , THETA ) THETA HB , W2a, W2a, p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // MARCs // MARC // MARC // MAT2 // MAT2 // MAT2s // MAT3s NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 y , y , W, W, L2 , L2 , double W1b, double double double double i n t i n t double diameter , diameter , i n t i n t double double double double double double hOverlap , hOverlap , page 476 of 488 lowerSpace , lowerSpace , i n t i n t numSides , L2, L2, HB , HB , x , x , y , y , dL , THETA ) double double double i n t double double double layerMetal , layerMetal , double double double double double double double double diameter , diameter , double double double double W1b, W1b, W1a, double double HB , HB , i n t i n t layerMetal , layerMetal , lowerSpace , lowerSpace , x , x , layerBack , layerBack , L , LB , LB , W1b, W1b, space , space , i n t i n t double double double double double diameter , i n t i n t double double lengthSide , double double lowerSpace , lowerSpace , double double double double double L1 , HB , HB , double double LB , LB , W1a, W1a, W1a, layerMetal , layerBack , layerBack , double double double double i n t i n t i n t double double space , space , W1a, W1a, layerBack , layerBack , double double double HB , W2b, W2b, double double double double layerFront , layerFront , createMAT3 ( createMATC ( i n t i n t LB , LB , hElectrode , hElectrode , L1 , L1 , > > i n t i n t double double double double space , space , numElements , double double double hOverlap , i n t layerBack , L1, L1, GArea GArea layerFront , layerFront , double double LB , THETA ) THETA ) W2b, W2b, < < double double double double W2a, W2a, hElectrode , hElectrode , double double numElements , y , i n t i n t i n t double createMARALINEARs ( Struct currentStruct , String id , createMAT3 ( Struct currentStruct , createMATCs ( Struct currentStruct , String id , createMATC ( Struct currentStruct , layerFront , layerFront , numSides , numSides , i n t double double double double double double double W2b, W2b, double double i n t i n t i n t i n t double double double A r r a y L i s t A r r a y L i s t y , hOverlap , hOverlap , space , hElectrode , hElectrode , x , L2, L2, THETA ) THETA ) W2a, W2a, double double numSides , numSides , numElements , numElements , layerFront , double i n t i n t i n t i n t double double double i n t layerMetal , layerMetal , hElectrode , double double double double double double double double double diameter , diameter , hOverlap , hOverlap , numSides , numSides , x , numElements , numElements , THETA ) THETA THETA ) THETA W2a, W2a, p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c void // MAT3 // MAT3 // MATC // MATCs // MATC // MARALINEARs NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 W, W, i n t i n t double x , x , y , y , x , y , double double double double double double double double double layerFront layerFront page 477 of 488 double beamWidth, layerBack , layerBack , numSides , LB, LB, W, W, W, W, shapeReso ) dL, THETA , double double double double i n t i n t double double space , i n t i n t i n t double gdsLayer ) space , x , x , hElectrode , hElectrode , x , double double double double double i n t double double double double numOfSides , double double dL , dL , L , L double double i n t double connectorWidth , double anchorLayer , numSides , numSides , double W, W, diameter , W, W, THETA , THETA , i n t i n t i n t layerFront , layerFront , lengthSide , double double double shapeReso ) numOfSides , hElectrode , hElectrode , double i n t i n t layerMetal , radius , double double double L , L , i n t double double double i n t lengthSide , lengthSide , connectorLegth , dL, double dL, HB , double double diameter , diameter , double double double createGuckelRing( createMARALINEAR ( createMARACURVE ( radius , numSides , numSides , > > > double double double double numElements , anchorDistance , double double THETA , THETA ) double double hOverlap , i n t i n t layerMetal ) layerMetal , L , L i n t layerBack , connectorLegth , anchorLayer , L , L GArea GArea GArea LB , < < < double base , HB , HB , i n t i n t lengthSide , lengthSide , ringWidth , y , i n t i n t double double double double createGuckelRing ( Struct currentStruct , createMARALINEAR ( Struct currentStruct , createMARACURVEs ( Struct currentStruct , String id , createMARACURVE ( Struct currentStruct , double hOverlap , hOverlap , numElements , numElements , double double double double double double gdsLayer ) diameter , diameter , i n t i n t double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t space , i n t ringWidth , double double base , x , y , y , y , LB , LB , layerBack , layerBack , layerFront , layerMetal , layerMetal , double double i n t i n t double shapeReso) numElements , , , i n t i n t i n t hElectrode , anchorDistance , double double double double double double connectorWidth , double double hOverlap , hOverlap , space , space , numElements , beamWidth, THETA , HB , HB , p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c // GuckelRing // GuckelRing // MARACURVE // MARACURVE // MARACURVEs // MARALINEAR // MARALINEAR NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 x y i n t i n t L1 , i n t base , w4 , x , y , y double double r3 , e , double double Lc , Le , x , y , double double f , double gdsLayer ) numSides , THETA , radiusEnd , page 478 of 488 i n t i n t double x , double double double double double i n t i n t double double base , double double length1 , baseWidth , Lb , Ld , w4 , x , double double gdsLayer ) d , w3 , double r2 , r3 , x , double i n t i n t baseHeight , e , e i n t radiusEnd , double double width3 , THETA , anchorDistance , double double double double double double Lc , La , beamWidth, double double double shapeReso ) double double c , w3 , i n t i n t double double double THETA , double r1 , r2 , w2T , anchorLayer , d , d i , radiusStart , double width3 , Lb , beamWidth, double i n t double double double baseHeight , i n t length3 , double double double width2 , double connectorWidth , gdsLayer ) b , double double double double r , w2T , r1 , c , c La , THETA , w2 , i n t radiusStart , anchorLayer , c r e a t e F l u i d C e l l ( h , createGuckelRingArray( createDiamondRing( double shapeReso ) double double numOfSides , > > > i n t double double i n t connectorWidth , double double width2 , i n t i , double double double double a , double double anchorLayer , THETA , GArea GArea GArea ringWidth , double < < < anchorDistance , r , L2, b , b w2 , Lf , length3 , width1 , numOfSides , g , w1 , i n t length2 , double double c r e a t e F l u i d C e l l ( Struct currentStruct , createGuckelRingArray( Struct currentStruct , createDiamondRing(Struct currentStruct , double double i n t i n t double double THETA , double double double double double h , double double double double A r r a y L i s t A r r a y L i s t A r r a y L i s t ringWidth , double Le , y , deltaRadius , connectorLegth , a , a f , anchorDistance , width1 , y , y , L1, L2 , w1 , i n t double double gdsLayer ) numSides , double double Lf , length2 , double double double Ld , g , , , i n t i n t deltaRadius , length1 , double double double anchorDistance , double double double double double connectorLegth , anchorLayer , baseWidth , p u b l i c s t a t i c void p u b l i c s t a t i c p u b l i c s t a t i c p u b l i c s t a t i c void p u b l i c s t a t i c void p u b l i c s t a t i c // f l u i d C e l l // f l u i d C e l l // diamondRing // diamondRing // GuckelRingArray // GuckelRingArray NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 Bibliography

Email: [email protected]

[1] A. J. Speth, A. D. Wilson, A. Kern, and T. H. P. Chang, “Electron beam

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: lithography using vector scan techniques,” Journal of Vacuum Science & Technology, vol. 12, pp. 1235–1239, Nov. 1975.

[2] W. D. Grobman and T. W. Studwell, “Data compaction and vector scan e-beam system performance improvement using a novel algorithm for recognition of pattern step and repeats,” Journal of Vacuum Science & Technology, vol. 16, pp. 1803–1808, Nov. 1979.

[3] W. D. Grobman, “An overview of pattern data preparation for vector scan electron beam lithography,” Journal of Vacuum Science & Technology, vol. 17, pp. 1156–1163, Sept. 1980.

[4] S. M. Arnold, “Electron beam fabrication of computer-generated holo­ grams,” Optical engineering, vol. 24, no. 5, pp. 245803–245803, 1985.

[5] T. Shiono, K. Setsune, O. Yamazaki, and K. Wasa, “Computer-controlled electron beam writing system for thin film micro-optics,” Journal of Vacuum Science & Technology B, vol. 5, pp. 33–36, Jan. 1987.

[6] V. Bogli, P. Unger, H. Beneking, B. Niemann, P. Guttmann, and W. Meyer- Ilse, “Electron Beam Lithography And Nanometer Structures: Fabrication Of Microzone Plates,” Optical Engineering, vol. 27, no. 2, pp. 272143– 272143–, 1988.

[7] M. A. Gesley, F. J. Hohn, R. G. Viswanathan, and A. D. Wilson, “A vector scan thermal field emission nanolithography system,” Journal of Vacuum Science & Technology B, vol. 6, pp. 2014–2018, Nov. 1988.

[8] U. Klein and F. Gotz, “Definition of geometries with complicated, curved boundaries for electron beam pattern generation,” Microelectronic En­ gineering, vol. 9, no. 1, pp. 495–497, 1989.

[9] K. S. Urquhart, S. H. Lee, C. C. Guest, M. R. Feldman, and H. Farhoosh, “Computer aided design of computer generated holograms for electron beam fabrication,” Applied Optics, vol. 28, pp. 3387–3396, Aug. 1989.

[10] R. W. Hawley and N. C. Gallagher Jr, “Efficient electron-beam pattern data format for the production of binary computer-generated holograms,” in OE/LASE’90, 14-19 Jan., Los Angeles, CA, pp. 11–23, International Society for Optics and Photonics, 1990.

479 , , Applied page 480 of 488 /20 extreme /20 extreme λ , vol. 34, no. 14, Journal of Vacuum Journal of Vacuum , vol. 13, pp. 2529– , vol. 10, p. 2974, Nov. Microelectronic engineering Microelectronic Applied optics Journal of Vacuum Science & Technology & Technology Science Journal of Vacuum Journal of Vacuum Science & Technology B & Technology Science of Vacuum Journal Journal of Vacuum Science & Technology B: Microelectronics Journal of Science Vacuum & B Technology Microelectronics Microelectronics and Nanometer Structures , vol. 32, no. 14, pp. 2555–2565, 1993. optics, vol. 32, no. 14, pp. 2555–2565, 1993. B: , vol. 15, pp. 2872–2876, Nov. 1997. B, vol. 15, pp. 2872–2876, Nov. & Technology Science , vol. 12, p. 3460, Nov. 1994. , vol. 12, p. 3460, Nov. Structures and Nanometer interferometry,” interferometry,” ultraviolet sys­ e-beam “Enhanced Vettiger, P. and Vasey, F. Rothuizen, H. Prongue, D. elements,” optical of fabrication the for tem optimization “Process Tennant, M. D. and Jacobsen, J. C. Spector, J. S. zone plates,” of sub-20 nm soft x-ray production for E. H. Anderson, V. Boegli, and L. P. Muray, “Electron beam lithography dig­ “Electron Muray, Boegli, and L. P. E. H. Anderson, V. struc­ curvilinear generalized for electronics and generator pattern ital tures,” 1995. 2534, Nov. J. D. Fan, Zaleta, K. S. Urquhart, and S. H. Lee, “Efficient encoding al­ design gorithms of for diffractive computer-aided optical elements by the use of electron-beam fabrication,” pp. 2522–2533, 1995. Jack­ K. Attwood, T. D. Medecki, H. Bokor, J. Beguiristain, R. Goldberg, A. K. towards “Progress and G. E. Sommargren, son, E. Tejnil, D. M. Newman, R. W. Hawley, D. L. Goeckel, R. D. Crawford, S. Abraham, R. D. Crawford, D. L. Goeckel, Hawley, D. M. Newman, R. W. and N. C. “Efficient Gallagher, storage, computation, and exposure of lithography,” holograms by electron-beam computer-generated pickup with diffractive micro- “Planar-optic-disk Shiono and H. Ogawa, T. optics,” Applied optics, vol. 33, no. 31, pp. 7350–7355, 1994. “Electron-beam lithography of Vasey, curved F. structures with an en­ hanced vector-scan pattern generator supporting conic-based prim­ itives,” raction-limited blazed reflection ffractive di blazed reflection “Diffraction-limited Shiono and H. Ogawa, T. lithogra­ by electron-beam fabricated oblique incidence for microlenses 3643–3649, 1991. Applied optics, vol. 30, no. 25, pp. phy,” Erdogan, T. O. King, G. Wicks, W. D. G. Hall, E. H. Anderson, and M. J. Rooks, symmetric “Circularly operation of a concentric-circle-grating, surface- emitting, AlGaAs/GaAs quantum-well semiconductor laser,” 1921, 1992. , vol. 60, no. 16, p. Applied Physics Letters O. King, “Curved grating fabrication techniques for surface-emitting lasers,” feedback distributed vol. 13, pp. 2923–2927, Nov. 1995. vol. 13, pp. 2923–2927, Nov. vol. 27, no. 1, pp. 163–166, 1995. 1992. [15] [17] [11] [20] [21] [18] [19] [16] [12] [13] [14] NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , waveg­ Nature 2 , vol. 24, page 481 of 488 Journal of Vac­ of Journal , vol. 77, no. 11, , vol. 34, pp. 243–260, Microelectronic Engineer­ Microelectronic , vol. 99, p. 134801, Sept. Journal of Science Vacuum & , vol. 83, pp. 1067–1072, Apr. Applied Physics Letters fficiency multilevel zone X-rays,” plates for keV Physical Review Letters Microelectronic Microelectronic Engineering Journal of Vacuum Science & Technology B Microelectronic Microelectronic Engineering ect of size and roughness on light transmission in a Si/SiO a in transmission light on roughness and size of ect Chao, A. Lucero, Chao, L. A. Johnson, Lucero, and D. Attwood, “Nanofabrication and Critical Angle Limit,” 2007. roughness “Molecular Martinelli, M. and Piccinin, D. Stasi, V. Ubaldi, M. method,” LER by resist developed of analysis metallic of “Fabrication Wiederrecht, P. G. and Gray, K. S. Ocola, E. L. Lu, M. nanoslit waveguides with sharp bends,” Optimization, Application Notes.” Notes.” Application Optimization, of review “A Tserepi, A. and Patsis, P. G. Constantoudis, V. Gogolides, E. patterning from resulting nanotexture and surface line edge roughness processes,” 2006. M. Lu, D. M. Tennant, and C. J. Jacobsen, of linewidth variation “Orientation in sub-50-nm Gaussian e-beam lithography and dependence its correction,” 2006. pp. 2881–2885, Nov. M. D. and Taylor, A. Bozovic, N. Ablett, M. J. Stein, A. Evans-Lutterodt, K. ractive optics for high-resolution x-ray applications,” applications,” x-ray high-resolution diffractive optics for Kimerling, C. L. and Foresi, J. Agarwal, A. Luan, H.-C. Lim, R. D. Lee, K. K. uide: Experiments and model,” p. 1617, 2000. Attwood, T. D. and Anderson, H. E. Liddle, A. J. Harteneck, D. B. Chao, W. , http://www.genisysgmbh.de/web/applications.html “Mixed Exposure Fracture Exposure, Multi-Pass Writing, and Fast Options, HighResolution H. Rothuizen, D. conic “A and Vettiger, Prongue, Vasey, primitive- P. F. based pattern generator for electron-beam lithography of diffractive optical elements,” Dec. 1997. E. Romanato, Di M. F. Fabrizio, Gentili, S. Cabrini, B. Kaulich, J. Susini, and R. Barrett, “High-e Oct. 1999. , vol. 401, pp. 895–898, Nature E. H. Anderson, D. L. Olynick, B. Harteneck, E. G. Veklerov, Denbeaux, , vol. 84, pp. 1088–1091, May 2007. ing, vol. 84, pp. 1088–1091, May , vol. 26, pp. 2151–2155, Nov. 2008. B, vol. 26, pp. 2151–2155, Nov. Technology , vol. 18, pp. 2970–2975, Nov. 2000. B, vol. 18, pp. 2970–2975, Nov. & Technology uum Science vol. 435, pp. 1210–1213, June 2005. vol. 435, pp. 1210–1213, June 2005. Tennant, “Using Compound Kinoform Hard-X-Ray Lenses to Exceed the Exceed to Lenses Hard-X-Ray Kinoform “Using Compound Tennant, W. W. “Eff nm,” 15 than better resolution spatial a at microscopy X-ray “Soft [27] [31] [28] [29] [30] [26] [23] [24] [22] [32] [25] NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , Optics , vol. 29, vol. , page 482 of 488 Optics Express Applied Physics , vol. 4, pp. 786– pp. 4, vol. , ect correction for for correction ect Journal of Vacuum Science Science Vacuum of Journal Journal of Vacuum Science & , vol. 18, pp. 10995–11007, May , vol. 18, pp. 10995–11007, May Nature Photonics Nature Optics Express Journal of Vacuum Science & Technology B Technology & Science Vacuum of Journal Srinivasan, “Efficient quantum dot single photon extraction into an , vol. 26, pp. 122–127, Jan. 2008. B, vol. 26, pp. 122–127, Technology , vol. 34, pp. 2542–2544, Aug. 2009. , vol. 34, pp. 2542–2544, Aug. 2009. Letters 2010. D. Schuh, Wegscheider, A. Badolato, M. W. Rakher, and Davanco, M. T. K. coupler,” directional optical fiber using a nanophotonic D. Rakher, Schuh, M. Davanco, A. M. Badolato, T. and K. Srinivasan, “A dot quantum single of extraction vertical for grating dielectric circular , vol. 99, p. 041102, July 2011. emission,” Applied Physics Letters M. Davanco and K. Srinivasan, “Fiber-coupled semiconductor waveguides waveguides semiconductor “Fiber-coupled Srinivasan, K. and Davanco M. as an fficient e optical interface to a single quantum dipole,” L. and Rakher, Ma, X. K. M. Tang, O. Srinivasan, T. Slattery, “Quantum quan­ a from photons single telecommunications-band of transduction upconversion,” frequency by dot tum and K. Srinivasan, “Hybrid M. gap Davanco modes by induced fiber taper on thin films,” deposited electron beam direct write nanolithography,” nanolithography,” write direct beam electron “Electron Aida, Y. and Hochberg, M. Baehr-Jones, T. He, L. Li, J. Bojko, J. R. silicon confinement high loss, low for strategies writing lithography beam waveguides,” optical no. 6, p. 06F309, 2011. J. Bus­ J. Belledent, A. S. Fay, Pauliac, Figueiro, Quaglio, T. T. C. Browning, process­ curvilinear data “Photonic Schiavone, J.-C. Marusic, and P. tos, Oct. 2014. ing,” p. 92350V, M. I. Davanco and K. Srinivasan, “Efficient spectroscopy of single em­ waveguides,” taper fiber optical using emitters bedded S. Sardo, F. S. Giacometti, Sardo, S. F. Doneda, U. Colombo, M. D. Muri, A. Donghi, M. Gentili, and M. C. Ubaldi, “Line edge A. Nottola, R. Morson, G. Mutinati, roughness (LER) reduction strategy for SOI waveguides fabrication,” 2008. May , vol. 85, pp. 1210–1213, Engineering Microelectronic A. Stein, K. Evans-Lutterodt, N. of Bozovic, “Fabrication and A. Taylor, lithog­ beam electron by focusing x-ray hard for lenses kinoform silicon raphy and deep reactive ion etching,” eff proximity assisted geometry “Nanoscale Ocola, E. L. , vol. 99, p. 121101, Sept. 2011. Letters , vol. 27, pp. 2569–2571, Nov. 2009. B, vol. 27, pp. 2569–2571, Nov. & Technology vol. 17, pp. 10542–10563, June 2009. vol. 17, pp. 10542–10563, June 2009. 791, Nov. 2010. 791, Nov. waveguides: waveguides: emitters of single solid-state in Application spectroscopy [35] [40] [33] [39] [42] [37] [38] [34] [41] [43] [36] NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , Op­ Applied , vol. 20, , vol. 107, , vol. page 483 of 488 , vol. 5, pp. 770– 770– pp. 5, vol. , Applied Physics , vol. 20, pp. 21033– Optics Express New Journal of Physics Nature Photonics Nature Physical Review Letters Physical Review Optics Express , vol. 37, pp. 2997–2999, July 2012. Optics Letters waveguides,” x Aksyuk, and A. M. Weiner, “Probing coherence in microcavity frequency frequency microcavity in coherence “Probing Weiner, M. A. and Aksyuk, , vol. 98, p. 211103, May 2011. May , vol. 98, p. 211103, Letters , vol. 20, pp. 18268–18280, July 2012. tics Express , vol. 100, p. 261104, June 2012. Physics Letters SiN con­ microelectromechanically “A Aksyuk, V. Srinivasan, and Miao, K. H. sensing optomechanical system,” cavity trolled Aksyuk, and K. Srinivasan, “Wide Liu, cantilever H. stiffness Miao, V. Y. microscopy,” force atomic sensors for optomechanical range cavity pp. 24394–24410, Oct. 2012. Xia, F. Assefa, S. Agha, I. Tosi, A. Shehata, B. A. Ong, R. J. ğo, Davanà M. chip,” nanophotonic silicon a from photons single heralded band F. Ferdous, H. Miao, P.-H. Wang, D. E. Leaird, K. Srinivasan, L. Chen, combs via optical pulse shaping,” 21043, Sept. 2012. I. Agha, M. Davanco, B. Thurston, and K. Srinivasan, “Low-noise chip- based frequency conversion by Bragg four-wave-mixing scattering in , vol. 11, pp. 791–797, Feb. 2011. , vol. 11, pp. 791–797, Feb. Nano Letters Resonator,” Microdisk Srinivasan, K. and Tang, X. Slattery, O. Davanco, M. Ma, L. Rakher, T. M. Dot,” a Quantum from Single Photons p. 083602, Aug. 2011. Srini­ K. and Badolato, A. Rakher, T. M. Rech, I. Gulinatti, A. Agha, I. Ates, S. by of an Single InAs Emitted Photons Quantum quency Dot,” Conversion , vol. 109, p. 147405, Oct. 2012. Letters Physical Review and K. Srinivasan, J. M. Chan, Davanco, A. O. H. Painter, Safavi-Naeini, M. T. Rakher and K. Srinivasan, “Subnanosecond electro-optic modula­ electro-optic “Subnanosecond Srinivasan, K. and Rakher T. M. tion of triggered single photons a from quantum dot,” H. Ferdous, F. Miao, D. E. Leaird, K. Srinivasan, J. Wang, L. Chen, L. T. combs,” frequency microresonator chip “Optome­ Aksyuk, V. and Davanco, M. Rakher, T. M. Miao, H. Srinivasan, K. Using a Silicon Cantilever Probe of an Integrated chanical Transduction vol. 14, p. 075015, July 2012. vasan, “Two-Photon Interference Using Background-Free Quantum Fre­ Quantum Background-Free Using Interference “Two-Photon vasan, 776, Dec. 2011. Varghese, and A. M. Weiner, “Spectral line-by-line pulse shaping of on- and A. M. Weiner, Varghese, V. V. M. J. Green, S. Mookherjea, S. Mookherjea, and K. Srinivasan, “Telecommunications­ M. J. Green, W. “Slot-mode-coupled optomechanical crystals,” optomechanical “Slot-mode-coupled “Simultaneous “Simultaneous Wavelength and Translation Amplitude Modulation of [45] [51] [54] [50] [52] [47] [48] [49] [46] [44] [53] NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , , , Optics , vol. 38, vol. , page 484 of 488 optomechani­ 4 N 3 , vol. 86, p. 042101, Optics Letters Applied Physics Letters Physical Review Letters Physical Review Physical Review A Physical Review IEEE Journal of Selected in Topics Quantum Electronics Aksyuk, and A. M. Weiner, “Observation of correlation between route route between correlation of “Observation Weiner, M. A. and Aksyuk, cal crystals in the resolved-sideband regime,” , vol. 20, pp. 10138–10162, Apr. 2012. , vol. 20, pp. 10138–10162, Apr. Express M. Davanco, C. S. Hellberg, S. Ates, A. Badolato, and K. Srinivasan, “Mul­ A. Badolato, S. Ates, C. S. Hellberg, M. Davanco, tiple time scale blinking in InAs quantum dot single-photon sources,” 2014. B, vol. 89, p. 161303, Apr. Physical Review and broadening “Spectral Srinivasan, K. and Sapienza, L. Ates, S. Agha, I. pulses: nanosecond of from shaping photons single of shaping toward , vol. 39, pp. 5677–5680, Oct. 2014. Optics Letters quantum emitters,” Y. Liu, Aksyuk, M. Y. and Davanco, V. K. Srinivasan, “Electromagnetically Silicon in Conversion Wavelength Wideband and Transparency Induced Resonators,” Optomechanical Nitride Microdisk I. Agha, S. quantum for conversion interface frequency telecommunications-band Ates, M. Davanco, , vol. 21, pp. 21628–21638, Sept. 2013. Optics Express emitters,” and K. Srinivasan, “A chip-scale, “Moving Srinivasan, K. and Song, D. J. Lim, Y. J. Davanco, M. Balram, C. K. resonators,” optomechanical GaAs in coupling photoelastic and boundary Optica, vol. 1, pp. 414–420, Dec. 2014. M. Davanco, S. Ates, Y. Liu, and K. Srinivasan, “Si P.-H. Wang, F. Ferdous, H. Miao, J. Wang, D. E. Leaird, K. Srinivasan, L. Chen, L. Srinivasan, K. Leaird, E. D. Wang, J. Miao, H. Ferdous, F. Wang, P.-H. of noise, Kerr and performance coherence, communication to formation, , vol. 20, pp. 29284–29295, Dec. 2012. combs,” Optics Express K. Srinivasan, and S. Mookherjea, “Spec­ J. R. Ong, J. Recchio, R. Kumar, photon pairs 1.55 at Îijm and from tunable-wavelength trally multiplexed waveguide,” optical coupled-resonator silicon a pp. 2969–2971, Aug. 2013. S. Ates, L. Sapienza, M. Davanco, A. Badolato, and K. Srinivasan, “Bright A. Badolato, L. Sapienza, M. Davanco, S. Ates, a Quantum BraggDot in Grating a Circular Emission Single-Photon From Microcavity,” A. Aksyuk, and D. D. A. Lopez, R. R. S. S. Davids, Decca, V. P. Intravaia, F. computing Casimir interac­ for Dalvit, “Quasianalytical modal approach tions in periodic nanostructures,” Oct. 2012. K. J. Chau and H. J. Lezec, “Revisiting the Balazs thought experiment in the case of a material: left-handed electromagnetic-pulse-induced displacement of a dispersive, dissipative negative-index slab,” vol. 104, p. 041101, Jan. 2014. vol. 110, p. 223603, May 2013. vol. 110, p. 223603, May vol. 18, pp. 1711–1721, Nov. 2012. Nov. vol. 18, pp. 1711–1721, V. V. [58] [55] [64] [61] [56] [65] [62] [63] [59] [60] [57] NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , , , Optica Applied Applied Applied IEEE Pho­ page 485 of 488 Applied Physics Physics Applied Japanese Journal of Applied Physics IEEE Journal in of Quantum Selected Topics Electronics Van Thourhout, T. Krauss, and R. and Baets, Highly “Compact Efficient Thourhout, T. Van A. Aksyuk, “Imaging nanophotonic modes of microresonators using a using microresonators of modes nanophotonic “Imaging Aksyuk, A. , vol. 107, p. 131110, Sept. 2015. , vol. 107, p. 131110, Letters , vol. 14, pp. 235–254, Nov. 1977. physics, vol. 14, pp. 235–254, Nov. 1993. Optics, vol. 32, p. 2112, Apr. Optics, vol. 36, pp. 9383–9390, Dec. 1997. fMQM product and stress-engineered frequency tuning,” frequency stress-engineered and product fMQM laert, L. O’Faolain, D. Van Thourhout, and R. Baets, “Compact Focusing Focusing “Compact Baets, R. and Thourhout, Van D. O’Faolain, L. laert, Circuits,” Integrated Silicon-on-Insulator for Couplers Grating , “GenISys http://www.genisysgmbh.de/web/applications.html - 3-D e- Note,” Beam Lithography Application R. Waldhausl, B. Schnabel, P. Dannberg, E.-B. Kley, A. Brauer, and K. Wolf­ A. Brauer, E.-B. Kley, Dannberg, B. Schnabel, P. R. Waldhausl, by Gratings,” Waveguides Polymer into gang, “Efficient Coupling Bienst­ P. Thourhout, Van D. Bogaerts, W. Ayre, M. Laere, Van F. Taillaert, D. Fibers Optical between Coupling for Couplers “Grating Baets, R. and man, and Nanophotonic Waveguides,” F. Van Laere, G. D. Roelkens, M. Ayre, Between Optical Fiber and Couplers Waveguides,” Nanophotonic Grating J. Schrauwen, , vol. 25, pp. 151–156, Jan. 2007. Technology Journal of Lightwave D. Taillaert, D. Tail­ Bogaerts, Claes, J. W. Schrauwen, S. Scheerlinck, T. Laere, Van F. cal crystals: optomechanics,” multimode for platform a versatile K. A. Twedt, J. Zou, M. Davanco, K. Srinivasan, J. J. McClelland, and , vol. 10, pp. 35–39, Jan. 2016. Photonics ion beam,” Nature focused couplers,” grating of design and “Analysis Peng, T. S. and Tamir T. from beams “Gaussian Burke, J. J. and Roncone, L. R. Li, L. Bates, A. K. R. Zhang, C. Ti, M. I. Davanco, Y. Ren, V. Aksyuk, Y. Liu, and K. Srinivasan, Aksyuk, Y. V. Ren, Y. I. Davanco, R. Zhang, C. Ti, M. and K. Srinivasan, “SiN Nanobeam M. Optomechan­ Davanco, K. Grutter, ical Crystals,” optomechani­ “Slot-mode and K. Srinivasan, M. I. Davanco, K. E. Grutter, , vol. 19, pp. 1919–1921, Dec. 2007. Letters Technology tonics , “JGDS -http://www.skinni.com GDS Library.” Java vol. 45, pp. 6071–6077, Aug. 2006. vol. 2, p. 994, Nov. 2015. vol. 2, p. 994, Nov. waveguides,” planar in couplers grating depth groove variable vol. 21, pp. 1–11, July 2015. vol. 21, pp. 1–11, July V. V. “Integrated tuning fork nanocavity optomechanical transducers with high with transducers optomechanical nanocavity fork tuning “Integrated [67] [71] [72] [73] [74] [69] [68] [75] [70] [66] [76] [77] NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 , IEEE Jour­ Journal , vol. 51, page 486 of 488 Journal of Vacuum Journal of Vacuum , vol. 30, p. 06FB09, , vol. 20, pp. 358–359, IEEE Transactions on Elec­ IEEE Transactions Journal of Vacuum Science Science Journal of Vacuum , vol. 57, pp. 1671–1675, Mar. Applied Physics Letters Journal of Micromechanics and Microengineering Journal of Micromechanics Microscopy Microscopy and Microanalysis Journal of Applied Physics Journal of Vacuum Science & Technology B Science & Journal Technology of Vacuum , vol. 29, p. 06FC01, Nov. 2011. 2011. Nov. B, vol. 29, p. 06FC01, & Technology , vol. 35, pp. 800–801, June 1988. Devices tron , vol. 29, p. 06F302, Nov. 2011. B, vol. 29, p. 06F302, Nov. & Technology Science nal of Vacuum , vol. 62, pp. 3579–3584, Nov. 1987. of Applied Physics, vol. 62, pp. 3579–3584, Nov. M. Mehregany, R. T. Howe, and S. D. Senturia, “Novel microstructures for for Howe, and S. D. Senturia, “Novel microstructures R. T. M. Mehregany, of thin films,” of mechanical properties the insitu measurement H. D. Guckel, Burns, H. C. Tilmans, Visser, and D. Deroo, “Fine-grained strain,” tensile built-in with films polysilicon K. Najafi and K. novel Suzuki, technique and “A structure for the mea­ in films,” thin of modulus Young’s and stress intrinsic of surement E. I. Bromley, J. N. Randall, D. C. Flanders, and R. W. Mountain, “A tech­ J. N. Mountain, Randall, “A D. C. Flanders, E. and I. R. Bromley, W. in of the thin stress nique determination films,” for H. Guckel, Randazzo, T. and D. Burns, W. simple “A technique for the determination of mechanical strain in thin films with applications to polysilicon,” “Microfabricated Senturia, D. S. and Howe, T. R. Mehregany, M. Allen, G. M. mod­ Young’s stress, residual of measurement insitu the for structures strain of thin ulus, films,” and ultimate pp. 241–243, July 1987. lective profile transformation of electron-beam exposed multilevel resist exposed resist multilevel of electron-beam transformation lective profile reflow,” thermal dependent weight molecular a on based structures mold dependent Schleunitz, “Sidewall-angle A. and M. Altana, Schift, H. in thermal nanoimprint lithog­ microcavities filling of three-dimensional raphy,” 2012. Nov. Ion Beam N. D. Bassim, A. Giles, J. D. Caldwell, and L. E. Ocola, “Focused Metamaterial Phonon of Polariton Surface Nanofabrication Write Direct Nanostructures,” A. Schleunitz and H. Schift, “Fabrication of 3d nanoimprint stamps with stamps nanoimprint 3d of “Fabrication Schift, H. and Schleunitz A. continuous reliefs using dose-modulated electron beam lithography reflow,” thermal and “Combining Schift, H. and Atasoy, H. Vogler, M. Spreu, C. Schleunitz, A. reflow thermal selective weight molecular a and lithography nanoimprint structures,” 3d mixed of generation the for “Se­ Schift, H. and Vogler, M. Schander, A. Guzenko, A. V. Schleunitz, A. Science & Technology B, vol. 1, pp. 1364–1366, Oct. 1983. & Technology Science vol. 20, no. 9, p. 095002, 2010. vol. 20, no. 9, p. 095002, 1985. Aug. 2014. [80] [88] [81] [87] [78] [79] [86] [82] [85] [83] [84] NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 IEEE , pp. 96– , pp. 177– Journal of page 487 of 488 , vol. 2, pp. 84– pp. 2, vol. , . Boston, Ma: , vol. 6, pp. 313– pp. 6, vol. , , vol. 2, no. 2, p. 86, , 1991 International Conference on . Boston: Publishers, Academic Kluwer Micromachined Micromachined transducers sourcebook The 8th International Conference on Solid-State Sensors on Solid-State Conference The 8th International Microsystem design Microsystem Electron Electron Devices Meeting, 1993. IEDM ’93. Technical Di­ Journal of Microelectromechanical Systems Journal of Microelectromechanical and Actuators, 1995 and Eurosensors IX.. Transducers ’95 Transducers IX.. Eurosensors and 1995 Actuators, and , vol. 5, pp. 52–58, Mar. 1996. , vol. 5, pp. 52–58, Mar. Systems Microelectromechanical Micro Electro Mechanical Systems, 1990. Proceedings, An Investigation Investigation An Proceedings, 1990. Systems, Mechanical Electro Micro Robots and Machines Actuators, Sensors, Structures, Micro of L. Lin, A. Pisano, and R. micro Howe, strain “A gauge with mechanical amplifier,” 321, Dec. 1997. G. A. T. Kovacs, Senturia, D. S. 2001. M. Gad-el Hak, The MEMS handbook. 2002. FL: CRC Press, Boca Raton, Micro Electro Mechanical Systems, 1993, MEMS ’93, Proceedings An In­ An Proceedings ’93, MEMS 1993, Systems, Mechanical Electro Micro Sensors, Machines and Actuators, Sys­ Structures, of vestigation Micro 1993. IEEE., pp. 201–206, Feb. tems. Soderkvist, and J. Schweitz, “High Sensitive Inter­ J. Ericson, S. Greek, F. Indicator Micromachined Improved An By Measurement Stress Film nal in Structure,” 87, June 1995. Gianchandani strain and sensors,” K. Najafi, “Bent-beam Y. for for thin film characterization,” in H. Guckel, D. Burns, C. Rutigliano, E. Lovell, and B. Choi, “Diagnostic microstructures for the measurement of intrinsic strain in thin films,” Journal of Micromechanics and Microengineering thermal micromachined “Silicon Orr, B. and Najafi, K. Gianchandani, Y. profilers,” in in gauge,” strain micro situ in passive, “A Pisano, A. and Howe, R. Lin, L. Micro Electro Mechanical Systems, 1989, Proceedings, An Investigation Investigation An Proceedings, 1989, Systems, Mechanical Electro Micro of Micro Structures, Sensors, Actuators, Machines and Robots 1989. 97, Feb. microstructures “Spiral Huang, J. and Howe, R. Yun, W. Muller, R. Fan, L.-S. gradients in thin films,” strain in of average the measurement for structures “Micromechanical Chang, J. and Howe, R. Johnson, G. Pratt, R. Solid-State Solid-State Sensors and Actuators, 1991. Digest of Technical Papers, TRANSDUCERS ’91, pp. 205–208, June 1991. , pp. 191–194, Dec. 1993. gest., International 1992. 181, Feb. 1990. 181, Feb. WCB, 1998. WCB, [96] [98] [97] [99] [94] [95] [89] [92] [90] [91] [93] NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ v2016.09.01 • http://www.nist.gov/cnst/ NIST • CNST Nanolithography Toolbox

This publication is available free of charge from: http://dx.doi.org/10.6028/NIST.HB.160 [100] N. Lobontiu and E. Garcia, Mechanics of microelectromechanical sys­ tems. New York: Kluwer Academic, 2005.

[101] N. Lobontiu, Mechanical design of microresonators: modeling and ap­ plications. McGraw-Hill nanoscience and technology series, New York: McGraw-Hill, 2006.

[102] J. A. Kubby, A guide to hands-on MEMS design and prototyping. Cam­

This publication is availablehttp://dx.doi.org/10.6028/NIST.HB.160 free of charge from: bridge, UK ; New York: Cambridge University Press, 2011.

[103] V. Kempe, Inertial MEMS: principles and practice. Cambridge ; New York: Cambridge University Press, 2011.

[104] N. Unal, D. Mahalu, O. Raslin, D. Ritter, C. Sambale, and U. Hofmann, “Third dimension of proximity effect correction (PEC),” Microelectronic Engineering, vol. 87, pp. 940–942, May 2010.

NIST • CNST Nanolithography Toolbox v2016.09.01 • http://www.nist.gov/cnst/ page 488 of 488