199
RSoft CAD Environment 8.0 User Guide RSoft Design Group, Inc. 400 Executive Blvd. • Suite 100 Ossining, NY 10562 Phone: 1•914•923•2164 Fax: 1•914•923•2169 [email protected] www.rsoftdesign.com Copyright © 1993 - 2007 All Rights Reserved.

RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

  • Upload
    others

  • View
    41

  • Download
    3

Embed Size (px)

Citation preview

Page 1: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide

RSoft Design Group, Inc. 400 Executive Blvd. • Suite 100 Ossining, NY 10562 Phone: 1•914•923•2164 Fax: 1•914•923•2169 [email protected] www.rsoftdesign.com Copyright © 1993 - 2007 All Rights Reserved.

Page 2: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program
Page 3: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Contents • iii

Contents

Preface 1 Associated Simulation Modules ..................................................................................1

What’s New in Version 8.0........................................................................................................3 Notices .......................................................................................................................................3

Limited Warranty ........................................................................................................3 Copyright Notice .........................................................................................................3 RSoft Design Group™ Trademarks ............................................................................3 Acknowledgments .......................................................................................................4

System Requirements ................................................................................................................4 How to Read This Manual .........................................................................................................4

What should I read and when? ....................................................................................4 Where can I find the documentation for…..................................................................4

Conventions ...............................................................................................................................5 Physics Conventions.................................................................................................... 5 Manual Conventions....................................................................................................6 Product Name Conventions.........................................................................................6

Chapter 1: Installation & Program Overview 7 1.A. Program Installation...........................................................................................................7 1.B. Testing the Installation.......................................................................................................7 1.C. What Next? ........................................................................................................................7

1.C.1. Program Executables and Example Files ..........................................................8 1.C.2. README File .................................................................................................8 1.C.3. Technical Support & Software Upgrades ........................................................ 8

Chapter 2: Introductory Tutorial 9 Step 1: Opening the CAD Window .......................................................................................... 9 Step 2: Creating a New Design File........................................................................................10 Step 3: Defining Variables......................................................................................................13 Step 4: Drawing a Component................................................................................................13 Step 5: Moving a Component .................................................................................................15 Step 6: Set Component Properties Exactly .............................................................................16

Setting Position..........................................................................................................16 Setting Refractive Index ............................................................................................ 17 Setting Additional Material Properties ......................................................................17

Step 7: Creating a Tapered Component ..................................................................................17 Step 8: Verifying Structure Layout.........................................................................................18

Via the CAD..............................................................................................................18 By Computing index profiles ....................................................................................19

Step 9: Simulation & Advanced CAD Features......................................................................19

Chapter 3: Basic CAD Usage 21 3.A. The CAD Layout Window...............................................................................................21

Page 4: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

iv • Contents RSoft CAD Environment 8.0 User Guide

3.A.1. The Menubar...................................................................................................21 3.A.2. The Top Toolbar.............................................................................................23 3.A.3. The View Toolbar...........................................................................................24 3.A.4. The Side Toolbar ............................................................................................25 3.A.5. The Status Bar ................................................................................................26

3.B. The Symbol Table ............................................................................................................26 3.B.1. Why use the Symbol Table? ........................................................................... 27 3.B.2. Accessing the Symbol Table...........................................................................27 3.B.3. Using the Symbol Table..................................................................................28 3.B.4. An Example ....................................................................................................28

3.C. Creating a New Design File ............................................................................................. 28 3.C.1. Simulation Tool & Dimensions ......................................................................28 3.C.2. Global Default Settings...................................................................................29 3.C.3. Initial Viewing Dimensions ............................................................................ 30

3.D. Adding Components (Drawing Modes) ...........................................................................31 3.D.1. Drawing Modes ..............................................................................................31 3.D.2. Drawing a Component....................................................................................32 3.D.3. Snap Modes ....................................................................................................32 3.D.4. Drawing Preferences.......................................................................................33 3.D.5. Try It!..............................................................................................................33

3.E. Viewing Components ....................................................................................................... 33 3.E.1. Single-Pane Mode ........................................................................................... 33 3.E.2. Multi-Pane Mode (3D Only) ........................................................................... 33 3.E.3. Zooming..........................................................................................................34 3.E.4. Display Aspect Ratio: .....................................................................................34 3.E.5. Displaying Additional Objects ........................................................................35

3.F. Editing Components with the Mouse ...............................................................................35 3.F.1. Selecting Components.....................................................................................35 3.F.2. Modifying Components................................................................................... 36

3.G. Calculating the Index Profile ........................................................................................... 37 3.G.1. Producing an Index Profile .............................................................................37 3.G.2. Saving the Index Profile .................................................................................41 3.G.3. Producing Index Profile Plots from the Command Line.................................41

3.H. Viewing the Current Value of a Parameter ......................................................................41

Chapter 4: The Segment Component Type 43 4.A. The Segment Properties Window ....................................................................................43 4.B. Vertices ............................................................................................................................44

4.B.1. Setting Position ...............................................................................................44 4.B.2. Index Definition..............................................................................................45 4.B.3. Controlling Geometry .....................................................................................46 4.B.4. Setting Segment Color ....................................................................................46

4.C. Basic 2D Component Type .............................................................................................. 46 4.D. 3D Structure Types ..........................................................................................................47

4.D.1. Fiber................................................................................................................47 4.D.2. Channel...........................................................................................................48 4.D.3. Diffused ..........................................................................................................48 4.D.4. Rib/Ridge........................................................................................................ 50 4.D.5. Multilayer .......................................................................................................52 4.D.6. Mixing 3D Structure Types ............................................................................55

4.E. Profiles .............................................................................................................................55 4.E.1. Built-In Profile Types .....................................................................................55 4.E.2. Default Index Profile Types ............................................................................56

4.F. Tapers ...............................................................................................................................56 4.F.1. Taper Types..................................................................................................... 57

Page 5: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Contents • v

4.F.2. Taper Functions...............................................................................................57 4.F.3. Arc Taper Types.............................................................................................. 58

4.G. Priority (When Components Overlap) .............................................................................60 4.G.1. Combine Mode ...............................................................................................60 4.G.2. Priority............................................................................................................60 4.G.3. General Notes .................................................................................................61

4.H. Additional Component Properties....................................................................................61 4.I. Notes on Segment Geometry.............................................................................................62

4.I.1. Width Measure .................................................................................................63 4.I.2. Segment Orientation.........................................................................................63 4.I.3. Which Type of Segment Geometry Should I Use? ..........................................64

Chapter 5: Other Component Types 65 5.A. General Overview ............................................................................................................65 5.B. Lenses ..............................................................................................................................65

Vertex Settings ..........................................................................................................66 Lens-specific Settings................................................................................................67 Notes for 3D ..............................................................................................................67 Common Lens Configurations...................................................................................67

5.C. Circles ..............................................................................................................................69 Vertex Settings ..........................................................................................................69 Circle-specific Settings..............................................................................................69 Common Circle Configurations.................................................................................70

5.D. Polygons ..........................................................................................................................71 Vertex Settings ..........................................................................................................72 Polygon-specific Settings ..........................................................................................72 Notes for 3D ..............................................................................................................73

5.E. Registration Marks ..........................................................................................................73 Vertex Settings ..........................................................................................................74 Mark-specific Settings...............................................................................................74

5.F. Circuit References, Simulation Regions, and Time Monitors .........................................74

Chapter 6: Advanced CAD Features 75 6.A. Incorporating User-Defined Index Profiles......................................................................75

6.A.1. Types of User Profiles ....................................................................................75 6.A.2. Specifying User Profiles ................................................................................. 76 6.A.3. Example User Profile...................................................................................... 78

6.B. Incorporating User-Defined Tapers..................................................................................79 6.B.1. Types of User Tapers ......................................................................................79 6.B.2. Specifying a User Taper..................................................................................79 6.B.3. An Example User Taper..................................................................................81

6.C. Layer Table Tapers ..........................................................................................................81 6.D. Global Index Generation Options .................................................................................... 82

6.D.1. Simulating Curved Segments to Large Angles............................................... 82 6.D.2. Truncating the Index Distribution at a Plane ..................................................83 6.D.3. Sidewall Angle Control ..................................................................................83 6.D.4. Simulating the Effects of Finite Lithographic Resolution ..............................83 6.D.5. Simulating the Effects of Lithographic Roughness ........................................84

6.E. Import/Export of other CAD formats and Generation of Mask Files ...............................85 6.E.1. Important Information..................................................................................... 85 6.E.2. Import/Export Settings ....................................................................................86

6.F. Hierarchy ..........................................................................................................................87 6.F.1. Why use Hierarchy? ........................................................................................87 6.F.2. Adding a Circuit Reference.............................................................................88

Page 6: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

vi • Contents RSoft CAD Environment 8.0 User Guide

6.G. Defining Pathways...........................................................................................................90 6.G.1. Creating a Pathway.........................................................................................90 6.G.2. Using Pathways ..............................................................................................92

6.H Importing Components or Symbols from Another Design File ........................................92 3.H.1. Importing Components ...................................................................................92 3.H.2. Importing Symbols .........................................................................................92

6.I. Warning Options ...............................................................................................................92 6.J. CAD Preferences...............................................................................................................93

6.J.1. Display Preferences .........................................................................................93 6.J.2. Editing Preferences ..........................................................................................94 6.J.3. Units Preferences .............................................................................................94 6.J.4. Simulation Preferences ....................................................................................95 6.J.5. Limit Preferences ............................................................................................. 95 6.J.6. Import/Export Preferences ...............................................................................95

Chapter 7: Automatic Layout Generation Utilities 97 7.A. Motivation.......................................................................................................................97 7.B. Lattice Parameters...........................................................................................................98

7.A.1. 1D Lattice Types ............................................................................................99 7.B.2. 2D Lattice (XZ and XY) Types ......................................................................99 7.B.3. 3D Lattice Types...........................................................................................100

7.C. Unit Cell Parameters .....................................................................................................102 7.C.1. 1D Unit Cells ................................................................................................ 102 7.C.2. 2D Unit Cells (XZ and XY).......................................................................... 103 7.C.3. 3D Unit Cells ................................................................................................ 104 7.C.4. Additional Options........................................................................................ 106

7.D. Creation Options ........................................................................................................... 106

Chapter 8: Advanced Material Properties 107 8.A. Overview of Material Types .......................................................................................... 107

8.A.1. Dispersion Overview ....................................................................................107 8.A.2. Dispersion/Non-linearity via the Material Editor .........................................108 8.A.3. Anisotropy Overview................................................................................... 109 8.A.4. What Material Types Do Each Product Support?........................................ 109

8.B. Using the Material Editor............................................................................................... 110 Creating & Modifying Materials ............................................................................. 110 Testing Material Definition ..................................................................................... 111 Assigning a Material to a Component ..................................................................... 111

8.C. Defining Linear Epsilon & Mu with the Material Editor ............................................... 111 Fitting Standard Linear Dispersive Models ............................................................. 112

8.D. Defining Non-Linear Epsilon and Mu with the Material Editor ....................................114 8.D.1. Second Order Non-Linearity .......................................................................114 8.D.2 Third Order Non-Linearity ............................................................................ 114

8.E. Additional Notes ............................................................................................................ 115 A Note on Units for Non-Linear Parameters:..........................................................115

8.F. Anisotropy ...................................................................................................................... 116 8.F.1. Defining Index Tensors ................................................................................. 116 8.F.2. Using Tensors................................................................................................117

Chapter 9: Creating Uniform and Non-Uniform Grids 119 9.A. Basic Definitions............................................................................................................ 119

Grid Cells ................................................................................................................ 119 9.B. Using a Uniform Grid .................................................................................................... 121 9.C. Using a Non-Uniform Grid ............................................................................................ 121

Page 7: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Contents • vii

9.D. Viewing the Grid and Index Profile ............................................................................... 124 9.D.1. Viewing the Grid ..........................................................................................124 9.D.2. Viewing the Index Profile............................................................................. 125

9.E. Tips For Non-Uniform Simulation................................................................................. 125

Chapter 10: Parameter Scanning & Scripting 127 10.A. Scripting Background .................................................................................................. 127

10.A.1. Why use Scripts? .......................................................................................127 10.A.2. Scripting/Programming Languages Supported .......................................... 128

10.B. Scripts for Parameter Scanning & Optimization .........................................................128 10.C. Layout Scripts ............................................................................................................. 128

10.C.1 *.ind Files ................................................................................................... 128 10.C.2. Creating a Layout Script ............................................................................129

10.D. Simulation Scripts....................................................................................................... 131 10.D.1. Running the Simulation Programs From the Command Line....................131 10.D.2. Creating a Simulation Script...................................................................... 132 10.D.3. Creating Advanced Scripts ........................................................................ 134

Appendix A: Tips and Traps in The RSoft CAD. 135 Common RSoft CAD mistakes.............................................................................................. 135 Some Good RSoft CAD habits to learn ................................................................................. 135

Appendix B: File Formats 137 Standard RSoft File Format ................................................................................................... 137

Supported Output Types.......................................................................................... 138 Example Files .......................................................................................................... 139

Index Profiles......................................................................................................................... 141 Profile Functions.................................................................................................................... 141 Taper Functions ..................................................................................................................... 142 Polygon Files ......................................................................................................................... 142

Appendix C: RSoft Expressions 143 Valid Arithmetic Operators ................................................................................................... 143 Built-in Variables................................................................................................................... 143 Standard Functions ................................................................................................................ 144 Additional Functions ............................................................................................................. 144

Appendix D: Symbol Table Variables for The RSoft CAD 147 Startup Window/Global Settings ........................................................................................... 147

BPM Options........................................................................................................... 147 FDTD Options......................................................................................................... 147

Special Effects ....................................................................................................................... 148 Advanced Grid Parameters ....................................................................................................148 Advanced Features................................................................................................................. 149 Compute Index Profile........................................................................................................... 149 CAD Preferences: .................................................................................................................. 149

Appendix E: Utilities 151 bdconv – Matrix Manipulation .............................................................................................. 152

Syntax...................................................................................................................... 152 Options .................................................................................................................... 152

Page 8: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

viii • Contents RSoft CAD Environment 8.0 User Guide

bdutil – RSoft utility .............................................................................................................. 154 Syntax...................................................................................................................... 154 Options & Usage ..................................................................................................... 154

bmp2ind – Converts bitmap data into a user profile .............................................................. 159 Syntax...................................................................................................................... 159 Usage....................................................................................................................... 159

disperse – Calculating dispersion relations............................................................................161 Syntax...................................................................................................................... 161

fhakit – Fast harmonic analysis of complex exponential time series ..................................... 162 Syntax...................................................................................................................... 162 Usage....................................................................................................................... 163

fwmodekit – Extract data from FullWAVE state file ............................................................. 166 Syntax...................................................................................................................... 166 Options: ................................................................................................................... 167

mat2bp – Converting Matrix data to the RSoft format .......................................................... 168 Syntax...................................................................................................................... 168 Usage....................................................................................................................... 168

mathmat – Doing arithmetic with data files...........................................................................169 Syntax...................................................................................................................... 169 Usage....................................................................................................................... 169

shufflemat – Rearranging Data Files .....................................................................................171 Syntax...................................................................................................................... 171 Options .................................................................................................................... 171

Appendix F: Color Scales 173 What are Scale Files?............................................................................................................. 173

Data Range ..............................................................................................................173 Color Lookup Table ................................................................................................ 173 Color Shades............................................................................................................174

Using Color Scales ................................................................................................................ 174 Setting the scale file during a simulation................................................................. 174 Changing the scale file after a simulation has completed........................................ 174 Changing the scale file in a WinPLOT window....................................................... 174

Scale File Format................................................................................................................... 175 Using Predefined Color Keywords.......................................................................... 175 Using RGB Values .................................................................................................. 175

Appendix G: RSoft Polarization Convention 177 Background............................................................................................................................ 177

1D Structures:..........................................................................................................177 2D Structures:.......................................................................................................... 177 3D Structures:..........................................................................................................177

The RSoft Convention ........................................................................................................... 178 2D CAD problems...................................................................................................178 3D CAD problems...................................................................................................178

Simple rules to remember ......................................................................................................179 2D Designs: ............................................................................................................. 179 3D Designs: ............................................................................................................. 179

Complications ........................................................................................................................ 180 3D FullWAVE.......................................................................................................... 180 BandSOLVE............................................................................................................. 180 3D DiffractMOD ..................................................................................................... 180

Appendix H: RSoft CAD Release Notes 181

Page 9: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Contents • ix

Changes from Version 7.0 to Version 8.0.............................................................................. 181 New Capabilities and Improvements to the Program .............................................. 181

Changes from Version 6.0 to Version 7.0.............................................................................. 182 New Capabilities and Improvements to the Program .............................................. 182

Changes from Version 5.1 to Version 6.0.............................................................................. 182 New Capabilities and Improvements to the Program .............................................. 182

Index 185

Page 10: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program
Page 11: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Preface • 1

Preface

The RSoft CAD is the core program in the RSoft Photonics Suite, and acts as a control program for RSoft’s passive device simulation modules BeamPROP, FullWAVE, BandSOLVE, GratingMOD, DiffractMOD, and FemSIM. It is used to define the most important input required by these simulation modules: the material properties and structural geometry of a photonic device. A user will typically first design a structure in the CAD interface and then use one or more simulation engines to model various aspects of the device performance.

This modular approach to the design and simulation of photonic devices is one of RSoft’s Photonic Suite’s greatest strengths. Each program in the suite is designed to “play nice” with the other programs, creating an environment in which data can be shared between the modules. Virtually all the input and output files are in a simple ASCII text format, which allows even greater user control over program operation as well as third-party programs to be integrated into the suite.

While the RSoft Photonics Suite is designed to be used via the GUI (Graphical User Interface), command line operation is also possible. This, coupled with the modularity of the Suite, allows for complex scripting capability. The Suite is not limited to a single scripting language, but rather uses the native scripting language of your operating system. For example, Windows users can use DOS batch files, while Unix users can use bash scripts. Additionally, users familiar with languages such as Perl, Python, C, or C++ can create custom scripts in these languages. The RSoft Photonics Suite provides the best of both worlds: it allows for simulations to be performed via the GUI, and for complicated custom simulations to be performed via a script. New and advanced users alike are able to realize the full power of the Suite.

The RSoft Photonics Suite is designed to work with your platform of choice. Currently the Suite operates under both 32-bit and 64-bit Windows and Linux machines.

Associated Simulation Modules The RSoft CAD is the main control program for a series of simulation modules which are licensed separately from RSoft. These simulation modules, along with typical applications, are:

BeamPROP™ BeamPROP is a simulation engine for the design of integrated and fiber-optic waveguide devices and circuits. The software incorporates advanced finite-difference beam propagation (BPM) techniques for simulation. The software has been commercially available since 1994, and is in use by researchers and development engineers in both university and industrial environments.

FullWAVE™ FullWAVE is ideal for the design of complex photonic devices. The software employs the finite-difference time-domain (FDTD) method for simulation, which allows analysis of devices, such as photonic bandgaps and ring resonators, that cannot be modeled with techniques such as the efficient beam propagation method (BPM).

Page 12: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

2 • Preface RSoft CAD Environment 8.0 User Guide

BandSOLVE™ BandSOLVE is a simulation module for generating and analyzing photonic band structures. This simulation module is based on an advanced optimized implementation of the plane-wave expansion technique for periodic structures. It is ideal for producing band structures for classic photonic bandgap structures such as 2D and 3D photonic crystal waveguides and defect sites. In addition, it can be applied to fiber structures such as photonic crystal fibers and photonic bandgap fibers, which are particularly challenging for other simulation techniques. It is especially useful for optimizing the band structure properties of photonic crystal structures, which can be subsequently simulated in FullWAVE to examine time-dependent properties such as waveguide loss and coupling.

GratingMOD™ This software tool helps model and analyze many devices that incorporate gratings and various kinds of filters, and is easily integrated with RSoft’s award-winning simulation tools. It provides both a forward and backward analysis, allowing for the calculation of grating spectra from known geometries and the synthesis of grating structures from grating spectra.

DiffractMOD™ DiffractMOD is a general design tool for diffractive optical structures such as diffractive optical elements, subwavelength periodic structures, and photonic bandgap crystals. It is based on the Rigorous Coupled Wave Analysis (RCWA) technique, and can simulate both 2D and 3D structures with an arbitrary lattice structure and unit cell index profile. In addition to dielectric materials, dispersive and lossy material structures such as metallic systems can also be used. Typical applications include Diffractive optical elements (DOEs), photonic bandgap structures, wavelength filters, optical metrology, nano-lithography, polarization sensitive devices, artificial dielectric coatings, photovoltaic systems, 3D displays, optical interconnections, optical data storage, spectroscopy, microlens arrays, and beam splitting, combining, and shaping.

FemSIM™ FemSIM uses the finite element method to calculate modes, both waveguide and cavity, of any 2D cross-section. A generally non-uniform and irregular mesh is used to solve for all field components of supported modes, both guided and leaky. FemSIM can easily find modes for highly hybrid structures, highly leaky structures, and structures with small feature sizes.

Page 13: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Preface • 3

What’s New in Version 8.0 Version 7.1 of the RSoft CAD Environment contains a large number of new features. These are the highlights:

• Refreshed Graphical Interface

The graphical interface of the CAD has been refreshed with new graphics!

• Better Access For Existing Features

Many new options have been added to the graphical interface to provide users with better access. Many new buttons have also been added to the CAD toolbars. See Section 3.A for a detailed description of the toolbars.

• New Editing Views

The CAD has several new editing modes that allows the user to view the structure along each axis, as well as at a particular cut position. A new multi-pane mode has also been added that shows all three axis views as well as a new 3D view. See Section 3.E for more details.

• New View Toolbar

A new toolbar as been added to the top of the CAD window to provide access to features such as the current simulation tool, multi-pane options, zoom control, and the aspect ratio. See Section 3.A and Section 3.E for more details.

Of course, a number of minor improvements have been added.

For full details on all changes, please consult the complete changelog for the RSoft CAD which is available in the README file, readme.txt, in the README subdirectory in the main installation directory.

Notices This section has a list of legal and other miscellaneous information pertaining to the software.

Limited Warranty RSoft Design Group, Inc. warrants that under normal use, the physical media (diskette and documentation) will be free of material defects for a period of thirty days from the date of purchase. Upon written notice, RSoft Design Group, Inc. will replace any defective media. No other warranty of any sort, either expressed or implied, is provided with this software. No liability for damage to equipment or data, or any other liability, is assumed by RSoft Design Group, Inc.

Copyright Notice Copyright © 1993-2007 RSoft Design Group, Inc. All Rights Reserved.

Copyright is claimed for both this manual and the software described in it.

RSoft Design Group™ Trademarks RSoft Design Group, RSoft Inc., RSoft, The RSoft CAD Environment, BeamPROP, FullWAVE, BandSOLVE, GratingMOD, DiffractMOD, FemSIM, LaserMOD, OptSim, LinkSIM, EDFA for Vendors, ModeSYS, Artifex, MetroWAND, SWAT, WinPLOT, and RPlot are trademarks of RSoft Design Group, Inc.

Page 14: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

4 • Preface RSoft CAD Environment 8.0 User Guide

Acknowledgments IBM is a registered trademark and IBM PC, PS/2, and OS/2 are trademarks of International Business Machines Corporation. Intel is a trademark of Intel Corporation. Microsoft and MS- DOS are registered trademarks and Windows is a trademark of Microsoft Corporation. Unix and Motif are registered trademarks and X Windows is a trademark of The Open Group. Linux is a registered trademark of Linus Torvolds. Xfree86 is a registered trademark of the The Xfree86 Project. All other product names referred to in this document are trademarks or registered trademarks of their respective manufacturers.

System Requirements The RSoft Passive Device Suite will run on an IBM compatible personal computer with an Intel Pentium III or higher processor (or AMD equivalent), 256 MB RAM or higher depending on the application, and 250 MB of hard-disk space. Versions for 32-bit and 64-bit Windows and Linux are available. The Windows versions require Windows 2000/XP/Vista. Linux versions have been tested on the standard Red Hat configuration using X Windows or Xfree86 and Motif.

How to Read This Manual A working knowledge of the RSoft CAD interface is critical to the usage of the simulation modules. Users are strongly encouraged to read through this manual before proceeding too deeply into the simulation module manuals. This section describes the contents of this manual, its relationship to other RSoft documentation, as well as the conventions used within it.

What should I read and when? You should begin by reading Chapter 1 which provides detailed installation instructions for both Windows and Unix platforms. Chapter 2 provides a short hands-on tutorial designed to give an initial impression of the CAD’s capabilities. Chapter 3 provides a basic discussion of the CAD window and the creation/modification of waveguide segments. Chapter 4 contains a description of the segment component type, and Chapter 5 describes other component types. Chapter 6 presents a discussion of advanced CAD topics, and Chapter 7 includes information on automatic layout utilities, Chapter 8 discusses the use of the Material Editor, Chapter 9 discusses the use of uniform and non-uniform grids, and Chapter 10 discusses scripting. Finally, appendices document some hints for effective use of the CAD interface as well as documentation for some of the included utilities.

Note that this manual is meant to be used together with the simulation tools manuals as described in the next section.

Where can I find the documentation for… The documentation for the RSoft Photonics Suite is divided into several manuals. The manuals are structured using a simple rule:

Anything defining geometry and/or material parameters is in the CAD manual. Anything else is in an appropriate simulation manual.

Using this rule, almost any topic can be found. As with any rule, there are a few exceptions. The major exceptions are:

• Installation

The installation procedure for the RSoft Photonics Suite, including the CAD and all simulation modules, is covered in Chapter 1 of the CAD manual (this document).

• Parameter Scanning/Scripting/Batch Operation

Page 15: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Preface • 5

These topics are very similar, and are shared by all the simulation modules. They are discussed in Chapter 10 of the CAD manual.

• Computing the Index Profile

Computing the index profile is discussed in Section 3.G of the CAD manual.

• Pathways

Pathways define the location of BeamPROP monitors and the location and geometry of launch, or initial fields in BeamPROP and FullWAVE. They are documented in Section 6.G of the CAD manual.

• Command Line Utilities

The RSoft Photonics CAD Suite ships with several command line utilities which perform a variety of tasks. These utilities are documented in Appendix E of the CAD manual..

• RSoft Expressions

Virtually any numeric field in any RSoft product can accept an analytical expression involving pre-defined and user-defined variables. The form of these expressions, including valid arithmetic operators and functions can be found in Appendix C of the CAD manual.

Anytime this rule is violated, a note will direct the reader to the proper section in the proper manual. The location of these manuals is described in the next section.

Where are these manuals located? While each of the simulation modules are licensed separately, the documentation for each module is placed on your computer during installation.

Online versions can be accessed through the RSoft CAD via the Help menu item, or the two help buttons on the right of the top toolbar. The actual files can be found in the subdirectory help in the installation directory. Additionally, PDF versions can be found in the subdirectory docs. These files require the Adobe Acrobat Reader, which can be obtained from Adobe (www.acrobat.com) at no charge.

Conventions This section describes various conventions concerning the physics, the manual styles, and the product names.

Physics Conventions As with any branch of science, there are a number of concepts in the study of photonic devices for which there exist several different definitions exist in the literature. There are the conventions adopted in the RSoft CAD.

Units The units used in the CAD are as follows:

• The standard unit of length is measured in microns [µm].

• The angular unit used is in degrees.

• The units of time (for FullWAVE) are also in microns [µm], and therefore in units of cT, where c is the speed of light in a vacuum which is approximately 3e14 µm/s.

• The units of imaginary refractive index are defined as:

4imagn γλπ

=

Page 16: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

6 • Preface RSoft CAD Environment 8.0 User Guide

where λ is the wavelength and γ is the usual exponential loss coefficient defined such that the power

decays as ze γ− , and is given in units of μm-1.

Polarization The polarization convention used by RSoft is described in great detail in Appendix G.

Manual Conventions A number of typeface and layout conventions are followed in this manual.

• Actions to be performed in the interfaces are usually indented in bulleted or numbered lists.

• The names of fields and controls in the GUI dialogs are written in boldface Courier

• The values of pull-down menus and radio button controls are written in Roman italics.

• Symbol table variables and formulas and expressions to be typed into the GUI edit fields are written in Courier.

• In referring to example CAD files, the installation directory for the CAD tool is specified as <rsoft_dir>, and should be replaced with the correct value for your installation. On Windows machines this is typically c:\RSoft\.

Product Name Conventions The executable files for the various RSoft products have different names under Windows and Linux. In the manual, we normally use the Windows names. The following table shows the corresponding names that should be used under Linux:

Product Windows Name Linux Name

The RSoft CAD tool bcadw32.exe xbcad

BeamPROP simulation tool bsimw32.exe xbeam

FullWAVE simulation tool fullwave.exe xfullwave

BandSOLVE simulation tool bandsolve.exe xbandsolve

GratingMOD simulation tool grmod.exe xgrmod

DiffractMOD simulation tool dfmod.exe xdfmod

FemSIM simulation tool femsim.exe xfemsim

WinPLOT graphing tool winplot.exe xplot

ModeVIEWER tool modeviewer.exe xmodeviewer

MOST tool rsmost.exe xmost

Page 17: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 1: Installation & Program Overview • 7

Chapter 1: Installation & Program Overview

This chapter explains the installation procedure for the RSoft Photonic Suite, and provides a quick example to test the installation.

1.A. Program Installation • Existing RSoft Users

If you have already purchased and installed a license of RSoft software such as BeamPROP, FullWAVE, BandSOLVE, GratingMOD, DiffractMOD, or FemSIM, the RSoft CAD is already installed. If you would like to upgrade from an older version, read through the RSoft Installation Guide for detailed instructions.

• First-time RSoft Users

If you have not previously installed RSoft software, read through the RSoft Installation Guide document for detailed installation instructions.

1.B. Testing the Installation Once the installation instructions above are completed, start the CAD tool to check that software has been correctly installed:

• Windows: Use the Windows Start Menu to open The RSoft CAD.

• Unix: Enter xbcad at a command prompt.

If the RSoft CAD interface opens, the installation was successful. If not, please review the installation instructions in the previous section and contact RSoft if the problem persists. If an error message similar to “This hardlock key is not licensed for…”, please check that you have replaced any existing key or license file with the one supplied with your RSoft package.

1.C. What Next? After installation is complete, the RSoft Photonic Suite package will have been placed on your hard disk. This section generally describes the location of important files, as well as product support information.

Page 18: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

8 • Chapter 1: Installation & Program Overview RSoft CAD Environment 8.0 User Guide

1.C.1. Program Executables and Example Files The installation directory (referred to as <rsoft_dir>) of the RSoft Photonics CAD Suite contains several subdirectories. The two most important subdirectories will be described in this section.

Component Executables The directory <rsoft_dir>\bin\ contains the following executable files, among others, that are directly relevant to the RSoft CAD. Linux/UNIX users can find the corresponding executable names in the Preface. Executable Description

BCADW32.EXE This is the Windows version of the RSoft CAD. It is the main control program for RSoft passive decide simulation modules, and is usually started from the Start Menu. Please refer to your operating system manual for information on general procedures for starting programs.

WINPLOT.EXE This is the Windows version of the WinPLOT technical graphing package. Please consult the WinPLOT manual for more information on its proper usage.

Note that these programs can also be run from the command line; more information can be found in Section 10.D.1.

Example Files The subdirectory <rsoft_dir>\examples\ contains example device files. These files are sorted into subdirectories based on the simulation modules. These files have an extension .ind (named for the refractive index distribution which describes the device). Each examples directory has a \Tutorial subdirectory which contains the index files described in the Tutorials chapter(s) of that product’s manual.

Running An Example File The structures described by these files can be viewed by selecting File/Open from within the RSoft CAD, and choosing the desired index file. A simulation can be started by clicking on the Perform Simulation (green light) icon, and pressing OK in the simulation parameters dialog.

These example and tutorial files are specific to each simulation engine; you can only perform the simulation if you are licensed for that particular simulation engine.

If you would like an example for a specific problem, contact RSoft by faxing or e-mailing a complete description of the problem and we will create an appropriate example file to assist you if possible.

1.C.2. README File The file readme.txt, which is located in the RSoft directory, should be read. This file may be viewed in any text editor, such as Windows Notepad. The README file provides important last minute information about the RSoft CAD that is not contained in this manual, including new or improved features and options.

1.C.3. Technical Support & Software Upgrades Finally, RSoft software normally comes with one year of maintenance, including technical support and product updates. Updates are released on our web site www.rsoftdesign.com/support every one to three months, and include program corrections as well as new features. To access updates, you must contact RSoft after receiving the software to obtain a username and password. Information regarding each update is located in the README file, which can be accessed on the website to determine if you need or want to upgrade, and should be read thoroughly after downloading and installing any update. If you have any questions regarding your maintenance contract, or to renew your maintenance, please contact RSoft.

Page 19: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 2: Introductory Tutorial • 9

Chapter 2: Introductory Tutorial

This chapter provides a brief tutorial to illustrate both basic CAD layout features and a sample workflow. In this tutorial, the design process has been broken down into 9 steps. For most design problems, however, some of these steps may be performed at the same time, and possibly several times in order to achieve a working design.

While the goal of this tutorial is to create a simple fiber structure, the ideas and techniques introduced will be exactly the same for producing complex structures. While not necessary, It is recommended that you follow this example at the computer while reading this section.

Step 1: Opening the CAD Window Open the Rsoft CAD Environment:

• Windows: Use the Windows Start Menu.

• Unix: Enter xbcad at a command prompt.

The CAD program appears as in Fig. 2-1. There is a menubar at the top of the window, two toolbars with icons just below it, another toolbar along the left edge of the window, and a status line at the bottom of the window. These CAD menus and icons allow for standard editing operations as well as other common functions. Their use is completely documented in Section 3.A.

Page 20: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

10 • Chapter 2: Introductory Tutorial RSoft CAD Environment 8.0 User Guide

Figure 2-1: The RSoft CAD window, showing the menubar at the top, the top and left toolbars, and the status line at the bottom.

Step 2: Creating a New Design File The RSoft CAD Environment provides the key input for each of the RSoft simulation engines: the refractive index distribution of the problem to be modeled. This is determined by the geometry, arrangement, and optical properties of components that the user has placed. The RSoft CAD allows users to specify this information in a straightforward, user-friendly manner.

To create a new design file, click on the New Circuit icon (the leftmost icon on the top toolbar). Alternatively, choose File/New from the menu. The startup window appears., as shown in Fig. 2-2, where basic information about the structure and simulation tool to be used.

After creating a new structure, changes can be made to these settings in the Global Settings window which can be accessed via the Globe icon in the left toolbar.

Page 21: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 2: Introductory Tutorial • 11

Figure 2-2: The startup window where basic information about the structure is set.

Note the following settings: Option Description

Model Dimension The dimension of the structure. Index Difference The default index difference between a component and the Background Index Background Index The index of the background Simulation Tool The simulation tool to be used. Since this tutorial will only look at the CAD, the tool

chosen does not matter.

For this tutorial, all the default settings are acceptable except the Model Dimension. Change the Model Dimension to 3D and then click OK to continue to create a layout window within the main CAD program window as shown in Fig. 2-3.

Page 22: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

12 • Chapter 2: Introductory Tutorial RSoft CAD Environment 8.0 User Guide

Figure 2-3: Illustration of a layout window where components are added to the circuit. The simulation domain and launch field are

also shown.

The view shown in Fig. 2-3 shows the XZ plane: X represents the horizontal direction; Z represents the vertical direction. The axes are indicated by light gray lines. If this were a 2D structure, there is no Y axis and this is therefore the only possible view. Since this is a 3D design, the Y axis lies out of the window, and it possible to view the YZ and XY planes as well: click the X, Y, and Z buttons in view toolbar (the second toolbar on the top) to switch between the views. It is also possible to view all three cross-sections, as well as a 3D view, at the same time. To do this, click the 4P button in the view toolbar to enter the multi-pane view mode as shown in Fig. 2-4. Click the 1P button to return to single-pane view mode.

Finally, note the mouse appears as a cross-hair, and the coordinate display in the status line indicates the mouse position in real coordinates [µm].

Page 23: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 2: Introductory Tutorial • 13

Step 3: Defining Variables It is usually beneficial to create variables to represent various aspects of the structure. As an example, we will create a variable to represent the length of a compoment. Click on the Edit Symbols icon in the left toolbar to open the Symbol Table Editor as shown in Fig. 2-4.

Figure 2-4: The Symbol Table Editor. The variable Length has been defined with a value of 42.

The symbol table will have several symbols already defined that correspond to the settings made in the Startup window. We are going to define a symbol Length, and set it equal to 42: click New Symbol, enter the symbol Name (Length) and Value (42), and then click Accept Symbol. The variable Length should now appear in the symbol table. This variable will be used in a later step.

More information on the usage of the Symbol Table can be found in Section 3.B.

Step 4: Drawing a Component CAD Components (usually referred to as just ‘components’) are the basic building blocks from which a design is created. A wide variety of components can be used, including segments (rectangular, cylindrical, multilayer, diffused, etc.), tapered objects, lenses, user-defined polygons, spheres, cylinders, and completely user-defined objects. Any number and combination of these components, which have their own, local, geometric and material parameters, can be embedded in a background material of a specific index to create the refractive index distribution of the entire structure.

This tutorial will create a simple fiber segment along the Z axis. The type of component to be added to a design is selected by the Drawing Mode. For this example, the Segment (In Plane) mode will be used, and is the default selection on the left toolbar. By default, a 3D segment has a circular cross-section. This can be changed to other cross-sections as discussed in Section 4.D.

Move the cross-hair cursor to the desired start of the fiber component (X=0, Z=0). After positioning the cursor, press and hold the left mouse button and move the cursor to the desired end of the fiber component (X=0, Z=50) as shown in Fig 2-4. As you move the cursor, the center line of the component is shown in blue and the status line coordinate display is continuously updated with the coordinate of the end point. If a mistake is made when adding any component, use the Undo icon in the top toolbar

Page 24: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

14 • Chapter 2: Introductory Tutorial RSoft CAD Environment 8.0 User Guide

Figure 2-5: A fiber component as it appears in the XZ plane after drawing, with the center line drawn in black, the left and right

edges in dark red, and the interior in light red.

You may notice that the fiber component does not appear as shown in Figure 2-5. This is most likely due to a different display aspect ratio. There is a pulldown menu on the view toolbar to control the aspect ratio: set it to 1:1.

In general, the next step would be to continue to add elements to the CAD layout in order to create the desired device. This process is described further in Section 3.D. For this example, there are no more elements to add.

Now that a component has been added, click the 4P button in the view toolbar to enter multi-pane view as shown in Fig. 2-6. The fiber component is clearly visible.

Page 25: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 2: Introductory Tutorial • 15

Figure 2-6: Multi-pane view clearly showing the fiber component. Multi-pane view is not available for 2D structures.

Again, you might notice that the fiber component does not appear as shown in Fig. 2-6. Again this is due to the aspect ratio. Use the pulldown menu on the view toolbar to choose an appropriate aspect ratio for each view.

It is also possible to view a particle cut plane in an axis view. See Section 3.E.1 for details.

Step 5: Moving a Component There are two methods to move a component within the CAD:

• Via the Mouse

Components can be selected with the mouse and then dragged to a new position. This allows for the quick movement of a waveguide segment.

Page 26: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

16 • Chapter 2: Introductory Tutorial RSoft CAD Environment 8.0 User Guide

• Via the Component Properties window

The exact coordinates of a component can be set in the Component Properties dialog box. The use of this box will be discussed in the next step. This allows for precise control over component position.

Step 6: Set Component Properties Exactly It is desirable to set component properties exactly in order to have precise control over the component properties such as refractive index, position, and size. This is done via the Component Properties window shown in Fig. 2-7 which can be opened by right-clicking on a component.

The RSoft CAD is an object oriented design environment so each component has a different Component Properties window, and therefore a different set of parameters.

A detailed description of this window can be found in Chapter 4.

Figure 2-7: The Component Properties window for the fiber component.

The current value of any field in the software, including those in the Component Properties window shown in Fig., 2-7, can be found by holding the CTRL key and double-clicking on the field. A window will open that displays the current value.

Setting Position The length of the fiber component was set using the mouse in Step 4. It is possible to control this length exactly in the Component Properties dialog. This will be done using the variable Length that has been previously defined and the

Page 27: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 2: Introductory Tutorial • 17

concept of “references”. A reference is a way of specifying a waveguide coordinate relative to another waveguide, and will briefly be described here.

In order to set the length of this component, the ending vertex will be offset by the variable Length from the starting vertex. This results in a fiber with a length of 42 µm. Set the Reference Type of the Z coordinate of the Ending Vertex to Offset, the Offset Value to Length, and relative to the Starting Vertex of component 1. This indicates that the Z coordinate of the ending vertex of this component, or component 1, should be computed as an offset from the starting vertex of this component, or component 1. This offset will therefore equal the length of the segment.

Setting Refractive Index The refractive index of this component can be set by setting the Index Difference field of the starting vertex (the ending vertex is equal to the starting vertex by default). This value is defined relative to the Background Index for the structure set in the Startup window in Step 2. For this example, the Background Index is 1 and the Index Difference is 0.01, so the real index of the structure will be 1.01. See Section 4.B.2 for additional details.

Setting Additional Material Properties Additional material properties such as anisotropy, non-linearity, and dispersive effects can also be set. Note that these material properties are not enabled/appropriate for all simulation tools. More information about the specification of these parameters can be found in Chapter 8.

Step 7: Creating a Tapered Component Some components such as the fiber in this tutorial have two vertices and allow for properties such as index, width, height, and position to be tapered, or varied, along the length of the component.

Right click on the fiber component to open its Component Properties window. Change the ending vertex Component Width, which corresponds to the fiber diameter along X, to width*4. The built-in variable width was set in the Startup window in Step 2 and can be changed via the Global Settings window. Click OK and the fiber will appear tapered as in Fig. 2-8: one vertex will have a circular cross-section, the other elliptical.

The width taper function, or how the width varies between the two vertices, is linear by default. It can be changed via the Width Taper setting in the Component Properties dialog. See Section 4.F for more information.

The view shown in Fig. 2-8 shows the entire structure; it is also possible to view ‘slices’ of each cross-section at a particular position. This is most readily illustrated with the XY view. Click the +/- buttons on the view toolbar to begin stepping through the structure: Both the absolute Z position and the step along Z between slices are shown on the view toolbar, and can be directly set by the user. As the slices step through the structure, the cross-section will change from circular to elliptical (and/or back). To view the entire structure again, click the All button on the view toolbar.

Page 28: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

18 • Chapter 2: Introductory Tutorial RSoft CAD Environment 8.0 User Guide

Figure 2-8: The tapered fiber as seen in the CAD window.

Step 8: Verifying Structure Layout There are two main methods to verify the structure layout:

It is important to actually simulate the desired index distribution! Performing a simulation with the wrong index distribution will result in erroneous results.

Via the CAD Various aspects of the geometry can quickly be seen using the multi-pane view and cut feature described briefly above. See Section 3.E for more details.

Page 29: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 2: Introductory Tutorial • 19

By Computing index profiles Index profiles show the index distribution and can help verify that both the geometry and material properties have been set correctly. To compute an index profile, click the Compute Index Profile icon in the left toolbar to open the . Pressing this icon will open the window shown in Fig. 2-9.

Figure 2-9: The Compute Index Profile dialog.

Pressing OK in this dialog will display the index profile at the Z Domain Min value. More information on the calculation of index profiles can be found in Section 3.G.

Step 9: Simulation & Advanced CAD Features Once the structure has been created, the next step is to use the selected simulation tool to perform a simulation. See the simulation tool documentation for more information.

This tutorial illustrates basic CAD layout features and a sample workflow for using the RSoft CAD Environment. The rest of this manual explains the simple concepts introduced in this tutorial in more detail, and also introduces several advanced concepts.

Page 30: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program
Page 31: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 21

Chapter 3: Basic CAD Usage

This chapter provides valuable information about basic CAD usage and should be read by all users. It covers the structure of the CAD window, the concept of the symbol table, creating a new structure, creating/editing waveguide components, viewing the structure, and the calculation of index profiles.

The discussion in this chapter does not cover the supported component types or setting component properties. This information can be found in Chapter 4 for segment components and Chapter 5 for other component types.

3.A. The CAD Layout Window This section describes the menu toolbars, and status bar of the CAD layout window (Fig. 2-1). If applicable, the location of further documentation is given.

3.A.1. The Menubar The menubar allows the user to access the bulk of the CAD options, and contains the following:

Some of these options can also be accessed via the toolbars. Also, some options have keyboard shortcuts which are shown in parenthesis.

Under File: New… (Ctrl-N) Creates a new design file. See Section 3.C.

Open… (Ctrl-O) Opens an existing design file.

Save (Ctrl-S) Saves the current design file.

Save As… Saves all open design files.

Close Closes the current design file.

Close All Closes all open design files.

Print (Ctrl-P) Prints the current design file.

Printer Setup… Sets printer related parameters.

Import Circuit Provides a menu for the supported data types which can be imported into the CAD. See Section 6.E.

Export Circuit Provides a menu for the supported data types which can be exported from the CAD. See Section 6.E.

Page 32: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

22 • Chapter 3: Basic CAD Usage RSoft CAD Environment 8.0 User Guide

Exit Closes the RSoft CAD.

Under Edit: These features are discussed in Section 3.F.

Undo (Ctrl-Z) Reverses the last change made to the design file.

Cut (Ctrl-X) Moves any selected components from the design file to the clipboard.

Copy (Ctrl-C) Copies any selected components from the design file to the clipboard.

Paste (Ctrl-V) Pastes the contents of the clipboard into the current design file.

Delete (Del) Deletes selected components form the design file.

Duplicate Creates duplicates of any selected components in the current desifn file.

Select All Selects all components in the current design file.

Select/Edit Components… Selects a component based on its component number.

Change Order Changes the order in which the components are drawn.

Flip Horizontal Flips any selected components horizontally.

Flip Vertical Flips any selected components vertically.

Rotate… Rotates any selected components by an arbitrary angle.

Convert To Polygons Converts any selected components to a polygon.

Flatten Circuit Flattens a hierarchical design file into one level.

Tables… Provides access the symbol table, layer table, tensor table, pathway and monitor definitions, user taper and profile tables, electrode heater table, as well as the material editor.

Under View: These features are discussed in Section 3.E.

Full Sets the viewing domain of the CAD so that the entire structure is visible.

In Zooms in the CAD window.

Out Zooms out the CAD window.

Last Reverts the viewing domain to the previous settings.

Redraw Redraws all the segments in the CAD window.

Regrid Recalculates the grid.

Set View Parameters… Directly set the viewing window domain as and the aspect ratio.

Clear Log Clear the log file.

Open Log Open the log file.

Under Options: Preferences Opens the CAD preferences window. See Section 3.C.

Global Settings Opens the Global Settings window. See Section 3.C.

Index Generation Opens the Global Index Generation Options window. See Section 6.D.

Import Symbols Imports the symbol table of another design file into the current design file. See Section 6.H.

Page 33: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 23

Insert Inserts components into the design file.

Under Run: Go Runs the current simulation type selected.

Compute Index Profile Computes an index profile of the current design file. See Section 3.G.

Compute Modes… Compute multiple modes of the current circuit, as well as set mode options. See the BeamPROP manual.

MOST Optimizer/Scanner Opens the MOST scanning and optimization utility. See the MOST manual for more information.

Run Script… Runs an RSoft script. For more information on scripting, please see Chapter 10.

Cluster Settings Sets the parameters for a FullWAVE cluster simulation.

Under Graph: View… Opens WinPLOT, RSoft’s plotting program.

Close All Closes all open instances of WinPLOT.

Launch Data Browser Opens the DataBROWSER.

Under Utility Array Layout Creates PBG structures. See Chapter 7.

WDM Router Layout… Creates a WDM Router or AWG. See the AWG Layout Manual.

WDM Router Simulation… Simulates a WDM Router or AWG See the AWG Layout Manual.

GratingMOD Grating Layout… Simple way to create a grating structure for a GratingMOD simulation.

Electrode/Heater... Calculates the effects of an electrode or heater in a BeamPROP simulation. See the BeamPROP manual.

Under Window:

Tile Tiles all open circuits in the CAD window.

Cascade Cascades all open circuits in the CAD window.

Arrange Icons Arranges minimized windows within the CAD window.

Close Closes the current circuit.

Close All Closes all open circuits.

Under Help This menu option provides online help for all RSoft products which share the CAD interface.

3.A.2. The Top Toolbar The top toolbar contains the following buttons:

New Circuit Creates a new design file. See Section 3.C.

Page 34: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

24 • Chapter 3: Basic CAD Usage RSoft CAD Environment 8.0 User Guide

Open Circuit Opens an existing design files.

Save Circuit Saves the current design file.

Undo Last Change Reverses the last change made the to design file.

Cut Selection Cuts selected components from the design file.

Copy Selection Copies selected components from the design file.

Paste Clipboard Contents Pastes the clipboard contents into the current design

file.

Duplicate Selection Copies and then pastes a copy of the selected

components into the current design file.

Flip Section Horizontally Flips selected components horizontally.

Flip Section Vertically Flips selected components vertically.

Rotate Selection Rotates selected components by a given angle.

Send Forward/Send Backward Changes the drawing order of selected components.

Send to Front/Send to Back Changes the drawing order of selected components.

View Graphs Opens a plot file in WinPLOT.

Launch Data Browser Opens the DataBROWSER.

Help for CAD program Opens online help for the Rsoft CAD (this

document).

Help for Active Sim.Program Opens online help for the current simulation tool.

3.A.3. The View Toolbar The view toolbar contains the following button:

Choose Simulation Tool Selects the active simulation tool.

Single-Pane/Multi-Pane View Switches between single-pane and multi-pane view.

Edit X Axis View Displays the YZ plane.

Edit Y Axis View Displays the XZ plane.

Edit Z Axis View Displays the XY plane.

Page 35: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 25

Show 3D View Displays a 3D view.

Cut View Controls Display a specific slice through the structure.

Zoom In Zoom in the CAD window.

Zoom Out Zoom out the CAD window.

Zoom Full Sets the viewing domain of the CAD so that the

entire structure is visible.

Aspect Ratio Set the aspect ratio for the selected cut view.

Redraw Circuit This option redraws the circuit in the CAD window.

3.A.4. The Side Toolbar The side toolbar contains the following buttons:

Select Mode Select waveguide components in the CAD window

using the mouse. See Section 3.F.

Zoom Mode Zoom in/out in the CAD window. Use the left button

to zoom in, the right button or left button + Shift to zoom out. See Section 3.F.

Segment (In Plane) Draw straight segment components that lie in the

viewing plane using the mouse. See Section 3.D.

Segment (Out of Plane) Draw straight segment components that lie out of the

viewing plane with the mouse. See Section 3.D.

Arc Draw arc segment components using the mouse. See

Section 3.D.

S-Bend Draw S-bend segment components using the mouse.

See Section 3.D.

Lens Draw lens components using the mouse. See Section

3.D.

Circle Draw circles/cylinders/spheres using the mouse. See

Section 3.D.

Polygon Draw polygon using the mouse. See Section 3.D.

Circuit Reference Draw a circuit reference using the mouse. See

Section 3.D.

Simulation Region Draw a BeamPROP simulation region using the

mouse. See the BeamPROP manual.

Time Monitor Draw a FullWAVE time monitor using the mouse.

See the FullWAVE manual.

Drawing Tool Options Set the default parameters for components to be

drawn in the future.

Edit Global Settings Open the Global Settings window where the default

settings for the design file are set. It is equivalent to

Page 36: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

26 • Chapter 3: Basic CAD Usage RSoft CAD Environment 8.0 User Guide

the Startup window. See Section 3.C.

Edit Symbols Open the Symbol Table where new variables can be

created and existing variables modified. See Section 3.B.

Edit Materials Opens the Material Editor where complex materials

can be defined. See Chapter 8.

Edit Layers Open the Layer Table Editor. Layer Tables are used

to define 3D multilayer structures. See Section 4.C.5.

Edit User Profiles Opens the User Profile Editor where profile functions

can be defined. See Section 6.A.

Edit User Tapers Open the User Taper Editor where taper functions

can be defined. See Section 6.B.

Edit Launch Field Opens the Launch Parameters dialog box where the

initial field for a simulation is specified.

Edit Pathways Define pathways which are used to define launch

positions and for analysis purposes. See Section 6.G.

Edit Monitors Create and modify BeamPROP monitors which

measure a quantities, such as waveguide power, during a simulation. See the BeamPROP manual.

Perform Simulation Opens the Simulation Parameters window where

simulation related parameters are specified and simulations are initiated.

Compute Index Profile Opens the Compute Index Profile window to

compute index profiles of the design file. See Section 3.G.

Launch MOST Opens the MOST optimization and scanning utility.

Compute Modes Compute transverse modes of the design file. See the

BeamPROP manual.

3.A.5. The Status Bar The status bar is located on the bottom of the CAD window, and provides information about the current mode of the CAD interface, as well as the coordinates of the mouse in the CAD window.

Figure 3-1: The Status Bar can be found in the bottom portion of the CAD window.

3.B. The Symbol Table The Symbol Table is a powerful concept in the RSoft Photonics Suite. As such, the concepts in this section are critical to a proper understanding of the CAD. It should be understood completely.

Page 37: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 27

3.B.1. Why use the Symbol Table? The Symbol Table has two main uses:

• Modify existing built-in variables

Every option within the RSoft CAD and each simulation tool is controlled by a variable in the symbol table. While most options can be set in the graphical interface, advanced users can modify these variables in the symbol table to access these features. In addition, this concept provides a convenient scripting method. See Chapter 10 for more details on scripting.

• Create user-defined variables

User-defined variables can be created in the symbol table, and can be used to set various design aspects. These variables can be a numerical value, or an arbitrary mathematical function of other variables. More information on the allowable functions can be found in Appendix C.

User-defined variables are quite powerful: when used properly, an entire design file can be modifying by changing the value of variables. This is an extremely powerful and unique feature of the RSoft CAD, and can be enormously helpful when optimizing photonic circuits as discussed in Chaper 10.

It is recommended that the names user-defined variables start with a capital letter. All variables that start with a capital letter will be displayed at the top of the variable list, and will therefore be easier to find.

3.B.2. Accessing the Symbol Table The Symbol Table can be opened by clicking the Edit Symbols button on the left toolbar, or selecting Edit/Tables/Edit-Symbols... from the CAD menu. The symbol table editor will appear as shown in Fig. 3- 2. It contains a column of variable names and a column of associated expressions.

Figure 3-2: The symbol table editor dialog, which allows access to both internal and user-defined symbols that control various

waveguide circuit and simulation parameters.

Most of the variables shown in Fig. 3-2 correspond to the settings made in the startup dialog as seen in Chapter 2. Altering any of the values will immediately affect the corresponding parameter in the design file.

Page 38: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

28 • Chapter 3: Basic CAD Usage RSoft CAD Environment 8.0 User Guide

3.B.3. Using the Symbol Table The symbol table will be repeatedly shown in this document as well as the simulation tool manuals. When using the symbol table, keep the following in mind:

• All variables are case-sensitive and can be defined as an analytic expression involving any other variable in the symbol table, such as the expression used to define k0 shown in Fig. 3-2. The syntax and functions that can be used is documented in Appendix C.

• Numerous built-in variables control both CAD and simulation operations. A list of built-in variables that correspond to CAD settings can be found in Appendix D, and built-in variables that correspond to simulation tool settings can be found in similar appendices in each simulation tool manual.

• Built-in variables that do not appear in the symbol table are internally set to their default values. Do not use the name of a built-in variable as a user-defined variable to avoid conflict.

Modifying an Existing Variable The same procedure is used to modify an existing variable in the symbol table for both built-in and user-defined variables: select the desired variable, change the value in the Expression field, and then click Accept Symbol. To reject a variable without saving the modification, click Reject Symbol instead of Accept Symbol.

Adding a New Variable The same procedure is used to modify a built-in variable that does not yet appear in the symbol table and to add a user-defined variable. Click New Symbol, type the desired variable name in the Name field, enter the value in the Expression field, and click Accept Symbol. To reject a variable without saving it to the variable list, click Reject Symbol instead of Accept Symbol.

Removing a Variable To remove a variable from the symbol table, select the variable and click Delete Symbol.

3.B.4. An Example As an example, open the file <rsoft_dir>\examples\beamprop\branch.ind. Open the symbol table and note that the variable width is set to 4. This indicates that the default width of the components in this design file is 4 µm. Change the value of this variable to 10, and click OK to return to the layout window. The structure will adjust accordingly. Other variables can be altered with similar ease.

3.C. Creating a New Design File Click the New Circuit icon in the top toolbar to create a new design file. Alternatively, select File/New from the menu. The startup window will appear where basic information about the structure can be specified. This section describes these options in detail.

Information set in this window can be changed at any time via the Global Settings window. Also, all options may not be relevant for all simulation tools or simulation types.

3.C.1. Simulation Tool & Dimensions These settings control which simulation tool is used as well as the dimensions of the structure and are shown in Fig. 3-3.

Page 39: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 29

Figure 3-3: The simulation tool and dimension settings in the Startup window.

Simulation Tool

Sets the simulation tool to be used. All of these products share the same CAD interface, and are licensed separately.

Model Dimension

Sets the dimension of the structure, and can either be set to 2D or 3D. A 2D structure is defined in the XZ plane; a 3D structure in XYZ.

Radial Calculation

Allows for a 2D radial simulation of structures which have azimuthal symmetry. This option is not enabled for all simulation tools and is described in the simulation tool manuals.

Effective Index Calculation

Indicates that an effective index calculation will be performed. This option is not enabled for all simulation tools and is described in the BeamPROP manual.

3.C.2. Global Default Settings These settings control the global default settings for components and are shown in Fig. 3-4.

Figure 3-4: The global default settings in the Startup window.

Free Space Wavelength

Sets the wavelength of light to used in the simulation, and represents the wavelength in free space (i.e. λ=c/f where c is the velocity of light in vacuum and f is the frequency of the light), not in the material.

Background Index

Sets the real refractive index of the background material in which components are embedded. Additionally, the imaginary refractive index (loss) of the background material can be specified through the variable background_alpha in the symbol table.

Index Difference

Page 40: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

30 • Chapter 3: Basic CAD Usage RSoft CAD Environment 8.0 User Guide

Sets the default difference between the real refractive index of a component and the background material. Additionally, the default imaginary refractive index (loss) of a component can be specified through the variable alpha in the symbol table, While these values set the default value for all components, individual components can be assigned different real and/or imaginary values as described in Section 4.B.

Component Width

Sets the default width of a component along the X axis. Individual components can also have different widths as described in Section 4.B.

Component Height

Sets the default height of a component along the Y axis. Individual components can also have different heights as described in Section 4.B. This setting is only valid for 3D simulations, and is set equal to the Component Width by default.

Index Profile

This determines the functional form of the refractive index profile along the direction transverse to the component axis. See Section 4.E.

3D Structure Type

This field sets the default 3D structure type. See Section 4.D.

Cover Index

This field sets the refractive index of the cover for a 3D simulation or a rib/multilayer waveguide. See Section 4.D.

Slab Index

This field sets the slab index of a rib waveguide. See Section 4.D.

Slab Height

This field sets the slab height used for the simulation of a multilayer waveguide. See Section 4.D.

Edit Layers…

This button accesses the Layer Table Editor used to define multilayer waveguides. See Section 4.D.

3.C.3. Initial Viewing Dimensions This portion of the New Circuit dialog sets the initial viewing dimensions for the CAD layout window.

Figure 3-5: The initial viewing dimension settings in the startup window.

X Min, X Max, Z Min, Z Max

The initial dimensions of the drawing space in the layout window. These dimensions can later be changed by several methods, including zooming in or out via either the toolbar or the View menu, and choosing a specific range or aspect ratio via the View/Set-View-Parameters... menu item.

Page 41: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 31

Save New Startup Settings

This checkbox indicates that the default settings in the startup window should be changed to the currently entered values.

3.D. Adding Components (Drawing Modes) The CAD has several drawing modes, each of which allow different types of components to be added to a design.

Most geometric shapes (e.g. tapered or curved structures, periodically varying structures, etc.) can be produced from variants these components by changing its properties or by overlaying more than one component.

3.D.1. Drawing Modes The CAD has several drawing modes that control the type of components to be added to the design which can be selected by pressing the appropriate icons on the left toolbar. They can be broadly categorized by the number of vertices (end points):

Two Vertex Components: All two vertex components in the CAD are generalized forms of the same component: the generalized segment. However, several drawing modes are provided to simplify the creation of these different types:

See Chapter 4 for a complete description of the segment component type. Also, one type of segment can be changed into another by modifying it’s settings such as position tapers. See Section 4.F for more details.

Segment Mode (In Plane)

This drawing mode produces straight segments whose axis follows a straight line that lie in the drawing plane. If necessary, it’s properties can be changed so that it lies in any plane after it is drawn.

Segment Mode (Out of Plane)

This drawing mode produces straight segments whose axis follows a straight line that lie perpendicular to the drawing plane. If necessary, it’s properties can be changed so that it lies in any plane after it is drawn. Arc Mode

This drawing mode produces curved segments whose axis follows a circular arc. S-Bend Mode

This drawing mode produces curved segments whose axis follows a s-bend shape. Different s-bends can be realized by changing the arc properties as described in Section 4.F.

One Vertex Components: One vertex components that can be added to a design file are:

See Chapter 5 for a complete description of the these component types.

Lens

This drawing mode produces lens components.

Circle

This drawing mode produces cylindrical or spherical components.

Page 42: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

32 • Chapter 3: Basic CAD Usage RSoft CAD Environment 8.0 User Guide

Polygon

This drawing mode produces polygon components.

Circuit Reference

This drawing mode produces circuit reference components.

Simulation Region

This drawing mode produces simulation region components, and are only available for BeamPROP.

Time Monitor

This drawing mode produces time monitor components, and are only available for FullWAVE.

3.D.2. Drawing a Component Components are drawn by first selecting the desired drawing mode, and then drawn with the mouse in the layout window. One vertex components are added by simply clicking at the desired location of the vertex; two vertex components are added by rubberbanding.

Rubberbanding involves first moving the mouse to the desired starting vertex position, clicking and holding the left mouse button, moving to the desired ending vertex position, and releasing the mouse button. There are several important items to note in connection with the above procedure:

• The center line of the component is shown in blue.

• The rubberbanding process may be canceled at any time by clicking on the right mouse button or pressing ESC before completing the drawing operation.

• During rubberbanding the status line coordinate display is constantly updated.

• There is an alternative mouse technique: After moving the mouse to the starting vertex, press and release the left mouse button without moving the mouse. Then, move the mouse to the ending vertex and click the left mouse button again.

• The exact coordinates of the starting and ending vertex can be directly input through the Component Properties window as discussion in Chapter 4).

3.D.3. Snap Modes There are several features of the CAD layout system which simplify adding components.

Snap To Drawing Grids The layout window maintains both a fine and a coarse grid, and drawing coordinates can be made to snap to either of these grids, reducing required hand-eye coordination. The fine grid is used by default, and the coarse grid is employed whenever the Shift key is held down; the Ctrl key disables the snap to feature entirely.

Snap To Components When drawing a component, a vertex will automatically snap to the vertex of another component if the two vertices are near enough. This is extremely helpful when drawing components that need to fit together to form a larger structure. The tolerance for this can be set in the CAD preferences.

An important and useful aspect of this feature is that the connecting relationships between the vertices that are determined when drawing are maintained as permanent references between the components by the CAD. When one component snaps to another, its coordinates are not simply set equal to those of the other component, but instead, it is logically attached to that component. If one component is moved, any attached components move with it.

Page 43: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 33

Even if components aren’t drawn using this mode, they can be logically attached. See Section 4.B.1 for more details.

3.D.4. Drawing Preferences The properties of any component added to the CAD are controlled both by the Drawing Preferences window which can be opened by clicking the Drawing Preferences icon in the left toolbar. By default, the values of these properties are set both by the user-defined values set in the Startup window and by the defaults for the CAD Environment. However, it is possible to change these defaults so that components added to the design have different properties.

It is important to understand that role of the Drawing Preferences: changing the Drawing Preferences will not affect any components already created, only components that will be drawn.

3.D.5. Try It! Many techniques for adding components using the mouse have been described in this section. It is best to experiment with these modes in order to better understand their operation.

3.E. Viewing Components The CAD has several options which help view components in a design file. This includes single-pane and multi-pane mode, full and cut mode, zooming, and display aspect ratio. In each of these modes, components can be added/selected/edited as described in this chapter.

3.E.1. Single-Pane Mode Single-Pane Mode displays a single view of the structure in the layout window. The view shown can be set via the buttons in the view toolbar. The X, Y, and Z buttons indicate that a view along the specified axis will be shown. Also, the current axes shown are displayed in the lower left corner of the layout window.

In 2D, only the Y axis view is available as 2D designs lie in the XZ plane by definition.

Full & Cut Mode: Each axis view has two modes, Full Mode and Cut Mode. Full Mode displays all the components at once, regardless of their position, and cut mode displays all the components that lie within a specific cut plane. This allows, for example, only components that lie in the Y=100 plane to be shown while in the Y axis mode (viewing the XZ plane).

By default, the display is in Full Mode and all components will be shown. To enter Cut Mode, click the +/- buttons in the view toolbar. The current cut position is displayed, as well as the Cut Step Size. Both these fields can be directly set by the user.

3.E.2. Multi-Pane Mode (3D Only) Multi-Pane mode, which is available for 3D designs only, displays multiple structure views simultaneously. By default, it shows the X, Y, and Z axis views, as well as a 3D view. It can be accessed via buttons in the view toolbar.

Using the Axis Views The X, Y, and Z axis views can be used in exactly the same way as in single-pane mode. Each view maintains its own aspect ratio, component selection, etc. The currently selected axis view is illustrated in the CAD window by a blue

Page 44: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

34 • Chapter 3: Basic CAD Usage RSoft CAD Environment 8.0 User Guide

rectangle around the active pane, as well as the state of the buttons in the view toolbar. Each axis view can also be in Full or Cut Mode.

Using the 3D View: The 3D view shows the structure rendered as 3D polygons. It can be manipulated by the mouse as follows:

• Rotating:

The 3D view can be rotated by clicking on the 3D view and moving the mouse.

• Zooming:

The 3D view can be zoomed in and out by right-clicking on the 3D view and moving up and down.

• Panning

The 3D view can be panned by holding CTRL and clicking on the 3D view and moving the mouse.

• Display Modes:

The 3D view supports several different display modes such as solid, transparent, and wireframe. These modes can be cycled through by double-clicking the mouse on the 3D view.

Additionally, holding Shift and double-clicking toggles the display of the axes, holding Ctrl and double-clicking resets the view, and right-double-clicking enters and auto-animate mode.

3.E.3. Zooming Zooming is frequently useful in order to examine a smaller or larger region of the structure. There are two main. The layout window can be zoomed using either via the mouse, several toolbar buttons, or various menu items.

• Zooming via Toolbar Buttons

There are three zoom buttons on the view toolbar: Zoom In, Zoom Out, and Zoom Full. These options magnify the display, demagnify the display, or set the viewing window so that the entire structure is displayed. The zoom percentage is 10% by default, but can be set in the CAD preferences.

• Zooming via the Mouse

To zoom with the mouse, first enter Zoom Mode by clicking the icon in the left toolbar. The mouse will change to have a magnifying glass shape and no drawing will be possible. Clicking the left and right mouse buttons will magnify and demagnify respectively the display and center it around the mouse position. Alternatively, holding the Shift key while pressing the left button will zoom out. The zoom percentage is 10% by default, but can be set in the CAD preferences.

Another zooming procedure allows you to select a particular portion of the circuit and magnify it. Use the mouse to drag a box around the region of interest and release the button to zoom in. To zoom out, hold Shift while dragging a box around the region the current view should be redrawn inside and release the button. In either case, pressing ESC will cancel the zoom operation.

• Zooming via Menu Items

While not as convenient as the first two options, it is possible to zoom via menu items. Identical options to the toolbar buttons are under View/, and the viewing are can be set directly under View/Set-View-Parameters….

3.E.4. Display Aspect Ratio: The display aspect ratio controls how the two axes in the drawing window are scaled. For structures that are much bigger in one direction than another, or for structures where it is critical to see the actual dimensions, it can be useful to change the aspect ratio to better view the structure. The aspect ratio can be set via the view toolbar, or via the View/Set-

Page 45: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 35

View-Parameters… menu item. When Auto is chosen from the pulldown menu, the structure will be scaled to best fit the viewing window.

3.E.5. Displaying Additional Objects The CAD, by default, displays additional objects in the drawing windows:

• Simulation Domain

The simulation domain is displayed as a dark line in the CAD layout windows. This object cannot be selected or moved with the mouse.

• Launch Fields

Launch fields are displayed as orange rectangles in the CAD layout windows. Right-clicking on these objects in the layout window will open the Launch Properties for the selected launch. These objects cannot be moved with the mouse.

• Direction Indicators

Both launch field and FullWAVE time monitor objects have associated directions, and can be displayed in the CAD layout window.

The display of these objects can be disabled/enabled via the CAD Preferences window. See Section 6.J for details.

3.F. Editing Components with the Mouse This section covers the editing of components with the mouse; more direct methods are discussed in Chapter 4.

This section discusses how to select, move, scale, flip, and rotate components, as well as standard editing functions such as cut and paste. Finally, we discuss various zooming procedures which are useful while editing circuits.

3.F.1. Selecting Components The Select Mode in the left toolbar can be used to select components. When in this mode, the cursor will appear as an arrow and no drawing is possible.

If reading this section for the first time, it might be beneficial to create a simple structure with several components to experiment with.

To select a single component, make sure Select Mode is enabled, move the mouse over the component, and click the left mouse button. The selected component will be highlighted with small black handles as illustrated in Fig. 3-6. These handles can be used for resizing or scaling the component as discussed below. The number of the most recently selected component is indicated in the status line for reference.

Page 46: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

36 • Chapter 3: Basic CAD Usage RSoft CAD Environment 8.0 User Guide

Figure 3-6 - A straight component which has been selected by clicking on it when the program is in select mode.

To select a different component, first, simply click the new component. To select an additional component without deselecting the first, hold down the Shift key while selecting the new component.

All components can be selected through the menu item Edit/Select-All, and all components can be deselected by clicking an unoccupied area of the layout window. An alternate procedure for selecting one or more components is to drag a box around the group of components to be selected.

Selecting Components in Slice and Multi-Pane Mode (3D Only) Some components will be easier to select in different cross-section views. While two components might overlap in one cross-section, they might not in another. Furthermore, it is possible to select segments in both the Full and Cut Modes described in Section 3.E.1.

Selecting Components by Number It is sometimes convenient to select a component based on its number, especially when one or more components occupy the same physical space. To do this, use the menu item Edit/Select/Edit-Component, and enter the number of the desired component in the dialog.

3.F.2. Modifying Components Once a component or set of components (referred to as “the selection”) has been selected, they can be operated on in several ways:

Moving, resizing, flipping, and rotating operations might not be possible if the component properties have been directly set via the Component Properties window. In that case, the modifications must be made via the Component Properties window. Also, by default, the component snap to feature described in Section 3.D.3 is not enabled when editing/ components to prevent unintended attachments. However, it can be enabled in the CAD Preferences.

• Moving

Page 47: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 37

To move the selection, simply drag one of the components in the selection to the desired position.

• Resizing

To resize or scale the selection along a particular direction, simply grab the corresponding handle of any one of the selected components and move it to the desired position.

• Flipping

It can sometimes be beneficial to flip components to achieve a certain geometry. The Flip Horizontal and Flip Vertical icons in the top toolbar can be used to flip components around their center. To flip around their top or button, hold the left or right Shift key while clicking the icon. Alternatively, use the Edit/Flip-Horizontal/ and Edit/Flip-Vertical menu items.

• Rotating

The CAD also has a limited capability for rotating components via an icon on top toolbar or via the Edit/Rotate menu option. Several limitations on this option exist depending on the component type.

Standard Editing Operations In addition to the above features which allow the user to modify the position or dimensions of a waveguide component, the CAD layout system possesses the standard editing functions for cut, copy, paste, and delete. These functions are accessed via icons in the top toolbar or through the Edit menu item.

Changing Component Order When one component is overlaid on another component, it is sometimes useful to change the ordering of the components so that, for example, a certain component is on top. To do this, select one of the options under Edit/Change-Order, which contains standard options to move a component forward or backward, or to the front or back.

3.G. Calculating the Index Profile This section describes how to view and save plots of the actual refractive index profile used in simulation. This is a very useful feature that should be liberally used as one of the main causes of inaccurate simulation results is the use of an undesired index distribution.

If you are using an inaccurate index distribution, you cannot expect to get correct results.

3.G.1. Producing an Index Profile The index profile can be calculated via the Compute Index Profile button in the left toolbar or via the Compute-Index-Profile menu item. Alternatively, the command line can be used. The first two methods will open a window in which the calculation parameters can be set and the display type can be chosen.

Page 48: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

38 • Chapter 3: Basic CAD Usage RSoft CAD Environment 8.0 User Guide

Figure 3-7 – The Compute Index Profile window.

After appropriate calculation parameters have been chosen, click the OK button to start the index calculation. The relevant parameters are discussed in the following sections.

Calculation Parameters The calculation parameters set in this dialog determine the domain and grid that are used to calculate the desired profile. While default values for these parameters are given, there are some guidelines for choosing these parameters:

• Calculation Domain

The domain should be large enough to encompass the area of interest in the structure. The default values correspond to the whole structure.

• Grid Sizes

The grid sizes should be small enough to resolve the smallest feature in the structure.

• Slice Grid

The index information is saved and displayed on the slice grid. For most calculations, it is best to set the slice grid and grid size equal to best view the index.

• Index Type

The real or imaginary index profile can be computed.

When the OK button is pressed, the desired profile is displayed as a line plot for a 2D profile or a contour plot for a 3D profile.

Page 49: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 39

Choosing the Display Mode The Display Mode field sets the display type to be used for the index calculation. Several of the parameters discussed below can be found in the Display Options dialog and are discussed in the next section. The Display Mode options are:

• Default (Fixed Z) – Computes the cross-sectional index profile at the Z value specified in the Z Cut field. By default, this corresponds to the Z Domain Min.

• Slices – Displays the index along Z as slices every value of Z given by the Z Slice Step.

• 3D Slices – Displays the index as a function of X and Z as 3D slices along Z at every value of Z given by the Z Slice Step. In 3D, the Y position of the slices is specified by the Slice Position Y.

• WireFrame– Displays the index as a function of X and Z as 3D wireframe graph. In 3D, the Y position of the slices is specified by the Slice Position Y.

• SolidModel – Displays the index as a function of X and Z as a 3D solid model with shading to portray an illuminated surface. The color of the surface is specified by the field Surface Color, and in 3D, the Y position of the slices is specified by the Slice Position Y.

• HeightCoded –Displays the index as a function of X and Z as a 3D contour graph with color coding to indicate height, or index. The color scale can be set via the options discussed below.

• ContourMap(XZ) –Displays the index as a function of X and Z as a 2D color-coded contour map. The color scale can be selected via the options discussed below. In 3D, the Y position of the slices is specified by the Y Cut.

• ContourMap(YZ) –Only available for 3D calculations. It displays the index as a but function of Y and Z. The color scale can be selected via the options discussed below. The X position of the slices is specified by the X Cut.

• ContourMap(XY) – This option is only available for 3D calculations, similar to the Default (Fixed Z) option.

• SurfaceRelief–Displays a surface map for the 3D structure types Rib/Ridge and Multilayer.

• 3D Volume – This option is only available for 3D calculations and displays a 3D rendering of the index distribution using the MayaVi program. This type of index distribution display can be very memory intensive for structures with many grid points, so it is recommended that you increase the slice step to avoid unnecessarily large memory usage.

Setting Display Options The index profile display options are set in the Index Display Options dialog which can be opened via the Display… button in the Compute Index Profile window.

Page 50: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

40 • Chapter 3: Basic CAD Usage RSoft CAD Environment 8.0 User Guide

Figure 3-8: The Index Display Options dialog.

The index display options are:

Surface Color

Sets the surface color for plots produced when the Display Mode is set to SolidModel.

View Phi

Sets the viewing angle Phi of the plots in the simulation window when the Display Mode is set to either SolidModel or HeightCoded

View Theta

Sets the viewing angle Theta of the plots in the simulation window when the Display Mode is set to either SolidModel or HeightCoded.

Allow Redraw 2D/Allow Redraw 3D

Indicates that 2D/3D plots displayed in the simulation window should be stored in memory so that the plots can be redrawn if needed. This option is necessary for computer systems with minimal RAM; most computers will work fine with this option enabled.

Index Display Min

Sets the minimum index used when calculating an index profile. Index values which are under this value are displayed in black.

Index Display Max

Sets the maximum index used when calculating an index profile. Index values which are over this value are displayed in white.

Outline Color

This pulldown menu sets the color of the circuit outline to be displayed over the simulated fields.

Color Shades

Page 51: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 3: Basic CAD Usage • 41

This option sets the number of color shades used to render plots in the simulation window.

Color Scale

This option sets the color scale used to render plots in the simulation window. Color Scale files can be chosen via the Color Scale… button. See Appendix F for more on the use of color scales.

Show Color Scale

This field indicates that the color scale should be displayed in the simulation window.

Plot Aspect Ratio

This option sets the aspect ratio of the plot in the simulation window.

Setting Output Options The index profile output options are set in the Index Output Options dialog which can be opened via the Output… button in the Display Index Profile window.

Output All Index Tensor Elements

Indicates that all elements on the index tensor should be output. A single tensor element is displayed, however. An Output Prefix must be used for this output.

3.G.2. Saving the Index Profile In order to save the index or loss profile to a data file, simply enter an Output File Prefix in the simulation parameters dialog. After pressing OK, the graph will be displayed, and the index profile will be saved in the file <prefix>.ipf, and a corresponding WinPLOT command file for the graph will be saved in the file <prefix>.ppf, where <prefix> is the output prefix specified. The analogous files for the loss profile are <prefix>.lpf and <prefix>.ppl. Please refer to Appendix B for further information on these files and their formats.

Note that the WinPLOT command file contains an instruction to normalize as described above, but the index profile data file is not normalized and therefore contains the actual index values.

3.G.3. Producing Index Profile Plots from the Command Line Index profiles can be produced from the command line by simulating the *.ind file with the executable for the simulation tool BeamPROP (bsimw32.exe) via the variable index_profile. The value of any relevant calculation parameters will be taken from the *.ind file if not specified in the command. This variable should be set to 1 to compute the index profile and 2 to compute the loss profile The default of 0 computes the optical field as usual. More information about performing this simulation from the command line can be found in the BeamPROP manual. Users who are not licensed for BeamPROP can still perform this type of calculation.

3.H. Viewing the Current Value of a Parameter The current value of any parameter in the software can be viewed by holding the CTRL key and double-clicking on the parameter. A window will open that displays the current value. For example, the current width of a component can be seen by holding the CTRL key and double-clicking on the input box for the Component Width.

Page 52: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program
Page 53: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 43

Chapter 4: The Segment Component Type

CAD components are the basic building blocks from which a design is created. Any number and combination of different components can be embedded in a background material of a specific refractive index to create the refractive index of the entire structure.

In this chapter we intentionally limit the discussion to the segment component type; a detailed description of other components and their properties can be found in the next chapter.

A complex design can be achieved by simply adding a combination of components with varying parameters to a design file. Sometimes there is more than one way to create a specific index distribution. In theory, it does not matter how the index distribution was created; however a particular approach might be easier to implement, and lend itself to a simpler simulation later on.

4.A. The Segment Properties Window By default, segment properties are set either by the user-specified data in the Startup/Global Settings window or program defaults. The CAD is, however, an object oriented design environment and allows the user to individually change these properties as needed.

To access a component’s properties window, right click on the component in the layout window.

Page 54: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

44 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

Figure 4-1: The Segment Properties window where individual component properties can be set. It can be opened by right-clicking on

a segment in the layout window (except in Zoom Mode), and the title indicates the component number and name (if defined).

The rest of this chapter will contain a detailed description of the properties shown in Fig. 4-1.

4.B. Vertices A vertex is a component property that defines the position, width, height, and refractive index of a component. Segments have two vertices: the properties of the starting vertex are set in the lower left portion of the Segment properties dialog; the ending vertex in the lower right portion as seen in Fig. 4-1.

Additionally, segment properties can tapered, or changed, between the vertices. See Section 4.F for details.

4.B.1. Setting Position There are three methods in which the coordinates of a vertex can be specified: the method used to specify coordinates is determined by the Reference Type, which is set for each coordinate by a pulldown menu:

• If the Reference Type is None, the coordinate is specified absolutely by entering its value in the X, Y, or Z coordinate field. This is the simplest method.

• If the Reference Type is Offset, the coordinate value is determined in a relative manner by adding the offset value, which is specified in the Offset Value field, to the reference coordinate. The reference coordinate is specified in the Relative To fields. This is the most commonly used method.

• If the Reference Type is Angle, the coordinate value is determined such that a line connecting the vertex with the reference vertex specified in the Relative To fields makes a specific angle with respect to the Z

Page 55: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 45

axis. The angle is measured clockwise from the Z axis and is specified in the Angle Value field in units of degrees.

When specifying a reference vertex via the Relative To fields, you will need to give both a component number and indicate whether the vertex is the starting vertex or the ending vertex. Note that for components with only one vertex, the starting vertex should be used.

When a component is added to a design file, these settings are filled in appropriately based on the beginning and ending mouse positions. By editing these fields, the user can explicitly control the positioning of components with great flexibility. As an example, consider the portion of a component properties shown in Fig. 4-2.

Figure 4-2: An example of the three reference types possible: The X coordinate is set directly, the Y coordinate is defined via a Offset

reference, and the Z coordinate is defined via a Angle reference.

4.B.2. Index Definition Components are embedded into a background material in the CAD, and the real index definition can be mathematically defined as

0( ) ( , , )n n nf x y z= + Δr

where n0 is the Background Index and Δ n is the local Index Difference. The function f(x,y,z) is a profile function, and is described in Section 4.E. The imaginary index of the vertex can be set via the Index (imag part) field which by default is set by the variable alpha (0 by default).

Several notes:

• Material properties such as dispersion, non-linearity, and anisotropy can also be defined. See Chapter 8 for more details.

• The Background Index is set in the Global Settings window, and the default value of the Index Difference is set either in the Global Settings window or the variable delta.

• By default, the index of the ending vertex is set equal to the index of the starting vertex. If each vertex has a different index, the segment will be tapered as described in Section 4.F.

• The definitions described above vary slightly for 3D segments based on the 3D Structure Type. See Section 4.D for details.

• The real refractive index can also be set in absolute units. This mode can be enabled in the CAD Preferences window. When this option is changed in an existing file, the CAD will attempt to convert all existing components to the new mode. It is important to realize that internally, the CAD uses the index difference method, and so it is the preferred method.

Page 56: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

46 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

4.B.3. Controlling Geometry Several vertex properties contribute to the final geometry of a component, including:

By default, the width and height of the ending vertex is set equal to the width and height of the starting vertex. If each vertex has a different value, the segment will be tapered as described in Section 4.F. Additionally, the Profile Type, and the 3D Structure Type can also affect component geometry. See Section 4.E and Section 4.D for more details.

Component Width

This sets the horizontal, or X, extent of the component.

Component Height

This sets the vertical, or Y, extent of 3D components.

4.B.4. Setting Segment Color While not a property of the vertex, every segment can have a different color. To set the color, use the Display Color option in the segment properties window.

4.C. Basic 2D Component Type Basic 2D components are very simple to define in the CAD: They consist of only a Component Width, Index Difference, and a starting and ending vertex. By default, the cross section of the component is assumed to be step-index; however, this can be changed via a profile function as discussed in Section 4.E.

Figure 4-3: The basic 2D component definition.

Page 57: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 47

4.D. 3D Structure Types The 3D Structure Type, which is set in the top of the segment properties dialog, controls the basic transverse profile used for a segment. Each of the structure types has a slightly different definition of how the basic component parameters are interpreted. These parameters include Background Index, Index Difference, Component Width, and Component Height, as well other 3D specific parameters. While all these parameters can be set in the Global Settings window, some of these parameters are set for segments individually in the segment properties window. Additionally, many parameters can be tapered along the segment (see Section 4.F), and profile functions can be used to modify the refractive index (see Section 4.E).

4.D.1. Fiber This structure type corresponds to a circular or elliptical core as shown in Fig. 4-4.

Figure 4-4. Cross-section of the built-in 3D fiber structure.

Fiber Structure Parameters: The following parameters are relevant for this structure type:

Background Index

The refractive index, n0, of the background material.

Index Difference

Sets the difference, Δ n, between the real refractive index of the core and the background material.

Index (Imag. part)

Sets the imaginary refractive index (loss) of the core.

Component Width

The extent of the generally elliptical cross section in the horizontal, or X, direction.

Component Height

The extent of the generally elliptical cross section in the vertical, or Y, direction.

Page 58: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

48 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

4.D.2. Channel This structure type corresponds to a rectangular core embedded in a uniform background material as shown in Fig. 4-5.

Figure 4-5: Cross-section of the built-in 3D channel structure.

Channel Structure Parameters: The following parameters are relevant for this structure type:

Background Index

The refractive index, n0, of the background material.

Index Difference

Sets the difference, Δ n, between the real refractive index of the core and the background material.

Index (Imag. part)

Sets the imaginary refractive index (loss) of the core.

Component Width

The extent of the rectangular cross section in the horizontal, or X, direction.

Component Height

The extent of the rectangular cross section in the vertical, or Y, direction.

Additional Settings A channel can have a sloped sidewall via the Sidewall Angle option. See Section 4.H for details.

4.D.3. Diffused This structure type corresponds to a diffused structure in a substrate material. As shown in Fig. 4-6, the "background" in this case consists of a semi-infinite region referred to as the substrate which is defined for y<0, and another semi-infinite region referred to as the cover, which is defined for y>0.

Page 59: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 49

Figure 4-6: Cross-section of the built-in 3D diffused structure.

The position of the component is controlled by specifying the coordinates of the starting and ending vertices. Though, by default, the structure is defined for y <0, the Y position can be set directly.

Diffused Structure Parameters The diffused profile is defined by

[ ]γ)()(),( 0 yfxngnyxn Δ+=

where

⎪⎪⎭

⎪⎪⎬

⎪⎪⎩

⎪⎪⎨

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡⎟⎠⎞

⎜⎝⎛ −

+

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡⎟⎠⎞

⎜⎝⎛ +

=xx h

xw

erfh

xw

erfxg 2221)(

Here, n0 is the substrate or background index, Δ n is the maximum index change produced by diffusion from an infinitely extended source (i.e. infinite width) , w is the width of the diffusion source in the horizontal direction, hx is the diffusion length in the horizontal direction, and hy is the diffusion length in the vertical direction (hx = hy by default).

The vertical profile f(y) is determined by the variable diffusion_shape; this variable must be set by the user in the symbol table in order to override the above default:

• diffusion_shape = SHAPE_GAUSSIAN [default]

2

2

( ) y

yhf y e

⎛ ⎞⎜ ⎟−⎜ ⎟⎝ ⎠=

• diffusion_shape = SHAPE_EXPONENTIAL

⎟⎟

⎜⎜

= yhy

eyf )(

• diffusion_shape = SHAPE_ERFC

Page 60: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

50 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

⎥⎥⎦

⎢⎢⎣

⎡=

yhyerfcyf )(

The vertical profile is determined by the variable diffusion_shape as indicated above; this variable must be set by the user in the symbol table in order to override the above default.

The parameter γ is controlled by the variable diffusion_gamma, which equals 1.0 by default. Since it represents the non-linear interaction between the concentration and index, it is applied after the index changes for all components have been accumulated.

The following parameters are relevant for this structure type:

Background Index

The refractive index, n0, of the substrate material.

Cover Index

The refractive index, nc, of the cover material. The imaginary part of the cover index (loss) can be specified by the symbol table variable cover_alpha. This option is set in the Global Settings window.

Index Difference

Sets the maximum real index change, Δ n, produced by diffusion from an infinitely extended source.

Index (Imag. part)

Sets the maximum imaginary refractive index (loss) of the diffusion pattern.

Component Width

The width of the diffusion source, w, in the horizontal direction.

Component Height

The diffusion length in the vertical direction, or, hy, in the above expressions. The diffusion length in the horizontal direction is given by hx = hy *diffusion_ratio, where diffusion_ratio is a symbol table variable which defaults to 1.0.

An example "process file" for titanium-diffused lithium niobate is included as TiLiNbO3.ind, and is documented in TiLiNbO3.doc. This file may be imported into another .ind file via the Options/Import-Symbols… menu item described in Section 6.H.

4.D.4. Rib/Ridge This structure type corresponds to what are commonly referred to as rib or ridge structures as shown in Fig. 4-7. The "background" in this case consists first of a semi-infinite region referred to as the substrate, which is defined for y<0. On top of the substrate is a thin film of a given height and index, followed by another semi-infinite region referred to as the cover, which is defined for y greater than the top edge of the film. This background forms a one-dimensional three-layer slab waveguide in the vertical direction.

Page 61: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 51

Figure 4-7: Cross-section of the built-in 3D rib/ridge structure.

The position of the component is controlled by specifying the coordinates of the starting and ending vertices. Though, by default, the structure is defined relative to y <0, the Y position can be set directly.

In background regions, where no structures have been defined, the layer structure is considered to exist up to a height defined by the Slab Height option in the Global Settings window.

Rib/Ridge Structure Parameters The following parameters are relevant for this structure type:

Background Index

The refractive index, n0, of the substrate material.

Cover Index

The refractive index, nc, of the cover material. The imaginary part of the cover index (loss) can be specified by the symbol table variable cover_alpha. This option is set in the Global Settings window.

Index Difference

Sets the difference, Δ n, between the real refractive index of the core.

Index (Imag. part)

Sets the imaginary refractive index (loss) of the core .

Slab Index

The refractive index of the thin film material defining the vertical slab in the background. By default, this is defined by a formula such that the Slab Index equals the Background Index plus the Index Difference. The imaginary refractive index (loss) is defined by the symbol table variable alpha. This option is set in the Global Settings window.

Slab Height

The height of the thin film material defining the vertical slab waveguide which forms the background. This option is set in the Global Settings window.

Component Width

Page 62: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

52 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

The extent of the rib structure in the horizontal, or X, direction.

Component Height

The extent of the rib structure in the vertical, or Y, direction.

4.D.5. Multilayer This structure type describes a multilayer structure as shown in Fig. 4-8. It can be used to define simple rib structures as well as more complicated layered structures.

Figure 4-8: Cross-section of the built-in 3D multilayer structure. Each layer can have a unique height and index value.

The position of the component is controlled by specifying the coordinates of the starting and ending vertices. Though, by default, the structure is defined relative to y <0, the Y position can be set directly.

A multilayer structure is defined using the following concepts:

• Substrate

The "background" in this case consists first of a semi-infinite region referred to as the substrate, which is defined for y<0.

• Layers

On top of the substrate are one or more layers, or thin films. Each layer is defined by its height and complex-valued refractive index via a Layer Table, which is discussed in the next section. Different components can be assigned different Layer Tables, resulting in a complex arbitrary structure. Also, the layers within a segment can be tapered arbitrarily. These features are discussed in more detail below.

• Cover

The layer structure is followed by another semi-infinite region referred to as the cover, which is defined for y greater than the top edge of the last layer.

In background regions, where no structures have been defined, the layer structure is considered to exist up to a height defined by the Slab Height option in the Global Settings window.

Page 63: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 53

Multilayer Structure Parameters: The following parameters are relevant for this structure type:

Background Index

The refractive index, n0, of the substrate material.

Cover Index

The refractive index, nc, of the cover material. The imaginary part of the cover index (loss) can be specified by the symbol table variable cover_alpha. This option is set in the Global Settings window.

Layer Table

Sets the layer table to be used. See description below.

Layer Taper

Sets the layer taper table to be used. See description below.

Slab Height

The layer structure (defined by Layer Table 0) is considered to exist up to this height in the background where no components are present. This option is useful since the slab structure is usually similar to the core structure, and so only one layer table need be used to define both the slab and core structure. This option is set in the Global Settings window.

Component Width

The extent of the rib structure in the horizontal, or X, direction.

Component Height

The extent of the rib structure in the vertical, or Y, direction. The layer structure is considered to exist up to this height in the interior of the component. When this value is less than the total height defined in a the assigned layer table, the CAD will truncate the layer table at this value. It is not recommended to set the height larger than the total height defined in the assigned layer table as it can cause problems in certain cases.

Defining Layer Tables The Layer Table Editor can be accessed via the Edit Layers… button in the Global Settings window, via a button in the left CAD toolbar, or via the Edit/Tables/Edit-Layers... menu item. The Layer Table Editor, shown in 4-9, allows the user to create and modify layer tables. A layer table contains film height and refractive index, both real and imaginary. Once a layer table has been defined, it can then be assigned to a segment.

Page 64: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

54 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

Figure 4-9: The layer table editor dialog, which is used for defining the layer structure for a general multilayer component as illustrated in Fig. 4-8.

The upper portion of the Layer Table Editor selects the layer table to be edited. Layer table 0 defines the background layer structure, or regions where there are no components, as well as the default layer structure within a component unless is changed in the Component Properties dialog as described below. The upper portion of the dialog also contains buttons for creating a new layer table, deleting a layer table, and duplicating an existing layer table. The lower portion of this dialog controls the information for the selected layer table and functions similarly to the symbol table editor described in Section 3.B.

The Tapers… button allows for the use of taper functions to vary the layer properties along the segment, and is discussed in Section 6.C.

Assigning a Layer Table to a Component The multilayer structure is unique in that it is the only structure for which the Index Difference field in the Global Settings window serves no predefined function, since the index of a component is determined by the layer structure. This field does, however, control the symbol table variable delta which can be useful in the definition of the layer table depending on the application.

Similarly, the Index Difference and Index (imag part) fields in the segment properties dialog serve no function and are disabled. They are replaced by the Layer Table and Layer Taper field, which specify the layer table and taper table to be used for the individual component being edited. This allows different components to be assigned different layer structures, since the layer structure of the background is replaced by the specified layer table within the component. More information on the use of layer tapers can be found in Section 6.C.

Creating Complicated Multilayer Structures Multilayer components can be overlapped to achieve complicated multilayer structures. When this method is used, it is recommended that the user use as few layer tables as possible. Additionally, the Slab Height and Component Height options described above should be used so that layer tables can be “reused.”

Page 65: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 55

4.D.6. Mixing 3D Structure Types The different structure types available in the CAD can be combined in the same file to produce an extremely wide variety of 3D geometries. When combining structure types, the following should be kept in mind:

• Background definition:

The definition of the background is different for each 3D structure type; for example the background for fiber and channel structures is uniform, while the background for diffused and multilayer structures has a substrate and a cover. The background used is always set by the 3D Structure Type set in the Global Settings window.

4.E. Profiles The profile plays an important role in determining the refractive index of a component:

0( ) ( , , )n n nf x y z= + Δr

where n0 is the Background Index and Δ n is the local Index Difference, and f(x,y,z) is a profile function. The profile function is set by the Index Profile option either globally via the Global Settings window, or locally via a component’s properties window.

4.E.1. Built-In Profile Types The choices are:

In the equations below, w is the component width, and x is the distance from the center of the component.

• Default

This is the default choice. It indicates that the profile type should be determined by the global default in the Global Settings window. This default is based on the Model Dimension as well as the 3D Structure Type. More details can be found below.

• Inactive

An inactive component does not contribute to the refractive index distribution of the design file. This can be useful for defining optical pathways for BeamPROP monitors.

• Step Index

This choice indicates that the component should have a step index profile.

• Gaussian

This choice indicates that the component should have a Gaussian profile given by the equation:

( )2

2

0

xan x n ne

−= + Δ

where a is defined to be half the Component Width.

• Diffused

This choice is currently implemented as a pseudo-effective index profile given by

Page 66: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

56 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

01 2 2( )2

w wx xn x n n erf erf

h h

⎧ ⎫⎡ ⎤ ⎡ ⎤+ −⎪ ⎪⎢ ⎥ ⎢ ⎥⎪ ⎪= + Δ +⎨ ⎬⎢ ⎥ ⎢ ⎥⎪ ⎪⎢ ⎥ ⎢ ⎥⎪ ⎪⎣ ⎦ ⎣ ⎦⎩ ⎭

Here, h represents the diffusion depth. The h parameter is defined by setting the height variable in the symbol table, or via the Component Height. For additional information and options, refer to the discussion of 3D Structure Type of Diffused in Section 4.D.

• New Profile…or User #

These choices allow the user to specify the functional form of the index profile arbitrarily. This feature is further described in Section 6.A.

4.E.2. Default Index Profile Types All profile types are not available for all structure types. Furthermore, the default profile type is a determined by the structure type:

Inactive Step Index Gaussian Diffused User-Defined

2D Slab Yes Yes Yes Yes Yes

Fiber Yes Yes Yes Yes Yes

Channel Yes Yes Yes Yes Yes

Diffused Yes No No Yes No

Rib/Ridge Yes Yes No No Yes

Multilayer Yes Yes No No Yes

Note: The default choice for each structure type is shown in bold.

Notes: • The default profile for every structure type except Diffused is Step Index, which indicates that the profile

will appear as shown in Section 4.C and Section 4.D.

• Using a Diffused profile type for a 2D Slab structure results in the diffused profile described above.

• Using a Diffused profile type for a Fiber or Channel structure type is the same as a Diffused structure type.

• Using a Gaussian profile type for a Fiber or Channel structure type results in an identical radial Gaussian profile.

• A User-Defined Profile for a Rib/Ridge or Multilayer structure type is interpreted as a Height profile.

4.F. Tapers Tapers allow a segment’s properties to vary between the two vertices along the segment’s length. The segment’s width, height, index, and position cane be tapered independently. Tapers are defined in the top region of the segment properties window by several pulldown menus.

Page 67: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 57

4.F.1. Taper Types This section outlines the taper types that can be used in the RSoft CAD. The taper functions f(z’) are described in more detail in the following sections.

Position Taper

Allows the X position of the segment center to vary along the segment length. This is conveniently expressed in terms of a taper function, f(z’), by the following expression:

)'()()'( 010 zfxxxzx −+=

where x0 and x1 are the X coordinates for the starting and ending vertices respectively. A Position Taper can utilize all the taper types discussed in the next section.

Y Position Taper

Allows the Y position of the segment center to vary along the segment length. This is conveniently expressed in terms of a taper function, f(z’), by the following expression:

0 1 0( ') ( ) ( ')y z y y y f z= + −

where y0 and y1 are the Y coordinates for the starting and ending vertices respectively. A Y Position Taper can utilize all the taper types discussed in the next section.

Index Taper

Allows the refractive index of the segment to vary along the segment length. This is conveniently expressed in terms of a taper function, f(z’), by the following expression:

)'()()'( 010 zfnnnzn Δ−Δ+Δ=Δ

where Δ n0 and Δ n1 are the index differences for the starting and ending vertices respectively. An Index Taper can utilize all the taper types discussed in the next section except Arc tapers.

Width Taper

Allows the width of the segment to vary along the segment length. This is conveniently expressed in terms of a taper function, f(z’), by the following expression:

)'()()'( 010 zfwwwzw −+=

where w0 and w1 are the widths for the starting and ending vertices respectively. A Width Taper can utilize all the taper types discussed in the next section except Arc tapers.

Height Taper

Allows the height of the segment to vary along the segment length. This is conveniently expressed in terms of a taper function, f(z’), by the following expression:

)'()()'( 010 zfhhhzh −+=

where h0 and h1 heights for the starting and ending vertices respectively. A Height Taper can utilize all the taper types discussed in the next section except Arc tapers.

4.F.2. Taper Functions A taper function f(z’) is described in terms of a normalized position z’ which is defined as

Page 68: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

58 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

01

0'zzzz

z−−

=

where z0 and z1 are the Z coordinates of the starting and ending vertices respectively, and z is the actual Z coordinate along the segment relative to the starting vertex. This normalized coordinate therefore varies from 0 to 1 along the segment.

The choices for the taper function are:

• None

0)'( =zf

• Linear

')'( zzf =

• Quadratic

2')'( zzf =

• Exponential

' 1( ')

1

Bz

Bef ze

−=

where B is defined as

0 1( )B sign p p= −

where p0 and p1are the starting and ending values of the tapered parameter respectively.

• New Taper… and User #

These choices allow the user to specify the form of the taper function arbitrarily. This feature is further described in Section 6.B.

• Arc

This choice indicates that the segment path follows a curved path. This taper type is discussed in the next section.

4.F.3. Arc Taper Types The properties for an Arc taper are set in the Arc Properties dialog which can be opened by clicking the Arc Data… button in the segment properties window.

Page 69: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 59

Figure 4-10. The Arc Properties dialog.

The choices in the Arc Properties dialog are:

• Free

The Arc Radius, Arc Initial Angle, and Arc Final Angle of the circular arc can be arbitrarily set. The program automatically calculates the ending vertex of the segment based on these parameters and the starting vertex.

• Radius

The Arc Radius of the circular arc can be set, and the program fits the arc to lie through the segment’s starting and ending vertices.

• Initial Angle

The Arc Initial Angle of the circular arc can be set, and the program fits the arc to lie through the segment’s starting and ending vertices.

• Final Angle

The Arc Final Angle of the circular arc can be set, and the program fits the arc to lie through the segment’s starting and ending vertices.

• S-Bend

The program fits together two circular arcs to produce an s-bend through the segment’s starting and ending vertices.

• Cosine S-Bend

The program uses a cosine taper function for the segment:

( ))'cos(121)'( zzf π−=

• Raised Sine S-Bend

The program uses the following taper function for the segment:

sin(2 ')( ') '

2zf z z π

π= −

To recreate these tapers with a user-defined taper, the arguments for the trigonometric functions in the above equations need to be rewritten in terms of degrees.

Page 70: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

60 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

4.G. Priority (When Components Overlap) The creation of complicated structures in the CAD sometimes involves overlapping several components.

It is crucial to understand how the CAD treats overlapping components by default and how to override this behavior when necessary.

By default, when one or more components overlap, the program merges the components and uses the index of the component with the higher absolute index difference at each grid point. Several options exist to override this default behavior. They are:

• Combine Mode – This option indicates the method in which overlapping components are evaluated.

• Merge Priority – This option sets the relative importance between components when a Combine Mode of Merge is used.

Both of these settings can be made in a component’s properties window.

4.G.1. Combine Mode The Combine Mode of a component has three settings:

• Default – This option automatically switches between Merge and Add based on the structure type.

• Merge – This is the default setting for all structure types except diffused, and corresponds to the use of a priority scheme in order to determine which index is used. See the next section for more details on priority.

• Add – This is the default setting for diffused structures. This option allows the component to act as a local index perturbation: the index is simply added to the background and any other components. It is important to note that this option can be used to add an index profile to a layout built from any structure or profile types. However, for 3D structures, the structure type of the component being added (i.e. that has Combine Mode set to Add selected) is restricted to Fiber, Channel, or Diffused structure time. Note that if Fiber or Channel are selected, the user can also use a user-defined profile type. For example, to create a combination of Multilayer and Diffused profiles, the user can select Multilayer as the default structure in the Global Settings, and add Diffused components using Combine Mode Add. However, the reverse is not currently possible.

4.G.2. Priority Component priority is used when Combine Mode is set to Merge. The priority scheme used to determine the index at a point where more than one component is defined is:

• If the segments have the same Merge Priority setting, the segment with the higher absolute index relative to the background is used.

• If the segments have a different Merge Priority setting, the segment with the higher priority it used.

By default, every component has a priority of 0, and so the first rule is used. However, this can be overridden by changing the priority of one the components that overlap. The actual value of the Merge Priority itself does not matter, only the relative priority of a component to other components in a design.

This option is only available for 2D Step-Index and User-Defined profiles, and 3D Fiber, Channel, or Multilayer geometries; if it is needed for other circumstances, please contact RSoft.

Page 71: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 61

4.G.3. General Notes • Using either Combine Mode Merge or Combine Mode Add to mix structures can, by design, yield very

different results. To ensure that the desired structure has been obtained, the user should view the resulting index profile as described in Section 3.G.

• For multilayer structures, the desired geometry might not be realized when using overlapping components. This can usually be fixed by setting the height of the multilayer components to the exact height of the defined structure in assigned the layer table and/or using priority.

4.H. Additional Component Properties The More… button in a component’s properties window opens the Additional Component Properties dialog shown in Fig. 4 -11.

Figure 4-11: The Additional Component Properties dialog which controls component aspects that aren’t frequently used.

Not all of these options are appropriate/enabled for all simulation tools. Please consult the appropriate simulation tool manual for more information about the use of these fields with each simulation tool.

The fields in this dialog are:

Component Name

Sets the name of the component. This name will appear in the titlebar of the component properties window, in some output plots, as well as some of in some of the output file names.

Comment

Sets comments that will not affect the simulation or be used in any output. They are for the user’s benefit only.

Tag

Page 72: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

62 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

Sets tags which are used in some cases to pass special instructions to simulation engines. This field should not be set unless needed.

Mask Layer

When exporting the design file to a mask file, this information will be used to place different components in different mask layers. The default mask layer is 0. For more information about the export of mask files, see Section 6.E.

Sidewall Angle

Allows the sidewalls of Channel and Multilayer components to be sloped. This sets the angle in degrees and is measured from the vertical: A positive angle slopes in at the top, while a negative angle slopes out. The angle is maintained along the length of the segment even if the width/height are tapered.

By default, the width is assumed to be defined at the bottom of the component, but this can be changed via the Sidewall Angle Ref option in the Global Index Generation Options window.

Delta Tensor

This field determines which index tensor is used to define the segment’s index of refraction for an anisotropic simulation. The default value for this field is -1, which corresponds to a unit tensor, and therefore corresponds to the isotropic case. See Section 8.F for more details on the specification of index tensors.

Simulated Bend, Simulated Bend Radius

These fields control a CAD option which applies a coordinate transformation useful for simulating segment bends. This feature is described in Section 6.D.1. These fields apply locally in Z, that is, only over the length of the segment to which they correspond. Alternatively, this option can be globally enabled for the entire simulation domain via the Special Effects dialog.

Electrode/Heater Type

This field is used in conjunction with BeamPROP’s electrode/heater calculation feature which is discussed in the BeamPROP manual.

E/H Control Parameter

This field is used in conjunction with BeamPROP’s electrode/heater calculation feature which is discussed in the BeamPROP manual.

4.I. Notes on Segment Geometry The previous sections described how to add and manipulate the segments in the CAD system, encompassing straight, tapered, curved, and user-defined shapes, for example. While for the most part the geometry of the segment is fairly straightforward, there are some subtle conventions in the definition of the standard segment that should be understood, as well as certain options which provide control over those conventions.

Two issues arise primarily from the Z-oriented nature of the CAD system:

• The interpretation of the width specified by the user.

• How the segment terminates and how width tapers are calculated.

These two concerns are discussed in the following sections.

The user should be aware of the conventions to ensure that if these aspects of the geometry are critical to a given problem the appropriate options are used to yield the desired geometry. Note that unless the CAD view is in one-to-one aspect ratio it may be difficult to see the difference among the interpretations and options presented here. Also note that most circuits, especially BeamPROP problems, generally do not have this concern, as most geometries have shallow angles with respect to the Z-axis. However, the user should be aware of these conventions to ensure that the correct definitions of these geometrical aspects are used to yield the desired geometry.

Page 73: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 4: The Segment Component Type • 63

4.I.1. Width Measure The width measure refers to the interpretation of a segment’s width.

• The Horizontal convention, where the width is measured along the horizontal or X direction

• The Perpendicular convention, where the width is measured perpendicular to the local axis of the segment

These two conventions are illustrated in Fig. 4-12.

Figure 4-12: Segment Geometry – Width Measure: a) Horizontal b) Perpendicular. Note that the width value for both of these

segments is the same.

By default, the program interprets the width differently depending on whether the segment is an arc or not. If it is an arc, the Perpendicular convention is assumed, if not, the Horizontal convention is assumed. This interpretation can be changed via the Width Measure field in the Segment Properties dialog box. The three choices for this option are Default, Horizontal, and Perpendicular. The Horizontal and Perpendicular choices have the meanings described above, while the Default choice corresponds to the variable logic described above, i.e. Perpendicular for arcs, Horizontal otherwise.

4.I.2. Segment Orientation The Segment Orientation refers to how the segment terminates and how tapered segments are calculated.

A segment can terminate so that the endfaces are flush with the Z axis, or it can terminate so that they are perpendicular to the axis of the segment. Secondly, does a width taper reflect a horizontal view or a perpendicular view? These two concerns are illustrated in Fig. 5-7.

Figure 5-7: Segment Orientation. – a)Z-axis b) Segment-Axis. Note that the width value for both segments is the same. Also, in b)

the endface of the segment is perpendicular to the segment axis, and any width taper will be calculated along the segment axis.

These and other issues comprise what is referred to as the reference orientation for the segment geometry, or, more briefly, the segment orientation. As with the width measure, there are two natural choices for the segment orientation: along the Z axis or along the local segment axis. The default choice, and the only choice before Version 5.0, is to orient all geometry relative to the Z axis. Beginning with Version 5.0, the segment properties dialog has an option called Seg Orientation (or Segment Orientation) to control the segment orientation. The two choices are Z Axis and Seg Axis(or

Page 74: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

64 • Chapter 4: The Segment Component Type RSoft CAD Environment 8.0 User Guide

Segment Axis). The default choice of Z Axis corresponds to endfaces terminating flush with the Z axis, a width measure (except for Arcs) of Horizontal, and any other aspects of the geometry oriented to the Z axis. The new choice of Seg Axis corresponds to endfaces terminating perpendicular to the segment axis, a width measure of Perpendicular for all segments, and any other aspects of the geometry such as tapers oriented to the segment axis. The difference in orientation is illustrated in Fig. 5-7. This option is only enabled for linear and some arc taper types.

4.I.3. Which Type of Segment Geometry Should I Use? While the above choices give a lot of control over segment geometry, and it may appear that one choice or another is more appropriate than the defaults, RSoft recommends using the defaults unless the geometry truly warrants it. Otherwise, errors might be introduced by not combining components and options appropriately. For example, mismatched width or gaps between components may occur if one is not careful. On the other hand, certain geometries absolutely require the use of these features to get correct results, and they can and should be used. If necessary, please contact RSoft for assistance in recommending an appropriate solution to your problem.

Page 75: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 5: Other Component Types • 65

Chapter 5: Other Component Types

Chapter 4 described the segment component type. This chapter describes other component types that can be used in the RSoft CAD.

5.A. General Overview In additional to the segment component type, which was described in Chapter 4, the CAD contains several other component types which allow different geometries to be easily created such as lenses, circles, polygons, circuit references, simulation regions, and time monitors.

Keep the following in mind when using these component types:

• These component types have one vertex which is specified in exactly the same way as a segment. Rather than repeat the documentation here, the user is directed to the relevant section in Chapter 4.

• Since these component types only have one vertex, they cannot be tapered.

• Some of these component types can have a 3D Structure Type and Profile defined.

5.B. Lenses Lenses are segments that are defined by two radii, a center thickness, and a width.

While lenses can be to create circles, cylinders, spheres, and rings, the circle component is easier for that purpose.

Page 76: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

66 • Chapter 5: Other Component Types RSoft CAD Environment 8.0 User Guide

Figure 5-1: A schematic of a lens structure. Two radii, R1 and R2, as well as a center thickness and lens width are shown. In 3D,

this structure can be cylinder-like or sphere-like.

Lenses can be added when the Lens Mode button in the left toolbar of the CAD has been selected.

Figure 5-2: Properties dialog for Lens component.

Vertex Settings The left half of the lens properties dialog is identical to the vertex portion of the segment properties dialog (see Section 4.B). The vertex defines the center of the lens as illustrated in Fig. 5-1 as well as the lens component's optical

Page 77: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 5: Other Component Types • 67

properties. The diameter of the lens is defined by either the Component Width or twice the smallest radius, whichever is smaller.

Lens-specific Settings The right half of the properties dialog defines lens-specific parameters:

Front Radius and Back Radius

The radius of curvature of the front and back radii of the lens, labeled R1 and R2 respectively in Fig. 5-1. The centers of the circles determining the front and back interfaces are defined implicitly such that the circles intersect the front and back faces of the uniform central region. The default value for these radii is inf and –inf respectively, corresponding to a infinite radius. The sign convention for the radii is the usual one in optics, namely a positive front radius and a negative back radius yields a convex lens.

Center Thickness

The thickness of the uniform central region, if any. This parameter defaults to 0.

Angle

This controls the angle of the lens measured from the Z axis. The default value is 0.

Lens Shape

This field controls the shape of the lens in 3D. See the next section for more details about its use.

Notes for 3D In 3D, a lens can have either a cylindrical like-shape, or a sphere-like shape. The vertical extent of the lens along the Y axis is controlled by the Component Height field.

Figure 5-3: Lenses in 3D: a) Spherical version of lens shown in Fig. 5-1, b) Cylindrical version of lens shown in Fig. 5-1. Note

that a) was created using a 3D structure type of Fiber, and b) was created using a 3D structure type of Channel.

Common Lens Configurations As stated earlier, lenses can be used to create circles in 2D, and cylinders, spheres, and rings in 3D.

Page 78: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

68 • Chapter 5: Other Component Types RSoft CAD Environment 8.0 User Guide

Circles A circle can be created by setting the front and back radius equal, setting the Center Thickness to 0, and using a width greater or equal to twice the radius.

While circles, cylinders, and spheres can be created with the lens component type, it is more convenient to use the circle component type described in Section 5.B.

Cylinders A cylinder can be created in 3D by setting the front and back radius equal, setting the Center Thickness to 0, using a width greater or equal to twice the radius, setting the Lens Shape to Cylindrical, and setting the desired height of the cylinder.

Cylinders created this way will be oriented along the Y axis. To create cylinders oriented along the Z axis, use the 3D fiber structure type.

Spheres A sphere can be created in 3D by setting the front and back radius equal, setting the Center Thickness to 0, using a width greater or equal to twice the radius, setting the Lens Shape to Spherical, and setting the height of the sphere to twice the radius. Setting the height to a different value will result in a semi-ellipsoid.

Page 79: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 5: Other Component Types • 69

5.C. Circles Circles are components that are defined by one radius, and can be used to create circles in 2D and cylinders and spheres in 3D.

Figure 5-4: The circle component type.

Circles can be added when the Circle Mode button in the left toolbar of the CAD has been selected.

Figure 5-5: Properties dialog for a circle component.

Vertex Settings The left half of the circle properties dialog is identical to the vertex portion of the segment properties dialog (see Section 4.B). The vertex defines the center of the circle as illustrated in Fig. 5-4 as well as the circle component's optical properties.

Circle-specific Settings The right half of the properties dialog defines circle-specific parameters:

Page 80: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

70 • Chapter 5: Other Component Types RSoft CAD Environment 8.0 User Guide

Component Diameter

The diameter of the circle.

Component Height

The height of the circle when 3D Shape is set to Cylinder.

3D Shape

This field controls the shape of the lens in 3D. See the next section for more details about its use.

Common Circle Configurations In 3D, a circle can have either a cylindrical like-shape, or a sphere-like shape. The vertical extent of the circle along the Y axis is controlled by the Component Height field.

Cylinders A cylinder can be created in 3D by setting 3D Shape to Cylinder.

Cylinders created this way will be oriented along the Y axis. To create cylinders oriented along the Z axis, use the 3D fiber structure type.

Spheres A sphere can be created in 3D by setting the 3D Shape to Sphere.

Rings A ring can be created in 2D or 3D by overlapping two circles or cylinders respectively. The inner segment should have a Index Difference of 0 (or some other desired index value) and a higher Priority than the outer segment. See Section 4.G for more details about overlapping segments.

Page 81: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 5: Other Component Types • 71

5.D. Polygons Polygons are segments which are defined via a series of arbitrary vertex points in the XZ plane.

Figure 5-6: Geometry of a polygon component defined by a series of arbitrary vertex points in the XZ plane. For 3D structures, the

structure is simply extruded in the Y direction so that it has a height given by the Component Height option.

Polygons can be added when the Polygon Mode button in the left toolbar of the CAD has been selected.

Page 82: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

72 • Chapter 5: Other Component Types RSoft CAD Environment 8.0 User Guide

Figure 5-7: Properties dialog for Polygon component.

Vertex Settings The left half of the Polygon Properties dialog is identical to the vertex portion of the segment properties dialog (see Section 4.B). The vertex defines the origin of the polygon relative to the design file as well as the polygon component's optical properties.

Polygon-specific Settings The right half of the dialog defines the following polygon specific properties:

X Scale

A scale factor that can be used to scale the polygon data along the X axis. By default this parameter is 1.

Z Scale

A scale factor that can be used to scale the polygon data along the Z axis. By default this parameter is 1.

Angle

The angular rotation about the origin (defined by the vertex) to be applied to the polygon data.

The default origin and scale factors are chosen so that the polygon coordinates are interpreted as absolute coordinates. However, if the polygon data represents a general shape to be used repeatedly, the scale, angle, and vertex information can be used to size, rotate, and position the component as required, without the user having to generate a different data file for each polygon component to be added.

Page 83: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 5: Other Component Types • 73

The data file is selected by pressing the Data File... button and selecting the data file that contains the point information. The polygon coordinate data must be imported from an ASCII data file containing two columns defining the X and Z coordinates of each point:

X(0) Z(0)

X(1) Z(1)

… …

X(i-1) Z(i-1)

X(i) Z(i)

X(0) Z(0)

The polygon data must define a closed surface: the first and last point in the data file must be the same. Also, after selecting the file, the coordinate information is stored locally in the *.ind file.

Notes for 3D For 3D structures, the polygon is simply extruded or extended with a constant thickness along Y. This thickness is given by the Component Height field. Polygons can have a 3D Structure Type as well.

5.E. Registration Marks Registration marks are useful for mask production, and are defined by a width, height, and line thickness.

This type of segment has no effect on the simulation since it is not included in the calculation of the index profile.

Figure 5-8: The Registration Mark component type.

To add a registration mark to the circuit, select Options/Insert/Mark form the CAD menu. This will open the properties dialog for the new mark.

Page 84: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

74 • Chapter 5: Other Component Types RSoft CAD Environment 8.0 User Guide

Figure 5-9: Properties dialog for Mark component.

Vertex Settings The left half of the mark properties dialog is identical to the vertex portion of the segment properties dialog (see Section 4.B). The vertex defines the center of the mark as illustrated in Fig. 5-8. The Width/Length and Height fields set the width and height of the mark.

Mark-specific Settings The right half of the mark properties dialog specifies mark-specific information:

Mark Type

This field specifies the type of mark to be used.

Line Thickness

This field specifies the line thickness of the mark as illustrated in Fig, 5-8.

5.F. Circuit References, Simulation Regions, and Time Monitors Circuit references, simulation regions, and time monitors are advanced components that are documented elsewhere:

• Circuit references are a component that contains another design file. It allows one design file to be nested in another, resulting in a hierarchical design. See Section 6.F for more details.

• Simulation regions allow BeamPROP’s simulation parameters to locally be changed. See te BeamPROP manual for more details.

• Time monitors make measurements in a FullWAVE simulation. See the FullWAVE manual for more details.

Page 85: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 75

Chapter 6: Advanced CAD Features

This chapter covers advanced RSoft CAD topics. It assumes basic familiarity with the RSoft user interface. If any concept is not clear, please go back to previous chapters in order to gain a deeper understanding of the workings of the CAD.

6.A. Incorporating User-Defined Index Profiles

A user profile is essentially a user function of the coordinates x, y, and/or z. This section only discusses the use of user-defined profiles; for a general discussion on profiles, see Section 4.E.

6.A.1. Types of User Profiles The definition of a user profile is different for each structure type, and will be described in more detail in this section.

Coordinate Normalization In the following user profile definitions, the normalized coordinates x', y', and z' are defined as

2' xxw

= ,2' yyh

= , ' zzl

=

(1)

where x, y, and z are the actual positions along the segment, and w, h, and l are the local width, height, and length of the segment. Therefore, the normalized coordinates are by default defined to vary from -1 to 1 for x and y, and from 0 to 1 for z.

For many custom structures that require symmetry along the z axis such as circles, cylinders, spheres, tori, etc, it is useful for the z' coordinate to vary from -1 to 1 like the x' and y' coordinates. This can be done by replacing z' with (2z'-1) in the user profile. This results in a new definition of the normalized coordinate z' as z' = 2z/l.

Arbitrary 3D User Profile This is the most generic user profile function, and can be expressed as f(x', y', z'). The index profile is therefore given by the equation

( ) ( )0', ', ' ', ', 'n x y z n nf x y z= + Δ

Page 86: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

76 • Chapter 6: Advanced CAD Features RSoft CAD Environment 8.0 User Guide

(2)

where n(x', y', z') is the desired index profile, n0 is the background index, and Δn is the local index change. Both the channel and fiber 3D structure types accept this type of profile.

Arbitrary 2D User Profile This is a 2D version of (1), and can be defined in either the X-Z plane for 2D structures or in the X-Y plane for 3D structures:

( ) ( )0', ' ', 'n x y n nf x y= + Δ

( ) ( )0', ' ', 'n x z n nf x z= + Δ

(3)

Both the channel and fiber 3D structure types accept this type of profile.

Arbitrary 1D User Profile This is a 1D version of (1):

( ) ( )0' 'n x n nf x= + Δ

(4)

This profile type is used for all 2D structures as well as in the case of a 3D fiber structure type where it represents a radial profile.

1D Height Profile This profile type describes the component height as a function of x. This is defined as:

( ') ( ')H x hf x=

(5)

where h is the local segment height and H(x') is the actual component height. This profile type is used by both the rib/ridge and multilayer 3D structure types.

6.A.2. Specifying User Profiles A user profile can be defined in the User Profile Editor window which can be opened by pressing the Profiles… in a segment properties window or by via a button on the left CAD toolbar. Once a profile has been defined, it can be assigned to a particular component via the Index Profile pull down menu in the component properties window.

Page 87: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 77

Figure 6-1: The User Profile Editor where User Profiles are defined.

The profile functions found in Eqs. 2-4 can either be defined by either an expression or a data file. Once a profile has been defined, it can be viewed in the normalized coordinate system by clicking the Test button.

Expression To define a profile via a mathematical expression, set the Source Type option shown in Fig. 6-1 to Expression. When f(x', y', z') is defined via an expression, several options exist which allow for further customization of the profile.

• For a complete discussion of the format and capabilities of RSoft expressions, refer to Appendix C

• The number of points used to evaluate the expression can be set via the X', Y', and/or Z' Points options. This can be useful to resolve rapidly changing functions or periodic functions.

• By default, the variables x', y', and z' are defined only within the component. From (1), they are therefore normalized so that they vary between -1 and 1 (x and y) or between 0 and 1 (z). For the case of a 1D radial profile, they vary between 0 and 1. Outside of this domain, the function f(x', y', z') is set to 0.

In some cases, it is useful to define the profile outside of this domain. This can be set by changing the Min and/or Max values for X', Y', and/or Z'. These settings are in the normalized coordinate system defined in (1).

• In some cases, a design calls for an arbitrary 2D profile function f(x', y') which is only a function of x' only (or y' only ). Simply entering the function with a dependence on only one variable may not result in the right profile. In this case, the function can be entered in the CAD interface in the form

( ', ') ( ') 0* 'f x y g x y= +

(6)

in order to remedy the problem.

• Finally, it is recommended that the function f(x', y', z') be normalized to vary between 0 and 1 when x' and y' vary between -1 and 1 and z' between 0 and 1. This additional restriction will ensure that the maximum value of the index difference in the profile will correspond to the local Index Difference of the component. While not required, this can simplify the definition of a profile.

Page 88: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

78 • Chapter 6: Advanced CAD Features RSoft CAD Environment 8.0 User Guide

Data File To define a profile via a data file, set the Source Type option shown in Fig. 6-1 to Data File.

For a discussion of data file formats, please see Appendix B.

When a data file is used to define the function f(x', y', z'), the variables x', y', and z' are given by (1) and x, y, and z are defined over the range given in the data file.

It is often useful to remove the normalizations in (1) so that that data is not normalized. This is achieved by setting the component height and width equal to 2 in order to remove the normalizations found in (1), and set Δn =1 so that (2) reduces to

0( ', ', ') ( , , )n x y z n f x y z= +

(7)

Because it is usually not possible to set n0 , the data contained in the file should be altered so that the values are less than their actual amount by n0. For more information about generating a file for use as an index profile, please see the example in the next section.

Note that the X, Y, and Z Points options in the User Profile window are ignored for user profiled defined via data files. The Min/Max values, however, can be used.

6.A.3. Example User Profile As an example, consider the parabolic index profile given by

2 ' 11 '

( ')' 10

xxf x

x⎧ ≤−⎪= ⎨ >⎪⎩

Using an Expression To define this profile via an expression, simply enter the following formula in the appropriate field of the dialog:

1 - x^2

Note that the variable name x in this expression represents the normalized variable x' which ranges from -1 to +1 over the width of the segment. The domain of the profile can be changed via the X Min/Max options shown in Fig 6-1. The range [-1,1] still maps to the width of the segment, however. Also note that outside the domain of definition the function is set to zero.

Using a Data File To define the above profile via a data file, first create a text file in the standard 2D output file format for real data, as described in Appendix B.

The following data file defines this profile on a coarse grid containing only 11 points: /rn,a,b/nx0/st0/ls1

11 -1 1 0 OUTPUT_REAL

0.00

0.36

0.64

0.84

0.96

Page 89: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 79

1.00

0.96

0.84

0.64

0.36

0.00

During a simulation, the CAD will interpolate between the points in the data file if necessary. This example is illustrated in the example file <rsoft_dir>\examples\BeamPROP\userprof.ind.

More information about the file format for user profile data files can be found in Appendix B.

6.B. Incorporating User-Defined Tapers A taper is function of z that allows a segment’s properties to vary along the length of the segment. This section only discusses the use of user-defined tapers; for a general discussion on tapers, see Section 4.F.

6.B.1. Types of User Tapers A taper function f( z') is defined as

( ) ( ) ( )0 1 0 'a z a a a f z= + −

(8)

where a(z') represents the segment parameter to be tapered, a0 and a1 are the parameter values at the starting and ending vertex, f( z') is a taper function, and z' is a normalized coordinate along z defined as:

01

0'zzzz

z−−

=

(9)

where x0 and x1 are the X coordinates, and z0 and z1 are the Z coordinates, for the starting and ending vertices, respectively. This normalized coordinate therefore varies from 0 to 1 along the segment.

Taper are enabled only for segment component types. In addition, tapers can be used to vary the height of individual layers within a multilayer structure. This usage is discussed in more detail in Section 6.C.

6.B.2. Specifying a User Taper A user taper can be defined in the User Taper Editor window which can be opened by pressing the Tapers… in a segment properties window or by via a button on the left CAD toolbar. Once a taper has been defined, it can be assigned to a particular segment via the pull down menus in the segment properties dialog box.

Page 90: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

80 • Chapter 6: Advanced CAD Features RSoft CAD Environment 8.0 User Guide

Figure 6-2: The User Taper Editor where User Tapers are defined.

The taper function found in (8) can either be defined by either an expression or a data file.

Expression To define a taper via a mathematical expression, set the Source Type option shown in Fig. 6-2 to Expression.

When f( z') is defined as an expression, several options exist which allow for further customization of the taper.

• For a complete discussion of the format and capabilities of RSoft expressions, refer to Appendix C.

• The number of points used to evaluate the expression can be set via the Z' Points options. This can be useful to resolve rapidly changing functions or periodic functions.

• By default, the variable z' is defined only along the length of the segment. From (9), it is therefore normalized so that it varies between 0 and 1.

In some cases, it is useful to define the taper outside of this domain. This can be set by changing the Min and/or Max values for Z'. These settings are in the normalized coordinate system defined in (1).

• Finally, it is recommended that the function f(z') be normalized to vary between 0 and 1 when z' between 0 and 1. This additional restriction will ensure that values for the starting and ending segment parameters retrain their original meaning. While not required, this can simplify the definition of a taper.

Data File To define a taper via a data file, set the Source Type option shown in Fig. 6-2 to Data File.

When a data file is used to define the function f(z'), the variable z' is given by (9), and is defined over the range given in the data file. For more information on the use of a data file, see the example in the next section.

Grating This taper type is used to quickly define grating structures for the simulation tool GratingMOD. Its use is discussed in detail in the GratingMOD manual.

Page 91: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 81

6.B.3. An Example User Taper As an example, consider the parabolic index taper given by

2( ') 1 ' 0 ' 1f x z z= − ≤ ≤

Using an Expression To define this taper via an expression, simply enter the following formula in the appropriate field of the dialog:

1 - z^2

Using a Data File To define the above taper via a data file, first create a data file in the standard 2D output file format for real data, as described in Appendix B.

The following data file defines this taper on a coarse grid containing only 11 points: /rn,a,b/nx0/st0/ls1

11 -1 1 0 OUTPUT_REAL

0.00

0.36

0.64

0.84

0.96

1.00

0.96

0.84

0.64

0.36

0.00

Note that during a simulation, the CAD will interpolate between grid points if necessary.

6.C. Layer Table Tapers The concept of tapers can be readily applied to the multilayer 3D structure type. In addition to the taper types outlined in Section 4.F that are used to modify the segment as a whole, tapers can also be used to vary the heights and indices of individual layers within the segment along the length of that segment.

The use of a layer table taper is conceptually the same as any other taper in the CAD. First, a starting and ending layer table need to be defined that have the same number of layers. Then, a taper function is used to define how the height and index of these layers changes over the length of the segment. The height and index are tapered linearly by default, from their starting values to their ending values, along the segment.

Individual layers can be given different tapers for height and index. This is done by defining a layer taper table, and specifying the number of the layer taper in the Layer Taper field of the segment properties window. Layer tapers are defined in the layer taper editor dialog, shown in Fig. 6-3, which can be accessed via the Tapers… button in the Layer Table Editor dialog. The use of this dialog is analogous to the layer table editor, except that numeric fields are replaced by selection boxes for the tapers.

Page 92: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

82 • Chapter 6: Advanced CAD Features RSoft CAD Environment 8.0 User Guide

Figure 6-3: The layer taper editor dialog, which is used for defining tapered layer structures for a general multilayer segment.

6.D. Global Index Generation Options The CAD has several options for perturbing the index profile to achieve special effects, such as simulating a curved space, truncating the index distribution at a boundary, or incorporating imperfections into the index distribution, such as finite lithographic resolution or roughness. These are controlled through the Global Index Generation Options window which can be accessed via the Options/Index Generation... menu item. This dialog is shown in Fig. 6-4.

Figure 6-4: The Global Index Generation Options window which contains several options to perturb the index profile to achieve

special effects.

6.D.1. Simulating Curved Segments to Large Angles This feature is primarily used in the simulation tool BeamPROP, and uses a conformal index mapping technique to transform a curved segment geometry into a straight segment geometry. The Global Index Generation Options window sets this feature globally for the entire simulation domain. This feature can also be enabled locally for a segment to handle multiple bends or a series of bends and straight segments. This is done through the analogous settings in the More… section of the segment properties dialog for the individual section of the segment as discussed in Section 4.H.

Page 93: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 83

Motivation Direct simulation of curved segments to large angles is difficult, even with the Padé-based wide-angle capability available in the simulation tool BeamPROP. This is due to the fact that there are several factors in addition to the obvious paraxiality limitations that must be considered. These include the need for finer grid and step sizes as well as a large computational domain, both of which can increase the computation time significantly. There is, however, an alternate approach which is appropriate for modeling of a single bend or a series of bends (as in an s-bend for example). This technique makes use of a coordinate transformation to map a curved segment, onto a straight segment.

Implementation The CAD implements the above-mentioned technique, which is accessed via the Simulated Bend fields in the special effects dialog for the case of a single bend; multiple bends are discussed below. When the Simulated Bend input field is set to Yes, the entire problem space is transformed to effectively follow a circular arc, with a radius defined by the value in the numeric input field labeled Simulated Bend Radius. This is done by transforming the refractive index profile through multiplication by

1 xR

⎛ ⎞+⎜ ⎟⎝ ⎠

This method has been demonstrated to be accurate when w << R, where w is the width of the segment and R is the radius of curvature. These options can also be set globally through the symbol table variables simulated_bend and simulated_bend_radius.

When using this feature globally via the Global Index Generation Options window in a design file consisting of a single straight segment located at X=0, the Z axis then represents arc length. When using this feature locally for each segment, as would be done to model an s-bend, one would layout two straight segments in series, and assign the first segment a positive radius indicating a bend curving to the left, while the second segment would be assigned an equal but negative radius corresponding to curving to the right. If desired, one segment can be offset laterally from the other to improve alignment of the curved segment modes, which are generally displaced to the outside of the bend.

6.D.2. Truncating the Index Distribution at a Plane The CAD has an option which allows the index distribution to be truncated or clipped at the plane X=0. This capability is useful for simulating D-shaped fibers as would be obtained by grinding flat one side of a conventional circular fiber. This feature is accessed via the Clip Profile field in the Global Index Generation Options window, or the clip_profile variable in the symbol table. When this option is selected, the index profile of any component is clipped if it crosses the origin. For example, if the center of a fiber is located to the left of the origin, any portion of the fiber to the right of the origin will not contribute to the index profile. Similarly, if a fiber is located to the right of the origin, any portion to the left of the origin will be clipped as well. Currently this option is only enabled for Fiber geometries; however it can be enabled for other structure types based on user demand.

6.D.3. Sidewall Angle Control The sidewalls of a channel or multilayer structure can be tilted using the Sidewall Angle option in the Additional Component Properties window as discussed in Section 4.H. By default, however, the width of the component is assumed to be constant at the bottom. In certain cases, it can be useful to change this default. This can be done by setting the Sidewall Angle Ref. option in the Global Index Generation Options window. A value of 0 corresponds to the bottom and is the default, 1 corresponds to the top. Any value between 0 and 1 can be used.

6.D.4. Simulating the Effects of Finite Lithographic Resolution The CAD has the ability to simulate the effects of finite lithographic resolution by automatically rounding all component geometry to a grid, as if the circuit were drawn by filling in squares on a piece of graph paper. To enable this feature, enter the desired grid resolution in the Litho Resolution field of the Global Index Generation Options window. This

Page 94: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

84 • Chapter 6: Advanced CAD Features RSoft CAD Environment 8.0 User Guide

feature is also accessed via the litho_res variable in the symbol table. The default value of this variable is 0, corresponding to perfect lithographic resolution.

This option only affects the geometry used in the field propagation. The perturbed geometry is not used in the CAD display of the circuit, nor is it used in any of the analysis monitors, although it influences their values through the field.

This feature deals with a systematic perturbation of the index profile; random perturbations, due to processing-induced roughness for example, are discussed in the next section.

6.D.5. Simulating the Effects of Lithographic Roughness The CAD has the capability to randomly perturb a component’s sidewalls in order to simulate the effect of imperfections due to lithographic roughness. There are two parameters, Litho Roughness and Correlation Length, which control this feature. They are specified in the Global Index Generation Options window shown in Fig. 6-4. This section discusses the definition of these parameters and how the program uses them to calculate the random perturbations.

Ref: “Theory of Dielectric Optical Waveguides”, by Dietrich Marcuse, Chapter 4.6 in 2nd edition.

Theoretical Background The two parameters Litho Roughness and Correlation Length are used to describe the random perturbation produced by the CAD. To better visualize the definitions of these parameters, an autocorrelation function will be introduced. These parameters will be defined in the context of the autocorrelation function, and then related to the perturbation function.

An autocorrelation function is used to describe a stationary random process, and measures the correlation, or similarity, between a perturbation function h(z) and the same perturbation function offset a distance u in space. The autocorrelation function R(u) of a function h(z) is defined as:

∫∞

∞−

−= dzuzhzhuR )()()(

(10)

This function R(u) has its maximum value at u=0. As the value of u is increased, R(u) decreases. For large values of u, R(u) approaches zero since there is no longer any correlation between the function at the two sample points z and z+u.

Two parameters are defined to characterize the statistical variation:

• Litho Roughness )0(R=σ : Since it is assumed that h(z) averages to 0 over large distances, 2σ is the variance of h(z). The square root of the variance,σ , is also called the rms deviation.

• Correlation Length u = D: this is the length at which the correlation function R(u) has decreased to a fraction of its maximum value - usually to 1/e. It is a measure for the length over which the perturbations are correlated to each other, and is therefore the scale length of the random perturbation. Within this length, h(z) is not changing randomly.

In the context of the autocorrelation function, these two parameters hold intuitive meaning and can easily be visualized. The following autocorrelation function is used as a convenient model for many cases:

Du

euR−

= 2)( σ .

(11)

The Perturbation Functions In the RSoft CAD, a random perturbation of a component’s side walls is created in order to model lithographic roughness. To do this, both the width and position of the component are perturbed, which results in a non-symmetric perturbation. The width and position taken into account during a simulation are:

Page 95: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 85

),()()( 0 zxzxzx Δ+=

).()()( 0 zwzwzw Δ+=

(12)

The width and position are given as a function of w0 and x0, the unperturbed width and position, and associated perturbations Δx(z) and Δw(z). Both the width and position perturbations are calculated in the same manner. The program constructs the functions Δx(z) and Δw(z) such that their resulting autocorrelation functions, as defined in (9), are approximated by (10). In this way, a component with perturbed sidewalls characterized by σ and D, or the Litho Roughnessand the Correlation Length, is created.

This option only affects the geometry used during a simulation and not in the CAD window display of the circuit. Also, a current limitation of this feature is that similar component in a structure at a given z will have the same wall perturbation. This restriction can be relaxed in the future based on user demand.

Additional Comments This feature can be accessed via the variables litho_sigma and litho_corlen in the symbol table. The default value of litho_sigma is 0, corresponding to no roughness and the default value of litho_corlen is undefined. Also, this option only affects the geometry used in the field propagation. The perturbed geometry is not used in the display of the circuit, nor is it used in any of the analysis monitors, although it influences their values through the field.

This feature deals with a random perturbation of the index profile; systematic perturbations, due to finite lithographic resolution for example, are discussed in the previous section. Additionally, additional types of lithographic roughness can be created quite easily. The above formulation is nothing more than a position taper and width taper with a built-in pseudo random function. This effect can be recreated with any functions of the users choosing as described in Section 6.B, thus allowing the user additional control over the type of roughness produced.

6.E. Import/Export of other CAD formats and Generation of Mask Files The RSoft CAD has the ability to import and export files in other CAD formats. The import/export options are found under the File/Import and File/Export menu items, and their use is fairly straightfoward.

However, there are several other dialogs which contain options that control or relate to the import/export process.

First several key ideas will be discussed, and then these options will be discussed.

6.E.1. Important Information It is important to note several aspects of the import/export process:

• The fundamental target object of all mask conversions is the polygon. When a CAD file is imported into The RSoft CAD, all supported objects are converted to RSoft polygons. Similarly, when the RSoft CAD exports a CAD file, all Rsoft CAD objects are converted to polygons in the target file format. This avoids possible ambiguities since polygons have a fairly consistent interpretation among different file formats and software packages. As such, only 2D formats can be imported.

• RSoft CAD’s ability to import files is limited; not all elements or features of the supported mask file formats are implemented. For several reasons, it is not recommended that users design layouts outside the CAD, and then import them for simulation. This is especially true since special RSoft CAD features, such as the parametric design environment, will likely be absent in other tools.

Specifically, the following objects can be imported from a DXF file: LINE, SOLID, POLYLINE, LWPOLYLINE, ARC, and CIRCLE. The following objects can be imported from a GDS-II file: GDS_BOUNDARY, GDS_BOX.

Page 96: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

86 • Chapter 6: Advanced CAD Features RSoft CAD Environment 8.0 User Guide

The recommended approach is to use the RSoft CAD for defining the basic geometry, perform the simulation, and export the final design into one or more mask files. These files may be directly used for mask production, or imported into another CAD tool for further CAD work related to mask production.

The CAD file import capability should rarely be required, but is provided for special circumstances in which a simple structure needs to be input into the CAD from another tool.

6.E.2. Import/Export Settings The primary options controlling related to import/export are contained in the Import/Export tab of the CAD Preferences dialog shown in Fig. 6-5.

Details for the rest of the CAD preferences can be found in Section 6.J.

Figure 6-5: The Import/Export tab of the CAD Preferences window.

Import/Export Resolution

Sets the resolution at which CAD objects are “fractured”, meaning converted to polygons in the target CAD file. This resolution is defined such that the distance between any chord of the fractured object and the true curve is less than this resolution. This option is relevant for both import and export.

Export Mask Layers

Sets the mask layer to be exported, and is used along with the Mask Layer option in the Additional Component Properties window. See Section 4.H for details.

Page 97: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 87

When this option is set to 0, components are exported to layers that correspond to the Mask Layer for each component. When this option is not set to 0, all components with a Mask Layer of 0 will be exported to the value specified in the Export Mask Layers field.

Export Polygon Mode

This controls how the CAD exports objects that started as polygons within the CAD. The Raster option causes the CAD to break a polygon into smaller polygons so as to satisfy the 200-point GDS-II limit for polygons. The Raw option exports polygons as they are, without breaking them up.

Export Draw Mode

This option is no longer supported and should not be used. Its setting should be left at its default value of Polygons, and is only present for compatibility.

6.F. Hierarchy Hierarchy allows the creation of nested design files. The user can include references to a design file (.ind) or circuit (the child) within another design file (the parent). This nesting can be multiple levels deep, and variables in the children can be controlled from the parent. This allows for the realization of complicated geometries.

6.F.1. Why use Hierarchy? Hierarchy allows users to create arbitrarily complicated design files. As an example, consider a honeycomb lattice. This type of structure is shown in Fig. 6-6.

Figure 6-6: A honeycomb lattice.

A honeycomb lattice could be formed by first creating a standard hexagonal lattice, and then deleting the appropriate lattice points. However, this is not the optimal way to define this type of structure. A better way to define this type of structure is to first define a primitive unit cell for this structure. The primitive honeycomb unit cell looks is defined as shown in Fig. 6-7.

Page 98: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

88 • Chapter 6: Advanced CAD Features RSoft CAD Environment 8.0 User Guide

Figure 6-7: The honeycomb primitive unit cell shown in the RSoft CAD.

This unit cell, once created in the CAD and saved, can be repeated as a child element in a parent file using hierarchy as shown in Fig. 6-8. The resulting structure has the same index profile as the lattice in Fig. 6-6.

Figure 6-8: A honeycomb lattice created by repeating the primitive unit cell shown in Fig. 6-7 using hierarchy. The green blocks show the children elements in the parent circuit.

This is just one example of how hierarchy can be used to create complicated structures from simple elements. While hierarchy is especially useful in creating crystal lattices such as photonic band-gap (PBG) materials, it can also be used for other design tasks as well. The next section will discuss the details of using hierarchy within the RSoft CAD.

6.F.2. Adding a Circuit Reference To add a child circuit to a parent circuit, use the Circuit Reference button in the left toolbar of the CAD.

Page 99: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 89

Figure 6-9: The Circuit Reference properties dialog box.

The Circuit Reference dialog, shown in Fig. 6-9, sets the child circuit design file, the position and orientation of the circuit reference, as well as the mechanism for sharing symbol table values between the nested circuits.

Choosing the Child Circuit Design File Child circuits are drawn in the parent circuit with a dark cyan rectangle covering the bounding box, and then the child circuit on top. Elements in the child circuit are not editable, but double clicking on the child circuit will open its *.ind file.

Index File (*.ind)

This field specifies the *.ind file for the child. It can either be entered directly into the field, or chosen via the Browse… button.

Reload File

This button forces the child circuit to be reread in case it has changed on disk.

Choosing the Circuit Reference Position & Orientation The right hand side of the dialog sets the Starting Vertex. The starting vertex is defined as the position of the child circuit’s origin (X=Y=Z=0) in the parent circuit. The specification of the starting vertex is similar to the standard component dialog, and is not repeated here.

Rotation Angle

This field sets the angle of the child circuit in the XZ plane of the parent circuit, and is measured from the positive Z axis. The units of this field is in degrees.

Controlling Variables in Child File From Parent File Hierarchy allows for variables to be inherited by the child circuit from the parent circuit. In order to do this, the Circuit Reference dialog has two symbol tables: a Local Symbol table and a Global Symbol table.

Global Symbols…

This button opens the symbol table in the parent file, and behaves as expected. This is the same symbol table that is accessed via the Edit Symbols button on the left menu in the CAD interface.

Page 100: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

90 • Chapter 6: Advanced CAD Features RSoft CAD Environment 8.0 User Guide

Local Symbols…

This button pulls up an special type of symbol table, in which the variables on the left will override values in the child, while the expressions on the right are evaluated in the context of the parent’s symbol table. By default, expressions such as "width = width" are defined, which indicate that the child’s "width" variable (on the left) is assigned the value of the parent’s "width" variable (on the right). This allows the variables in the parent circuit to be used to control variables in the child circuit.

As an example, consider the symbol table shown in Fig. 6-10.

Figure 6-10: Local symbol table showing assignment of the values of parent circuit’s variables (left column) to children circuit’s

variables (right column).

6.G. Defining Pathways Pathways serve two main purposes within BeamPROP And FullWAVE:

• To serve as paths through the index structure for BeamPROP monitors.

• To specify which component to launch the incident field into.

This section will cover the creation of a pathway in the CAD. Note that the use of BeamPROP monitors is covered in the BeamPROP manual, and the definition of a launch field is discussed in the BeamPROP and the FullWAVE manuals.

6.G.1. Creating a Pathway To define an optical pathway, click on the Edit Pathways icon in the left toolbar. The program switches to Pathway Edit Mode, as shown in Fig. 6- 11. The circuit display remains the same, but the toolbar has changed and the status line indicates the new mode.

Page 101: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 91

Figure 6-11: Edit Pathway Mode, which is used to define optical pathways for analysis. This example shows a directional coupler

with the left pathway selected.

To define a new pathway, click on the New button in the toolbar and the pathway count indicated at the top of the toolbar increments by one. Then select the desired components using the left mouse button; note each selected component is highlighted in green. To deselect a component, simply click on it a second time. To select multiple components in one operation, drag a selection box around the components.

To define additional pathways, simply click on New and repeat the above procedure. When all desired pathways have been defined, click on OK to accept the definitions and return to the main layout window mode.

Note that the Monitors… button allows the user to define BeamPROP monitors, and its use is discussed in the BeamPROP manual.

At any time the user can add new pathways by entering Pathway Edit Mode and performing the above steps. To modify or delete existing pathway definitions, click on the << and >> buttons to select the desired pathway, and select or deselect components to modify the definition, or click on the Delete button to delete the pathway definition entirely.

Page 102: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

92 • Chapter 6: Advanced CAD Features RSoft CAD Environment 8.0 User Guide

6.G.2. Using Pathways As stated before, pathways have two uses:

For BeamPROP monitors Each pathway is essentially a set of components grouped together, usually so that they form a continuous path from one part of the device to another. For example, a directional coupler may consist of two s-bend input arms, two parallel straight sections, and two s-bend output arms. In this case the left set of components forms one natural optical pathway, while the right set forms another.

Note that it is possible to define pathways which include inactive components. An inactive component as a Profile Type set to Inactive , as is discussed in Section 4.E. This can be useful if it is necessary to monitor the power in a region which does not contain or is otherwise different from a true component region.

The use of BeamPROP monitors is discussed in the BeamPROP manual.

For the Launch Field The use of a pathway with a launch field is discussed in both the BeamPROP and the FullWAVE manuals

6.H Importing Components or Symbols from Another Design File It may be necessary or desirable to import components or symbols from one design file (*.ind file) into another. In this section we briefly note several CAD features for assisting with each of these tasks.

3.H.1. Importing Components A component or selection of components may be imported from an existing design file into the current design file by first opening the existing *.ind file, selecting the desired components, and copying them to the clipboard. Then switch back to the current layout via the Window menu, and paste the components into the current layout.

If the selection contains formulas, the variables used in those formulas will need to be added to the symbol table of the current layout. For this feature to be useful, the layout of the device in the existing file must be well-designed to make use of references and other features to allow the device to be smoothly connected to the current layout without minimal additional editing.

3.H.2. Importing Symbols Importing symbols from one circuit to another can be accomplished via the Options/Import-Symbols… menu item. This option will copy all of the symbols in the selected *.ind file into the current layout. Symbols with the same name will be overwritten by symbols from the imported file.

6.I. Warning Options In certain cases, the CAD and simulation tools notify the user. These warnings can be disabled in a design file through the Warning Preferences window.

Page 103: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 93

Figure 6-12: The Warning Preference window.

These warnings should only be disabled if needed.

6.J. CAD Preferences The CAD Preferences window controls several options within the CAD interface, and can be opened via the Options/Preferences menu item.

6.J.1. Display Preferences These preferences control how the structure is displayed in the CAD window.

Draw Interior and Component Color

Indicates if the interior of components should be displayed, and if so, in what color.

Draw Edge and Edge Color

Indicates if the edges of components should be displayed, and if so, in what color.

Draw Center Line and Center Color

Indicates if the center line of components should be displayed, and if so, in what color.

Inactive Color

Sets the color of inactive components.

Pathway Color

Sets the color of pathways.

Rubberband Color

Sets the color used for rubberbanding.

Show Simulation Domain

Enables the display of the simulation domain.

Page 104: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

94 • Chapter 6: Advanced CAD Features RSoft CAD Environment 8.0 User Guide

Show Launch Fields

Enables display of the launch field.

Show Direction Indicators

Enables display of direction indicators for both launch fields and FullWAVE time monitors.

Multi-Pane View

Enables Multi-Pane mode and sets the initial state. See Section 3.E.2 for details on Multi-Pane mode.

Show 3D Pane

Enables the use of the 3D Pane when in Multi-Pane mode.

6.J.2. Editing Preferences These preferences control how components can be edited.

Attach on Edit

This options indicates that the snap-to feature should be enabled for editing waveguides in addition to the creation of new waveguides.

Attach Tolerance

This field sets the distance, in pixels, for which the snap-to feature will function.

Select Tolerance

This field sets the distance, in pixels, within which components can be selected.

Paste Offset

This field sets an offset which is used when objects are copied and then pasted into a design. This can be useful to avoid losing segments when they lie right on top of each other.

Automatically Regrid after Zoom/Full

Sets whether the grid should be recomputed whenever a Zoom/Full operation is performed.

Warn when automatically resizing grid

Sets whether the CAD should warn whenever resizing the grid.

Zoom/Full Border

Sets the percentage of ‘background’ that is placed around the structure whenever a Zoom/Full operation is performed. A value between 0 and 1 should be used.

Zoom Factor (>1.0)

Sets the zoom factor used when a Zoom/In operation is performed. A value greater than 1 should be used. The percentage for a Zoom/Out operation is the inverse of this value.

6.J.3. Units Preferences These preferences control how quantities are measured within the CAD.

Index Input Mode

Page 105: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 6: Advanced CAD Features • 95

Indicates the method that refractive indices are defined in the CAD. By default, indices are defined via index differences with the background index; however in some cases it can be useful to define them absolutely.

When this option is changed in an existing file, the CAD will attempt to convert all existing components to the new mode. It is important to realize that internally, the CAD uses the index difference method, and so it is the preferred method.

6.J.4. Simulation Preferences These preferences control various for the simulation tools.

Simulation Program Filename

Sets the executable names for the simulation engines which share the RSoft CAD interface.

Static Color Shades (BeamPROP and FullWAVE)

Sets the default static color shades to be used. This setting can be overridden in a design file.

Dynamic Color Shades (BeamPROP and FullWAVE)

Sets the default static color shades to be used.

Color Scale (BeamPROP and FullWAVE)

Sets the default color scale to be used. This setting can be overridden in a design file.

Slice Output (BeamPROP)

Indicates whether or not BeamPROP’s Slice Output should be enabled by default. See the BeamPROP manual for more details about Slice Output.

Use Single Precision (FullWAVE)

This checkbox is valid only for FullWAVE owners and indicates that single precision data types should be used for simulation. More information on this can be found in the FullWAVE documentation.

6.J.5. Limit Preferences These preferences set the limits in the CAD for various items. It is not recommended to increase these values unless needed.

6.J.6. Import/Export Preferences These options are discussed in Section 6.E.

Page 106: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program
Page 107: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 7: Automatic Layout Generation Utilities • 97

Chapter 7: Automatic Layout Generation Utilities

Some designs call for complicated structures which can be very tedious to manually create. For this reason, the CAD includes automatic layout utilities for certain common problems. These can be accessed via the Utility menu item:

• Array Layout Generator

This utility is used to create periodic arrays of segments and will be described in detail in this chapter.

• WDM Router Layout tool

This utility is used to create layouts appropriate for simulation and mask creation for arrayed-waveguide-grating routers (or AWG’s). This utility is described in detail in the AWG Utility manual.

• GratingMOD Grating Layout tool

This utility is used create grating layouts to be used with RSoft’s grating simulation tool GratingMOD and is described in detail in the GratingMOD manual

The rest of this chapter will describe the usage of the Array Layout utility.

7.A. Motivation The RSoft CAD system is very powerful and contains features such as the ability to use expressions to define aspects of the geometry and component references to define logical relationships between components. Once a properly designed layout is complete, these features make it very easy to vary the structure and perform design studies.

The Array Layout utility allows the user to quickly create structured composed of periodic arrays. It can be opened via the Utility menu item in the CAD window (Fig. 7-1). The Array Layout Utility can be divided into three sections: Unit cell Parameters, Lattice Parameters, and Creation Options.

These three sections are shown in Fig. 7-1 and are described in the next sections.

Page 108: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

98 • Chapter 7: Automatic Layout Generation Utilities RSoft CAD Environment 8.0 User Guide

Figure 7-1: The Array Layout Generator interface.

7.B. Lattice Parameters The lattice parameters define the type of periodic lattice to create from the defined unit cell. This section will cover the lattice parameters; the next the unit cell parameters.

Dimensions

This sets the dimensions of the lattice to be created. Possible choices are 1D, 2D (XY), 2D (XZ), and 3D. Each dimension has different possible lattice types which are described below.

Do not confuse this setting with the dimension of the simulation to be performed. This only defines the periodicity to use. For example, a PBG slab is periodic in two dimensions, but is finite in the third and thus requires a 3D simulation.

Lattice Size

Page 109: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 7: Automatic Layout Generation Utilities • 99

The lattice size controls the size of the lattice produced. The definition of L, M, and/or N will change on the dimension and lattice type chosen, and is shown in the GUI. For a general cubic case, L corresponds to the number of elements along the X axis, M along the Y axis, and N along the Z axis. However, other lattice types have different definitions.

7.A.1. 1D Lattice Types The available 1D lattices are:

• 1D X, 1D Y, 1D Z

These options create a 1D lattice along the specified coordinate. One such lattice with a rectangular unit cell is show here:

The Lattice Size settings correspond to the number of unit cells in the a direction.

7.B.2. 2D Lattice (XZ and XY) Types The available 2D lattices are:

Diagrams of the lattice types shown here use a simple circular element for a unit cell. See the next section for other options.

• Cubic

This options creates a 2D cubic lattice such as:

The Lattice Size settings correspond to the number of unit cells in the a and b directions.

• Hexagonal

This option creates a 2D hexagonal lattice such as:

Note that the lattice may be rotated using the symbol PhiPattern to achieve the other typical hexagonal lattice orientation. The Lattice Size settings correspond to the number of unit cells in the a and b directions.

• Cubic Rings

Page 110: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

100 • Chapter 7: Automatic Layout Generation Utilities RSoft CAD Environment 8.0 User Guide

This option creates a 2D lattice formed by cubic rings such as:

The Lattice Size settings correspond to the number of outside and inside rings. The example lattice shown above has 2 outside rings and 2 inside rings.

• Hexagonal Rings

This option creates a 2D lattice formed by hexagonal lattice such as:

The Lattice Size settings correspond to the number of outside and inside rings. The example lattice shown above has 3 outside rings and 1 inside ring.

7.B.3. 3D Lattice Types The available 3D lattices are:

Diagrams of the lattice types shown here use a simple spherical element for a unit cell. See the next section for other options.

• Cubic

This option creates a 3D cubic lattice such as:

The Lattice Size settings correspond to the number of unit cells in the a, b, and c directions.

• FCC

This option creates a 3D FCC (face centered cubic) lattice. One such lattice of spheres is shown here:

Page 111: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 7: Automatic Layout Generation Utilities • 101

The Lattice Size settings correspond to the number of unit cells in the a, b, and c directions.

• BCC

This option creates a 3D BCC (body centered cubic) lattice. One such lattice of spheres is shown here:

The Lattice Size settings correspond to the number of unit cells in the a, b, and c directions.

• Diamond

This option creates a 3D diamond lattice. One such lattice of spheres is shown here:

The Lattice Size settings correspond to the number of unit cells in the a, b, and c directions.

• Diamond Logs

This option creates a 3D diamond lattice with connecting logs. One such lattice of spheres is shown here:

The Lattice Size settings correspond to the number of unit cells in the a, b, and c directions.

• Woodpile

Page 112: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

102 • Chapter 7: Automatic Layout Generation Utilities RSoft CAD Environment 8.0 User Guide

This option creates a 3D woodpile lattice. One such lattice of rectangular rods is shown here:

The Lattice Size settings correspond to the number of unit cells in the a, b, and c directions.

7.C. Unit Cell Parameters This section of the Array Layout Utility window allows the user to define the contents of the unit cell to be periodically repeated. The contents of the unit cell are set by the pulldown menu labeled Contents. The options are:

7.C.1. 1D Unit Cells The available 1D unit cells are

• Sine Wave

This option creates a 1D unit cell composed of a sine wave such as is shown here:

The *.ind file created has one segment with either a user profile or taper depending on whether the variation is along X, Y, or Z.

• Square Wave

This option creates a 1D unit cell composed of a square wave such as is shown here:

The *.ind file created has one segment with either a user profile or taper depending on whether the variable is along X, Y, or Z.

• Sawtooth Wave

Page 113: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 7: Automatic Layout Generation Utilities • 103

This option creates a 1D unit cell composed of a square wave such as is shown here:

The *.ind file created has one segment with either a user profile or taper depending on whether the variable is along X, Y, or Z.

• Triangle Wave

This option creates a 1D unit cell composed of a square wave such as is shown here:

The *.ind file created has one segment with either a user profile or taper depending on whether the variable is along X, Y, or Z.

7.C.2. 2D Unit Cells (XZ and XY) The available 2D lattices are:

Note that all options are not available for all lattice dimensions.

• Square

This option creates a 2D unit cell composed of a singular square object as shown here:

The segments used in the *.ind file to create the lattice are standard waveguide segments for both XZ and XY layouts, and can be easily modified to produce rectangular segments if necessary.

• Hexagon

This option creates a 2D unit cell composed of a singular hexagonal object as shown here:

Page 114: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

104 • Chapter 7: Automatic Layout Generation Utilities RSoft CAD Environment 8.0 User Guide

The segments used in the *.ind file to create the lattice are polygons. This option is only available for XZ layouts.

• Circle

This option creates a 2D unit cell composed of a single circular object as shown here:

The segments used in the *.ind file to create the lattice are lenses for XZ layouts and 3D fibers for XY layouts.

• Ellipse

This option creates a 2D unit cell composed of a single elliptical object as shown here:

The segments used in the *.ind file to create the lattice are segments with width tapers for XZ layouts and 3D fiber objects for XY layouts.

• .ind file

This options uses the hierarchical options described in the next section to periodically repeat a ‘child’ design file to create a custom lattice in a ‘parent’ file. The contents of this unit cell are defined by whatever is in the *.ind file used. The *.ind file to be used is specified in the field .ind file.

7.C.3. 3D Unit Cells The available 3D lattices are:

• Cube

This option creates a 3D unit cell composed of a single cubic object as shown here:

The segments used in the *.ind file to create the lattice are standard waveguide segments, and can be easily modified to produce rectangular segments if necessary.

Page 115: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 7: Automatic Layout Generation Utilities • 105

• Hexagonal Prism

This option creates a 3D unit cell composed of a single hexagonal prism object as shown here:

The segments used in the *.ind file to create the lattice are polygon segments.

• Sphere

This option creates a 3D unit cell composed of a single spherical object as shown here:

The segments used in the *.ind file to create the lattice are 3D lens objects.

• Cylinder

This option creates a 3D unit cell composed of a single cylindrical object as shown here:

The segments used in the *.ind file to create the lattice are 3D lens objects.

• .ind file

This options uses the hierarchical options described in the next section to periodically repeat a ‘child’ design file to create a custom lattice in a ‘parent’ file. The contents of this unit cell are defined by whatever is in the *.ind file used. The *.ind file to be used is specified in the field .ind file.

• Rectangular Rods

This option applies to the Woodpile Lattice Type only and creates a woodpile lattice composed of rectangular rods. The segments used in the *.ind file are channel segments.

• Elliptical Rods

This option applies to the Woodpile Lattice Type only and creates a woodpile lattice composed of elliptical rods. The segments used in the *.ind file are fiber segments.

Page 116: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

106 • Chapter 7: Automatic Layout Generation Utilities RSoft CAD Environment 8.0 User Guide

7.C.4. Additional Options These options further control the definition of the unit cell.

Randomness

To study the effect of a non-ideal crystal it can be useful to incorporate perturbed lattice parameters for each point in the lattice. The parameters that are checked will be defined in the symbol table using the ranseq function. A seed variable is also created to allow the user to control the set of random numbers used.

The perturbation is defined as <parameter>+sig_<parameter>*ranseq(seed_<parameter>,$id)

where <parameter> is the parameter to be varied. For example, if a random Refractive Index, or delta, is used, the Index Difference of each object in the array will have an Index Difference defined as

delta+sig_delta*ranseq(seed_delta,$id)

where the following table explains the parts of the equation: Parameter Description delta

The standard Index Difference defined in the Global Settings dialog. sig_delta

This is the “amplitude” of the randomness, and controls the min/max value for the perturbation.

ranseq This function returns a random number based on the two seed variables described below. The value it returns lies in the range (-0.5,0.5). See Appendix C for more details on this function.

seed_delta The first seed variable is the same for each segment. Changing this variable in the symbol table will choose a different “random” set of perturbations for the design.

$id The second seed variable is set to a value of $id, which is a special notation for the segment number. This allows each segment to have a different random number for a given value of the seed_delta parameter.

Special Effects

These fields allow the user to add additional variables to the design file to control the Chi3 non-linearity and dispersion options (FullWAVE only). This will save the user from having to manually add this type of control after the file has been created.

7.D. Creation Options The final section of the Array Layout Generator dialog allows the user to set the name of the output file and to save lattice creation settings.

Output Prefix

The output prefix sets the name of the *.ind file to be created and is required.

Keep these Settings Next Time

This option saves the settings in the Array Layout Generator to be used the next time a lattice is created.

Page 117: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 8: Advanced Material Properties • 107

Chapter 8: Advanced Material Properties

The previous chapters assumed that the index distribution was linear, non-dispersive, and isotropic. However, these advanced material properties, such as anisotropy, non-linearity, and dispersion can be defined in the RSoft CAD. This chapter will discuss how to define these material properties and assign them to specific objects.

Since the CAD is shared by several simulation tools, all possible material properties will not have meaning for all simulation tools.

The first section gives a brief overview of the material types supported, the next few sections document the Material Editor, and the final section describes the use of anisotropy.

8.A. Overview of Material Types The RSoft CAD allows users to create advanced material types. This section will outline the types of materials that are supported for each simulation program.

8.A.1. Dispersion Overview Material dispersion, or the change of refractive index as a function of wavelength, is not automatically included by any of RSoft’s simulation tools. The user needs to define how the refractive index varies with wavelength.

For some simulation tools, a parameter scan over wavelength might be required to study dispersive effects.

There are several ways to define dispersive materials in the CAD.

• Single Value

This method simply sets a component’s complex refractive index to a single value via the Index Difference and Index (imag part) fields in the component’s properties window. This method is valid for single simulations at one wavelength.

• Expression

This method uses the symbol table to define the complex refractive index as a function of the simulation wavelength. This method is valid for single simulations at one wavelength as well as scans over wavelength. As an example, the real part of the refractive index could be defined by the expression:

delta = 1+(B*lambda^2)/(lambda^2-C)

where B and C are coefficients also defined in the symbol table and lambda is the simulation wavelength.

Page 118: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

108 • Chapter 8: Advanced Material Properties RSoft CAD Environment 8.0 User Guide

• Data File

This method uses the userdata(), userreal(), and/or userimag() symbol table functions to access a data file. This method is valid for single simulations at one wavelength as well as scans over wavelength. As an example, the real refractive index of tungsten could be defined:

delta = userdata(“tungsten_real.dat”, lambda)

where the file tungsten.dat has two columns, the first with wavelength information and the second with index data, and lambda is the simulation wavelength.

• Material Editor

This method uses the Material Editor to define a comprehensive dispersive relation for a material. This method is valid for single simulations at one wavelength, scans over wavelength, and for FullWAVE simulations where multiple wavelengths are present in a single simulation, such as is the case for a pulsed excitation. The next section describes this material model in more detail.

8.A.2. Dispersion/Non-linearity via the Material Editor Dispersion can be defined several different ways; see the previous section for a brief overview.

The Material Editor allows users to create materials with the following definition for both the relative permittivity (ε) and permeability (μ):

0ε= +D E P

0μ= +B H M

where

( ) ( ) 22 2 30ε χ ω χ χ ω⎡ ⎤= + +⎣ ⎦P E E E E

( ) ( ) 22 2 30 m m mμ χ ω χ χ ω⎡ ⎤= + +⎣ ⎦M H H H H

The equations and accompanying descriptions contained in this section are written in terms of epsilon; the mu case, while not explicitly shown, is directly analogous.

The possible effects are:

• Dispersion via ( )χ ω

This allows for user-defined frequency dependent dielectric and magnetic materials.

• Second-order non-linearities via 2χ

This allows for user-defined second-order non-linear dielectric and magnetic materials.

• Dispersive third-order non-linearities via ( )3χ ω

This allows for user-defined frequency dependent third-order dielectric and magnetic materials. This effect can be saturable.

See Section 8.B for details.

Page 119: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 8: Advanced Material Properties • 109

8.A.3. Anisotropy Overview Anisotropy in the CAD via the Index Tensor Table and is defined as:

( )xx xy xz

yx yy yz

zx zy zz

ε ε εω ε ε ε

ε ε ε

⎛ ⎞⎜ ⎟

= ⎜ ⎟⎜ ⎟⎝ ⎠

ε

where each tensor term can be a complex-valued number. See Section 8.F for details.

8.A.4. What Material Types Do Each Product Support? Since each simulation tool is based on different algorithms, each tool supports a different subset of material types:

Dispersion Non-linearity Anisotropy

BeamPROP Computes epsilon at the simulation wavelength.

Recognizes third-order non-linearity for epsilon.

Does not recognize the xz or yz off diagonal terms, and requires a full-vectorial simulation.

FullWAVE Computes epsilon and mu of any dispersive materials.

Recognizes both second- and third-order non-linearity for epsilon and mu.

Supports full anisotropy.

BandSOLVE When using the PWE sim engine, see the BandSOLVE manual. When using the FDTD sim engine, the same options as FullWAVE are supported.

Not supported at this time. Supports full anisotropy, but requires that the index distribution must be Hermitian.

DiffractMOD Computes epsilon at the simulation wavelength.

Not supported at this time. Not supported at this time.

GratingMOD Computes epsilon at the simulation wavelength.

Not supported at this time. Not supported at this time.

FemSIM Computes epsilon at the simulation wavelength.

Not supported at this time. Not supported at this time.

Additional Notes: • When using the Material Editor with FullWAVE, any wavelength present in the simulation will see the

correct material parameters during the simulation.

• The Dispersion/Nonlinearity option in the FullWAVE Simulation Parameters window must be enabled to use the Material Editor and the Use Magnetic Materials option in the FDTD Advanced Parameters window must be enabled to use magnetic materials in FullWAVE.

• When using FullWAVE, the anisotropic refractive index tensors are converted element by element into epsilon, and so index data that is in units of epsilon should be entered as the square root of epsilon for each tensor element.

• To use anisotropic materials in a simulation, the Use Anisotropic Materials option must be enabled in each simulation tool’s Advanced Parameters window.

Page 120: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

110 • Chapter 8: Advanced Material Properties RSoft CAD Environment 8.0 User Guide

8.B. Using the Material Editor New materials are created in the Material Editor dialog which can be accessed via a button in the left toolbar of the CAD, or through a component properties window by choosing New Material under Material Properties as shown in Fig. 8-1

Figure 8-1: The portion of the Segment Properties dialog box where the Material Properties are set

The Material Editor dialog is shown in Fig. 8-2.

Figure 8-2: The Material Editor dialog.

Creating & Modifying Materials Linear and non-linear epsilon and mu can be defined as a function of frequency by a sum over a number of resonances. To create a new material, click the New Material button. Next, enter a Material Name which describes the material, then enter the desired material parameters for Epsilon or Mu. The definition of these parameters is described in the next sections.

Page 121: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 8: Advanced Material Properties • 111

The << and >> buttons navigate through existing materials, the Delete Material button deletes a material, and the Symbols… button opens the Symbol Table.

Testing Material Definition It can be benificial to test a material definition to ensure that it is correct. This can easily be done via the Display button which opens a plot of the real and imaginary values of epsilon or mu. Several options which control the format of the output can be set in the Material Display Options window which can be opened by clicking the Display Opts… button. These options are:

Display Axes

Sets the axes used to display the material data.

Measurement Data

Allows a data file to be plotted with the computed material data. This is useful when trying to match a particular data file. The data file must be formatted exactly the same as the material output in order to make a direct comparison. This feature is for comparison purposes only.

Output Prefix

Sets the name of the output file used.

Assigning a Material to a Component To assign a material to a component , simply set the Material Properties option under the Starting Vertex to the desired material.

8.C. Defining Linear Epsilon & Mu with the Material Editor Linear epsilon and mu are represented as a function of frequency by a sum over an arbitrary number and type of resonances, including Debye, Drude, and Lorentz models.

As stated before, the equations and accompanying descriptions contained in this section are written in terms of epsilon; the mu case, while not explicitly shown, is directly analogous.

The dispersion characteristics are represented mathematically as a linear sum of multiple resonance terms:

( ) ( )kk

ε ω ε ε ω∞= + ∑

where ε∞ is the value of epsilon in the limit of infinite frequency and ( )kε ω are dispersion terms. Each dispersion term is defined as:

( ) ( )2k

kk k ka b i c

εε ωω ω

Δ=

− − +

where kεΔ is the strength of each resonance, and ak, bk, ck are fitting coefficients. The choice of these parameters sets the type of resonance used.

Page 122: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

112 • Chapter 8: Advanced Material Properties RSoft CAD Environment 8.0 User Guide

Fitting Standard Linear Dispersive Models Standard linear dispersion models, such as Lorentz, Drude, and Debye models can be used by choosing the fitting parameters ak, bk, ck as follows:

ak bk ck

Lorentz 1 free free Drude 1 free 0

Debye 0 free 1

If ak, bk, ck are all set to 0, the dispersive terms are ignored.

The free parameters above, plus the coefficient kεΔ , can be used to match any single dispersion resonance. Multiple resonances can be combined to realize complicated dispersion relations. The following explains this fitting process in more detail for each standard resonance type:

Fitting a Lorentzian Resonance The Lorentz resonance model can be expressed as:

( )2

2 22k p

kk k

Aiω

ε ωω ωδ ω

=− − +

where Ak is the resonator strength, δk is the damping factor, and wk is the resonant frequency. The following chart outlines the appropriate choice of fitting parameters to realize a Lorentz resonance:

Parameter Value

kεΔ Awp2

ak 1

bk 2δk

ck wk2

Fitting a Drude Resonance The Drude resonance model can be expressed as:

( )2

22p

kci

ωε ω

ων ω=

where wp is the plasma frequency and vc is the collision frequency. The following chart outlines the appropriate fitting parameters:

Parameter Value

kεΔ wp2

ak 1

bk 2vc

Page 123: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 8: Advanced Material Properties • 113

ck 0

Fitting a Debye Resonance The Debye resonance model can be expressed as:

( )1

kk

k

Ai t

ε ωω

=+

where Ak is the resonator strength and tk is the Debye relaxation time constant. The following chart outlines the appropriate fitting parameters:

Parameter Value

kεΔ Ak

ak 0

bk tk

ck 1

Using Sellmeier Coefficients Many reference sources include dispersion data in terms of Sellmeier coefficients. The conversion of these Sellmeier coefficients into the RSoft dispersion format is quite straightforward. Sellmeier coefficients are generally expressed in the wavelength domain as:

( )2

2 2k

kk k Sk

Ai

λε λ ελ λ λδ∞= +

− +∑

where λk is the resonant wavelength, Ak is the resonator strength, and δSk is the Sellmeier damping factor. This form most closely resembles multiple Lorentzian resonances, and therefore the appropriate fitting coefficients for each resonance should be:

Parameter Value

kεΔ 2

2k

k

A πλ

⎛ ⎞⎜ ⎟⎝ ⎠

ak 1

bk 22

Skk

π δλ

ck 2

2

k

πλ

⎛ ⎞⎜ ⎟⎝ ⎠

where c is the speed of light in vacuum.

Page 124: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

114 • Chapter 8: Advanced Material Properties RSoft CAD Environment 8.0 User Guide

8.D. Defining Non-Linear Epsilon and Mu with the Material Editor Both second- and third-order non-lineart can be defined in the Material Editor.

8.D.1. Second Order Non-Linearity Frequency independent second order non-linearity is included through 2χ .

As stated before, the equations and accompanying descriptions contained in this section are written in terms of epsilon; the mu case, while not explicitly shown, is directly analogous.

The second order non-linearity is defined through the second order susceptibility 2χ . This coefficient contributes to the polarization vector as follows:

2 20ε χ=P E

Please see Section 8.E for important comments on the units of this parameter.

8.D.2 Third Order Non-Linearity The third order non-linearity is defined through a frequency-dependent third order susceptibility represented by a sum over an arbitrary number and type of resonances, as well as a saturation coefficient.

As stated before, the equations and accompanying descriptions contained in this section are written in terms of epsilon; the mu case, while not explicitly shown, is directly analogous.

The dispersion characteristics can be represented mathematically as a linear sum of multiple resonance terms multiplied by a saturation term:

( ) ( )3

23 3

21NL kk satc

ε ω χ χ ω∞

⎡ ⎤⎡ ⎤= + ⎢ ⎥⎢ ⎥ +⎣ ⎦ ⎣ ⎦

∑ EE

where 3χ∞ is the value of 3χ in the limit of infinite frequency and ( )3kχ ω are dispersion terms. Each dispersion term

is defined according to the following:

( )( ) ( )

33

2k

kk k ka i b i c

χχ ωω ω

Δ=

− +

where 3kχΔ is the strength of each resonance, and ak, bk, ck are fitting coefficients. The choice of these parameters sets

the type of resonance used.

This coefficient contributes to the polarization vector as follows:

( ) 230ε χ ω=P E E

Page 125: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 8: Advanced Material Properties • 115

Fitting Standard Non-Linear Models Standard nonlinear models, such as Raman and Kerr models can be used by choosing the fitting parameters ak, bk, ck as follows:

ak bk ck

Lorentz 1 free free Drude 1 free 0

The free parameters above, plus the coefficient 3kχΔ , can be used to match any single resonance. Multiple resonances

can be combined to realize complicated dispersion relations.

Please see Section 8.E for important comments on the units of this parameter.

8.E. Additional Notes Additional notes about the use of dispersion and non-linearity in FullWAVE:

• You must check Dispersion/Nonlinearity in the FullWAVE Simulation Parameters window to enable the use of dispersive and/or non-linear materials. This feature is currently supported only for step index components, and for Fiber or Channel structures in 3D, and is not supported for Radial FDTD.

• Careful attention should be made to make sure that the dispersion parameters chosen correspond to a physically realizable material in order to avoid instability in the simulation.

• The dispersion feature is designed for materials that have a large positive imaginary index. This does not account for structures with gain, which are represented by materials in this convention with a negative imaginary index. Currently, the use of a negative imaginary index or a structure with gain, both with or without dispersion, is not supported.

• Currently, negative index materials cannot touch the PML in FullWAVE. This limitation will be removed in a future release; contact RSoft with questions.

A Note on Units for Non-Linear Parameters: Since most problems are linear, the field units are essentially irrelevant since the time monitors are normalized to the input power: all results are clearly interpreted as relative.

This section provides a simple interpretation of units. A detailed approach for FullWAVE can be found in the appendices of the FullWAVE manual.

However, when using nonlinear materials, units become important: the software must be used in a consistent way to get the correct answer:

• Using field units:

The easiest approach is to assume that all field components have units of Volts/µm. This choice requires that: 1) while the unit of E is the traditional MKS unit, all units of length must be assumed to be µm, and 2) the unit of H is the same as the unit of E.

If the field has units of V/µm, then the nonlinear parameters 2χ and 3χ must have units of µm/V and (µm/V)2 respectively.

This approach also requires a consistent interpretation of the power contained in the launch field(s) based on the launch Normalization:

Page 126: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

116 • Chapter 8: Advanced Material Properties RSoft CAD Environment 8.0 User Guide

Type Launch Power

None Sets E02 where the electric field E0 [V/µm] multiples the unnormalized launch

field.

Unit Peak Sets E0

2 where the electric field E0 [V/µm] is the peak electric field

Unit Power Sets the power of the launch field: By default, the power is in V2. Setting

fdtd_launch_power_unit = 1 forces the Launch Power to be interpreted in Watts.

• Using field values without units:

It is sometimes easier, to keep E unitless and use dimensionless 2χ and 3χ parameters. This is most easily done by setting the launch Normalization to be None or Unit Peak, leaving the Launch Power set to 1, and using dimensionless values for these parameters as follows:

2 2norm 0

μm VV μm

Eχ χ⎡ ⎤⎡ ⎤= ∗ ⎢ ⎥⎢ ⎥⎣ ⎦ ⎣ ⎦

22

3 3 2norm 0

μm VV μm

Eχ χ⎡ ⎤⎡ ⎤ ⎛ ⎞⎛ ⎞= ∗ ⎢ ⎥⎢ ⎥⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎢ ⎥⎝ ⎠⎢ ⎥⎣ ⎦ ⎣ ⎦

where E0 is the true peak field amplitude in the launch. This approach has the advantage that the fields are of the order of unity, avoiding difficulties in the graphics display. Similar normalizations can be done with Unit Power, but are not described here.

8.F. Anisotropy Anisotropy is enabled for the BeamPROP, FullWAVE, and BandSOLVE simulation engines.

8.F.1. Defining Index Tensors Anisotropic materials can be defined through the use of one or more refractive index tensors which are defined in the Index Tensor Editor window shown in Fig. 8-3, which is accessed through the Edit/Tables/Edit Tensors menu item.

Page 127: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 8: Advanced Material Properties • 117

Figure 8-3: The Index Tensor Editor window which is used to define material properties for anisotropic materials.

Index tensors are defined by entering the desired index values for each of the tensor components.

Tensor number 0 corresponds to the background or substrate material, and tensor number 1 corresponds to the cover material. These are predefined to be diagonal with values equal to background_index and cover_index, respectively.

8.F.2. Using Tensors The use of index tensors is slightly different for each 3D Structure Type:

• Fiber, Channel, and Diffused Structures

The anisotropic refractive index of a component is determined by adding the background tensor T0 to the scalar product of the local index difference and the “delta tensor”:

0( , ) ( , ) dx y nf x y= + Δ ⋅n T T

where Δ n is the local Index Difference, the function f(x,y,z) is the Index Profile, and Td is the tensor whose number is given by the symbol table variable delta_tensor. If this variable is not defined, the identity tensor is used by default. A different delta tensor can be specified for each component via Delta Tensor in the Additional Component Properties window which can be accessed via the More… button in the component properties window.

By combining this feature with several others, such as overlapping waveguides and user-profiles, one can create a structure in which different components of the index tensor have different spatial dependence.

• Multilayer Structures

When using multilayer structures, the index tensor for each layer can be directly set in the Layer Table Editor window.

• Rib/Ridge Structures

Page 128: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

118 • Chapter 8: Advanced Material Properties RSoft CAD Environment 8.0 User Guide

Anisotropic support is not enabled for the Rib/Ridge model. Use the Multilayer structure type instead.

Page 129: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 9: Creating Uniform and Non-Uniform Grids • 119

Chapter 9: Creating Uniform and Non-Uniform Grids

The CAD defines the refractive index on a grid which is then used by the simulation programs to represent field values during a simulation. This chapter describes the creation of both a uniform and non-uniform grid within the CAD.

Please note that not all options are available for all simulation programs. Currently, BeamPROP, FullWAVE, and FemSIM support the use of a non-uniform grid. Additionally, each of these tools supports a different subset of the non-uniform capabilities. When an option is not supported by all tools, it is noted.

9.A. Basic Definitions This section contains an overview of basic grid concepts.

While not necessary, it is recommended that users read through this section once to better understand how each simulation program utilizes a grid.

The RSoft CAD uses an intelligent grid generation algorithm to produce a simulation grid based on the structure(s) defined in the CAD environment, as well as a variety of grid options described in detail later in this chapter. The grid generation algorithm automatically calculates a uniform or non-uniform grid best suited for the defined structure. The grid is composed of rectangular shaped cells, or elements, of varying sizes, which cover the entire computational domain, including any PML. Additionally, FemSIM supports a hybrid triangular and rectangular grid which is described in more detail in the FemSIM manual.

Grid Cells Grid cells are the base unit from which an entire grid is built. The definition of a grid cell differs for each simulation tool, specifically how fields and refractive index values are represented for each cell. To utilize the full power of RSoft’s mesh generator, it is critical to understand the definitions for each simulation you use.

BeamPROP & FullWAVE Both BeamPROP and FullWAVE use finite-difference algorithms to represent field values at specific grid points. These grid points are located at the center of each grid cell as shown in Fig. 9-1.

Page 130: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

120 • Chapter 9: Creating Uniform and Non-Uniform Grids RSoft CAD Environment 8.0 User Guide

Figure 9-1: The grid cell definition for BeamPROP and FullWAVE. The dashed red line represents a material boundary, the solid

black lines represent cell boundaries, and the gray dots represent the grid points.

The refractive index value used for the cell is the average index of the area the cell covers.

FullWAVE, which uses a standard Yee grid, computes the Ey field component (Hy in the case of 2D TM) on the grid points shown above. Other field components are calculated at positions defined by the Yee grid as described in Chapter 2 of the FullWAVE manual.

FemSIM FemSIM is based on the Finite Element Method, and represents the field over the entire cell as a function of pre-determined basis functions as shown in Fig. 9-2.

Figure 9-2: The grid cell definition for FemSIM. The dashed red line represents a material boundary and the solid lines represent

the element boundaries. The cells are shaded to represent that the field is defined over the entire cell.

The refractive index value used for the element is the average index of the volume the element covers.

Furthermore, FemSIM supports a subdivision of cells into triangular elements. This option is described in further detail in the FemSIM manual.

Page 131: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 9: Creating Uniform and Non-Uniform Grids • 121

9.B. Using a Uniform Grid The primary controls for a uniform grid are the computational domain and the grid sizes. The upper portion of each product’s Simulation Parameters window allows the user to specify this information for each spatial direction.

The specification of a uniform grid is covered in more detail in each simulation manual.

9.C. Using a Non-Uniform Grid Currently, the options describes in this section are available only for the BeamPROP, FullWAVE, and FemSIM simulation packages.

RSoft’s grid generation algorithm is capable of creating a non-uniform rectangular grid based on the structure defined in the CAD and other grid options that allow user control over the size and position of grid cells. This section describes these grid options, which include: interface alignment, grid size at interfaces, grid grading, and required minimum divisions within a region.

The grid options are set in the Advanced Grid Controls window which can be opened by clicking the Grid Options… button in the Simulation Parameters window as shown in Fig. 9-3.

Note that the Enable Nonuniform option in the Simulation Parameters window must be enabled. Also, the FemSIM Advanced Grid Controls window has several additional options which allow for further subdivide the grid into a hybrid rectangular and triangular mesh. This process is covered in the FemSIM manual.

Fig 9-3: The FullWAVE Advanced Grid Controls window where non-uniform grid options are set. Note that while BeamPROP is

similar, FemSIM contains several additional options which are addressed in the FemSIM manual.

Each spatial direction can be defined separately. These options, were applicable, all have units of μm.

Domain Min and Domain Max

Page 132: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

122 • Chapter 9: Creating Uniform and Non-Uniform Grids RSoft CAD Environment 8.0 User Guide

These settings option set the domain limits to be used during the simulation. For accurate results, the simulation domain must include all parts of the structure that you want to simulate, including any evanescent fields outside of the structure. It shouldn’t be excessively large as nothing can be gained by simulating parts of the domain where no field is present.

Grid Size (Bulk)

These option set the grid size for each dimension and are the primary option to control the grid generation. While this setting represents the actual grid size for a uniform mesh, it represents the “average” or “nominal” grid size for a non-uniform grid since the actual grid size varies with location. The options which control the irregularity and non-uniformity of the grid are described below.

Grid Size (Edge)

These option set the grid size at material interfaces. This option is especially important because the accuracy of the underlying simulation algorithms can heavily depend on the correct modeling of field variations, which can sometimes be more pronounced near interfaces than in bulk regions. By default this parameter is set equal to the value of Grid Size (Bulk).

It is also possible to grade, or vary, the grid size between the grid size at the material interfaces, set by Grid Size (Edge), and the grid size in bulk regions, set by Grid Size (Bulk) via the Grid Grading and Grading Ratio options described below.

Grid Grading

An abrupt transition from a very fine grid size at a material interface, set by Grid Size (Edge), and the grid size in bulk regions, set by Grid Size (Bulk) would create numerical reflection and therefore adversely affect the accuracy of any simulation results. This option enables the necessary use of a gradual transition between different cells with different grid sizes as shown in Fig. 9-4.

Figure 9-4: An example of grid grading around a material interface. The dashed red line represents a material interface and the

solid black lines represents cell boundaries.

The rate at which the grid size of adjacent cells varies is defined by the Grading Ratio described below.

Grading Ratio

This option sets the rate at which the grid size of adjacent cells vary when using the Grid Grading option described above. The default for this option 2. A recommended guideline is to set this parameter to a value between 1.1 and 2 depending on the structure. A value that is too small increases the computation burden and a value that is too large can create accuracy issues.

Minimum Divisions

This option sets the minimum number of grid cells within a region that lies between two material interfaces. An example of its is given in Fig. 9-5.

Page 133: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 9: Creating Uniform and Non-Uniform Grids • 123

Figure 9-5: An example of the use of the minimum divisions setting. The dashed red lines represent material interfaces and the solid black lines represent cell boundaries. In this case, a minimum of 10 cells is used along the horizontal axis. Its effect is clearly seen in

the central material region where the local grid size has been reduced to ensure that 10 cells are used within the region.

This option is primarily useful for problems with rectangular structures, and has a default value of 1. The recommended usage of this parameter is to set it equal to the thickness of the thick region of interest divided by the desired “average” grid size. It should be used sparingly when a design file has regions that are dramatically smaller than the other regions in the structure which other non-uniform grid options cannot resolve. To use grid grading with this option, set the Grid Size (Edge) option equal to the “average” grid size desired in the region.

Interface Alignment

This option attempts to ensure that grid cells are aligned in a systematic way with respect to interfaces between material regions, i.e. regions with the same refractive index. When this option is enabled, it is not necessary to ensure that the computational domain and mesh sizes are ‘nice’ numbers with respect to the dimensions of the structure. The base grid is automatically aligned with material interfaces, and the rest of the grid points are calculated based on the “average” Grid Size value.

This option has several possible choices:

When using this option to position cells relative to material interfaces, it is important to remember that BeamPROP computes all field values at the center of mesh cells, FullWAVE computes the Ey field component (Hy for 2D TM) at the center of mesh cells and the rest of the field components are computed as defined by the Yee grid, and FemSIM computes the field within the entire cell. See Section 9.A for more details.

• Default

This is the default setting for this option which depends on the simulation tool. BeamPROP and FullWAVE use the Centered Cells option described below, and FemSIM uses the Straddled Cells option described below.

• None

This setting disables interface alignment, though there is usually no point in doing so since the resulting mesh will be uniform. However this is a good choice when using the submeshing options for FemSIM with non-rectangular geometries.

• Centered Cells

This setting indicates that cells will be centered on material interfaces such as:

Page 134: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

124 • Chapter 9: Creating Uniform and Non-Uniform Grids RSoft CAD Environment 8.0 User Guide

Figure 9-6: An illustration of grid cells that are centered on material interfaces. The red dashed line represents an interface and the

black lines represent cell boundaries.

The refractive index of cells at the interface will be the average index of refraction of the two materials.

• Straddled Cells

This setting indicates that cell edges will fall on material interfaces such as:

Figure 9-7: An illustration of grid cells that straddle material interfaces. The red dashed line represents an interface and the black

lines represent cell boundaries.

The cells on each side of the interface are completely contained in one material, and have a refractive index equal to the material they lie within.

In general, the optimal choices of these options depend on the dimension and polarization of the problem.

9.D. Viewing the Grid and Index Profile Before performing a simulation, it is important to ensure that the grid accurately reflects the structure. Furthermore, it is important to ensure that the refractive index values used on the mesh also accurately reflect the structure. One of the main causes of inaccurate simulation results is the use of either an undesired simulation grid or undesired index distribution. If you are using either of these, you cannot expect to obtain correct results.

9.D.1. Viewing the Grid The simulation mesh can be viewed by pressing the View Grid button in either the Simulation Parameters window or within the Advanced Grid Controls window. For 3D simulation, the cross-section of the mesh can be selected via the Cut option in the Advanced Grid Parameters window.

Note that any PML will be displayed with the mesh.

Page 135: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 9: Creating Uniform and Non-Uniform Grids • 125

9.D.2. Viewing the Index Profile The procedure to view the index profile can be found in Section 3.G. When using a non-uniform mesh, the index profile will be displayed on the mesh, and any data files produced will be in the non-uniform format described in Appendix B.

When displaying the index profile, PML is not shown.

9.E. Tips For Non-Uniform Simulation In addition to the methods described for simulation with a uniform mesh, there are several tips for simulation with a non-uniform grid:

• The setup the structure in the CAD, the specification of analysis options, launch options, boundary conditions, etc, are exactly the same as for simulation with a uniform grid.

• To enable the use of a non-uniform grid, ensure that the Enable Nonuniform option is set in the Simulation Parameters window.

• Specify any non-uniform grid options that you think are appropriate for the structure being simulated. A standard set might be:

• Set the Grid Size (Edge) options to a small fraction of the Grid Size (Bulk) so that the grid size near material interfaces is finer.

• Use the Grid Grading option as appropriate, and set the Grid Ratio to a number between 1.1 and 2, but remember that a value that is too small increases the computation burden and a value that is too large can create accuracy issues.

• If the structure warrants it, set the Minimum Division option. Usually if your structure contains a component which has a very small (subwavelength) feature size setting this option is recommended.

• View the grid and index profile to see if they are satisfactory. If not, repeat the above steps until they are satisfactory.

• Once the grid is satisfactory, the simulation can be performed.

Page 136: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program
Page 137: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 10: Parameter Scanning & Scripting • 127

Chapter 10: Parameter Scanning & Scripting

RSoft's entire simulation software suite, including BeamPROP, FullWAVE, BandSOLVE, GratingMOD, DiffractMOD, and FemSIM share a comprehensive set of scripting features for both layout and scanning. RSoft uses the native scripting language of the user's operating system and allows for ANY programming language to be used rather than relying on a single scripting language or an in-house scripting language. In addition, these simulation programs can be run with complete functionality from within scripts, allowing for simple parameter scans to powerful intelligent optimization routines.

Additionally, RSoft’s Multi-variable Optimization & Scanning Tool, or MOST, can be used to automate many tedious scanning and optimization problems.

This chapter describes the use of scripts to automate both device layout and simulation. It contains both descriptions and example scripts written in different of programming languages.

10.A. Scripting Background Scripts allow the user to create device layouts that would be tedious to do by hand as well as device outs and simulation techniques. This section will give a general overview of why scripting is important, and what types of scripts are useful.

If you are already familiar with scripting, this section can be skipped. However, it is still recommended that you read this section.

10.A.1. Why use Scripts? A script is a series of instructions to be performed by a computer. These instructions can be a for device layout, device simulation, or both. While these operations can be performed via the program GUI, it can be useful to use a script for the following reasons:

• Scripts save time

In its simplest form, a script is just a series of instructions. Using a script to run these instructions will take less time than performing them manually.

• Automate tedious procedures

A script can be used to perform tasks which would take an inordinate amount of a user’s time. For example, a layout script can be used to create a complicated structure, or a parameter scanning script can be used to study a device’s performance as a particular parameter is changed. While it is possible to perform these tasks by hand, it is not desirable.

Page 138: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

128 • Chapter 10: Parameter Scanning & Scripting RSoft CAD Environment 8.0 User Guide

• Construct intelligent design and simulation loops

Most design problems require several iterations between design and simulation. This process is usually done by hand, but can also be performed via a script. A script can be used to codify this logic to automate the design process. For example, a script could be used to perform a simulation, examine the results, and then make changes to the design in order to produce better device performance.

There are two basic types of scripts:

Scripts for Layout Layout scripts are useful when a simple way to create a complex structure is needed. An example of such a structure is a Photonic Band Gap (PBG) based structure. These structures are usually composed of a periodic array of a unit cell. While it is theoretically possible to create such a structure by hand with the RSoft CAD GUI, it would be more efficient to use a layout script to automatically repeat the desired unit cell given the lattice properties. In fact, this is exactly what the Array Layout Utility that RSoft provides with the standard distribution does.

Of course, PGBs are not the only structure type that benefit from the use of a layout script. Users are encouraged to write their own scripts to generate other complicated structure types they deal with. See Section 8.C for more details.

Scripts for Simulation Simulation scripts perform a series of automated simulations, and can be divided into two main categories: Basic and Advanced. A basic simulation script simply performs a list of simulations; a good example of this type of script would be the parameter scan described in the previous section. An advanced script has a built-in intelligence that allows for customized simulation paths; a good example of this type of script would be a targeted solver or an optimization routine. See Section 8.D for more details.

10.A.2. Scripting/Programming Languages Supported The RSoft Photonics Suite supports virtually ANY scripting/programming language/environment. These include, but are not limited to, C, C++, Perl, Python, Visual Basic, Java, Matlab, Fortran, and Pascal. Since RSoft design files (*.ind files) are in a simple ASCII format, any language/environment that can output ASCII text to a file can be used to write a layout script. Since all of the RSoft simulation programs can be run with full functionality from the command prompt, and language/environment that can run commands from a command prompt can be used to write a simulation script. Since virtually all scripting/programming languages/environments are capable of these things, they can be used.

10.B. Scripts for Parameter Scanning & Optimization The RSoft CAD allows users to automatically scan over design parameters to find an optimal design. This is d is done by using RSoft’s MOST package. Details about the usage of MOST can be found in the MOST manual.

10.C. Layout Scripts Layout scripts allow the user to create customized design files for complicated structures. By using these scripts, the user avoids the sometimes tedious process of creating these structures by hand. Several layout scripts are included with the standard distribution including the Array Layout utility and the AWG layout utility. This section will explore this functionality, and then provide several examples of such scripts in different programming languages.

10.C.1 *.ind Files The *.ind file format is in simple ASCII text which allows for easy creation using any programming language that has the ability to create text files. Each *.ind file requires at least two sections: the symbol table section and the segment section. In addition to these two required sections, additional sections may be present depending on the options to be

Page 139: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 10: Parameter Scanning & Scripting • 129

used in the CAD file. The easiest way to learn the file format for *.ind files is to first create the structure in the CAD GUI with the desired options, and then open the design file in a text editor.

10.C.2. Creating a Layout Script Here is an example of a layout script written in C that creates ten concentric fiber objects with alternating refractive index and a user-defined period. It first writes the symbol table to the file, and then writes the fiber objects.

This code could be written in any programming language. We have chosen C for illustrative purposes.

The C code is: #include <ctype.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

static FILE *fp_out;

static int num_circles=10;

static char *syms[]={ //define symbol table values

"Index1 = 1.5",

"Index2 = 1.3",

"Length = 1000",

"Period = 0.5",

"Radius = 0.5*width",

"alpha = 0",

"background_index = 1",

"delta = max(Index1, Index2)",

"dimension = 3",

"free_space_wavelength = 1.55",

"height = width",

"profile_type = PROF_STEPINDEX",

"width = 100",

"launch_type = LAUNCH_GAUSSIAN",

};

void gensymbols (void) { //writes symbol table to file

int Nsyms=sizeof(syms)/sizeof(char *);

int i;

fprintf(fp_out,"\n");

fprintf(fp_out,"N = %d\n",num_circles);

for ( i=0 ; i<Nsyms ; i++ ) fprintf(fp_out,"%s\n",syms[i]);

fprintf(fp_out,"\n\n");

}

Page 140: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

130 • Chapter 10: Parameter Scanning & Scripting RSoft CAD Environment 8.0 User Guide

void genshape (int k) { //writes fiber object to file

int j=num_circles-k+1; //reverse segment number order

fprintf(fp_out,"segment %d\n",k+1);

//print out the alternating colors, index delta, and ref background index

if ((k%2)==0){

fprintf(fp_out,"\tcolor = 14\n");

fprintf(fp_out,"\tbegin.delta = Index2-background_index\n");

fprintf(fp_out,"\tend.delta = Index2-background_index\n");

fprintf(fp_out,"\tbackground_index = Index1\n");

}

else {

fprintf(fp_out,"\tcolor = 12\n");

fprintf(fp_out,"\tbegin.delta = Index1-background_index\n");

fprintf(fp_out,"\tend.delta = Index1-background_index\n");

fprintf(fp_out,"\tbackground_index = Index2\n");

}

fprintf(fp_out,"\tpriority = %d\n",k);

fprintf(fp_out,"\tbegin.x = 0\n");

fprintf(fp_out,"\tbegin.z = 0\n");

fprintf(fp_out,"\tbegin.width = Period/2*%d\n", j);

fprintf(fp_out,"\tbegin.height = Period/2*%d\n", j);

fprintf(fp_out,"\tend.x = 0\n");

fprintf(fp_out,"\tend.z = Length\n");

fprintf(fp_out,"\tend.width = Period/2*%d\n", j);

fprintf(fp_out,"\tend.height = Period/2*%d\n", j);

fprintf(fp_out,"end segment\n");

fprintf(fp_out,"\n");

}

int main (int argc, char *argv[]) {

int k;

fp_out=stdout;

gensymbols(); //write symbol table

for(k=0; k<=num_circles-1; k++) genshape(k); //write fiber objects

fprintf(fp_out,"\n");

return(0);

}

Page 141: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 10: Parameter Scanning & Scripting • 131

10.D. Simulation Scripts Simulation scripts are built around the fact that all of the RSoft tools can be run with complete functionality from the command line. This section will explore this functionality, and then provide several examples of such scripts in different programming languages.

The use of simulation scripts for most applications can be automated with RSoft’s MOST package.

10.D.1. Running the Simulation Programs From the Command Line The ability to run the RSoft simulation tools from the command line forms the basis for all simulation scripts. In this section, we will illustrate this concept and give examples for each product.

Syntax The basic syntax for running the simulation programs from the command line is:

SIM_PROGRAM index-file-name [name=value name=value ...] @<symfile>

where SIM_PROGRAM is the name of the simulation program (the names are listed in Conventions section in the Preface), the index-file-name is the name of the *.ind file to be simulated, the name/value entries are symbol table variables and values to be applied to the *.ind file, and <symfile> is an optional file that contains a list of additional symbols. For example, to run the FullWAVE example file wg.ind, which is located in the directory <rsoft_dir>\examples\fullwave, with an output prefix of ‘run1’, issue the following command from the directory where the *.ind file is located:

fullwave wg.ind prefix=run1

For Linux systems, the command will be: xfullwave wg.ind prefix=run1

If you receive any errors saying that the system can not find the program or application, please read through RSoft Installation Guide to ensure that you have set up the PATH properly.

The only syntax difference for UNIX/Linux based machines is the name of the simulation executable. Please see the Preface for a table with the corresponding UNIX/Linux commands.

Of course, you must be licensed to use FullWAVE for the above command to work. Examples for other RSoft products are given in the next section.

Try It! The best way to understand this concept is to try it out for yourself. To open a command prompt, do the following:

• Windows systems:

To open a DOS command prompt, either choose the ‘Command Prompt’ option from the start menu, or choose Run from the Start menu and give the command cmd.

• Linux systems:

Open a shell window.

Since this section is written for applies to owners of multiple software packages, please choose the appropriate product(s) from the list below. Also, note that the following commands are for Windows systems. UNIX/Linux users should consult the table for the appropriate program name.

Page 142: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

132 • Chapter 10: Parameter Scanning & Scripting RSoft CAD Environment 8.0 User Guide

BeamPROP Move to the directory <rsoft_dir>\examples\beamprop and issue the command:

bsimw32 coupler.ind prefux=run1

This will open a directional coupler example, run it, and save the results with a prefix of run1.

FullWAVE Move to the directory <rsoft_dir>\examples\fullwave and issue the command:

fullwave ring-res.ind prefux=run1

This will open a ring resonator example, run it, and save the results with a prefix of run1.

BandSOLVE Move to the directory <rsoft_dir>\examples\bandsolve and issue the command:

bandsolve pbghex.ind prefux=run1

This will open a 2D hexagonal lattice example, run it, and save the results with a prefix of run1.

GratingMOD Move to the directory <rsoft_dir>\examples\gratingmod\Tutorial\TutA1 and issue the command:

gmod grating1.ind prefux=run1

This will open a 2D slab grating structure example, run it, and save the results with a prefix of run1.

DiffractMOD Move to the directory <rsoft_dir>\examples\diffractmod and issue the command:

dmod checkerboard3d.ind prefux=run1

This will open a 3D checkerboard example, run it, and save the results with a prefix of run1.

FemSIM Move to the directory <rsoft_dir>\examples\femsim and issue the command:

femsim rib.ind prefux=run1

This will open a simple rib waveguide example, run it, and save the results with a prefix of run1.

10.D.2. Creating a Simulation Script An example of a basic simulation script would be a simple parameter scan. This is exactly the same as what the Scan Parameter option in the CAD performs.

This section will present the same script in two different languages: as a batch file and in Perl.

The scripts in this section are written for specific simulation engines. The concepts, however, are the same for each engine.

Page 143: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Chapter 10: Parameter Scanning & Scripting • 133

Using a Batch File A batch file is simply a text file which contains a list of commands to be run sequentially from the command line. This example illustrates the process of finding an optimal gap for a directional coupler using BeamPROP. We will use the file coupler.ind located in <rsoft_dir>\examples\beamprop. Several notes about this script:

• This script will perform simulations with values of the variable separation from 1 µm to a value of 10 µm with a step of 1 µm.

• Each simulation run will be stored with a prefix of runXX where XX corresponds to the simulation number.

• This script will not produce a scan result like the built-in scan functionality of the CAD. To do this, this script would have to be modified using the scan_output, scan_prefix, and scan_variable variables used in the parameter scanning section above or the Perl script below.

The batch file is:

This code could be written in any programming language. We have chosen to use a batch file for illustrative purposes.

bsimw32 coupler.ind wait=0 prefix=run01 separation=1

bsimw32 coupler.ind wait=0 prefix=run02 separation=2

bsimw32 coupler.ind wait=0 prefix=run03 separation=3

bsimw32 coupler.ind wait=0 prefix=run04 separation=4

bsimw32 coupler.ind wait=0 prefix=run05 separation=5

bsimw32 coupler.ind wait=0 prefix=run06 separation=6

bsimw32 coupler.ind wait=0 prefix=run07 separation=7

bsimw32 coupler.ind wait=0 prefix=run08 separation=8

bsimw32 coupler.ind wait=0 prefix=run09 separation=9

bsimw32 coupler.ind wait=0 prefix=run10 separation=10

To run this script, save it in a text file with extension *.bat and run it from the command line.

Using Perl This script uses the same directional coupler example as before, but it is designed to scan over a set of values. Several notes about this script:

• This script is designed to run simulations at distinct values of separation instead of defining a minimum and maximum value and a increment as before.

• We will use the built-in variable scan_prefix to set the prefix for the scan result files.

• We will use the built-in variable scan_variable to indicate the scanned variable for output purposes.

• We will use the variable scan_output to control the output of scan results like the built-in scanning functionality of the CAD does. The values of scan_output are as follows: 1 deletes and existing scan output, and a value of 2 appends the output to an existing file. Thus, the first simulation should have a value of scan_output=1, and all other simulations should have a values of 2.

• Lastly, this script is set up to open a WinPLOT window with the scan results after the scan has completed.

The Perl code is:

This code could be written in any programming language. We have chosen Perl for illustrative purposes.

#!/usr/local/bin/perl -w

#define some parameters

Page 144: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

134 • Chapter 10: Parameter Scanning & Scripting RSoft CAD Environment 8.0 User Guide

$sim_engine ="bsimw32";

$ind_file ="coupler.ind";

$scan_var ="separation";

$prefix="output";

@scan_list =(0.1,0.5,1,2,3,4,8,10); #value list for scan

$is_first_run =1; #run scan loop with a different output type for first

foreach $value (@scan_list) {

if ($is_first_run) {

$scan_output_type =1;

$is_first_run =0;

} else {

$scan_output_type =2;

}

$symbols ="wait=0 scan_prefix=$prefix";

$symbols .=" scan_output=$scan_output_type";

$symbols .=" scan_variable=$scan_var $scan_var=$value";

$sim_command ="$sim_engine $ind_file $symbols";

`$sim_command`;

}

`winplot \@$prefix.psc &`; #open scan data in WinPLOT

To run this script, use the Perl interpreter. It does not need to be compiled.

10.D.3. Creating Advanced Scripts Advanced scripting allows for intelligent design. For example, a script can be used to create a structure and perform a simulation, and then, based on the results from the simulation, a new design file can be generated and simulated. In this way, feedback from the simulation can be used to produce a better design. This type of script can be created by combining the concepts outlined in the previous sections.

Page 145: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix A: Tips and Traps in The RSoft CAD. • 135

Appendix A: Tips and Traps in The RSoft CAD.

This appendix contains some advice on good habits and sources of confusion for novices and experienced RSoft CAD users alike.

Common RSoft CAD mistakes • Misuse of overlapped segments.

Overlapped segments can be used to achieve complicated geometries. However, it is very important to understand the logic used by the CAD when segments overlap. Please read through Section 4.G for more information.

• Using the wrong units.

It is important to use the correct units when describing a structure in the CAD. All units of length are given in μm, angular units are given in degrees, and the units of imaginary index values are given as:

4imagn γλπ

=

where λ is the wavelength and γ is the usual exponential loss coefficient defined such that the power

decays as ze γ− , and is given in units of μm-1.

Some Good RSoft CAD habits to learn Developing the following habits will save you trouble and time in the long run.

• Use the Compute Index Profile option frequently

When setting up a structure, it is easy to make mistakes with geometry and refractive index information. Many apparently bizarre results are simply the result of simulating the wrong structure.

• Get Full Usage out of the Symbol Table

The Symbol Table is a powerful tool which provides a simple way to parameterize a design. Virtually all fields in the CAD, including those in the Segment Properties box, can accept variables and function of variables. This allows the user to create complicated designs in which each parameter, including waveguide coordinates, simulation specific parameters, and virtually every program option is logically tied to other parameters in the circuit.

Page 146: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

136 • Appendix A: Tips and Traps in The RSoft CAD. RSoft CAD Environment 8.0 User Guide

When designing a circuit, it is highly recommended that you utilize the Symbol Table as much as possible. As tempting as it may be to enter exact coordinates for waveguide vertices or refractive index values, it is usually better to create variables in the Symbol Table which equal the desired quantities, and then enter these variable names into the appropriate fields in the CAD interface. This allows for a design file which is very easy to modify, and easier to understand.

• Use Referenced Coordinates

The coordinate specification by logical references described in Section 4.B.1 is a unique and powerful CAD feature that can be used to layout circuits with specific geometric relationships which can remain constant while various dimensions (lengths, displacements, separations, etc.) are changed. Coupled with the programmability feature described above that enables formulas to be used to define coordinates or offset/angle parameter values, this feature allows the user to define a logical arrangement of waveguide components whose specific dimensions can be changed by simply altering a few values in the symbol table. Illustrations of this approach are given in several of the example circuits found in the <rsoft_dir>examples directory.

• Learn to use the command line utilities included with the RSoft Photonic Suite

Since post-processing with these tools can be automated, you can achieve a lot of tedious work by writing a single command. You may even find uses for these utilities in your other work. These utilities are documented in Appendix E.

• Learn the scripting capabilities of the RSoft Photonic Suite

While the RSoft CAD is designed to be used via a graphical interface (GUI), complicated structures can be quite tedious to create in this fashion. To combat this difficulty, you can create a layout script which automatically creates the design files you want. Additionally, simulation scripts can be created to automate tedious simulations. More information on scripting capabilities can be found in Chapter 10.

• Read the WinPLOT manual

WinPLOT’s rather terse command syntax can be daunting at first, but allows complex plotting features to be described quickly in just a few lines. Being able to quickly launch plots with old command files from the command line can be a huge time saver.

• User color scales to produce attractive plots.

WinPLOT is capable of producing many types of plots beyond the standard output usually displayed. Color scale files can be found in the directory, <rsoft_dir>RPLOTDIR and are used to change the default scale used when displaying contour plots. These files are easy to create, and provide a quick way to customize the display of data for presentation purposes. More information on the use and creation of color scales can be found in Appendix F.

Page 147: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix B: File Formats • 137

Appendix B: File Formats

This appendix documents the file formats used in The RSoft CAD that are specific to this package. Except where noted, all files are in ASCII text format. For further information, contact RSoft.

Standard RSoft File Format This is the main file format which is used to represent functions of one or two variables, including field profiles, index profiles, and other output types.

This section describes data files with a uniform grid. Specific notes about data files with a non-uniform grid are described in the next section.

The correct syntax for this file format is:

/rn,a,b/nx0/ls1

/r,qa,qb

Nx Xmin Xmax Zpos Output_Type Optional_Data

Ny Ymin Ymax

Data1(Xmin, Ymin)

… Data(Xmin, Ymax)

… …

Data(Xmax, Ymin) … Data(Xmax, Ymax) The first several lines of the field file are WinPLOT directives, and though required for WinPLOT use, can be considered as comments and ignored for all other uses. They begin with a slash (‘/’) character and can be identified and parsed by that characteristic. Also, note that this format describes a function as (x,y,z0). However, note that these coordinates do not have to correspond to the coordinates actually used in a simulation, and are only local to the data file. The parameters shown above are:

Parameter Description Nx Number of data points in the X direction. Xmin The X coordinate of the first data point. Xmax The X coordinate of the last data point. Zpos The Z coordinate. The actual numerical value does not effect the field

data in any way. This field is set to the keyword Z_DEPENDENT when defining a 3D data file.

Output_Type The sub format of the data. This field can be one of the values discussed below.

Ny Number of data points in the Y direction. This line is only required for

Page 148: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

138 • Appendix B: File Formats RSoft CAD Environment 8.0 User Guide

a 3D Output_Type. Ymin The Y coordinate of the first data point. This line is only required for a

3D Output_Type. Ymax The Y coordinate of the last data point. This line is only required for a

3D Output_Type. Nz Number of data points in the Z direction. This line is only required for

a 3D data file. Zmin The Z coordinate of the first data point. This line is only required for a

3D data file. Zmax The Z coordinate of the last data point. This line is only required for a

3D data file. Optional_Data These parameters are not required, but are used in special cases. For

instance, if the field is a result of a mode calculation, there are two optional fields containing the real and imaginary parts of the mode effective index.

Supported Output Types The supported output types can be divided into three main groups: those that are a function of one coordinate, and those that are a function of two coordinates.

Functions of one coordinate (X) These values of Output _Type correspond to functions of one variable, and therefore the second non-directive line which contains information about the Y coordinate is not needed. In addition, only one column of data is present, except for the special cases noted below.

• OUTPUT_AMPLITUDE

This output type indicates that the data contained in the file corresponds to the amplitude of a field.

• OUTPUT_REAL

This output type indicates that the data contained in the file corresponds to the real part of a field.

• OUTPUT_IMAG

This output type indicates that the data contained in the file corresponds to the imaginary part of a field.

• OUTPUT_REAL_IMAG

This output type indicates that the data contained in the file corresponds to both the real and imaginary parts of a field. The data is presented in two columns; the first contains the real part of the field, and the second the imaginary part of the field.

• OUTPUT_AMP_PHASE

This output type indicates that the data contained in the file corresponds to both the amplitude and phase of a field. The data is presented in two columns; the first contains the amplitude of the field, and the second the phase.

Function of two coordinates (X,Y) These values of Output _Type correspond to functions of two variables, and therefore the second non-directive line which contains information about the Y coordinate is needed. In addition, only one column of data is present per Y value, except for the special cases noted below.

• OUTPUT_AMPLITUDE_3D

This output type indicates that the data contained in the file corresponds to the amplitude of a field.

• OUTPUT_REAL_3D

This output type indicates that the data contained in the file corresponds to the real part of a field.

Page 149: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix B: File Formats • 139

• OUTPUT_IMAG_3D

This output type indicates that the data contained in the file corresponds to the imaginary part of a field.

• OUTPUT_REAL_IMAG_3D

This output type indicates that the data contained in the file corresponds to both the real and imaginary parts of a field. The data is presented in two columns per Y value; the first contains the real part of the field, and the second the imaginary part of the field.

• OUTPUT_AMP_PHASE_3D

This output type indicates that the data contained in the file corresponds to both the amplitude and phase of a field. The data is presented in two columns per Y value; the first contains the amplitude of the field, and the second the phase.

Functions of three coordinates (X,Y,Z) Functions of three coordinates are similar to the functions of two coordinates. The differences are:

• The keyword Z_DEPENDENT in the typical Z position field.

• An additional header line that defines the range of z data and the number of z slices is required (Nz Zmin Zmax)

• The data is given in matrices one after another corresponding to the multiple Z cross-sections. The actual user profile will interpolate between cross-sections in Z as it does between data points in X or XY.

See the example field below for the header/data structure.

Data Files with a Non-Uniform Grid The format described above describes a data file with a uniform grid. Data files with a non-uniform grid, such as index profiles produced using the CAD’s non-uniform grid options, have the same header lines described above, but the data has the following format:

0 Ymin … Ymax

Xmin Data1(Xmin, Ymin)

… Data(Xmin, Ymax)

… … …

Xmax Data(Xmax, Ymin) … Data(Xmax, Ymax) where the first column contains the X coordinates of each row of data, and the first line has the Y cooridnates of each column of data. The value 0 in the upper left corner is necessary as a spacer, though the value doesn’t necessarily have to be 0.

Example Files In order to better illustrate the field file format, several examples are given. In each case, a function will be given, and then a corresponding data file.

Example 1: The following file contains the real-valued function 2)( xxf = over the domain x ∈ [0,1] with Δx=0.1:

/rn,a,b/nx0/ls1

11 0 1 0 OUTPUT_REAL

0.00

0.01

0.04

0.09

Page 150: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

140 • Appendix B: File Formats RSoft CAD Environment 8.0 User Guide

0.16

0.25

0.36

0.49

0.64

0.89

1.00

Example 2: The following file contains the complex-valued funciton 32)( ixxxf += over the domain x ∈ [0,1] with Δy=0.1:

/rn,a,b/nx0/ls1

11 0 1 0 OUTPUT_REAL_IMAG

0.00 0.000

0.01 0.001

0.04 0.008

0.09 0.027

0.16 0.064

0.25 0.125

0.36 0.216

0.49 0.343

0.64 0.512

0.89 0.729

1.00 1.000

Example 3: The following file contains the real-valued function xyyxf =),( over the domain x ∈ [1,2] with Δx=0.25 and y ∈ [0,1] with Δx=0.5

/rn,a,b/nx0/ls1

/r,qa,qb

5 1 2 0 OUTPUT_REAL_3D

3 0 1

0.000 0.500 1.000

0.000 0.625 1.250

0.000 0.750 1.500

0.000 0.875 1.750

0.000 1.000 2.000

Example 4: The following file contains the complex-valued function iyxyxf +=),( over the domain x ∈ [1,2] with Δx=0.25 and y ∈ [0,1] with Δy=0.5

/rn,a,b/nx0/ls1

/r,qa,qb

Page 151: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix B: File Formats • 141

5 1 2 0 OUTPUT_REAL_IMAG_3D

3 0 1

1.00 0.0 1.00 0.5 1.00 1.0

1.25 0.0 1.25 0.5 1.25 1.0

1.50 0.0 1.50 0.5 1.50 1.0

1.75 0.0 1.75 0.5 1.75 1.0

2.00 0.0 2.00 0.5 2.00 1.0 Note that every other column contains imaginary data.

Example 5: The following file contains the real-valued function ( , , )f x y z x y z= + + over the domain x ∈ [-1,1] with Δx=1, y ∈ [-1,1] with Δy=1, and z ∈ [0,1] with Δz=0.5

This file contains three slices, each 3x3, which contain the field data at each Z point.

/rn,a,b/nx0/ls1

/r,qa,qb

3 -1 1 Z_DEPENDENT OUTPUT_REAL_3D

3 -1 1

3 0 1

-2.000 1.000 0.000

-1.000 0.000 1.000

0.000 1.000 2.000

-2.500 1.500 0.500

-1.500 0.500 1.500

0.500 1.500 2.500

-1.000 2.000 1.000

0.000 1.000 2.000

1.000 2.000 3.000

Index Profiles Refractive index or loss profiles are generated by the simulation program when the index or loss profile is calculated as discussed in Section 3.G. These files are named <prefix>.ipf and <prefix>.lpf respectively, where <prefix> is the Output File Prefix entered. They contain the real or imaginay part of the refractive index as a function of the transverse coordiates. Their format is similar to the standard file format described above with an Output_Type of OUTPUT_REAL or OUTPUT_REAL_3D.

Profile Functions A user-profile can be defined by either an expression or a data file. If a data file is to be used, it should be in the standard field format described above. Please see Section 6.A for more information about normalizations.

Page 152: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

142 • Appendix B: File Formats RSoft CAD Environment 8.0 User Guide

Taper Functions A user-taper can be defined by either an expression or a data file. The data file should be a 1D file where the coordinate decribed in the header is the coordinate along the waveguide axis. If a data file is to be used, it should be in the following format:

/rn,a,b/nx0/ls1

11 0 1 0 OUTPUT_REAL

0.00

0.01

0.04

0.09

0.16

0.25

0.36

0.49

0.64

0.89

1.00 Please see Section 6.B for more information about normalizations.

Polygon Files Polygons provide a customizable approach to creating waveguide segments. A polygon is defined by a series of data points in the (X,Z) plane contained in a data file. These points should be on separate lines, and the first and last points should be the same. For example, a square could be defined by the file:

0,0

0,1

1,1

1,0

0,0 Note that the CAD allows users to scale polygons in both the X and Z coordinates, as well as rotate the polygon at an arbitrary degree.

Page 153: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix C: RSoft Expressions • 143

Appendix C: RSoft Expressions

As noted elsewhere, virtually any numeric input field in any RSoft product can accept an analytical expression involving pre-defined and user-defined variables which are defined in the symbol table. In this appendix, we discuss the form that these expressions can take, the allowed operators, and the built-in functions that are available. Expressions are written in the common form accepted by most programming languages (e.g. C or Fortran), and can include numbers, variables, arithmetic operators, and function calls. They are currently limited in length to 64 characters. Note that if an operator or function required by your application is not listed below, please contact RSoft and we will attempt to add it to the next release.

Valid Arithmetic Operators Valid operators for RSoft expressions, listed in order or precedence, are: Operator Description

^ exponentiation

* multiplication / division + addition - subtraction Parenthesis can be used as usual to group operations and override this precedence. Note that when evaluating expressions, earlier versions of BeamPROP considered the precedence of exponentiation to be the same as that of multiplication and division (which is higher than that of addition and subtraction). With Version 3.0, exponentiation now has a higher precedence. Also note that the mathematical constants pi and e are pre-defined for use in expressions. These variable names can not be overridden and should not be used as user-defined symbols.

Built-in Variables RSoft supports several built-in variables. These variables may be used in the symbol table, or in any numeric field within the software. These variable names should be avoided when creating your own variables to avoid conflict. Variable Value inf infinity c 2.9979246e014 µm/s

e 2.718281828 pi 3.141592653

true 1

false 0 yes 1

no 0

$id This parameter takes the value of the segment number of the segment it is used from. For

Page 154: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

144 • Appendix C: RSoft Expressions RSoft CAD Environment 8.0 User Guide

example, if used from within Segment 1, this parameter will have a value of 1. This is useful to provide a different seed number for multiple segments for the random functions described below.

Standard Functions RSoft expressions support many of the standard function calls found in programming languages, as well as several functions useful in the context of defining waveguide profiles or tapers. The standard functions are: Function Description abs(x) absolute value exp(x) exponential log(x) natural logarithm log2(x) logarithm in base 2 log10(x) logarithm in base 10 sqrt(x) square root cos(x) cosine sin(x) sine tan(x) tangent acos(x) inverse cosine asin(x) inverse sine atan(x) inverse tangent erf(x) error function erfc(x) complementary error function ceil(x) truncate up to next higher integer floor(x) truncate down to next lower integer round(x) round to nearest integer min(x1,x2,…) minimum of arguments in list max(x1,x2,…) maximum of arguments in list

Using Variables To Represent File Names The CAD allows file name fields to contain a variable which represent the actual file name. This can be useful when performing scans that use a different data file for each step. If the text in the field begins with a $ character, the remaining text is interpreted as a symbol that is defined as the file name.

Additional Functions These functions are not standard functions used elsewhere, but are available to allow for the creation of certain structures.

• u(x)

This is the unit step function, defined as

0 0( ) 0.5 0

1 0

xu x x

x

<⎧⎪= =⎨⎪ >⎩

• um(x)

This is a variation of u(x), defined as

0 0( ) 0 0

1 0

xum x x

x

<⎧⎪= =⎨⎪ >⎩

Page 155: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix C: RSoft Expressions • 145

• up(x)

This is a variation of u(x), defined as

0 0( ) 1 0

1 0

xup x x

x

<⎧⎪= =⎨⎪ >⎩

• clip(x)

This function is defined as

• step(x)

This function is a periodic step function, defined as

{ }1 0 0.5

( ) [0,1)0 0.5 1

xstep x x

x≤ <⎧

= ∈⎨ < <⎩

and is periodically extended outside this range. This function is useful for defining grating structures or segmented waveguides.

• step2(x,a)

This function is a variation of step(x), where the duty cycle can be controlled by the second argument a. It is defined as

{ }1 0

2( , ) [0,1)0 1

x astep x a x

a x≤ <⎧

= ∈⎨ < <⎩

and is periodically extended outside this range. The parameter a must be between 0 and 1. This function is useful for defining grating structures or segmented waveguides.

• sign(x)

This function returns of the sign of the argument x. It is defined as

0 0

( )1 0

xsign x

x<⎧

= ⎨ ≥⎩

• if(x,a,b)

This is the logical if() function which can be read as “if |x| >= 5, then a, else b”. It is defined as:

0.5

( , , )0.5

xaif x a b

xb≥⎧

= ⎨ <⎩

• slabneff(p,m,lambda,nc,ns,nf,h)

This special function computes the effective index of a 3-layer slab waveguide mode. The arguments are: Argument Description p polarization(0=TE, 1=TM) m mode number(0=fundamental) lambda free space wavelength (µ) nc cover index ns substrate index nf film or guiding layer index

Page 156: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

146 • Appendix C: RSoft Expressions RSoft CAD Environment 8.0 User Guide

h thickness of film or guiding layer

• ranseq(int seed, int i)

This deterministic function returns a “random” result for a given pair of arguments. A typical use would be to define one or more seed variables in the symbol table, and then use this function within a waveguide with the same i index variable. This allows two or more fields within the segment to be correlated. Changing the seeds within the symbol table will result in different random numbers.

The distribution is linear between -0.5 and 0.5, and several special seeds are recognized: 0 returns 0.0, -1 returns 0.5, and -2 returns -0.5.

• ranline(int seed, double corlen, double z)

This is a deterministically random function of a continuous variable z with a correlation-length of corlen. The seed variable behaves like ranseq(). This function has the same statistical behavior as the built-in roughness option described in Section 6.D.5, and may be used in tapers.

When using this function, be careful with the normalizations of tapers with respect to the units of z and corlen. For example, if L is the true physical length of the taper, and CorLen is the true physical correlation length, then the taper function should use ranline(iseed,Corlen/L,z)

• userdata

userreal

userimag

These functions allow data files to be used in expressions to represent a function of up to three variables. They can be used anywhere an expression allowed, but it is better to employ them only in the symbol table, assigning their result to another symbol that can be used anywhere. This is due to the fact that their evaluation can be time-consuming.

The userdata and userreal functions are synonymous, and return the real part of values in the data file (which can be real or complex). Similarly, the userimag part returns the imaginary part (or 0 if the value is real). All functions have the same syntax, which we illustrate with userdata: userdata("filename",x)

userdata("filename",x,y)

userdata("filename",x,y,z)

In all cases, the first argument is a file name in quotes. The format of the file is currently limited to the standard "2D" (function of X) and "3D" (function of XY) formats, as well as the "XYZ" (function of XYZ) format. Depending on the data file, one, two, or three additional arguments are allowed, as indicated above. Note that while we are using the symbols x, y, z, the arguments bear no relation to the coordinate axes, and can refer to any variable.

One use of the above feature would be to determine material index as a function of wavelength, for example, as in: background_index = userdata("sio2.dat",free_space_wavelength)

The second and third numeric arguments could be used to conveniently add dependence on other variables, such as temperature or concentration.

Page 157: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix D: Symbol Table Variables for The RSoft CAD • 147

Appendix D: Symbol Table Variables for The RSoft CAD

In this appendix we document the symbol table variable names which control the internal operation of the RSoft CAD. Most of these variables correspond to dialog fields which have already been documented. The following sections list the variable names corresponding to these dialog fields:

Startup Window/Global Settings The following variables correspond to the fields founds in the Startup/Global Settings dialog box: Field Name Variable Name Waveguide Model Dimension dimension

Radial Calculation radial

Effective Index Calculation eim

Polarization polarization

Simulation Tool sim_tool

Free Space Wavelength free_space_wavelength

Background Index background_index

Index Difference delta

Waveguide Width width

Waveguide Height height

Profile Type profile_type

3D Structure Type structure

Cover Index cover_index

Slab Index slab_index

Slab Height slab_height

BPM Options These options are specific to the BeamPROP BPM simulation engine: Vector Mode vector

Anisotropic Calculation anisotropic

Bidirectional Calculation bd_bpm

FDTD Options These options are specific to the FullWAVE FDTD simulation engine:

Page 158: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

148 • Appendix D: Symbol Table Variables for The RSoft CAD RSoft CAD Environment 8.0 User Guide

Dispersion/Non-linearity fdtd_dispersion

Special Effects The following variables correspond to the fields in the Special Effects dialog box: Field Name Variable Simulated Bend simulated_bend

Simulated Bend Radius simulated_bend_radius

Clip Profile clip_profile

Litho Resolution litho_res

Litho Roughness litho_sigma

Litho Correlation Length litho_corlen

Advanced Grid Parameters The following variables correspond to the fields found in the Advanced Grid Parameters dialog: Field Name Variable Name X Domain Min boundary_min

X Domain Max boundary_max

X Grid Size (Bulk) grid_size

X Grid Size (Edge) grid_edge_x

X Griding Ratio grid_ratio_x

X Minimum Divisions grid_mindiv_x

X Grid Grading grid_bulk_nonuniform_x

X Interface Alignment grid_align_x

Y Domain Min boundary_min_y

Y Domain Max boundary_max_y

Y Grid Size (Bulk) grid_size_y

Y Grid Size (Edge) grid_edge_y

Y Griding Ratio grid_ratio_y

Y Minimum Divisions grid_mindiv_y

Y Grid Grading grid_bulk_nonuniform_y

Y Interface Alignment grid_align_y

Z Domain Min domain_min

Z Domain Max domain_max

Z Grid Size (Bulk) step_size

Z Grid Size (Edge) grid_edge_z

Z Griding Ratio grid_ratio_z

Z Minimum Divisions grid_mindiv_z

Z Grid Grading grid_bulk_nonuniform_z

Z Interface Alignment grid_align_z

Page 159: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix D: Symbol Table Variables for The RSoft CAD • 149

Advanced Features The following variables correspond to advanced features discussed throughout this manual: Variable Description alpha Sets the default imaginary index for waveguide segments. background_alpha Sets the imaginary index for the background. cover_alpha Sets the imaginary index of the cover for rib/ridge/multilayer structure

types. diffusion_shape Sets the diffusion shape for diffused waveguides. diffusion_gamma Sets the nonlinear relation between the diffusion concentration and the

index. diffusion_ratio Sets the diffusion width/height ratio. change_profile Enables the use of a Z-dependent user profile. index_profile_all Outputs all index tensors for anisotropic calculation when computing

the index profile.

Compute Index Profile The following variables correspond to Index Profile Calculations: Variable Description boundary_min X Domain Min boundary_max X Domain Max grid_size X Grid Size slice_grid_size X Slice Grid boundary_min_y Y Domain Min boundary_max_y Y Domain Max grid_size_y Y Grid Size slice_grid_size_y Y Slice Grid domain_min Z Domain Min domain_max Z Domain Max step_size Z Grid Size slice_step_size Z Slice Grid slice_display_mode Display Mode prefix Output File Prefix index_profile = 1 Compute Index Profile index_profile = 2 Compute Loss Profile

CAD Preferences: The options controlled from the CAD Preferences dialog box are not set via variables in the Symbol Table, but rather through the initialization file bcadw32.ini. This file can usually found in your users directory.

Page 160: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program
Page 161: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 151

Appendix E: Utilities

RSoft software ships with a number of command line utilities that perform simple mathematical operations on data files. While simple to use, these utilities allow tedious post-processing of files to be automated in many powerful ways. In many cases, this avoids the needs for manual post-processing using Matlab, spreadsheets, or other tools. RSoft products are able to output a large range of quantities. In many cases, after running a simulation, the data you require has already been computed, and no further calculation is necessary. However, it is impossible for us to anticipate every possible use of the software, and sometimes you will need to perform further manipulations on output data. This might involve reordering or deleting columns from different data files, combining data from different files, or performing arithmetic operations on output data to achieve rescalings or obtain derived quantities. Many of our users perform these kinds of operations using general-purpose mathematical tools such as Matlab or spreadsheet programs; others write their own code to manipulate data files. For complex cases, there is no substitute for such tools. However, in many cases, the desired operations are relatively simple and it is much more convenient to automate this process using one of RSoft’s command line utilities. When this is possible, it avoids the sometimes tedious procedures involved in loading data files into another software tool, manipulating the data and saving it to disk again. Moreover, the command line utilities can be spawned directly from RSoft CAD’s scan tool, so that the post-processing is essentially transparent. In the following, we describe several utilities which are especially useful for processing results. All the utilities are intended for operates on data files which are in the form of a matrix. The files may have header lines for comments, but must otherwise consist of a rectangular array of data. This is true of most of the output files from RSoft products. Note that each utility may not be useful for each of RSoft software packages, and that a familiarity with RSoft’s CAD tool is assumed. For more information on the CAD tool, please read the appropriate chapters of this manual.

Page 162: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

152 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

bdconv – Matrix Manipulation The bdconv utility performs matrix transformations on data files. These transformations include extracting cross-sections (or “slices”) from a data file, changing the grid sizes in a file, and changing the file format of an arbitrary data file. This utility is designed to work with the RSoft file formats, but can be used with any arbitrary data file.

Syntax bdconv supports the following syntax and options:

usage: bdconv [options] input-file-name output-file-name(s)

options:

-? help - prints this message

-x<range> select range in x (<range> = # or #,#)

-y<range> select range in y (<range> = # or #,#)

-dx# set grid size in x

-dy# set grid size in y

-v<type> select output value type (<type> = a,r,i,z,q)

-c conjugate values

-t transpose matrix (3D only)

-a alternate output format with explicit x/y coordinates (2D/3D)

-amat alternate bare matrix output format (3D only)

-acodev CODE V "INT" output format (outfile1=FIL [outfile2=WFR])

Options • -x<range>

-y<range>

These two options are used to extract data either from a certain range in the data file or at a given value of one coordinate. This is useful to either reduce the domain of a 2D file, or to take a cross section from a 2D file and thus create a 1D file.

eg. Change the domain of a file input.m00 from [xmin, xmax, ymin, ymax] = [-5,5,-7,7] to [-2,3,-7,7] and save the output as output.dat: bdconv –x-2,3 input.m00 output.dat

eg. Calculate the cross section from input.m00 at Y=2 to create a file output.dat with a single column of data: bdconv –y2 input.m00 output.dat

• -dx# -dy#

These two options are used to set the grid size in either the X or Y directions to a desired setting. The points are interpolated between given data points so that the file can be set to either have more or less data points then before.

eg. To change the x grid size of input.m00 from 0.1 µm to 0.5 µm in order to decrease the size of the file: bdconv –dx.5 input.m00 output.dat

Page 163: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 153

The created file, output.dat, contains less grid points than the file input.m00, and therefore will be smaller and have a decreased resolution. The grid size can be decreased, and thus the size of the file would be increased. This option cannot create any new data, but it can be useful to increase or decrease the number of grid points.

• -v<type>

This option allows the user to convert a data file in one of the RSoft data formats into another RSoft format. The types are: a amplitude r real i imaginary z real and imaginary q amplitude and phase

The utility will take the input file, extract the data, and convert it to the requested format so the user can get the desired information. eg. To convert input.m00 from a data format of Real/Imaginary (3D) to Amplitude (3D): bconv –va input.m00 output.dat

• -c

This option takes the conjugate of the input data file and saves it to another data file. This is the same as manually taking a data file of type Real/Imaginary, and changing the sign of the columns of imaginary data.

• -t

This option will transpose the data in the input file and save it in the output file. This is useful when performing data manipulation or matrix calculations with the data file.

• -a

This option will output a file that has the absolute coordinates in x and y of the data points. Typically, a file using the RSoft file formats has several lines on the top which dictate the domain min and max as well as the number of points that are in the file for each row or column. This option will convert a file so that the absolute coordinates are given.

• -amat

This command will strip the header information from a data file in a RSoft file format. By using this, all domain and number of point information will be removed from the data file.

• -acodev

This command will convert a file from a RSoft file format to Optical Research Associate’s CODE V “INT” file format. This simplifies the task of using a file produced by an RSoft product into the CODE V package.

eg. To convert the rSoft file input.m00 into a FIL file output1.fld and WER file output2.fld: bdconv –acodev input.m00 output1.fld output2.fld

Note that there is another utility, codev2bp that converts files from the CODE V format to an *.ind file.

Page 164: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

154 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

bdutil – RSoft utility The bdutil utility performs several calculations within several RSoft programs, and is included in the installation so the user can perform these calculations separately. The utility can calculate the overlap integral between two fields, grating coefficients, the field size, and the far field projection. This utility is designed to work with the RSoft file formats as outlined in Appendix B. Depending on the type of calculation to be performed, the utility accepts one or more data files, calculates the requested information, and then outputs the new data either as a set of numbers or a new data file. The options for each switch will be examined, and then several examples will be given to illustrate these options.

Syntax bdutil supports the following syntax and options:

usage: bdutil -i [options] input-file-name1 [input-file-name2 [weight-file]]

bdutil -k [options] mode-file1 mode-file2 index-file1 index-file2

bdutil -s [options] input-file-name

bdutil -f [options] input-file-name output-file-name

options:

-? help - prints this message

-i power or overlap integral calculation (1 or 2 files)

-wx<range> select window in x (<range> = #,#)

-wy<range> select window in y (<range> = #,#)

-sq1 square field 1 in overlap integral

-k coupling coefficient calculation

-s field size calculation

-rp# rotate field in phi

-rt# rotate field in theta

-tx# translate field in x

-ty# translate field in y

-f[#] far field calculation: #=distance

-fa[u] far field calculation: intensity versus angle(u=unnorm)

-da# override default angular spacing for above

-l# set wavelength (default=1.0)

-n# set refractive index (default=1.0)

-r automatically resize far field domain

Options & Usage bdutil can perform several types of calculations. These include overlap integrals, grating coupling coefficients, spot size, field transformations, and far field projections. These calculations and supported options are listed below.

Overlap Integrals: -i This switch indicates that an overlap integral should be performed. The correct syntax for this option is:

bdutil –i [options] input-file1-name1 [input-file-name2 [weight-file]]

Page 165: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 155

• -wx<range> -wy<range>

As with any integration, careful attention needs to be given to the limits of integration used. By default, the utility uses the limits of integration which are given in the data files as coordinate ranges. If the files do not lie in the same range, the utility calculates the integral over the area where the files overlap in the coordinate space. The options –wx and –wy, however, allow for a calculation with custom limits of integration.

• -sq1

This option squares the first field before calculating an overlap integral. There are several combinations of input data files which this switch accepts, and the utility performs different calculations in each case. For the purposes of this discussion, it is assumed that the files contain only one coordinate, but the definitions can simply be generalized for files which contain two coordinates. Also, please note that these integrals are normalized. There are three different calculations which the utility can perform:

• If one data file is given which contains a function f(x), the utility calculates three integrals of the form

∫=2

1

)()(x

x

dxxhxS

where h(x) is equal to f(x), |f(x)|2, and |f(x)|4. Since f(x) can be a complex function, the value of the integral of h(x) = f(x) contains both a real and imaginary part.

• If two data files are given which contain functions f(x) and g(x) respectively, the utility calculates the overlap integral of these functions. This is defined by

2

1

*2

1

*

*

2

1

2

1

2

1

)()()()(

)()()(

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛=

∫∫

∫x

x

x

x

x

x

dxxgxgdxxfxf

dxxgxfxS

where the asterisk denotes the complex conjugate. The program returns values for both S(x) and |S(x)|2. Since a complex conjugate is taken, the order in which the files are input is important.

• If a weight function σ (x) is given in addition to two data files, the utility calculates the overlap integral using the form

2

1

*2

1

*

*

2

1

2

1

2

1

)()()()(

)()()()(

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛=

∫∫

∫x

x

x

x

x

x

dxxgxgdxxfxf

dxxgxxfxS

σ

where the asterisk denotes the complex conjugate. The program returns values for both S(x) and |S(x)|2. Since a complex conjugate is taken, the order in which the files are input is important.

eg. To calculate the integral of a function )(xf , contained in a file field.fld over a range of (-3,2):

bdutil –i –wx-3,2 field.fld eg. To calculate the overlap integral between two data files, field1.fld and field2.fld, with the default limits of integration and also squaring the first field:

bdutil –i –sq1 field1.fld field2.fld

Page 166: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

156 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

eg. To calculate the overlap integral between two data files, field1.fld and field2.fld, with a weight file, weight.fld, over the range (-2.3, 6.1), use the command:

bdutil –i –wx-2.3,6.1 field1.fld field2.fld weight.fld

Coupling Coefficients: -k This switch calculates the coupling coefficient, kappa, between two modes traveling in opposite directions in a grating. The correct syntax for this calculation is:

bdutil -k [options] mode-file1 mode-file2 index-file1 index-file2 At this time, there are no valid options for this switch. This switch requires four files to be input: two index profiles corresponding to the peak and mean index perturbation of the grating and two mode files which correspond to the two modes being studied. These files need to be in the file format specified in Appendix B for index profiles (.ipf) and mode files (.m00) respectively. They can be produced directly with RSoft software or through any other means as long as the file format is correct. eg. To calculate the coupling coefficient between a forward mode, mode1.m00, and a backward mode, mode2.m00, in a grating with a peak index profile of index1.ipf and a mean index profile of index2.ipf:

bdutil -k mode1.m00 mode2.m00 index1.ipf index2.ipf The utility will produce both the real and imaginary parts of kappa, as well as the effective index of the grating. Kappa is defined as:

( )2 2 *

2 10

*,4

vt t

eff t t

n n dxdykn dxdy

μ

μ μ μ

ξ ξκ

ξ ξ

+∞ +∞

−∞ −∞+∞ +∞

−∞ −∞

−= ∫ ∫

∫ ∫

where n1 is the mean index and n2 is the peak index. The calculated number is a dimensionless form of the above expression, in which the k0 factor is not present. This is consistent with the book: Raman Kashyap, “Fiber Bragg Gratings,” Academic press, 1998, pp.143, equation (4.3.6). It is also consistent with the paper: P. Correc, “Coupling Coefficients for Trapezoidal Gratings,” IEEE Journal of Quantum Electronics, Vol. QE-24, No. 1, 1988, pp.8, equation (1), (2) and (3). For more information on the coupling coefficient and background on coupled mode theory used, see the document KAPPA.DOC located in the C:\ rsoft\docs directory.

Field Size Calculation: -s This switch calculates the 1/e height and width of a field. Its correct syntax is

bdutil -s [options] input-file-name This switch returns the 1/e height and width in microns. For example, the 1/e width and height of a mode file mode.m00 can be found using the command:

bdutil –s mode.m00

Field Transformations: -rp#, -rt#, -tx#, or -ty# These switches either rotate a field or translate the center coordinate of a field. Note that you can combine any number of these 4 options in one command. The correct syntax for these switches is:

bdutil –r/t [options] input-file-name output-file-name These four switches, and their uses are:

• -rp#

This switch tilts the input field by the angle phi given in degrees so that it will propagate at an angle of phi in the XZ plane. Phi is measured from the Z axis.

• -rt#

This switch tilts the input field by the angle theta given in degrees so that it will propagate at an angle of theta in the YZ plane. Theta is measured from the Z axis.

• -tx#

Page 167: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 157

This switch translates the center of the input field in X by the given number of microns.

• -ty#

This switch translates the center of the input field in Y by the given number of microns. e.g. To tilt the file mode.m00 in the XZ plane by 30 degrees and save the result in the file mode_tile.m00:

bdutil –rp30 mode.m00 mode_tile.m00 e.g. To translate the file mode.m00 by 3 microns in the X direction, and 2 microns in the Y direction and save the result in the file mode2.m00:

bdutil –tx3 –ty2 mode.m00 mode2.m00

Far Field Calculation: -fa, –f#, or -f These switches calculate the spatial far field projection of a field file via a Fourier transform. It is assumed that the field propagates in a homogeneous dielectric region (free space). This computation starts with the spatial field, E(x,y), and can be outlined as:

• Step 1: The Fourier transform, F(kx,ky), is obtained.

• Step 2: The field F(kx,ky) is normalized such that:

( ), ( , )x yF x y dxdy F k k dxdy=∫ ∫

• Step 3: The angular distribution of the far field, I(θx, θy):

( ) ( ) ( ) ( ) ( )2

2 2, cos cos sin , sinx y x y x yI F π πθ θ θ θ θ θλ λ

⎛ ⎞= ⎜ ⎟⎝ ⎠

• Step 4: The angular distribution I(θx, θy) is normalized by its maximum value, resulting in a cumulative form of:

( ) ( ) ( ) ( ) ( )( )

( )

2

22 0

2 20 0

0

cos exp sinx xxx

E x j k x dxEI

I EE x dx

θ θθθ

−∞

−∞

= =∫

This equation illustrates the 2D version of the calculation; 3D is directly analogous. The correct syntax for these switches is:

bdutil –f [options] input-file-name output-file-name These three switches calculate the far field in different manners, and can have associated options:

• –fa

This switch produces a plot of Intensity vs. Angle, and computes all four steps above. This calculation is done via a Fourier integral. The utility also produces values for the beam divergence of the full angle at both the 1/e intensity as well as the ½ intensity. By default, the angular resolution of the Fourier transform is calculated directly from the range of data in the input file. To override this angular resolution, the option -da# can be used to specify a custom angular spacing. The –fau switch can be used to skip Step 4 above and produce unnormalized output.

• –f#

This switch calculates the field at a distance of # microns. This calculation is performed via the FFT-BPM method that propagates one step whose length is equal to the value of #. The option –r can be used to increase the boundary size if the field diverges outside of the boundary specified in the input file.

• -f

Page 168: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

158 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

This switch calculates the intensity of the far field in k-space via a Fourier integral, and computes the first two steps above.

For these switches, there are also global options which allow greater control over the calculation. They are:

• -l#

This option sets the wavelength in microns to be used for the propagation. By default, this value is set to be equal to 1µm.

• -n#

This option sets the refractive index that the field is propagated through. By default, it is assumed the field propagates through air, and therefore this value defaults to 1.

• -v<type>

This option allows the user to set the output format. The types are: a amplitude r real i imaginary z real and imaginary q amplitude and phase

eg. the far field projection of a field file field.fld given as intensity as a function of angle with an angular resolution of 0.1 degrees at a wavelength of 1.55 µm in a material with a refractive index of 1.5 can be saved in a file field2.fld: bdutil –fa –da.1 –l1.55 –n1.5 field.fld field2.fld eg. The field profile for the above case after a distance of 100 µm: bdutil –f100 –r –l1.55 –n1.5 field.fld field2.fld

Page 169: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 159

bmp2ind – Converts bitmap data into a user profile bmp2ind takes a bitmap image file and converts it into a user profile for use within the RSoft CAD.

Syntax bmp2ind supports the following syntax and options:

usage: bmp2ind [options]

options:

-i<input_file> specifies the input bitmap file

-o<output_file> specifies the name of the output profile file

-w<width> the unit width of the output profile

-h<height> the unit height of the output profile

-b<background_index> the lower index that the profile will scale to

-f<film_index> the upper index that the profile will scale to

-s<0 or 1> if 0, will not write in scientific format

-m<indexmap_file> specifies the index map to be used

-? gives help options

-help gives help options

Usage • -i

This option sets the input bitmap file.

• -o

This options sets the desired name of the output profile file.

• -w

This option sets the unit width of the output profile.

• -h

This option sets the unit height of the output profile

• -b

This option sets the index value that should be assigned to the lowest value in the bitmap file.

• -f

This option sets the index value that should be assigned to the highest value in the bitmap file.

• -s

This option, it set to 0, outputs the data in scientific format. If set to any other value, it does not.

• -m

This option specifies the index map to be used.

• -?, -help

Page 170: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

160 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

This option prints the help for this utility.

e.g. To convert a bitmap image file image.bmp to a index profile image.ipf, use the command: bmp2ind –iimage.bmp –oimage.ipf

Page 171: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 161

disperse – Calculating dispersion relations disperse takes a file containing effective index values and produces a dispersion relation.

Syntax disperse supports the following syntax and options:

usage: disperse [options] scandatafile

options:

-h view help summary

-v view derivative data in Notepad

-p plot derivative data in WinPlot

-b compute derivatives of beta vs k instead of neff vs lambda

-g compute group velocity and dispersion

-x# x data is (0=lambda,1=1/lambda,2=k) (default=0) The input file scandatafile must contain effective index data as a series of columns, with the first column containing wavelength/frequency data as indicated by the –x option.

Page 172: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

162 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

fhakit – Fast harmonic analysis of complex exponential time series The analysis of cavity modes and Q factors by FullWAVE’s Q-Finder tool is built around the techniques of Fast Harmonic Analysis (FHA) discussed in section 9.A.2. (of the FullWAVE manual). Given a time (or distance) series that is expected to be a sum of complex exponential terms (or approximately so):

( )( ) exp 2 c.c.k kk

f t c i v tπ= +∑

FHA can efficiently extract the complex frequency and amplitude of those terms which fall within a narrow frequency range. This analysis can be performed directly at the command line using the utility fhakit. This can be useful when you need to analyze a series that was not produced by an automated Q-Finder calculation, or if you wish to analyze a signal in a different way to that performed by Q-Finder. For example, from a single propagation, you could extract the complex frequencies of cavity modes that occur in quite different frequency bands by running fhakit several times on the same .tmn file. In contrast, because it searches dynamically for a resonance, Q-Finder focuses on a single frequency band in each run.

Syntax fhakit supports the following syntax and options:

• Extract complex frequencies and amplitudes using Fast Harmonic Analysis method: fhakit -fha [options] filename prefix

• Perform FFT and extract real peak frequencies: fhakit -fft [options] filename prefix

options:

-help [show this message]

-v <int> [verbosity (default=0)]

-q [quiet mode (default=0). Don’t write to standard output.]

-dt <float> [time (or distance) step. [default=value from column zero]]

-cols <string> [comma-separated list of columns to analyze [default=column one]]

-complex [interpret columns as complex pairs [default=no]]

-J <int> [number of local basis states for FHA expansion]

-numin <float> [minimum search frequency (required for FHA)]

-numax <float> [maximum search frequency (required for FHA)]

-toff <int> [time offset (number of points to drop at start of time series). [default=0]]

-tmax <int> [maximum number of time steps of time series to use [default=all]]

-n [don't suppress negative frequencies]

-t <float> [threshold: fraction of total energy to accept a peak [default=1e-5]]

Page 173: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 163

-rt <float> [relative threshold: fraction of energy of maximum accepted peak to accept peak [default=1e-4]]

-tol <float> [tolerance for consistency check of FHA peaks [default=1e-3]]

-spec [interpolate spectrum [default=0]]

-si [sort in order of decreasing intensity instead of increasing frequency]

Usage fhakit can be used in two modes, FHA or FFT, which are selected by the flag –fha or –fft. In each case, fhakit reads data from a file <filename> and writes a list of detected peaks and properties to a file named <prefix>_m.nufha or <prefix>_m.nufft, where m is an integer from 0 indicating the particular set of columns being analyzed. Intermediate output is written to a file named <prefix>_fha.log. In each mode, fhakit looks for all resonances in the bandwidth between numin and numax whose amplitudes satisfy certain criteria discussed in the explanation of options below. The output files contain the following data: resonance index, complex angular frequency k kω ν= , complex frequency

kν , complex amplitude ck, quality factor Q, an internal consistency error, the mean “energy” of the resonance, and the fraction of total energy in the signal represented by this resonance. The mean energy is simply the mean value of the norm of the function f:

( )1 2

0

1 N

jj

E f tN

=

= ∑ .

In FFT mode, the imaginary parts of the frequency and the Q factor are not available and are recorded as zeros. Further, the values of peak and fractional energy are not very meaningful. However, in FFT mode only, the total energy in the band between numin and numax is recorded in the header as the Bandwidth energy. By default, fhakit interprets the zeroth column of a data file as the time variable (which must be equally spaced) and reads real signal data from the first column. However, multiple columns including the zeroth column may be analyzed using the –cols option and interpreted as complex data using the –complex flag. If the zeroth column is used as signal data, then the time step must be specified using the –dt option. The options have the following meanings:

• -help

Prints the standard help message to standard output.

• -v <int>

Verbosity. A value of 0 means low output, 1 means verbose output. In particular, in verbose mode, a list of candidate eigenvalues is output to the screen. The candidate values list all detected resonances that lie within the requested frequency band regardless of their strength. This list of candidates is then culled according to the –tol, –t and –rt options. Thus this mode can be useful for identifying small peaks which are not showing up in the final answer.

• -q

Sets quiet mode. In this mode, all output is written only to log files. There is no text written to standard output.

• -dt <float>

Sets the value of the increment between time steps. This option is required if the - cols option specifies that the zeroth column is to be interpreted as data. Otherwise, it is optional and can be used to scale frequencies differently to the default time step extracted from the zeroth column.

• -cols <string>

Page 174: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

164 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

This option takes a comma-separated list of positive integers that specifies which columns of the file (counted from zero,) should be analyzed. The first requested column produces data in the file <prefix>_0.nufha, the second column produces <prefix>_1.nufha, etc. If the - complex option is set, the columns are treated as real and imaginary pairs and there must be an even number of columns specified.

• -complex

Indicates that the input file columns should be interpreted as real/imaginary pairs. If the - cols option is not specified, then columns 1 and 2 are analyzed as a complex pair.

• -J <int>

Number of basis states used for FHA calculation. Values above 400 or so will run increasingly slowly. Normally this should not need to be set.

• -numin <float>

Minimum value of frequency range in which to look for peaks. The argument is a plain frequency, not an angular frequency.

• -numax <float>

Maximum value of frequency range in which to look for peaks. The argument is a plain frequency, not an angular frequency.

• -toff <int>

Number of time steps to ignore at the start of the time series. The default is 0. This can be useful if the start of the time series is noisier than the rest of the signal and gives rise to spurious weak resonant peaks.

• -tmax <int>

Maximum number of time steps to include. This can be used to truncate a signal which degenerates into noise at large values of time. If both –toff and –tmax options are specified the range of time steps sampled is[toff, tmax+toff).

• -n

Include negative frequency peaks in analysis. By default, fhakit ignores negative frequencies. For a “clean” real signal, every positive frequency peak should be accompanied by a negative frequency of the same amplitude. For complex signals, the positive and negative frequency peaks are in general different. With this option, the allowed frequency range is effectively the union of [-numax, -numin] and [numin, numax].

• -t <float>

Specifies the threshold peak energy as a fraction of total energy in the signal. Any peak accounting for less than this fraction of energy is discarded. The default is 10e-5. Use a smaller value if you find peaks of interest are being ignored.

• -rt <float>

Specifies the relative threshold peak energy as fraction of the energy of the largest accepted peak. Any peak accounting for less than this fraction of the energy of the largest peak in the frequency search range is discarded. The default is 10e-3. Use a smaller value if you find peaks of interest are being ignored.

• -tol <float>

Specifies the tolerance of the eigenvalue consistency error. A consistency check is performed on each candidate peak to detect spurious peaks. The acceptable error can vary greatly depending on the quality of the signal. The default value is 10e-3, but for a low-noise signal, the achievable consistency error may be much lower. On the other hand, for a noisy signal, it may be necessary to set values as large as 10 or more. Use the following strategy to set this option. At first, use the default value. If fhakit fails to find the expected peaks, run it in verbose mode and check the consistency error reported in the list of candidate resonances. If all these errors are larger than the default 10e-3, then use this option to set a suitable value.

Page 175: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 165

• -spec

In FHA mode, generates a plot named <prefix>_spec_fha.pcs that represents the complex spectrum corresponding to the detected resonances. In FFT mode, generates a plot named <prefix>_spec_fft.pcs that contains the complex FFT in the specified frequency range.

• -si

Causes resonant peaks to be sorted in order of decreasing peak intensity instead of increasing real frequency.

Page 176: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

166 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

fwmodekit – Extract data from FullWAVE state file fwmodekit allows the user to extract data from state files created via the Continue Simulation option. This utility is unsupported and it’s behavior is subject to change.

Syntax fwmodekit supports the following syntax and options:

• fwmodekit (-h|--help)

Prints help message.

• fwmodekit --version

Prints version.

• fwmodekit (-s|--slice) (-x x0|-y y0|-z z0) --prefix <prefix> [--nobcs] (ex|ey|ez|hx|hy|hz|eden|hden|tden) <fstfile> <indfile>

For a 3D simulation, extracts and plots a 2D slice of field component to a plot file.

For a 2D simulation, extracts and plots the entire domain to a plot file.

• fwmodekit (-f|--fslice) (-x x0|-y y0|-z z0) --prefix <prefix> [--nobcs] [--lightcone <lightcone k-radius>] (ex|ey|ez|hx|hy|hz|eden|hden|tden) <fstfile> <indfile>

Extracts and plots fourier transform of slice of field component to a plot file.

• fwmodekit (--view3d) --prefix <prefix> (ex|ey|ez|hx|hy|hz|eden|hden|tden) <fstfile> <indfile>

For a 3D simulation, extracts and plots a 3D view of the field components. No symmetry boundary processing is applied.

• fwmodekit (--fileslice) --prefix <prefix> (-x x0|-y y0|-z z0) <slicefile> <indfile>

Takes an existing slice file on disk and uses the boundary conditions to extend the file to the full domain. The slice direction option (-x, -y or -z) is only required for slices taken from 3D calculations and the value (x0, y0, z0) is not important and can be set to 0.

• fwmodekit (-c|--comparefst) <file1>.fst <file2>.fst

Compares fields in two fst files and writes their fractional difference to standard output.

• fwmodekit (-a|--analyze) <file1>.fst

Summarizes properties of .fst file.

• fwmodekit (-v|--volume) --prefix <prefix> [--nu nu0] <fstfile> <indfile>

Finds the mode volume of the mode stored in the .fst file. The mode volume is defined as

V=[\int U_E(x) dx^3 ] / max[U_E(x)] where U_E is the electric energy density 1/2 epsilon |E(x)|^2. The resonant frequency can be specified. This helps to determine the required simulation length and is recommended though not required. When fwmodekit detects a symmetry-based subdomain calculation, the volume is multiplied by 2 for each direction in which symmetry conditions have been applied. This can be suppressed using the option --nobcs.

Page 177: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 167

Options: -q Quiet mode suppresses display of the generated file

in a plot window. -g Run FullWAVE calls in a GUI window --nobcs Suppress use of boundary conditions to unwrap field

profiles on subdomains. --np <int> Number of machines required for cluster calculation --machinefile <machfile> File of machine names required for cluster

calculation --timesteps <nsteps> Number of timesteps before output (default=1) --nu Resonant frequency of mode under analysis

Page 178: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

168 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

mat2bp – Converting Matrix data to the RSoft format This program converts raw matrix data into the RSoft file format.

Syntax mat2bp supports the following syntax and options:

usage: mat2bp input-file-name output-file-name

options:

-? help - prints this message

-x<range> set range in x (<range> = #,#)

-y<range> set range in y (<range> = #,#)

Usage mat2bp converts a raw matrix of data contained in a data file into a file in the RSoft format which could then be used as ain index profile, input field, etc. Since the RSoft file format contains information which relates the the domain of the data, the user needs to provide this information in order to convert the matrix into the rSoft format. This is done with the following two options:

• -x<range>

This options sets the X domain for the field file. The range should be input as #,#, where the first number is the domain min, and the second number is the domain max.

• -y<range>

This options sets the Y domain for the field file. The range should be input as #,#, where the first number is the domain min, and the second number is the domain max.

The utility will automatically add the appropriate header lines to the file. e.g. to covert the file data.dat into a RSoft file field.fld, where the input file is defined over an X range of (-10,10) and a Y range of (-1,6): mat2bp –x-10,10 –y-1,6 data.dat field.fld

Page 179: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 169

mathmat – Doing arithmetic with data files This program accepts multiple input files and combines the columns using mathematical expressions specified by the user. Any expression that would be valid in the CAD symbol table may be used. A circuit file may be specified to take advantage of existing symbols and new symbols may be defined in the command itself. mathmat is often useful with BandSOLVE band structure output, since BandSOLVE results have the wavevector as the independent variable when often we wish to express results as a function of the frequency. Tutorial 6 in the BandSOLVE manual contains demonstrations of this technique.

Syntax mathmat supports the following syntax and options:

usage: mathmat <symbol_table_expr> [input_files]

options:

-help [show this message]

-longhelp [show full help]

-p<int> [output precision (default=10)]

-f [use fixed point format]

-nohead [disable header]

-trunc [truncate at shortest file]

-bp<string> [use symbol table from BeamPROP .ind file]

-sym<string> [define new symbols]

Usage mathmat reads from standard input or a list of input files, performs operations on the columns defined by a list of symbol table expressions and writes the answer to standard output. The columns in the first input file are named 'a0', 'a1', 'a2',... The columns in the second input file are named 'b0', 'b1', 'b2',... and so on. These names are used in the symbol table expression which must be a comma separated list of normal math expressions using these variable names. Referencing a column which does not exist or using more letter prefixes than there are input files causes a fatal error. eg. Take the average of columns 1 and 2, and write as a function of column 0: mathmat 'a0,(a1+a2)/2' in.dat eg. Take the average of columns 1 in two files, and write as a function of column 0 of first file: mathmat 'a0,(a1+b1)/2' in1.dat in2.dat eg. Calculate a complicated expression: mathmat 'a0,sqrt(a1/pi)*(a2*3+b1*exp(b2))' in1.dat in2.dat

• -bp

Symbols from an existing .ind file may be accessed by specifying the .ind filename with the -bp option.

eg. Use symbols Period and delta defined in a file myhex.ind: mathmat –bp myhex.ind ‘a0*Period, delta*a1’ <in1.dat

Page 180: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

170 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

• -sym

New symbols may be defined directly with the –sym option:

eg. Define and use variables scale, scale1 and scale2. mathmat 'a0*scale' -sym'scale=3.1' <in1.dat

mathmat 'a0*scale1, a0*scale2' -sym'scale=3.1,scal2=scale*scale' <in1.dat

Page 181: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix E: Utilities • 171

shufflemat – Rearranging Data Files This program is designed for reordering or extracting the columns in one or more data files. An online manual page can be obtained by typing “shufflemat - help” or “shufflemat - longhelp” at a command prompt.

Syntax shufflemat supports the following syntax and options: usage: shufflemat [options] [output_files]

options:

-help [show this message]

-longhelp [show full help]

-t [transpose input data]

-ec<string> [extract named columns]

-pc<string> [permute named columns]

-p<int> [output precision (default=10)]

-f [use fixed point format]

-h [keep column titles] shufflemat reads from standard input, rearranges or extracts the columns and writes to specified output files, or to standard output if no output files are named. The columns in the input file are denoted by integers starting from 0.

Options • -t

The -t (transpose) option takes the whole matrix and writes the transpose matrix to output. Any header lines in the input are ignored. Only one output file is allowed.

eg. Place the transpose of the file in.dat in the file out.dat. shufflemat -transpose < in.dat > out.dat

The other options reorder or extract columns from the input:

• -ec

• The -ec (extract columns) option takes a string argument specifying which columns should be output. All other columns are dropped. The argument consists of a comma separated list of column numbers. Ranges may be specified using a hyphen (-) and multiple lists may be separated by a semicolon (;) Each range is output to a different filename specified on the command line. There can be no white space in the range specifications. If semicolons are used, the extraction string must be protected from the shell by quotes.

eg. Write columns 0, 2 and 3 of in.dat to standard output: shufflemat -ec 0,2,3 < in.dat

eg. Write columns 1,2,3 and 5 of in.dat to standard output: shufflemat -ec 1-3,5 < in.dat

eg. Write columns 1,2,3 to out1.dat and columns 4 and 6 to out2.dat: shufflemat -ec '1-3;4,6' out1.dat out2.dat < in.dat

Page 182: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

172 • Appendix E: Utilities RSoft CAD Environment 8.0 User Guide

• -pc

The -pc (permute columns) writes all input columns to output but performs permutations or cyclic rotations of specified columns. Permutations are expressed as a space-separated list of integers inside parentheses. Several permutations can be expressed together, but may have no common column numbers. Permutations lists separated by semicolons will be directed to different output files. The permutation string must be always protected from the shell by quotes.

eg. Swap columns 2 and 3, writing to standard output: shufflemat -pc '(2 3)' <ein.dat

eg. Rotate columns 2, 3 and 6 writing to standard output: shufflemat -pc '(2 3 6)' <ein.dat

eg. Rotate columns 2, 3 and 6, and columns 4 and 5, writing to standard output: shufflemat -pc '(2 3 6)(4 5)' <ein.dat

eg. Rotate columns 2, 3 and 6 in one output file and columns 4 and 5 in another file: shufflemat -pc '(2 3 6);(4 5)' <ein.dat out1.dat out2.dat

Page 183: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix F: Color Scales • 173

Appendix F: Color Scales

Color scale files provide a means to customize data presentation using RSoft products. All RSoft products, such as BeamPROP, FullWAVE, BandSOLVE, DiffractMOD, GratingMOD, and FemSIM are capable of producing large amounts of data, and choosing which data to present, and how to present it according to needs and taste is an important issue. Scale files are located in the directory <rsoft_dir>\RLOTDIR). Several default scale files are included, as well as several example files. You can also create and add your own custom files. It is assumed that the reader has a basic understanding of the RSoft CAD interface.

What are Scale Files? A scale file is a color lookup table which is used to graphically display 2D data sets. It has three main components: a data range, a color lookup table, and a color shades value.

Figure 1: A simple fiber mode profile as seen in WinPLOT, along with the default scale file used by BeamPROP to display field

profiles.

Data Range Each color scale is defined for a specific range. For example, most default color scales in BeamPROP have a range of [0,1], and FullWAVE a range of [-1,1]. The scale file used to display the fiber mode shown in Figure 1 is defined over a range of [0,1]. The scale is set by the highest and lowest values in the first column. The rest of the numbers serve as documentation of the value range of each color. Note that a numerical value which lies outside the defined range of a scale file will be plotted with a default color. For values which are greater than the defined range, White is used, and for values which are less than the defined range, Black is used.

Color Lookup Table Along with a data range, a color scale file also includes a color lookup table. The range for each color step equals the total range of the scale file divided by the number of rows, or color steps, minus one. Each color is then active when the plot value is in the incremental range for that row. For example, an 11 row scale between 0 and 1 would have 10 color

Page 184: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

174 • Appendix F: Color Scales RSoft CAD Environment 8.0 User Guide

ranges plus a color for the value 1, or a different color for 0-0.1, 0.1-0.2, 0.2-0.3, …0.9-1, and 1. The color scale shown in Figure 1 is defined by 6 colors, and assigns the color Magenta to the range 0.0-0.2, Blue to the range 0.2-0.4, …, and Red to the value 1.0. Note that the maximum number of color steps is 101.

Color Shades Upon close examination of the colors shown in Fig. 1, it may seem that they do not agree with the definition of the Color Lookup Table above, but, in fact, the program is blending the colors together. This effect is achieved through the use of Color Shades. This setting is not contained in the scale file, but can be set for each plot individually. The Color Shades number sets the number of interpolated points between each defined color. For example, setting this option equal to 4 results in 4 color points interpolated between each defined color point. This option can be very useful for reducing display related CPU usage during simulations, especially for slower systems. Fig. 2 shows the effect of changing the color scale number. More details about how to define this parameter will be given later on in this document when the usage of scale files is discussed.

Figure 2: Effect of the color shade number. a) Color shades = 1 b) Color shades = 4 c) Color shades = 32.

Using Color Scales There are three ways to change the scale file or color shades used to render a multi-color plot:

Setting the scale file during a simulation You can change the scale file used to render contour plots shown in a simulation window by first accessing the Simulation Parameters window, clicking on the Display… button, clicking the Scale File… button, and then choosing the desired scale file. Note that you can also directly type in the scale file name. Also, you cannot change the scale file used for a XY Contour plot. To set the number of color shades used, use the Color Shades field in the Display Properties box.

Changing the scale file after a simulation has completed You can change the scale file used to display computed results in a completed simulation window by choosing View/Display/Options/Color Scale from the pull-down menu, and then selecting the desired scale file. Note that you cannot change the number of color shades used after a simulation has completed.

Changing the scale file in a WinPLOT window. To change the scale file used to display data in a WinPLOT window, first open a saved plot. This can be done via the View Graphs icon in the CAD interface or through your computers OS (Windows, Linux, etc). Once the plot is opened, select Options/3D Data Display/Options/Color Scale from the pull-down menu, and choose the desired .scl file. To make this change permanent, you should save the file after making the change. You can change the number of color shades used by selecting Options/3D Data Display/Options/Color Shades. Note: For advanced users, you can make these changes directly in the Edit Window. Use the ‘/cscl“FILE”’ command to se the color scale, and the ‘/cnum#’ command to set the color shades. If you want more information about WinPLOT commands, please consult the WinPLOT manual.

Page 185: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix F: Color Scales • 175

Scale File Format Several color scale files are included in the RSoft distribution. The user can utilize these files for data presentation, or create customized scale files. Scale files are text based files which can be created/modified in any text editor, and should be saved in directory <rsoft_dir>\RPLOTDIR. A scale file consists of several rows of number/color combinations. The number of rows determines the number of color steps in the scale. The scale file format is:

Min Value Color

.

.

Max Value Color The first column contains the range information, and the second column contains the color lookup information. As stated before, the range information is only specified by the first and last line, or min and max value. The other numbers only serve to document the color ranges. There are two ways to specify the color information in a scale file:

Using Predefined Color Keywords You can use one of several predefined keywords to specify a color in a scale file. The color keywords currently recognized are shown in Fig. 3.

Figure 3: The predefined color keywords currently recognized with their corresponding RGB values.

An example of this type of color scale is the BeamPROP default scale shown in Fig. 1.

Using RGB Values If a color you wish to use is not defined be a color keyword, you can directly input RGB values for the desired color. The values accepted range from 0 to 255. The first column is the R value, the second the G value, and the third the B value. Example: The scale file fireice.scl, which is included in the distribution, is defined via RGB values.

Page 186: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

176 • Appendix F: Color Scales RSoft CAD Environment 8.0 User Guide

Figure 4: The color scale file fireice.scl which is defined through the use of RGB values. This file can be found in the directory <rsoft_dir>/RPLOTDIR.

Page 187: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix G: RSoft Polarization Convention • 177

Appendix G: RSoft Polarization Convention

The concept of polarization gives rise to many of the most interesting effects in electromagnetism. However, the labeling of polarizations is a common cause of confusion since there is no universal agreement on the definitions across different branches of photonics. This section describes the definitions used by RSoft software.

Background First, some background information.

1D Structures: In 1D, i.e. structures in which the refractive index varies as a function of only one dimension, Maxwell’s equations are always separable into two sets of three equations. In one set of equations, the electric field is oriented along one of the invariant directions (i.e. the direction along which the refractive index does not vary); in the other the magnetic field lies along the invariant direction. The simplest example of such a structure is the slab waveguide in which the field propagates along the z direction say, and the refractive index n(x) is a function of only x. For this case, it is universally agreed that TE polarization refers to the electric field lying along the invariant direction y, and TM polarization refers to the magnetic field lying along y. Note that we could equivalently refer to these states as y-polarization and x-polarization respectively, where we label the states by the direction in which the electric field points. Such problems are separable in all RSoft tools.

2D Structures: In 2D structures, i.e. structures in which the refractive index varies as a function of two dimensions, Maxwell’s equations are again separable, but only if the wave vector of the propagating solution lies in the plane of variation. This means that for the RSoft tools concerned with modeling propagation along a waveguide—BeamPROP, DiffractMOD and FemSIM—the equations are in fact not strictly separable. For the tools that permit propagation in the plane—FullWAVE and BandSOLVE—the equations are separable. The literature conventionally uses the labels TE to refer to states in which the electric field lies within the plane of variation, and TM to refer to states in which the electric field lies perpendicular to the plane of variation. As we see below, however, in the RSoft CAD these notations are reversed for consistency.

3D Structures: In 3D structures, i.e. structures in which the refractive index varies in all three dimensions, Maxwell’s equations are completely coupled and as a result, there is never a separation into TE and TM states.

Page 188: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

178 • Appendix G: RSoft Polarization Convention RSoft CAD Environment 8.0 User Guide

The RSoft Convention Optical scientists and engineers apply the labels TE and TM to several different types of electromagnetic modes. One class of modes is those that propagate along waveguides such as optical fibers or on-chip waveguides. Another class of modes are the eigenmodes of infinite structures such as the Bloch modes, which exist in photonic crystals. The usage of the terms TE and TM can be quite different between the various types of modes and a completely natural, uniform usage across all problems is both almost impossible to conceive and is at any rate inconsistent with the most common usages in the literature. Additionally, another possible source of confusion is the use of the terms 2D and 3D. In documenting the RSoft CAD environment and simulation tools, we count the propagation direction as a dimension, so a 2D structure is one whose cross-sectional profile varies as a function of one variable, usually x, while a 3D structure is one whose cross-sectional profile varies as a function of two variables, usually x and y. If we wish to indicate that a structure varies as a function of all three variables, we use the term z-dependent 3D structure. This convention occasionally gives rise to some confusing combinations of terminology. For example, a CAD representation of photonic crystal fiber along the z direction is regarded as a 3D structure. Propagating a field down the fiber in BeamPROP is performed in BeamPROP’s 3D simulation mode, but the problem of finding the same fiber’s modes in BandSOLVE would be solved in BandSOLVE’s 2DXY mode. While not ideal, such variations in terminology are inevitable given the large number of tools that share the RSoft CAD. In most cases, there is in practice little confusion. Now let us examine how polarization is labeled in RSoft tools.

2D CAD problems The most basic structures that can be drawn in the RSoft CAD are waveguides that vary as a function of only x. The classic slab waveguide is the simplest example of this class. As there is no variation in the y-direction, the previous discussion indicates that these waveguides fall into the category of 2D CAD designs. For such structures, it is familiar from elementary waveguide optics that in a TE mode, the electric field points along y and in a TM mode, the magnetic field points along y. In this case, the interpretation of “TE” is the literal meaning—the electric field is transverse to the direction of propagation (the wave vector k,) and implicitly the magnetic field is not transverse. Similarly, TM literally means that the magnetic field is transverse to the direction of propagation and the electric field is not. For 2D CAD designs, this is the precise definition used in all RSoft tools except BandSOLVE: TE means that the electric field lies along y, TM means that the magnetic field lies along y. (The 2D rule for BandSOLVE is discussed below.) Observe that we could also label these states by the direction in which the electric field points. That is, TE polarization could equivalently be called y-polarization and TM polarization called x-polarization. This is important when we turn to 3D problems.

3D CAD problems Now consider 3D CAD designs: those for which the waveguides vary in two transverse dimensions. For modal propagation along these waveguides, Maxwell’s equations are not separable and the literal meaning of TE and TM modes cannot be applied—virtually all the modes are hybrid and neither field is transverse to the direction of propagation. This point is crucial so let us restate it more forcefully:

For all 3D dielectric waveguides, there are no modes that are truly transverse electric or transverse magnetic.

(The only counter-examples to this statement are the TE0m and TM0m modes of azimuthally-invariant waveguides such as the step-index fiber or concentric Bragg (“Omniguide”) fibers, and even then, most of the observed modes, including the fundamental mode, are hybrid LP-like states). Nevertheless, in weakly guided structures (and even in quite strongly guided structures,) the modes can be close to transverse and the terms TE and TM are widely applied to modes of such structures. We therefore need to be precise about the way the labels are to be applied. The argument runs as follows. Typically, the longitudinal component of one field is much larger than the longitudinal component of the other. Thus it can be useful to think of the modes as quasi-TE and quasi-TM. Moreover, in many commonly encountered waveguides such as ribs, channels or diffused guides, the cross section varies more rapidly in one direction than the other, and as a

Page 189: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix G: RSoft Polarization Convention • 179

result the strengths of the transverse components differ markedly and can be designated as major and minor components. So consider a rib waveguide with propagation along z and where the layers of the guide are oriented along x:

This is the classic rib waveguide that is easily produced in the RSoft CAD. Then for a quasi-TE mode, the longitudinal field Ez is small, and the major field Ex is much larger than the minor field Ey. For a quasi-TM mode, the longitudinal field Ez is still small, but the major field is now Ey and the minor field is Ex. So in 3D simulations, the labels TE and TM should strictly be interpreted as quasi-TE and quasi-TM. This provides the explanation for one of the more confusing aspects of the RSoft CAD environment—for 3D structures, TE means the electric field is oriented predominantly along x, and TM means the field is oriented predominantly along y. This appears to be in conflict with the 2D definitions, for which TE means the electric field points along y. However, the rules are natural in the sense that in each case, TE refers to the polarization for which the electric field predominantly points along the transverse direction in which the index profile is most slowly varying. Note that this is “natural” only because most standard layered 3D waveguides drawn in the RSoft CAD tend to vary slowly along x. If for perverse reasons, you manage to construct a rib waveguide in which the layers are oriented along the y direction, then to find the mode that would conventionally be labeled quasi-TE, you will need to set the CAD to its TM polarization setting.

Simple rules to remember The above discussion provides a detailed motivation for the behavior of the CAD with respect to polarization, but is a lot to remember. For day-to-day work it is easier to work with the following simple rules:

2D Designs: In 2D designs, TE means that the electric field lies strictly along y; TM means that the magnetic field lies strictly along y. In terms of the electric field, we can also label these as y-polarization and x-polarization respectively.

3D Designs: In 3D designs there are (virtually) no true transverse modes, so we interpret the TE and TM buttons as meaning quasi-TE and quasi-TM for structures that have a natural orientation within the CAD. Their operational meaning is simply:

• For TE, the electric field is launched predominantly along x. This can be equivalently labeled as x-polarization.

Page 190: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

180 • Appendix G: RSoft Polarization Convention RSoft CAD Environment 8.0 User Guide

• For TM, the electric field is launched predominantly along y. This can be equivalently labeled as y-polarization.

Remember also that in FullWAVE and full-vector BeamPROP, the field components are all coupled so that for certain polarization-rotating structures, the fields will not necessarily maintain these orientations during propagation. The terms x-polarization and y-polarization are particularly useful for thinking about BeamPROP’s semi-vector mode. The semi-vector mode uses an approximation that neglects the coupling between the transverse components of the electric field. Thus in “TE” mode, the electric field is launched pointing along x and is guaranteed to continue with that orientation.

Complications There are some variations on these rules for certain tools.

3D FullWAVE In 3D FullWAVE, the definition of the launch polarization is complicated by the ability to rotate the propagation direction of the incoming field to any angle. In this case, the rules stated above are to be interpreted within the rotated frame.

BandSOLVE The polarization rules in BandSOLVE are quite different. The details are explained fully in the BandSOLVE manual but the pertinent facts are as follows:

• The TE/TM buttons in the CAD Global settings dialog have no effect. Polarization is controlled purely by the options in the main BandSOLVE dialog.

• In the subset of 2D problems for which the Bloch vector lies in the plane of index variation, TE and TM are strictly interpreted in the sense of transverse fields. TE polarization means that the electric field is perpendicular to the Bloch vector (and to the plane of index variation). TM polarization means that the magnetic field is perpendicular to the Bloch vector. For standard 2D photonic crystal layouts in the xz plane, this definition is consistent with the other tools in that for TE, the electric field lies along y. However, the definition is the opposite of the normal usage in the photonic crystal literature.

• In all other cases, the only allowed polarization state is hybrid. However, a weaker form of separation into even and odd parity states is allowed for certain structures with symmetry planes. Please refer to the BandSOLVE manual for further details.

3D DiffractMOD In 3D DiffractMOD, the definition of the launch polarization is complicated by the ability to rotate the propagation direction of the incoming field to any angle. In addition, the primary direction also needs to be defined in order to specify the grating. In this case, the rules stated above are to be interpreted within the rotated frame. In addition for 3D DiffractMOD computations, the global TE and TM settings do not control the polarization. The polarization is defined by value of the Polarization Angle field. An angle of 0° corresponds to p polarization while 90° corresponds to s polarization. For normal incidence and a primary direction along +Z, this implies that with Polarization Angle=0° the electric field lies along x, while for Polarization Angle=90° the electric field lies along y. Please refer to the DiffractMOD manual for further details.

Page 191: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix H: RSoft CAD Release Notes • 181

Appendix H: RSoft CAD Release Notes

This appendix summarizes the changes from previous versions of the RSoft CAD Environment. Notes for versions not listed here can be found in the BeamPROP manual.

Changes from Version 7.0 to Version 8.0 The change log which details the history of changes from Version 7.0 to Version 8.0 is available in the file README70.TXT.

New Capabilities and Improvements to the Program • The CAD window has been updated with new graphics, a new 'view' toolbar, and new buttons.

• Several options which used to be in the Global Settings (Polarization, BPM Vector Mode, FDTD dispersion/non-linearity, and anisotropy) have been relocated to an appropriate simulation parameters window.

• Several items in the Additional Segment Properties window have been moved to the Component Properties window. These include the Display Color and Merge Priority.

• The BPM-based mode solvers included with the CAD are now controlled via the Mode Options window which can be opened via the Mode Calculation Parameters window (which can be opened via the button in the left toolbar). This includes the mode method and mode numbers to find.

• Multipane Mode: This allows the user to view different axis views individually or all at once. Additionally, a 3D view is available. These options are only available in 3D (in 2D, the XZ plane is displayed). Multipane view has two modes, 1P and 4P which can be chosen from the view toolbar. In 1P mode, the user can select one cut direction from the view toolbar to display the appropriate cross section. In 4P view, all three cross-sections can be seen at once, as well as a 3D view.

• Cut Mode: This allows the user to view a particular cut of a structure when in an axis view mode. For example, when viewing a Y cut (the XZ plane), the structure at a particular Y position can be seen. This is done via the +/- buttons on the view toolbar. The current cut position, as well as the cut step size are shown and can be changed by the user. To return to the normal view, click the 'All' button.

• Added a new drawing mode for out of plane segments. This allows the user to place segments that are perpendicular to the drawing window. For example, segments can be placed along the Z axis when viewing the XY plane. This is not enabled for all axis views.

• Added the Y coordinate to all component properties windows to parallel X and Z.

• Added an "End equals Start" feature to segments for index and geometry.

Page 192: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

182 • Appendix H: RSoft CAD Release Notes RSoft CAD Environment 8.0 User Guide

• The Compute Index Profile window now has control for cut position as well as a choice of a either real or imaginary index.

• The Compute Index Profile window now has a Output Options window.

• Added a new mode for defining the refractive index absolutely. This feature should be used with caution.

• Expanded the CAD preferences window with additional options.

• Launch Fields are now displayed in the CAD window.

• The simulation domain is now displayed in the CAD window.

Changes from Version 6.0 to Version 7.0 The change log which details the history of changes from Version 6.0 to Version 7.0 is available in the file README60.TXT.

New Capabilities and Improvements to the Program • Added support to use a variable in file name fields to represent a data file. This allows for greater ease in

using different data files for each step of a scan.

• Introduction of an entirely new index/grid/mesh generation algorithm which improves accuracy and allows more flexible layout.

• Added support for non-uniform grids. This can significantly improve accuracy while improving simulation speed.

• Added support for the Material Editor for all simulation tools.

• Added a status line for all simulation tools. The status line now shows the cursor coodinates, as well as other information such as the BeamPROP Z step or the FullWAVE time step.

• Enabled a cross-cut feature in Winplot.

• Added support for arbitrary polgyons.

• Added abilty to control the angular range of plots for th far field output options.

• Added three new fields to the Advanced Components Properties dialog, which can be accessed through the More… button. These allow users to name each component, add comments, and provide special tags for advanced use.

• Expanded the sidewall angle option to include multilayer structure types.

Changes from Version 5.1 to Version 6.0 The change log which details the history of changes from Version 5.1 to Version 6.0 is available in the file README51.TXT.

New Capabilities and Improvements to the Program • Added a toolbar icon to bring up help for the currently active simulation program. The CAD/Simulation

help icons are distinguished with the words CAD/SIM at the lower right of the icons, respectively.

• Implemented a new capability for z-dependent user-defined index profiles. To enable recognition, you must set the variable change_profile = 1. Do not set this variable unnecessarily as it can affect performance.

Page 193: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Appendix H: RSoft CAD Release Notes • 183

• Implemented a new capability for data files to be used in expressions to represent a function of up to three variables.

• Major updates to FullWAVE, including new features for dispersion, nonlinearity, and magnetic materials (including negative refractive index materials). More information in the FullWAVE manual.

• Improved consistency and functionality of index display options for showing XY, XZ, and YZ cross-sections. For FullWAVE, BandSOLVE, and DiffractMOD, using the fdtd_index_profile = 1 option will give a more representative plot for XZ. This option will be made automatic and consistent with the other options in a future version.

• A new option for displaying the index profile of 3D geometries. The new option is called "3D Volume", and will generate a volumetric plot of the dielectric constant (i.e., N^2, not N).

• A major new feature for hierarchical CAD layout. This feature lets you include references to circuits (.ind files) inside another circuit.

• A new, unified array layout generator.

• Corrected an error in the "disperse" utility which produced incorrect results for some combinations of options.

• Adds a feature, applicable to all products, which allows the imaginary part of the reference background index to be specified in the additional component properties dialog. This can be important when defining some structures to improve index averaging of the imaginary index at interfaces.

• During an anisotropic calculation, all index tensors can be saved via the index_profile_all option.

• General speed improvements.

Page 194: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program
Page 195: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Index • 185

Index

.

.ind file 104, 105

1 1:1 14 1D 98 1D X 99 1D Y 99 1D Z 99 1P 12

2 2D 29 2D (XY) 98 2D (XZ) 98

3 3D 11, 29, 98 3D Shape 70 3D Slices 39 3D Structure Type 30, 45, 46, 47, 55, 56, 65, 73 3D Volume 39

4 4P 12, 14

A Accept Symbol 13, 28 Add 60 All 17 Allow Redraw 2D 40 Allow Redraw 3D 40 Angle 44, 67, 72 Angle Value 45 Arc 25, 57, 58

Arc Final Angle 59 Arc Initial Angle 59 Arc Mode 31 Arc Radius 59 Aspect Ratio 25 Attach On Edit 94 Attach Tolerance 94 Auto 35 Automatically Regrid after Zoom/Full 94

B Back Radius 67 Background Index 11, 17, 29, 45, 47, 48, 50, 51, 53, 55 BCC 101 boldface Courier 6 Browse… 89

C Center Color 93 Center Thickness 67, 68 Centered Cells 123 Choose Simulation Tool 24 Circle 25, 31, 104 Circle Mode 69 Circuit Reference 25, 32, 88 Clip Profile 83 color scale 41, 95 Color Scale… 41 Color Shades 41, 174 Combine Mode 60 Comment 61 Component Height 71 Component Color 93 Component Diameter 70 Component Height 30, 46, 47, 48, 50, 52, 53, 54, 56,

67, 70, 73 Component Name 61 Component Width 17, 30, 41, 46, 47, 48, 50, 51, 53, 55,

67 Compute Index Profile 19, 26, 37, 135 Compute Modes 26 Contents 102 Continue Simulation 166 ContourMap(XY) 39 ContourMap(XZ) 39 ContourMap(YZ) 39 Copy Selection 24 Correlation Length 84, 85 Cosine S-Bend 59 Cover Index 30, 50, 51, 53 Cube 104 Cubic 99, 100 Cubic Rings 100 cut 124

Page 196: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

186 • Index RSoft CAD Environment 8.0 User Guide

Cut Selection 24 Cut View Controls 25 Cylinder 70, 105 Cylindrical 68

D Data File 78, 80 Data File... 73 Default 55, 60, 63, 123 Default (Fixed Z) 39 Delete Material 111 Delete Symbol 28 Delta Tensor 62, 117 Diamond 101 Diamond Logs 101 diffused 55, 56 Dimensions 98 Dispersion/Nonlinearity 109, 115 display 111 Display Axes 111 Display Color 46 Display Mode 39, 40 Display Opts… 111 Display… 39, 174 Domain Max 121 Domain Min 19, 39, 121 Draw Center Line 93 Draw Edge 93 Draw Interior 93 Drawing Preferences 33 Drawing Tool Options 25 Duplicate Selection 24 Dynamic Color Shades 95

E E/H Control Parameter 62 Edge Color 93 Edit Global Settings 25 Edit Launch Field 26 Edit Layers 26 Edit Layers… 30, 53 Edit Materials 26 Edit Monitors 26 Edit Pathways 26, 90 Edit Symbols 13, 26, 27, 89 Edit User Profiles 26 Edit User Tapers 26 Edit X Axis View 24 Edit Y Axis View 24 Edit Z Axis View 24 Effective Index Calculation 29 Electrode/Heater Type 62 Ellipse 104 Elliptical Rods 105

Enable Nonuniform 121, 125 Epsilon 110 exponential 58 Export Draw Mode 87 Export Mask Layers 86, 87 Export Polygon Mode 87 Expression 28

F FCC 100 Final Angle 59 Flip Section Horizontally 24 Flip Section Vertically 24 Free 59 Free Space Wavelength 29 Front Radius 67

G gaussian 55 Global Symbols… 89 Grading Ratio 122 Grid Grading 122, 125 Grid Options… 121 Grid Ratio 125 grid size 123 Grid Size (Bulk) 122, 125 Grid Size (Edge) 122, 123, 125

H Height 74 Height Taper 57 HeightCoded 39, 40 Help for Active Sim.Program 24 Help for CAD program 24 Hexagon 103 Hexagonal 99 Hexagonal Prism 105 Hexagonal Rings 100 Horizontal 63

I Import/Export Resolution 86 Inactive 55, 92 Inactive Color 93 Index (imag part) 45, 54, 107 Index (Imag. part) 47, 48, 50, 51 Index Difference 11, 17, 29, 45, 46, 47, 48, 50, 51, 54,

55, 70, 77, 107, 117 Index Display Max 40 Index Display Min 40 Index File (*.ind) 89 Index Input Mode 94

Page 197: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Index • 187

index profile 30, 55, 76, 117 Index Taper 57 Initial Angle 59 Interface Alignment 123

K Keep these Settings Next Time 106

L Lattice Size 98, 99, 100, 101, 102 Lattice Type 105 Launch Data Browser 24 Launch MOST 26 Launch Power 116 Layer Table 53, 54 Layer Taper 53, 54, 81 lens 25, 31 Lens Mode 66 Lens Shape 67, 68 Line Thickness 74 linear 58 Litho Resolution 83 Litho Roughness 84, 85 Local Symbols… 90

M Magnetic Materials 109 Mark Type 74 Mask Layer 62, 86, 87 Material Name 110 Material Properties 110, 111 Max 77, 80 Measurement Data 111 Merge 60 Merge Priority 60 Min 77, 80 Min/Max 78 Minimum Division 125 Minimum Divisions 122 Model Dimension 11, 29, 55 Monitors… 91 More… 61, 82, 117, 182 Mu 110 Multi-Pane View 94

N Name 13, 28 New 91 New Circuit 10, 23, 28 New Material 110 New Profile… 56 New Symbol 13, 28

New Taper… 58 None 44, 58, 116, 123 Normalization 115, 116

O Offset 17, 44 Offset Value 17, 44 OK 8, 11, 17, 19, 28, 38, 41, 91 Open Circuit 24 Outline Color 40 Output All Index Tensor Elements 41 Output File Prefix 41, 141 Output Prefix 41, 106, 111 Output… 41

P Paste Clipboard Contents 24 Paste Offset 94 Pathway Color 93 pathway edit mode 90 Perform Simulation 8, 26 Perpendicular 63 Plot Aspect Ratio 41 Points 77, 78, 80 Polarization Angle 180 polygon 25, 32 Polygon Mode 71 Polygons 87 Position Taper 57 Priority 70 profile type 46, 92 Profiles… 76

Q quadratic 58

R Radial Calculation 29 Radius 59 Raised Sine S-Bend 59 Randomness 106 Raster 87 Raw 87 Rectangular Rods 105 Redraw Circuit 25 Reference Type 17, 44 Reject Symbol 28 Relative To 44, 45 Reload File 89 Rotate Selection 24 Rotation Angle 89 Rubberband Color 93

Page 198: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

188 • Index RSoft CAD Environment 8.0 User Guide

S Save Circuit 24 Save New Startup Settings 31 Sawtooth Wave 102 s-bend 25, 59 S-Bend Mode 31 Scale File… 174 Seg Axis 63, 64 Seg Orientation 63 Segment (In Plane) 13, 25 Segment (Out of Plane) 25 Segment Axis 64 Segment Mode (In Plane) 31 Segment Mode (Out of Plane) 31 Segment Orientation 63 select mode 25, 35 Select Tolerance 94 Send Forward/Send Backward 24 Send to Front/Send to Back 24 Show 3D Pane 94 Show 3D View 25 Show Color Scale 41 Show Direction Indicators 94 Show Launch Fields 94 Show Simulation Domain 93 sidewall angle 48, 62, 83 Sidewall Angle Ref 62 Sidewall Angle Ref. 83 simulated bend 62, 83 Simulated Bend Radius 62, 83 Simulation Program Filename 95 Simulation Region 25, 32 Simulation Tool 11, 29 Sine Wave 102 Single-Pane/Multi-Pane View 24 Slab Height 30, 51, 52, 53, 54 Slab Index 30, 51 Slice Output 95 Slice Position Y 39 Slice Step 39 Slices 39 SolidModel 39, 40 Source Type 77, 78, 80 Special Effects 106 Sphere 70, 105 Spherical 68 Square 103 Square Wave 102 Static Color Shades 95 step index 55, 56 Straddled Cells 123, 124 Surface Color 39, 40 SurfaceRelief 39 Symbols… 111

T Tag 61 Tapers… 54, 79, 81 Test 77 Time Monitor 25, 32 Triangle Wave 103

U Undo 13 Undo Last Change 24 Unit Peak 116 Unit Power 116 Use Anisotropic Materials 109 Use Single Precision 95 User # 56, 58

V Value 13 View Graphs 24, 174 View Grid 124 View Phi 40 View Theta 40

W Warn when automatically resizing grid 94 Width Measure 63 Width Taper 57 Width/Length 74 WireFrame 39 Woodpile 101, 105

X X 12, 44 X Cut 39 X Max 30 X Min 30 X Scale 72

Y Y 12, 44 Y Cut 39 Y Position Taper 57 Yes 83

Z Z 12, 44 z Axis 63, 64 Z Cut 39 Z Max 30 Z Min 30

Page 199: RSoft CAD Environment 8 - pudn.comread.pudn.com/downloads670/doc/2712627/rsoftcad.pdf · RSoft CAD Environment 8.0 User Guide Preface • 1 Preface The RSoft CAD is the core program

RSoft CAD Environment 8.0 User Guide Index • 189

Z Scale 72 Zoom Factor (>1.0) 94 Zoom Full 25 Zoom In 25 zoom mode 25, 34 Zoom Out 25 Zoom/Full Border 94