sentaurus structure editor -  · sentaurus structure editor contents iii sentaurus structure editor...

376
Sentaurus Structure Editor Version Y-2006.06, June 2006

Upload: truongnhan

Post on 28-May-2018

459 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

Sentaurus Structure EditorVersion Y-2006.06, June 2006

Page 2: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

ii

Copyright Notice and Proprietary InformationCopyright © 2006 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and proprietary information that is the property of Synopsys, Inc. The software and documentation are furnished under a license agreement and may be used or copied only in accordance with the terms of the license agreement. No part of the software and documentation may be reproduced, transmitted, or translated, in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without prior written permission of Synopsys, Inc., or as expressly provided by the license agreement.

Right to Copy DocumentationThe license agreement with Synopsys permits licensee to make copies of the documentation for its internal use only. Each copy shall include all copyrights, trademarks, service marks, and proprietary rights notices, if any. Licensee must assign sequential numbers to all copies. These copies shall contain the following legend on the cover page:

“This document is duplicated with the permission of Synopsys, Inc., for the exclusive use of __________________________________________ and its employees. This is copy number __________.”

Destination Control StatementAll technical data contained in this publication is subject to the export control laws of the United States of America. Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader’s responsibility to determine the applicable regulations and to comply with them.

DisclaimerSYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Registered Trademarks (®)Synopsys, AMPS, Arcadia, C Level Design, C2HDL, C2V, C2VHDL, Cadabra, Calaveras Algorithm, CATS, CRITIC, CSim, Design Compiler, DesignPower, DesignWare, EPIC, Formality, HSIM, HSPICE, Hypermodel, iN-Phase, in-Sync, Leda, MAST, Meta, Meta-Software, ModelTools, NanoSim, OpenVera, PathMill, Photolynx, Physical Compiler, PowerMill, PrimeTime, RailMill, RapidScript, Saber, SiVL, SNUG, SolvNet, Superlog, System Compiler, TetraMAX, TimeMill, TMA, VCS, Vera, and Virtual Stepper are registered trademarks of Synopsys, Inc.

Trademarks (™)Active Parasitics, AFGen, Apollo, Apollo II, Apollo-DPII, Apollo-GA, ApolloGAII, Astro, Astro-Rail, Astro-Xtalk, Aurora, AvanTestchip, AvanWaves, BCView, Behavioral Compiler, BOA, BRT, Cedar, ChipPlanner, Circuit Analysis, Columbia, Columbia-CE, Comet 3D, Cosmos, CosmosEnterprise, CosmosLE, CosmosScope, CosmosSE, Cyclelink, Davinci, DC Expert, DC Professional, DC Ultra, DC Ultra Plus, Design Advisor, Design Analyzer, Design Vision, DesignerHDL, DesignTime, DFM-Workbench, Direct RTL, Direct Silicon Access, Discovery, DW8051, DWPCI, Dynamic-Macromodeling, Dynamic Model Switcher, ECL Compiler, ECO Compiler, EDAnavigator, Encore, Encore PQ, Evaccess, ExpressModel, Floorplan Manager, Formal Model Checker, FoundryModel, FPGA Compiler II, FPGA Express, Frame Compiler, Galaxy, Gatran, HANEX, HDL Advisor, HDL Compiler, Hercules, Hercules-Explorer, Hercules-II, Hierarchical Optimization Technology, High Performance Option, HotPlace, HSIMplus, HSPICE-Link, iN-Tandem, Integrator, Interactive Waveform Viewer, i-Virtual Stepper, Jupiter, Jupiter-DP, JupiterXT, JupiterXT-ASIC, JVXtreme, Liberty, Libra-Passport, Library Compiler, Libra-Visa, Magellan, Mars, Mars-Rail, Mars-Xtalk, Medici, Metacapture, Metacircuit, Metamanager, Metamixsim, Milkyway, ModelSource, Module Compiler, MS-3200, MS-3400, Nova Product Family, Nova-ExploreRTL, Nova-Trans, Nova-VeriLint, Nova-VHDLlint, Optimum Silicon, Orion_ec, Parasitic View, Passport, Planet, Planet-PL, Planet-RTL, Polaris, Polaris-CBS, Polaris-MT, Power Compiler, PowerCODE, PowerGate, ProFPGA, ProGen, Prospector, Protocol Compiler, PSMGen, Raphael, Raphael-NES, RoadRunner, RTL Analyzer, Saturn, ScanBand, Schematic Compiler, Scirocco, Scirocco-i, Shadow Debugger, Silicon Blueprint, Silicon Early Access, SinglePass-SoC, Smart Extraction, SmartLicense, SmartModel Library, Softwire, Source-Level Design, Star, Star-DC, Star-MS, Star-MTB, Star-Power, Star-Rail, Star-RC, Star-RCXT, Star-Sim, Star-SimXT, Star-Time, Star-XP, SWIFT, Taurus, TimeSlice, TimeTracker, Timing Annotator, TopoPlace, TopoRoute, Trace-On-Demand, True-Hspice, TSUPREM-4, TymeWare, VCS Express, VCSi, Venus, Verification Portal, VFormal, VHDL Compiler, VHDL System Simulator, VirSim, and VMC are trademarks of Synopsys, Inc.

Service Marks (SM)MAP-in, SVP Café, and TAP-in are service marks of Synopsys, Inc.

SystemC is a trademark of the Open SystemC Initiative and is used under license.ARM and AMBA are registered trademarks of ARM Limited.All other product or company names may be trademarks of their respective owners.

Sentaurus Structure Editor, Y-2006.06

Page 3: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CONTENTS

Sentaurus Structure Editor

About this manual .............................................................................................................................xviiAudience .......................................................................................................................................................... xviiRelated publications.........................................................................................................................................xviiiTypographic conventions .................................................................................................................................xviiiCustomer support.............................................................................................................................................xviiiAcknowledgments .............................................................................................................................................. xx

Chapter 1 Overview...............................................................................................................................1Introduction to Sentaurus Structure Editor ..........................................................................................................1Modular tool ........................................................................................................................................................2

Units and base coordinate system .................................................................................................................3Scaling a device ......................................................................................................................................3

File input/output and restoring the state of the modeler .................................................................................3Graphical user interface ......................................................................................................................................4

Toolbars .........................................................................................................................................................5Lists ................................................................................................................................................................8View window...................................................................................................................................................8Command-line window ...................................................................................................................................9Configuring the command-line window ..........................................................................................................9Changing GUI attributes...............................................................................................................................10

Background color ..................................................................................................................................10GUI style ...............................................................................................................................................11GUI window size ...................................................................................................................................11GUI window position .............................................................................................................................11

Chapter 2 Basic operations................................................................................................................13Starting Sentaurus Structure Editor ..................................................................................................................13Running Sentaurus Structure Editor .................................................................................................................14

Batch mode ..................................................................................................................................................14Interactive mode...........................................................................................................................................14Loading a DF–ISE model during start-up .....................................................................................................14

Exiting Sentaurus Structure Editor ....................................................................................................................14File operations ...................................................................................................................................................15

Opening models ...........................................................................................................................................15Saving models..............................................................................................................................................15Importing files ...............................................................................................................................................16Printing .........................................................................................................................................................17Journaling.....................................................................................................................................................17

Chapter 3 Interactive operations .......................................................................................................19Undoing and redoing actions ............................................................................................................................19Perspective and orthographic views in 3D ........................................................................................................19Selecting the camera view ................................................................................................................................20Interactive mouse-operation modes ..................................................................................................................21Selecting the rendering mode ...........................................................................................................................24Viewing placements ..........................................................................................................................................25Viewing general geometric entities, masks, contacts, regions, and materials ..................................................26Viewing internal entity representations, entity numbering, relationships ...........................................................27Showing and hiding the coordinate axes ..........................................................................................................27Using the grid for drawing .................................................................................................................................28Scaling the view ................................................................................................................................................28

iii

Page 4: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCONTENTS

Alternative camera operators ............................................................................................................................28Shortcut keys ....................................................................................................................................................28Two-dimensional drawing operators .................................................................................................................29

Chapter 4 Working with structures....................................................................................................31Creating a new structure ...................................................................................................................................31

Clearing the database ..................................................................................................................................31Generating models .......................................................................................................................................31Contact handling ..........................................................................................................................................32

Creating 2D regions ..........................................................................................................................................33Creating rectangles and polygons................................................................................................................33Circular region ..............................................................................................................................................33Elliptical region .............................................................................................................................................33

Creating 2D ruled regions .................................................................................................................................33Creating line and spline edge segments ...........................................................................................................35Using snap-to-existing-vertices in 2D ................................................................................................................35Adding a vertex in 2D ........................................................................................................................................35Moving a vertex in 2D .......................................................................................................................................36Automatic region-naming ..................................................................................................................................36Using exact coordinates ....................................................................................................................................37Overlap behavior ...............................................................................................................................................37Work planes ......................................................................................................................................................38Coordinate systems ..........................................................................................................................................39Explicit Boolean operations ...............................................................................................................................40Changing the material attribute .........................................................................................................................41Changing the region-name attribute ..................................................................................................................41Separate lumps .................................................................................................................................................42Defining parameters ..........................................................................................................................................42Rounding in two dimensions .............................................................................................................................44Chamfering in two dimensions ..........................................................................................................................44Two-dimensional model cleanup and boundary simplification ..........................................................................45

Example I: Vertex alignment ........................................................................................................................47Example II: Vertex removal ..........................................................................................................................47Example III: Edge and short edge removal ..................................................................................................48Example IV: Vertex alignment to a straight line............................................................................................48Example V: Breaking nearly axis-aligned edges ..........................................................................................49Example VI: Merging collinear edges...........................................................................................................49Example VII: Deleting nearly collinear edges...............................................................................................50

Creating a 2D cut ..............................................................................................................................................51Chamfering edges in three dimensions .............................................................................................................51Rounding edges in three dimensions ................................................................................................................52Tapering ............................................................................................................................................................52

Draft plane center.........................................................................................................................................54Draft plane direction .....................................................................................................................................54Example I .....................................................................................................................................................54Example II ....................................................................................................................................................55

Removing a vertex in two dimensions ...............................................................................................................56Removing a region ............................................................................................................................................56Extrusion ...........................................................................................................................................................57

Extruding a 2D device to generate a 3D model............................................................................................57Extruding faces of a 3D model .....................................................................................................................58

Sweep operations .............................................................................................................................................58Sweep distance ............................................................................................................................................59

iv

Page 5: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CONTENTS

Sweep along a vector...................................................................................................................................60Sweep around an axis..................................................................................................................................61Sweep along a wire ......................................................................................................................................62

Example I ..............................................................................................................................................62Sweep options..............................................................................................................................................63

Rigid sweep...........................................................................................................................................63Mitering .................................................................................................................................................63

Slicing ................................................................................................................................................................64Basic transformations: Scale, translate, rotate, reflect ......................................................................................65

Scale ............................................................................................................................................................65Translate ......................................................................................................................................................65Rotate...........................................................................................................................................................66Reflect ..........................................................................................................................................................67Transformation examples.............................................................................................................................67Transformations ...........................................................................................................................................68Scheme extensions for transformations .......................................................................................................69

Split–insert operations on a device ...................................................................................................................70Extending a device ............................................................................................................................................71Generating an interconnect structure ................................................................................................................71

Chapter 5 Mesh operations ................................................................................................................73Placements and definitions ...............................................................................................................................73

Common features to all placements.............................................................................................................75Refinement parameters................................................................................................................................76Multibox parameters.....................................................................................................................................77Constant profile parameters .........................................................................................................................77Analytic profile parameters...........................................................................................................................77External profile parameters ..........................................................................................................................78Defining contacts..........................................................................................................................................78

Opening the Contact Sets dialog box....................................................................................................78Defining a contact set............................................................................................................................79Deleting a contact set............................................................................................................................79Activating a contact set .........................................................................................................................79Placing a contact...................................................................................................................................79Deleting a contact .................................................................................................................................80Imprinting contacts ................................................................................................................................81

Automatic contact extraction ........................................................................................................................84Building the mesh ..............................................................................................................................................85

Overview ......................................................................................................................................................85Build Mesh dialog box ..................................................................................................................................86Curve and surface tessellation for 2D/3D DF–ISE boundary generation .....................................................87Global refinement control .............................................................................................................................87

Example ................................................................................................................................................88Predefined surface tolerance values ............................................................................................................89Additional facewise refinement control.........................................................................................................89Scheme functions for controlling tessellation ...............................................................................................90

Example I: Local refinement control......................................................................................................90Example II: Local refinement control.....................................................................................................92

Tessellating spherical faces ..............................................................................................................................93Postprocessing, DF–ISE/TDR grid and data viewer .........................................................................................94

Interactive postprocessing using GUI...........................................................................................................94Notes on using the Grid Postprocessing dialog box .............................................................................96

v

Page 6: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCONTENTS

Mesh value blanking.....................................................................................................................................97Data probing.................................................................................................................................................98Cut plane ......................................................................................................................................................98Scheme commands for postprocessing .......................................................................................................99

Geometry editor versus grid and data viewer ...................................................................................................99

Chapter 6 Process emulation...........................................................................................................101Overview .........................................................................................................................................................101Base coordinate system ..................................................................................................................................103Mask layout input and mask generation ..........................................................................................................103

Mask input ..................................................................................................................................................104Direct mask generation ..............................................................................................................................104

Process emulation commands ........................................................................................................................106Procem syntax and keywords .........................................................................................................................107Converting between earlier and current Procem syntax .................................................................................108Handling mixed models ...................................................................................................................................109Process emulation steps .................................................................................................................................110

Domain definition........................................................................................................................................110Substrate generation ..................................................................................................................................110Patterning operations .................................................................................................................................110

Anisotropic pattern ..............................................................................................................................110Isotropic pattern ..................................................................................................................................111

Deposition ..................................................................................................................................................111Anisotropic deposition .........................................................................................................................111Isotropic deposition .............................................................................................................................112

Etching .......................................................................................................................................................113Example: Etching operation using different etch options ....................................................................113

Fill operation...............................................................................................................................................114Polishing.....................................................................................................................................................114Additional process steps ............................................................................................................................115

Procem features ..............................................................................................................................................115Directional operations.................................................................................................................................115Shadowing..................................................................................................................................................116The PT algorithm........................................................................................................................................116Procem algorithms .....................................................................................................................................117

Doping and implantation in Procem ................................................................................................................117Constant doping .........................................................................................................................................117Gaussian doping profile..............................................................................................................................118Implantation of analytic and imp3d profiles ................................................................................................118

Sentaurus Process and Sentaurus Structure Editor interaction ......................................................................120Concept ......................................................................................................................................................120Strategy ......................................................................................................................................................120Sentaurus Process and Sentaurus Structure Editor as a Sentaurus Workbench project ..........................121Scheme extensions for Sentaurus Process and Sentaurus Structure Editor interaction ...........................122

sdesp:begin.........................................................................................................................................122sdesp:define-step................................................................................................................................122sdesp:finalize ......................................................................................................................................123

Tool integration: Ligament Flow Editor ............................................................................................................123Process emulation example ............................................................................................................................125

vi

Page 7: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CONTENTS

Chapter 7 Advanced features...........................................................................................................131Background image loader ...............................................................................................................................131User-defined dialog boxes ..............................................................................................................................132

Example .....................................................................................................................................................133Step 1: Define a Scheme function that the dialog box will execute.....................................................133Step 2: Define and configure the dialog box .......................................................................................134Step 3: Launch the dialog box.............................................................................................................134

Starting Sentaurus Structure Editor with user-defined variables .....................................................................135 Example ....................................................................................................................................................135

User-defined Scheme plug-ins and applications .............................................................................................135

Chapter 8 Geometry representation and entity debugging...........................................................137Scheme data types .........................................................................................................................................137Entity IDs and attributes ..................................................................................................................................138

Topological entity types..............................................................................................................................139Selecting entities ........................................................................................................................................140Finding attributes........................................................................................................................................140Automatic region-naming ...........................................................................................................................141DATEX material..........................................................................................................................................141Changing region attributes .........................................................................................................................142

Debugging topological entities ........................................................................................................................142Identifying topological entities ....................................................................................................................142Finding vertex positions..............................................................................................................................143Traversing the topology graph....................................................................................................................143Other entity query functions .......................................................................................................................143

Topology Browser ...........................................................................................................................................144Scheme functions for debugging entities ........................................................................................................144Examples ........................................................................................................................................................146

Debugging ..................................................................................................................................................146Using entity IDs in geometric operations....................................................................................................146

Chapter 9 Scheme extensions .........................................................................................................149ACIS Scheme extensions ...............................................................................................................................149

Journaling...................................................................................................................................................149journal:abort ........................................................................................................................................149journal:append ....................................................................................................................................149journal:load..........................................................................................................................................150journal:off ............................................................................................................................................150journal:on ............................................................................................................................................150journal:pause.......................................................................................................................................151journal:resume ....................................................................................................................................152journal:save.........................................................................................................................................152journal:step..........................................................................................................................................152

Entity queries and debugging.....................................................................................................................153body? ..................................................................................................................................................153edge? ..................................................................................................................................................153edge:circular?......................................................................................................................................153edge:elliptical? ....................................................................................................................................154edge:end .............................................................................................................................................154edge:length .........................................................................................................................................154edge:linear ..........................................................................................................................................155edge:linear? ........................................................................................................................................155edge:mid-point ....................................................................................................................................155

vii

Page 8: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCONTENTS

edge:start ............................................................................................................................................156edge:type ............................................................................................................................................156entity:box.............................................................................................................................................156entity:copy ...........................................................................................................................................157entity:debug.........................................................................................................................................157entity:deep-copy..................................................................................................................................158entity:delete.........................................................................................................................................158entity:dist .............................................................................................................................................158entity:edges.........................................................................................................................................159entity:faces ..........................................................................................................................................159entity:loops ..........................................................................................................................................159entity:lumps .........................................................................................................................................160entity:shells .........................................................................................................................................160entity:vertices ......................................................................................................................................161face:area .............................................................................................................................................161face:conical? .......................................................................................................................................161face:cylindrical?...................................................................................................................................162face:planar? ........................................................................................................................................162face:spherical? ....................................................................................................................................162face:spline? .........................................................................................................................................163face:toroidal?.......................................................................................................................................163loop? ...................................................................................................................................................163loop:external?......................................................................................................................................164lump? ..................................................................................................................................................164shell?...................................................................................................................................................164solid?...................................................................................................................................................165vertex? ................................................................................................................................................165wire?....................................................................................................................................................165wire-body?...........................................................................................................................................166wire:planar?.........................................................................................................................................166

Basic geometric variables and entities .......................................................................................................166gvector ................................................................................................................................................166gvector:+ .............................................................................................................................................167gvector:- ..............................................................................................................................................167gvector? ..............................................................................................................................................168gvector:copy........................................................................................................................................168gvector:cross.......................................................................................................................................168gvector:dot ..........................................................................................................................................169gvector:from-to ....................................................................................................................................169gvector:length......................................................................................................................................169gvector:parallel?..................................................................................................................................170gvector:perpendicular?........................................................................................................................170gvector:reverse ...................................................................................................................................170gvector:scale .......................................................................................................................................171gvector:set!..........................................................................................................................................171gvector:set-x!.......................................................................................................................................171gvector:set-y!.......................................................................................................................................172gvector:set-z!.......................................................................................................................................172gvector:transform ................................................................................................................................172gvector:unitize .....................................................................................................................................173gvector:x..............................................................................................................................................173gvector:y..............................................................................................................................................173gvector:z..............................................................................................................................................174

viii

Page 9: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CONTENTS

position................................................................................................................................................174position?..............................................................................................................................................175position:distance .................................................................................................................................175position:set! .........................................................................................................................................175position:set-x! ......................................................................................................................................176position:set-y! ......................................................................................................................................176position:set-z! ......................................................................................................................................176position:x .............................................................................................................................................177position:y .............................................................................................................................................177position:z .............................................................................................................................................177

Managing models .......................................................................................................................................178filter:type..............................................................................................................................................178get-body-list.........................................................................................................................................178part:entities..........................................................................................................................................179part:load ..............................................................................................................................................179part:save .............................................................................................................................................180part:save-selection ..............................................................................................................................180roll .......................................................................................................................................................181

Solid body queries and debugging .............................................................................................................181solid:area.............................................................................................................................................181solid:massprop ....................................................................................................................................182

Managing displays and views.....................................................................................................................183entity:display .......................................................................................................................................183entity:erase..........................................................................................................................................184render:rebuild ......................................................................................................................................184

Managing entity views ................................................................................................................................184entity:set-color.....................................................................................................................................184view:vertices........................................................................................................................................185

Support functions for finding entity IDs (both geometry and Ref/Eval windows) .............................................185convert-to-degree................................................................................................................................185convert-to-radian .................................................................................................................................186find-body-id .........................................................................................................................................186find-edge-id .........................................................................................................................................186find-face-id ..........................................................................................................................................187find-material-id ....................................................................................................................................187find-region-id .......................................................................................................................................187find-vertex-id .......................................................................................................................................188find-edge-id-drs ...................................................................................................................................188find-face-id-drs ....................................................................................................................................188find-body-id-drs ...................................................................................................................................189find-vertex-id-drs .................................................................................................................................189find-drs-id ............................................................................................................................................189

General Scheme extensions ...........................................................................................................................190Managing displays and views.....................................................................................................................190

sde:delay-graphics-update..................................................................................................................190sde:delay-graphics-update?................................................................................................................190sde:off-lights........................................................................................................................................191sde:on-lights........................................................................................................................................191sde:set-background-color....................................................................................................................191sde:set-view-mode ..............................................................................................................................192sde:set-window-position......................................................................................................................192sde:set-window-size............................................................................................................................192sde:set-window-style...........................................................................................................................193

ix

Page 10: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCONTENTS

sde:toggle-lights ..................................................................................................................................193sde:view-set-light-intensity ..................................................................................................................193sde:view-set-visible-area.....................................................................................................................194sde:zoom-all........................................................................................................................................194

Show and hide entities ...............................................................................................................................194sde:clear..............................................................................................................................................194sde:hide...............................................................................................................................................195sde:hide-contact..................................................................................................................................195sde:hide-interface................................................................................................................................196sde:hide-mask.....................................................................................................................................196sde:hide-material.................................................................................................................................196sde:hide-region ...................................................................................................................................197sde:refresh ..........................................................................................................................................197sde:show .............................................................................................................................................198sde:showattribs ...................................................................................................................................198sde:show-contact ................................................................................................................................199sde:show-grid......................................................................................................................................199sde:show-interface ..............................................................................................................................199sde:show-mask ...................................................................................................................................200sde:show-material ...............................................................................................................................200sde:show-pcurves ...............................................................................................................................201sde:show-region..................................................................................................................................201sde:view-filter-reset .............................................................................................................................202sde:xshow ...........................................................................................................................................202sde:xshow-contact ..............................................................................................................................203sde:xshow-interface ............................................................................................................................203sde:xshow-mask .................................................................................................................................203sde:xshow-material .............................................................................................................................204sde:xshow-region ................................................................................................................................204

Managing boundary images .......................................................................................................................205sde:create-bg-image ...........................................................................................................................205sde:show-bg-image.............................................................................................................................205sde:hide-bg-image ..............................................................................................................................205sde:delete-bg-image ...........................................................................................................................206sde:bg-image-transparency ................................................................................................................206

Exporting boundaries and meshing .................................................................................................................206sde:build-mesh....................................................................................................................................206sde:separate-lumps.............................................................................................................................207sdeio:save-2d-dfise-bnd......................................................................................................................208sdeio:save-2d-tdr-bnd .........................................................................................................................209sdeio:save-3d-dfise-bnd......................................................................................................................209sdeio:save-3d-tdr-bnd .........................................................................................................................210sdeio:save-dfise-bnd ...........................................................................................................................210sdeio:save-tdr-bnd ..............................................................................................................................211

Configuring Noffset parameters for meshing..............................................................................................211sdenoffset:create-boundary ................................................................................................................211sdenoffset:create-global......................................................................................................................212sdenoffset:create-isoline .....................................................................................................................212sdenoffset:create-noffset-block ...........................................................................................................213sdenoffset:create-noffset-interface......................................................................................................213

Controlling delaunizer module....................................................................................................................214sdedelaunizer:set-parameters.............................................................................................................214sdedelaunizer:set-tolerance ................................................................................................................215

x

Page 11: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CONTENTS

Controlling tessellation for boundary output ...............................................................................................215refinement:props .................................................................................................................................215sde:attach-refinement .........................................................................................................................215sde:define-refinement .........................................................................................................................216sde:delete-refinement .........................................................................................................................216sde:hide-refinement ............................................................................................................................217sde:remove-refinement .......................................................................................................................217sde:set-refinement ..............................................................................................................................217sde:setrefprops ...................................................................................................................................218sde:show-refinement...........................................................................................................................218

Opening and saving models ............................................................................................................................219sde:load-sat.........................................................................................................................................219sde:open-model ..................................................................................................................................219sde:part-load .......................................................................................................................................219sde:save-model...................................................................................................................................220sde:write-hsf........................................................................................................................................221sdeio:readbnd .....................................................................................................................................221sdeio:readgrd ......................................................................................................................................221sdeio:read-tdr-bnd...............................................................................................................................222

Managing and scaling parameters ..................................................................................................................222sde:define-parameter ..........................................................................................................................222sde:delete-parameter ..........................................................................................................................223sde:save-parameters ..........................................................................................................................223sde:scale-dfise-bnd .............................................................................................................................224sde:round-dfise-bnd ............................................................................................................................224sde:stripextension ...............................................................................................................................225

Managing DATEX material attributes ..............................................................................................................225sde:add-material .................................................................................................................................225

Utility functions ................................................................................................................................................226sde:create-dialog.................................................................................................................................226sde:dialog-add-input............................................................................................................................226sde:dialog-add-pixmap........................................................................................................................227sde:dialog-delete.................................................................................................................................227sde:dialog-ok-command......................................................................................................................227sde:dialog-show ..................................................................................................................................228sde:display ..........................................................................................................................................228sde:exact-coords?...............................................................................................................................229sde:fix-imprint......................................................................................................................................229sde:fix-orientation................................................................................................................................229sde:get-default-material ......................................................................................................................230sde:gui-get-integer ..............................................................................................................................230sde:gui-get-real ...................................................................................................................................231sde:gui-get-string ................................................................................................................................231sde:info................................................................................................................................................231sde:material-type.................................................................................................................................232sde:pick-point-on-wp ...........................................................................................................................232sde:pick-two-points-on-wp ..................................................................................................................232sde:post-message...............................................................................................................................233sde:restore-cursor ...............................................................................................................................233sde:scale-scene ..................................................................................................................................233sde:scmwin-get-font-families...............................................................................................................234sde:scmwin-get-font-family .................................................................................................................234sde:scmwin-get-font-size ....................................................................................................................234

xi

Page 12: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCONTENTS

sde:scmwin-select-font........................................................................................................................235sde:scmwin-set-font-family..................................................................................................................235sde:scmwin-set-font-size.....................................................................................................................235sde:scmwin-set-prefs ..........................................................................................................................236sde:scmwin-set-window-height ...........................................................................................................236sde:scmwin-suppress-output ..............................................................................................................236sde:selected-entities ...........................................................................................................................237sde:selected-refeval-windows .............................................................................................................237sde:selected-refinements ....................................................................................................................237sde:set-default-material.......................................................................................................................238sde:set-rendering-mode ......................................................................................................................238sde:set-selection-level.........................................................................................................................238sde:set-view-operator..........................................................................................................................239sde:setup-grid .....................................................................................................................................239sde:test-entity......................................................................................................................................239sde:wait-cursor....................................................................................................................................240sdegeo:curve-intersect........................................................................................................................240sdegeo:distance ..................................................................................................................................241sdegeo:get-region-counter ..................................................................................................................241sdegeo:point-entity-relationship ..........................................................................................................241sdegeo:ray-test ...................................................................................................................................242sort ......................................................................................................................................................242system:command ................................................................................................................................243system:getenv .....................................................................................................................................243

Editing boundaries ..........................................................................................................................................243Creating entities .........................................................................................................................................243

sde:new-region-name .........................................................................................................................243sde:split-solid ......................................................................................................................................244sdegeo:2d-cut .....................................................................................................................................244sdegeo:3d-cut .....................................................................................................................................245sdegeo:create-circle, sdegeo:create-circular-sheet ............................................................................245sdegeo:create-cone ............................................................................................................................246sdegeo:create-cuboid..........................................................................................................................247sdegeo:create-cylinder........................................................................................................................248sdegeo:create-ellipse, sdegeo:create-elliptical-sheet .........................................................................249sdegeo:create-ellipsoid .......................................................................................................................250sdegeo:create-linear-edge ..................................................................................................................251sdegeo:create-polygon, sdegeo:create-polygonal-sheet ....................................................................251sdegeo:create-polyline-wire ................................................................................................................251sdegeo:create-prism ...........................................................................................................................252sdegeo:create-pyramid .......................................................................................................................252sdegeo:create-rectangle .....................................................................................................................253sdegeo:create-reg-polygon .................................................................................................................254sdegeo:create-ruled-region .................................................................................................................254sdegeo:create-sphere .........................................................................................................................255sdegeo:create-spline-wire ...................................................................................................................256sdegeo:create-torus ............................................................................................................................256sdegeo:create-triangle, sdegeo:create-triangular-sheet .....................................................................257sdegeo:get-auto-region-naming ..........................................................................................................257sdegeo:get-default-boolean ................................................................................................................258sdegeo:insert-vertex............................................................................................................................258sdegeo:set-auto-region-naming ..........................................................................................................258sdegeo:set-default-boolean.................................................................................................................259

xii

Page 13: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CONTENTS

sdegeo:set-region-counter ..................................................................................................................260sdegeo:set-region-counter-aut ............................................................................................................260

Managing work planes ...............................................................................................................................260sdegeo:define-work-plane...................................................................................................................260sdegeo:delete-work-plane...................................................................................................................261sdegeo:get-active-work-plane .............................................................................................................261sdegeo:set-active-work-plane .............................................................................................................261

Managing coordinate systems....................................................................................................................262sdegeo:define-coord-sys.....................................................................................................................262sdegeo:delete-coord-sys.....................................................................................................................262sdegeo:set-active-coord-sys ...............................................................................................................263

Boolean operations ....................................................................................................................................263sdegeo:bool-intersect..........................................................................................................................263sdegeo:bool-subtract...........................................................................................................................264sdegeo:bool-unite................................................................................................................................264

Modifying geometries .................................................................................................................................265sdegeo:chamfer ..................................................................................................................................265sdegeo:chamfer-2d .............................................................................................................................266sdegeo:delete-region ..........................................................................................................................266sdegeo:delete-refeval-window ............................................................................................................267sdegeo:extrude ...................................................................................................................................267sdegeo:fillet .........................................................................................................................................267sdegeo:fillet-2d....................................................................................................................................268sdegeo:mirror-selected .......................................................................................................................269sdegeo:move-edge .............................................................................................................................269sdegeo:move-vertex............................................................................................................................270sdegeo:reflect......................................................................................................................................270sdegeo:revolve....................................................................................................................................271sdegeo:rotate-selected........................................................................................................................272sdegeo:scale .......................................................................................................................................272sdegeo:scale-selected ........................................................................................................................273sdegeo:sweep .....................................................................................................................................273sdegeo:taper-faces .............................................................................................................................274sdegeo:translate..................................................................................................................................275sdegeo:translate-selected ...................................................................................................................276sweep:options .....................................................................................................................................276transform:reflection .............................................................................................................................277transform:rotation ................................................................................................................................277transform:scaling.................................................................................................................................278transform:translation ...........................................................................................................................278sdegeo:split-insert-device ...................................................................................................................279sdegeo:extend-device .........................................................................................................................280

Managing contacts .....................................................................................................................................280sdegeo:contact-sets ............................................................................................................................280sdegeo:define-2d-contact....................................................................................................................281sdegeo:define-3d-contact....................................................................................................................281sdegeo:define-3d-contact-by-polygon.................................................................................................281sdegeo:define-contact-set...................................................................................................................282sdegeo:delete-contact-boundary-edges..............................................................................................283sdegeo:delete-contact-boundary-faces...............................................................................................283sdegeo:delete-contact-edges..............................................................................................................283sdegeo:delete-contact-faces ...............................................................................................................284sdegeo:delete-contact-set...................................................................................................................284

xiii

Page 14: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCONTENTS

sdegeo:get-contact-edgelist ................................................................................................................284sdegeo:get-contact-facelist .................................................................................................................285sdegeo:get-current-contact-set ...........................................................................................................285sdegeo:imprint-circular-wire ................................................................................................................285sdegeo:imprint-polygonal-wire ............................................................................................................286sdegeo:imprint-rectangular-wire..........................................................................................................286sdegeo:imprint-triangular-wire.............................................................................................................287sdegeo:set-contact-boundary-edges...................................................................................................287sdegeo:set-contact-boundary-faces....................................................................................................287sdegeo:set-contact-edges...................................................................................................................288sdegeo:set-contact-faces ....................................................................................................................288sdegeo:set-contact-faces-by-polygon .................................................................................................289sdegeo:set-current-contact-set ...........................................................................................................290set-interface-contact............................................................................................................................291

Managing doping and refinement ....................................................................................................................291Managing placement views ........................................................................................................................291

sdedr:hide-mbox .................................................................................................................................291sdedr:hide-profile ................................................................................................................................292sdedr:hide-refinement .........................................................................................................................292sdedr:hide-rewin..................................................................................................................................292sdedr:show-mbox................................................................................................................................293sdedr:show-profile...............................................................................................................................293sdedr:show-refinement........................................................................................................................293sdedr:show-rewin ................................................................................................................................294

General command file functions.................................................................................................................295sdedr:read-cmd-file .............................................................................................................................295sdedr:set-meshing-engine...................................................................................................................295sdedr:set-title.......................................................................................................................................295sdedr:write-cmd-file.............................................................................................................................296sdedr:write-scaled-cmd-file .................................................................................................................296sdedr:append-cmd-file ........................................................................................................................296

Clearing doping and refinement .................................................................................................................297sdedr:clear ..........................................................................................................................................297sdedr:clear-multibox-definitions ..........................................................................................................297sdedr:clear-multibox-placements ........................................................................................................297sdedr:clear-profile-definitions ..............................................................................................................298sdedr:clear-profile-placements............................................................................................................298sdedr:clear-ref-windows ......................................................................................................................298sdedr:clear-refinement-definitions.......................................................................................................299sdedr:clear-refinement-placements.....................................................................................................299

Managing refinement..................................................................................................................................300extract-refwindow ................................................................................................................................300sdedr:define-refinement-function ........................................................................................................301sdedr:define-refinement-material ........................................................................................................301sdedr:define-refinement-placement ....................................................................................................301sdedr:define-refinement-region ...........................................................................................................302sdedr:define-refinement-size...............................................................................................................302sdedr:define-refeval-window ...............................................................................................................302sdedr:redefine-refeval-window ............................................................................................................304

Managing submeshes ................................................................................................................................304sdedr:define-submesh.........................................................................................................................304sdedr:define-submesh-placement.......................................................................................................305sdedr:define-submesh-placement (old syntax) ...................................................................................305

xiv

Page 15: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CONTENTS

Deleting doping and refinement data .........................................................................................................306sdedr:del-selected-drentity..................................................................................................................306sdedr:delete-multibox-placement ........................................................................................................306sdedr:delete-profile-placement............................................................................................................306sdedr:delete-refinement-placement ....................................................................................................307sdedr:delete-refeval-window ...............................................................................................................307sdedr:delete-submesh-placement.......................................................................................................308

Defining multiboxes ....................................................................................................................................308sdedr:define-multibox-placement ........................................................................................................308sdedr:define-multibox-size ..................................................................................................................308

Defining profiles..........................................................................................................................................309sdedr:define-1d-external-profile ..........................................................................................................309sdedr:define-analytical-profile .............................................................................................................310sdedr:define-analytical-profile-placement ...........................................................................................310sdedr:define-analytical-profile-placement (old syntax) ........................................................................310sdedr:define-constant-profile...............................................................................................................311sdedr:define-constant-profile-material.................................................................................................311sdedr:define-constant-profile-placement.............................................................................................312sdedr:define-constant-profile-region ...................................................................................................312sdedr:define-erf-profile ........................................................................................................................312sdedr:define-gaussian-profile..............................................................................................................313

Simplifying boundaries ....................................................................................................................................314merge-collinear-edges-2d ...................................................................................................................314sde:window-select-2d..........................................................................................................................314sdegeo:align-horizontal .......................................................................................................................315sdegeo:align-horizontal-aut.................................................................................................................315sdegeo:align-to-line.............................................................................................................................316sdegeo:align-vertical ...........................................................................................................................316sdegeo:align-vertical-aut .....................................................................................................................316sdegeo:average-edge-length ..............................................................................................................317sdegeo:break-nearly-axis-aligned-edges ............................................................................................317sdegeo:del-short-edges ......................................................................................................................318sdegeo:delete-collinear-edges ............................................................................................................318sdegeo:delete-edges...........................................................................................................................318sdegeo:delete-nearly-collinear-edges .................................................................................................319sdegeo:delete-short-edges .................................................................................................................319sdegeo:delete-vertices ........................................................................................................................320sdegeo:dnce........................................................................................................................................320sdegeo:max-edge-length ....................................................................................................................320sdegeo:min-edge-length .....................................................................................................................321sdegeo:prune-vertices.........................................................................................................................321

Postprocessing, DF–ISE/TDR grid and data viewer .......................................................................................322sdepp:clear..........................................................................................................................................322sdepp:clear-data .................................................................................................................................322sdepp:load-data ..................................................................................................................................323sdepp:load-grid ...................................................................................................................................323sdepp:set-ash-factor ...........................................................................................................................323sdepp:set-colormap-type.....................................................................................................................324sdepp:set-data-mapping .....................................................................................................................324sdepp:set-face-displacement ..............................................................................................................324sdepp:set-num-colors..........................................................................................................................325sdepp:set-palette-orientation...............................................................................................................325sdepp:set-plot-type..............................................................................................................................325

xv

Page 16: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCONTENTS

sdepp:show-legend .............................................................................................................................326sdepp:show-mesh-edges ....................................................................................................................326

Process emulation (Procem) ...........................................................................................................................326Generating substrates ................................................................................................................................326

sdepe:add-substrate ...........................................................................................................................326sdepe:create-substrate (old syntax) ....................................................................................................327sdepe:define-pe-domain .....................................................................................................................327sdepe:generate-domainboundary .......................................................................................................328

Fill and polish .............................................................................................................................................329sdepe:fill-device ..................................................................................................................................329sdepe:polish-device ............................................................................................................................329sdepe:remove .....................................................................................................................................329

Patterning ...................................................................................................................................................330sdepe:pattern ......................................................................................................................................330sdepe:anisotropic-pattern (old syntax) ................................................................................................330sdepe:isotropic-pattern (old syntax) ....................................................................................................331

Handling masks..........................................................................................................................................332sdeio:read_dfise_mask .......................................................................................................................332sdepe:generate-mask .........................................................................................................................332

Deposition ..................................................................................................................................................333sdepe:depo .........................................................................................................................................333sdepe:anisotropic-deposit (old syntax)................................................................................................336sdepe:isotropic-deposit (old syntax)....................................................................................................337

Etching .......................................................................................................................................................338sdepe:etch-material.............................................................................................................................338sdepe:etch (old syntax) .......................................................................................................................340

Doping and implantation.............................................................................................................................340sdepe:doping-constant-placement ......................................................................................................340sdepe:doping-gauss............................................................................................................................341sdepe:implant......................................................................................................................................341sdepe:implant-imp3d...........................................................................................................................342

Sentaurus Process and Scheme extensions of Sentaurus Structure Editor ...................................................343sdesp:begin.........................................................................................................................................343sdesp:define-step................................................................................................................................344sdesp:finalize ......................................................................................................................................344sdesp:restore-state .............................................................................................................................345

Generating interconnect layers ..................................................................................................................345sdepe:icon_layer .................................................................................................................................345

Appendix A Scheme scripting language.........................................................................................347

Appendix B ACIS geometry kernel ..................................................................................................349

Index of Scheme extensions ............................................................................................................351

xvi

Page 17: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR ABOUT THIS MANUAL

Sentaurus Structure Editor

About this manual

Sentaurus Structure Editor is a 2D and 3D device structure editor, and a 3D process emulator. The threeoperational modes: 2D structure editing, 3D structure editing, and 3D process emulation share acommon data representation. Geometric and process emulation operations can be mixed freely, addingmore flexibility to the generation of 3D structures.

Two-dimensional models can be used to create 3D structures or 3D structures can be defined directly.When a 3D model is created, three-dimensional device editing operations and process emulationoperations can be applied interchangeably to the same model. The 2D and 3D structure editing modesinclude geometric model generation, doping and refinement definition, and submesh inclusion (togenerate the mesh command file).

This manual describes Sentaurus Structure Editor. The main chapters are:

Chapter 1 provides an overview of the 2D and 3D geometry editing capabilities of SentaurusStructure Editor and introduces the graphical user interface (GUI).

Chapter 2 introduces the basic operations of Sentaurus Structure Editor as well as file input andoutput, and journaling.

Chapter 3 gives a detailed description of all GUI-supported functions and operators.

Chapter 4 focuses on direct 2D and 3D geometry editing, using the GUI.

Chapter 5 presents a detailed description of how to define refinements, prescribe analytic andconstant doping profiles, include submeshes, and interact and configure the meshing engines.

Chapter 6 introduces the 3D process emulator Procem. Procem operations are available usingScheme extensions. The generated models can be visualized and edited using the GUI.

Chapter 7 presents advanced features of the Sentaurus Structure Editor.

Chapter 8 presents a detailed description of the boundary representation method on which SentaurusStructure Editor is based, and introduces several support functions to query and debug the model.

Chapter 9 lists the scripting functions of Sentaurus Structure Editor.

AudienceThis manual is intended for users of the Sentaurus Structure Editor software package.

xvii

Page 18: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORABOUT THIS MANUAL

Related publicationsFor additional information about Sentaurus Structure Editor, see:

The Sentaurus Structure Editor release notes, available on SolvNet (see Accessing SolvNet onpage xix).

Documentation on the Web, which is available through SolvNet athttps://solvnet.synopsys.com/DocsOnWeb.

Synopsys Online Documentation (SOLD), which is included with the software for CD users or isavailable to download through the Synopsys Electronic Software Transfer (EST) system.

Typographic conventions

Customer supportCustomer support is available through SolvNet online customer support and through contacting theSynopsys Technical Support Center.

Convention Explanation

Blue text Identifies a cross-reference (only on the screen).

Bold text Identifies a selectable icon, button, menu, or tab. It also indicates the name of a field, window, dialog box, or panel.

Courier font Identifies text that is displayed on the screen or that the user must type. It identifies the names of files, directories, paths, parameters, keywords, and variables.

Italicized text Used for emphasis, the titles of books and journals, and non-English words. It also identifies components of an equation or a formula, a placeholder, or an identifier.

Key+Key Indicates keyboard actions, for example, Ctrl+I (press the I key while pressing the Control key).

Menu > Command Indicates a menu command, for example, File > New (from the File menu, select New).

NOTE Identifies important information.

xviii

Page 19: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR ABOUT THIS MANUAL

Accessing SolvNet

SolvNet includes an electronic knowledge base of technical articles and answers to frequently askedquestions about Synopsys tools. SolvNet also gives you access to a wide range of Synopsys onlineservices including software downloads, documentation on the Web, and “Enter a Call to the SupportCenter.”

To access SolvNet:

1. Go to the SolvNet Web page at http://solvnet.synopsys.com.

2. If prompted, enter your user name and password. (If you do not have a Synopsys user name andpassword, follow the instructions to register with SolvNet.)

If you need help using SolvNet, click HELP in the top-right menu bar or in the footer.

Contacting the Synopsys Technical Support Center

If you have problems, questions, or suggestions, you can contact the Synopsys Technical Support Centerin the following ways:

Open a call to your local support center from the Web by going to http://solvnet.synopsys.com(Synopsys user name and password required), then clicking “Enter a Call to the Support Center.”

Send an e-mail message to your local support center:

• E-mail [email protected] from within North America.

• Find other local support center e-mail addresses at http://www.synopsys.com/support/support_ctr.

Telephone your local support center:

• Call (800) 245-8005 from within the continental United States.

• Call (650) 584-4200 from Canada.

• Find other local support center telephone numbers at http://www.synopsys.com/support/support_ctr.

Contacting your local TCAD Support Team directly

Send an e-mail message to:

[email protected] from within North America and South America.

[email protected] from within Europe.

[email protected] from within Asia Pacific (China, Taiwan, Singapore, Malaysia,India, Australia).

[email protected] from Korea.

[email protected] from Japan.

xix

Page 20: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORABOUT THIS MANUAL

AcknowledgmentsPortions of this software are owned by Spatial Corp. © 1986–2006. All rights reserved.

xx

Page 21: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 1 OVERVIEW

Sentaurus Structure Editor

CHAPTER 1 Overview

This chapter presents an overview of Sentaurus Structure Editor.

Introduction to Sentaurus Structure EditorSentaurus Structure Editor can be used as a 2D or 3D structure editor, and a 3D process emulator tocreate TCAD devices. In Sentaurus Structure Editor, structures are generated or edited interactivelyusing the graphical user interface (GUI). Doping profiles and meshing strategies can also be definedinteractively. Sentaurus Structure Editor features an interface to configure and call the Synopsysmeshing engines. In addition, it generates the necessary input files (either the DF–ISE boundary file, orthe TDR boundary file and mesh command file) for the meshing engines, which generate the grid anddata files (DF–ISE .grd and .dat files, or TDR grid and data files) for the device structure.

Alternatively, devices can be generated in batch mode using scripts. Scripting is based on the Schemescripting language. This option is useful, for example, for creating parameterized device structures.Sentaurus Structure Editor records interactive actions in the form of script commands (journaling).Therefore, it is easy to generate a script from recorded interactive operations. These scripts can beparameterized afterwards. Command-line window on page 9 provides information regarding theScheme scripting language. In addition, Scheme resources are listed (see Appendix A on page 347).

Device structures are defined by using geometric operations such as:

Generation of 2D and 3D primitives (rectangle, circle, cuboid, cylinder)

Filleting, chamfering, 3D vertex and edge blending, face tapering operations

Boolean operations between bodies

General extrusion, sweep, and skinning/lofting operations

or by using emulated process steps:

Mask layouts

Substrate generation

Patterning

Isotropic and anisotropic etching and deposition, with or without shadowing and directional effects

Polishing and fill operations

Implantation

1

Page 22: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 1 OVERVIEW

NOTE For more information about the TDR format, refer to the Sentaurus Data Explorer UserGuide.

Modular toolSentaurus Structure Editor is a modular tool and offers the following modules:

Two-dimensional device editor

Three-dimensional device editor

Procem – Three-dimensional process emulator

The common characteristics of these modules are:

The use of a state-of-the-art geometry modeling kernel (ACIS, from Dassault Systèmes S.A.) thatprovides a robust and reliable base for model generation.

A high quality rendering engine and GUI.

A scripting interface, which is based on the Scheme scripting language.

All modules share a common kernel that provides DF–ISE and TDR file input and output, conformalmodel tessellation for the 2D and 3D Synopsys meshing engines, a link to the meshing engines (withan appropriate user interface to the selected engine), refinement control for tessellated curvedboundaries, and other support functionalities.

The 2D and 3D device editor modules provide a GUI and scripting support to:

Generate the model geometry.

Define contact regions.

Add constant, analytic, and externally generated doping profiles to the model.

Define local refinements.

Include external submeshes.

Interface to the Synopsys meshing engines.

The process emulator Procem provides scripting functions to emulate TCAD process steps.

The modules share the same software infrastructure and internal data representation, and can becombined freely. A 2D model can be extruded or swept along a curve to generate a 3D model.Afterwards, process steps (for example, a deposition step) can be performed on the generated 3D model.Similarly, a 2D slice can be generated from a 3D model and can be saved in a 2D DF–ISE boundary file.

2

Page 23: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 1 OVERVIEW

Units and base coordinate systemSentaurus Structure Editor uses a default global coordinate system. It has no default units or assumptionsfor automatic geometry scaling. Users must select the modeling units and enter all necessary geometricdimensions expressed in the selected units. For example, if the user requires a model output innanometers, all geometric dimensions must be entered in nanometers, in which case the generated outputboundary file will contain the same dimensions. sdegeo:scale can be used to scale a model (or only a partof the model) inside the modeler. An additional function sde:scale-dfise-bnd can be used to scaleDF–ISE boundary files directly.

The mesh input command file is scaled by the parameter global-scaling (the default value is 1) whenusing the commands sde:build-mesh and sdedr:write-scaled-cmd-file, which also apply global-scaling tothe reference/evaluation (Ref/Eval) window coordinates. The parameter global-scaling can be changedusing the (set! global-scaling mysf) command. mysf is the required scaling factor (REAL). The set!command can be entered by using the command-line window. The current value of global-scaling canbe checked by entering global-scaling in the command-line window.

Since all geometric operations are performed using finite precision arithmetic for modelingconsiderations, it is important to select the correct unit for representing a device.

Scaling a device

To scale a device:

1. Create a model.

2. Use sdegeo:scale to scale all of the geometric bodies and Ref/Eval windows.

3. Save the .bnd file with the scaled geometry using sdeio:save-dfise-bnd.

4. Use sdedr:write-scaled-cmd-file to write the .cmd file with the scaled parameters.

In previous versions of Sentaurus Structure Editor, this command performed the scaling of the Ref/Eval windows as special .cmd file entities. Now, they are scaled in the sdegeo:scale command (seeStep 2), because they are implemented as geometric bodies. They are saved in the .cmd file as theyare, to avoid double scaling.

Therefore, sdegeo:scale must be called first, before the command sdedr:write-scaled-cmd-file iscalled (for example, sdedr:write-scaled-cmd-file "scaling_dvs.cmd" scale-factor).

File input/output and restoring the state of the modelerSentaurus Structure Editor uses the ACIS geometry modeling kernel to perform geometry relatedoperations. These operations include the creation of polygonal (2D) and polyhedral (3D) models. Inaddition, the geometry kernel supports the generation of curved boundaries (circles, arches, elliptic linesegments, splines in 2D) and curved faces (conic sections, splines, NURBS surfaces in 3D). Since the

3

Page 24: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 1 OVERVIEW

DF–ISE or TDR boundary output cannot contain curved edges and surfaces, these entities must betessellated before the boundary output is generated.

When users need to load and reuse a previously saved model, which contains curved entities (either 2Dor 3D), the exact model cannot be restored from a DF–ISE or TDR boundary file. When a curved entityis tessellated and a DF–ISE or TDR boundary file is generated, some information that is needed torestore the original model is lost. The options to restore the full state of the original model are:

Use File > Save Model, File > Save Model As, or the equivalent Scheme function sde:save-model,which saves the model in native ACIS format (.sat) including information about the Ref/Evalwindows and, additionally, saves the doping and refinement information and meshing parameters inthe command file, and other parameters of Sentaurus Structure Editor and settings in the .scm file.(The .bnd file is also written.)

The model can be loaded back into Sentaurus Structure Editor using File > Open Model or itsScheme equivalent sde:load-model.

Use either a journal file or a Scheme script to generate the model. When the modeler is cleared anda journal or Scheme file is loaded, the modeler rebuilds the complete model based on the content ofthe script file.

It is also possible to save the model as a DF–ISE boundary file and reload it to the modeler. In thiscase, the result may be different from the original model due to the tessellation step that wasperformed to generate the boundary file.

Graphical user interfaceThe graphical user interface of Sentaurus Structure Editor has three main areas (see Figure 1 on page 5).The menu bar, toolbars, and list boxes are located in the upper part of the main window, the view windowis in the center, and the command-line window is in the lower part.

Table 1 Menus

Menu Description

File Load, save, and print functions

Edit Change existing geometric objects

View Visualization preferences and auxiliary views

Draw Drawing and basic object creation, preferences

Mesh Define a meshing strategy, call the meshing engine, visualize the generated mesh and data fields

Device Define doping profiles

Contacts Define and edit contacts and contact sets

Help Version information

4

Page 25: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 1 OVERVIEW

Figure 1 Main window of Sentaurus Structure Editor

ToolbarsEach toolbar contains a set of predefined shortcuts and icons, which are shown in the following tables.

Table 2 File toolbar buttons

Icon Shortcut keys Description Icon Shortcut keys Description

Ctrl+N Create new file Ctrl+S Save model

Ctrl+O Open model Ctrl+P Print

Menu Bar

Material ListWork Plane List

Contact List Selection Level List

View Window

Command-lineWindow

Toolbars

Toolbars

5

Page 26: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 1 OVERVIEW

Table 3 Edit toolbar buttons

Icon Shortcut keys Description

Ctrl+Z Undo last operation

Ctrl+Y Redo last operation

Table 4 Rendering mode toolbar buttons (for 3D)

Icon Description Icon Description

Facets Gouraud Shaded

Wireframe Hidden Lines

Flat Shaded

Table 5 Standard views toolbar buttons

Icon Description Icon Description

Isometric View YZ Plane

XY Plane X-Y Plane (y-axis pointing downwards)

XZ Plane Zoom to Extents (reset zoom)

Table 6 GUI actions toolbar buttons (zoom and move)

Icon Description Icon Description

Select (selects a single object or objects in a window drawn with mouse)

Zoom (zooming controlled by mouse)

Zoom to Window (zooms to window drawn with mouse)

Pan (move device with mouse)

Orbit (3D rotation) Cut Plane (shows a cross section of the structure)

6

Page 27: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 1 OVERVIEW

Table 7 GUI actions toolbar buttons (2D edit tools)

Icon Description Icon Description

Add Vertex Move Edge

Move Vertex Vertex-to-Vertex Distance

2D Cut

Table 8 GUI actions toolbar buttons (2D create tools)

Icon Description Icon Description

Create Polyline Wire Create Spline Wire

Create Rectangle Create Regular Polygon (needs Exact Coordinates mode to set parameters)

Create Polygon (end polygon with middle mouse button)

Create Ruled Region

Create Circular Region Create Elliptical Region

Table 9 GUI actions toolbar buttons (3D create tools)

Icon Description Icon Description

Create Cuboid Create Cylinder

Create Sphere Create Ellipsoid

Create Cross Section

Table 10 Default Boolean toolbar buttons

Icon Description Icon Description

Merge (new and existing objects are merged; new material and region names are assigned)

New object replaces old in overlapping regions, but the overlap becomes a separate region

New object replaces old in overlapping regions

Old object replaces new in overlapping regions, but the overlap becomes a separate region

Old object replaces new in overlapping regions

7

Page 28: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 1 OVERVIEW

ListsThe main window of Sentaurus Structure Editor contains four lists (combo boxes):

Material list – Selects the material to be assigned to new objects.

Work Plane list – Sets the work plane for 3D editing.

Contact list – Selects the contact name to be used in the next set contact region, or face, or edgeoperations.

Selection Level list – Selects which types of object can be selected.

View windowThe current device is displayed in this area. The result of all interactive operations is reflectedimmediately in the view window.

Right-click in this area to open the following shortcut menus:

Selection Level Controls which types of object can be selected by clicking (Select mode).Options are Auto Select, Body, Face, Edge, Vertex, and Other.

Toggle Visibility Activates or deactivates a light source for shading 3D objects.

Placing the cross-hair cursor over an object and right-clicking has the effect of selecting the objectcorresponding to the current Selection Level, and opening the above shortcut menus and the followingadditional menus and options where it is appropriate in the context of the selection made:

Properties Displays a window with information about the selected object. In somecontexts, for example, Ref/Eval windows, properties of the object are editable.

Contacts Allows the assignment of contacts to the current object and the creation of newcontact sets.

Delete In many contexts, the object can be deleted by selected this option.

Table 11 Shortcut toolbar buttons

Icon Description Icon Description

Switch between geometry editor and grid and data viewer

Switch on or off exact coordinates

Grid visualization switch Ruler visualization switch

Auto stretch scene

8

Page 29: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 1 OVERVIEW

Command-line windowMost GUI operations have an associated Scheme command. After each GUI operation, thecorresponding Scheme command is displayed in the command-line window. The script commands canalso be entered directly at the command-line prompt. This feature is particularly useful in conjunctionwith cut-and-paste operations of the script commands from and to a text editor, when creating and testingScheme scripts.

During the generation of the model (including geometry definition, modification, doping and refinementdefinition), users can utilize the GUI to perform a specific action. When the action is completed,feedback is displayed. The Scheme command that performed the specific action is repeated in thecommand-line window. These commands can be saved in a journal file, and users can edit and replaythe script later.

The basic principles of the Scheme scripting language are:

Comment lines start with a semicolon. In each line, a comment proceeds from the first insertedsemicolon.

All data types are equal. Any variable can hold any type of data. Data initialization, memoryallocation, and memory clean up are performed automatically. Variables are defined using thekeyword define. Variables can be assigned a value using the keyword set!, for example:

(define width 5); ; defines the variable width and sets its value to 5(define height 10)(set! width 3); ; now width is 3

Scheme has all the conventional data types such as character, strings, lists, array, Boolean, number,function, and symbol.

NOTE A few keywords (such as length) are reserved keywords used by Scheme and they define aScheme function or operator. These keywords must not be redefined by a user-initiated definecommand.

For a precise description of the language syntax, refer to the resources listed in Appendix A on page 347.

Configuring the command-line windowThe command-line window can be configured from the menu (View > Script Win Prefs) or directlyfrom the Scheme scripts. Users can select the height, font style, and size of the command-line window.

9

Page 30: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 1 OVERVIEW

Figure 2 Script Window Preferences dialog box

The Scheme commands listed in Table 12 can be used to configure the command-line window.

Changing GUI attributes

Background color

To change the background color of the view window from the GUI:

View > Background Color.

The associated Scheme command is sde:set-background-color.

Table 12 Scheme functions to configure the command-line window

Scheme function Description

sde:scmwin-set-window-height Sets the Scheme command-line window height.

sde:scmwin-get-font-families Returns all available font families.

sde:scmwin-get-font-family Returns the currently selected font family.

sde:scmwin-set-font-family Sets the font family.

sde:scmwin-select-font Sets the active font style.

sde:scmwin-get-font-size Returns the active font size.

sde:scmwin-set-font-size Sets the font size.

sde:scmwin-set-prefs Can be used to configure the command-line window, using one single function.

10

Page 31: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 1 OVERVIEW

GUI style

To change the GUI style from the GUI:

View > GUI Style.

The associated Scheme command is sde:set-window-style. The available GUI styles are Windows, Motif,MotifPlus, Platinum, SGI, and CDE.

GUI window size

The view window can be resized, at any time, using the mouse, or it can be resized using sde:set-window-size.

GUI window position

The tool window can be positioned on the screen, using sde:set-window-position.

NOTE These GUI attributes are saved by sde:save-model and restored by sde:open-model.

11

Page 32: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 1 OVERVIEW

12

Page 33: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 2 BASIC OPERATIONS

Sentaurus Structure Editor

CHAPTER 2 Basic operations

This chapter outlines the basic operations of Sentaurus Structure Editor.

Starting Sentaurus Structure EditorSentaurus Structure Editor can be started by typing:

sde [options]

where [options] are the following command-line options:

-e Runs without the GUI window. Use with -l to run a script in batch mode.

-l scriptname Loads and executes the script file called scriptname.

-help Prints the help message.

-v Prints the tool version information.

-var var=value Defines and loads additional Scheme variables.

-2D Starts the GUI in a simplified 2D mode. Use Edit > Show 3D Cmds to switchto 3D mode. In 2D mode, the menu is simplified and only 2D-related operationsand commands are available. In 3D mode, the GUI menu is extended and allfeatures are available.

NOTE The geometry engine of Sentaurus Structure Editor is three dimensional. Even if the operatingmode is 2D or the tool is in 2D GUI mode, the underlying geometry representation of themodel is three dimensional. The 2D operating mode can be switched to 3D at any time. TheScheme interface is not affected by the 2D or 3D operating mode.

13

Page 34: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 2 BASIC OPERATIONS

Running Sentaurus Structure EditorSentaurus Structure Editor can be used in two ways: interactively or in batch mode.

Batch modeTo run a Scheme script file, for example MyScript.scm, in batch mode, start Sentaurus Structure Editorwith the -e option (this will disable the graphical display), and use the -l option to give the script to berun:

sde -e -l MyScript.scm

If the -e option is not used, the Sentaurus Structure Editor GUI is launched after the specified script-l MyScript.scm is executed.

Interactive modeSentaurus Structure Editor can be used interactively by either using the GUI menus and toolbar buttons,or entering the Scheme commands in the command-line window.

To run Sentaurus Structure Editor in interactive mode, type in a command prompt: sde

Loading a DF–ISE model during start-upSentaurus Structure Editor can be started in interactive mode by supplying the name of a DF–ISEboundary file (*.bnd) and a Mesh command file (*.cmd) on the command line. Both files are loaded ifthey exist in the start directory. For example:

sde MyDevice.cmd

starts Sentaurus Structure Editor and loads the MyDevice.cmd file. It also loads the MyDevice.bnd file ifavailable.

Exiting Sentaurus Structure EditorTo exit Sentaurus Structure Editor:

File > Exit or Ctrl+Q.

The corresponding Scheme command is:

(exit)

14

Page 35: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 2 BASIC OPERATIONS

NOTE If the model was changed since the last save operation, Sentaurus Structure Editor displays awarning in the GUI mode.

NOTE Use Ctrl+\ to terminate Sentaurus Structure Editor from the UNIX command prompt asCtrl+C is not recognized.

File operations

Opening modelsTo open a model:

File > Open Model or Ctrl+O.

The corresponding Scheme command is:

(sde:load-model "filename")

First, this command reads the model geometry and the Ref/Eval windows in native ACIS format(filename.sat) if available. Second, it reads the Scheme file filename.scm if available, to restoreparameters and define any Ref/Eval windows not already defined in the .sat file. Third, it readsfilename.cmd if available, to restore refinement-related and doping-related information.

Saving modelsTo save a model:

File > Save Model or Ctrl+S.

or:

File > Save Model As.

The corresponding Scheme command is:

(sde:save-model "filename")

This command saves the model geometry and Ref/Eval windows in native ACIS format (filename.sat),the Scheme file filename.scm with parameters, filename.cmd with refinement-related and doping-relatedinformation, and the DF–ISE boundary file filename.bnd.

15

Page 36: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 2 BASIC OPERATIONS

Importing filesTo import a file:

File > Import.

Table 13 lists all supported file formats for loading into Sentaurus Structure Editor and thecorresponding Scheme commands.

Table 13 File formats supported in Sentaurus Structure Editor

Format Scheme command Description

ACIS SAB file (*.sab) (part:load "filename.sab" #f) Native ACIS format (binary) to store the complete model, including Ref/Eval windows.

ACIS SAT file (*.sat) (part:load "filename.sat" #t) Native ACIS format (ASCII) to store the complete model, including Ref/Eval windows.

ACIS SAT file (*.sat) (sde:load-sat "filename.sat" #t) Native ACIS format (ASCII) to store the complete model, including Ref/Eval windows.

DF–ISE boundary file (*.bnd)

(sdeio:readbnd "filename.bnd") DF–ISE boundary representation.

TDR boundary file (*.tdr)

(sdeio:read-tdr-bnd "filename.tdr") TDR boundary representation.

DF–ISE doping and refinement file (*.cmd)

(sdedr:read-cmd-file "filename.cmd") Input file for the Synopsys mesh generators.

DF–ISE layout files (*.lyt)

(sdeio:read_dfise_mask "filename.lyt") DF–ISE layout file representation.

DF–ISE mesh files (*.grd)

– DF–ISE mesh representation.

Scheme script file (*.scm, *.cmd)

(load "filename.scm") Scheme command file that is loaded and executed.

16

Page 37: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 2 BASIC OPERATIONS

NOTE The import function part:load can be used to import a single model into an empty database.In that case, the content of the model is correctly restored. It can also be used to import modelsto a non-empty database, in which case, overlapping regions may be generated since part:loaddoes not respect the active Boolean settings for overlap handling.

The sde:load-sat function can be used to load a native .sat file with correct overlap handling.The function is the same as part:load, except that it will observe the active Boolean settingfor overlap control (that is, overlapping regions will not be present in the model and theoverlaps will be removed based on the active Boolean setting).

NOTE By default, the DF–ISE boundary input function sdeio:readbnd ignores the DF–ISE translationvector and transformation matrix. (This is the default behavior when the function is calledfrom the GUI.) An optional Boolean flag can be added to the load command to load theDF–ISE boundary file in such a way that the translation and transformation operations, whichare defined in the DF–ISE boundary file, are performed on the loaded model.

PrintingTo print the current view of the structure:

File > Print or Ctrl+P.

JournalingOperations performed using the GUI or command-line window can be recorded in a journal file forreplaying or editing later.

To activate the journal feature:

File > Journal.

17

Page 38: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 2 BASIC OPERATIONS

Table 14 lists the available journal commands.

Table 14 Journal commands

Journal command Scheme command Description

Load (journal:load "filename.jrl") Loads an existing journal file and runs each command contained in that file. Each line is journaled if journaling is switched on.

On (journal:on "filename.jrl") Switches on journal recording. All future commands are journaled to the file.

Pause (journal:pause) Pauses recording.

Resume (journal:resume) Resumes recording.

Off (journal:off) Closes the current journal file and switches off journaling.

Save (journal:save "filename.jrl") Saves the current journal to a file.

18

Page 39: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 3 INTERACTIVE OPERATIONS

Sentaurus Structure Editor

CHAPTER 3 Interactive operations

This chapter discusses the different interactive operations that can be undertaken using SentaurusStructure Editor.

Undoing and redoing actionsTo undo an action:

Edit > Undo or Ctrl+Z.

The corresponding Scheme command is:

(roll)

To redo an action:

Edit > Redo or Ctrl+Y.

The corresponding Scheme command is:

(roll+1)

NOTE The undo and redo operations work in multiple steps as well. (roll -n) rolls back the modelerby n steps, while (roll n) rolls forward the history stream of the modeler by n steps. (roll) isa shortcut to (roll -1).

NOTE The undo and redo operations work with actions supported directly by the ACIS modelingengine, including operations that create and change Ref/Eval windows. Operations thatinvolve creating or changing placements cannot be undone.

Perspective and orthographic views in 3DThree-dimensional objects are displayed using either orthographic projection (more distant objects aredrawn with their true height and width like closer objects) or perspective (the height and width of moredistant objects are reduced according to their distance from the viewer).

19

Page 40: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 3 INTERACTIVE OPERATIONS

To switch between the perspective and orthographic views when displaying 3D objects:

View > Perspective.

NOTE Some GUI-supported operations such as 3D object creation (cube, cylinder, sphere) willchange the view automatically to orthographic view.

Figure 3 Perspective view (left) and orthographic view (right)

Selecting the camera viewThe camera position and orientation can be selected interactively. The resulting orientation of thecoordinate axes displayed are given as follows:

Iso 3D isometric view

XY X to the right, Y up

XZ X to the right, Z up

YZ Z to the left, Y up

X-Y X to the right, Y down

To select the camera view:

View > Camera Views or click the corresponding toolbar button.

20

Page 41: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 3 INTERACTIVE OPERATIONS

Interactive mouse-operation modes

Figure 4 Toolbar buttons for use in interactive mode

To access the different modes of mouse operations:

View > Interactive Mode or click the corresponding toolbar button (see Figure 4).

The options are:

Zoom to Extents Resets the zoom factor so that the entire structure is displayed.

Zoom to Window When this option is chosen, click to specify one corner of a rectangle and dragto define the other corner. The zoom factor and camera position change to fit thedefined rectangle into the display, making it as large as possible.

Orbit In this mode, dragging the mouse adjusts the camera position in a way thatsimulates orbiting around the drawn structure. Both the position and path of thepointer during the dragging operation provide an intuitive mechanism forrotation about different axes. Dragging left or right along the middle of the viewwindow rotates the structure about the vertical axis. Similarly, dragging up ordown along the center of the view window rotates the structure about thehorizontal axis. Dragging up, down, left, or right near any edge of the viewwindow rotates the structure about the axis perpendicular to the view window.Combinations of the movements are designed to give users control over theviewing angle of the drawn structure.

While the Orbit mode is active, different shortcut keys can be used to rotate themodel about the imaginary coordinate axes of the screen (in the view window).Hold the key or keys when using the Orbit command.

Rotate about x-axis (horizontal view) Shift+OrbitRotate about y-axis (vertical view) Ctrl+OrbitRotate about z-axis (perpendicular to view) Ctrl+Shift+Orbit

Zoom In this mode, dragging upwards zooms in on the structure, and draggingdownwards zooms out.

Pan In this mode, dragging moves the structure around the view window.

21

Page 42: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 3 INTERACTIVE OPERATIONS

Cutting Plane A cutting plane is inserted at the specified location (click operation)perpendicular to the actual view. For example, if the user views the x-y plane,the cut plane is inserted at the specified x-location and is placed in the yz-plane.By rotating the model, the effect of the insertion of the cut plane can be seen.The cut plane has handles to translate and rotate it. When a cutting plane isdefined, the user can use the Cut Plane button (see Table 6 on page 6) toactivate or deactivate it. When the cut plane is activated, the cut plane handlesare visible.

Select The entity under the pointer (body, face, edge, or vertex) is selected by clicking.Multiple entities can be selected by clicking while pressing the Ctrl key. Arectangle can also be drawn around multiple entities to select them.

The type of entity selected is determined by the current selection level. To selectthe required selection level, select the corresponding level in the SelectionLevel list, or right-click in the view window, and select the corresponding menuentry as shown in Figure 5.

For GUI selection:– Click for individual selection.– Drag to select window.– Hold the Ctrl key to add individual entities to the selection set.– Hold the Shift key to add window-selected entities to the selection set.– Click outside of the selection to clear the selected entity list.

Figure 5 Set entity selection type: shortcut menu (left) and Selection Level list (right)

Add Vertex Adds vertices (2D models only) by clicking an edge at the required location.The corresponding Scheme command is:

(sdegeo:insert-vertex (position x y z))

Move Vertex Moves vertices (2D models only) by clicking a vertex and dragging it to a newposition. The corresponding Scheme command is:

(sdegeo:move-vertex vertex (position x_new y_new z_new))

22

Page 43: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 3 INTERACTIVE OPERATIONS

Rectangle To draw rectangular bodies, click to define one corner, and drag to form therequired rectangle shape. By pressing the Ctrl key during the selection ofvertices, a limited snap-to-existing-vertices function is switched on.Alternatively, Draw > Create 2D Regions > Rectangle. The correspondingScheme command is:

(sdegeo:create-rectangle (position x1 y1 z1) (position x2 y2 z2) "material"

"region")

Regular Polygon Draws a symmetric polygon by clicking to define the center point and draggingit to the required size. Alternatively, Draw > Create 2D Regions > RegularPolygon. The corresponding Scheme command is:

(sdegeo:create-reg-polygon (position x y z) edges faces start_angle "material"

"region")

The number of edges can be specified by using Edit > Parameters, and settingthe variable regpoly-numseg. If the value of this parameter is not set, 10 is thedefault. The starting angle [degree] can be set in a similar way by defining theparameter regpoly-startangle. If the parameter is not defined, its default valueis 0.

Polygon Draws arbitrary polygons by defining the position of the apexes of the polygonby clicking. Continue until all apexes but one point have been defined.Complete the polygon by positioning the pointer at the required location of thelast apex and clicking the middle mouse button. Alternatively, Draw > Create2D Regions > Polygon. The corresponding Scheme command is:

(sdegeo:create-polygon (list (position x1 y1 z1) (position x2 y2 z2)

(position x3 y3 z3)... (position xn yn zn) ) "material" "region")

Ruled Region Creates a 2D ruled region between two specified (selected) edges. Alternatively,Draw > Create 2D Regions > Ruled Region. The corresponding Schemecommand is:

(sdegeo:create-ruled-region (list edge1 edge2) "material" "region")

Circular Region Draws circular bodies. Click to define the midpoint and drag the radius of thecircle outwards to form the required circular shape. Alternatively, Draw >Create 2D Regions > Circular Region. The corresponding Scheme commandis:

(sdegeo:create-circular-sheet (position x1 y1 z1) radius "material" "region")

23

Page 44: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 3 INTERACTIVE OPERATIONS

Elliptical Region Draws 2D elliptical bodies. Click to define the midpoint and drag to the endposition of the major axis of the ellipse. Release the left mouse button and dragagain until the endpoint of the minor axis. Click to fix the minor axis.Alternatively, Draw > Create 2D Regions > Elliptical Region. Thecorresponding Scheme command is:

(sdegeo:create-elliptical-sheet (position xc yc zc) (position x1 y1 z1) ratio

"material" "region")

Vertex–Vertex DistanceDetermines the distance between two vertices. Select the first vertex and thenthe second vertex. The corresponding distance is displayed in the command-linewindow.

Move Edge The operation is used to move linear edges in two-dimensional models. Theassociated Scheme command is called sdegeo:move-edge. When the command isused interactively, the user selects a linear edge and drags it to the new position.

Selecting the rendering mode

Figure 6 Rendering modes

To access the different rendering modes:

View > Render or click the corresponding toolbar button.

The available rendering modes are:

Facets The faceted model shows a triangulated view in 2D and a triangulated surfacetessellation in 3D. During the generation of the DF–ISE or TDR boundary file,the 2D faceting algorithm extracts the boundary edges from the tessellated view.In 3D the triangular elements will be part of the DF–ISE or TDR polyhedralmodel definition. By changing the refinement properties, the faceted viewalways reflects the triangulation that will be used for a subsequent generation ofthe DF–ISE or TDR boundary file.

Wireframe This view shows the boundary wires only. Additionally the face parameter linescan also be visualized. The following Scheme commands can be used to changethe wireframe view:

(view:display-param-lines #t)(sdegeo:create-sphere (position 0 0 0) 10 "Silicon" "")(option:set "u_param" 10)(option:set "v_param" 10)(render:rebuild)

24

Page 45: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 3 INTERACTIVE OPERATIONS

(view:display-param-lines #t) ;Turns on/off parameter lines for visualization(option:set "u_param" 5) ; Number of parameter lines in the u direction(option:set "v_param" 5) ; Number of parameter lines in the v direction

Flat Shaded A simple shaded mode, where the surface normals are taken from the tessellated(triangulated) mode. Each surface element has a uniform color.

Gouraud Shaded In this shading method, the surface normals are interpolated (using a simplelinear interpolation) between the neighboring surface triangles. In this way, acontinuously shaded view is generated.

Hidden Line This mode generates a 3D view in which nonvisible edges are hidden.Additional silhouette edges are added to the view for the correct visualization.

NOTE Apart from these rendering modes, other Scheme commands for changing the rendering areavailable:(view:vertices #f); Switches on/off the vertex view.

(view:set-line-weight weight); Sets the line thickness for boundary edges.

(view:set-edge-weight weight); Sets the line thickness for interior faceted edges.

(render:rebuild); Rebuilds the graphics scene.

Viewing placements

Figure 7 Placements Viewer dialog box

To view placements:

View > Placements Viewer.

The Placements Viewer is used to switch on and off the display of all different placement types thathave been defined by the user: Ref/Eval windows, refinements (defined by Ref/Eval Window, Region,or Material), multiboxes, analytic profiles, constant profiles, and external profiles.

25

Page 46: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 3 INTERACTIVE OPERATIONS

The Show and Hide buttons switch on and off, respectively, the display of selected placements. TheExclusive button hides all placements except the selected ones.

Double-clicking any of the placements opens the corresponding dialog box to view and edit itsproperties. Additions, changes, and deletions to placements are reflected immediately in the PlacementsViewer.

Viewing general geometric entities, masks, contacts, regions, and materials

Figure 8 Entity Viewer

To view the corresponding entity:

View > Entity Viewer.

The Entity Viewer is used to switch on and off the display of all different entity types (body, face, edge,vertex, and other), masks, contacts, regions, and materials. Each can be shown or hidden individually orin groups using the Show and Hide buttons. All unselected bodies can be hidden by clicking theExclusive button. The Translucent and Opaque buttons switch on and off the translucency, whichallows users to see through the selected entities.

Additions, changes, and deletions to entities are reflected immediately in the Entity Viewer.

Two-dimensional or three-dimensional contacts can be visualized as separate objects. The menucommand View > Entity Viewer > Exclusive renders the contacts as separate objects (see the relatedcommands sde:show-contact, sde:hide-contact, and sde:xshow-contact contactname).

26

Page 47: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 3 INTERACTIVE OPERATIONS

Viewing internal entity representations, entity numbering, relationships

Figure 9 Topology Browser

To view the internal representation of entities:

View > Topology Browser.

The Topology Browser displays a tree of entities and their relationships, as used internally by SentaurusStructure Editor. Use this tool to determine entity numbers and relationships. The graphical selection ofentities in the Sentaurus Structure Editor main window results in the highlighting of the correspondingentity in the Topology Browser. Similarly, the selection of an entity in the Topology Browser results inthe highlighting of the entity in the main window of Sentaurus Structure Editor.

The Topology Browser also displays the doping/refinement/submesh (DRS)–related Ref/Eval windowsas geometric objects.

Showing and hiding the coordinate axesTo show the coordinates axes in the lower-right corner of the main window:

View > Show Axes.

27

Page 48: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 3 INTERACTIVE OPERATIONS

Using the grid for drawingA grid is available that can be shown or hidden, and whose parameters (grid width and height, lineweight, and line pattern) can be defined in the Grid dialog box.

To view the grid:

View > Grid or, interactively, Draw > Snap to Grid.

Scaling the viewIt is possible to scale the model view (uniform or non-uniform). Scaling the view does not change themodel coordinates; it is applied only to the graphical scene. Scaling may be useful when thin layers arepresent in a model. The feature is supported from the GUI (View > View Scaling). The correspondingScheme command is sde:scale-scene.

For example, to scale the view by 2 in the y-direction, (sde:scale-scene 1 2 1) can be used. (sde:scale-scene 1 1 1) restores the original uniform unschooled model view.

Alternative camera operatorsBy default, the Ctrl and Shift keys can be used to perform a special rotation (see Interactive mouse-operation modes on page 21) about the x-axis and y-axis of the view window. The (sde:use-camera-manipulator #t) function can be used to change these key functionalities to another type of behavior.(The (sde:use-camera-manipulator #f) command can be used to change it back.) After the (sde:use-camera-manipulator #t) command is executed when the Orbit operator is active, the Ctrl key can be usedto zoom and the Shift key can be used to pan (while pressing the left mouse button).

Shortcut keysTable 15 lists additional shortcut key combinations to manipulate the view.

Table 15 Shortcut keys for Sentaurus Structure Editor

Key Action

Up Arrow Zoom out

Down Arrow Zoom in

Left Arrow Pan to the left

Right Arrow Pan to the right

28

Page 49: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 3 INTERACTIVE OPERATIONS

Two-dimensional drawing operatorsThe default drawing mode is freehand drawing for creating 2D regions (rectangle, circle, ellipse, and soon). Optional features such as snap-to-grid, exact coordinates, and snap-to-existing vertices can also beused. These features can also be accessed interactively during model generation.

For example, during a 2D polygonal region generation when the e (E) key is pressed, the pointer willsnap to the closest existing edge. When the pointer is moved, it slides along the closest edge. When thev (V) key is pressed, the pointer automatically snaps to the closest vertex. To move back to freehanddrawing, press the n (N) key.

Ctrl+Left Arrow Pan downwards

Ctrl+Right Arrow Pan upwards

Ctrl+Z (roll)

Ctrl+Y (roll 1)

Shift+Orbit Rotate about x-axis (horizontal view) orPan (when (sde:use-camera-manipulator #t) is used)

Ctrl+Orbit Rotate about y-axis (vertical view) orZoom in and out (when (sde:use-camera-manipulator #t) is used)

Ctrl+Shift+Orbit Rotate about z-axis (perpendicular to view)

Ctrl+N Create new file

Ctrl+O Open model

Ctrl+S Save model

Ctrl+P Print

Table 16 Keyboard keys for 2D drawing operations

Key Action

Esc Reset operator

v or V Snap-to-vertex

e or E Snap-to-edge (closest point on edge)

g or G Snap-to-grid

n or N Disable snapping

Table 15 Shortcut keys for Sentaurus Structure Editor

Key Action

29

Page 50: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 3 INTERACTIVE OPERATIONS

30

Page 51: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Sentaurus Structure Editor

CHAPTER 4 Working with structures

This chapter provides details about creating a variety of structures and examples are given for illustratingvarious commands.

Creating a new structure

Clearing the databaseTo reset Sentaurus Structure Editor:

File > New or Ctrl+N.

The corresponding Scheme command is:

(sde:clear)

NOTE This command restores the default GUI settings, clears and reinitializes the geometrydatabase, and clears all doping-related and refinement-related data. It is recommended asgood practice to start each Scheme script with this command.

Generating modelsFor a 2D or 3D model generation with Sentaurus Structure Editor, users should follow these concepts:

Create ‘top level’ entities first (rectangles, cuboids, and so on).

Modify them using operations such as filleting and chamfering.

If the ‘top level’ entities are 2D, several different operations (extrusion, sweep) can be used togenerate 3D models.

Apply additional local operations on the model (vertex move in 2D, face tapering in 3D, and so on).

Apply additional Boolean operations if necessary.

Assign material properties, region names, and contacts.

31

Page 52: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

To assist model generation, several additional functions are offered, including:

Local work planes and coordinate systems.

Transformations such as translate, rotate, and reflect.

Most of these operations are directly supported using the GUI, and all operations can be accessed usingScheme functions.

An alternative ‘bottom-up’ approach, which may be needed in some cases, is more complicated.Although a large set of Scheme functions is available for such tasks, there is little interactive support forthis approach. For example, a rectangular sheet body can be defined by first generating the four linearboundary edges, then covering them, thereby generating a sheet body. The resulting entity would beequivalent to the entity that sdegeo:create-rectangle would generate (except for overlapping regionhandling and vertex insertion from neighboring regions).

The final objective is to generate either a 2D or 3D model (DF–ISE boundary file output).

NOTE Since a 2D DF–ISE boundary file cannot contain 3D entities and a 3D DF–ISE boundary filecannot contain 2D regions, generating mixed dimensionality models is not recommended.Sentaurus Structure Editor has no restrictions in that respect and users can define 2D and 3Dobjects in the same model. In some cases, 3D models are generated from 2D models byapplying extrusion or sweep operations to the 2D models. In this case, some model cleanupmay be required to remove all remaining 1D and 2D objects.

Contact handlingFor contact handling, users should note the following:

In Sentaurus Structure Editor, contacts are attributes that are attached to edges of existing regions(in 2D) and to faces of existing regions (in 3D). When a 3D DF–ISE boundary file is generated, edgecontacts are ignored and are not written to the DF–ISE or TDR boundary files.

During boundary loading, the contact edges/faces are not merged, even if they are collinear/coplanarwith neighboring edges/faces. Special protection attributes are added to the contact edges/faces.

The protected contact regions (edges/faces) are not affected by bool:regularise or rbi:repair-body-intersection, and they are not removed by these operations, even if they could be removed simplyfrom geometric considerations.

Two-dimensional boundary simplification tools such as sdegeo:dnce and sdegeo:delete-short-edgeshandle the protected contacts correctly.

32

Page 53: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Creating 2D regions

Creating rectangles and polygonsTo draw a rectangle, regular polygon, or polygon:

1. Draw > Create 2D Regions and select one of the options Rectangle, Regular Polygon, orPolygon.

2. Drag to draw the shape of the structure in the view window.

The corresponding Scheme commands are:

(sdegeo:create-rectangle (position x1 y1 z1) (position x2 y2 z2) "material" "region")(sdegeo:create-reg-polygon (position x y z) edges faces start_angle "material" "region")(sdegeo:create-polygon (list (position x1 y1 z1) (position x2 y2 z2) (position x3 y3 z3) ...

(position xn yn zn)) "material" "region")

Click to add a vertex to a polygon. To finish drawing a polygon, click the middle mouse button. (Pressboth buttons when using a two-button mouse.)

Circular regionThe Scheme extension (sdegeo:create-circle (position xc yc zc) radius "material" "region") can beused to create a circular sheet body. From the GUI, Draw > Create 2D Regions > Circular Region.

Elliptical regionThe Scheme extension (sdegeo:create-ellipse (position x1 y1 z1) (position x2 y2 x2) ratio "material""region") can be used to create an elliptical sheet body. From the GUI, Draw > Create 2D Regions >Elliptical Region.

Creating 2D ruled regionsTo create a ruled region:

1. Draw > Create 2D Regions > Ruled Region.

2. Select two edges, or click the Create Ruled Region button and select the two edges.

The corresponding Scheme command is:

sdegeo:create-ruled-region

33

Page 54: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Figure 10 illustrates the operation. To complete the operation, two edges must be selected. (The edgesmust belong to different regions.) Creating a ruled region observes the default Boolean operation settingand maintains model conformity. The model in Figure 10 was created using the script:

(sdegeo:create-rectangle (position 0 0 0.0) (position 10 10 0.0) "Silicon" "region_1")(sdegeo:create-polygon (list (position 20.0 -5.0 0.0) (position 30.0 -5.0 0.0) (position 35.0 5.0 0.0) (position 30.0 15.0 0.0) (position 13.0 15.0 0.0) (position 20 -5 0)) "PolySilicon" "region_2")(sdegeo:create-ruled-region (list (car (find-edge-id (position 10 5 0))) (car (find-edge-id (position 16.5 5 0)))) "Oxide" "region_3")

Figure 10 Generating ruled regions using linear edges

Ruled regions can be created only for 2D models. The edges that are used for creating the ruled regiondo not have to be linear. Figure 11 shows such a case. The inserted ruled region (ruled region I) wascreated between two circular edges, which were created by a filleting operation.

Figure 11 Generating a ruled region using curved edges

Generated Ruled RegionSelected Edges

Selected Edges IIGenerated Ruled Region II

Generated Ruled Region I

Selected Edges I

34

Page 55: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Creating line and spline edge segmentsSome operations such as sweep, when the sweep along a wire option is used, require the creation of 1Dedge entities to define a path. Sentaurus Structure Editor is used to define wire bodies (a collection ofedge entities).

To generate linear line segments or spline curves:

Draw > Create 2D Primitives.

The Draw > Create 2D Primitives > Line segment(s) option generates a wire body, consisting of linearedges, lying in the same plane. The Spline option generates a planar spline curve. To generate a wirebody consisting of only linear line segments, the Scheme command sdegeo:create-polyline-wire can beused.

In the argument list, a position list has to be defined. The syntax is similar to that defining a spline curve.The Scheme command is sdegeo:create-spline-wire, which requires a position list.

Using snap-to-existing-vertices in 2DTo draw 2D rectangles and polygons, the snap-to-existing-vertices feature is switched on by pressing theCtrl key as vertices are selected by clicking.

Selecting Draw > Snap to Grid controls whether the objects drawn (rectangles, polygons, andrefinement windows) snap to the grid. View > Grid is used to configure the grid settings and visibility.

Adding a vertex in 2DTo add a vertex:

1. Draw > Add Vertex.

2. Click a position on an edge where the vertex is to be placed.

Vertices are added to existing 2D regions in such a way that model conformity is maintained. For regionssharing a common edge or an edge segment, the vertex is inserted to both edges, splitting the edges.Added vertices are always inserted to the closest edge, by projecting the inserted vertex to the nearestedge.

NOTE This operation is implemented only for 2D models.

35

Page 56: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Moving a vertex in 2DTo move a vertex:

1. Draw > Move Vertex.

2. Drag the vertex to the required position.

NOTE This operation is implemented only for 2D models. Only vertices that connect linear linesegments can be moved.

Moving a vertex is allowed only to such an extent that the expected operation results in a topologicallycorrect 2D region, that is, crossing edges are not allowed. If a vertex belongs to multiple regions, allregions are modified in a conformal manner.

Automatic region-namingTo activate the automatic region-naming feature:

Draw > Auto Region Naming.

When creating a new 2D region, Sentaurus Structure Editor prompts the user to define the name of aregion. If the automatic region-naming feature is switched on, a name is assigned without userinteraction. The region names follow the sequence region_1, region_2, region_3, and so on.

Region names are artificial attributes that are needed to generate correct DF–ISE boundary file output.By default, Sentaurus Structure Editor assigns a different region name to each newly created geometricobject (2D or 3D body). Region names can be changed and reassigned, and multiple geometric objectscan have the same region-name attribute.

NOTE Due to a restriction in DF–ISE boundary output, only connected regions can have the sameregion name. Disjoint regions must have different region names. If region naming does notsatisfy this criterion, Sentaurus Structure Editor automatically modifies the region names byadding an _lump%N string to each disjoint regions (N is a lump counter). Users can activate thisbehavior by using Edit > Separate Lumps.

36

Page 57: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Using exact coordinatesTo activate exact coordinates:

Draw > Exact Coordinates.

During the drawing of 2D structures, and the adding or moving of vertices, if the Exact Coordinatesoption is switched on, a dialog box is displayed showing the x, y and z coordinates of the salient featuresof the new entity, allowing the user to edit these values before the structure is drawn.

Overlap behaviorSentaurus Structure Editor does not allow regions to overlap and has different ways to treat overlappingregions created by the user, depending on the Boolean behavior selected.

To select the overlap behavior:

Draw > Overlap Behavior or click the corresponding toolbar button.

The corresponding Scheme commands are:

(sde:set-default-boolean) Sets the default overlapping behavior.

(sde:get-default-boolean) Returns the information about the default overlapping behavior.

The types of overlapping behavior available in Sentaurus Structure Editor are:

Merge The old and new structures merge and all boundary lines between them aredissolved. The resulting merged structure takes on the region name and materialof the last-drawn structure. The corresponding Scheme command is:

(sdegeo:set-default-boolean "AB")

New Replaces Old The new structure is created as drawn and the old structure is adapted. The partof the old structure that overlaps with the new one is deleted, and its boundaryis replaced by the boundary of the new structure. Two separate regions remain.The corresponding Scheme command is:

(sdegeo:set-default-boolean "ABA")

Old Replaces New The new structure is created but is adapted so that the old one remainsunchanged. The part of the new structure that overlaps with the old one isdeleted, and its boundary is replaced by the boundary of the old structure. Twoseparate regions remain. The corresponding Scheme command is:

(sdegeo:set-default-boolean "BAB")

37

Page 58: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

New Overlaps Old The new structure is created as drawn and the old structure is adapted. The partof the old structure that overlaps with the new structure is deleted. However, theboundary edges of the old structure do not dissolve. Three regions result:original, new, and overlap, where the overlap region is named region1region2,that is, the concatenation of the original and new region names. Thecorresponding Scheme command is:

(sdegeo:set-default-boolean "ABiA")

Old Overlaps New The new structure is created but is adapted so that the old one remainsunchanged. The part of the new structure that overlaps the old one is deleted.However, the boundary edges of the new structure do not dissolve. Threeregions result: original, new, and overlap, where the overlap region is namedregion1region2, that is, the concatenation of the original and new region names.The corresponding Scheme command is:

(sdegeo:set-default-boolean "ABiB")

An additional option "XX" is also available. (sdegeo:set-default-boolean "XX") switches off the automaticoverlap region handling, therefore allowing the creation of overlapping regions. This option should beused only by experienced users. The overlaps must be manually resolved later; otherwise, the DF–ISEboundary output generation creates an invalid topology.

Work planesTo access work planes:

Draw > Work Planes or click the corresponding toolbar button.

The corresponding Scheme commands are:

(sdegeo:define-work-plane "wpname" wp-origin wp-x-axis wp-y-axis)(sdegeo:set-active-work-plane "wpname")(sdegeo:delete-work-plane "wpname")

Figure 12 Work Planes dialog box

Users can add, delete, and activate work planes by using either the Work Planes dialog box or Schemecommands directly. The GUI contains a Defined Work Planes area, which lists all defined work planes.The name of the active work plane is visible in the Work Plane list in the upper part of the main window.

38

Page 59: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

By selecting another (already defined) work plane, users can interactively change the active work planewithout using the dialog box. The default work plane is called base, when the tool is started or after(sde:clear) is called. This work plane cannot be deleted. The base work plane is the usual orthonormalglobal xyz-coordinate system with the origin in (0,0,0) and unit axes (1,0,0) (0,1,0) (0,0,1).

When interactive drawing tools are used, the operations are always performed in the active work plane.For 2D actions, the x-y plane of the active work plane is used. Even when the view is rotated, the pointeralways moves in the x-y plane of the active work plane.

To define a work plane, specify a name for the work plane, its origin, and its x-axis and y-axis. The z-axis is defined by the right-hand rule.

If a planar face is already selected, before using Draw > Work Planes, the data that is needed for thework plane definition will be already completed, based on the selected face. The origin will be set to thebarycenter of the selected face. The x-axis and y-axis will be selected as the principal axes of the selectedplane. Using these settings, a work plane can be created automatically, which will go through theselected planar face.

Coordinate systemsTo define the local coordinate system:

Draw > Coordinate Systems.

The corresponding Scheme commands are:

(sdegeo:define-coord-sys "name" origin_x origin_y angle)(sdegeo:set-active-coord-sys "name")(sdegeo:delete-coord-sys "name")

Figure 13 Coordinate Systems dialog box

NOTE The local coordinate system can be defined in a work plane. The GUI has a work plane listthat also lists the local coordinate system. A work plane can have several local coordinatesystems.

39

Page 60: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Explicit Boolean operationsTo perform Boolean operations on regions:

Edit > 2D Edit Tools.

Edit > 3D Edit Tools.

First, multiple regions are selected by pressing the Ctrl key and clicking, or by circumscribing variousregions. The following multi-region operations can be performed:

Unite Dissolves any internal boundaries that exist in touching or overlapping regionsand results in one single region with the name of the first region selected beforethe unite operation was applied.

Intersect This operation is used if the direct ACIS Scheme functions are used to generateparts of the structure. As previously mentioned, it is not possible to createoverlapping regions in Sentaurus Structure Editor. If two overlapping regionsare created, they are trimmed according to the default overlap behavior and theirintersection is empty.

Subtract One region is first selected as the main region, then subsequent regions areselected to be subtracted from the main region.

If a model is generated using only GUI-supported objects (such as rectangles and polygons in 2D, andcuboids and cylinders in 3D) and using only GUI-supported methods (such as filleting and extrusion),and if the default Boolean behavior was not set to XX, the generated model should always be conformal(no overlapping regions).

In this case, direct Boolean operations should not be needed to complete a model (except uniteoperations, which may be needed if unique region names need to be assigned to neighboring regions).

The corresponding Scheme commands are:

sdegeo:bool-unitesdegeo:bool-intersectsdegeo:bool-subtract

40

Page 61: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Changing the material attribute

Figure 14 Material list: select active DATEX material for all subsequent actions

To change a material of a body:

1. Select the body.

2. Select the required material from the Material list.

3. Edit > Change Material.

The corresponding Scheme commands are:

(sde:add-material-GUI)(sde:add-material [ body | body-list ] "datex_material" "region_name")

where (sde:add-material-GUI) uses the selected entities, (sde:selected-entities) returns that list andchanges the DATEX material of each entity to the active DATEX material, and (sde:get-default-material) returns the active material. The region names of each entity remain unchanged.

When (sde:add-material) is used explicitly, users must specify an entity or a list of entities, and theDATEX material.

Changing the region-name attributeTo change the region name of a body:

1. Select the body.

2. Edit > Change Region Name.

The corresponding Scheme command is:

(sde:add-material body (generic:get body "material") "region_name")

NOTE If multiple bodies are selected, only the region name of the first selected body is changed.

41

Page 62: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

NOTE No check is performed to ensure that a newly chosen region name is not already in use. If abody is assigned a region name through this method and the region name is also used foranother body, the results of region-oriented operations are undefined.

Separate lumpsDuring model generation, Sentaurus Structure Editor never allows the generation of overlapping regions(unless (sdegeo:set-default-boolean "XX") is used). When the automatic region-naming feature isswitched on, a DF–ISE region name is automatically attached to each generated body. As a result of this,bodies with multiple lumps (disjoint 2D or 3D parts) can be created. These disjoint lumps have the sameDF–ISE region-name attribute.

Since this could cause a problem during meshing, these lumps must be separated and a unique regionname must be assigned to each lump. This is performed automatically before a DF–ISE boundary file isgenerated. If users want to perform the lump separation during model building, for example, to refer tomultiple-lump regions in a Scheme script before a DF–ISE boundary file is generated, use Edit >Separate Lumps. The same action can be performed by scripting using the (sde:separate-lumps)function.

The following script illustrates how multiple lumps can be generated:

(sde:clear)(sdegeo:set-default-boolean "ABA")(sdegeo:create-rectangle (position 0 0 0) (position 10 5 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 4 -2 0) (position 6 7 0) "PolySilicon" "region_2")

As a result, two regions are created (region_1 and region_2). However, region_1 is composed of twodisjoint lumps, which are not allowed in the DF–ISE boundary file. After (sde:separate-lumps), theregion_1 region-name attribute is removed from the silicon region, and region_1_lump_1 is assigned as theregion name to the left lump of the silicon body, and region_1_lump_2 is assigned to the right lump. TheDF–ISE boundary file will have three regions with unique region names.

Defining parametersTo define parameters:

1. Edit > Parameters.

2. Type in parameter names and values.

3. Click Set.

The corresponding Scheme command is:

(sde:define-parameter parameter_name parameter_value [min_value max_value])

42

Page 63: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

For example:

(sde:define-parameter "myvar1" "banana")(sde:define-parameter "myvar2" 10)(sde:define-parameter "myvar3" 10 0 20)

The parameters can be deleted by using either the Delete button of the Define Parameter dialog box orthe function sde:delete-parameter:

(sde:delete-parameter parameter_name)

NOTE The parameter names must be enclosed in quotation marks when the Scheme extension(sde:define-parameter) or (sde:delete-parameter) is used.

Figure 15 Define Parameter dialog box

Scheme variables function as parameters for various operations, such as extrusion and chamfering, andcan be used for device parameterization. These variables can be assigned not only a value by usingEdit > Parameters, but also minimum and maximum values. For example, when myvar1 is defined withValue 10, Min value 0, and Max value 20, users can enter myvar1 in the command-line window that willevaluate myvar1 as 10. The Min value is stored in a variable called myvar1_min and the Max value is storedin a variable called myvar1_max.

NOTE The defined parameters can be used in all subsequent Scheme commands.

43

Page 64: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Rounding in two dimensions

Figure 16 Two-dimensional vertex rounding

To round a vertex of a 2D body:

1. Select the vertex or vertices to be rounded.

2. Edit > Edit 2D > Fillet.

The corresponding Scheme command is:

(sdegeo:fillet-2d entities radius)

where entities is a list of the selected vertex or vertices, and radius is a floating-point number.

NOTE If fillet-radius is too large such that two adjacent fillets overlap, the operation will fail.

Chamfering in two dimensionsTo chamfer a vertex of a 2D body:

1. Select the vertex or vertices to be chamfered.

2. Edit > Edit 2D > Chamfer.

The corresponding Scheme command is:

(sdegeo:chamfer-2d entities chamfer-dist)

where entities is a list of the selected vertex or vertices, and chamfer-dist is a floating-point number.

Rectangle 1 x 1

fillet-radius=0.2fillet-radius=0.4

fillet-radius=0.2

Rounded Rectangle

44

Page 65: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Figure 17 Two-dimensional vertex chamfering

NOTE The chamfer-dist cannot be larger than the smallest edge length of the adjacent edges of theselected vertices. For multiple vertices sharing the same edge, the distance must be smallerthan half the length of the smallest such edge. Otherwise, the operation will fail.

Two-dimensional model cleanup and boundary simplification

Sentaurus Structure Editor can be used to clean up and simplify 2D models. Boundary simplification andcleanup may be necessary if 2D models, which were generated by a process emulation tool, are importedto Sentaurus Structure Editor and they require further geometry operations to be performed. In addition,boundary simplification and cleanup can help the meshing engines to mesh the model.

The 2D boundary simplification–related and cleanup-related algorithms and functions are availableusing Edit > Edit 2D. These procedures are also available directly from the Scheme scripting language.

NOTE Most of the cleanup operations can be applied only to linear segments (that is, those parts of2D bodies (regions) that contain only linear edges) or to vertices that are connected by linearedges. If a model contains curved edges, the boundary simplification and cleanup procedurescan still be used for the linear parts of the model.

Rectangle 1 x 1

chamfer-distance = 0.2 chamfer-distance = 0.4

chamfer-distance = 0.2

Chamfered Rectangle

45

Page 66: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Table 17 lists the boundary simplification Scheme functions that are also available from the GUI.

NOTE The two new boundary cleanup functions sdegeo:prune-vertices and sdegeo:del-short-edgesare very fast and robust. They are recommended for cleaning up 2D boundaries.

Table 17 Scheme functions for 2D boundary simplification

Scheme command Description

sde:window-select-2d Selects different entity types in a 2D window.

sdegeo:align-horizontal Aligns points horizontally to a specified position.

sdegeo:align-horizontal-aut Aligns points horizontally to the average position.

sdegeo:align-to-line Snaps the specified points to a predefined straight line.

sdegeo:align-vertical Aligns points vertically to a specified position.

sdegeo:align-vertical-aut Aligns points vertically to the average position.

sdegeo:average-edge-length Computes the average edge length (for a list of edges).

sdegeo:break-nearly-axis-aligned-edges Breaks nearly axis-aligned edges to horizontal or vertical components.

sdegeo:delete-collinear-edges Deletes collinear edges.

sdegeo:delete-edges Deletes the specified edges.

sdegeo:delete-nearly-collinear-edges Deletes nearly collinear edges.

sdegeo:delete-short-edges Deletes all edges from an edge list that are shorter than the specified value.

sdegeo:delete-vertices Deletes the specified list of vertices.

sdegeo:max-edge-length Computes the longest edge length (for a list of edges).

sdegeo:min-edge-length Computes the shortest edge length (for a list of edges).

merge-collinear-edges-2d Merges the collinear edges of the specified bodies.

sdegeo:prune-vertices, sdegeo:dnce Deletes nearly collinear points.

sdegeo:del-short-edges Deletes short edges.

46

Page 67: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Example I: Vertex alignmentThe following code was used to simplify the model in Figure 18:

(define device-regions (get-body-list))(define vlist (sde:window-select-2d -0.3 -0.85 -0.15 -0.1 device-regions "vertex"))(sdegeo:align-vertical-aut vlist)(define vlist (sde:window-select-2d 0.16 -0.85 0.26 -0.1 device-regions "vertex"))(sdegeo:align-vertical-aut vlist)(define elist (sde:window-select-2d -0.3 -1 0.3 -0.1 device-regions "edge"))(sdegeo:delete-short-edges elist (sdegeo:average-edge-length elist))

Figure 18 Two-dimensional boundary simplification, vertical alignment of vertices, and removal of short edges

Example II: Vertex removalThe following code was used to simplify the model in Figure 19:

(define device-regions (get-body-list))(define vlist (sde:window-select-2d -1.8 0.1 -0.05 1.4 device-regions "vertex"))(sdegeo:delete-vertices vlist)

Figure 19 Two-dimensional boundary simplification and vertex removal

Selected Vertices Vertically Aligned Vertices

Short Edges Removed

Selected Vertices After Vertices Deleted

47

Page 68: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Example III: Edge and short edge removalThe following code was used to simplify the model in Figure 20:

(define device-regions (get-body-list))(define elist (sde:window-select-2d -1.8 0.1 0.8 1.4 device-regions "edge"))(sdegeo:delete-edges elist)(define device-regions (part:entities (filter:type "solid?")))(define elist (sde:window-select-2d -1.8 0.1 0.8 1.4 device-regions "edge"))(sdegeo:delete-short-edges elist (sdegeo:average-edge-length elist))

Figure 20 Two-dimensional boundary simplification, and edge and short edge removal

Example IV: Vertex alignment to a straight lineThe following code was used to simplify the model in Figure 21:

(define device-regions (get-body-list))(define vlist (sde:window-select-2d 0.01 0.01 0.99 0.99 device-regions "vertex"))(sdegeo:align-to-line vlist (position 0 1 0) (position 1 0 0))(define vlist (sde:window-select-2d 0.01 0.01 0.99 0.99 device-regions "vertex"))(sdegeo:delete-vertices vlist)

Figure 21 Two-dimensional boundary simplification, align to line, and vertex removal

Selected Edges After Edges Deleted Only removed theedges that are shorterthan the average length

Selected Vertices Vertices Aligned to a Line After Vertices Deleted

48

Page 69: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Example V: Breaking nearly axis-aligned edgesAs previously mentioned in this section, sometimes non-axis-aligned boundaries must be converted toaxis-aligned boundaries. In 2D, the function sdegeo:break-nearly-axis-aligned-edges can be used.

The following code was used to simplify the model in Figure 22:

(define device-regions (get-body-list))(define elist (sde:window-select-2d 2 5.7 3.3 7.5 device-regions "edge"))(sdegeo:break-nearly-axis-aligned-edges elist 45)(define elist (sde:window-select-2d 6.8 5.7 8 7.5 device-regions "edge"))(sdegeo:break-nearly-axis-aligned-edges elist 20)

Figure 22 Breaking nearly axis-aligned edges to axis-aligned edges

Example VI: Merging collinear edgesThe following code was used to simplify the model in Figure 23 on page 50:

(sde:clear)(part:load (string-append loadpath "diode-nc.sat"));(length (entity:vertices (get-body-list))) -----> 355(merge-collinear-edges-2d "all");(length (entity:vertices (get-body-list))) -----> 244(roll)(merge-collinear-edges-2d "all" 10);(length (entity:vertices (get-body-list))) -----> 57(roll)(merge-collinear-edges-2d "all" 20);(length (entity:vertices (get-body-list))) -----> 39

45 degree threshold 20 degree threshold

Axis-aligned corner

Original boundary

Axis-aligned boundary

49

Page 70: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Figure 23 Merging collinear edges

Example VII: Deleting nearly collinear edgesThe following code was used to simplify the model in Figure 24:

(define device-regions (part:entities (filter:type "solid?")))(define elist (entity:edges device-regions))(length elist) ; 3723(sdegeo:delete-nearly-collinear-edges elist 0.5)(define elist (entity:edges device-regions))(length elist) ; 230

Figure 24 Mask layout simplification by deleting nearly collinear edges

(length (entity:vertices (get-body-list))) ; -> 355

(merge-collinear-edges-2d "all")

(merge-collinear-edges-2d "all" 10)

Original Model(merge-collinear-edges-2d "all" 20)

; --> 244 vertices

; --> 57 vertices

; --> 39 vertices

Mask layout before deleting nearly collinear edges Mask layout after deleting nearly collinear edges

Number of edges

3723 230

50

Page 71: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Creating a 2D cutTo extract a 2D rectangular part from a 2D model:

Edit > Edit 2D > 2D Cut.

The corresponding Scheme command is:

sdegeo:2d-cut

The argument list contains the two corner positions that will specify the cut. All regions outside of thecut rectangle are removed from the model.

Chamfering edges in three dimensionsTo chamfer (flatten) edge(s) of a 3D structure:

1. Select the entities edges to be flattened.

2. Edit > Edit 3D > Chamfer.

The corresponding Scheme command is:

(sdegeo:chamfer-edges entities distance1 distance2)

Figure 25 Three-dimensional chamfering operation

If the parameter chamfer-dist was set before performing this operation interactively (see Viewinginternal entity representations, entity numbering, relationships on page 27), this value will be usedduring the operation. If the parameter is not defined, the chamfer dialog box is displayed, where the usercan specify the chamfer value. If chamfer-dist is too large such that two adjacent chamfers wouldoverlap, the operation will fail.

chamfer-dist=0.2Cuboid 1 x 1 x 1

51

Page 72: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Rounding edges in three dimensionsTo round edges of a 3D structure:

1. Select the entities (edges, corners) to be rounded.

2. Edit > Edit 3D > Fillet.

The corresponding Scheme command is:

(sdegeo:fillet-edges entities radius)

Figure 26 Edge filleting in 3D

The parameter fillet-radius must be set before performing this operation interactively. If fillet-radiusis too large such that two adjacent fillets overlap, the operation will fail.

If the parameter fillet-dist was set before performing this operation interactively (see Viewing internalentity representations, entity numbering, relationships on page 27), this value will be used during theoperation. If the parameter is not defined, the chamfer dialog box is displayed, where the user can specifythe chamfer value. If chamfer-dist is too large such that two adjacent chamfers would overlap, theoperation will fail.

TaperingSentaurus Structure Editor offers several possibilities to modify an existing 3D body. Face tapering is a3D operation that can be used to fine-tune faces of a 3D body. The operation is available both from theGUI and Scheme scripting.

To open the Taper Faces dialog box (see Figure 27 on page 53) to perform tapering operations:

Edit > Edit 3D > Taper.

The corresponding Script command is:

(sdegeo:taper-faces)

Cuboid 1 x 1 x 1 Rounded Corner Rounded Edge

fillet-radius=0.2

52

Page 73: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Figure 27 Taper Faces dialog box

The operation tapers the selected face(s) by the supplied draft angle around an axis, which is defined bythe intersection between the plane of the face and a taper plane. The taper plane is defined by a point anda normal given as arguments to the extension. The direction of the normal defines the direction of theangle, that is, the resulting angled plane will slope in the direction of the draft plane normal. The taperplane need not intersect the face to be tapered and, even when it does, this intersection need not be anedge of the body.

If only one face is selected, the draft plane center is initialized, using the barycentric coordinates of theselected face. If more than one face is selected, the draft plane center point is initialized by 0,0,0 and theuser must enter the required center position for the operation. The draft plane normal is initialized as0,0,1. The draft angle is in degrees.

Vent faces are added between faces that can be merged, when one of them is not being tapered. Ventfaces can only be added if there is a face on the original model that shares a vertex with the ‘mergeable’edge does not have the mergeable edge in its boundary and that will be adjacent to the vent faces afterthe taper. Vent faces can also be added at tangent edges when one of the two faces that share the edge isbeing tapered. However, a vent face will only be added if there is no intersection between the surface ofthe face that is being tapered and the surface of the face that is not being tapered.

Figure 28 Topology change during face tapering

The Scheme extension to perform a tapering operation is sdegeo:taper-faces. The argument list containsa face list, the draft center position, the draft plane direction, and the draft angle:

(sdegeo:taper-faces (list (car)) (position 0 0 0) (gvector 0 0 1) 5.0)

53

Page 74: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Draft plane centerFigure 29 illustrates the effect of the use of different draft plane centers. For the operations, the samedraft plane normal and draft angle were used.

Figure 29 Draft plane center

Draft plane direction

Figure 30 Draft plane direction

Figure 30 illustrates the effect of using different draft plane directions. The taper operation wasperformed in the same plane, using the same parameters, except that the draft plane vector was changed.

Example IFigure 31 on page 55 shows the generated model using the script:

(sde:clear)(sdegeo:set-default-boolean "ABA")(define r1 (sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "region_1"))(define r2 (sdegeo:create-cuboid (position 2 2 8) (position 8 8 12) "PolySilicon" "region_2"))(sdegeo:delete-region (find-body-id (position 5 5 11)))(define facelist (list (car (find-face-id (position 2 5 9)))

(car (find-face-id (position 8 5 9)))(car (find-face-id (position 5 2 9)))(car (find-face-id (position 5 8 9))) ))

(sdegeo:taper-faces facelist (position 5 5 9) (gvector 0 0 1) 30)

Draft Plane Normal

Draft Angle

Draft Plane Center

Taper Direction: 0 0 1 Taper Direction: 0 1 0 Taper Direction: 0 1 1Face Normal: 1 0 0

54

Page 75: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Figure 31 Face tapering

Example IIFigure 32 shows the generated model using the script:

; Initial model(sde:clear)(sdegeo:set-default-boolean "ABA")(define r1 (sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "region_1"))(define r2 (sdegeo:create-cuboid (position 0 0 10) (position 10 10 20) "PolySilicon" "region_2")); Step 1(define facelist (list (car (find-face-id (position 0 5 5)))

(car (find-face-id (position 10 5 5))) ))(sdegeo:taper-faces facelist (position 5 5 5) (gvector 0 0 1) 30); Step 2(define facelist (list (car (find-face-id (position 5 0 5)))

(car (find-face-id (position 5 10 5))) ))(sdegeo:taper-faces facelist (position 5 5 5) (gvector 0 0 1) 30); Step 3(define facelist (list (car (find-face-id (position 0 5 15)))

(car (find-face-id (position 10 5 15))) ))(sdegeo:taper-faces facelist (position 5 5 15) (gvector 0 0 1) -30); Step 4(define facelist (list (car (find-face-id (position 5 0 15)))

(car (find-face-id (position 5 10 15))) ))(sdegeo:taper-faces facelist (position 5 5 15) (gvector 0 0 1) -30)

Figure 32 Face tapering

Before Face Tapering After Face Tapering

Initial Model Step 1 Step 4Step 3Step 2

55

Page 76: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Removing a vertex in two dimensionsThe selected vertex (or vertices) is deleted such that the edges that have the selected vertex as thecommon end point are replaced by a linear edge segment connecting the two other end points of theselected edges. The operation works only for linear edges in 2D. The operation must be performedcarefully, and users must ensure model conformity after the operation. (For example, when the operationis to be performed on a vertex that is a common vertex of several adjoining regions, the vertex must beselected using the Select command.)

To remove a vertex:

1. Select the vertex or vertices.

2. Edit > 2D Edit Tools > Delete Vertex.

The corresponding Scheme command is:

(sdegeo:delete-vertices vertices)

NOTE This operation applies only to 2D models.

Removing a regionThere are three ways to remove a region interactively:

1. Select the region or regions, then Edit > 2D Edit Tools > Delete Region.

2. Select the region or regions, and press the Delete key or Backspace key.

3. Right-click the required region, or press the Ctrl key and right-click the last of a selection of multipleregions.

4. Select Delete from the shortcut menu.

The corresponding Scheme command is:

(sdegeo:delete-region entities)

NOTE Ref/Eval windows can be deleted in a similar way. The selection filter must be set to Ref/Evalwindows in order to select the Ref/Eval window entities.

56

Page 77: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Extrusion

Extruding a 2D device to generate a 3D modelTo extrude a 2D device to generate a 3D model:

1. Select the 2D bodies (or faces) to be extruded.

2. Edit > 3D Edit Tools > Extrude (see Figure 33).

3. If the optional parameter hext is not defined, the Extrusion dialog box is displayed and the extrusionlength must be defined.

To define the hext parameter:

Edit > Parameters or use the Scheme define command (see Figure 33).

Figure 33 Menu path for extrusion (left) and Extrusion dialog box (right)

The corresponding Scheme command is:

(sdegeo:extrude entity(s) hext)

The operation is performed on the selected entity or list of entities. (sde:selected-entities) returns theselected entities. Different extrusion distances can be used for different regions.

Figure 34 on page 58 illustrates the extrusion operation for 2D devices. If the original 2D model wasplaced at the global x-y plane, the extrusion is performed in the z-direction. For positive values, theextrusion is performed in the positive z-direction; for negative values, the extrusion is performed in theopposite direction.

57

Page 78: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Figure 34 Creating an extruded 3D model from a 2D device; the extrusion length can differ for different regions

Extruding faces of a 3D modelThe extrusion operation can be applied to faces of 3D models. Extrusion is always performed in the facenormal direction, that is, pointing away from the body.

Figure 35 Face extrusions in the face normal direction

NOTE Negative extrusion values, applied to 3D faces, generate an invalid geometry.

Sweep operationsA sweep operation can be used to create a 3D region by sweeping a profile along a path. The profile canbe a 2D region (planar body) or a selected face of a 3D model. Profiles can be swept by a distance, alonga vector, around an axis, or along a wire body.

The sweep options allow additional control over the sweeping behavior. Sweep options enable drafting,twisting, and other advanced behaviors.

Extruded Faces

58

Page 79: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Sweeping is a complex operation involving several different types. In the following sections, allsupported sweep types are introduced. The sdegeo:sweep command and sweep:options command containdetailed descriptions of the sweep operation and available sweep options.

The sweep operation transforms the 2D edge contacts to 3D face contacts.

The Sweep dialog box accepts multiple sweep profiles (faces).

Sweep distanceThe sweep distance operation is similar to extrusion. Faces of 2D bodies or 3D bodies can be swept bya distance. The sweep distance option can be used with a variety of sweep options.

Figure 36 shows the Sweep Operations dialog box with the sweep distance option selected. Figure 37on page 60 shows the effect of a sweep distance operation, together with the use of the draft angle option.When a draft angle is used during a sweep operation, additional faces need to be added to the model ifthe gap_type sweep option is ‘extended’ or ‘rounded.’

The examples were generated using the following functions:

(sdegeo:sweep mf 6.0 (sweep:options "solid" #t "rigid" #f "miter_type" "default" "draft_angle" 40.0 "gap_type" "extended"))(sdegeo:sweep mf 6.0 (sweep:options "solid" #t "rigid" #f "miter_type" "default" "draft_angle" 40.0 "gap_type" "rounded"))(sdegeo:sweep mf 6.0 (sweep:options "solid" #t "rigid" #f "miter_type" "default" "draft_angle" 40.0 "gap_type" "natural"))

Figure 36 Sweep Operations dialog box showing the Sweep Distance tab

59

Page 80: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Figure 37 Sweep distance with a draft angle (40o) using different gap type options

Sweep along a vectorThe sweep along a vector option is similar to the sweep distance option, except that a vector is specifiedto define the sweep path. Figure 38 illustrates the Sweep Operations dialog box with the sweep alonga vector option selected.

Figure 38 Sweep Operations dialog box showing the Sweep Along Vector tab

Figure 39 Sweep along a vector

Initial 2D Body Extended Faces Rounded Faces ‘Natural’ Condition

Draft Angle

Selected Face

Selected Face

Sweep Vector

60

Page 81: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Sweep around an axisThe sweep around an axis option can be used to sweep a face (2D or 3D) around an axis. Figure 40 showsthe Sweep Operations dialog box with the sweep around an axis option is selected.

Figure 40 Sweep Operations dialog box showing the Sweep Around Axis tab

Figure 41 illustrates this option in action.

Figure 41 Sweeping around an axis using different options

Initial Face Sweep Around Existing Vertex Sweep Around a Position

61

Page 82: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Sweep along a wireTo sweep a profile along a wire, first, the wire body must be generated either manually by using Schemefunctions or by using the GUI. Figure 42 shows the Sweep Operations dialog box with the sweep alonga wire option selected.

Figure 42 Sweep Operations dialog box showing the Sweep Along Wire tab

Example I

This example illustrates the use of the sweep along a wire option. The 2D regions are created and thena path–curve, which is a spline curve, is created. Figure 43 on page 63 shows the initial body and sweeppath, and the generated 3D model:

(sde:clear)(sdegeo:set-default-boolean "BAB")(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 4 10 0) (position 6 15 0) "Oxide" "region_2")(sdegeo:create-rectangle (position 2 10 0) (position 4 14 0) "Nitride" "region_3")(sdegeo:create-rectangle (position 6 10 0) (position 8 14 0) "Nitride" "region_4")(sdegeo:fillet-2d (car (find-vertex-id (position 2 14 0))) 1)(sdegeo:fillet-2d (car (find-vertex-id (position 8 14 0))) 1)(sdegeo:create-circle (position 5 15 0) 1 "PolySilicon" "region_5")(define path-curve (wire-body

(edge:spline(list

(position 5 5 0)(position 5 5 6)(position 7 5 12)(position 11 5 18)

))))(for-each

(lambda (lbody)(sdegeo:sweep lbody path-curve)

)(part:entities (filter:type "solid?")))

62

Page 83: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Figure 43 Sweep along a wire option

Sweep optionsThe sweep operation can be performed with different options that affect the outcome of the operation.These options are controlled by the sweep:options command. For example, when a profile is swept alonga path, the profile can remain parallel to the original profile (rigid sweep) or can follow the path in amore natural way, following the curvature of the path, remaining perpendicular to the path duringsweeping. The following sections give an overview of the available sweep options.

Rigid sweep

A rigid sweep is one in which the profile that is swept is translated, but not rotated along the sweep path.It accomplishes a rigid extrusion of a profile along a path. The rigid option specifies whether to makethe cross sections of a sweep parallel to one another. The default is FALSE, which means the cross sectionsare perpendicular to the sweep path. No checks are made when a rigid sweep is performed; consequently,the resulting surface is self-intersecting if the given path is closed, or if the direction of the path changesmore than 180 degrees.

Mitering

The option miter determines how a corner miter is created during a sweep operation. The availablemitering options are:

new Reflects the profile to the other side of the corner up to the discontinuous point.The two sides are then extended, intersected, and new edges are formed asnecessary. The ‘ending’ profile is the same as the starting profile.

old Intersects the plane that is perpendicular to the path at the half angle of thecorner. The resulting profile on the plane is then swept continuing along thepath.

Sweep Path

63

Page 84: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

crimp Reflects the profile to the other side of the corner up to the discontinuous point.The portions of the two sides that are not intersecting are connected using asmooth rotation about the discontinuous point.

bend Bend mitering requires specification of a minimum radius to fillet the path. Theresult is a smooth, curved junction. The minimum radius must be positive.

The ‘new’ setting makes the sweep operation create miters by sweeping each G1 part of the path with acopy of the profile and then filling in the gaps with linear-extended parts that are sliced at the miterplanes.

The ‘crimp’ setting creates miters between profiles swept along G1-continuous path segments, filling ingaps by revolving the profile.

G1 continuity refers to geometric continuity of the first degree (that is, the direction of the tangent vectoris continuous). Two curves are G1-continuous at a given point if the directions of the tangent vectors attheir joining point are the same, even though the vector magnitudes may differ (in the case of C1continuity, the magnitudes are also the same). G1 continuity means that the tangent lines are smoothlyconnected.

SlicingTo generate a two-dimensional cross section from a 3D model:

Edit > 3D Edit Tools > Slice.

The corresponding Scheme command is:

sdegeo:3d-cut

The function needs two arguments: a position argument, to place the cut plane, and a gvector argument,to specify the cut plane normal. For example, the command (sdegeo:3d-cut (position 0.0 0.0 0.0)(gvector 1.0 1.0 0.0)) generates a 2D cut in such a way that the cut plane goes through 0.0 0.0 0.0, andthe cut plane is perpendicular to the 1.0 1.0 0.0 vector.

An optional third (Boolean) argument can also be used. When this argument is set to #f, the cut will begenerated as specified. If the argument is set to #t, the slice will be moved automatically to the x-y planeat z = 0. In this way, a 2D DF–ISE boundary file, which contains the cut, can be saved without the needfor additional explicit transformations.

64

Page 85: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Basic transformations: Scale, translate, rotate, reflectSeveral different Scheme functions and GUI operations can be used to perform basic geometrytransformation operations (scale, translate, rotate, and reflect) on the whole device or on selected entitiesof the device as well as on Ref/Eval windows.

The main dialog box for performing basic transformations can be accessed from Edit > Transform. TheTransform Operations dialog box has different tabs for scale, translate, rotate, and reflect operations.

NOTE The Selected Method option must be selected to activate the required transformation.

ScaleThe scale transform is activated by clicking the Scale tab on the Transform Operations dialog box (seeFigure 44). The scale operation can be applied to top-level entities (bodies) only (these are eithergeometric bodies, which are part of the model geometry, or Ref/Eval windows). Non-uniform scaling isalso supported. The scaling factors cannot be zero. If no scaling is required in a given direction, that scalefactor must be set to 1. The operation is always performed in the coordinate system of the entity.

Figure 44 Transform Operations dialog box displaying the Scale tab

TranslateThe translate transform is activated by clicking the Translate tab on the Transform Operations dialogbox (see Figure 45 on page 66). The translate operation can be applied to top-level entities (bodies) only(these are either geometric bodies, which are part of the model geometry, or Ref/Eval windows) and

65

Page 86: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

needs the x, y, and z translate values to be specified. If no translate is required in a given direction, thattranslate factor must be set to zero. The operation is always performed in the active coordinate system.

If the Transform Copy option is selected, the original bodies will also be kept. The optional repeatnumber can also be specified in order to perform a series of translations in one step.

Figure 45 Transform Operations dialog box displaying the Translate tab

RotateThe rotate transform is activated by clicking the Rotate tab on the Transform Operations dialog box(see Figure 46).

Figure 46 Transform Operations dialog box displaying the Rotate tab

The rotate operation can be applied to top-level entities (bodies) only (these are either geometric bodies,which are part of the model geometry, or Ref/Eval windows) and needs a base point and a direction todefine the rotation axis. In addition, a rotation value must be specified (in degrees). Positive values

66

Page 87: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

correspond to counterclockwise rotations (looking from the positive direction of the rotation axis). Theoperation is always performed in the active coordinate system.

If the Transform Copy option is selected, the original bodies will also be kept. The optional repeatnumber can also be specified in order to perform a series of rotations in one step.

ReflectThe reflect transform is activated by clicking the Reflect tab on the Transform Operations dialog box(see Figure 47). The reflect operation can be applied to top-level entities (bodies) only (these are eithergeometric bodies, which are part of the model geometry, or Ref/Eval windows) and needs a base pointto define a base plane and a vector to define the plane normal vector. The operation is always performedin the active coordinate system. If the Transform Copy option is selected, the original bodies will alsobe kept.

Figure 47 Transform Operations dialog box displaying the Reflect tab

Transformation examplesThe following code performs a series of basic transformations on a rectangle. The results of thesuccessive transform operations are shown in Figure 48 on page 68:

(sde:clear)(sdegeo:set-default-boolean "ABA")(define mb (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "PolySilicon" "xx"))(sdegeo:translate-selected mb (transform:translation (gvector 1.5 0 0)) #t 7)(set! mb (list (car (sde:find-reg-region "xx_t1_r1"))

(car (sde:find-reg-region "xx_t1_r3")) (car (sde:find-reg-region "xx_t1_r5")) (car (sde:find-reg-region "xx_t1_r7"))))

(sdegeo:scale-selected mb (transform:scaling 1 2 1))(set! mb (part:entities (filter:type "solid?")))(sdegeo:translate-selected mb (transform:translation (gvector 0 2.5 0)) #t 5)

67

Page 88: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

(set! mb (part:entities (filter:type "solid?")))(sdegeo:mirror-selected mb (transform:reflection (position 0 -1 0) (gvector 0 -1 0) ) #t )(set! mb (part:entities (filter:type "solid?")))(sdegeo:mirror-selected mb (transform:reflection (position -1 0 0) (gvector -1 0 0) ) #t )

Figure 48 Applying a series of transformations to a base model

TransformationsA transformation (or transform) is a change in form, such as translation, scaling, reflection, and rotation.A transformation can be applied to an entity or a list of entities.

The sdegeo functions sdegeo:translate-selected, sdegeo:scale-selected, sdegeo:mirror-selected, andsdegeo:rotate-selected are the Scheme extensions that take a transform object as an argument and applyit to the specified entity list. For some transformations, an optional repetition mode can be applied and,in addition, the original entities can be kept or deleted.

A transform is an object that translates, rotates, scales, and reflects top-level entities (these are eithergeometric bodies, which are part of the model geometry, or Ref/Eval windows).

A top-level entity is an entity that is at the highest level in the entity hierarchy list (that is, no other entityrefers to that entity). For example, a face of a solid body (s_b) is not a top-level entity, since the solidbody contains the face. (The (entity:faces s_b) command returns the particular face.) Similarly, a linearedge of a sheet body is not a top-level entity. However, if the edge was generated separately using theedge:linear command, for example, then it is a top-level entity.

68

Page 89: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Transformations are available from the GUI (Edit > Transform) and also have a complete set ofScheme extensions. The Transform dialog box has four distinct operating modes: scale, translate,rotate, and reflect.

Each transform mode has a Target Entities list, which lists all objects (2D and 3D bodies) to which thetransform can be applied. The target entities can be selected from this list. The selected entities arehighlighted. Selection from the GUI is also possible. In that case, the target entities must be selectedfrom the GUI and the corresponding entity IDs will be highlighted in the Target Entities list.

The translate, rotate, and reflect operations will create new bodies if the Transform Copy option isselected. The newly created bodies will inherit the DATEX material from the parent body. Region namesare also inherited, but an additional string will be attached to the region names in order to provide uniqueregion names.

During a modeling session, the number of transformations are numbered. In each transformation, therepeat number is also counted. For example, if the name of the parent entity is region_1 and the fifthtransformation is being performed, the newly created entity will be called region_1_t5. If the repeatnumber option is selected and set to 3, for example, the new regions will be called region_1_t5_r1,region_1_t5_r2, and region_1_t5_r3.

Scheme extensions for transformationsTable 18 lists the set of Scheme functions that can be used to perform transformation operations.

Table 18 Scheme extensions for transformations

Scheme function Description

sdegeo:mirror-selected Reflects the specified entities.

sdegeo:rotate-selected Rotates the specified entities.

sdegeo:scale-selected Scales the specified entities.

sdegeo:translate-selected Translates the specified entities.

transform:reflection Creates a transform to mirror an object through an axis.

transform:rotation Creates a transform to rotate an object about an axis.

transform:scaling Creates a scaling transform.

transform:translation Creates a translation transform.

69

Page 90: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

Split–insert operations on a deviceThe menu command Edit > Device Operations > Split Insert Device can be used to split a device at aspecified spatial location and to insert a linear segment (with a specified extension length) between thesplit parts of the original device.

The split–insert direction can also be specified. An optional merge argument can be used to merge thesplit bodies and inserted bodies. The associated Scheme extension is sdegeo:split-insert-device. Thesesplit–insert operations can be used for both 2D and 3D models.

Figure 49 Split Insert Device dialog box

Figure 50 Split–insert operations in 2D (left) and in 3D (right)

(sdegeo:split-insert-device (position 2 0 0) (gvector 1 0 0) 4 #t)

70

Page 91: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 4 WORKING WITH STRUCTURES

Extending a deviceThe menu command Edit > Device Operations > Extend Device can be used to extend a 2D modelaround the model boundary. Only the axis-aligned (horizontal or vertical) parts of the model will beextended. The associated Scheme command is sdegeo:extend-device. The left, right, top, and bottomparts of the device can be extended sequentially or in combination. If the combination contains a corner,the corner area will also be filled. Individual region names will be assigned to the extended parts and thematerial property is inherited from the original regions.

Figure 51 Original 2D device (left) and extended device (right)

Generating an interconnect structureComplex interconnect structures can be created easily with the sdepe:icon_layer command, whichcreates parallel layers. The z-coordinates of the bottom and top of each layer are constant. Each layerconsists of two materials: the interconnect material and the surrounding material. The interconnect bodyis created using the specified mask and mask polarity. The mask is swept from the top of the previouslayer, and the sidewalls of the swept body can be tapered by specifying a taper angle in the argumentslist.

The following script demonstrates the use of sdepe:icon_layer and Figure 52 on page 72 shows thegenerated structure (the gas region is hidden):

(sde:clear)(sdeio:read_dfise_mask "trex6_04.lyt")(sdepe:define-pe-domain (list -6.3809 -2.1935 3.9881 2.5923))(sdepe:create-substrate "Oxide" 0.4)

(sdepe:icon_layer "mask" "poly" "polarity" "light" "thickness" 0.4 "ic-material" "PolySilicon""env-material" "Gas" "taper-angle" 20)

(sdepe:icon_layer "mask" "interc1" "polarity" "dark" "thickness" 0.6 "ic-material" "Gas""env-material" "PolySilicon" "taper-angle" 0)

(sdepe:icon_layer "mask" "metal1" "polarity" "light" "thickness" 0.5 "ic-material" "PolySilicon""env-material" "Gas" "taper-angle" 20)

(sdegeo:extend-device "right" 4 "bottom" 2)

71

Page 92: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 4 WORKING WITH STRUCTURES

(sdepe:icon_layer "mask" "interc2" "polarity" "dark" "thickness" 0.5 "ic-material" "Gas""env-material" "PolySilicon" "taper-angle" 0)(sdepe:icon_layer "mask" "metal2" "polarity" "light" "thickness" 0.5 "ic-material" "PolySilicon"

"env-material" "Gas" "taper-angle" 20)

(sde:xshow-material "PolySilicon")

Figure 52 Interconnect structure (left) and 2D cut of interconnect structure showing tapered sidewalls (right)

72

Page 93: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

Sentaurus Structure Editor

CHAPTER 5 Mesh operations

This chapters concentrates on the mesh operations that can be used on structures.

Placements and definitionsIn addition to defining the geometry of a structure, users can define doping profiles and refinementparameters in different parts of the structure. The placement of these profiles and the areas to which theuse of these profiles and refinements are restricted can be specified by user-defined refinement/evaluation (Ref/Eval) windows. Ref/Eval windows are implemented as special bodies that can bemanipulated similarly to geometric bodies. In many cases, doping profiles and refinements can also berestricted to a specific region or material.

Sentaurus Structure Editor allows the full flexibility of definitions and placements available in the Meshinput syntax. Profiles and refinements are defined by specifying all the necessary parameters, but theiruse is not restricted to a specific location or an area until the definition is used in a placement. Therefore,a placement consists of one or more definitions restricted to a specific area of validity by specifying aRef/Eval window or, in many cases, by specifying a region name or material.

Both definitions and Ref/Eval windows can be reused in various placements for maximum flexibility.

Before defining a profile or set of refinement parameters, it is necessary to decide how to specify thearea of their use. If the area of use is to be specified with a Ref/Eval window, create it by using:

Mesh > Define Ref/Eval Window.

Ref/Eval windows serve as reference objects for doping placements as well as evaluation windows forgeometrically restricting the area of evaluation of the aforementioned doping placements. These twogeometric functions in the .cmd file are combined in one geometric object called the Ref/Eval window.

For 2D devices, Ref/Eval windows are generally lines for doping placement baselines and rectangles, orpolygons for evaluation windows. For 3D devices, Ref/Eval windows are generally rectangles orpolygons for doping placement baselines (base-surfaces), and cuboids for evaluation windows.

From Version Y-2006.06, these Ref/Eval windows are implemented as geometric elements, handled bythe ACIS modeler. The advantage is that they can be manipulated as ACIS model elements similar tomodel regions, including undo/redo. Note that the general ACIS manipulation of Ref/Eval windows mayresult in non-manifold elements or elements that are more complex than allowed by the meshingengine .cmd file syntax (for example, multiply connected faces).

73

Page 94: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

To create a Ref/Eval window:

1. Mesh > Define Ref/Eval Window.

2. Select the shape of the Ref/Eval window.

3. Draw the Ref/Eval window.

The corresponding Scheme commands (depending on the geometric shape required) are:

(sdedr:define-refeval-window "name" "Line" (position x1 y1 z1) (position (x2 y2 z2))(sdedr:define-refeval-window "name" "Rectangle" (position x1 y1 z1) (position (x2 y2 z2))(sdedr:define-refeval-window "name" "Polygon" (list (position x1 y1 z1) (position x2 y2 z2)

(position x3 y3 z3) ... (position xn yn zn)))

Existing geometric faces can also be used to define refinement windows (Mesh > Define Ref/EvalWindow > From Face). If the geometric face (the face of an existing body) is planar, only onerefinement polygon will be created (the polygonal approximation of the possibly curved geometric face).If the geometric face is nonplanar, the face is tessellated and the triangular tessellation will be extracted.The corresponding Scheme function is extract-refwindow.

To delete a Ref/Eval window:

1. Select Ref/Eval Window in the active Selection Level list or, alternatively, right-click in the viewwindow and set the selection level to Ref/Eval Window.

2. Click inside the required Ref/Eval window or draw a selection window in or around it.

3. Mesh > Delete Ref/Eval Window.

The corresponding Scheme command is:

(sdedr:delete-refeval-window (sde:selected-refeval-windows))

To view or hide Ref/Eval windows selectively:

1. View > Placements Viewer or View > Entity Viewer.

2. Select a Ref/Eval Window.

3. Click Show or Hide to display or hide the selected window.

To rename or resize a Ref/Eval window:

1. Select Ref/Eval Window in the Selection Level list, or right-click in the view window and set theselection level to Ref/Eval Window.

2. Choose the Select mode.

3. Right-click inside the required Ref/Eval window and select Properties.

4. Edit the Ref/Eval window name and coordinates.

5. Click OK.

74

Page 95: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

The definition of profiles and refinements is performed using the following commands.

To define a refinement:

Mesh > Refinement Placement.

To define a multibox:

Mesh > Multibox Placement.

To define a constant profile:

Device > Constant Profile Placement.

To define an analytic profile:

Device > Analytical Profile Placement.

To define an external profile (submesh):

Device > External Profile Placement.

Common features to all placementsThe features that are common to all placements are:

Every placement must have a name. This is the first field to enter at the top of each Placementdialog box.

Every placement has options for defining the area of use. One common option is the selection of auser-defined Ref/Eval window. For refinement placements, constant profile placements, andanalytic profile placements, an additional option is to restrict the area of use to a region or material.In the case of analytic profile placements, the area of use can also be restricted to a given Ref/Evalwindow.

Each Placement dialog box contains a Definition section, which is used to specify the parametersfor the definition associated with this placement. Definitions can also be associated with more thanone placement by creating a new placement and associating it with a definition that has already beenused in another placement.

Each Placement dialog box allows users to highlight the placement with the Show button andunselect it with the Hide button.

After entering all placement and definition parameters, the placement is created by clicking the AddPlacement button.

Both placements and definitions can be edited, and the changes can be saved by clicking the ChangePlacement button (visible only when viewing or editing a previously added placement).

75

Page 96: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

NOTE If a definition is changed, the change affects all placements where that definition is used.

The Delete Placement button (visible only when viewing or editing a previously added placement)can be used to delete a placement and its definition.

NOTE If a definition is also used in another placement that is not to be deleted, the definition remainsafter the placement has been deleted.

A definition name must be supplied in the Definition section of each Placement dialog box.

NOTE In the Refinement Function subsection of a Refinement Definition menu of theRefinement Placement dialog box, users can either select a doping species from a list ofpreselected variables or select any of the currently defined DATEX datasets. However, in thelatter case, Mesh or any other program that will use files written by Sentaurus Structure Editormay be unable to handle some of these datasets properly.

Refinement parametersFor general information about manipulating placements and definitions, see Common features to allplacements on page 75. For a full explanation of the datasets defined in the Refinement Placementdialog box, see Mesh Generation Tools, Defining refinement regions on page 7.

The Max Element Size and Min Element Size in the Refinement Definition menu of the RefinementPlacement dialog box correspond to the keywords MaxElementSize and MinElementSize in the Mesh inputfile.

NOTE If users define only MaxElementSize and MinElementSize for the x-direction only, it is stillconsidered a valid input, and these values will be used for the other two coordinates, inaddition to the x-direction.

Refinement on value difference or gradient (corresponding to MaxTransDiff and MaxGradient in the Meshinput file) of a dataset can be specified in the Refinement Definition area of the Refinement Placementdialog box.

To include refinement on value difference or gradient:

1. Mesh > Refinement Placement.

2. Select a dataset to refine from the list.

3. Select Value Difference or Gradient.

76

Page 97: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

4. Specify the value of Value Difference or Gradient.

5. Click Add.

To delete refinement on value difference or gradient:

1. Mesh > Refinement Placement.

2. Select the refinement function to be deleted.

3. Click Delete.

Multibox parametersFor general information about manipulating placements and definitions, see Placements and definitionson page 73. For a full explanation of the datasets defined in the Multibox Placement dialog box, seeMesh Generation Tools, Defining multibox refinement regions on page 8.

The parameters Min, Max, and Ratio for Width, Height, and Depth specified in the MultiboxPlacement dialog box correspond to the respective variables in the Mesh input file.

Constant profile parametersFor general information about manipulating placements and definitions, see Placements and definitionson page 73. For a full explanation of the datasets defined in the Constant Profile Placement dialog box,see Mesh Generation Tools, Defining constant profiles on page 9.

All parameters in the Constant Profile Placement dialog box correspond to the respective parametersin the Mesh input file.

Analytic profile parametersFor general information about manipulating placements and definitions, see Placements and definitionson page 73. For a full explanation of the datasets defined in the Analytic Profile Placement dialog box,see Mesh Generation Tools, Defining analytic profiles on page 10.

All parameters in the Analytic Profile Placement dialog box correspond to the respective parametersin the Mesh input file. The dialog box changes according to the selected profile type (Gaussian, ErrorFunction, 1D Profile, or Analytical Function) so that users can define the parameters correspondingto that profile type.

77

Page 98: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

External profile parametersFor general information about manipulating placements and definitions, see Placements and definitionson page 73. For a full explanation of the datasets defined in the External Profile Placement dialog box,see Mesh Generation Tools, Defining submeshes on page 8.

All parameters in the External Profile Placement dialog box correspond to the respective parametersin the Submesh section of the Mesh input file.

Defining contactsContacts are interfaces to the structure where electrical, thermal, or other boundary conditions areapplied. They correspond to physical contacts in the real device. Contacts are edges in 2D and faces in3D. The contact edges and faces are part of the geometry.

NOTE Disjoint entities can become a part of the same contact.

Opening the Contact Sets dialog box

To open the Contact Sets dialog box:

Contacts > Contact Sets.

Figure 53 Contact Sets dialog box

Alternatively:

1. Set the Select Level to Edge (2D) or Face (3D).

2. Right-click an edge (2D) or a face (3D) required to be defined as a contact.

A selection of multiple entities can be realized by pressing the Ctrl key while clicking the entities.A shortcut menu is displayed when right-clicking.

3. Select Contacts > New Contact Set.

78

Page 99: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

Defining a contact set

To add a contact to the Defined Contact Sets:

1. Open the Contact Sets dialog box.

2. Specify the Contact Name, Edge Color, and Edge Thickness.

3. Click Set.

The corresponding Scheme command is:

(sdegeo:define-contact-set "contact name" edge_thickness (color:rgb r g b) "pattern")

Deleting a contact set

To delete a contact from the Defined Contact Sets:

1. Open the Contact Sets dialog box.

2. Click the required contact in the Defined Contact Sets.

3. Click Delete.

The corresponding Scheme command is:

(sdegeo:delete-contact-set "contact name")

Activating a contact set

To activate a contact set:

1. Device > Contacts > Contact Sets.

2. Click the required contact from the Defined Contact Sets.

3. Click Activate.

4. Click Close.

NOTE As an alternative to performing Steps 1–4, users can select the required contact from theContact list.

Placing a contact

To place a contact at a required location in the structure:

1. Activate the required contact set.

2. Right-click in the view window and set the selection level to Edge.

79

Page 100: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

3. Click the Select button.

4. Click the edge (2D) or face (3D) of the structure where the contact is to be positioned.

5. Contacts > Set Edge(s).Contacts > Set Region Boundary Edges for 2D.Contacts > Set Region Boundary Face(s).Contacts > Set Face(s) for 3D.

As an alternative to performing Steps 1–5:

1. Right-click an edge (2D) or a face (3D) required to be defined as a contact.A shortcut menu is displayed.

2. From the Contacts menu, view the list of contact sets. A check mark shows which contact sets havealready been placed at the selected entity or entities.

3. Select the required contact set to set the selected edge(s) or face(s) as that contact set.

NOTE The placement of contacts onto a selection of multiple entities using this method can berealized by pressing the Ctrl key while clicking the entities, and then right-clicking the lastentity to be selected. The shortcut menu is displayed. Then, follow Steps 2–3.

The corresponding Scheme commands in 2D and 3D, respectively, are:

(sdegeo:define-2d-contact (find-edge-id (position x y z)) "contact name")

(sdegeo:define-3d-contact (find-face-id (position x y z)) "contact name")

Deleting a contact

To delete the current contact set attributes from all edges of the selected body or bodies in 2D:

Contacts > Unset Region Boundary Edges.

The corresponding Scheme command is:

(sdegeo:delete-contact-boundary-edges)

To delete the current contact set attributes from selected edges or an edge list in 2D:

Contacts > Unset Edge(s).

The corresponding Scheme command is:

(sdegeo:delete-contact-edges)

To delete the current contact set attributes from all faces of the selected body or bodies in 3D:

Contacts > Unset Region Boundary Face(s).

80

Page 101: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

The corresponding Scheme command is:

(sdegeo:set-contact-boundary-faces)

To delete the current contact set attributes from the selected faces or a face list:

Contacts > Unset Face(s).

The corresponding Scheme command is:

(sdegeo:delete-contact-faces)

As an alternative to the above steps, users can:

1. Right-click an edge (2D) or a face (3D) defined as a contact.A shortcut menu is displayed.

2. From the Contacts menu, view the list of contact sets. A check mark shows which contact sets havealready been placed at the selected entity or entities.

3. Select the required contact set to unset the selected edge(s) or face(s) as that contact set.

NOTE The deletion of contacts for a selection of multiple entities using this method can be realizedby pressing the Ctrl key while clicking the entities, and then right-clicking the last entity tobe selected. The shortcut menu is displayed. Then, follow Steps 2–3.

Imprinting contacts

Contact attributes can be assigned to edges in 2D and to faces in 3D.

Assigning contacts to edge segments in 2D

If contacts need to be assigned to a 2D edge segment, the original edge needs to be split into segments.Two-dimensional edges are split by inserting vertices into the edge. The sdegeo:insert-vertex commandadds a vertex to an edge. When an edge is split, contacts can be assigned to the individual edge segments.

Example I

The following code generates a rectangle, splits one of the edges, and assigns contacts to the side edgesegments:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "region_3" )sdegeo:insert-vertex (position 0.3 0.0 0.0))(sdegeo:insert-vertex (position 0.7 0.0 0.0))(sdegeo:define-contact-set "c1" 4.0 (color:rgb 1.0 0.0 0.0) "##")(sdegeo:define-contact-set "c2" 4.0 (color:rgb 0.0 1.0 0.0) "##")(sdegeo:define-2d-contact (list (car (find-edge-id (position 0.15 0 0)))) "c1")(sdegeo:define-2d-contact (list (car (find-edge-id (position 0.85 0 0)))) "c2")

81

Page 102: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

Figure 54 shows the resulting model.

Figure 54 Adding contacts to 2D edge segments

Assigning contacts to face segments in 3D

If a contact needs to be assigned to a 3D face patch, the original face needs to be divided into patches.The face patch can be created by splitting the original face into face patches, using any of the contactimprint commands. When a face is split into face patches, the face patch where the user wants to assigna contact must be identified. After this step, the contact generation procedure is the same as for theregular contact generation for faces.

To split faces, the following GUI actions can be used:

Contacts > Imprint Rectangle.Contacts > Imprint Polygon.Contacts > Imprint Circle.

The corresponding Scheme extensions are:

sdegeo:imprint-rectangular-wiresdegeo:imprint-polygonal-wiresdegeo:imprint-circular-wire

The syntax is the same as for the analogous 2D region generation commands, except that no materialname and region name must be specified. The imprint commands will always return the entity IDs of theimprinted faces. This face list can be used to assign the contacts in Scheme without the need to find theentity IDs of the imprinted faces.

Example II

Figure 55 on page 83 shows the splitting of the two top rectangular faces by a rectangular wire imprint:

(sde:clear)(sdegeo:set-default-boolean "ABA")(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Silicon" "r1")(sdegeo:create-cuboid (position 1 0 0) (position 2 1 1) "PolySilicon" "r2")(sdegeo:define-work-plane "wp1" (position 1 0.5 1) (position 2 0.5 1) (position 1 1.5 1))(sdegeo:set-active-work-plane "wp1")

Added VerticesOriginal Edge

Edge is split into three edge segments

82

Page 103: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

(sdegeo:imprint-rectangular-wire (position -0.5 -0.25 0) (position 0.5 0.25 0))(sdegeo:set-active-work-plane "base") (define f1 (find-face-id (position 0.75 0.5 1)))(define f2find-face-id (position 1.25 0.5 1)))(sdegeo:define-contact-set "cs1" 4 (color:rgb 1 0 0) "##")(sdegeo:define-3d-contact (list (car f1) (car f2)) "cs1")

Figure 55 Generating face patches

Example III

Figure 56 shows the result of the following code, which splits existing faces and assigns contacts to aface patch:

(sde:clear)(sdegeo:create-pyramid (position 0 0 0) 20 40 40 6 12 "PolySilicon" "")(define f1 (car (find-face-id (position 22.5166604983954 0 0))))(sdegeo:define-work-plane "wp1" f1)(sdegeo:set-active-work-plane "wp1")(sdegeo:imprint-polygonal-wire (list (position -5 0 0) (position -2 4 0) (position 2 4 0)(position 5 0 0) (position 2 -4 0) (position -2 -4 0) (position -5 0 0))); find-face-id uses the active coordinate system !!(define f1 (find-face-id (position 0 0 0)))(sdegeo:define-contact-set "cs1" 4 (color:rgb 1 0 0) "##")(sdegeo:define-3d-contact f1 "cs1")

Figure 56 Generating face patches

Assigned Contact

Original FaceImprinted Polygonal Wire

Assigned Contact

83

Page 104: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

Automatic contact extractionAutomatic contact extraction can be performed using the Scheme extension sdegeo:define-contact. Thiscommand is analogous to the Sentaurus Process contact command both in functionality and commandsyntax.

Two main methods are available in sdegeo:define-contact to extract contact regions. One method iscalled "point" and can be used to select and mark, as contacts, all edges (in 2D) or all faces (in 3D) ofthe region that includes the given point. In 2D, the x-coordinates and y-coordinates must be specifiedusing the "x" <REAL> and "y" <REAL> arguments. In 3D, an additional "z" <REAL> argument is needed.

The other assignment method is called "box" and extracts all the edges of the model within the boxboundaries; these edges will be assigned as contacts. The "box" method is available only in 2D. Edgesare split for the "box" method, if needed, at the intersections of the model and the specified boxboundaries. The box can be specified by using the arguments "xlo" <REAL>, "xhi" <REAL>, "ylo" <REAL>,and "yhi" <REAL>.

Other keywords can also be applied. Table 19 lists all available keywords.

The following example illustrates the use of sdegeo:define-contact:

; build the base model first(sde:clear)(sdegeo:create-rectangle (position 0.0 0.0 0.0) (position 1.0 1.9 0.0) "Silicon" "region_1")(sdegeo:create-rectangle (position 0.0 1.9 0.0) (position 1.0 2.0 0.0) "Oxide" "region_2")(sdegeo:create-rectangle (position 0.4 2.0 0.0) (position 0.6 2.6 0.0) "PolySilicon" "region_3")(sdegeo:create-rectangle (position 0.2 2.0 0.0) (position 0.4 2.6 0.0) "Nitride" "region_4")(sdegeo:create-rectangle (position 0.6 2.0 0.0) (position 0.8 2.6 0.0) "Nitride" "region_5")(sdegeo:fillet-2d (list (car (find-vertex-id (position 0.2 2.6 0)))

(car (find-vertex-id (position 0.8 2.6 0)))) 0.15)

Table 19 Additional keywords in sdegeo:define-contact

Keyword Description

"clear" Clears the contact assignments. (Removes all contact attributes from the model.)

"list" Lists the names of all defined contact sets.

"material" <DATEX material> The keyword "material"=<DATEX material> can also be used to restrict the contact assignments to specific regions.

"replace" When this keyword is used for the "point" method, the original region is converted to "Gas".

"sideways" When this keyword is added, the vertical edges (2D) or vertical faces (3D) are also assigned as contacts. The default behavior is no "sideways" (that is, no contacts are added to the vertical edges or vertical faces).

84

Page 105: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

Figure 57 Illustrating the use of sdegeo:define-contact

Building the mesh

OverviewWhen a structure has been created, it can be meshed using one of the Synopsys meshing engines.

To build a mesh:

Mesh > Build Mesh.

(sdegeo:define-contact "name" "cs1" "point" "x" 0.5 "y" 0.5)

(sdegeo:define-contact "name" "cs2" "point" "x" 0.5 "y" 2.3 "replace")

(sdegeo:define-contact "name" "cs3" "point" "x" 0.25 "y" 2.3)

Base model

Region is replaced by “Gas”

Contact Edges

(sdegeo:define-contact "name" "cs5a" "box" "xlo" -0.5 "xhi" 0.5 "ylo" -0.5 "yhi" 3.0)

85

Page 106: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

The corresponding Scheme command defined in Exporting boundaries and meshing on page 206 is:

(sde:build-mesh meshing options file-basename)

NOTE After the mesh is created, Sentaurus Structure Editor optionally can start Tecplot SV to viewthe mesh and doping profiles. By default, an internal mesh and profile viewer is activatedafter the mesh has been created.

Build Mesh dialog box

Figure 58 Build Mesh dialog box

The Build Mesh dialog box consists of the following sections:

Save Grid to File Type or browse for the file name for saving the mesh file. File names will bestripped of their meshing extensions (such as .cmd and .bnd) as well ascompression extensions (for example, .Z and .gz) to form the base name for themeshing files.

Meshing Engine group boxSelect the meshing engine: Mesh, Noffset3D, or Sentaurus Mesh. The optionsshown in the Mesh options pane will depend on the meshing engine chosen.

86

Page 107: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

Mesh Viewer group boxFor postprocessing and visualization of the generated mesh, the optional toolsare native Sentaurus Structure Editor (SDE) or Tecplot SV. If no visualizationis desired, choose None.

Mesh options A list of command-line or global options for the meshing engine can beselected, depending on the meshing engine chosen in the Meshing Enginegroup box.

Other options Further command-line options can be entered as a string. The meshing enginewill be called with these additional command-line options.

Cmd file append For maximum flexibility, users can supply a file name of separatelygenerated .cmd file commands to be included in the final written .cmd file.

Build Mesh button Click Build Mesh to commence the creation of the mesh.

Save Values button When Noffset is selected as the meshing engine, the Save Values buttonbecomes available, allowing the user to save the global Noffset parameterswithout executing the meshing engine.

Curve and surface tessellation for 2D/3D DF–ISE boundary generationThe geometry engine of Sentaurus Structure Editor can represent curved boundaries. Regions withcircular or spline boundary edges in 2D, and regions with cylindrical or spherical boundary faces, orwith spline and NURBS boundary faces can be defined. Even a simple sweep or revolve operation leadsto curved boundaries.

Global refinement controlSince the DF–ISE or TDR boundary representation does not allow curved edges and surfaces, theinternal boundary representation of Sentaurus Structure Editor is tessellated to generate a valid DF–ISEor TDR boundary output. The tessellation is performed using the properties of sde-ref, which is a globalrefinement object. Some sde-ref settings (such as surface tolerance and normal tolerance) can bespecified by using the (sde:setrefprops) Scheme function. Other properties of the tessellation can be setusing the (refinement:set-prop) function.

The following parameters can be used to control the global refinement:

Surface tolerance length refers to the allowable maximum deviation (distance, in globalcoordinates) between the internal curved representation and the tessellated output.

Normal tolerance is the maximum difference (in degrees) that is allowed between the surfacenormals of the internal curved representation and the face normals of the faceted output.

87

Page 108: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

Aspect ratio is the required aspect ratio.

Maximum edge length is the maximal edge length allowed in the tessellated output.

The surface tolerance, normal tolerance, aspect ratio, and maximum edge length can all be set throughthe dialog box opened using:

Mesh > Global Refinement.

Figure 59 Refinement Control dialog box to control refinement of boundary file

Example

A sphere (with origin 0 0 0 and radius 10) and a DF–ISE boundary file for three different refinementsettings are generated:

(sde:clear)(sdegeo:create-sphere (position 0 0 0) 10 "PolySilicon" "Region_1")(sde:setrefprops 0.5 25)(sde:export-mesh-3d (part:entities (filter:type "solid?")) "spm1.bnd")(sde:setrefprops 0.1 25)(sde:export-mesh-3d (part:entities (filter:type "solid?")) "spm2.bnd")(sde:setrefprops 0.1 15)(sde:export-mesh-3d (part:entities (filter:type "solid?")) "spm3.bnd")

After meshing using the option mesh -P, meshes with the properties listed in Table 20 are created.

The default refinement of sde-ref is set to a surface tolerance of 0.1 and normal tolerance of 15.

Table 20 Tessellation control in Sentaurus Structure Editor for generating DF–ISE boundary output

Entity type File name

spm1_msh.grd spm2_msh.grd spm3_msh.grd

nb_vertices 222 366 546

nb_edges 1093 1814 2777

nb_faces 1524 2534 3920

nb_elements 652 1085 1688

88

Page 109: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

Figure 60 Tessellation control for DF–ISE boundary output

Predefined surface tolerance valuesTable 21 lists the predefined values that can be used to specify the required surface tolerance.

Additional facewise refinement controlThe global refinement control sde-ref is the refinement object that controls the final tessellation of thenative model of Sentaurus Structure Editor during the DF–ISE boundary file generation. The refinementproperties of sde-ref can be set by the sde:setrefprops command and can be checked by the(refinement:props sde-ref) command.

For complex geometries, especially when thin curved faces or faces with high curvatures are present inthe model, users may want additional control as to how those faces are tessellated. This can be achievedby attaching extra refinement objects to those faces. This is possible by adding additional refinementattributes to the selected faces of the model. To do this, users must:

Define a refinement object (Scheme command (refinement)).

Select the faces that require additional refinement.

Table 21 Predefined surface tolerance values

Surface tolerance value Definition

0 Switches off or ignores the surface tolerance refinement criteria

–0.1 1/5000th of the box

–1 1/500th

–10 1/50th

… …

89

Page 110: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

Attach a refinement object to the selected faces (Scheme command (entity:set-refinement)).

Set the refinement properties (Scheme command (refinement:set-prop)).

There is a complete set of Scheme functions to support local face refinement. The example in Schemefunctions for controlling tessellation gives a step-by-step illustration of how to specify extra refinementsto selected faces of the model.

Scheme functions for controlling tessellationThe following Scheme functions can be used to define and set the global and facewise refinements:

sde:define-refinement Defines a facewise refinement object (REFINEMENT).

sde:define-global-refinement Defines the global refinement object (REFINEMENT).

refinement:props Lists the actual settings of a refinement.

sde:set-refinement Sets the refinement properties of a refinement.

sde:delete-refinement Deletes a refinement.

sde:show-refinement Shows the faces where the specified refinement is attached.

sde:hide-refinement Hides the specified refinement faces.

sde:attach-refinement Attaches the refinement to the specified faces.

sde:remove-refinement Removes the refinement from the specified faces.

Example I: Local refinement control; First build a model -->(sde:clear)(sdegeo:set-default-boolean "AB")(define b1 (sdegeo:create-cuboid (position 0 0 0) (position 11 15 4) "PolySilicon" "x"))(define b2 (sdegeo:create-cylinder (position 3 0 4) (position 3 15 4) 2 "PolySilicon" "x"))(sdegeo:set-default-boolean "ABA")(define b3 (sdegeo:create-cylinder (position 8 0 4) (position 8 15 4) 2 "PolySilicon" "x"))(entity:delete b3)(define mf (entity:faces b2))(sdeio:save-3d-dfise-bnd (existing-regions) "ref1.bnd")

; ref1.bnd is using only the default settings from sde-ref to generate the tessellation for the; DF-ISE bnd output. The generated model will have:; nb_vertices = 60; nb_edges = 174; nb_faces = 116

; In the next step we can change the global refinement to see how does that affect the tessellation.(refinement:props sde-ref)(sde:setrefprops 0.2 20 2 6)(sdeio:save-3d-dfise-bnd (existing-regions) "ref2.bnd")

90

Page 111: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

; The generated DF-ISE bnd file will approximate the original curved model closer.; ref2.bnd; nb_vertices = 338; nb_edges = 1008; nb_faces = 672

; Add local face refinements to the cylindrical faces

; Define the two refinements, and initialize them with some values(sde:refinement-init-scm-binding)(sde:define-refinement "ref1")(sde:set-refinement ref1 0.5 30.0 2.0 6.0)

(sde:refinement-init-scm-binding)(sde:define-refinement "ref2")(sde:set-refinement ref2 0.01 10.0 1.0 2.0)

; Check the refinements; (refinement:props ref1); (refinement:props ref2)

; Identify the two cylindrical faces and attach the refinements(define cface1 (list-ref mf 9))(define cface2 (list-ref mf 0))(sde:attach-refinement cface1 ref1)(sde:attach-refinement cface2 ref2)

(sdeio:save-3d-dfise-bnd (existing-regions) "ref3.bnd")

; Check the difference after the local refinements were added to the model!; ref3.bnd; nb_vertices = 985; nb_edges = 2949; nb_faces = 1966

91

Page 112: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

Figure 61 Applying global and local refinements to a model

Example II: Local refinement control; CONSTRUCT THE BASE MODEL(sde:clear)(sdegeo:create-cuboid (position 0 0 0) (position 30 10 5) "Silicon" "base-cube")(sdegeo:set-default-boolean "BAB")(define sp1 (sdegeo:create-sphere (position 5 5 5) 4 "PolySilicon" "sphere-1"))(define sp2 (sdegeo:create-sphere (position 15 5 5) 4 "Silver" "sphere-2"))(define sp3 (sdegeo:create-sphere (position 25 5 5) 4 "Gold" "sphere-3"))

; SELECT THE SPHERICAL FACES FOR LOCAL REFINEMENT(define sp1-spherical-face (list-ref (entity:faces sp1) 1))(define sp3-spherical-face (list-ref (entity:faces sp3) 1))(sde:export-mesh-3d (existing-regions) "sp-ex-base.bnd")

; USING ONLY THE GLOBAL REFINEMENT WILL RESULT A DF-ISE bnd FILE WITH:; nb_vertices = 995; nb_edges = 3138; nb_faces = 2148

; DEFINE LOCAL REFINEMENTS AND ATTACH THEM TO THE SPHERICAL FACES(sde:refinement-init-scm-binding)(sde:define-refinement "ref1")(sde:set-refinement ref1 0.6 40 2 5)(sde:refinement-init-scm-binding)(sde:define-refinement "ref2")

Tessellation of the model usingthe default refinement settings.

Applying an additional refinementto the global refinement sde-ref.

Tessellation after additional refinementswere attached to the cylindrical faces.

Changing the refinement betweenthe cylindrical faces.

92

Page 113: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

(sde:set-refinement ref2 0.02 5 1 2)(sde:attach-refinement sp1-spherical-face ref1)(sde:attach-refinement sp3-spherical-face ref2)(sde:export-mesh-3d (existing-regions) "sp-ex-ref.bnd")

; DF-ISE bnd OUTPUT USING THE ADDITIONAL LOCAL REFINEMENTS; nb_vertices = 3132; nb_edges = 9641; nb_faces = 6514

Figure 62 Global versus facewise refinement

If the output DF–ISE boundary file contains an excessive number of elements and meshing takes a longtime, the values of the surface and normal tolerances need to be relaxed. However, if importantgeometric features of the structure are not resolved in the output, the surface and normal tolerance valuescan be decreased.

Different meshing engines may need different settings in order to achieve an optimal performance. Formodels that will be meshed with Noffset3D, it is recommended to set the aspect ratio to a smaller value(1 is the minimum). In addition, to prevent creating elongated elements, it may be necessary to set themaximum edge length parameter.

Tessellating spherical facesThe default faceter triangulates spherical faces in such a way that a pole will be visible in the tessellatedsurface. If the refinement properties are set very restrictively, an unwanted overrefinement will bepresent in the tessellated boundary around the poles of the spherical faces. In some cases, this will causean unwanted overrefinement when the 3D mesh is generated by the meshing engines.

Some meshing engines (for example Noffset3D) may be too sensitive to the overrefinement around thepoles of the spherical faces. In this case, a new faceting algorithm can be activated by the(refinement:set-prop sde-ref "grid mode" "AF_GRID_ONE_DIR") command. To see the effect of the newfaceter, the rendering must be refreshed by (render:rebuild).

Global RefinementGlobal Refinement +Facewise Refinement

Additional FacewiseRefinement Control

ref2

ref1

93

Page 114: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

Figure 63 illustrates the effect of the new tessellation algorithm.

Figure 63 Tessellating spherical faces

Postprocessing, DF–ISE/TDR grid and data viewerAfter a model is completed using Sentaurus Structure Editor, the corresponding DF–ISE or TDRboundary file and mesh command file can be generated. These files can be used as input for theSynopsys meshing engines, which will create a 2D or 3D DF–ISE or TDR grid and data file output.

After the mesh was generated (either by using the Build Mesh dialog box or the Synopsys meshing toolsdirectly), the user can select whether to visualize the generated grid and data files. For a thoroughpostprocessing of the generated mesh and the associated data fields, it is recommended to useTecplot SV. For a fast visualization, Sentaurus Structure Editor also offers a mesh viewer, which allowsusers to visualize the generated mesh and data fields in Sentaurus Structure Editor.

NOTE Sentaurus Structure Editor does not have a build-in meshing engine. When a mesh isgenerated, using the Build Mesh dialog box, the external Synopsys meshing engines are usedthrough system calls to generate the mesh.

Interactive postprocessing using GUIThe GUI menu Mesh > Display Mesh (also added to the toolbar) can be used to switch between themain window of Sentaurus Structure Editor (showing the geometry of the generated model) and themesh grid and data viewer. This switching mode makes postprocessing very convenient. Figure 64 onpage 95 shows the Grid Postprocessing dialog box.

Pole Improved facetingaround the pole area

94

Page 115: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

To open the dialog box:

Mesh > Mesh Viewer.

After a DF–ISE or TDR grid file (and, if present, the associated data file) is loaded, the dialog box isinitialized automatically.

Figure 64 Grid Postprocessing dialog box

The dialog box includes the following fields and buttons:

Data Sets list Shows the defined datasets. If no data file was loaded, the only dataset that isdefined is called (None). In this case, the grid viewer shows the model using theassociated DATEX colors for each region.

Min. and Max. fields If a dataset is selected, the minimum and maximum values are extracted fromthe dataset, and the values are shown in the Min. and Max. fields.

Regions list Lists all region names that are present in the DF–ISE grid file. Click to select aregion. The selected region is highlighted. To select more than one region, pressthe Ctrl key. The Shift key is used to select a continuous part of the list.

Materials list Lists all material names that are present in the DF–ISE grid file. Selection is bythe same method as for the Regions list.

Data interpolation methods The possible selections are Linear, Log, and Ash.

Visualization type Lists all available rendering modes (None, Isoline, Fringe, and Cont. Fringe).When None is selected, the active regions are rendered with DATEX colors.The Isoline option can be used only for 2D models, showing the standardisoline rendering of the data field selected. Fringe plots a fringe plot usingbanded color stripes. A Cont. Fringe plot uses a continuous color map, notbanded color values, for the data field rendering.

Data interpolation methods

Visualization typeDatasets generated

Model view

Region list generated

Material list generated

from DF–ISE

from DF–ISE grid input

data file input

with DATEX colors

Minimum, maximum valuesfor selected dataset

Color maps

from DF–ISE grid input

95

Page 116: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

Color maps Two color maps are available, rainbow and BW (black and white), which canbe useful for printing.

Bands field The number of color bands used for the rendering.

Auto Range option When this option is selected, the user-defined Min. and Max. values arereinitialized, based on the range of the selected dataset.

Legend option This option is used to show and hide the legend.

Mesh option This option is used to show and hide the grid.

Reversed option When this option is selected, the used color map is reversed. In normal mode,red is associated with the highest value and blue is associated with the lowest.The Reverse option reverses the color map.

Clear button This button is used to clear the grid/data database.

Show button This button is used to add the selected regions and materials to the view.

Hide button This button is used to remove the selected regions and materials from the view.

Exclusive button This button is used to show the selected regions and materials exclusively (ithides all others from the view).

Close button This button closes the dialog box. (The loaded grid/data files are not cleared.)

Notes on using the Grid Postprocessing dialog box

During the postprocessing phase, the grid/data files are rendered in the main window. If a model ofSentaurus Structure Editor is already visible, it can be temporarily erased from the view (though notdeleted) using, for example, the (sde:xshow-material "") command. The Entity Viewer can also be usedto hide the existing models during postprocessing. To restore the model view and to add the model tothe scene, use either the (render:rebuild) command or the Entity Viewer.

Figure 65 shows a 2D fringe and isoline plot of a device and Figure 66 on page 97 shows a 3D model.

Figure 65 Two-dimensional grid/data field visualization (fringe and isoline plot); real part of optical field for first higher order mode (TE1) in a leaky waveguide edge-emitting laser

96

Page 117: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

Figure 66 Three-dimensional fringe plot without (left) and with (right) a mesh

Mesh value blankingThe Value Blanking dialog box is a convenient way to examine the internal structure and the data fieldsof the generated mesh. It has the following features:

Blank grid elements based on spatial location (x, y, z min/max).

Blank grid elements based on dataset minimum and maximum criteria.

Apply Boolean conditions (IF/IF NOT, OR/AND) to the value blanking criteria.

To open the Value Blanking dialog box:

Mesh > Mesh Value Blanking.

Figure 67 Value Blanking dialog box (left) and result of value blanking (right)

97

Page 118: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

Data probingWhen the Select toolbar button is clicked, during a grid or data postprocessing session, the selected faceof the grid element will be outlined and the closest vertex will be highlighted. The Data Probing dialogbox will show the x-, y-, and z-coordinates and the data-field values at the closest vertex and at the facecenter.

Figure 68 Data Probing dialog box

Cut planeThe cut plane is also integrated with the grid and data viewer. Only complete grid elements are removed,so the mesh quality can be checked visually. If the cut plane cuts through the model and the Show buttonis clicked, the mesh elements in front of the cut plane will be removed.

Figure 69 Grid and data visualization with an activated cut plane (left) and Cut Plane Controller (right)

NOTE The view does not cut through the elements, instead it renders only the complete meshelements that are behind the cut plane. In this way, mesh quality can be examined inside thedevice structure.

When the cut plane is removed and activated again, it is placed in the previous location.

98

Page 119: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 5 MESH OPERATIONS

Scheme commands for postprocessingThe following Scheme commands are for postprocessing:

sdepp:load-grid Loads a DF–ISE grid file to the grid and data viewer.

sdepp:load-data Loads a DF–ISE data file and adds the datasets to the grid and data viewer.

sdepp:clear Clears the grid and data viewer.

sdepp:clear-data Clears only the data fields from the grid and data viewer.

sdepp:set-num-colors Sets the number of color bands.

sdepp:show-mesh-edges Switches on or off the grid rendering.

sdepp:show-legend Shows or hides the legend.

sdepp:set-data-mapping Sets the data interpolation method.

sdepp:set-colormap-type Sets the colormap.

sdepp:set-palette-orientation

Sets the palette orientation (normal or reverse).

sdepp:set-plot-type Sets the data rendering type.

sdepp:set-ash-factor Sets the ash for the Ash interpolation method.

A detailed description of these commands can be found in Chapter 9 on page 149.

Geometry editor versus grid and data viewerOn the toolbar, the icon can be used as a fast switch between the geometry editor and the grid anddata viewer.

99

Page 120: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 5 MESH OPERATIONS

100

Page 121: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Sentaurus Structure Editor

CHAPTER 6 Process emulation

The process emulation of Sentaurus Structure Editor is presented in this chapter.

OverviewProcem is the three-dimensional process emulation module of Sentaurus Structure Editor. Procem offersa set of Scheme functions to emulate TCAD process steps such as deposition, etching, and implantation.The Procem Scheme extensions can be accessed either from the command-line window or by runningSentaurus Structure Editor in batch mode. The Procem functions are not available from the graphicaluser interface.

A basic knowledge of the Scheme language is required to use Procem. A thorough knowledge of theScheme programming language is not required in order to work only with single process steps, withoutusing variables, flow controls, or conditionals. The examples in this chapter provide sufficientbackground for users to write simple process emulation scripts in Scheme.

Process steps are translated to a sequence of geometric operations including:

Boolean operations

Local operations on the boundary (for example, face offsettings)

Boundary repair and healing (to perform de-looping and to resolve topology changes during processemulation)

Procem provides functions to:

Generate mask layouts

Import mask layouts

Generate substrate layers

Perform different patterning operations

Perform anisotropic and isotropic deposition

Perform etching operations with or without a protect region (patterned masks)

Perform a fill operation

Polish a device

Generate boundary output for meshing

101

Page 122: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Implant doping species

Create complex interconnect devices

Procem can be used as a stand-alone tool or can be integrated into the Synopsys tool flow. Procem hasa well-defined scripting language, which provides high-level functions for DF–ISE input and output,mask layout definition and input and output, and geometry generation.

Procem has several high-level procedures to perform process emulation steps. These functions can beembedded in a Scheme script to generate models. The Procem functions can be freely mixed with othersdegeo functions to generate three-dimensional devices.

Alternatively, a complete process flow, which can be generated by the Ligament Flow Editor andtranslated for Procem using Ligament or can be written manually, can also be executed using Procem inthe command-line mode. The generated models and generation steps are visible in the GUI. Other GUIoperations and Scheme functions can be applied to the generated model between process steps. Themodel will always remain conformal and ready for a DF–ISE boundary file generation.

Typically, a process emulation flow contains several commands to generate or load masks, to create thesubstrate layer, and to perform patterning operations, deposition, and etching steps. These steps generatedifferent regions.

There are several ways in which users can interact with Procem, which are illustrated in Figure 70. Userscan:

Define a Ligament process flow and translate that automatically to a Procem Scheme script usingLigament Flow Editor.

Use any Procem scripts that use the old Procem syntax.

Define a Procem script using the new syntax.

As a result, a Procem Scheme script is generated that can be run in Sentaurus Structure Editor either inbatch mode or interactively.

Figure 70 Procem and related Synopsys tools

Ligament SPR RepresentationLigament translation to a

Old Procem syntaxProcem syntax

Sentaurus Structure Editor/Procem

Ligament

Procem script

(ISE TCAD Release 9.5 and earlier)

Sentaurus Structure Editor/Procem

Ligament Translator

(automatic)

102

Page 123: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Base coordinate systemThe external boundary of the simulation domain is defined with respect to the global coordinate system.The external domain boundary is placed in the x-y plane. All process steps are performed over thedomain boundary in the positive z-direction. If process steps are to be performed on an existing model,the model may need to be transformed in such a way that the top of the device is facing the positive z-direction. This can be accomplished by a simple entity transformation using sdegeo:rotate-selected.

Mask layout input and mask generationProcem supports mask layout file input using the DF–ISE layout format (.lyt). There are several waysto define and initialize mask layouts:

Use the Ligament Layout Editor to define mask layouts and load them into Sentaurus StructureEditor. Mask layout files can be loaded into Ligament Layout Editor in several different formats(CIF, DF–ISE, or GDSII) and can edited and saved in DF–ISE layout format, which can be loadedinto Sentaurus Structure Editor.

Convert an already existing general mask layout file (CIF, GDSII) to the DF–ISE layout formatusing the Ligament Flow Editor and Ligament, and load the DF–ISE layout file.

Use DF–ISE layout files directly.

Define mask layouts directly in Procem using the sdepe:generate-mask command.

Table 22 lists the Procem functions that support mask layout input/output, and mask layout generationoperations.

Table 22 Procem mask layout–related operations

Scheme function name Description

exists-mask-name Checks whether a mask exists.

find-mask Returns the entity ID of a mask.

sde:hide-mask Removes the mask from the view window.

sde:show-mask Shows the mask in the view window.

sde:xshow-mask Exclusively shows the mask in the view window.

sdeio:read_dfise_mask Loads a DF–ISE (.lyt) file to the modeler.

sdepe:generate-mask Generates a mask.

103

Page 124: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Mask input

Direct mask generation

Command: sdeio:read_dfise_mask

Syntax: (sdeio:read_dfise_mask filename)

Argument types: filename STRING

Description This command loads the specified layout file (DF–ISE layout file syntax) andinitializes the data structure that defines the mask layouts inside Procem. Duringprocess emulation, the initialized mask layouts can be used in pattern operations.Mask polarities are not fixed; each mask can be used either as a ‘light’ or ‘dark’field mask. filename is the name of the mask layout file (specified with the fileextension .lay).

Command: sdepe:generate-mask

Syntax: (sdepe:generate-mask mask-name polygon-list)

Argument types: mask-name STRINGpolygon-list POLYGON LIST

Description This command is used to define masks in Procem. The defined masks can be usedin patterning operations. Each mask is defined as a polygon list. In a given mask,each polygon must form a simply connected region. The mask polygons cannotintersect and the polygon vertex list must define a manifold sheet body for eachpolygon. Different masks can have intersecting polygonal boundaries. If a maskcontains rectangular polygons, it is sufficient to specify only two opposite cornersof such polygons. Each polygon is defined as an xy-coordinate list.

mask-name is the name of the mask that is created by the command. The generatedmask will be a 2D sheet body, and a ‘maskname’ mask-name attribute will be attachedto the mask body. If a mask with the specified name already exists, subsequentoperations will use the newly created mask. polygon-list specifies the vertex pointsof the generated mask.

104

Page 125: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Figure 71 Example of a mask layout

Figure 72 Typical mask layouts

Example:

Mask layout generation(sde:clear)(sdepe:generate-mask "DEMO-MASK-1" (list (list 2 2 5 2 5 3 2 3) (list 5 6 9 6 7 9)))(sdepe:generate-mask "DEMO-MASK-2" (list (list 14 7 13.73 8 13 8.73 12 9 11 8.73 10.27 8 10 7 10.27 6 11 5.27 12 5 13 5.23 13.73 6)))(sdepe:generate-mask "DEMO-MASK-3" (list (list 11 3 10.73 4 10 4.73 9 5 8 4.73 7.27 4 7 3 7.27 2 8 1.27 9 1 10 1.23 10.73 2)))

(sde:clear)(sdepe:generate-mask "MASK1" (list (list 1 1 3 3) (list 7 7 9 9)))(sdepe:generate-mask "MASK2" (list (list 7 1 9 3 3 9 1 7)))(sdepe:generate-mask "MASK3" (list (list 2 1 3 2 2 3 1 2) (list 8 1 9 2 8 3 7 2) (list 8 7 9 8 8 9 8) (list 2 7 3 8 2 9 1 8)))(sdepe:generate-mask "MASK4" (list (list 3 3 7 7)))(sdepe:generate-mask "MASK5" (list (list 3 0 8 2) (list 8 3 10 7) (list 3 8 7 10) (list 0 3 2 7)))

X

Y

Z X

Y

Z

105

Page 126: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Process emulation commandsA set of Scheme functions (with the prefix sdepe) is available to perform process emulation steps.Table 23 lists the Procem functions that are to be used for process emulation.

Process emulation (Procem) on page 326 has detailed descriptions of these Procem commands.

NOTE Earlier versions of Procem used different functions to perform process emulation steps. Forconvenience, forward compatibility is maintained and the previous Procem commands arestill available. However, internally, these old commands are translated to the current syntaxand the new process emulation functions will be called internally. This may result in differentoutputs when the same (old syntax) Procem script is executed with earlier versions or withthe current version of Procem.

Table 23 Procem commands

Scheme function name Description

sdepe:add-substrate Generates the first substrate layer of the device.

sdepe:define-pe-domain Defines the simulation domain.

sdepe:depo Performs a deposition step.

sdepe:etch-material Performs an etching step.

sdepe:fill-device Performs a fill operation. (Fills the device with material up to the specified height.)

sdepe:pattern Performs a pattern step. The used mask must be defined beforehand.

sdepe:polish-device Performs a polish step. (Removes the top part of a device.)

sdepe:remove Removes the specified region or material.

Implantation

sdepe:doping-constant-placement Defines and implants a constant doping profile.

sdepe:doping-gauss Defines a Gaussian profile for implantation.

sdepe:implant Implants a profile defined by sdepe:doping-gauss.

106

Page 127: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Procem syntax and keywordsThe process emulation commands use a unified approach for argument specification. In the Procemcommands each variable is preceded by a keyword such as "material", "region", "thickness", and "step".

The argument pairs can be specified in an arbitrary order in the argument list. For example, "material""Silicon" "thickness" H is equal to "thickness" H "material" "Silicon".

Several argument value pairs have a default value. When the default value is to be used, the argumentpair can be omitted. For example, the default step size is 1. The keyword "step" can be used to specifya step size; however, if it is 1, it can be omitted. A "step" 10 will perform the particular operation(deposition, etch, and so on) in 10 steps.

Some argument list items must be specified together. For example, when a rounding is required, therounding radius must always be specified using the keyword "radius" and a numeric value.

Table 24 Procem argument keywords

Keyword Type Default value Description

"algorithm" STRING "lopx" Different face-offsetting algorithms are available in Procem, which can be activated by the keyword "algorithm". "lop", "lopx", "lop-move", "lop-body", "sweep", and "PT" are the available algorithms.

"base" REAL 0 Base (bottom) z-position of the substrate layer, used in sdepe:add-substrate. "base" is optional; the default value is 0.

"BC" STRING("none", "Extend", "Periodic", "Reflect")

"Extend" During directional operations, "BC" can be used to avoid some side effects around the domain boundary.

"blend-type" "blend-global" |"blend-network"

"blend-global" "blend-global" or "blend-network".

"depth" REAL none Etch depth.

"ext-dist" REAL Automatically calculated from the ray direction

The applied extension distance when "BC" "Extend" is used, during a directional operation.

"height" REAL max z coord Used in sdepe:fill-device and in sdepe:polish-device. If it is not specified in sdepe:fill-device, the device will be filled up to the maximum z-coordinate. In sdepe:polish-device, if "height" is given, the device will be polished up to the specified value. Alternatively, "thickness" can be specified in sdepe:polish-device, in which case the specified value is removed from the top z position.

"mask" STRING none Name of mask for pattern.

107

Page 128: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

NOTE When a keyword is used in the argument list, the corresponding value pair must be given.Otherwise, the argument list parser will fail. For example, if the keyword "material" is used,a DATEX material string must follow.

Converting between earlier and current Procem syntaxEarlier versions of Procem used different Scheme extensions and syntax. As more features wereintroduced in Procem, the syntax had to be changed and renamed. For compatibility reasons, the oldProcem commands are still available, however, they should not be used in new scripts.

Internally, the old syntax is translated to the new syntax, using some default values, and the new processemulation functions will be called instead of the old Procem functions. For this reason, some oldcommands may behave differently in the current version than in older versions.

"material" STRING (DATEX material)

"Gas" for the fill operation

Specifies the material type that will be used for the operation.

"overetch" REAL 0 An optional overetch distance for etching.

"polarity" STRING "light" Mask polarity for pattern ‘light’ or ‘dark.’

"radius" REAL none Rounding radius for rounded deposition.

"ray-vector" GVECTIOR (gvector 0 0 -1) The direction vector of the ray, for directional deposition and etch.

"region" STRING none Optionally, "region" can be used to specify a region name. If not given, the region name is automatically generated in a sequential order. The region name is generated as "region_N", where N is a region counter, which starts from 1 and is increased sequentially.

"shadowing" BOOLEAN #f If it is set to #t, the shadowing effect will be taken into consideration.

"steps" INTEGER 1 Number of steps for the given operation.

"thickness" REAL none Thickness value (for deposition and pattern).

"type" STRING "iso" (deposition) "aniso"

Deposition and etching can be either "iso" (isotropic), "aniso" (anisotropic), or "directional".

"vexity" STRING "convex" Describes the rounding type for deposition. The possible values are "convex", "concave", or "all".

Table 24 Procem argument keywords

Keyword Type Default value Description

108

Page 129: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Table 25 lists all commands related to process emulation in Procem that were used in earlier versionsand it lists the new commands that are called instead after a simple wrapper function is applied internallywhich converts the old syntax to the current one.

Handling mixed modelsIf a three-dimensional model is already present, there are some restrictions, regarding the modelgeometry, when additional Procem steps are to be performed on the model. These restrictions are:

The existing device must be placed in such a way that the base of the device is lying in the xy plane.All process emulation functions are to be performed on the top of the device (in the +z direction).(If some back-side processing is required, the model can be transformed before any Procemfunctions are called. After the process emulation steps, the model can be transformed back to theoriginal coordinate system.

The domain boundary in the base xy plane needs to be a convex, simply connected boundary.

The domain boundary is automatically calculated based on the existing 3D regions on the device.

All subsequent Procem steps are performed over the extracted domain boundary.

If additional explicit 3D geometry handling is performed between the process emulation steps andthese steps change the domain boundary, the existing domain boundary must be removed manually,to trigger the automatic domain extraction again. This can be performed by calling the Schemefunction (entity:delete domainboundary).

Table 25 General process emulation commands (ISE TCAD Release 9.5 and earlier)

Old Scheme function name Replaced internally by

isepe:anisotropic-pattern, isepe:isotropic-pattern sdepe:pattern

isepe:create-substrate sdepe:add-substrate

isepe:etch sdepe:etch-material

isepe:fill sdepe:fill-device

isepe:anisotropic-deposit, isepe:isotropic-deposit sdepe:depo

isepe:polish sdepe:polish-device

isepe:strip-region, isepe:strip-material sdepe:remove

109

Page 130: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Process emulation steps

Domain definitionIf a device is created from scratch, the domain boundary must be specified first, using the sdepe:define-pe-domain Scheme extension. All subsequent Procem steps will be performed over this domain boundary.If Procem steps are to be performed on an already existing 3D structure, the domain boundary need notbe defined. The domain boundary will automatically be extracted from the device geometry.

Substrate generationThe sdepe:add-substrate Scheme extension can be used to generate an initial substrate layer.

Patterning operationsThe sdepe:pattern Scheme extension can be used to perform a pattern process emulation step.

Anisotropic pattern

Figure 73 Example of anisotropic patterning

Figure 73 was generated using Procem and following script:

;;(sde:clear);#--------------------#;# Mask definition #;#--------------------#(sdepe:generate-mask "MASK1" (list (list 0 0 5 4)))(sdepe:generate-mask "MASK2" (list (list 4 1 7 3)))

; #--------------------#; # Process Flow #; #--------------------#(sdepe:define-pe-domain 0 0 10 4)(sdepe:add-substrate "material" "Silicon" "thickness" 2)(sdepe:pattern "mask" "MASK1" "polarity" "light" "material" "Resist" "thickness" 1 "type" "aniso")(sdepe:pattern "mask" "MASK2" "polarity" "light" "material" "Gold" "thickness" 1 "type" "aniso")

X

Y

Z

X

Y

Z

110

Page 131: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Isotropic pattern

Figure 74 Examples of isotropic pattern operations

Figure 74 was generated with Procem using the script above for the anisotropic pattern operation, exceptthat in this case instead of "type" "aniso", the argument "type" "iso" was used.

DepositionThe sdepe:depo Scheme extension can be used to perform a deposition process emulation step.

Anisotropic deposition(sde:clear)(sdepe:generate-mask "MASK1" (list (list 2 2 5 3)))(sdepe:generate-mask "MASK2" (list (list 14 7 13.73 8 13 8.73 12 9 11 8.73 10.27 8 10 7 10.27 6 11 5.27 12 5 13 5.23 13.73 6)))(sdepe:generate-mask "MASK3" (list (list 5 6 9 6 7 9)))(sdepe:generate-mask "MASK4" (list (list 11 3 10.73 4 10 4.73 9 5 8 4.73 7.27 4 7 3 7.27 2 8 1.27 9 1 10 1.23 10.73 2)))

(sdepe:define-pe-domain (list 0 0 15 10))(sdepe:add-substrate "material" "Silicon" "thickness" 2)(sdepe:pattern "mask” "MASK1" "polarity" "light" "material" "Resist" "thickness" 1)(sdepe:pattern "mask" "MASK2" "polarity” "light" "material" "Resist" "thickness" 2)(sdepe:depo "material" "Oxide" "thickness" 0.25 "type" "aniso")

Figure 75 Anisotropic deposition, mask layout, and deposited layers

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

111

Page 132: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Isotropic deposition

Example: Isotropic deposition with blend-vexity = "none"

In this example, this is the same code as used to illustrate anisotropic deposition. The only difference isthat the anisotropic step is replaced with:

(sdepe:depo "material" "Oxide" "thickness" 0.25 "type" "iso")

Figure 76 Manhattan-type isotropic deposition

The default "type" is "iso" for deposition, so if the "type" is not specified in the argument list, an isotropicoperation will be performed. The isotropic deposition step can also be performed by using the optionalarguments and applying different types of rounding.

Example: Isotropic deposition with blend-vexity = "convex"(sdepe:depo "material" "Oxide" "thickness" 0.25 "blend-global" "vexity" "convex" "radius" 0.25)

Figure 77 Isotropic deposition with “vexity” “convex”

Example: Isotropic deposition with blend-vexity = "concave"(sdepe:depo "material" "Oxide" "thickness" 0.25 "blend-global" "vexity" "concave" "radius" 0.25)

Figure 78 Isotropic deposition with “vexity” “concave”

X

Y

Z

112

Page 133: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Example: Isotropic deposition with blend-vexity = "all"(sdepe:depo "material" "Oxide" "thickness" 0.25 "blend-global" "vexity" "all" "radius" 0.25)

Figure 79 Isotropic deposition with “vexity” “all”

EtchingThe sdepe:etch-material Scheme extension can be used to perform an etching process emulation step.

Example: Etching operation using different etch options(sde:clear)(sdepe:generate-mask "MASK1" (list (list 2 2 8 8) (list 12 2 18 8)))(sdepe:define-pe-domain (list 0 0 20 10))(sdepe:add-substrate "material" "Silicon" "thickness" 2)(sdepe:pattern "mask" "MASK1" "polarity" "light" "material" "Resist" "thickness" 0.5); Use one of the following operations to perform the etch step(sdepe:etch-material "material" "Silicon" "depth" 1 "type" "iso" "algorithm" "lopx")(sdepe:etch-material "material" "Silicon" "depth" 1 "type" "iso" "algorithm" "lopx" "overetch" 1)(sdepe:etch-material "material" "Silicon" "depth" 1 "type" "iso" "algorithm" "lopx" "overetch" 1 "blend-global" "vexity" "convex" "radius" 0.6)

Figure 80 Etch operation: original model (upper left), etching without overetch (upper right), etching with overetch (lower left), etching with overetch and rounding (lower right)

113

Page 134: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Fill operationThe sdepe:fill-device Scheme extension can be used to perform a fill process emulation step.(sdepe:fill-device "material" "Gas" "height" 6) was used to demonstrate the fill operation in Figure 81.

Figure 81 Fill operation

PolishingThe sdepe:polish-device Scheme extension can be used to perform a polishing process emulation step.

Figure 82 Polishing steps starting from the upper-left corner and performing polish steps (left to right)

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

114

Page 135: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Additional process stepssdepe:remove can be used to remove a top layer (with a given "material" or "region" attribute)

Procem features

Directional operationsBy default, the Procem operations are performed in the global z-direction, assuming a vertical raydirection. The device is placed in the global xy plane and the exposed top surface of the device ispointing to the +z-direction.

If directional effects are taken into consideration, it is possible to define a ray vector other than (0 0 –1).The ray vector can be specified using the "ray-vector" argument and the ray direction (GVECTOR). Forexample, "ray-vector" (gvector 1 0 -1).

NOTE The "ray-vector" must be defined in such a way that the ray hits the top surface. Therefore,for example, (gvector 1 0 0) or (gvector 1 0 1) is not permitted.

Directional effects are associated with anisotropy, therefore, use "type" "aniso" for directionaloperations.

For anisotropic operations, the suggested algorithm is the sweep algorithm, which can be called, byusing the keywords "algorithm" "sweep".

As a result of the directional operation, an unwanted side rim artifact is usually generated around thedomain boundary. This side effect can be eliminated by applying an additional boundary conditionduring the Procem operation. The keyword "BC" is used to specify an additional boundary condition. Thekeyword "BC" has the following options:

"none", in which case, no boundary condition is applied.

"Extend" extends the device around the domain boundary before the directional operation and cutsback the device to the original domain afterwards. The extension length is calculated automatically,based on the ray direction, or it can be specified explicitly by using the "ext-dist" keyword and anextension length.

"Periodic" applies a periodic boundary condition about the device (the actual ray direction is takeninto consideration), so the periodicity is usually not applied to all sides. After the operation, thedevice is cut back to the original domain.

115

Page 136: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

"Reflect" applies a reflective boundary condition about the device (the actual ray direction is takeninto consideration), so the periodicity is usually not applied to all sides. After the operation, thedevice is cut back to the original domain.

ShadowingAn additional shadowing effect can be taken into consideration by adding "shadowing" #t to the Procemargument list. When the shadowing option is used, the following additional steps are performed duringprocess emulation:

Based on the ray direction, the silhouette edges of the device are imprinted to the top, exposedsurface of the device.

Raytracing is applied to determine face visibility. (After the silhouette edges are imprinted, exposedfaces can be classified as visible or nonvisible.)

Based on the visibility result, the face displacement map, which was calculated based on the "type"keyword, is modified. A zero displacement will be assigned to all nonvisible faces.

The PT algorithmA special algorithm called PT (polygonal tweak) has been developed to handle polyhedral models.Typically, polyhedral models have a large number of planar faces, with a possible high face connectivity.

The PT algorithm can be called using "algorithm" "PT". It cannot be applied to models, containing curvedfaces. When the PT algorithm is used, normal rounding and edge blending cannot be used. A similareffect to rounding can be achieved with the algorithm by using the "max-chamfer-angle" argument.

The following parameters can be used with "PT":

"min-feature-angle" If the angle between two adjacent face-normals is larger than the specifiedangle, then the edge between the two faces will be considered a feature edge andwill be preserved.

"min-feature-size" When offsetting two adjacent faces, a gap may arise between the offset faces;this gap spans two parallel offset edges. If the distance between the two edgesis smaller than min-feature-size, the gap will, in any case, be closed byextending and intersecting the offset faces. In this case, no vent faces or chamferfaces will be inserted. A nonpositive value indicates that vent faces or chamferfaces will be inserted if the corresponding conditions are satisfied.

"max-chamfer-angle" If the angle between two adjacent face-normals is larger than the specifiedangle, an attempt is made to insert chamfer faces. A nonpositive value indicatesthat no chamfer faces will be inserted. A value in the range [30., 90.] is usuallyreasonable.

116

Page 137: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

"range-for-vent-face-insertion"

If the angle between two adjacent face-normals is smaller than the specifiedangle, Procem tries to insert vent faces. A negative value indicates that no ventfaces will be inserted and a value in the range [30., 90.] is usually reasonable.

Procem algorithmsDifferent algorithms can be used during process emulation. In each sdepe function, the algorithm can bespecified using the keyword algorithm and the name of the actual algorithm that will be used during theoperation. Table 26 provides some information about how to select the algorithm, depending on themodel and the type of the operation. General models are the ‘native’ CAD-type models that aregenerated in Sentaurus Structure Editor. The polyhedral models are typically generated in a processsimulator and are loaded into Sentaurus Structure Editor for further processing.

Doping and implantation in Procem

Constant doping

Table 26 Process emulation algorithms and their application areas

Algorithm Model Process emulation type

"lop-move" General Isotropic

"lopx" General Isotropic

"PT" Polyhedral Isotropic, anisotropic

"sweep" General, polyhedral Anisotropic

Command: sdepe:doping-constant-placement

Syntax: (sdepe:doping-constant-placement species concentration region-name)

Argument types: species STRINGconcentration REALregion-name STRING

Description This command defines and applies a constant doping for a given region. Forconstant doping, a separate implant command is not necessary compared toGaussian doping profiles.

117

Page 138: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Gaussian doping profile

NOTE To create a doping implantation in the device, both the doping-gauss and implant statementsmust be used. The first statement defines the doping profile and the second is used to applythe doping profile to the device.

NOTE Instead of sdepe:doping-gauss, other profile definition commands such as sdedr:define-constant-profile, sdedr:define-1d-external-profile, sdedr:define-erf-profile, sdedr:define-gaussian-profile, and sdedr:define-analytical-profile can be used and referenced in theimplant statement.

Implantation of analytic and imp3d profiles

Command: sdepe:doping-gauss

Syntax: (sdepe:doping-gauss name species lateral-penetration peak-concentr peak-depth inside-concentr inside-depth)

Argument types: name STRINGspecies STRINGlateral-penetration REALpeak-concentr REALpeak-depth REALinside-concentr REALinside-depth REAL

Description: This command defines a Gaussian doping profile with a given name to be applied tothe device through the implant command.

Command: sdepe:implant

Syntax: (sdepe:implant doping-name ["flat" ["abs-height" abs-height | "delta-height" delta-height]])

Argument types: doping-name STRINGabs-height REALdelta-height REAL

Description: This command applies the doping profile doping-name to the top surface of a device.Areas of ‘resist’ and device features covered by resist are protected from dopingimplantation. The doping profile doping-name must be previously defined using thedoping-gauss command. Sentaurus Structure Editor analyzes the geometry of thesurface of the structure to find resist layers blocking the interface with the gas. Bydefault, the doping profile doping-name is placed at all surface faces exposed to thegas.

118

Page 139: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

NOTE To create a doping implantation in the device, both the doping-gauss and implant statementsmust be used. The first is used to define the doping profile and the second is used to apply thedoping profile to the device.

NOTE Instead of sdepe:doping-gauss, other profile definition commands such as sdedr:define-constant-profile, sdedr:define-1d-external-profile, sdedr:define-erf-profile, sdedr:define-gaussian-profile, and sdedr:define-analytical-profile can be used and referenced in theimplant statement.

Figure 83 Gaussian implantation on a silicon example with a rectangle of resist on the surface as viewed with Tecplot SV; the lateral penetration of the higher doping is red underneath the resist

Description: By giving the option "flat", the contour of the exposed surface is projected onto thexy plane, and this planar surface is used as the reference for the placement of thedoping profile doping-name. By default, this plane is positioned along the z-axis atthe uppermost nonresist device feature. This z-coordinate is adjusted by using theoption delta-height or is set absolutely by using the option abs-height.

119

Page 140: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Sentaurus Process and Sentaurus Structure Editor interaction

ConceptThe concept of combining the use of Sentaurus Structure Editor and Sentaurus Process is to create arealistic process flow simulation in 3D where Sentaurus Structure Editor emulates 3D etching anddeposition, and Sentaurus Process simulates doping implantation and diffusion. This concept isillustrated in Figure 84.

Figure 84 Example of simple process flow for schematic MOS structure integrating Sentaurus Process and Sentaurus Structure Editor

StrategyThe strategy is to use Sentaurus Structure Editor first to emulate all deposit and etch steps. The devicestructure is saved at all steps where doping implantation and diffusion will be simulated. Second,Sentaurus Structure Editor is used to create the composite structure. Saved steps are merged, preservinggeometry details in each step and creating a ‘paint-by-numbers’ table for Sentaurus Process. Then, thiscomposite structure is meshed using Mesh or Noffset3D.

Sentaurus Process is then used to simulate implantations and diffusions. Device structurescorresponding to the process-step snapshots saved in the first step are recreated using ‘paint-by-numbers’ material substitutions without having to re-mesh. This ‘paint-by-numbers’ strategy isillustrated in Figure 85.

Figure 85 Depiction of a ‘paint-by-numbers’ etching strategy

Create entire structureand mesh once

Spacer and gate'invisible'

Spacer 'invisible' No 'invisible' regions

Sentaurus Structure Editor & Mesh

Sentaurus Process

+Gas

Si

Si

1

2

Structure A

Structure B

1 2

Si Si

Gas Si

Structure A Structure B CompositeStructure

120

Page 141: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Structure A represents a step in the process simulation with a silicon substrate. After etching, the resultis Structure B. The resulting composite structure is shown with two regions labeled 1 and 2. The ‘paint-by-numbers’ table is shown on the right. To reproduce Structure A, both regions 1 and 2 are set to Si. Toreproduce Structure B, region 1 is set to Gas and region 2 is set to Si.

The strategy to mesh once and reproduce different device structures by changing materials in differentregions has the following advantages:

Fewer challenges in successfully creating meshes for complex structures.

Avoids interpolation of data from step to step.

Faster overall simulation times due to only one mesh creation step.

Sentaurus Process and Sentaurus Structure Editor as a Sentaurus Workbench projectThe practical steps for using Sentaurus Process with Sentaurus Structure Editor are:

Sentaurus Structure Editor: Follows the process flow for deposition and etching, and savesintermediate structures for implantation and diffusion simulation using (part:save filename.sat).

Sentaurus Structure Editor: Creates composite structure using sdesp Scheme extensions, then savesthe ‘paint-by-numbers’ table as a Tcl file to be read by Sentaurus Process:

(sdesp:begin)(sdesp:define-step "step-name1" "filename1.sat")(sdesp:define-step "step-name2" "filename2.sat")(sdesp:define-step "step-name3" "filename3.sat")(sdesp:define-step "step-name4" "filename4.sat")(sdesp:finalize "filename.tcl")

Sentaurus Structure Editor: Saves boundary and meshing command files for Noffset3D or Mesh.

Sentaurus Process: Loads ‘paint-by-numbers’ table with the Tcl command source filename.tcl thatdefines the procedure recreate_step.

Sentaurus Process: Recreates intermediate structures with recreate_step step-name and simulatesdoping implantation and diffusion.

121

Page 142: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Scheme extensions for Sentaurus Process and Sentaurus Structure Editor interaction

sdesp:begin

sdesp:define-step

Action: Starts the Sentaurus Process and Sentaurus Structure Editor boundary mergingmode.

Group: sdesp

Syntax: (sdesp:begin)

Argument types: NoneReturns: NoneErrors: NoneDescription: This extension is called before beginning the merging of .sat file boundaries,

commencing the Sentaurus Process and Sentaurus Structure Editor mode.Limitations NoneExample:

; Create Sentaurus Process Tcl file using sdesp commands; Start Sentaurus Process/SDE mode(sdesp:begin); Load .sat file files, each time defining a step name to be reproduced in Sentaurus ; Process(sdesp:define-step "step1" "_step1.sat")(sdesp:define-step "step2" "_step2.sat")(sdesp:define-step "step3" "_step3.sat")(sdesp:define-step "step4" "_step4.sat"); Conclude Sentaurus Process/SDE mode, write Tcl file(sdesp:finalize "sprocess_sde.tcl")

Action: Merges boundary (.sat file) and defines a structure step to be reproduced inSentaurus Process.

Group: sdesp

Syntax: (sdesp:define-step step-name file-name)

Argument types: step-name STRINGfile-name STRING

Returns: NoneErrors: NoneDescription: Loads .sat file file-name and merges with the currently loaded geometry. Associates

step-name with the current step.

122

Page 143: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

sdesp:finalize

Tool integration: Ligament Flow EditorProcem is integrated into the Synopsys tool environment, in which a general process flow can be writtenusing the Ligament Flow Editor. Mask layouts can be generated with the Ligament Layout Editor ormasks can be imported into the Ligament Flow Editor by using any of the standard mask layout fileformats such as CIF and GDSII.

After a general process flow has been described, the Ligament Flow Editor can be used to convert it intoa Procem script (a script file that fully follows the Scheme syntax.) The translated process file containsall of the information and parameters from Ligament. The generated Scheme file can be run withSentaurus Structure Editor/Procem.

NOTE Procem does not support all features that are present in the Ligament process flow syntax.(For example, process operations are always performed on the ‘top’ of the device, from thepositive z-direction.) Therefore, the Ligament-generated input Scheme script is firstinterpreted by Procem using wrapper functions. All nonsupported features are ignored andeach Ligament process flow command is replaced by a set of Procem functions.

Limitations NoneExample: See sdesp:begin on page 122.

Action: Completes Sentaurus Process and Sentaurus Structure Editor boundary merging andwrites Sentaurus Process Tcl file.

Group: sdesp

Syntax: (sdesp:finalize Tcl-file-name)

Argument types: Tcl-file-name STRING

Returns: NoneErrors: NoneDescription: This extension is used to complete the merging of boundaries in Sentaurus Process

and Sentaurus Structure Editor mode. It writes the Tcl file defining therecreate_step Tcl procedure called from within Sentaurus Process to recreate modelgeometry by redefining region materials.

Limitations NoneExample: See sdesp:begin on page 122.

123

Page 144: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Figure 86 Example of process flow in Ligament Flow Editor

Figure 87 Selecting Procem (sde) as an emulator inside Ligament Flow Editor

124

Page 145: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Table 27 lists the Scheme commands that are used by the Ligament Translator for Sentaurus StructureEditor/Procem. These commands are automatically converted to the Procem process emulationfunctions in Procem.

Process emulation exampleThis example illustrates some process emulation commands that were introduced in this chapter. Theexample is a complete Scheme script with variable definitions and process emulation commands. Itcontains commands for mask generation, domain definition, and substrate generation. Isotropicdepositions, patterning steps, and etching operations are used to illustrate process emulation steps withProcem.

The example shows a back end (interconnect) structure generation using a dual-damascene processemulation. First, two oxide layers (separated by a nitride layer) are deposited on the silicon substrate.Second, vias are etched in the bottom oxide layer followed by etching of lines in the top oxide layer. Athin barrier layer is deposited in the etched vias and lines. Subsequently, they are filled with copper,which is finally polished to form the metal lines.

Table 27 Ligament-generated Scheme commands and Procem counterparts

Command written by Ligament Translator

Description Automatically converted to Procem functions in Sentaurus Structure Editor

sdepe:comment Writes a comment to the command-line window.

sde:display

sdepe:deposit Performs a deposit-like (that is, a material addition) operation.

sdepe:depo or sdepe:fill-device

sdepe:exit Terminates Sentaurus Structure Editor. (exit)

sdepe:header Registers some information or journaling. –

sdepe:load Loads a model or script. sdeio:readbnd or sdeio:readgrd or part:load or load

sdepe:multi-etch Performs an etch-like (that is, a material removal) operation.

sdepe:etch-material or sdepe:remove or sdepe:polish-device

sdepe:pmask Defines a mask and performs a pattern operation.

sdepe:generate-mask and sdepe:pattern

sdepe:save Saves the model. sde:save-model

sdepe:substrate Generates a substrate layer. sdepe:add-substrate and constant-profile definition and placement

125

Page 146: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

The Scheme code for generating an interconnect structure is:

; Clear the data base(sde:clear)

; Parameters used for geometry definition and mask generation

(define W 2.2) ; Total width of the simulation domain.(define H 2.8) ; Total length of the simulation domain.(define HD 3.0) ; Total domain length.

(define P1_1_x 0.2)(define P1_1_y -0.6)(define P1_2_x 2.0)(define P1_2_y -0.6)(define P1_3_x 2.0)(define P1_3_y -0.3)(define P1_4_x 0.5)(define P1_4_y -0.3)(define P1_5_x 0.5)(define P1_5_y 2.8)(define P1_6_x 0.2)(define P1_6_y 2.8)

(define w_2 0.3)(define h_2 H)(define P2_1_x 0.7)(define P2_1_y 0)(define P2_2_x (+ P2_1_x w_2))(define P2_2_y P2_1_y)(define P2_3_x (+ P2_1_x w_2))(define P2_3_y (+ P2_1_y h_2))(define P2_4_x P2_1_x)(define P2_4_y (+ P2_1_y h_2))

(define w_3 0.3)(define h_3 H)(define P3_1_x 1.2)(define P3_1_y 0)(define P3_2_x (+ P3_1_x w_3))(define P3_2_y P3_1_y)(define P3_3_x (+ P3_1_x w_3))(define P3_3_y (+ P3_1_y h_3))(define P3_4_x P3_1_x)(define P3_4_y (+ P3_1_y h_3))

(define w_4 0.3)(define h_4 H)(define P4_1_x 1.7)(define P4_1_y 0)(define P4_2_x (+ P4_1_x w_4))(define P4_2_y P4_1_y)(define P4_3_x (+ P4_1_x w_4))(define P4_3_y (+ P4_1_y h_4))(define P4_4_x P4_1_x)(define P4_4_y (+ P4_1_y h_4))

; Via mask definition

126

Page 147: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

(define w_5 0.2)(define h_5 0.2)(define P5_1_x 0.25)(define P5_1_y 1.2)(define P5_2_x (+ P5_1_x w_5))(define P5_2_y P5_1_y)(define P5_3_x (+ P5_1_x w_5))(define P5_3_y (+ P5_1_y h_5))(define P5_4_x P5_1_x)(define P5_4_y (+ P5_1_y h_5))

(define w_6 0.2)(define h_6 0.2)(define P6_1_x 0.75)(define P6_1_y 0.8)(define P6_2_x (+ P6_1_x w_6))(define P6_2_y P6_1_y)(define P6_3_x (+ P6_1_x w_6))(define P6_3_y (+ P6_1_y h_6))(define P6_4_x P6_1_x)(define P6_4_y (+ P6_1_y h_6))

(define w_7 0.2)(define h_7 0.2)(define P7_1_x 1.25)(define P7_1_y 0.4)(define P7_2_x (+ P7_1_x w_7))(define P7_2_y P7_1_y)(define P7_3_x (+ P7_1_x w_7))(define P7_3_y (+ P7_1_y h_7))(define P7_4_x P7_1_x)(define P7_4_y (+ P7_1_y h_7))

; Metal line mask creation (define profile1 (list P1_1_x P1_1_y P1_2_x P1_2_y P1_3_x P1_3_y P1_4_x P1_4_y P1_5_x P1_5_y P1_6_x P1_6_y P1_1_x P1_1_y))(define profile2 (list P2_1_x P2_1_y P2_2_x P2_2_y P2_3_x P2_3_y P2_4_x P2_4_y P2_1_x P2_1_y))(define profile3 (list P3_1_x P3_1_y P3_2_x P3_2_y P3_3_x P3_3_y P3_4_x P3_4_y P3_1_x P3_1_y))(define profile4 (list P4_1_x P4_1_y P4_2_x P4_2_y P4_3_x P4_3_y P4_4_x P4_4_y P4_1_x P4_1_y))(sdepe:generate-mask "MASK0" (list profile1 profile2 profile3 profile4))

; Via mask creation(define profile1 (list P5_1_x P5_1_y P5_2_x P5_2_y P5_3_x P5_3_y P5_4_x P5_4_y P5_1_x P5_1_y))(define profile2 (list P6_1_x P6_1_y P6_2_x P6_2_y P6_3_x P6_3_y P6_4_x P6_4_y P6_1_x P6_1_y))(define profile3 (list P7_1_x P7_1_y P7_2_x P7_2_y P7_3_x P7_3_y P7_4_x P7_4_y P7_1_x P7_1_y))(sdepe:generate-mask "MASK1"(list profile1 profile2 profile3))

; Process Emulation Steps:

; Define domain(sdepe:define-pe-domain (list 0.0 -1.0 W HD))

; Create substrate(sdepe:add-substrate "material" "Silicon" "thickness" 0.5)

; 1st layer of dielectric deposition for vias/contacts(sdepe:depo "material" "Oxide" "thickness" 0.3)

127

Page 148: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

; Nitride deposition (sdepe:depo "material" "Nitride" "thickness" 0.05)

; 2nd layer of dielectric deposition for metal lines(sdepe:depo "material" "Oxide" "thickness" 0.3)

; Vias pattern and etching (sdepe:pattern "mask" "MASK1" “"polarity" "dark" "material" "Resist" "thickness" 0.1 "type" "iso")(sdepe:etch-material "material" "Oxide" "depth” 0.65 "algorithm" "lopx" "type" "aniso")(sdepe:etch-material "material" "Nitride" "depth" 0.05 "algorithm" "lopx" "type" "aniso")(sdepe:remove "material" "Resist")

; metal lines pattern and etching (sdepe:pattern "mask" "MASK0" "polarity" "dark" "material" "Resist" "thickness" 0.1)(sdepe:etch-material "material" "Oxide" "depth" 1.0 "algorithm" "lopx" "type" "aniso")(sdepe:remove "material" "Resist")

; Barrier layer deposition(sdepe:depo "material" "Gold" "thickness" 0.02)

; Metal (copper) deposition(sdepe:isotropic-deposit "Copper" 0.2)

; Metal CMP(sdepe:polish-device "thickness" 0.2)

; Fill with Copper(sdepe:fill-device "material" "Copper")

The following figures illustrates the process steps that were performed by the script.

Figure 88 Generated masks and domain boundary; the external rectangle wire shows the simulation domain

128

Page 149: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 6 PROCESS EMULATION

Figure 89 State of process emulation after the first pattern step (MASK1 as a ‘dark’ mask was used); the patterned resist layer is translucent

Figure 90 A 2D cross section of the device after the first two etching steps (the vias mask is removed)

Figure 91 State of process emulation after metal lines are patterned (MASK1 with ‘dark’ polarity)

129

Page 150: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 6 PROCESS EMULATION

Figure 92 Deposited barrier layer is shown separately from two different angles

Figure 93 Final structure after final metal layer (copper) deposition and after last polish step is performed

130

Page 151: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 7 ADVANCED FEATURES

Sentaurus Structure Editor

CHAPTER 7 Advanced features

This chapters outlines some advanced features that are available in Sentaurus Structure Editor.

Background image loaderImages (in GIF) can be loaded into the graphical user interface. Table 28 lists the Scheme extensionsthat can be used to manipulate the background image.

NOTE This feature is accessible only using Scheme commands in the command-line window.

Table 28 Scheme extensions for handling the background image loader

Scheme extension Definition Arguments

sde:create-bg-image Loads an image file (in GIF) into Sentaurus Structure Editor.

filename, STRINGhorizontal size, REALvertical size, REAL

sde:show-bg-image Shows the image. none

sde:hide-bg-image Hides the image. none

sde:delete-bg-image Removes the image from memory. none

sde:bg-image-transparency Sets the transparency of the image (0-1). transparency value, REAL (0-1)

131

Page 152: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 7 ADVANCED FEATURES

Figure 94 A background image loaded into Sentaurus Structure Editor

User-defined dialog boxesUser-defined dialog boxes can be created to assist with the generation of parametric devices. This featureis accessible only from Scheme. Users must create (register) a dialog box first, using sde:create-dialog.Then, input fields, which will serve as the argument list of the associated Scheme function, must bedefined, using sde:dialog-add-input. An optional bitmap icon can also added to the dialog box, usingsde:dialog-add-pixmap.

The OK button of the dialog box can be attached to execute an already defined Scheme script using thesde:dialog-ok-command command. The dialog box can be displayed using sde:dialog-show and can beremoved from memory using sde:dialog-delete.

The following Scheme commands can be used to create user-defined dialog boxes:sde:create-dialog

sde:dialog-add-input

sde:dialog-add-pixmap

sde:dialog-ok-command

132

Page 153: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 7 ADVANCED FEATURES

sde:dialog-show

sde:dialog-delete

A more detailed syntax description of these commands can be found in Utility functions on page 226.

To create and launch a user-defined dialog box:

Define a Scheme function that the dialog box will execute when the OK button is clicked.

Define the dialog box, create a bitmap image that shows all the necessary parameters, and add thebitmap image and the necessary parameters to the dialog box.

Launch the dialog box.

In addition, a template library can be assembled by more experienced users, who can also define thenecessary dialog boxes. The template library can be loaded by other users of Sentaurus Structure Editor.Less experienced users only need to launch the dialog box that can create the specific device. Only thenecessary parameters need to be added and the device is created automatically, based on the predefinedscript, the OK button executes.

ExampleThe following example illustrates how to define and use a dialog box.

Step 1: Define a Scheme function that the dialog box will execute(define create-2d-mosfet

(lambda (w1 w2 w3 h1 h2 h3)(sde:clear)(sdegeo:set-default-boolean "ABA")(define x1 (/ (- w1 (+ w3 w3 w2)) 2))(define x2 (+ x1 w3))(define x3 (+ x2 w2))(sdegeo:create-rectangle (position 0 0 0) (position w1 h1 0) "Silicon" "base")(sdegeo:create-rectangle (position 0 h1 0) (position w1 (+ h1 h2) 0) "Oxide" "oxide")(sdegeo:create-rectangle (position x2 (+ h1 h2) 0) (position x3 (+ h1 h2 (* 1.1 h3)) 0)

"PolySilicon" "poly")(sdegeo:create-rectangle (position x1 (+ h1 h2) 0) (position x2 (+ h1 h2 h3) 0)

"Nitride" "leftspacer")(sdegeo:create-rectangle (position x3 (+ h1 h2) 0) (position (+ x3 w3) (+ h1 h2 h3) 0)"Nitride" "rightspacer")

(sdegeo:fillet-2d (list (car (find-vertex-id (position x1 (+ h1 h2 h3) 0)))) (* 0.8 w3))(sdegeo:fillet-2d (list (car (find-vertex-id (position (+ x3 w3) (+ h1 h2 h3) 0))))

(* 0.8 w3))(sdegeo:insert-vertex (position (* 0.8 x1) (+ h1 h2) 0))(sdegeo:insert-vertex (position (- w1 (* 0.8 x1)) (+ h1 h2) 0))(sdegeo:define-contact-set "base" 4 (color:rgb 1 0 0) "##")(sdegeo:define-contact-set "gate" 4 (color:rgb 1 1 0) "##")(sdegeo:define-contact-set "source" 4 (color:rgb 1 0 1) "##")(sdegeo:define-contact-set "drain" 4 (color:rgb 0 0 1) "##")(sdegeo:define-2d-contact (find-edge-id (position (/ w1 2) 0 0)) "base")(sdegeo:define-2d-contact (find-edge-id (position (/ w1 2) (+ h1 h2 (* 1.1 h3)) 0)) "gate")

133

Page 154: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 7 ADVANCED FEATURES

(sdegeo:define-2d-contact (find-edge-id (position (/ x1 2) (+ h1 h2) 0)) "source")(sdegeo:define-2d-contact (find-edge-id (position (- w1 (/ x1 2)) (+ h1 h2) 0)) "drain")(render:rebuild))

)

Step 2: Define and configure the dialog box(define dlg (sde:create-dialog "2D MOSFET DEVICE"))(sde:dialog-add-pixmap dlg "mosfet2d.bmp")(sde:dialog-add-input dlg "width1" "Base Width" "real")(sde:dialog-add-input dlg "width2" "Gate Width" "real")(sde:dialog-add-input dlg "width3" "Spacer Width" "real")(sde:dialog-add-input dlg "height1" "Base Height" "real")(sde:dialog-add-input dlg "height2" "Oxide Thickness" "real")(sde:dialog-add-input dlg "height3" "Spacer Height" "real")(sde:dialog-ok-command dlg "create-2d-mosfet" "width1 width2 width3 height1 height2 height3")

Step 3: Launch the dialog box(sde:dialog-show dlg)

Try, for example, the following parameters to define a device: "width1" 10, "width2" 4, "width3" 1.5,"height1" 10, "height2" 0.5, "height3" 4.

Figure 95 shows the dialog box that was defined and created in Step 2, and launched in Step 3. Thegenerated device is also shown. (The Scheme function create-2d-mosfet that was defined in Step 1 wasexecuted using the parameters from Step 3.)

Figure 95 User-defined dialog box (left) and created device (right)

134

Page 155: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 7 ADVANCED FEATURES

Starting Sentaurus Structure Editor with user-defined variables

Scheme variables can be specified at the command line. When Sentaurus Structure Editor is launched,these variables are accessible from the Scheme command-line window (or in batch mode, the variablesare defined for script execution). In this way, a Scheme script can be started in such a way that theargument variables are passed to the script from the command line.

The syntax is:

-var varName=varValue

Neither varName nor varValue can contain any space characters (that is, the varName=varValue constructshould be seen as one argument). varValue can be either a string or number.

Examplesde -l cmdinputdemo.scm -e -var mw=10 -var mh=5

where cmdinputdemo.scm is defined as:

(sde:clear)(sdegeo:define-rectangle (position 0 0 0) (position mw mh 0) "Silicon" "xx")(sdeio:save-2d-dfise-bnd (get-body-list) "testarginput.bnd")

User-defined Scheme plug-ins and applicationsUsers can write their own Scheme scripts to create models. Journal files can be edited and parameterizedto generate models. These scripts can be run later in batch mode. Apart from the batch mode execution,scripts can also be written to make some steps automatic during model generation. These scripts can bedeveloped and provided to less experienced users to perform a particular task.

The following functions can be used to interact with the GUI and to receive user input:sde:gui-get-integer

sde:gui-get-real

sde:gui-get-string

For example, (sde:gui-get-real "Model Width" 10 "CMOS") displays a dialog box and asks the user for avalue (the default is specified in the argument list). The function returns the entered value.

Simple support functions are also provided to perform interactive model manipulation. (sde:pick-point-on-wp) can be used to select a position from the screen. (The pointer moves on the active work plane.)The function returns a position variable.

135

Page 156: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 7 ADVANCED FEATURES

(sde:pick-two-points-on-wp) is used to return two points. The first click of the mouse records the firstposition; the second click selects the second position. When the mouse button is released, the functionreturns the two positions.

The Scheme function sde:post-message is used to launch a message dialog box. The dialog box has anOK button, which needs to be clicked to continue. No new line character is needed. Multiple lines needto be separated by "\n", for example, (sde:post-message "This is a message\n from SDE").

136

Page 157: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

Sentaurus Structure Editor

CHAPTER 8 Geometry representation and entity debugging

This chapter presents a detailed description of the boundary representation method on which SentaurusStructure Editor is based, and introduces several support functions to query and debug the model.

Scheme data typesThe Scheme scripting language is used in Sentaurus Structure Editor and the process emulation moduleof Sentaurus Structure Editor, Procem.

Table 29 lists the data types that can be used as arguments when calling the Scheme functions inSentaurus Structure Editor.

Table 29 Data types for the Scheme functions related to Sentaurus Structure Editor

Data type Description

BOOLEAN A native Scheme data type having either the value #t (true) or #f (false). It represents a logical or Boolean value.

DATEXMAT A STRING type variable, containing a valid material name, as defined in the datexcodes.txt file. "Silicon" and "Oxide" are valid DATEXMAT variables.

ELIST An ACIS entity list.

ENTITY An ACIS entity.

GVECTOR A GVECTOR entity is an ACIS entity. It contains the keyword gvector and it is a composition of three real numbers representing the x, y, and z components of a 3D vector. For example, (define g1 (gvector 1 0 0)) defines a GVECTOR called g1. gvector is an ACIS-defined Scheme data type, used to represent a vector with magnitude and direction. It is called gvector only to differentiate it from the inherent Scheme data type vector, which represents an array.

INTEGER A Scheme data type containing a single integer value.

PLIST A polygon list: (list POLYGON POLYGON ... POLYGON).

POLARITY Either ‘light’ or ‘dark’.

POLYGON A position list: (list POSITION POSITION ... POSITION).

POSITION A POSITION entity is an ACIS entity. It contains the keyword position and three real numbers. For example, (position 0 0 0) or (position -3 -3.1 -3.14) are valid POSITION entities. (define p1 (position a b c)) defines a Scheme object p1 that holds a POSITION entity. The x-coordinate of p1 is equal to a, the y-coordinate is equal to b, and the z-coordinate is equal to c.

137

Page 158: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

Entity IDs and attributesGeometry-related operations in Sentaurus Structure Editor are based on ACIS, which is a boundaryrepresentation geometry kernel. Boundary representation utilizes a complex data structure describingthe geometry. The data structure of a model can be accessed through a topology graph, which containsthe building entities (such as edges, faces, and shells) of the device, and shows the relationships andconnections between these entities. A typical 3D body is described with respect to a lump list (disjointparts of the body). Each lump contains a shell list and each shell is described with respect to a face list.Each 3D body is composed of faces. A shell is a connected face list. For example, a cube is defined withrespect to six planar faces and the six faces define one shell. Similarly, a cube with an internal void iscomposed of two shells and each shell is defined by a face list.

Faces are described with respect to a loop and edge list. A face is described with respect to its boundaryedges. For example, a rectangle is defined by four linear edges. A circular sheet body is defined by acircular edge. A connected edge list is called a loop. Simply connected faces have one loop. Faces withinternal holes have multiple loops. For example, a circular sheet with an internal rectangular hole iscomposed of two loops. The outer loop contains one circular edge, while the internal loop contains fourlinear edges. A linear edge is defined by two vertices.

Using typical GUI operations or the Scheme interface, users usually do not have to consider thetopological representation of defined bodies. There are some cases, however, when users have toperform operations where entities from the underlying topology representation have to be referred to (forexample, when users create a 3D body and want to round some edges of the body). First, these edgeshave to be identified by using either the GUI or Scheme interface.

Each generated device is a collection of several different bodies. In 2D, these bodies are non-manifoldsolid bodies (solid bodies with zero volume). In 3D, the bodies are manifold solid bodies (having apositive volume). When the model is generated using either the GUI or sdegeo Scheme functions,Sentaurus Structure Editor assigns several different attributes to these bodies. Two important attributesare the ‘material’ attribute and the ‘region’ attribute.

An attribute is a general-purpose data entity that attaches to other entities to record user-defined or someother (internal) information. Attribute objects are saved and restored as part of the model when themodel is saved in the native ACIS .sat or .sab format. If the model is saved in the DF–ISE boundaryformat, only the TCAD-specific attributes (contacts, and material and region names) are saved to theboundary file.

The material attribute is a DATEX material (one of the materials defined in the datexcodes.txt file). Theregion attribute is a string that identifies a DF–ISE region to which a particular body belongs.

REAL A Scheme data type containing a single real or double value.

STRING A Scheme object containing a text string. A string is enclosed in braces or starts with the character '. Two examples of a string are "this_is_a_valid_string" and 'this_is_also_fine.

Table 29 Data types for the Scheme functions related to Sentaurus Structure Editor

Data type Description

138

Page 159: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

NOTE Each body within a region must have the same ‘material’ attribute.

The DF–ISE boundary file description contains some other restrictions to the use of the region attribute(that is, disjoint bodies cannot have the same region name). Since users can generate bodies withmultiple lumps, these lumps are separated automatically before the generation of the DF–ISE boundaryfile.

In addition, Edit > Separate Lumps or the Scheme extension sde:separate-lumps can be used to separatelumps automatically. Under typical circumstances, when the automatic region-naming feature isswitched on, the geometry generation and editing actions accessible from the GUI will ensure correctDF–ISE boundary output. When using direct Scheme extensions to generate the geometry, users mustbe aware of these restrictions.

During model generation, the geometry engine assigns a unique entity number to each generated body.When a Scheme function needs an entity ID or a list of entity IDs, users must refer to these automaticallyassigned entity IDs.

Topological entity typesThe valid entity types that users may encounter during geometry generation are:

body A body is a topological entity of the highest level. It can be a wire body, solidbody, or mixed body. Wire bodies contain wires, coedges, edges, and vertices.Solid bodies contain lumps, shells, subshells, faces, loops, coedges, edges, andvertices. Mixed (solid and wire) bodies contain lumps, shells, subshells, faces,loops, coedges, edges, vertices, and wires. All body objects are saved andrestored as a part of the model.

edge An edge is a topological entity associated with a curve. It is bound by one ormore vertices, and has one vertex at each end. If the reference at one or bothends is NULL, the edge is unbound in that direction. Each edge contains a recordof its sense (FORWARD or REVERSED) relative to its underlying curve. All edgeobjects are saved and restored as part of the model.

face A face is a topological entity that represents the portion of a single geometricsurface. One or more loops of edges bound a face, which can be open or closed.A face with no loops occupies the entire surface, finite or infinite, on which theface lies. Therefore, a face may represent an infinite plane or a complete sphere.Each face records its sense relative to its underlying surface (same sense oropposite sense). All face objects are saved and restored as part of the model.

loop A loop is a topological entity that represents a connected portion of theboundary of a face. Loops can be open or closed. A loop can comprise a groupof coedges connected in a branched arrangement or in a simple, open chain. Aloop can be a coedge shrunk to a single vertex. All loop objects are saved andrestored as a part of the model.

139

Page 160: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

lump A lump is a topological entity that represents a connected 3D (solid) or 2D(sheet) region. A body can contain zero or more lumps. Each lump represents adisjoint set of points. One lump is completely enclosed inside the void ofanother solid lump. Each lump must have at least one shell. All lump objects aresaved and restored as a part of the model.

shell A shell is a topological entity consisting of a set of connected faces. All facesare connected along edges or vertices. A shell represents a sheet region orbounds a solid region or both. A shell that bounds a solid region is entirelyperipheral or void or neither. All shell objects are saved and restored as a part ofthe model.

vertex A vertex is a topological entity representing the end of one or more edges.Vertex refers to a point object in space and to the edges that it bounds. Otheredges are found by following pointers through coedges. All vertex objects aresaved and restored as a part of the model.

wire A wire is a topological entity that is a collection of edges and vertices. Wirestypically represent profiles, construction lines, and center lines of swept shapes.Wires can also represent wire frames that form shells when surfaced. All wireobjects are saved and restored as a part of the model.

wire body A wire body is a topological entity that is a body consisting of wires (as opposedto lumps). Wire bodies contain wires, loops, coedges, edges, and vertices. Allwire-body objects are saved and restored as a part of the model.

Selecting entitiesSeveral different operations require the identification of geometric entities. Either the GUI or directScheme functions can be used to identify entities. The GUI toolbar items (Select) can be used forinteractive entity selection. The default entity that can be selected is body. The selection criteria can beset to a different entity type by right-clicking in the view window and setting the selection to the requiredtype, or by selecting the corresponding level in the Selection Level list.

Alternatively, the Scheme extension sde:set-selection-level can be used to set the selection level. Therequired argument is a ‘filter type’ that can be one of the following: body, face, edge, vertex, or other. Thefunction sde:selected-entities returns the entity IDs of the selected (highlighted) entities. The function(car (sde:selected-entities)) always returns a list, therefore, if only one item is selected, X can be usedto extract the selected entity from the returned list. The Topology Browser can also be used to find entityIDs.

Finding attributesWhen the ID of a certain topological entity is identified, the entity can be further investigated. Aspreviously mentioned, each body has several different attributes attached. The function generic:get canbe used to query the attributes. For example, the function generic:get entity_id "material" returns the

140

Page 161: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

DATEX material of the selected body. The function generic:get entity_id "region" returns the attachedregion name.

Several functions of Sentaurus Structure Editor support entity debugging. The function sde:info lists theentity IDs, and material and region names. The argument list of sde:info is an entity, a list of entities, or‘all.’

Automatic region-namingEach body that is to be written to a DF–ISE boundary file must have two attached attributes: the materialattribute and region attribute. If the automatic region-naming option (Draw > Auto Region Naming) isswitched on, each newly created region is automatically assigned a unique region name. If the sdegeoScheme extensions are used, the region names must be specified in the argument list.

The automatic region-naming option can also be set from Scheme. The function sdegeo:get-auto-region-naming can be used to obtain the status of the option. This function returns either #t or #f. The functionsdegeo:set-auto-region-naming boolean-flag can be used to switch on or off the feature. When an explicitsdegeo call is made to generate a new body, the region counter must be set automatically to the nextavailable region number for a further GUI body generation.

The automatic region-naming option assigns the following region name to created bodies:

"region_" + the region counter

The region counter starts from 1 and increases automatically. The Scheme extension sde:set-region-counter can be used to set the region counter explicitly.

When a DF–ISE boundary file is loaded and regions follow the abovementioned naming convention, thecounter is set automatically to the next available integer.

Since regions in a DF–ISE boundary file cannot be disjoint, regions with multiple lumps areautomatically separated and renamed before the DF–ISE boundary output is created. For example, if theoriginal body has a ‘region’ attribute "region_1" and if the region has three lumps, the original regionwill be separated into three bodies with the region names "region_1_lump_1", "region_1_lump_2", and"region_1_lump_3".

Use Edit > Separate Lumps to invoke the lump separation explicitly.

DATEX materialSentaurus Structure Editor uses the default datexcodes.txt file to load a list containing the allowableDATEX materials. The DATEX material list shows all of the defined DATEX materials and alwaysshows the active DATEX material. If a GUI action needs a DATEX material as input and the action doesnot contain a method to select it, it will always use the active DATEX material shown in the DATEXmaterial list.

141

Page 162: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

The Scheme extension sde:get-default-material returns the active DATEX material and the Schemeextension sde:set-default-material can be used to change the active DATEX material.

Changing region attributesAs described in Changing the region-name attribute on page 41, each newly created body is assigned‘material’ and ‘region’ attributes.

Use Edit > Change Material to change the material of the selected entities to the active DATEXmaterial. Similarly, use Edit > Change Region Name to change the region attribute of the selected body.The Scheme extension sde:add-material can be used to change both material and region attributes.

Debugging topological entitiesWhen a geometric entity (for example, a body) is generated, a unique entity ID (an integer) is assignedto the body. This unique entity ID can be used to refer to that particular entity in further operations. Thecommand (part:entities) lists all defined entities.

Several Scheme functions can be used to debug an entity. The Scheme function entity:debug entity

[level=0] can be used for basic debugging. The argument entity specifies the entity to be queried wherelevel is an optional argument that controls the amount of the debugging information:

level 0 Writes no output and only returns the entity type.

level 1 Writes only data specific to the given entity.

level 2 Writes additional information for some entity types. For example, if the entityis an EDGE, the coordinates of the end points and the curve data are also written.This extension writes only data specific to the given entity.

level 3 Writes the size of the entity and all associated entities.

level 4 Writes full information for the entity and all associated entities.

Identifying topological entitiesIf users know the location of a specific entity and need to know the entity ID, the following Schemeextensions can be used to locate the entity:

find-vertex-id

find-edge-id

find-face-id

find-body-id

142

Page 163: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

find-region-id

find-material-id

Each of these commands returns an entity list containing the entity IDs of all entities that satisfy thesearch criteria. If no entity is found, an empty list is returned. Users must specify a position in theargument list of the above find functions. The find functions require a specification of the exact positionfor the required entity.

The function find-material-id can be used to find the entity numbers of all bodies having the specifiedDATEX material as the material attribute.

The function find-region-id can be used to find the entity numbers of all bodies having the specifiedregion as the region attribute.

Finding vertex positionsWhen the entity ID of a vertex (vertex_id) is found, (vertex:position vertex_id), it can be used to returnthe position of a vertex.

Traversing the topology graphSeveral Scheme functions can be used to find edges, faces, and other elements of a body. The followingScheme functions can be used for debugging:

entity:edges Returns the edge list of the specified entity or entities.

entity:faces Returns the face list of the specified entity or entities.

entity:loops Returns the loop list of the specified entity or entities.

entity:lumps Returns the lump list of the specified entity or entities.

entity:shells Returns the shell list of the specified entity or entities.

entity:vertices Returns the vertex list of the specified entity or entities.

Other entity query functionsThe function entity:box can be used to return the bounding box of an entity.

143

Page 164: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

Topology BrowserThe Topology Browser (View > Topology Browser) can be used to find entity IDs and to locate entitiesgraphically. As previously mentioned, the geometry engine uses the boundary representation to performgeometric operations. The topology graph defining the model can be visualized and debugged using theTopology Browser.

The Topology Browser works in two ways: either an entity (vertex, edge, face, body) is selected and theTopology Browser points to the selected entity in the topology graph, or an entity can be selected fromthe topology graph and the corresponding entity is highlighted on the body.

Figure 96 Topology Browser

Scheme functions for debugging entitiesTable 30 lists the Scheme functions that can be used to query entities and to find the type of the selectedentities.

Table 30 Scheme functions for entity debugging

Scheme function Description

body? Determines if a Scheme object is a body.

curve:circular? Determines if a Scheme object is a curve–circular.

curve:elliptical? Determines if a Scheme object is a curve–elliptical.

curve:linear? Determines if a Scheme object is a linear curve.

curve? Determines if a Scheme object is a curve.

edge:circular? Determines if a Scheme object is a circular edge.

edge:curve? Determines if a Scheme object is a curve–edge.

144

Page 165: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

edge:elliptical? Determines if a Scheme object is an elliptical edge.

edge:linear? Determines if a Scheme object is a linear edge.

edge:spline? Determines if a Scheme object is a spline–edge.

edge? Determines if a Scheme object is an edge.

entity? Determines if a Scheme object is an entity.

face:conical? Determines if a Scheme object is a conical face.

face:cylindrical? Determines if a Scheme object is a cylindrical face.

face:planar? Determines if a Scheme object is a planar face.

face:spherical? Determines if a Scheme object is a spherical face.

face:spline? Determines if a Scheme object is a face–spline.

face:toroidal? Determines if a Scheme object is a toroidal face.

face? Determines if a Scheme object is a face.

loop:external? Determines if a loop is internal or external.

loop? Determines if a Scheme object is a loop.

lump? Determines if a Scheme object is a lump.

position? Determines if a Scheme object is a position.

shell? Determines if a Scheme object is a shell.

solid:closed? Determines if a Scheme object is a closed solid.

solid:manifold? Determines if a Scheme object has a positive volume.

solid? Determines if a Scheme object is a solid.

vertex? Determines if a Scheme object is a vertex.

wire:closed? Determines if a Scheme object is a closed wire.

wire:planar? Determines if a Scheme object is a planar wire.

wire? Determines if a Scheme object is a wire.

wire-body? Determines if a Scheme object is a wire body.

Table 30 Scheme functions for entity debugging

Scheme function Description

145

Page 166: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

Examples

DebuggingThis example creates a cube, examines the underlying data structure, and performs some debugging:

(sde:clear); clears the modeler’s database(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Silicon" "region_1"); creates a cuboid and attaches the "material" and "region" attributes to the cuboid(part:entities); lists all defined parts(define mycube (car (reverse (part:entities)))); the Scheme variable mycube points to the defined cuboid (last item in the part list)(entity:debug mycube); some information about mycube(entity:debug mycube 2); some more information about mycube; open the Topology Browser to examine the cube(define myvertices (entity:vertex mycube)); myvertices will contain all vertices of mycube(length myvertices); returns the length of the myvertices list (8)(define vertex1 (list-ref myvertices 0)); pick a vertex from the list(entity:debug vertex1 2); debug the vertex(vertex:position vertex1); position of vertex1(position:x (vertex:position vertex1)); x position of vertex1(define myedges (entity:edges mycube)); get all the edges of mycube(define myfaces (entity:faces mycube)); get all the faces of mycube...

Using entity IDs in geometric operationsIn this example, the steps are:

1. Create a cuboid (from (position 0 0 0) to (position 10 10 10)).

2. Identify the top face (z = 10, face normal (0 0 1)).

3. Identify all edges of the top face.

4. Round the edges (fillet radius 2) defined in Step 3.

5. Identify the bottom face (z = 0, face normal (0 0 –1)).

146

Page 167: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

6. Identify all edges of the bottom face.

7. Chamfer the edges (uniform chamfer distance 3) defined in Step 6.

(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "region_1")(define top_face (find-face-id (position 5 5 10)))(define top_edges (entity:edges top_face)) (sdegeo:fillet-edges top_edges 2) (define bottom_face (find-face-id (position 5 5 0)))(define bottom_edges (entity:edges bottom_face))(sdegeo:chamfer-edges bottom_edges 3 3)

Figure 97 Example of finding geometric entities

147

Page 168: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 8 GEOMETRY REPRESENTATION AND ENTITY DEBUGGING

148

Page 169: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Sentaurus Structure Editor

CHAPTER 9 Scheme extensions

This chapter lists all of the Scheme extensions supported in Sentaurus Structure Editor.

ACIS Scheme extensions

Journaling

journal:abort

journal:append

Action: Terminates the journal single-stepping process.Group: sdeSyntax: (journal:abort)Argument types: NoneReturns: NoneErrors: NoneDescription: When stepping, journal:abort terminates the current load without executing the rest

of the commands in the file.Limitations: None

Action: Opens an existing journal file and appends additional journal data to the end of thefile.

Group: sdeSyntax: (journal:append [filename])Argument types: filename STRINGReturns: NoneErrors: NoneDescription: This extension opens the optional file filename if it exists, where all future

commands are journaled to the existing file. The time and date of the append to theexisting file are indicated in the journal. If the filename is not specified, a uniquename is created after reading the current directory. The unique name is numericallysequenced from the last journal file created or named j(last number+1).jrl.

Limitations: None

149

Page 170: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

journal:load

journal:off

journal:on

Action: Loads a journal file, one line at a time, journaling each command as it is executed.Group: sdeSyntax: (journal:load filename)Argument types: filename STRINGReturns: NoneErrors: NoneDescription: This extension loads an existing journal file and runs each command contained in

that file. Each line is journaled if journaling is switched on. This extension workslike the load primitive, except that the file is evaluated one line at a time instead ofall lines simultaneously with the Scheme load primitive. Encountered errors do notabort the load operation and are reported in the command-line window. Thisextension is useful for debugging Scheme files and for rerunning the commandsgiven in another Scheme session. An error in the loaded file does not abort theevaluation. The journal:load extension permits single-stepping through a loadedfile, one line at a time. (journal:step #t) switches it on and should be run beforeloading the journal file. In addition, (option:set "timing" #t) can be used to showthe execution time for each command in the command-line window. Beforeloading, the directory where the load file is found is added to the part-load-path.

Limitations: NoneExample: ; Scheme Extension

Action: Closes the current journal file and switches off journaling.Group: sdeSyntax: (journal:off)Argument types: NoneReturns: NoneErrors: NoneDescription: All extensions executed after journaling has been switched off are not retained in

the journaling file.Limitations: None

Action: Closes the current journal file and opens a new journal file.Group: sdeSyntax: (journal:on [filename])Argument types: filename STRINGReturns: NoneErrors: None

150

Page 171: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

journal:pause

Description: This extension opens the optional file filename if it exists, and all future commandsare journaled to the existing file. If filename is not specified, the extension creates aunique name after reading the current directory. The unique name is numericallysequenced from the last journal file created or named j(last number+1).jrl. If thefile exists, it is truncated to zero length.

Limitations: NoneExample:; Scheme Extension journal:on ; Close the current journal file and open a new journal file called new_jrl.(journal:on "new_jrl");; "new_jrl"; Create solid cuboid.(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "region_1") ; Turn journaling off (journal:off) ;; () ; Save the resulting journal. (journal:save "new_jrl") ;; "new_jrl" ; Clear the part. (sde:clear) ;; #t ; Load the journal file to recreate and redisplay the solid cube. (journal:load "new_jrl") ;; "new_jrl"

Action: Disables journaling temporarily but leaves the journal file open.Group: sdeSyntax: (journal:pause)Argument types: NoneReturns: NoneErrors: NoneDescription: This extension does not record in the journal any procedure evaluated while the

journal file is paused.Limitations: None

151

Page 172: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

journal:resume

journal:save

journal:step

Action: Resumes journaling in the journal file after a pause.Group: sdeSyntax: (journal:resume)Argument types: NoneReturns: NoneErrors: NoneDescription: Resumes journaling in the journal file after a pause.Limitations: None

Action: Saves the current journal to a file.Group: sdeSyntax: (journal:save filename)Argument types: filename STRINGReturns: NoneErrors: NoneDescription: The filename specifies the name of the file in which the journal is saved. This

extension is ignored if journaling is not active (see journal:on). An error isgenerated if the filename is the same as the current journal file.

Limitations: None

Action: Switches on or off single-stepping of journal file.Group: sdeSyntax: (journal:step value)Argument types: value BOOLEANReturns: NoneErrors: NoneDescription: Sets a flag to control stepping through the journal file. When stepping is switched

on, the system waits for input after printing, but before executing each line. A singlereturn causes the line to be executed. Anything else is evaluated and the systemwaits for more input. This allows users to set up demonstrations and to debugScheme scripts one line at a time. To run a demonstration, enter (journal:step #f),but include (journal:step #t) at points in the script where you want to interact withthe GUI or enter commands in the command-line window. Otherwise, press theReturn key a few times to step through it slowly. Use (journal:step #f) to return tothe free-running mode.

Limitations: None

152

Page 173: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Entity queries and debugging

body?

edge?

edge:circular?

Action: Determines if a Scheme object is a body.Group: sdeSyntax: (body? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: This extension returns #t if the object is a body; otherwise, it returns #f. The object

specifies the Scheme object to be queried.Limitations: NoneExample:

(define myrect (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "Region_1"))(body? myrect);; #t

Action: Determines if a Scheme object is an edge.Group: sdeSyntax: (edge? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Returns #t if a Scheme object is an edge. The object specifies the Scheme object to

be queried.Limitations: None

Action: Determines if a Scheme object is a circular edge.Group: sdeSyntax: (edge:circular? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Returns #t if a Scheme object is a circular edge. The object specifies the Scheme

object to be queried.Limitations: None

153

Page 174: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

edge:elliptical?

edge:end

edge:length

Action: Determines if a Scheme object is an elliptical edge.Group: sdeSyntax: (edge:elliptical? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Returns #t if a Scheme object is an elliptical edge. The object specifies the Scheme

object to be queried.Limitations: None

Action: Returns the ending position of the edge.Group: sdeSyntax: (edge:end edge)Argument types: edge ENTITYReturns: VertexErrors: NoneDescription: The ending position of the edge for this activity is not the position that is defined

when creating the circle. The ending position of the edge (in this instance) is the endof the edge. The edge is an input edge.

Limitations: None

Action: Returns the length of the edge.Group: sdeSyntax: (edge:length edge)Argument types: edge ENTITYReturns: RealErrors: NoneDescription: The edge is an input entity.Limitations: None

154

Page 175: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

edge:linear

edge:linear?

edge:mid-point

Action: Creates a linear edge between two locations.Group: sdeSyntax: (edge:linear position position)Argument types: position POSITIONReturns: EntityErrors: NoneDescription: This command specifies locations as positions. The first position specifies the start

location of the line. The second position argument specifies the end location of theline.

Limitations: NoneExample: ; Scheme Extension

; edge:linear; Create two linear edges given two positions.(define edge1 (edge:linear (position 0 0 0) (position 30 30 0)))

Action: Determines if a Scheme object is a linear edge.Group: sdeSyntax: (edge:linear? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Returns #t if a Scheme object is a linear edge. The object specifies the Scheme

object to be queried.Limitations: NoneExample:(define myrect (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "Region_1"))(define myedges (entity:edges myrect))(edge:linear? (list-ref myedges 0));; #t

Action: Returns the midpoint position of an edge.Group: sdeSyntax: (edge:mid-point edge [approximation=#t])Argument types: edge ENTITY

approximation BOOLEANReturns: gvectorErrors: None

155

Page 176: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

edge:start

edge:type

entity:box

Description: When the Boolean argument approximation is set to TRUE, it returns the exactgeometric midpoint of the edge, while FALSE returns the midpoint in parameterspace. The default is TRUE. The edge is an input entity.

Limitations: None

Action: Returns the starting position of the edge.Group: sdeSyntax: (edge:start edge)Argument types: edge ENTITYReturns: GvectorErrors: NoneDescription: Returns the starting position of the edge.Limitations: None

Action: Determines the type of an edge.Group: sdeSyntax: (edge:type edge)Argument types: edge ENTITYReturns: StringErrors: NoneDescription: Determines the type of an edge, where edge specifies an edge.Limitations: None

Action: Obtains extrema box of an entity.Group: sdeSyntax: (entity:box entity-list [create-box])Argument types: entity-list ENTITY | ENTITY LIST

create-box BOOLEANReturns: PairErrors: NoneDescription: This extension obtains the minimum and maximum values corresponding to a

diagonal across the bounding box of a body, relative to the active workingcoordinate system. The argument entity-list comprises an entity or a list ofentities. Each entity or list of entities can be a body, a wire, a face, or an edge. Thisextension returns a pair comprising (min-pt . max-pt). If the Boolean argumentcreate-box is given, a solid box is returned.

Limitations: None

156

Page 177: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

entity:copy

entity:debug

Action: Copies any entity (such as solid, face, edge) and all entities attached to it.Group: sdeSyntax: (entity:copy entity-list)Argument types: entity-list ENTITY | ENTITY LISTReturns: Entity | Entity listErrors: NoneDescription: The entity-list specifies an entity or entity list to be copied.Limitations: None

Action: Prints information about the data structure of an entity.Group: sdeSyntax: (entity:debug entity level)Argument types: entity ENTITY

level INTEGERReturns: StringErrors: NoneDescription: The entity specifies the entity to be queried and level is an optional argument that

controls the amount of debug information generated. level 0 writes no output andonly returns the entity type. level 1 writes only data specific to the given entity.level 2 writes additional information for some entity types.

For example, if the entity is an edge, the coordinates of the end points and the curvedata are also written. This extension writes only data specific to the given entity.level 3 writes the size of the entity and all associated entities. level 4 writes fullinformation for the entity and all associated entities.

Limitations: None

157

Page 178: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

entity:deep-copy

entity:delete

entity:dist

Action: Deep copies an entity (solid, face, edge, and so on) as well as all attached entities.Group: sdeSyntax: (entity:deep-copy entity-list)Argument types: entity-list ENTITY | ENTITY LISTReturns: Entity | Entity listErrors: NoneDescription: The difference between entity:deep-copy and entity:copy is that entity:deep-copy

makes a copy of splf_splf, whereas entity:copy creates a pointer to splf_splf.The deep copy functionality is used instead of the regular copy when it is requiredthat no links exist with shared information between the original and deep copies.

Limitations: None

Action: Deletes an entity or a list of entities, and any attributes attached to those entities.Group: sdeSyntax: (entity:delete entity-list)Argument types: entity-list ENTITY | ENTITY LISTReturns: NoneErrors: NoneDescription: The entity-list specifies an entity or entity list to be deleted.Limitations: None

Action: Obtains the minimum distance between two entities, or an entity and a position.Group: sdeSyntax: (entity:dist part1 part2 [acis-opts])Argument types: part1 ENTITY | POSITION

part2 ENTITY | POSITIONacis-opts ACIS OPTIONS

Returns: (POSITION . (ENTITY | ENTITY LIST . STRING)Errors: NoneDescription: Using the two input entities, this extension finds a position on each entity such that

the distance between the two is the minimum distance. Supported entities includeVERTEX, EDGE, LOOP, FACE, WIRE, SHELL, LUMP, and BODY. The command can also find theminimum distance using an entity and a position. The optional argument acis-optshelps to switch on journaling and versioning options.

Limitations: If part1 is defined as a position, part2 must be an entity.

158

Page 179: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

entity:edges

entity:faces

entity:loops

Action: Returns a list of all edge entities of an entity or a list of entities.Group: sdeSyntax: (entity:edges entity-list)Argument types: entity-list ENTITY | ENTITY LISTReturns: Edge | Edge listErrors: NoneDescription: Returns a list of the edges for the input entity or entity-list. Returns an empty list

when no edges are found.Limitations: None

Action: Returns a list of all face entities of an entity or a list of entities.Group: sdeSyntax: (entity:faces entity-list)Argument types: entity-list ENTITY | ENTITY LISTReturns: Face | Face listErrors: NoneDescription: Returns an empty list when no faces are found. The input argument is an entity-list

from which a list of all faces is to be obtained.Limitations: None

Action: Obtains a list of all loops of an entity or a list of entities.Group: sdeSyntax: (entity:loops entity-list [include-pat])Argument types: entity-list ENTITY | ENTITY LIST

include-pat INTEGERReturns: (Loop ...)Errors: NoneDescription: This extension returns a list of all the loops of an entity. If no loops are found, this

extension returns an empty list. entity-list specifies an entity or entity list to bequeried. The optional parameter include-pat determines how this function dealswith patterned objects. By default, patterned objects are included in the list ofentities. Users can specify any one of the following through this argument: 0 – Patterned objects are created if they do not already exist and are included in thelist. 1 – Only those patterned objects that already exist are included in the list. 2 – No patterned objects, except seed pattern objects, are included in the list.

Limitations: None

159

Page 180: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

entity:lumps

entity:shells

Action: Obtains a list of all lumps of an entity or a list of entities.Group: sdeSyntax: (entity:lumps entity-list)Argument types: entity-list ENTITY | ENTITY LISTReturns: (Lump ...)Errors: NoneDescription: This extension returns a list of all the lumps of an entity. If no lumps are found, this

extension returns an empty list. entity-list specifies an entity or entity list to bequeried.

Limitations: None

Action: Obtains a list of shell entities from a topological entity or a list of entities.Group: sdeSyntax: (entity:shells entity-list [include-pat])Argument types: entity-list ENTITY | ENTITY LIST

include-pat INTEGERReturns: (Shell ...)Errors: NoneDescription: This extension returns a list of the shells of an entity. If no shell entities are found,

this extension returns an empty list. entity-list specifies a topological entity or anentity list. The parameter include-pat determines how this function deals withpatterned objects. By default, patterned objects are included in the list of entities.Users can specify any one of the following through this argument:0 – Patterned objects are created if they do not already exist and are included in thelist. 1 – Only those patterned objects that already exist are included in the list. 2 – No patterned objects, except seed pattern objects, are included in the list.

Limitations: None

160

Page 181: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

entity:vertices

face:area

face:conical?

Action: Returns a list of all vertices in an entity or a list of entities.Group: sdeSyntax: (entity:vertices entity-list)Argument types: entity-list ENTITY | ENTITY LISTReturns: Vertex | Vertex listErrors: NoneDescription: This extension returns a list of the vertices for the input entity or entity-list. It

returns an empty list if no vertices are found.Limitations: None

Action: Obtains the area of a face.Group: sdeSyntax: (face:area face)Argument types: face FACEReturns: RealErrors: NoneDescription: This extension calculates the area of a specified face. The accuracy of the

calculation is fixed at 0.001 for an area of geometry that cannot be determinedanalytically. face is an input face.

Limitations: None

Action: Determines if a Scheme object is a conical face.Group: sdeSyntax: (face:conical? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: This extension returns #t if the object is a conical face; otherwise, it returns #f. The

object specifies the Scheme object to be queried.Limitations: None

161

Page 182: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

face:cylindrical?

face:planar?

face:spherical?

Action: Determines if a Scheme object is a cylindrical face.Group: sdeSyntax: (face:cylindrical? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: The returned Boolean specifies whether the supplied entity input is a cylindrical

face. The input argument is a cylindrical face and not a solid cylinder. The objectspecifies the Scheme object to be queried.

Limitations: None

Action: Determines if a Scheme object is a planar face.Group: sdeSyntax: (face:planar? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: This extension returns #t if the specified object is a planar face. The object specifies

the Scheme object to be queried.Limitations: None

Action: Determines if a Scheme object is a spherical face.Group: sdeSyntax: (face:spherical? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: This extension returns #t if the specified object is a spherical face. The object

specifies the Scheme object to be queried.Limitations: None

162

Page 183: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

face:spline?

face:toroidal?

loop?

Action: Determines if a Scheme object is a face–spline.Group: sdeSyntax: (face:spline? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Determines if a Scheme object is a face–spline. The object specifies the Scheme

object to be queried.Limitations: None

Action: Determines if a Scheme object is a toroidal face.Group: sdeSyntax: (face:toroidal? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Determines if a Scheme object is a toroidal face. The object specifies the Scheme

object to be queried.Limitations: None

Action: Determines if a Scheme object is a loop.Group: sdeSyntax: (loop? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: This extension returns #t if the object is a loop; otherwise, it returns #f. The object

specifies the Scheme object to be queried.Limitations: None

163

Page 184: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

loop:external?

lump?

shell?

Action: Determines if a loop is internal or external.Group: sdeSyntax: (loop:external? loop)Argument types: loop LOOPReturns: BooleanErrors: The argument loop is not a loop.Description: Determines if a loop is internal or external.Limitations: None

Action: Determines if a Scheme object is a lump.Group: sdeSyntax: (lump? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: This extension returns #t if the object is a lump; otherwise it returns #f. The object

specifies the Scheme object to be queried.Limitations: None

Action: Determines if a Scheme object is a shell.Group: sdeSyntax: (shell? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: This extension returns #t if the specified object is a shell; otherwise, it returns #f.

The object specifies the Scheme object to be queried.Limitations: None

164

Page 185: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

solid?

vertex?

wire?

Action: Determines if a Scheme object is a solid.Group: sdeSyntax: (solid? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Determines if a Scheme object is a solid. The object specifies the Scheme object to

be queried.Limitations: None

Action: Determines if a Scheme object is a vertex. The object specifies the Scheme object tobe queried.

Group: sdeSyntax: (vertex? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Determines if a Scheme object is a vertex. The object specifies the Scheme object to

be queried.Limitations: None

Action: Determines if a Scheme object is a wire.Group: sdeSyntax: (wire? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Determines if a Scheme object is a wire. The object specifies the Scheme object to

be queried.Limitations: None

165

Page 186: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

wire-body?

wire:planar?

Basic geometric variables and entities

gvector

Action: Determines if a Scheme object is a wire body.Group: sdeSyntax: (wire-body? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Determines if a Scheme object is a wire body. The object specifies the Scheme

object to be queried.Limitations: None

Action: Determines if a Scheme object is a planar wire.Group: sdeSyntax: (wire:planar? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Determines if a Scheme object is a planar wire. The object specifies the Scheme

object to be queried.Limitations: None

Action: Creates a new gvector with the specified x, y, and z coordinates.Group: sdeSyntax: (gvector x y z [space=model])Argument types: x REAL

y REALz REALspace STRING

Returns: GvectorErrors: None

166

Page 187: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

gvector:+

gvector:-

Description: Relative to the active coordinate system, the argument x defines the x-coordinate, ydefines the y-coordinate, and z defines the z-coordinate.

The optional space argument defaults to WCS. If no active work plane exists, spacedefaults to model. The other optional space arguments return a gvector in the newcoordinate system. model means that the x, y, and z values are with respect to themodel. If the model has an origin other than the active work plane, this returns theposition relative to the active coordinate system in rectangular Cartesiancoordinates. polar or cylindrical means that the x, y, and z values are interpreted asthe radial distance from the z-axis, the polar angle in degrees measured from the xz-plane (using the right-hand rule), and the z-coordinate, respectively.

This returns the x, y, and z terms with respect to the active coordinate system.spherical means that the provided x, y, and z values are the radial distance from theorigin, the angle of declination from the z-axis in degrees, and the polar anglemeasured from the xz-plane in degrees, respectively. This returns the x, y, and zterms relative to the active coordinate system.

Limitations: None

Action: Adds two gvectors.Group: sdeSyntax: (gvector:+ gvector1 gvector2)Argument types: gvector1 GVECTOR

gvector2 GVECTORReturns: GvectorErrors: NoneDescription: This extension returns the result of (gvector1 + gvector2) as a gvector.

gvector1 defines the first gvector. gvector2 defines the second gvector.Limitations: NoneExample: (gvector:+ (gvector 1 3 2) (gvector 2 2 2))

Action: Subtracts two gvectors.Group: sdeSyntax: (gvector:- gvector1 gvector2)Argument types: gvector1 GVECTOR

gvector2 GVECTORReturns: GvectorErrors: None

167

Page 188: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

gvector?

gvector:copy

gvector:cross

Description: This extension returns the result of (gvector1 – gvector2) as a gvector. gvector1defines the start location. gvector2 defines the end location for both gvectors.

Limitations: NoneExample: (gvector:- (gvector 1 3 2) (gvector 2 2 2))

Action: Determines if a Scheme object is a gvector. Group: sdeSyntax: (gvector? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: Determines if a Scheme object is a gvector.Limitations: None

Action: Creates a gvector by copying an existing gvector.Group: sdeSyntax: (gvector:copy gvector)Argument types: gvector GVECTORReturns: GvectorErrors: NoneDescription: Creates a gvector by copying an existing gvector.Limitations: NoneExample: (define gvcopy (gvector:copy (gvector 6 5 2)))

Action: Obtains the cross product of two gvectors.Group: sdeSyntax: (gvector:cross gvector1 gvector2) (gvector)Argument types: gvector1 GVECTOR

gvector2 GVECTORReturns: GvectorErrors: NoneDescription: Obtains the cross product of two gvectors.Limitations: None

168

Page 189: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

gvector:dot

gvector:from-to

gvector:length

Action: Obtains the dot product of two gvectors.Group: sdeSyntax: (gvector:dot gvector1 gvector2)Argument types: gvector1 GVECTOR

gvector2 GVECTORReturns: RealErrors: NoneDescription: Obtains the dot product of two gvectors.Limitations: None

Action: Creates a gvector between two positions.Group: sdeSyntax: (gvector:from-to position1 position2)Argument types: position1 POSITION

position2 POSITIONReturns: GvectorErrors: NoneDescription: This extension returns the gvector from position1 to position2.Limitations: None

Action: Obtains the length of a gvector.Group: sdeSyntax: (gvector:length gvector)Argument types: gvector GVECTORReturns: RealErrors: NoneDescription: Obtains the length of a gvector as a real value.Limitations: None

169

Page 190: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

gvector:parallel?

gvector:perpendicular?

gvector:reverse

Action: Determines if two gvectors are parallel.Group: sdeSyntax: (gvector:parallel? gvector1 gvector2)Argument types: gvector1 GVECTOR

gvector2 GVECTORReturns: BooleanErrors: NoneDescription: This extension returns #t if gvector1 and gvector2 are parallel; otherwise, it returns

#f. A zero gvector is not parallel to anything including itself, so it causes theextension to return #t.

Limitations: None

Action: Determines if two gvectors are perpendicular.Group: sdeSyntax: (gvector:perpendicular? gvector1 gvector2)Argument types: gvector1 GVECTOR

gvector2 GVECTORReturns: BooleanErrors: NoneDescription: This extension returns #t if the gvectors are perpendicular; otherwise, it returns #f.

A zero gvector is perpendicular to all gvectors including itself, and it causes theextension to return #f.

Limitations: None

Action: Reverses the direction of a gvector.Group: sdeSyntax: (gvector:reverse gvector)Argument types: gvector GVECTORReturns: GvectorErrors: NoneDescription: Reverses the direction of a gvector.Limitations: None

170

Page 191: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

gvector:scale

gvector:set!

gvector:set-x!

Action: Multiplies a gvector by a scalar number to produce a new gvector.Group: sdeSyntax: (gvector:scale gvector scale)Argument types: gvector GVECTOR

scale REALReturns: GvectorErrors: NoneDescription: The resulting gvector is the original gvector scaled by the number.Limitations: None

Action: Sets the direction of a gvector given the components of x, y, and z.Group: sdeSyntax: (gvector:set! gvector {x y z})Argument types: gvector GVECTOR

x REALy REALz REAL

Returns: GvectorErrors: NoneDescription: The coordinates are computed relative to the active coordinate system. gvector

specifies the original x-, y-, and z-components.x specifies the value to replace the original x-value specified in gvector.y specifies the value to replace the original y-value specified in gvector.z specifies the value to replace the original z-value specified in gvector.

Limitations: None

Action: Sets the x-direction component of a gvector.Group: sdeSyntax: (gvector:set-x! gvector x)Argument types: gvector GVECTOR

x REALReturns: RealErrors: NoneDescription: The coordinates are computed relative to the active coordinate system. This

extension returns the x-value as a real. gvector specifies the original x-, y-, and z-values. x specifies the value to replace the original x-value specified in gvector.

Limitations: NoneExample: (gvector:set-x! vector1 3)

171

Page 192: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

gvector:set-y!

gvector:set-z!

gvector:transform

Action: Sets the y-direction component of a gvector.Group: sdeSyntax: (gvector:set-y! gvector y)Argument types: gvector GVECTOR

y REALReturns: RealErrors: NoneDescription: The coordinates are computed relative to the active coordinate system. This

extension returns the y-value as a real. gvector specifies the original x-, y-, and z-values. y specifies the value to replace the original y-value specified in gvector.

Limitations: NoneExample: (gvector:set-y! vector1 3)

Action: Sets the z-direction component of a gvector.Group: sdeSyntax: (gvector:set-z! gvector z)Argument types: gvector GVECTOR

z REALReturns: RealErrors: NoneDescription: The coordinates are computed relative to the active coordinate system. This

extension returns the z-value as a real. gvector specifies the original x-, y-, and z-values. z specifies the value to replace the original z-value specified in gvector.

Limitations: NoneExample: (gvector:set-z! vector1 3)

Action: Applies a transform to a gvector.Group: sdeSyntax: (gvector:transform gvector transform)Argument types: gvector GVECTOR

transform TRANSFORMReturns: GvectorErrors: NoneDescription: Applies a transform to a gvector.Limitations: None

172

Page 193: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

gvector:unitize

gvector:x

gvector:y

Action: Creates a new gvector as a unit vector in the same direction as the specified gvector.Group: sdeSyntax: (gvector:unitize gvector)Argument types: gvector GVECTORReturns: GvectorErrors: NoneDescription: Creates a new gvector as a unit vector in the same direction as the specified gvector.Limitations: None

Action: Obtains the x-component of a gvector relative to the active coordinate system.Group: sdeSyntax: (gvector:x gvector)Argument types: gvector GVECTORReturns: RealErrors: NoneDescription: This extension returns the x-coordinate of the gvector, transformed to the active

work plane.Limitations: None

Action: Obtains the y-component of a gvector relative to the active coordinate system.Group: sdeSyntax: (gvector:y gvector)Argument types: gvector GVECTORReturns: RealErrors: NoneDescription: This extension returns the y-coordinate of the gvector, transformed to the active

work plane.Limitations: None

173

Page 194: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

gvector:z

position

Action: Obtains the z-component of a gvector relative to the active coordinate system.Group: sdeSyntax: (gvector:z gvector)Argument types: gvector GVECTORReturns: RealErrors: NoneDescription: This extension returns the z-coordinate of the gvector, transformed to the active

work plane. Limitations: None

Action: Creates a new position with x-, y-, and z-coordinates.Group: sdeSyntax: (position x y z [space="models"])Argument types: x REAL

y REALz REALspace STRING

Returns: NoneErrors: NoneDescription: Relative to the active coordinate system, the argument x defines the x-coordinate, y

defines the y-coordinate, and z defines the z-coordinate. If the model has an originother than the active work plane, this returns the position relative to the activecoordinate system in rectangular Cartesian coordinates. polar or cylindrical meansthat the x, y, and z values are interpreted as the radial distance from the z-axis, thepolar angle in degrees measured from the xz-plane (using the right-hand rule), andthe z-coordinate, respectively. This returns the x, y, and z terms with respect to theactive coordinate system. spherical means that the provided x, y, and z values arethe radial distance from the origin, the angle of declination from the z-axis indegrees, and the polar angle measured from the xz-plane in degrees, respectively.This returns the x, y, and z terms relative to the active coordinate system. A positionis not saved with the part, but is used to help define geometry. Positions are notdisplayed in Scheme. A point is an entity. A point is different from a vertex in that ithas no edge associations. Use env:set-point-size and env:set-point-style to changeits appearance.

Limitations: None

174

Page 195: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

position?

position:distance

position:set!

Action: Determines if a Scheme object is a position.Group: sdeSyntax: (position? object)Argument types: object SCHEME OBJECTReturns: BooleanErrors: NoneDescription: object specifies the Scheme object to be queried.Limitations: None

Action: Obtains the distance between two positions.Group: sdeSyntax: (position:distance position1 {position2 | ray})Argument types: position1 POSITION

position2 POSITIONray RAY

Returns: NoneErrors: NoneDescription: position1 defines the start location, position2 defines the end location, and ray

defines the ray to calculate the distance.Limitations: None

Action: Sets the x-, y-, and z-components of a position.Group: sdeSyntax: (position:set! position1 {x y z}| {position2})Argument types: position1 POSITION

x REALy REALz REALposition2 POSITION

Returns: PositionErrors: NoneDescription: position1 specifies the position to be set. If the x, y and z values are specified, they

are copied into position1. If position2 is specified, its position value is copied intoposition1.

Limitations: None

175

Page 196: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

position:set-x!

position:set-y!

position:set-z!

Action: Sets the x-component of a position.Group: sdeSyntax: (position:set-x! position x)Argument types: position POSITION

x REALReturns: RealErrors: NoneDescription: The coordinates are computed relative to the active coordinate system. This

extension returns the x-coordinate as a real value. position identifies the original yand z values. x specifies the value to replace the original x-value specified inposition.

Limitations: None

Action: Sets the y-component of a position.Group: sdeSyntax: (position:set-y! position y)Argument types: position POSITION

y REALReturns: RealErrors: NoneDescription: The coordinates are computed relative to the active coordinate system. This

extension returns the y-coordinate as a real value. position identifies the original xand z values. y specifies the value to replace the original y-value specified inposition.

Limitations: None

Action: Sets the z-component of a position.Group: sdeSyntax: (position:set-z! position z)Argument types: position POSITION

z REALReturns: RealErrors: NoneDescription: The coordinates are computed relative to the active coordinate system. This

extension returns the z-coordinate as a real value. position identifies the original xand y values. z specifies the value to replace the original z-value specified inposition.

Limitations: None

176

Page 197: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

position:x

position:y

position:z

Action: Obtains the x-component of a position relative to the active coordinate system.Group: sdeSyntax: (position:x position)Argument types: position POSITIONReturns: RealErrors: NoneDescription: position specifies a position.Limitations: None

Action: Obtains the y-component of a position relative to the active coordinate system.Group: sdeSyntax: (position:y position)Argument types: position POSITIONReturns: RealErrors: NoneDescription: position specifies a position.Limitations: None

Action: Obtains the z-component of a position relative to the active coordinate system.Group: sdeSyntax: (position:z position)Argument types: position POSITIONReturns: RealErrors: NoneDescription: position specifies a position.Limitations: None

177

Page 198: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Managing models

filter:type

get-body-list

Action: Creates a filter entity that selects a type of entity.Group: sdeSyntax: (filter:type type-name)Argument types: type-name STRINGReturns: NoneErrors: NoneDescription: This extension creates the specified type-name as a filter, which specifies the type of

entity to be used in another filter operation. If a new type filter is created, it replacesthe previously defined type. Use filter:types to display the list of available filtertypes. type-name specifies the entity-filter to be created. The possible string valuesfor the type-name are edge:curve?, edge:linear?, edge:circular?, edge:elliptical?,edge:spline?, edge?, body?, solid?, wire-body?, mixed-body?, wire?, face?, face:planar?,face:spherical?, face:cylindrical?, face:conical?, face:toroidal?, face:spline?, wcs?,text?, vertex?, and point?.

Limitations: NoneExample: (filter:type edge:linear?)

Action: Returns a list of all 2D and 3D bodies that are defined in the model.Group: sdeSyntax: (get-body-list)Argument types: NoneReturns: NoneErrors: NoneDescription: This extension returns a list of all 2D and 3D bodies that are defined in the model,

except the mask bodies and the doping-related or refinement-related Ref/Evalwindows. Since masks are sheet bodies (part:entities (filter:type "solid?")) willselect them and return the mask entities as well. Since most of the geometricoperations are performed only on 2D and 3D bodies, and not on masks, thisextension is used to distinguish easily between masks and regular bodies.

Limitations: None

178

Page 199: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

part:entities

part:load

Action: Obtains a list of all top-level entities in a part.Group: sdeSyntax: (part:entities [filter=NULL])Argument types: filter [filter:type filter]Returns: (Entity ...)Errors: NoneDescription: The optional filter controls the kinds of entity that are returned by this extension.

filter is an entity-filter, which is a procedural object that selects entities from anentity-list.

Limitations: NoneExample: (sde:clear)

(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silver""region_3")(part:entities)(part:entities (filter:type "solid?"))

Action: Loads a part from a file into the active part.Group: sdeSyntax: (part:load filename [textmode=#t] [part=active] [with-history=#f])Argument types: filename STRING

textmode BOOLEANpart PARTwith-history BOOLEAN

Returns: (Entity ...)Errors: NoneDescription: This extension is a merge function, which means that the restore does not replace

entities; it adds them to the current working session. A list of entities is returned.filename specifies a file name in the current working directory or the path thatincludes the file name. If the optional part is not specified, the entities in the part filemerge into the active part; otherwise, they merge into the specified part. textmodedescribes the type of file to be loaded. If textmode is specified as #t, the data infilename is saved in text mode as a .sat file. If textmode is #f, filename is loaded as abinary file. If textmode is not specified, the mode is determined by the extension ofthe filename. If the filename string ends in .sab or .SAB, the file is saved in binarymode; otherwise, the file is saved in text mode. After specifying the text mode, asecond Boolean argument indicates whether to restore the rollback history data.History data can only be restored into an empty part. The default, #f, does notrestore the history. If part-load-path is set to a list of strings, they are interpreted asdirectories to be searched for the part file. part-load-path is to part-load as load-pathis to load. Set the part-load-path in an initialization file. When a part is saved usingpart:save and a filename, the filename becomes the new name for the part.

Limitations: None

179

Page 200: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

part:save

part:save-selection

Action: Saves all entities in a part to a file.Group: sdeSyntax: (part:save [filename=partname.sat] [textmode=#t] [part=active]

[with-history=#f] [mainline-only=#f])Argument types: filename STRING

textmode BOOLEANpart PARTwith-history BOOLEANmainline-only BOOLEAN

Returns: BooleanErrors: NoneDescription: The optional filename specifies a file name to be saved in the current working

directory or specifies the path that includes the file name to be saved to a directory.If no filename is specified, this extension uses the name given to the part with thepart:set-name extension. The optional part specifies the part to save; the default isthe active part. If textmode is #t, the data is saved in text mode. If textmode is notspecified, the mode is determined by the extension of the filename. If the filenamestring ends in .sab or .SAB, the file is saved in binary mode; otherwise, the file issaved in text mode. After setting textmode, a second Boolean specifies whether tosave rollback history data. The default, #f, does not save history. A third Booleanspecifies whether rolled branches should be saved. The default, #f, for thisargument indicates the entire history should be saved. The saved file can be restoredat any time. When a part is saved using part:save and a filename, the filenamebecomes the new name for the part. Part files can be saved in the format of anearlier version by setting the save_version option. The with-history option allowsusers to save entity-specific history (that is, history attached to the entity through anattribute). It specifies whether to save rollback history data. mainline-only specifieswhether rolled back branches should be saved.

Limitations: None

Action: Saves a list of entities to a file.Group: sdeSyntax: (part:save-selection ent-list filename [textmode=#f] [with-history=#f])Argument types: ent-list ENTITY | ENTITY LIST

filename STRINGtextmode BOOLEANwith-history BOOLEAN

Returns: BooleanErrors: None

180

Page 201: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

roll

Solid body queries and debugging

solid:area

Description: The filename specifies a file name to be saved in the current working directory orspecifies the path that includes the file name to be saved to a directory. The ent-listis the list of entities to be saved in the output file. If textmode is #t, the data is savedin text mode. If textmode is not specified, the mode is determined by the extension ofthe filename. If the filename string ends in .sab or .SAB, the file is saved in binarymode; otherwise, the file is saved in text mode. The saved file can be restored at anytime. Part files can be saved in the format of an earlier version by setting thesave_version option. The with-history option allows users to save entity-specifichistory (that is, history attached to the entity through an attribute).

Limitations: None

Action: Rolls to a previous or later state.Group: sdeSyntax: (roll [num])Argument types: num INTEGERReturns: IntegerErrors: NoneDescription: This command can be used to undo or redo the geometry-related and doping-related

or refinement-related operations. The optional number-of-states specifies thenumber of states the model can roll. A negative number means to roll to a previousstate, and a positive number means to roll to a later state. This extension returns thenumber of steps rolled.

Limitations: None

Action: Obtains the surface area of a solid.Group: sdeSyntax: (solid:area solid-body [tolerance=0.01])Argument types: solid-body ENTITY

tolerance REALReturns: PairErrors: None

181

Page 202: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

solid:massprop

Description: The first argument solid-body specifies a solid body. If the solid body entity has notbeen explicitly defined, the argument should be (entity # [#]), where the first # isits entity number, and the second # is its part number. The second argument is anoptional tolerance, which specifies the accuracy of the calculation. This extensionreturns a pair of values: the total face area of the body and the relative accuracy(absolute accuracy/area) achieved in the computation. Cases that are treatedanalytically (tolerance is 0) are planes with straight or elliptical edges, cones withstraight edges, circular cylinders with elliptical edges, and special cases oflatitudinal and longitudinal edges on spheres.

Limitations: None

Action: Analyzes the mass properties of a solid.Group: sdeSyntax: (solid:massprop entity [integer-type=0 [thickness] tolerance=0.01

{{position=center} | {x=center-x y=center-y z=center-z}} direction=z-axis])

Argument types: entity ENTITYinteger-type INTEGERthickness REALtolerance REALposition POSITIONx REALy REALz REALdirection GVECTOR

Returns: (position | gvector | real | integer ...)Errors: NoneDescription: The argument entity must be a solid body to compute the mass properties. The

optional integer-type specifies the type of calculation to perform. thickness

specifies the thickness required. The optional argument tolerance specifies theaccuracy required. The optional argument position specifies a point on theprojection plane for the moment (x, y, z are the positional arguments) and can bedefined with either of two syntax formats. The first syntax defines position byplacing the xyz-coordinates in ‘position’ statements enclosed in parentheses.However, the second syntax format defines the xyz-coordinates without using the‘position’ statements or the additional set of parentheses. Otherwise, the twoformats are identical and accomplish the same task.

182

Page 203: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Managing displays and views

entity:display

Description: The optional argument direction specifies the normal to the projection plane for themoments; the default is the z-axis of the active work coordinate system. Validvalues include: 0 = Volume and tolerance only, 1 = Volume, tolerance, center ofmass, principal moments, and principal axes, 2 = Volume, center of mass, principalmoments, principal axes, inertial tensor, 3 = Volume and tolerance only usingthickness for double-sided faces, 4 = Volume, tolerance, and center of mass usingthickness for double-sided faces, and 5 = Volume, center of mass, principalmoments, principal axes, inertia tensor, using thickness for double-sided faces.

For types 3–5, a nonnegative thickness argument is required (after the type, beforethe tolerance if given), which is used to ascribe mass properties to any double-sidedfaces that the body contains. For types 0–2, double-sided sheets are ignored (theyare treated as having zero volume, therefore, no mass and no influence on the centerof mass or inertia). This is equivalent to using types 3–5 with a thickness of zero.

Wire bodies are always treated as having zero volume and no influence on thecenter of mass or inertia.

Limitations: None

Action: Displays entities.Group: sdeSyntax: (entity:display entity-list)Argument types: entity-list ENTITY | ENTITY LISTReturns: NoneErrors: NoneDescription: The argument entity-list specifies an entity or a list of entities to display. This

extension returns the input entity-list. Use this extension to display entities thatwere not displayed when they were created, or to redisplay entities that have beenerased. The display for the entities always recomputes. Therefore, use it toregenerate the display of an entity with a different faceting tolerance if the viewscale has changed and the display is now too coarse.

Limitations: None

183

Page 204: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

entity:erase

render:rebuild

Managing entity views

entity:set-color

Action: Erases but does not remove the specified entity or list of entities.Group: sdeSyntax: (entity:erase entity-list)Argument types: entity-list ENTITY | ENTITY LISTReturns: NoneErrors: NoneDescription: The argument entity-list is an entity or a list of entities to be erased from the

display. The entities remain available for later redisplay. To redisplay an erasedentity or a list of entities, use the entity:display extension. This extension returnsthe input entity-list.

Limitations: None

Action: Refreshes the display list for a view.Group: sdeSyntax: (render:rebuild [clear])Argument types: clear BOOLEANReturns: NoneErrors: NoneDescription: Use this extension after changing viewing parameters. If the optional argument

clear is #t or not present, the window is cleared and the wire frame is redisplayedfrom the display list contents. If the argument clear is #f, the view is not clearedbefore redisplaying the display list (that is, no ‘new page’ is written to the file). Ifthe view is associated with a file, a ‘new page’ instruction is written to the file whenview:clear is called with #t or no argument clear. render:rebuild places the image onthe following page of the file.

Limitations: None

Action: Sets the display color for an entity or a list of entities.Group: sdeSyntax: (entity:set-color entity-list color)Argument types: entity-list ENTITY | ENTITY LIST

color COLORReturns: ColorErrors: None

184

Page 205: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

view:vertices

Support functions for finding entity IDs (both geometry and Ref/Eval windows)

convert-to-degree

Description: The argument entity-list specifies an entity or a list of entities to be assigned acolor. The argument color can accept an integer or a color:rgb value, and specifies anew color to be assigned to specified entities. color values include: Black = 0 = #[color 0 0 0] Red = 1 = #[color 1 0 0] Green = 2 = #[color 0 1 0]Blue = 3 = #[color 0 0 1] Cyan = 4 = #[color 0 1 1] Yellow = 5 = #[color 1 1 0]Magenta = 6 = #[color 1 0 1] White = 7 = #[color 1 1 1] This extension returns the previous color of the entity.

Limitations: NoneExample:(sde:clear)(sdegeo:set-default-boolean "ABA")(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Silver" "region_1")(sdegeo:create-sphere (position 1 1 1) 0.5 "SiliconCarbide" "region_2")(entity:set-color (entity:edges (part:entities)) BLACK)

Action: Switches on or off vertex rendering.Group: sdeSyntax: (view:vertices view-flag)Argument types: view-flag BOOLEANReturns: NoneErrors: NoneDescription: Switches on or off vertex rendering on the view window and refreshes the view.Limitations: None

Action: Converts an angle from radian to degree.Group: sdeSyntax: (convert-to-degree angle)Argument types: angle REALReturns: RealErrors: NoneDescription: The function converts an angle from radian to degree.Limitations: None

185

Page 206: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

convert-to-radian

find-body-id

find-edge-id

Action: Converts an angle from degree to radian.Group: sdeSyntax: (convert-to-radian angle)Argument types: angle REALReturns: RealErrors: NoneDescription: The function converts an angle from degree to radian.Limitations: None

Action: Finds the entity number(s) of a body.Group: sdeSyntax: (find-body-id position)Argument types: position POSITIONReturns: Entity ID(s)Errors: NoneDescription: The function goes through all defined bodies, (part:entities (filter:type

"body?")), and returns the ACIS entity ID(s) of all bodies that contain the specifiedposition. The position can be lying on a boundary face or can be an internal point.

Limitations: None

Action: Finds the entity number(s) of an edge.Group: sdeSyntax: (find-edge-id position)Argument types: position POSITIONReturns: Entity ID(s)Errors: NoneDescription: The function goes through the edge list of all defined bodies, (entity:edges

(part:entities)), and returns the ACIS entity ID(s) of all edges that contain thespecified position. The position can be either an end vertex position of the edge oran internal position.

Limitations: None

186

Page 207: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

find-face-id

find-material-id

find-region-id

Action: Finds the entity number(s) of a face.Group: sdeSyntax: (find-face-id position)Argument types: position POSITIONReturns: Entity ID(s)Errors: NoneDescription: The function goes through the face list of all defined bodies, (entity:faces

(part:entities)), and returns the ACIS entity ID(s) of all faces that contain thespecified position. The position can be either a position lying on a boundary edge oran internal position.

Limitations: None

Action: Finds and returns all entities that have the given material attribute.Group: sdeSyntax: (find-material-id material-name)Argument types: material-name DATEXMATReturns: Entity | Entity listErrors: NoneDescription: The function goes through every region in the model and selects all regions that

have the specified material-name as the material attribute. If only one body is foundwith the specified material-name as the material attribute, the entity ID of thematerial is returned. If more than one region has the material-name material attribute,a list of all entities is returned. If no entity is found, an empty list is returned.

Limitations: None

Action: Returns the entity ID(s) for a specific region name.Group: sdeSyntax: (find-region-id region-name)Argument types: region-name STRINGReturns: Entity | Entity listErrors: NoneDescription: The function goes through every region in the model and selects all regions that

have the specified region-name as the region attribute. If only one body is found withthe specified region-name as the region attribute, the entity ID of the region isreturned. If more than one region has the region-name region attribute, a list of allentities is returned. If no entity is found, an empty list is returned.

Limitations: None

187

Page 208: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

find-vertex-id

find-edge-id-drs

find-face-id-drs

Action: Finds the entity number(s) of a vertex.Group: sdeSyntax: (find-vertex-id position)Argument types: position POSITIONReturns: Entity ID(s)Errors: NoneDescription: The function goes through the vertex list of all defined bodies, (entity:vertices

(part:entities)), and returns the ACIS entity ID(s) of all vertices that are placed atthe specified position.

Limitations: None

Action: Finds the entity number(s) of an edge for a Ref/Eval window body.Group: sdeSyntax: (find-edge-id-drs position)Argument types: position POSITIONReturns: Entity ID(s)Errors: NoneDescription: The function goes through the edge list of all defined Ref/Eval window bodies and

returns the ACIS entity ID(s) of all edges that contain the specified position. Theposition can be either an end vertex position of the edge or an internal position.

Limitations: None

Action: Finds the entity number(s) of a face for a Ref/Eval window body.Group: sdeSyntax: (find-face-id-drs position)Argument types: position POSITIONReturns: Entity ID(s)Errors: NoneDescription: The function goes through the face list of all defined Ref/Eval window bodies and

returns the ACIS entity ID(s) of all faces that contain the specified position. Theposition can be either a position lying on a boundary edge or an internal position.

Limitations: None

188

Page 209: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

find-body-id-drs

find-vertex-id-drs

find-drs-id

Action: Finds the entity number(s) of a body for a Ref/Eval window body.Group: sdeSyntax: (find-body-id-drs position)Argument types: position POSITIONReturns: Entity ID(s)Errors: NoneDescription: The function goes through the body list of all defined Ref/Eval window bodies and

returns the ACIS entity ID(s) of all bodies that contain the specified position. Theposition can be lying on a boundary face or can be an internal point.

Limitations: None

Action: Finds the entity number(s) of a vertex for a Ref/Eval window body.Group: sdeSyntax: (find-vertex-id-drs position)Argument types: position POSITIONReturns: Entity ID(s)Errors: NoneDescription: The function goes through the vertex list of all defined Ref/Eval window bodies and

returns the ACIS entity ID(s) of all vertices that contain the specified position.Limitations: None

Action: Returns the entity number(s) of a Ref/Eval window body.Group: sdeSyntax: (find-drs-id DRSname)Argument types: DRSname STRINGReturns: Entity ID(s)Errors: NoneDescription: The function goes through all defined Ref/Eval window bodies and returns the

ACIS entity ID(s) of the Ref/Eval window body that matches the specified doping/refinement/submesh (DRS) name. (The DRS name is a unique identifier of eachRef/Eval window body.)

Limitations: None

189

Page 210: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

General Scheme extensions

Managing displays and views

sde:delay-graphics-update

sde:delay-graphics-update?

Action: Switches on and off the view window update.Group: sdeSyntax: (sde:delay-graphics-update flag)Argument types: flag BOOLEANReturns: NoneErrors: NoneDescription: This extension switches on or off the refreshing or updating of the view window. By

default, the automatic refreshing of the view window is switched on. When a newbody is created or the model is changed in any way that affects the graphicalrepresentation of the model, the view window is automatically refreshed. In thisway, the display always reflects the actual state of the database of the modeler. Thisbehavior can be changed and the graphical update can be suppressed using thisfunction. By switching on the update option, the buffer is flushed and the screen isupdated.

Limitations: None

Action: Returns the status of sde:delay-graphics-update.Group: sdeSyntax: (sde:delay-graphics-update?)Argument types: NoneReturns: BooleanErrors: NoneDescription: This command returns the status of the Scheme extension sde:delay-graphics-

update.Limitations: None

190

Page 211: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:off-lights

sde:on-lights

sde:set-background-color

Action: Switches off the lights in the view window.Group: sdeSyntax: (sde:off-lights)Argument types: NoneReturns: NoneErrors: NoneDescription: This extension switches off the lights in the view window.Limitations: None

Action: Switches on the lights in the view window.Group: sdeSyntax: (sde:on-lights)Argument types: NoneReturns: NoneErrors: NoneDescription: This extension switches on the lights in the view window.Limitations: None

Action: Sets the background color of the main window of the GUI.Group: sdeSyntax: (sde:set-background-color rtop gtop btop rbottom gbottom bbottom)Argument types: rtop INTEGER

gtop INTEGERbtop INTEGERrbottom INTEGERgbottom INTEGERbbottom INTEGER

Returns: NoneErrors: NoneDescription: The RGB colors for the top and bottom must be specified (0–255). If the top and

bottom colors differ, a graded background will be used. If the top and bottom RGBcolors match, the background will be uniform.

Limitations: None

191

Page 212: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:set-view-mode

sde:set-window-position

sde:set-window-size

Action: Sets the view.Group: sdeSyntax: (sde:set-view-mode view-mode)Argument types: view-mode STRINGReturns: NoneErrors: NoneDescription: This function sets the view to the specified value. view-mode can be one of the

following: ISO, XY, XZ, YZ, or X-Y. ISO specifies the isometric view, XY sets the view tothe x-y plane and so on, and X-Y sets the view window in such a way that the x-axispoints horizontally and the y-axis points downwards. The function also performs azoom extent operation.

Limitations: None

Action: Positions the main window of the GUI.Group: sdeSyntax: (sde:set-window-position xpos ypos)Argument types: xpos INTEGER

ypos INTEGERReturns: NoneErrors: NoneDescription: xpos and ypos are used to specify the horizontal and vertical placements of the

GUI.Limitations: None

Action: Resizes the main window of the GUI.Group: sdeSyntax: (sde:set-window-size xsize ysize)Argument types: xsize INTEGER

ysize INTEGERReturns: NoneErrors: NoneDescription: xsize and ysize specify the horizontal and vertical sizes (in pixels) of the GUI.Limitations: None

192

Page 213: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:set-window-style

sde:toggle-lights

sde:view-set-light-intensity

Action: Sets the GUI style.Group: sdeSyntax: (sde:set-window-style wstyle)Argument types: wstyle STRINGReturns: NoneErrors: NoneDescription: This function is used to set the GUI style. The style can be any of the following:

Windows, Motif, MotifPlus, Platinum, SGI, CDE.Limitations: None

Action: Switches on or off the lights.Group: sdeSyntax: (sde:toggle-lights)Argument types: NoneReturns: NoneErrors: NoneDescription: The function behaves like a light switch. It switches on or off the lights of the view

window.Limitations: None

Action: Sets the light intensity.Group: sdeSyntax: (sde:view-set-light-intensity lintensity)Argument types: lintensity INTEGERReturns: NoneErrors: NoneDescription: This function sets the light intensity of the GUI drawing area. The light intensity

can be changed between 0 and 1.Limitations: None

193

Page 214: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:view-set-visible-area

sde:zoom-all

Show and hide entities

sde:clear

Action: Sets the visible screen area.Group: sdeSyntax: (sde:view-set-visible-area xmin xmax ymin ymax)Argument types: xmin REAL

xmax REALymin REALymax REAL

Returns: NoneErrors: NoneDescription: This function is used to resize the GUI drawing area explicitly. If the bounding box

of the created device is known, it may be convenient to preset the view area to thatsize.

Limitations: None

Action: Fits the model to the view window.Group: sdeSyntax: (sde:zoom-all)

Argument types: NoneReturns: NoneErrors: NoneDescription: This Scheme extension is used to fit the model to the view window.Limitations: None

Action: Clears the modeler.Group: sdeSyntax: (sde:clear)Argument types: NoneReturns: NoneErrors: NoneDescription: This extension clears the database of Sentaurus Structure Editor and restores all

settings to their initial values. (sde:clear) should always be used as the first callwhen a new script is executed that requires a clean database. (sde:clear) alsorestores the view window to the initial settings.

194

Page 215: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:hide

sde:hide-contact

Limitations: This extension does not clear the Scheme interpreter. If global Scheme variables areused, they are still initialized and valid after an (sde:clear) call.

Action: Removes the specified entity or entities from the scene.Group: sdeSyntax: (sde:hide entity | entity-list)Argument types: entity ENTITY

entity-list ENTITY LISTReturns: NoneErrors: NoneDescription: This extension is used to remove the specified entities from the scene. The entities

are removed from the scene and the view is refreshed. If the entities are alreadyremoved from the scene, there is no change in the view window.

Limitations: NoneExample:

(sde:clear)(define r1 (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Photoresist" "r_1"))(define r2 (sdegeo:create-rectangle (position 2 0 0) (position 3 1 0) "Silicon" "r_2"))(define r3 (sdegeo:create-rectangle (position 4 0 0) (position 5 1 0) "Resist" "r_3"))(define r4 (sdegeo:create-rectangle (position 6 0 0) (position 7 1 0) "PolySilicon" "r_4"))(sde:hide r1)(sde:hide (list r3 r4))

Action: Removes all the regions from the view that have the specified contact attributes.Group: sdeSyntax: (sde:hide-contact contact-name | contact-name-list)Argument types: contact-name STRING

contact-name-list STRING LISTReturns: NoneErrors: NoneDescription: sde:hide-contact removes all regions from the view, which have contacts defined

with the specified contact attribute(s). Contacts are identified with the attributename contact. In 2D, contacts are edges and, in 3D, contacts are faces.

Limitations: None

195

Page 216: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:hide-interface

sde:hide-mask

sde:hide-material

Action: Removes the specified interfaces from the view.Group: sdeSyntax: (sde:hide-interface interface-name | interface-name-list)Argument types: interface-name STRING

interface-name-list STRING LISTReturns: NoneErrors: NoneDescription: sde:hide-interface removes all regions from the view, which have interfaces defined

with the specified interface attribute(s). Interfaces are identified with the attributename interface. In 2D, interfaces are edges between neighboring regions and, in3D, interfaces are faces between neighboring regions.

Limitations: None

Action: Removes the specified masks from the scene.Group: sdeSyntax: (sde:hide-mask mask-name | mask-name-list)Argument types: mask-name STRING

mask-name-list STRING LISTReturns: NoneErrors: NoneDescription: This extension removes the specified masks from the scene. Masks are planar wire

bodies that have the specified mask-name(s) as ‘mask name’ attributes.Limitations: None

Action: Removes the entities with the specified materials from the scene.Group: sdeSyntax: (sde:hide-material datex-material | datex-material-list)Argument types: datex-material DATEXMAT

datex-material-list DATEXMAT LISTReturns: NoneErrors: NoneDescription: sde:hide-material is used to remove the regions that have the specified material

names as material attributes from the scene. The region is removed from the sceneand the view is refreshed. If the region is already removed from the scene, there isno change in the view window. The argument is a DATEX material or list ofDATEX materials.

Limitations: None

196

Page 217: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:hide-region

sde:refresh

Example:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Photoresist" "region_1")(sdegeo:create-rectangle (position 2 0 0) (position 3 1 0) "Silicon" "region_2")(sdegeo:create-rectangle (position 4 0 0) (position 5 1 0) "Resist" "region_3")(sdegeo:create-rectangle (position 6 0 0) (position 7 1 0) "PolySilicon" "region_4")(sde:hide-material "Silicon")

Action: Removes the specified entity or entities from the scene.Group: sdeSyntax: (sde:hide-region region-name | region-name-list)Argument types: region-name STRING (existing region name)

region-name-list STRING LIST (existing region names)Returns: NoneErrors: NoneDescription: sde:hide-region is used to remove the specified regions from the scene. The bodies,

which have the specified region names as region attributes, are removed from thescene and the view is refreshed. If the region is already removed from the scene,there is no change in the view window.

Limitations: NoneExample:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Photoresist" "region_1")(sdegeo:create-rectangle (position 2 0 0) (position 3 1 0) "Silicon" "region_2")(sdegeo:create-rectangle (position 4 0 0) (position 5 1 0) "Resist" "region_3")(sdegeo:create-rectangle (position 6 0 0) (position 7 1 0) "PolySilicon" "region_4")(sde:hide-region "region_1")(sde:hide-region (list "region_3" "region_4"))

Action: Refreshes and rebuilds the view window.Group: sdeSyntax: (sde:refresh)Argument types: NoneReturns: NoneErrors: None

197

Page 218: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:show

sde:showattribs

Description: This extension discards the existing entity display list and regenerates it from theentity data. This is useful when the view zooms in on entities, because the displaymay appear jagged. This extension destroys the existing display list, regenerates itfrom the entities at the new zoom level, and redisplays the entities in all viewsassociated with the part.

If only GUI actions are used to manipulate the view and modeler, the view is alwaysupdated and there is no need to call sde:refresh.

Limitations: None

Action: Adds the specified entity or entities to the scene.Group: sdeSyntax: (sde:show entity | entity-list)Argument types: entity ENTITY

entity-list ENTITY LISTReturns: NoneErrors: NoneDescription: This extension is used to show the specified entity or entities in the view window.

The bodies are added to the scene and the view is refreshed. If the entity is alreadyvisible, there is no change in the view window.

Limitations: NoneExample:

(sde:clear)(define r1 (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Photoresist" "r_1"))(define r2 (sdegeo:create-rectangle (position 2 0 0) (position 3 1 0) "Silicon" "r_2"))(define r3 (sdegeo:create-rectangle (position 4 0 0) (position 5 1 0) "Resist" "r_3"))(define r4 (sdegeo:create-rectangle (position 6 0 0) (position 7 1 0) "PolySilicon" "r_4"))(sde:xshow-material "")(sde:show r1)(sde:show (list r3 r4))

Action: Shows the attributes of Sentaurus Structure Editor attached to a body or bodies.Group: sdeSyntax: (sde:showattribs entity-list | "all")Argument types: entity-list ENTITY LISTReturns: NoneErrors: None

198

Page 219: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:show-contact

sde:show-grid

sde:show-interface

Description: This extension shows the attached attributes for the specified entity-list. Instead ofan entity-list, the keyword all can also be specified, in which case, all ACISbodies are shown. The function displays the ACIS part number, and the materialand region attributes of Sentaurus Structure Editor that are attached to the bodies.

Limitations: None

Action: Adds all the regions to the view that have the specified contact attribute(s).Group: sdeSyntax: (sde:show-contact contact-name | contact-name-list)Argument types: contact-name STRING

contact-name-list STRING LISTReturns: NoneErrors: NoneDescription: This function adds all regions to the view, which have contacts defined with the

specified contact attribute(s). Contacts are identified with the attribute namecontact. In 2D, contacts are edges and, in 3D, contacts are faces.

Limitations: None

Action: Switches on and off the grid in the view window.Group: sdeSyntax: (sde:show-grid on-off)Argument types: on-off BOOLEANReturns: BooleanErrors: NoneDescription: The function switches on and off visualization of the grid in the view window.Limitations: None

Action: Adds the specified interfaces to the view.Group: sdeSyntax: (sde:show-interface interface-name | interface-name-list)Argument types: interface-name STRING

interface-name-list STRING LISTReturns: NoneErrors: None

199

Page 220: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:show-mask

sde:show-material

Description: This extension adds to the view all regions that have interfaces defined with thespecified interface attribute(s). Interfaces are identified with the attribute nameinterface. In 2D, interfaces are edges between neighboring regions and, in 3D,interfaces are faces between neighboring regions.

Limitations: None

Action: Adds the specified mask(s) to the scene.Group: sdeSyntax: (sde:show-mask mask-name | mask-name-list)Argument types: mask-name STRING

mask-name-list STRING LISTReturns: NoneErrors: NoneDescription: sde:show-mask adds the specified masks to the view. Masks are planar wire bodies

that have the specified mask-name(s) as ‘mask name’ attributes.Limitations: None

Action: Adds the entities with the specified material(s) to the scene.Group: sdeSyntax: (sde:show-material datex-material | datex-material-list)Argument types: datex-material DATEXMAT

datex-material-list DATEXMAT LISTReturns: NoneErrors: NoneDescription: sde:show-material is used to show the region(s) that has the specified material

name(s) as material attribute(s). The region is added to the scene and the view isrefreshed. If the region is already visible, there is no change in the view window.The argument is a DATEX material or list of DATEX materials.

Limitations: NoneExample:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Photoresist" "region_1")(sdegeo:create-rectangle (position 2 0 0) (position 3 1 0) "Silicon" "region_2")(sdegeo:create-rectangle (position 4 0 0) (position 5 1 0) "Resist" "region_3")(sdegeo:create-rectangle (position 6 0 0) (position 7 1 0) "PolySilicon" "region_4")(sde:xshow-material "")(sde:show-material "Silicon")

200

Page 221: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:show-pcurves

sde:show-region

Action: Shows the parameter curves.Group: sdeSyntax: (sde:show-pcurves rendering-flag [u-params [v-params]])Argument types: rendering-flag BOOLEAN

u-params INTEGERv-params INTEGER

Returns: NoneErrors: NoneDescription: This function is used to visualize the parametric curves for each entity, defined in

the database. The Boolean rendering-flag is used to switch on or off the parameterline visualization. If the optional arguments u-params and v-params are not specified,the default value of 5 is used.

Limitations: Only the wire frame view is affected by this function, by rendering the parameterlines.

Action: Adds the specified entity or entities to the scene.Group: sdeSyntax: (sde:show-region region-name | region-name-list)Argument types: region-name STRING (existing region name)

region-name-list STRING LIST (existing region names)Returns: NoneErrors: NoneDescription: sde:show-region is used to show the specified region(s) in the view window. The

bodies, which have the specified region name as region attribute, are added to thescene and the view is refreshed. If the region is already visible, there is no change inthe view window.

Limitations: NoneExample:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Photoresist" "region_1")(sdegeo:create-rectangle (position 2 0 0) (position 3 1 0) "Silicon" "region_2")(sdegeo:create-rectangle (position 4 0 0) (position 5 1 0) "Resist" "region_3")(sdegeo:create-rectangle (position 6 0 0) (position 7 1 0) "PolySilicon" "region_4")(sde:xshow-material "")(sde:show-region "region_1")(sde:show-region (list "region_3" "region_4"))

201

Page 222: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:view-filter-reset

sde:xshow

Action: Resets the scene.Group: sdeSyntax: (sde:view-filter-reset)Argument types: NoneReturns: NoneErrors: NoneDescription: The scene is reset to the default value. (All regions and contacts are shown, and

interfaces are hidden.)Limitations: None

Action: Adds the specified entity or entities to the scene and hides all other entities.Group: sdeSyntax: (sde:xshow entity | entity-list)Argument types: entity ENTITY

entity-list ENTITY LISTReturns: NoneErrors: NoneDescription: This extension is used to show the specified entities exclusively in the view

window. The entities are added to the scene. All other entities are removed from theview and the view is refreshed.

Limitations: NoneExample:

(sde:clear)(define r1 (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Photoresist" "r_1"))(define r2 (sdegeo:create-rectangle (position 2 0 0) (position 3 1 0) "Silicon" "r_2"))(define r3 (sdegeo:create-rectangle (position 4 0 0) (position 5 1 0) "Resist" "r_3"))(define r4 (sdegeo:create-rectangle (position 6 0 0) (position 7 1 0) "PolySilicon" "r_4"))(sde:xshow r1)(sde:xshow (list r3 r4))

202

Page 223: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:xshow-contact

sde:xshow-interface

sde:xshow-mask

Action: Adds all the regions to the view that have the specified contact attribute(s) andremoves all other regions.

Group: sdeSyntax: (sde:xshow-contact contact-name | contact-name-list)Argument types: contact-name STRING

contact-name-list STRING LISTReturns: NoneErrors: NoneDescription: sde:xshow-contact exclusively adds all regions to the view that have contacts defined

with the specified contact attribute(s). Contacts are identified with the attributename contact. In 2D, contacts are edges and, in 3D, contacts are faces.

Limitations: None

Action: Adds the specified interfaces to the view and removes all other interfaces.Group: sdeSyntax: (sde:xshow-interface interface-name | interface-name-list)Argument types: interface-name STRING

interface-name-list STRING LISTReturns: NoneErrors: NoneDescription: sde:xshow-interface exclusively adds all regions to the view, which have interfaces

defined, with the specified interface attribute(s). Interfaces are identified with theattribute name interface. In 2D, interfaces are edges between neighboring regionsand, in 3D, interfaces are faces between neighboring regions.

Limitations: None

Action: Adds the specified masks to the scene and removes all other masks.Group: sdeSyntax: (sde:xshow-mask mask-name | mask-name-list)Argument types: mask-name STRING

mask-name-list STRING LISTReturns: NoneErrors: NoneDescription: sde:xshow-mask exclusively adds the specified masks to the view, that is, the

specified masks are added and all other masks are removed. Masks are planar wirebodies that have the specified mask-name(s) as ‘mask name’ attributes.

Limitations: None

203

Page 224: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:xshow-material

sde:xshow-region

Action: Adds the entities with the specified materials to the scene and hides all otherentities.

Group: sdeSyntax: (sde:xshow-material datex-material | datex-material-list)Argument types: datex-material DATEXMAT

datex-material-list DATEXMAT LISTReturns: NoneErrors: NoneDescription: This extension is used to show exclusively the regions that have the specified

material names as material attributes. The region is added to the scene, all otherregions are removed from the view, and the view is refreshed. The argument is aDATEX material or list of DATEX materials.

Limitations: NoneExample:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Photoresist" "region_1")(sdegeo:create-rectangle (position 2 0 0) (position 3 1 0) "Silicon" "region_2")(sdegeo:create-rectangle (position 4 0 0) (position 5 1 0) "Resist" "region_3")(sdegeo:create-rectangle (position 6 0 0) (position 7 1 0) "PolySilicon" "region_4")(sde:xshow-material "Silicon")

Action: Adds the specified entity or entities to the scene and hides all other entities.Group: sdeSyntax: (sde:xshow-region region-name | region-name-list)Argument types: region-name STRING (existing region name)

region-name-list STRING LIST (existing region names)Returns: NoneErrors: NoneDescription: This extension is used to show the specified regions exclusively in the view

window. The bodies, which have the specified region names as region attributes, areadded to the scene. All other bodies are removed from the view and the view isrefreshed.

Limitations: NoneExample:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Photoresist" "region_1")(sdegeo:create-rectangle (position 2 0 0) (position 3 1 0) "Silicon" "region_2")(sdegeo:create-rectangle (position 4 0 0) (position 5 1 0) "Resist" "region_3")(sdegeo:create-rectangle (position 6 0 0) (position 7 1 0) "PolySilicon" "region_4")(sde:xshow-region "region_1")(sde:xshow-region (list "region_3" "region_4"))

204

Page 225: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Managing boundary images

sde:create-bg-image

sde:show-bg-image

sde:hide-bg-image

Action: Loads an image file (in GIF) into Sentaurus Structure Editor.Group: sdeSyntax: (sde:create-bg-image filename horizontal-size vertical-size)Argument types: filename STRING

horizontal-size REALvertical-size REAL

Returns: NoneErrors: NoneDescription: sde:create-bg-image loads an image file (in GIF) into Sentaurus Structure Editor.

The image is not shown automatically; sde:show-bg-image must be called to show theimage. The horizontal-size and vertical-size arguments define the GUI size of theimage.

Limitations: None

Action: Shows the previously loaded image.Group: sdeSyntax: (sde:show-bg-image)Argument types: NoneReturns: NoneErrors: NoneDescription: This command displays the loaded image.Limitations: None

Action: Hides the previously loaded image.Group: sdeSyntax: (sde:hide-bg-image)Argument types: NoneReturns: NoneErrors: NoneDescription: This command hides the previously loaded image.Limitations: None

205

Page 226: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:delete-bg-image

sde:bg-image-transparency

Exporting boundaries and meshing

sde:build-mesh

Action: Removes the previously loaded image from memory.Group: sdeSyntax: (sde:delete-bg-image)Argument types: NoneReturns: NoneErrors: NoneDescription: This command removes the previously loaded image from memory.Limitations: None

Action: Sets the transparency of the image.Group: sdeSyntax: (sde:bg-image-transparency transparency-value)Argument types: transparency-value REALReturns: NoneErrors: NoneDescription: This command sets the transparency of the loaded image. The transparency-value

argument must be between 0 and 1.Limitations: None

Action: Generates a DF–ISE boundary output (.bnd) and mesh input file (.cmd), and calls themesher.

Group: sdeSyntax: (sde:build-mesh mesher options file-basename)Argument types: mesher {"mesh" | "noffset" | "snmesh"}

options STRINGfile-basename STRING

Returns: Prints a message showing a successful or failed meshing. Returns #t or #f toindicate success or failure, respectively.

Errors: Returns a message if an unknown meshing engine is selected.

206

Page 227: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:separate-lumps

Description: This extension generates a 2D or 3D DF–ISE boundary output and mesh input file(.cmd file), and calls the specified mesher. Sentaurus Structure Editor waits for themesh engine to complete its task, therefore, no operations of Sentaurus Structure

Limitations: The allowed values of mesher are mesh, noffset, and snmesh.

Action: Separates the lumps in a body.Group: sdeSyntax: (sde:separate-lumps)

Argument types: NoneReturns: NoneErrors: NoneDescription: Geometric operations can result in models with bodies that have multiple lumps

(disjoint parts of a body). Since each body has a unique region-name attribute, theseseparate lumps in a body will have the same region name. As the Synopsys meshingengines require a unique region name for each disjoint region, bodies with multiplelumps must be separated before a DF–ISE boundary file is generated.

This extension separates lumps and is also called automatically before a DF–ISEboundary file is generated. For example, if the original region name was region_1and it has three lumps before sde:separate-lumps is called, sde:separate-lumps‘breaks’ the body into three parts and assigns a unique region name to each. A_lump_N string is added to each lump, where N is the lump counter, starting from 1.Therefore, three new bodies are generated with the region names region_1_lump_1,region_1_lump_2, and region_1_lump_3.

Limitations: NoneExample:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 10 3 0) "Silver" "region_1")(sdegeo:set-default-boolean "ABA")(sdegeo:create-rectangle (position 4 -1 0) (position 6 4 0) "Silicon" "region_2"); region_1 will have two lumps !(part:entities (filter:type "solid?")); returns the entity ids of the two bodies(sde:separate-lumps)(part:entities (filter:type "solid?")); returns the entity ids of the three bodies; region_1 was separated into two bodies, with region names; region_1_lump_1 and region_1_lump_2

207

Page 228: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdeio:save-2d-dfise-bnd

Action: Creates a 2D DF–ISE boundary (.bnd) output file.Group: sdeioSyntax: (sdeio:save-2d-dfise-bnd entity-list file-name)Argument types: entity-list ENTITY LIST

file-name STRINGReturns: NoneErrors: NoneDescription: The output file contains all entities that are listed in entity-list. All bodies in the

entity-list must be created by using either the sdegeo Scheme functions or theassociated GUI actions. This ensures that all requirements for generating a DF–ISEboundary file are automatically guaranteed.

The most important requirements are that each region must have associated materialand region attributes (for generating the DF–ISE material and region name list),neighboring regions cannot overlap, and neighboring regions must be conformal.(Shared boundaries must have the same boundary edges.) If the bodies weregenerated by using ACIS Scheme functions directly, users must ensure that all therequirements for DF–ISE model conformity are satisfied. Support functions areavailable to attach the DATEX material and region-name attributes.

If users want to export the complete model, (part:entities (filter:type "solid?"))can be used to identify all regions. This command can be given as the entity-listattribute. Since the internal model of Sentaurus Structure Editor can contain curvedboundaries and the 2D DF–ISE boundary file is based on a polygonalrepresentation, a discretization step must be performed before the DF–ISE output isgenerated.

After the internal model is tessellated, the boundary loops are extracted from thetriangulation and the boundary loops are written to the DF–ISE boundary file. Ifthere are contacts attached to the regions, the contact information is also extractedto the DF–ISE boundary file.

Users can control the properties of the tessellation of Sentaurus Structure Editor.These properties determine how many edge segments are created during thetessellation phase as well as the quality of the generated DF–ISE boundary file.Overrefinement generates an excessive number of edge segments, which may bedifficult to mesh. The sde:setrefprops command can be used to control the internaltessellation phase.

Since the DF–ISE regions cannot contain disjoint regions with the same regionname, bodies with multiple lumps are separated during the call to sdeio:save-2d-dfise-bnd.

Limitations: None

208

Page 229: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdeio:save-2d-tdr-bnd

sdeio:save-3d-dfise-bnd

Action: Generates 2D TDR boundary output.Group: sdeioSyntax: (sdeio:save-2d-tdr-bnd body-list file-name)Argument types: body-list ENTITY LIST | "all"

file-name STRINGReturns: NoneErrors: NoneDescription: The sdeio:save-2d-tdr-bnd function is analogous to the sdeio:save-2d-dfise-bnd

function and uses the same argument list. The only difference is that it generates theTDR output boundary file, instead of the DF–ISE boundary file.

Limitations: None

Action: Creates a 3D DF–ISE boundary (.bnd) output file.Group: sdeioSyntax: (sdeio:save-3d-dfise-bnd entity-list file-name)Argument types: entity-list ENTITY LIST

file-name STRINGReturns: NoneErrors: NoneDescription: The output file contains all entities that are listed in entity-list. All bodies in the

entity-list must be created by using either the sdegeo Scheme functions or theassociated GUI actions. This ensures that all requirements for generating a DF–ISEboundary file are automatically guaranteed.

The most important requirements are that each region must have associated materialand region attributes (for generating the DF–ISE material and region name list),neighboring regions cannot overlap, and neighboring regions must be conformal.(Shared boundaries must have the same boundary edges.) If the bodies weregenerated by using ACIS Scheme functions directly, users must ensure that all therequirements of DF–ISE model conformity are satisfied. Support functions areavailable to attach the DATEX material and region-name attributes.

If users want to export the complete model, (part:entities (filter:type "solid?"))can be used to identify all regions. This command can be given as the entity-listattribute. Since the internal model of Sentaurus Structure Editor can contain curvedboundaries and the 3D DF–ISE boundary file is based on a polyhedralrepresentation, a discretization step must be performed before the DF–ISE output isgenerated.

209

Page 230: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdeio:save-3d-tdr-bnd

sdeio:save-dfise-bnd

Description: After the internal model is tessellated, the boundary triangles are extracted from thetriangulation and the boundaries are written to the DF–ISE boundary file. If thereare contacts attached to the regions, the contact information is also extracted to theDF–ISE boundary file.

Users can control the properties of the tessellation. These properties determine howmany surface triangles are created during the tessellation phase as well as thequality of the generated DF–ISE boundary file. Overrefinement generates anexcessive number of surface triangles, which may be difficult to mesh. Thesde:setrefprops command is used to control the internal tessellation phase.

Since the DF–ISE regions cannot contain disjoint regions with the same regionname, bodies with multiple lumps are separated during the call to sdeio:save-3d-dfise-bnd.

Limitations: None

Action: Generates 3D TDR boundary output.Group: sdeioSyntax: (sdeio:save-3d-tdr-bnd body-list file-name)Argument types: body-list ENTITY LIST | "all"

file-name STRINGReturns: NoneErrors: NoneDescription: The sdeio:save-3d-tdr-bnd function is analogous to the sdeio:save-3d-dfise-bnd

function and uses the same argument list. The only difference is that it generates theTDR output boundary file, instead of the DF–ISE boundary file.

Limitations: None

Action: Generates a DF–ISE boundary output.Group: sdeioSyntax: (sdeio:save-dfise-bnd body-list file-name)Argument types: body-list ENTITY LIST | "all"

file-name STRINGReturns: NoneErrors: NoneDescription: Depending on the model dimensionality, this function calls either sdeio:save-2d-

dfise-bnd or sdeio:save-3d-dfise-bnd. Users can specify all instead of an entity listin the argument list to use all regions for the DF–ISE boundary file generation.

Limitations: None

210

Page 231: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdeio:save-tdr-bnd

Configuring Noffset parameters for meshing

sdenoffset:create-boundary

Action: Generates TDR boundary output.Group: sdeioSyntax: (sdeio:save-tdr-bnd body-list file-name)Argument types: body-list ENTITY LIST | "all"

file-name STRINGReturns: NoneErrors: NoneDescription: The sdeio:save-tdr-bnd function is analogous to the sdeio:save-dfise-bnd function

and uses the same argument list. The only difference is that it generates the TDRoutput boundary file, instead of the DF–ISE boundary file. Depending on the modeldimensionality, this function calls either sdeio:save-2d-tdr-bnd or sdeio:save-3d-tdr-bnd. Users can specify all instead of an entity list in the argument list to use allregions for the generation of the TDR boundary file.

Limitations: None

Action: Generates a new Noffset boundary block.Group: sdenoffsetSyntax: (sdenoffset:create-boundary

< "region" region1 region2 > | < "material" material1 material2 >[ "hglobal" hglobal ] [ "window" x0 y0 z0 x1 y1 z1 ][ "reggrid-window" x1 y1 z1 x2 y2 z2 ][ "reggrid-uniform" x y z ] [ "reggrid-regmod" regmode ][ "reggrid-minedgeratio" minedgeratio ][ "deviationfrac" devfrac ] [ "deviatiorel" devrel ][ "deviationabs" devabs ] [ "ridgeangle" rangle ])

Argument types: region1, region2 STRINGmaterial1, material2 STRINGhglobal REALx,y,z REALx0,y0,z0 REALx1,y1,z1 REALx2,y2,z2 REALregmode STRINGminedgeratio REALdevfrac REALdevrel REALdevabs REALrangle REAL

Returns: Boolean

211

Page 232: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdenoffset:create-global

sdenoffset:create-isoline

Errors: NoneDescription: This extension generates a new Noffset boundary block, which defines the

boundary between either two regions or two materials.Limitations: None

Action: Creates an Noffset global parameters block.Group: sdenoffsetSyntax: (sdenoffset:create-global "usebox" usebox "maxangle" maxangle

"triangulate" triangulate "maxconnect" maxconnect"background" background "options" options "recoverholes" recoverholes"hlocal" hlocal "factor" factor "subdivide" subdivide "terminateline" terminateline "maxedgelength" maxedgelength "maxlevel" maxlevel "hglobal" hglobal)

Argument types: usebox INTEGERmaxangle REALtriangulate INTEGERmaxconnect INTEGERbackground STRINGoptions STRINGrecoverholes INTEGERhlocal REALfactor REALsubdivide INTEGERterminateline INTEGERmaxedgelength REALmaxlevel INTEGERhglobal REAL

Returns: NoneErrors: NoneDescription: This Scheme extension generates a new Noffset global parameters block.Limitations: None

Action: Generates a new Noffset isoline block.Group: sdenoffsetSyntax: (sdenoffset:create-isoline name "species" species "value" value

"material" material "length" length "submesh" submesh)(sdenoffset:create-isoline name "species" species "value" value "region" region "length" length "submesh" submesh)

212

Page 233: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

NOTE Only one of "region" region or "material" material is given, not both.

sdenoffset:create-noffset-block

sdenoffset:create-noffset-interface

Argument types: name STRINGspecies STRINGvalue REALregion STRINGmaterial STRINGlength REALsubmesh STRING

Returns: NoneErrors: NoneDescription: This extension creates a new Noffset isoline block inside the Offsetting section of

the Mesh command file.Limitations: None

Action: Generates a new Noffset block.Group: sdenoffsetSyntax: (sdenoffset:create-noffset-block "region" region "maxedgelength"

maxedgelength "maxlevel" maxlevel)(sdenoffset:create-noffset-block "material" material "maxedgelength"maxedgelength "maxlevel" maxlevel)

Argument types: region STRINGmaterial STRINGmaxedgelength REALmaxlevel INTEGER

Returns: NoneErrors: NoneDescription: This extension generates a new Noffset block inside the Offsetting section of the

Mesh command file.Limitations: None

Action: Generates Noffset interface definitions.Group: sdenoffsetSyntax: (sdenoffset:create-noffset-interface "region" region1 region2

"hlocal" hlocal "factor" factor "terminateline" terminateline"subdivide" subdivide "window" x1 y1 z1 x2 y2 z2)(sdenoffset:create-noffset-interface "material" material1 material2"hlocal" hlocal "factor" factor "terminateline" terminateline"subdivide" subdivide "window" x1 y1 z1 x2 y2 z2)

213

Page 234: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Controlling delaunizer module

sdedelaunizer:set-parameters

Argument types: region STRINGmaterial STRINGhlocal REALfactor REALterminateline INTEGERsubdivide INTEGERx1 y1 z1 x2 y2 z2 REAL

Returns: NoneErrors: NoneDescription: This extension generates a new Noffset interface block inside the Offsetting section

of the Mesh command file.Limitations: None

Action: Sets the parameters for the delaunizer module of the Mesh Generation Tools.Group: sdeSyntax: (sdedelaunizer:set-parameters "coplanarityDistance" coplanarityDistance

"coplanarityAngle" coplanarityAngle "minEdgeLength" minEdgeLength"edgeProximity" edgeProximity "faceProximity" faceProximity"delaunayTolerance" delaunayTolerance"type" {"boxmethod" | "conforming" | "constrained"}"maxPoints" maxPoints "sliverAngle" sliverAngle)

Argument types: coplanarityDistance REALcoplanarityAngle REALminEdgeLength REALedgeProximity REALfaceProximity REALdelaunayTolerance REALtype {"boxmethod" | "conforming" | "constrained"}maxPoints REALsliverAngle REAL

Returns: NoneErrors: NoneDescription: The Scheme extension sdedelaunizer:set-parameters sets the global variables used

inside the Delaunizer section of the command file of the Mesh Generation Tools.These are the parameters for the delaunizer module. Refer to the Mesh GenerationTools User Guide.

Limitations: None

214

Page 235: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdedelaunizer:set-tolerance

Controlling tessellation for boundary output

refinement:props

sde:attach-refinement

Action: Sets delaunizer tolerance.Group: sdeSyntax: (sdedelaunizer:set-tolerance tolerance location location-type window)Argument types: tolerance REAL

location {"boundary" | "interior" | "surface"}location-type {"region" ["region1" ["region2"]] |

"material" ["material1" ["material2"]] | "global"}window "window" x0 y0 z0 x1 y1 z1

Returns: NoneErrors: NoneDescription: This command sets the tolerance parameters for the delaunizer in the Mesh and

Noffset3D commands files.Limitations: None

Action: Obtains the current property list of a refinement.Group: sdeSyntax: (refinement:props refinement)Argument types: refinement REFINEMENTReturns: Refinement propertiesErrors: NoneDescription: This extension returns a list of pairs of refinement criteria and their values.Limitations: NoneExample: (refinement:props sde-ref)

Action: Attaches the refinement to the specified faces.Group: sdeSyntax: (sde:attach-refinement ref-name face-list)Argument types: ref-name REFINEMENT

face-list FACE LISTReturns: NoneErrors: None

215

Page 236: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:define-refinement

sde:delete-refinement

Description: The face-list specifies the faces, which will be tessellated, during a DF–ISEboundary output, using the refinement properties of ref-name. If face-list contains aface or faces with an already attached refinement, that refinement will be replacedby the new refinement.

Limitations: None

Action: Defines a facewise refinement.Group: sdeSyntax: (sde:define-refinement ref-name)Argument types: ref-name REFINEMENTReturns: NoneErrors: NoneDescription: This command only registers the name of the refinement with the default

refinement settings (surface tolerance –1, normal tolerance 15, aspect ratio 0, max.edge length 0). The properties of the refinement can be changed by using sde:set-refinement.

Limitations: None

Action: Deletes the specified facewise refinement.Group: sdeSyntax: (sde:delete-refinement ref-name)Argument types: ref-name REFINEMENTReturns: NoneErrors: NoneDescription: The specified refinement will be removed from all faces that use the specified

refinement.Limitations: None

216

Page 237: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:hide-refinement

sde:remove-refinement

sde:set-refinement

Action: Hides the faces where the specified refinement is attached.Group: sdeSyntax: (sde:hide-refinement ref-name)Argument types: ref-name REFINEMENTReturns: NoneErrors: NoneDescription: The Placements Viewer can also be used, during an interactive session, to hide

facewise refinements.Limitations: None

Action: Removes the facewise refinement from the specified faces.Group: sdeSyntax: (sde:remove-refinement face-list)Argument types: face-list FACE LISTReturns: NoneErrors: NoneDescription: The face-list specifies the faces from which the facewise refinement properties

will be removed. After that, these faces will be tessellated during a DF–ISEboundary output, using the refinement properties of the global refinement sde-ref.

Limitations: None

Action: Sets the refinement properties of a specified facewise refinement.Group: sdeSyntax: (sde:set-refinement ref-name surface-tolerance normal-tolerance

[aspect-ratio [max-edge-length]])Argument types: ref-name REFINEMENT

surface-tolerance REALnormal-tolerance REALaspect-ratio REALmax-edge-length REAL

Returns: NoneErrors: NoneDescription: The surface-tolerance and normal-tolerance values must be given (surface and

normal tolerance), while the aspect-ratio and the max-edge-length values areoptional.

Limitations: None

217

Page 238: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:setrefprops

sde:show-refinement

Action: Sets the refinement properties for the internal faceter.Group: sdeSyntax: (sde:setrefprops surface-tolerance normal-tolerance)Argument types: surface-tolerance REAL

normal-tolerance REALReturns: NoneErrors: NoneDescription: This extension controls the properties of the internal faceter of Sentaurus Structure

Editor, which is an important link between Sentaurus Structure Editor and otherSynopsys tools. When Sentaurus Structure Editor contains a model with curvedboundaries, this internal curved representation must be tessellated before a DF–ISEboundary file is generated. Two parameters control this tessellation: surface-tolerance and normal-tolerance.

surface-tolerance is an absolute number. It is the allowable maximum distancebetween the original model and tessellated output. By specifying a smaller value,the tessellated model deviates less from the original model. normal-tolerance is theallowable maximum difference between the surface normals of the original andtessellated models. Both values are global and apply to the complete model. In thecase of a thin, curved channel, the refinement based on surface-tolerance is notrecommended. It is better to control the normal-tolerance.

Limitations: None

Action: Shows the faces where the specified refinement is attached.Group: sdeSyntax: (sde:show-refinement ref-name)Argument types: ref-name REFINEMENTReturns: NoneErrors: NoneDescription: The Placements Viewer can also be used, during an interactive session, to visualize

facewise refinements.Limitations: None

218

Page 239: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Opening and saving models

sde:load-sat

sde:open-model

sde:part-load

Action: Loads a native ACIS .sat file into Sentaurus Structure Editor, with correct overlaphandling.

Group: sdeSyntax: (sde:load-sat file-name)Argument types: file-name STRINGReturns: NoneErrors: NoneDescription: The difference between part:load and sde:load-sat is that the latter handles

overlapping regions correctly, according to the active Boolean setting. If a .sat fileis loaded into the modeler, which already has some bodies defined, the overlaps areresolved according to the Boolean setting.

Limitations: None

Action: Loads a complete Sentaurus Structure Editor model.Group: sdeSyntax: (sde:open-model file-name)Argument types: file-name STRINGReturns: NoneErrors: NoneDescription: This extension is the counterpart of sde:save-model. It restores the complete state of

the modeler. First, file-name.sat is loaded if it exists. It is a native ACIS .sat filethat contains the geometric description of the model, including Ref/Eval windows,with all the attributes and contacts of Sentaurus Structure Editor that are attached. Afile-name.scm file is also loaded if it exists. This file contains all of the definedparameters. Finally, a Mesh Generation Tools command file is loaded if it exists.This file contains all refinement-related and doping-related information. Refer tothe Mesh Generation Tools User Guide.

Limitations: None

Action: Loads a native ACIS .sat file into Sentaurus Structure Editor, with correct overlaphandling.

Group: sdeSyntax: (sde:part-load file-name [loadoption])

219

Page 240: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:save-model

Argument types: file-name STRINGloadoption BOOLEAN

Returns: NoneErrors: NoneDescription: Automatic overlap control for loaded .sat or .bnd files.

A global Boolean variable, aut-overlap-control, is used to determine whether toload .sat or .bnd files with automatic overlap control. If it is #f (default value), thenewly loaded .sat or .bnd files are loaded without checking for overlaps. If it is set to#t, the newly loaded .sat or .bnd files are loaded in such a way that the defaultBoolean overlap setting will be taken into consideration and the overlaps will beresolved. (Use (sdegeo:get-default-boolean) to check the current status of theautomatic overlap-handling setting.)

Since the automatic overlap control slows down model loading considerably, it ishelpful to use the default #f value for aut-overlap-control if it is known that theloaded files contain only conformal, non-overlapping regions.

When aut-overlap-control is set to #t, the overlaps are checked and resolved withinthe loaded model.

Limitations: None

Action: Saves all information about a model.Group: sdeSyntax: (sde:save-model file-name)Argument types: file-name STRINGReturns: NoneErrors: NoneDescription: This extension performs a complex task. It calls several other functions to save the

complete model. sde:open-model is the counterpart of this function that loads themodel and restores the original model completely. It saves a native ACIS .sat file tostore the model geometry and refinement/evaluation (Ref/Eval) windows. The .sat

file stores the curved boundaries and all the attributes of Sentaurus Structure Editorthat are attached to the model. The command also saves a DF–ISE command filethat contains all refinement-related and doping-related information. A Scheme fileis also saved containing all of the defined parameters. These three files aresufficient to save and restore the complete state of the modeler. Additionally, aDF–ISE boundary file is saved. This file contains a tessellated model, so it cannotbe used to restore the complete geometric model if curved boundaries are present.

Limitations: None

220

Page 241: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:write-hsf

sdeio:readbnd

sdeio:readgrd

Action: Generates a HOOPS Stream Format (.hsf) file, which represents the model.Group: sdeSyntax: (sde:write-hsf file-name)Argument types: file-name STRINGReturns: NoneErrors: NoneDescription: The Scheme extension generates an .hsf file, which can be used for presentations

(for example, the file can be included in a Microsoft® PowerPoint presentation).The Microsoft tools require the installation of an ActiveX component, which isavailable from www.openhsf.org. The HSF representation of a geometric modelprovides a very small file, which is fast to load or to forward electronically. Formore information about the HSF initiative, visit the abovementioned website.

Limitations: None

Action: Loads a DF–ISE boundary file into Sentaurus Structure Editor.Group: sdeioSyntax: (sdeio:readbnd file-name)Argument types: file-name STRINGReturns: NoneErrors: NoneDescription: This function loads a DF–ISE boundary file into Sentaurus Structure Editor. Each

DF–ISE region element is converted to an ACIS body. For 2D models, contactattributes are attached to the corresponding edges of the ACIS model and to thecorresponding faces for 3D models. Two-dimensional regions are converted to non-uniform sheet bodies, while 3D regions are converted to manifold solids. DF–ISEmaterial properties and region names are attached as attributes to the ACIS bodies.

Limitations: None

Action: Loads a DF–ISE grid file into Sentaurus Structure Editor.Group: sdeioSyntax: (sdeio:readgrd file-name)Argument types: file-name STRINGReturns: NoneErrors: NoneDescription: This function loads a DF–ISE grid file into Sentaurus Structure Editor. It initializes

the corresponding ACIS model. Each mesh element is converted to a separate ACISbody.

221

Page 242: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdeio:read-tdr-bnd

Managing and scaling parameters

sde:define-parameter

Limitations: This function is very expensive and cannot be used to visualize DF–ISE grid files.For larger models, it generates a large ACIS model, and the performance of thegeometry operations will be prohibitive. If users want to perform geometryoperations on a DF–ISE grid file, first, the grid file should be converted to aboundary file using Mesh. (Running mesh -R -nop on a grid file will perform aboundary extraction, in such a way, that coplanar faces will be united as well.) Theextracted boundary file then can be loaded in Sentaurus Structure Editor for furthergeometry operations.

Action: Loads a TDR boundary file into Sentaurus Structure Editor.Group: sdeioSyntax: (sdeio:read-tdr-bnd file-name)Argument types: file-name STRINGReturns: NoneErrors: NoneDescription: The Scheme extension sdeio:read-tdr-bnd is analogous to the sdeio:readbnd Scheme

extension. This function loads a TDR boundary file into Sentaurus Structure Editor.Each TDR region element is converted to an ACIS body. For 2D models, contactattributes are attached to the corresponding edges of the ACIS model and to thecorresponding faces for 3D models. Two-dimensional regions are converted to non-uniform sheet bodies, while 3D regions are converted to manifold solids. DF–ISEmaterial properties and region names are attached as attributes to the ACIS bodies.

Limitations: None

Action: Defines a Scheme parameter.Group: sdeSyntax: (sde:define-parameter parameter-name value | min-value max-value)Argument types: parameter-name STRING

value REAL | STRINGmin-value REALmax-value REAL

Returns: BooleanErrors: None

222

Page 243: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:delete-parameter

sde:save-parameters

Description: The defined parameter can be used later in any Scheme command. The parametervalue can be accessed by typing parameter-name. The parameter can hold anyScheme type variable. Typically, it is a REAL or STRING type. For REAL values, twooptional values can also be added, min-value and max-value. This may be useful whenusers write a parametric script, where a given parameter can be used and modifiedonly within a certain range. If parameter-name is width, for example, width_min willcontain min-value and width_max will contain max-value. A Scheme variable can alsobe defined using the define Scheme command. The difference is that the commandsde:save-parameters saves only those Scheme variables that were defined using thesde:define-parameter Scheme extension.

Limitations: None

Action: Deletes a previously defined parameter.Group: sdeSyntax: (sde:delete-parameter parameter-name)Argument types: parameter-name STRINGReturns: BooleanErrors: NoneDescription: The parameter must be previously defined by using sde:delete-parameter.Limitations: Scheme variables that were defined simply using the define Scheme commands

cannot be accessed using sde:delete-parameter.

Action: Saves the defined parameters to a .scm file.Group: sdeSyntax: (sde:save-parameters file-name)Argument types: file-name STRINGReturns: BooleanErrors: NoneDescription: This Scheme extension saves all defined parameters (Scheme variables) that were

created using the sde:define-parameter function. The saved Scheme file can beedited and used for later sessions to restore the complete previous state of themodeler. Some information about the GUI (such as size and background color) isalso recorded.

Limitations: None

223

Page 244: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:scale-dfise-bnd

sde:round-dfise-bnd

Action: Scales DF–ISE boundary files directly.Group: sdeSyntax: (sde:scale-dfise-bnd input-file scaling-factor output-file)Argument types: input-file STRING

scaling-factor REALoutput-file STRING

Returns: BooleanErrors: NoneDescription: This extension is used to scale a DF–ISE boundary file. The function does not

initialize the data structure of Sentaurus Structure Editor. It only parses the DF–ISEboundary file, applies the uniform scaling to the vertices (multiplying the x, y and zcoordinates by scaling-factor), and saves the scaled DF–ISE boundary file. input-file is the name of the input DF–ISE boundary file (with the extension .bnd) andoutput-file specifies the name of the output DF–ISE boundary file (with the .bndextension).

Limitations: NoneExample: (sde:scale-dfise-bnd "xx.bnd" 2.0 "xxscaled.bnd")

Action: Rounds the vertex coordinates of DF–ISE boundary files directly.Group: sdeSyntax: (sde:round-dfise-bnd input-file numdigits output-file)Argument types: input-file STRING

numdigits INTEGERoutput-file STRING

Returns: BooleanErrors: NoneDescription: This extension is used to round the digits in a DF–ISE boundary file. The function

does not initialize the data structure of Sentaurus Structure Editor. It only parses theDF–ISE boundary file, applies the rounding to the vertex coordinates, and saves therounded DF–ISE boundary file. The argument input-file is the name of the inputDF–ISE boundary file (with the extension .bnd) and the argument output-filespecifies the name of the output DF–ISE boundary file (with the extension .bnd).

Limitations: NoneExample: (sde:round-dfise-bnd "xx.bnd" 8 "xxrounded.bnd")

224

Page 245: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:stripextension

Managing DATEX material attributes

sde:add-material

Action: Deletes the file extension from a string.Group: sdeSyntax: (sde:stripextension name)Argument types: name STRINGReturns: StringErrors: NoneDescription: This function locates the last dot (.) in the specified string and removes all

characters that follow. The stripped string is returned. If the input string does nothave a dot, the input string is returned.

Limitations: None

Action: Assigns the specified material and region attributes to a body.Group: sdeSyntax: (sde:add-material body material-name region-name)Argument types: body ACIS ENTITY

material-name STRINGregion-name STRING

Returns: NoneErrors: NoneDescription: This extension assigns the material and region attributes to a body. The body is

defined by the first argument. material-name must be a valid DATEX name, which isdefined in the datexcodes.txt file. material-name is assigned as a material attribute tothe body. When DF–ISE boundary output is generated, the material attribute will bethe material of the region. The region-name attribute defines the region name in theDF–ISE boundary output.

Limitations: None

225

Page 246: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Utility functions

sde:create-dialog

sde:dialog-add-input

Action: Creates a dialog box.Group: sdeSyntax: (sde:create-dialog dlg-name)Argument types: dlg-name STRINGReturns: dialog-id DialogErrors: NoneDescription: This Scheme extension creates and registers a dialog object. The dialog ID is

returned. All subsequent sde:dialog functions use this dialog ID to add input fields,a bitmap image, and an OK button to the registered dialog box. The function returnsthe dialog entity ID. (The dialog box is handled as a Scheme object.)

Limitations: NoneExample: (define dlg (sde:create-dialog "2D MOSFET DEVICE"))

Action: Adds an input field to a dialog box.Group: sdeSyntax: (sde:dialog-add-input dlgid varname inputstrfield inputtype

[default-value])Argument types: dlgid STRING DIALOG TYPE (object returned by

sde:create-dialog)varname STRINGinputstrfield STRINGinputtype STRINGdefault-value VALUE (optional; according to the inputtype field)

Returns: NoneErrors: NoneDescription: This Scheme extension adds an input field to a dialog box. The varname variable is

the Scheme variable name that is passed to the executed Scheme script.inputstrfield is displayed in the input dialog box. inputtype is the type (STRING,INTEGER, REAL).

Limitations: No default value can be assigned to the input fields and variables.Example: (sde:dialog-add-input dlg "width1" "Base Width" "real")

226

Page 247: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:dialog-add-pixmap

sde:dialog-delete

sde:dialog-ok-command

Action: Adds a bitmap image to a dialog box.Group: sdeSyntax: (sde:dialog-add-pixmap dlgid bmpfilename)Argument types: dlgid STRING DIALOG TYPE (object returned by

sde:create-dialog)bmpfilename STRING

Returns: NoneErrors: NoneDescription: This Scheme extension adds a predefined bitmap image to a dialog box. The bitmap

image must be scaled to the proper size before it is added to the dialog box.Limitations: NoneExample: (sde:dialog-add-pixmap dlg "mosfet2d.bmp")

Action: Removes a dialog box from memory.Group: sdeSyntax: (sde:dialog-delete dlgid)Argument types: dlgid STRING DIALOG TYPE (object returned by

sde:create-dialog)Returns: NoneErrors: NoneDescription: This function is used to remove a predefined dialog box from the memory.Limitations: NoneExample: (sde:dialog-delete dlg)

Action: Binds the OK button of a dialog box to a predefined Scheme function.Group: sdeSyntax: (sde:dialog-ok-command dlgid schemefnname argument-list)Argument types: dlgid STRING DIALOG TYPE (object returned by

sde:create-dialog)schemefnname STRINGargument-list STRING LIST (in double quotation marks)

Returns: NoneErrors: NoneDescription: When the OK button of the dialog box is clicked, the Scheme extension is called

with the supplied argument list.

227

Page 248: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:dialog-show

sde:display

Limitations: NoneExample:(sde:dialog-ok-command dlg "create-2d-mosfet" "width1 width2 width3 height1 height2 height3")

Action: Launches a dialog box.Group: sdeSyntax: (sde:dialog-show dlgid)Argument types: dlgid STRING DIALOG TYPE (object returned by

sde:create-dialog)Returns: NoneErrors: NoneDescription: The Scheme extension sde:dialog-show is used to launch a predefined dialog box.Limitations: NoneExample: (sde:dialog-show dlg)

Action: Displays a string in the command-line window.Group: sdeSyntax: (sde:display string)Argument types: string STRINGReturns: NoneErrors: NoneDescription: This function displays the specified string to the command-line window. A new line

character is required to send the contents of the sde:display buffer to the command-line window. This function is useful if users write their own Scheme scripts and thefunction needs to display some information.

Limitations: None

228

Page 249: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:exact-coords?

sde:fix-imprint

sde:fix-orientation

Action: Checks the status of the Exact Coordinates mode.Group: sdeSyntax: (sde:exact-coords?)Argument types: NoneReturns: BooleanErrors: NoneDescription: If exact coordinates are used, the command returns #t. If the Exact Coordinates

mode is switched off, it returns #f.Limitations: None

Action: Generates a conformal model by imprinting the model edges and faces toneighboring bodies.

Group: sdeSyntax: (sde:fix-imprint)Argument types: NoneReturns: NoneErrors: NoneDescription: The generated model must be tessellated before meshing and several different

conformity requirements must be satisfied. One of the most important requirementsis that neighboring bodies share the boundary edges (in 2D) and the boundary faces(in 3D). Before the tessellated model is generated, Sentaurus Structure Editorautomatically imprints the edges and faces of the neighboring bodies to each other.During model generation, the modeler tries to create a conformal model in eachmodeling step but several operations can destroy model conformity by mergingcollinear edges and coplanar faces. In this case, the sde:fix-imprint Schemeextension restores model conformity.

Limitations: None

Action: Modifies the orientation of 3D bodies.Group: sdeSyntax: (sde:fix-orientation)Argument types: NoneReturns: NoneErrors: None

229

Page 250: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:get-default-material

sde:gui-get-integer

Description: This extension fixes the orientation of 3D regions, with surface normals pointing‘inside’ the body. Mainly native ACIS models, generated by other CAD tools andimported as .sat files, may have this problem. Direct-geometry generationfunctions in Sentaurus Structure Editor always generate 3D bodies with positivevolume and surface normals pointing outside.

Limitations: None

Action: Returns the active DATEX material.Group: sdeSyntax: (sde:get-default-material)Argument types: NoneReturns: NoneErrors: NoneDescription: The function returns the selected DATEX material in a string. The DATEX material

can be selected from the GUI, using the material selection list or the sde:set-default-material function.

Limitations: None

Action: Displays a dialog box to define an integer variable.Group: sdeSyntax: (sde:gui-get-integer "variable-name" default-value [dialog-name])Argument types: variable-name STRING

default-value INTEGERdialog-name STRING

Returns: Integer or #fErrors: NoneDescription: The function can be used in GUI mode only. It displays a dialog box that can be

used to enter an integer variable. The variable-name is displayed. default-value isused as a default value of the variable. When the OK button is clicked, the functionreturns the entered integer, or #f if an incorrect input was given or the Cancelbutton was clicked. The optional dialog-name argument can be used to define thename of the input dialog box.

Limitations: None

230

Page 251: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:gui-get-real

sde:gui-get-string

sde:info

Action: Displays a dialog box to define a real variable.Group: sdeSyntax: (sde:gui-get-real "variable-name" default-value [dialog-name])Argument types: variable-name STRING

default-value REALdialog-name STRING

Returns: Real or #fErrors: NoneDescription: The function can be used in GUI mode only. It displays a dialog box that can be

used to enter a real variable. The variable-name is displayed. default-value is used asa default value of the variable. When the OK button is clicked, the function returnsthe entered integer, or #f if an incorrect input was given, or the Cancel button wasclicked. The optional dialog-name argument can be used to define the name of theinput dialog box.

Limitations: None

Action: Displays a dialog box to define a string variable.Group: sdeSyntax: (sde:gui-get-string "variable-name" default-value [dialog-name])Argument types: variable-name STRING

default-value STRINGdialog-name STRING

Returns: String or #fErrors: NoneDescription: The function can be used in GUI mode only. It displays a dialog box that can be

used to enter a string variable. The variable-name is displayed. default-value is usedas a default value of the variable. When the OK button is clicked, the functionreturns the entered integer, or #f if an incorrect input was given or the Cancelbutton was clicked. The optional dialog-name argument can be used to define thename of the input dialog box.

Limitations: None

Action: Returns the attributes of Sentaurus Structure Editor attached to the specified bodies.Group: sdeSyntax: (sde:info entity-list)Argument types: entity-list ENTITY LISTReturns: NoneErrors: None

231

Page 252: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:material-type

sde:pick-point-on-wp

sde:pick-two-points-on-wp

Description: This extension displays the entity number, and material and region attributes thatare attached to the body.

Limitations: None

Action: Returns the group type for the specified material.Group: sdeSyntax: (sde:material-type material-name)Argument types: material-name STRINGReturns: group-name or an empty string if the specified material is not found in the

datexcodes.txt fileErrors: NoneDescription: The function returns the group type from the datexcodes.txt file for the given

material. The group type can be Semiconductor, or Conductor, or Insulator.Limitations: None

Action: Selects a point on the view window.Group: sdeSyntax: (sde:pick-point-on-wp)Argument types: NoneReturns: PositionErrors: NoneDescription: This function is used to select a point on the view window. The global xyz-

coordinates of the selected point are returned as a position entity. The point isalways selected in the active work plane. (The function draws a cross-hair cursor onthe screen, and a horizontal and vertical line also help the positioning.) In addition,the exact coordinates and snap-to-grid options can be used together with thisfunction.

Limitations: None

Action: Selects two points on the view window.Group: sdeSyntax: (sde:pick-two-points-on-wp)Argument types: NoneReturns: Position listErrors: None

232

Page 253: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:post-message

sde:restore-cursor

sde:scale-scene

Description: This function is used to select two points on the view window. The global xyz-coordinates of the selected points are returned as a list of two position entities. Thepoints are always selected in the active work plane. (The function draws a cross-hair cursor on the screen, and a horizontal and vertical line also help thepositioning.) In addition, the exact coordinates and snap-to-grid options can be usedtogether with this function. The first point is selected by pressing the mouse button;drag to draw a line from the first point. When the mouse button is released, the twopositions are returned.

Limitations: None

Action: Launches a dialog box with a message.Group: sdeSyntax: (sde:post-message message)Argument types: message STRINGReturns: NoneErrors: NoneDescription: The Scheme extension sde:post-message displays a message to a dialog box. The

OK button of the dialog box must be clicked to cancel the message.Limitations: NoneExample: (sde:post-message "Hello World")

Action: Reverts the pointer to the default pointer.Group: sdeSyntax: (sde:restore-cursor)Argument types: NoneReturns: NoneErrors: NoneDescription: This function is used to change the pointer back to the default pointer.Limitations: None

Action: Scales the model in the view window.Group: sdeSyntax: (sde:scale-scene xs ys zs)Argument types: xs REAL

ys REALzs REAL

Returns: None

233

Page 254: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:scmwin-get-font-families

sde:scmwin-get-font-family

sde:scmwin-get-font-size

Errors: NoneDescription: The command can be used to scale the model in the view window. This is only a

view scale. The model coordinates do not change. The operation can be used tomagnify, for example, thin layers. To return to the original view, use (sde:scale-scene 1 1 1).

Limitations: None

Action: Returns the font types that can be used in the command-line window.Group: sdeSyntax: (sde:scmwin-get-font-families)Argument types: NoneReturns: StringErrors: NoneDescription: This Scheme extension is used to list the available font types that can be used in the

command-line window.Limitations: None

Action: Returns the font type of the command-line window.Group: sdeSyntax: (sde:scmwin-get-font-family)Argument types: NoneReturns: StringErrors: NoneDescription: This Scheme extension returns the font type that is used in the command-line

window.Limitations: None

Action: Returns the font size of the command-line window.Group: sdeSyntax: (sde:scmwin-get-font-size)Argument types: NoneReturns: font-size INTEGERErrors: NoneDescription: This function is used to determine the font size of the command-line window.Limitations: None

234

Page 255: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:scmwin-select-font

sde:scmwin-set-font-family

sde:scmwin-set-font-size

Action: Launches the Select Font dialog box.Group: sdeSyntax: (sde:scmwin-select-font)Argument types: NoneReturns: BooleanErrors: NoneDescription: This Scheme extension launches the Select Font dialog box, which is used to select

the font, font style, and size of the command-line window.Limitations: None

Action: Sets the font type of the command-line window.Group: sdeSyntax: (sde:scmwin-set-font-family font-type)Argument types: font-type STRINGReturns: BooleanErrors: NoneDescription: This Scheme extension is used to set the font type used in the command-line

window.Limitations: None

Action: Sets the font size of the command-line window.Group: sdeSyntax: (sde:scmwin-set-font-size font-size)Argument types: font-size INTEGERReturns: BooleanErrors: NoneDescription: This function is used to set the font size of the command-line window.Limitations: None

235

Page 256: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:scmwin-set-prefs

sde:scmwin-set-window-height

sde:scmwin-suppress-output

Action: Sets the parameters of the command-line window.Group: sdeSyntax: (sde:scmwin-set-prefs font-type font-style font-size cmdwin-height)Argument types: font-type STRING

font-style STRINGfont-size INTEGERcmdwin-height INTEGER

Returns: BooleanErrors: NoneDescription: This Scheme extension is used to set the parameters of the command-line window.

font-type specifies the command-line window font. Select sde:scmwin-get-font-families for the available fonts and sde:scmwin-get-font-family for the active setting.font-style can be used to set the actual font style.

The Scheme extension sde:scmwin-select-font launches the Select Font dialog box,which can be used to change font styles. font-size is used to set the required fontsize and cmdwin-height is used to specify the height of the command-line window.

Limitations: None

Action: Sets the height (in pixels) of the command line window.Group: sdeSyntax: (sde:scmwin-set-window-height height)Argument types: height INTEGERReturns: BooleanErrors: NoneDescription: This Scheme extension is used to set the height of the command-line window.Limitations: None

Action: Displays or hides messages in the command-line window.Group: sdeSyntax: (sde:scmwin-suppress-output bool)Argument types: bool BOOLEANReturns: NoneErrors: NoneDescription: This Scheme extension is used to display or hide messages in the command-line

window.Limitations: None

236

Page 257: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:selected-entities

sde:selected-refeval-windows

sde:selected-refinements

Action: Returns the currently active selected entities in a Scheme list.Group: sdeSyntax: (sde:selected-entities)Argument types: NoneReturns: Scheme listErrors: NoneDescription: The selection tools of the GUI (Select mode) can be used to select geometric

entities (body, face, edge, vertex). The selected entities are highlighted.Limitations: None

Action: Returns the name(s) of the currently selected Ref/Eval windows in a Scheme list.Group: sdeSyntax: (sde:selected-refeval-windows)Argument types: NoneReturns: Scheme listErrors: NoneDescription: The selection tools of the GUI (Select mode) can be used to select previously

defined Ref/Eval windows. The selected Ref/Eval windows are highlighted.Limitations: None

Action: Returns the names of the currently selected refinement windows in a Scheme list.Group: sdeSyntax: (sde:selected-refinements)Argument types: NoneReturns: Scheme listErrors: NoneDescription: The selection tools of the GUI (Select mode) can be used to select previously

defined Ref/Eval windows. The selected Ref/Eval windows are highlighted.Limitations: NoneNote: This Scheme function has been renamed sde:selected-refeval-windows, though this

old command name is still valid for backward compatibility.

237

Page 258: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:set-default-material

sde:set-rendering-mode

sde:set-selection-level

Action: Sets the active DATEX material to the specified value.Group: sdeSyntax: (sde:set-default-material datex-material)Argument types: datex-material DATEXMATReturns: NoneErrors: NoneDescription: The Scheme extension sde:set-default-material is used to change the active

DATEX material. The function argument is a string that corresponds to one of theDATEX colors, specified in the datexcodes.txt file. The function also changes theselected DATEX material in the DATEX list.

Limitations: None

Action: Sets the rendering mode.Group: sdeSyntax: (sde:set-rendering-mode rendering-mode)Argument types: rendering-mode STRINGReturns: Previous setting (string)Errors: NoneDescription: The rendering mode can be facet, wire, flat, gouraud (or alternatively, smooth), and

hidden.Limitations: None

Action: Sets the selection filter to the specified type.Group: sdeSyntax: (sde:set-selection-level filter-type)Argument types: filter-type {"body" | "face" | "edge" | "vertex" | "other"}Returns: NoneErrors: NoneDescription: This function sets the selection filter to the specified value. All subsequent selection

operations will use the specified filter to select only those entities that correspond tothe specified type.

Limitations: NoneExample: (sde:set-selection-level "edge")

238

Page 259: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sde:set-view-operator

sde:setup-grid

sde:test-entity

Action: Sets the view operator to the specified value.Group: sdeSyntax: (sde:set-view-operator op-mode)Argument types: op-mode STRINGReturns: Previous setting (string)Errors: NoneDescription: This function manipulates the toolbar, by setting the active actions to the specified

mode. The available op-mode options are orbit, zoom, pan, and select.Limitations: None

Action: Sets the basic grid parameters.Group: sdeSyntax: (sde:setup-grid x-spacing y-spacing edge-weight edge-pattern)Argument types: x-spacing REAL

y-spacing REALedge-weight INTEGERedge-pattern STRING

Returns: NoneErrors: NoneDescription: This function sets the basic parameters for the grid. x-spacing and y-spacing specify

the horizontal and vertical grid size. edge-weight specifies the line thickness andedge-pattern specifies the line pattern that is used for drawing the grid. The possiblevalues for edge-pattern are pattern strings: a solid line "---", a simple dashed line "--", a dotted line "....", dashes and dots alternating "-.-.", dashes and two-dotsalternating "-..-..", dashes and three dots alternating "-...-...", long dashes "--------", very long-dash and short-dash alternating "center", and very long-dash anddouble-short-dash alternating "phantom".

Limitations: NoneExample: (sde:setup-grid 1 1 2 "...")

(sde:show-grid #t)

Action: Returns the entity type(s).Group: sdeSyntax: (sde:test-entity entity(s))Argument types: entity(s) ACIS ENTITY | ACIS ENTITY LIST

239

Page 260: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:wait-cursor

sdegeo:curve-intersect

Returns: "unknown""solid" Solid with a positive volume (manifold)"non-manifold" Solid with 0 volume (non-manifold)"mask" Mask (same conditions as for "non-manifold", but

also the maskname attribute is defined)Errors: NoneDescription: Returns the entity type(s).Limitations: None

Action: Changes the pointer to an hourglass pointer.Group: sdeSyntax: (sde:wait-cursor)Argument types: NoneReturns: NoneErrors: NoneDescription: This function is used to change the pointer to an hourglass pointer.Limitations: None

Action: Returns the intersection positions of the specified curves.Group: sdegeoSyntax: (sdegeo:curve-intersect edge1 edge2)Argument types: edge1 EDGE

edge2 EDGEReturns: Position listErrors: NoneDescription: This Scheme extension determines the intersections between the specified curves.Limitations: NoneExample: (define e1 (edge:linear (position 0 0 0) (position 10 10 0)))

(define e2 (edge:linear (position 0 10 0) (position 10 0 0)))(sdegeo:curve-intersect e1 e2); (#[position 5 5 0])(define e3 (edge:circular (position 5 5 0) 3))(sdegeo:curve-intersect e1 e3); (#[position 7.12132034355964 7.12132034355964 0] #[position 2.87867965644036 2.87867965644036 0])

240

Page 261: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:distance

sdegeo:get-region-counter

sdegeo:point-entity-relationship

Action: Returns the distance between two vertices.Group: sdegeoSyntax: sdegeo:distance vertex-list)Argument types: vertex-list VERTEX LISTReturns: RealErrors: NoneDescription: Returns the distance between two vertices.Limitations: None

Action: Returns the region counter.Group: sdegeoSyntax: (sdegeo:get-region-counter)Argument types: NoneReturns: IntegerErrors: NoneDescription: This Scheme extension returns the valid region counter. By default, region names

are automatically assigned to the generated regions. The generated region namesare "region_%N", where %N is the region counter. The function returns %N.

Limitations: None

Action: Returns the containment relationship between a body and a point.Group: sdegeoSyntax: (sdegeo:point-entity-relationship body lposition)Argument types: body ACIS BODY

lposition POSITIONReturns: String ("inside", "boundary", "outside")Errors: NoneDescription: This Scheme extension determines the containment of the specified position with

respect to the specified body. If the body contains the specified position, thefunction returns inside. If the body lies on a face of the body, the function returnsboundary. If the point is not contained, the function returns outside.

Limitations: None

241

Page 262: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:ray-test

sort

Action: Obtains the positions where a ray intersects a solid.Group: sdegeoSyntax: (sdegeo:ray-test entity ray radius)Argument types: entity BODY

ray RAYradius REAL

Returns: ((Entity . Position) ...)Errors: NoneDescription: Returns the positions where a ray intersects a solid. This extension returns pairs.

The first element of each pair is the entity hit by the ray, and the second element ofthe pair is the position where the ray intersects the solid. The pairs are sorted alongthe direction of the ray. If the ray intersects a single face more than once, theextension returns the first intersection.The argument entity must be a solid body. The argument ray consists of a position and a direction.

Limitations: NoneExample:

; solid:ray-test; Create a solid block.(define block1 (solid:block (position 0 0 0) (position 40 40 40))); Determine where the ray intersects the solid block.(sdegeo:ray-test block1 (ray (position 10 20 60) (gvector 0 0 -1)) 0.1); ((#[face 20 1] . #[position 10 20 40]) (#[face 19 1] . #[position 10 20 0]))

(sde:clear)(define mysphere (sdegeo:create-sphere (position 5 5 10) 3 "Gold" "x2"))(sdegeo:ray-test mysphere (ray (position 5 5 20) (gvector 0 0 -1)) 0.1); ((#[face 27 1] . #[position 5 5 13]))

Action: Sorts the supplied list.Group: sdeSyntax: (sort sort-criteria sort-list)Argument types: sort-criteria <, <=, >, >= ...

sort-list LISTReturns: RealErrors: ListDescription: This Scheme extension sorts the supplied list based on the sort criteria.Limitations: NoneExample: (sort < (list 1 2 3 4 9 8 7 6))

242

Page 263: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

system:command

system:getenv

Editing boundaries

Creating entities

sde:new-region-name

Action: Executes a system command.Group: sdeSyntax: (system:command cmd)Argument types: cmd STRINGReturns: NoneErrors: NoneDescription: This extension executes a system command from the Scheme command-line

window. The command results are displayed in the UNIX window.Limitations: None

Action: Returns the value of an environment variable.Group: sdeSyntax: (system:getenv name-string)Argument types: name-string STRINGReturns: Value of the environment variable if it is found; otherwise, it returns #f Errors: NoneDescription: The argument name-string specifies the name of the environment variable.Limitations: None

Action: Returns an automatically generated region name.Group: sdeSyntax: (sde:new-region-name)Argument types: NoneReturns: NoneErrors: NoneDescription: This extension returns a region name "region_%N", where %N is the actual region

counter. If the region counter is set correctly, the sde:new-region-name functionalways returns a unique region name.

Limitations: None

243

Page 264: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sde:split-solid

sdegeo:2d-cut

Action: Splits a solid (3D body) into separate bodies.Group: sdegeoSyntax: (sde:split-solid solid-body base-position plane-normal)Argument types: solid-body SOLID

base-position POSITIONplane-normal GVECTOR

Returns: Body listErrors: NoneDescription: The new split bodies can be treated as high-level entities. They can be deleted, new

material and region properties can be assigned to them, and any geometryoperations can be applied to them that can be applied to high-level entities only. Theargument list contains solid-body, which will be split. The cut plane is defined by abase-position (that is, a position variable) and a normal vector (plane-normal), that is,a gvector variable.

Limitations: NoneExample: (sde:clear)

(define my_cube (sdegeo:create-cuboid (position -1 -1 -1) (position 1 1 1) "Silver" "xx"))(sde:split-solid my_cube (position 0 0 0) (gvector 1 1 0))(sde:split-solid my_cube (position 0 0 0) (gvector 1 -1 0))

Note: After a solid entity is split into parts, the region names will no longer be unique. Allsplit parts will have the same region name, therefore, renaming of these parts maybe necessary.

Action: Extracts a 2D cut from a 2D device.Group: sdegeoSyntax: (sdegeo:2d-cut p1 p2)Argument types: p1 POSITION

p2 POSITIONReturns: NoneErrors: NoneDescription: This function extracts a 2D rectangular part from a 2D device. The rectangle is

specified by the two opposite corners of the rectangle (p1 and p2).Limitations: None

244

Page 265: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:3d-cut

sdegeo:create-circle, sdegeo:create-circular-sheet

Action: Extracts a 2D slice from a 3D device.Group: sdegeoSyntax: (sdegeo:3d-cut base-position normal-vector)Argument types: base-position POSITION

normal-vector GVECTORReturns: NoneErrors: NoneDescription: This function extracts a 2D slice from a 3D device. The cut plane is defined by a

base point (base-position) and a normal vector to the cut plane (normal-vector). Theextension sdegeo:3d-cut transfers 3D face contacts to 2D edge contacts.

Limitations: NoneExample:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:define-contact-set "cstop" 4 (color:rgb 1 0 0) "##")(sdegeo:define-contact-set "csbottom-middle" 4 (color:rgb 1 1 0) "||") (sdegeo:define-2d-contact (find-edge-id (position 5 10 0)) "cstop")(sdegeo:insert-vertex (position 3 0 0))(sdegeo:insert-vertex (position 7 0 0))(sdegeo:set-current-contact-set "csbottom-middle")(sdegeo:define-2d-contact (find-edge-id (position 5 0 0))"csbottom-middle")(render:rebuild); 2D model containing edge contacts(sdegeo:extrude (find-face-id (position 5 5 0)) 6); 3D model containing face contacts(sdegeo:3d-cut (position 5 0 2) (gvector 0 0 1)); 2D model containing edge contacts

Action: Creates a 2D circular region.Group: sdegeoSyntax: (sdegeo:create-circle center-pos radius region-material region-name

[start-angle end-angle])Argument types: center-pos POSITION

radius REALregion-material STRINGregion-name STRINGstart-angle REALend-angle REAL

Returns: EntityErrors: None

245

Page 266: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-cone

Description: This function adds a 2D circular region to the model. The circle is defined byspecifying the center position and the radius. If the generated polygon overlapsalready existing regions, the default Boolean behavior determines the topology ofthe newly inserted region and the overlapping regions. The material attribute is setto region-material and the region attribute is set to region-name.When the optional start-angle and end-angle are specified, a circular arch isgenerated.

Limitations: NoneExample: ; Scheme Extension

(sdegeo:create-circle (position 0 0 0) 10 "Silicon" "Region_1")

Action: Creates a circular cone.Group: sdegeoSyntax: (sdegeo:create-cone {{start-axis end-axis} | {start-axis-x start-axis-y

start-axis-z end-axis-x end-axis-y end-axis-z}} base-radius top-radius[ratio=1 [position3 | {x3 y3 z3}]] region-material region-name)

Argument types: start-axis POSITIONend-axis POSITIONstart-axis-x REALstart-axis-y REALstart-axis-z REALend-axis-x REALend-axis-y REALend-axis-z REALbase-radius REALtop-radius REALratio REALposition3 POSITIONx3 REALy3 REALz3 REALregion-material STRINGregion-name STRING

Returns: EntityErrors: None

246

Page 267: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-cuboid

Description: The argument start-axis specifies the start axis position or base of the cone. Theargument end-axis specifies the end axis position or top of the cone. There are twosyntax formats available for defining these positional arguments. The first (original)syntax format defines all positional arguments by placing them in ‘position’statements enclosed in parentheses. The second syntax format defines positionalarguments without using the ‘position’ statement or the additional set ofparentheses. Otherwise, the two formats are identical. The format selected must beused for all three positional arguments. The argument base-radius specifies theradius at start-axis (must be greater than zero). The argument top-radius specifiesthe radius at end-axis (which can be zero). If the optional arguments ratio andposition3 are specified, an elliptical cone is created. If ratio is specified, the ratiobetween the major and minor axes of the ellipse is used.

If position3 (or x3, y3, and z3) is specified, the vector from the projection ofposition3 (or x3, y3, and z3) onto the axis of the cone to position3 (or x3, y3, and z3)specifies the major axis. If position3 (or x3, y3, and z3) is not specified, the majoraxis is defined by the projection of the x-axis of the active work coordinate systemonto the plane that is defined by start-axis and the vector from start-axis to end-axis.

Note that position3 cannot lie on the axis of the cone; otherwise, an error occurs. Ifthe generated body overlaps already existing regions, the default Boolean behaviordetermines the topology of the newly inserted body and the overlapping regions.The material attribute is set to region-material and the region attribute is set toregion-name.

Limitations: NoneExample:(sdegeo:create-cone (position -20 -5 -9) (position 15 20 10) 10 2 "Gold" "")(sdegeo:create-cone -20 -5 -9 5 15 7.5 10 2 3 "Silver" "")(sdegeo:create-cone -2 -5 -9 15 20 10 10 2 3 17 22 12 "Copper" "")

Action: Creates a solid block.Group: sdegeoSyntax: (sdegeo:create-cuboid diagonal1 diagonal2 region-material region-name)Argument types: diagonal1 POSITION

diagonal2 POSITIONregion-material STRINGregion-name STRING

Returns: EntityErrors: None

247

Page 268: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-cylinder

Description: The argument diagonal1 specifies the first diagonal corner and diagonal2 specifiesthe second diagonal corner. The block is oriented with respect to the current workplane. If the generated body overlaps already existing regions, the default Booleanbehavior determines the topology of the newly inserted body and the overlappingregions. The material attribute is set to region-material and the region attribute is setto region-name.

Limitations: NoneExample:(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) (sde:get-default-material) "r1")

Action: Creates a cylinder.Group: sdegeoSyntax: (sdegeo:create-cylinder {{start-pos end-pos} | {x-start y-start z-start

x-end y-end z-end}} radius [ratio=1 {position3 | {x3 y3 z3}}] region-material region-name)

Argument types: start-pos POSITIONend-pos POSITIONx-start REALy-start REALz-start REALx-end REALy-end REALz-end REALradius REALratio REALposition3 POSITIONx3 REALy3 REALz3 REALregion-material STRINGregion-name STRING

Returns: EntityErrors: None

248

Page 269: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-ellipse, sdegeo:create-elliptical-sheet

Description: The argument start-pos (or x-start, y-start, and z-start) specifies the start positionof the cylinder. The argument end-pos (or x-end, y-end, and z-end) specifies the endposition of the cylinder. There are two syntax formats available for defining thestarting and ending positions for creating a cylinder. The first (original) syntaxformat defines the positional arguments by placing them in ‘position’ statementsenclosed in parentheses. The second syntax format defines the positional argumentswithout using the ‘position’ statement or the additional set of parentheses.Otherwise, the two formats are identical. The format selected must be used for allthree positional arguments.

The argument radius specifies the radii for the base and top. If the optionalarguments ratio and position3 (or x3, y3, and z3) are specified, an elliptical cylinderis created. If ratio is specified, the ratio between the major and minor axes of theellipse is used. If position3 (or x3, y3, and z3) is specified, the vector from theprojection of position3 (or x3, y3, and z3) on to the axis of the cylinder to position3(or x3, y3, and z3) specifies the major axis. If position3 (or x3, y3, and z3) is notspecified, the major axis is defined by the projection of the x-axis of the active workcoordinate system onto the plane that is defined by position1 and the vector fromposition1 to position2.

Note that position3 cannot lie on the axis of the cylinder; otherwise, an error occurs.If the generated body overlaps already existing regions, the default Booleanbehavior determines the topology of the newly inserted body and the overlappingregions. The material attribute is set to region-material and the region attribute is setto region-name.

Limitations: NoneExample: (sde:clear)

(sdegeo:create-cylinder (position 0 0 0) (position 25 25 0) 30 "Gold" "")(sdegeo:create-cylinder 2 2 2 -20 -20 0 15 3 "Gold" "")(sdegeo:create-cylinder 2 2 2 -20 -20 0 15 3 -5 -5 0 "Gold" "")

Action: Creates a 2D ellipse.Group: sdegeoSyntax: (sdegeo:create-elliptical-sheet position1 position2 ratio lmat lreg)Argument types: position1 POSITION

position2 POSITIONratio REALlmat DATEXMATlreg STRING

Returns: Entity ID of generated ellipseErrors: None

249

Page 270: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-ellipsoid

Description: The Scheme extension sdegeo:create-elliptical-sheet can be used to create a2D elliptical region (ellipse). The first argument position1 is the center position ofthe ellipse and position2 is the end point of the major axis. The ratio argument isthe ratio of the major and minor axes. lmat is the DATEX material and lreg is theregion name. The command generates the ellipse on the active work plane, usingthe active coordinate system. The default Boolean setting is respected by thecommand.

Limitations: NoneExample:; Scheme Extension(sde:clear)(sdegeo:set-default-boolean "ABA")(sdegeo:create-elliptical-sheet (position 0 0 0) (position 10 0 0) 0.5 "PolySi" "x1")(sdegeo:create-elliptical-sheet (position 0 0 0) (position 3 0 0) 3 "Silver" "x2")(sdegeo:create-elliptical-sheet (position 0 0 0) (position 8 8 0) 0.2 "Oxide" "x3")

Action: Creates a 3D ellipsoid.Group: sdegeoSyntax: (sdegeo:create-ellipsoid position1 position2 ratio lmat lreg)Argument types: position1 POSITION

position2 POSITIONratio REALlmat STRINGlreg STRING

Returns: Entity ID of generated ellipsoidErrors: NoneDescription: This Scheme extension creates a 3D ellipsoid. The first argument position1 is the

center position of the ellipse and position2 is the end point of the major axis. Theratio argument is the ratio of the major and minor axes. lmat is the DATEX materialand lreg is the region name. The command generates the ellipse on the active workplane, using the active coordinate system. The default Boolean setting is respectedby the command.

Limitations: NoneExample:(sde:clear)(sdegeo:set-default-boolean "ABA")(isegeo:create-ellipsoid (position 0 0 0) (position 10 0 0) 0.5 "PolySi" "x1")(isegeo:create-ellipsoid (position 0 0 0) (position 3 0 0) 3 "Silver" "x2")(sdegeo:create-ellipsoid (position 0 0 0) (position 8 8 0) 0.2 "Oxide" "x3")

250

Page 271: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-linear-edge

sdegeo:create-polygon, sdegeo:create-polygonal-sheet

sdegeo:create-polyline-wire

Action: Creates a linear edge.Group: sdegeoSyntax: (sdegeo:create-linear-edge position1 position2)Argument types: position1 POSITION

position2 POSITIONReturns: Entity ID of created edgeErrors: NoneDescription: The arguments position1 and position2 specify the end positions.Limitations: None

Action: Creates a 2D polygonal region.Group: sdegeoSyntax: (sdegeo:create-polygon vertex-list region-material region-name)Argument types: vertex-list POSITION LIST

region-material STRINGregion-name STRING

Returns: NoneErrors: NoneDescription: This function adds a closed 2D polygonal region to the model. The polygon is

defined by specifying the vertex list of the polygon (either closed or not closed). Ifthe last vertex is different from the first vertex, the first vertex closes the polygon. Ifthe generated polygon overlaps already existing regions, the default Booleanbehavior determines the topology of the newly inserted region and the overlappingregions. The material attribute is set to region-material and the region attribute is setto region-name.

Limitations: None

Action: Creates a polyline wire.Group: sdegeoSyntax: (sdegeo:create-polyline-wire vertex-list)Argument types: vertex-list POSITION LISTReturns: EntityErrors: None

251

Page 272: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-prism

sdegeo:create-pyramid

Description: The function defines a wire body consisting of linear edges only. The vertexpositions of the wire are specified in the argument list as a position list. The wirebody does not have an attached material or region-name attribute and is not writtento the DF–ISE boundary output file. The wire body can be used, for example,during a sweep operation when the sweep along a wire option is used.

Limitations: None

Action: Creates a solid prism.Group: sdegeoSyntax: (sdegeo:create-prism centerposition height major-radius minor-radius

nsides region-material region-name)Argument types: centerposition POSITION

height POSITIONmajor-radius REALminor-radius REALnsides INTEGERregion-material STRINGregion-name STRING

Returns: EntityErrors: NoneDescription: This function creates an nsides-sided prism where n is greater than or equal to three.

The prism is centered about the center position with its height along the z-axis, themajor-radius along the x-axis, and the minor-radius along the y-axis. If height is zero,the resulting body consists of only one polygonal-sided sheet face, lying in the x-yplane. If the generated body overlaps already existing regions, the default Booleanbehavior determines the topology of the newly inserted body and the overlappingregions. The material attribute is set to region-material and the region attribute is setto region-name.

Limitations: NoneExample: (sdegeo:create-prism (position 0 0 0) 20 40 40 6 "PolySilicon" "")

Action: Creates a solid pyramid.Group: sdegeoSyntax: (sdegeo:create-pyramid centerposition height major-radius minor-radius

nsides top region-material region-name)Argument types: height REAL

major-radius REALminor-radius REALnsides INTEGERtop REALregion-material STRINGregion-name STRING

252

Page 273: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-rectangle

Returns: EntityErrors: NoneDescription: The number of sides (nsides) must be greater than or equal to three. The prism is

centered about the origin with its height along the z-axis, the major-radius, along thex-axis, and the minor-radius, along the y-axis. The argument top specifies the majoraxis length at the top of the pyramid. If height is zero, the resulting body consists ofonly one polygonal-sided sheet face, lying in the x-y plane. If the generated bodyoverlaps already existing regions, the default Boolean behavior determines thetopology of the newly inserted body and the overlapping regions. The materialattribute is set to region-material and the region attribute is set to region-name.

Limitations: NoneExample: (sde:clear)

(sdegeo:create-pyramid (position 0 0 0) 20 40 40 6 12 "PolySilicon" "")(sdegeo:set-default-boolean "ABA")(sdegeo:create-pyramid (position 0 0 0) 30 30 20 5 5 "Gold" "")

Action: Creates a 2D rectangular region.Group: sdegeoSyntax: (sdegeo:create-rectangle v1 v2 region-material region-name)Argument types: v1 POSITION

v2 POSITIONregion-material STRINGregion-name STRING

Returns: NoneErrors: NoneDescription: This function adds a 2D rectangle to the model. The rectangle is defined by

specifying two opposite corner vertices. If the generated rectangle overlaps withalready existing regions, the default Boolean behavior determines the topology ofthe newly inserted region and the overlapping regions. The material attribute is setto region-material and the region attribute, to region-name.

Limitations: NoneExample: (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0))

(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "sir")

253

Page 274: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-reg-polygon

sdegeo:create-ruled-region

Action: Creates a 2D regular polygonal region.Group: sdegeoSyntax: (sdegeo:create-reg-polygon v1 rad [nsides] [angle] [method]

region-material region-name)Argument types: v1 POSITION

rad REALnsides INTangle REALmethod STRINGregion-material STRINGregion-name STRING

Returns: EntityErrors: NoneDescription: This function adds a regular 2D polygonal region to the model. The regular polygon

is defined by specifying the center position of the polygon, the radius, and thenumber of segments. If the generated polygon overlaps already existing regions, thedefault Boolean behavior determines the topology of the newly inserted region andthe overlapping regions. The material attribute is set to region-material and theregion attribute is set to region-name.

The following parameters must be specified in the argument list:v1 Center of the regular polygon.rad Radius of the circle that defines the vertex points.nsides Number of sides.angle Angle [degree], counterclockwise from the x-axis and defines the ‘rotation’

of the regular polygon.method in or out; defines whether the polygon is created inside or outside of the

envelope circle.Limitations: NoneExample: ; Scheme Extension

(sdegeo:create-reg-polygon (position 0 0 0) 1 10 0 "Silicon" "region_1")

Action: Creates a 2D ruled region.Group: sdegeoSyntax: (sdegeo:create-ruled-region edge1 edge2 region-material region-name)Argument types: edge1 EDGE

edge2 EDGEregion-material DATEXMATregion-name STRING

Returns: EntityErrors: None

254

Page 275: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-sphere

Description: This function adds a 2D ruled region to the model. The ruled region is defined byspecifying to already existing edges. Edge orientation is not important, since theruled region is always created in such a way that a simply connected region iscreated. The selected edges cannot intersect each other. If the ruled region overlapsalready existing regions, the default Boolean behavior determines the topology ofthe newly inserted region and the overlapping regions. The material attribute is setto region-material and the region attribute is set to region-name.

Limitations: None

Action: Creates a sphere that is centered at a specified position.Group: sdegeoSyntax: (sdegeo:create-sphere {center-position | {center-x center-y center-z}}

radius region-material region-name)Argument types: center-position POSITION

center-x REALcenter-y REALcenter-z REALradius REALregion-material STRINGregion-name STRING

Returns: EntityErrors: NoneDescription: center-position specifies the center position of the sphere. Two syntax formats are

available for defining the center-position. The first (original) syntax format definesthe center-position by placing the xyz-coordinates in a ‘position’ statementenclosed in parentheses (as shown in the example with creating sphere1). Thesecond syntax format defines the center position xyz-coordinates without using the‘position’ statement or the additional set of parentheses (as shown in the examplewith defining sphere2 and sphere3). Otherwise, the two formats are identical. radiusdetermines the size of the sphere. If the generated body overlaps already existingregions, the default Boolean behavior determines the topology of the newly insertedbody and the overlapping regions. The material attribute is set to region-materialand the region attribute is set to region-name.

Limitations: NoneExample:(sde:clear)(define sphere1 (sdegeo:create-sphere (position -4 -4 0) 1.5 "Gold" ""))(define sphere2 (sdegeo:create-sphere -30 0 0 15 "Silver" ""))(define sphere3 (sdegeo:create-sphere 10 10 10 5 "Copper" ""))

255

Page 276: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-spline-wire

sdegeo:create-torus

Action: Creates a spline wire.Group: sdegeoSyntax: (sdegeo:create-spline-wire vertex-list)Argument types: vertex-list POSITION LISTReturns: EntityErrors: NoneDescription: The function defines a spline wire body. The vertex positions of the wire are

specified in the argument list as a position list. The wire body does not have anattached material or region-name attribute and is not written to the DF–ISEboundary output file. The wire body can be used, for example, during a sweepoperation when the sweep along a wire option is used.

Limitations: None

Action: Creates a solid torus.Group: sdegeoSyntax: (sdegeo:create-torus {center-position | {center-x center-y center-z}}

major-radius minor-radius region-material region-name)Argument types: center-position POSITION

center-x REALcenter-y REALcenter-z REALmajor-radius REALminor-radius REALregion-material STRINGregion-name STRING

Returns: EntityErrors: NoneDescription: This extension creates a solid torus of given radii centered at the origin. The torus is

defined in the x-y plane of the active coordinate system and is oriented using thenormal gvector of the active coordinate system. The argument center-positionspecifies the center location of the torus.

Two syntax formats are available for this argument. The first (original) syntaxformat defines the center-position by placing it in a ‘position’ statement enclosed inparentheses. The second format defines the xyz-coordinates of the center positionwithout using the ‘position’ statement or the additional set of parentheses.Otherwise, the two formats are identical.

256

Page 277: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:create-triangle, sdegeo:create-triangular-sheet

sdegeo:get-auto-region-naming

Description: The argument major-radius specifies the distance from the center to the spine curvelying in this plane. It is specified around a circle having the minor axis. It is swept todefine the torus. Three shapes of tori can be specified (donut, apple, or lemon)depending on the relative magnitudes of the major and minor radii. If the major-radius is greater than the minor-radius, the torus is a donut. If the major-radius ispositive, but smaller than the minor-radius, the torus is an apple. If the major-radiusis negative, the torus is a lemon. If the generated body overlaps already existingregions, the default Boolean behavior determines the topology of the newly insertedbody and the overlapping regions. The material attribute is set to region-materialand the region attribute is set to region-name.

Limitations: NoneExample: (sde:clear)

(sdegeo:create-torus (position -10 -5 -10) 7 3 "Gold" "")(sdegeo:create-torus 10 15 20 10 5 "Gold" "")

Action: Creates a 2D triangular region.Group: sdegeoSyntax: (sdegeo:create-triangle v1 v2 v3 region-material region-name)Argument types: v1 POSITION

v2 POSITIONv3 POSITIONregion-material STRINGregion-name STRING

Returns: NoneErrors: NoneDescription: This function adds a 2D triangle to the model. The triangle is defined by specifying

three vertices. If the generated triangle overlaps with already existing regions, thedefault Boolean behavior determines the topology of the newly inserted region andthe overlapping regions. The material attribute is set to region-material and theregion attribute, to region-name.

Limitations: NoneExample:(sdegeo:create-triangle (position 0 0 0) (position 1 0 0) (position 0.5 1 0) "Silicon" "sir")

Action: Returns the status of the automatic region-naming option.Group: sdegeoSyntax: (sdegeo:get-auto-region-naming)Argument types: NoneReturns: BooleanErrors: None

257

Page 278: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:get-default-boolean

sdegeo:insert-vertex

sdegeo:set-auto-region-naming

Description: This function returns #t if the automatic region-naming option is switched on. Itreturns #f if it is switched off.

Limitations: None

Action: Obtains the default Boolean behavior.Group: sdegeoSyntax: (sdegeo:get-default-boolean)Argument types: NoneReturns: StringErrors: NoneDescription: This function obtains the default Boolean behavior and returns it in a string.

Boolean_Value can be any of the predefined values: AB, ABA, BAB, ABiA, ABiB, and XX.Limitations: None

Action: Inserts a vertex in a 2D model.Group: sdegeoSyntax: (sdegeo:insert-vertex insert-position)Argument types: insert-position POSITIONReturns: NoneErrors: NoneDescription: This function inserts a vertex in a 2D model by projecting the specified insert

position to the nearest edge.Limitations: The function works only for 2D models.

Action: Switches on or off the automatic region-naming option.Group: sdegeoSyntax: (sdegeo:set-auto-region-naming on-off)Argument types: on-off BOOLEANReturns: BooleanErrors: NoneDescription: This function switches on or off the automatic region-naming option. Regions are

named using region_%d, where %d is an increasing integer.Limitations: None

258

Page 279: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:set-default-boolean

Action: Sets the default Boolean behavior.Group: sdegeoSyntax: (sdegeo:set-default-boolean boolean-value)Argument types: boolean-value STRINGReturns: StringErrors: NoneDescription: boolean-value can be any of the predefined values: AB, ABA, BAB, ABiA, ABiB, and XX.

The default behavior determines how overlapping regions are treated. When it is setto AB, the newly created regions are automatically merged (united) with all alreadyexisting overlapping regions. The merged regions inherit the DATEX material (andregion name) from the new region. ABA subtracts all overlapping regions from thealready existing regions. BAB subtracts all existing regions from the newly createdregions. The ABiA behavior is similar to the ABA behavior, except that the overlaps areseparate regions (with the DATEX material inherited from the new regions). ABiB issimilar to ABiA, except that the overlap regions inherit the DATEX material from thealready existing regions. XX allows for the creation of overlapping regions. In thiscase, users must modify the model by explicitly deleting the overlapping parts,before DF–ISE output.

Limitations: NoneExample:

(sde:clear)(sdegeo:set-default-boolean "AB")(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 3 8 0) (position 7 13 0) "PolySilicon" "region_2")(sdegeo:set-default-boolean "ABA")(sdegeo:create-rectangle (position 20 0 0) (position 30 10 0) "Silicon" "region_3")(sdegeo:create-rectangle (position 23 8 0) (position 27 13 0) "PolySilicon" "region_4")(sdegeo:set-default-boolean "BAB")(sdegeo:create-rectangle (position 40 0 0) (position 50 10 0) "Silicon" "region_5")(sdegeo:create-rectangle (position 43 8 0) (position 47 13 0) "PolySilicon" "region_6")(sdegeo:set-default-boolean "ABiA")(sdegeo:create-rectangle (position 0 20 0) (position 10 30 0) "Silicon" "region_7")(sdegeo:create-rectangle (position 3 28 0) (position 7 33 0) "PolySilicon" "region_8")(sdegeo:set-default-boolean "ABiB")(sdegeo:create-rectangle (position 20 20 0) (position 30 30 0) "Silicon" "region_9")(sdegeo:create-rectangle (position 23 28 0) (position 27 33 0) "PolySilicon" "region_10")(sdegeo:set-default-boolean "XX")(sdegeo:create-rectangle (position 40 20 0) (position 50 30 0) "Silicon" "region_11")(sdegeo:create-rectangle (position 43 28 0) (position 47 33 0) "PolySilicon" "region_12")

259

Page 280: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:set-region-counter

sdegeo:set-region-counter-aut

Managing work planes

sdegeo:define-work-plane

Action: Sets the region counter.Group: sdegeoSyntax: (sdegeo:set-region-counter counter)Argument types: counter INTEGERReturns: NoneErrors: NoneDescription: This extension sets the region counter explicitly. When the automatic region-

naming option is selected, the generated regions are numbered sequentially usingthe region counter. Regions are named automatically as Region_1, Region_2, and soon. When the region counter is set to N, the next generated region is named Region_N.

Limitations: None

Action: Automatically sets the region counter.Group: sdegeoSyntax: (sdegeo:set-region-counter-aut)Argument types: NoneReturns: NoneErrors: NoneDescription: This function is used to set the region counter automatically. The region attribute is

checked for each existing regions and if a Region_N attribute is found, the regioncounter attribute is set to the next available number N+1. When a DF–ISE boundaryfile is loaded, the sdegeo:set-region-counter-aut function is called automatically.

Limitations: None

Action: Creates a new work plane.Group: sdegeoSyntax: (sdegeo:define-work-plane wp-name origin x-axis y-axis)Argument types: wp-name STRING

origin POSITIONx-axis POSITIONy-axis POSITION

Returns: BooleanErrors: None

260

Page 281: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:delete-work-plane

sdegeo:get-active-work-plane

sdegeo:set-active-work-plane

Description: The name of the work plane is wp-name. The origin of the work plane is placed atorigin. The x-axis points towards x-axis and the y-axis points towards y-axis. The z-axis is defined by the right-hand rule. The origin must be considered when usersdefine the x-axis and y-axis.

Limitations: NoneExample:

; Define a new working plane, wp1 parallel to the global x-y plane, located at z = 1.(sdegeo:define-work-plane "wp1" (position 0 0 1) (position 1 0 1) (position 0 1 1))

Action: Deletes a work plane.Group: sdegeoSyntax: (sdegeo:delete-work-plane wp-name)Argument types: wp-name STRINGReturns: BooleanErrors: NoneDescription: This function deletes the specified work plane wp-name.Limitations: The global work plane ‘base’ is automatically created and cannot be deleted.

Action: Returns the name of the active work plane.Group: sdegeoSyntax: (sdegeo:get-active-work-plane)Argument types: NoneReturns: StringErrors: NoneDescription: This function returns the name of the active work plane.Limitations: None

Action: Sets the specified work plane as the active work plane.Group: sdegeoSyntax: (sdegeo:set-active-work-plane wp-name)Argument types: wp-name STRINGReturns: BooleanErrors: NoneDescription: This function sets the specified work plane with wp-name as the active work plane.

All subsequent geometry creation commands are applied to that work plane.Limitations: None

261

Page 282: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Managing coordinate systems

sdegeo:define-coord-sys

sdegeo:delete-coord-sys

Example:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "region_1")(sdegeo:define-work-plane "wp1" (position 0 0 1) (position 1 0 1) (position 0 1 1))(sdegeo:set-active-work-plane "wp1")(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "PolySilicon" "region_2"); view the model, by rotating the view.

Action: Creates a new coordinate system in the active work plane.Group: sdegeoSyntax: (sdegeo:define-coord-sys cs-name x-pos y-pos angle)Argument types: cs-name STRING

x-pos REALy-pos REALangle REAL

Returns: BooleanErrors: NoneDescription: If the active work plane is called awp, the newly created coordinate system is called

awp_cs-name. The origin of the new coordinate system is based at x-pos and y-pos,relative to the origin of the active work plane. The coordinate system is rotated byangle [degree]. Counterclockwise rotation is positive (looking from the positive z-axis of the active work plane).

Limitations: None

Action: Deletes the specified coordinate system.Group: sdegeoSyntax: (sdegeo:delete-coord-sys cs-name)Argument types: cs-name STRINGReturns: BooleanErrors: NoneDescription: This command deletes the specified coordinate system.Limitations: None

262

Page 283: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:set-active-coord-sys

Boolean operations

sdegeo:bool-intersect

Action: Sets the specified coordinate system as the active coordinate system.Group: sdegeoSyntax: (sdegeo:set-active-coord-sys cs-name)Argument types: cs-name STRINGReturns: BooleanErrors: NoneDescription: This command sets the specified coordinate system with cs-name as the active

coordinate system. All subsequent geometry creation commands are applied to thatcoordinate system.

Limitations: None

Action: Performs a Boolean intersection operation.Group: sdegeoSyntax: (sdegeo:bool-intersect blank-body tool-body)Argument types: blank-body ACIS BODY

tool-body ACIS BODYReturns: BooleanErrors: NoneDescription: This function intersects the blank-body from the specified list of tool bodies. The

resulting body inherits the DATEX material attribute from the blank-body. Similarly,the DF–ISE region attribute is inherited from the first entity in the body list, whichis the blank-body. This function can be applied to both 2D and 3D bodies.

Limitations: NoneExample:

(sde:clear)(sdegeo:set-default-boolean "XX")(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 5 5 0) (position 12 12 0) "PolySilicon" "region_2")(sdegeo:bool-intersect (reverse (part:entities (filter:type "solid?"))))

263

Page 284: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:bool-subtract

sdegeo:bool-unite

Action: Performs a Boolean subtraction operation.Group: sdegeoSyntax: (sdegeo:bool-subtract (list blank-body tool-body | tool-body ...))Argument types: blank-body ACIS BODY

tool-body ACIS BODYReturns: BooleanErrors: NoneDescription: This function subtracts the blank-body from the specified list of tool bodies. The

resulting body inherits the DATEX material attribute of the blank-body. Similarly,the DF–ISE region attribute is inherited from the first entity in the body list, whichis the blank-body. This function can be applied to both 2D and 3D bodies.

Limitations: NoneExample:(sde:clear)(sdegeo:set-default-boolean "XX")(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 5 5 0) (position 12 12 0) "Silicon" "region_2")(sdegeo:bool-subtract (reverse (part:entities (filter:type "solid?"))))

Action: Unites the specified bodies.Group: sdegeoSyntax: (sdegeo:bool-unite (list body body | body ...))Argument types: body ACIS BODYReturns: BooleanErrors: NoneDescription: The function performs a Boolean unite operation on the specified body list. The

newly ‘united’ body inherits the DATEX material attribute of the first body fromthe specified list of bodies. Similarly, the DF–ISE region attribute is inherited fromthe first entity in the body list. This function can be applied to both 2D and 3Dbodies.

Limitations: NoneExample:(sde:clear)(sdegeo:set-default-boolean "ABA")(sdegeo:create-rectangle (position -10 -8 0) (position -5 -3 0) "Silicon" "region_1")(sdegeo:create-rectangle (position -6 -7 0) (position 1 -4 0) "Silicon" "region_2")(sdegeo:create-rectangle (position -1 -9 0) (position 3 -3 0) "PolySilicon" "region_3")(sdegeo:create-polygon (list (position 1 -7 0) (position 5 -9 0) (position 10 -9 0) (position 11 -4 0)

(position 3 -1 0) (position 1 -7 0)) "Silver" "region_4")(sdegeo:bool-unite (reverse (part:entities (filter:type "solid?"))))

264

Page 285: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Modifying geometries

sdegeo:chamfer

Action: Performs a 3D edge or vertex chamfering operation.Group: sdegeoSyntax: (sdegeo:chamfer edge|vertex-list chamfer-dist)Argument types: edge|vertex-list EDGE LIST | VERTEX LIST

chamfer-dist REALReturns: NoneErrors: NoneDescription: This extension is used to perform edge or vertex chamferings for 3D bodies. The

edge|vertex-list contains a list of edges or vertices to be chamfered. chamfer-dist isthe chamfering distance used for the operation. The GUI can be used to select theedges to be operated on, or some other method can be used to find the edge entityIDs. For example, find-edge-id can be used to find the edge IDs.

Chamfering is a complex operation and can fail for several reasons. A commonproblem is the use of an incorrect chamfer distance, which is usually too large. Thechamfer distance must be selected so that the resulting model (after performing thechamfering operation) is physically (topologically) correct. Another typicalproblem is the incorrect selection of the edges to be chamfered. The edge|vertex-list must contain all tangent continuous edges; otherwise, the operation may fail.Chamfering changes the model topology; new faces (and edges) are created, andold faces (edges) are removed from the model. When chamfering is performed inseveral steps, the order of performing the sdegeo:chamfer operation may beimportant.

If a vertex list is specified in edge|vertex-list, all the edges that are connected inthe specified vertices will be chamfered.

Limitations: NoneExample:(sde:clear)(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silver" "region_1")(define edge1 (find-edge-id (position 5 0 0)))(sdegeo:chamfer edge1 2)(define face1 (find-face-id (position 5 5 10)))(sdegeo:chamfer (entity:edges face1) 1)(define face1 (find-face-id (position 5 0 5)))(sdegeo:chamfer (entity:edges face1) 3)

265

Page 286: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:chamfer-2d

sdegeo:delete-region

Action: Performs a 2D vertex chamfering operation.Group: sdegeoSyntax: (sdegeo:chamfer-2d vertex(s) chamfer-dist)Argument types: vertex(s) ACIS VERTEX | ACIS VERTEX LIST

chamfer-dist REALReturns: NoneErrors: NoneDescription: This command performs a chamfering operation on a specified vertex or list of

vertices. When users utilize the GUI, the chamfer-2d operation is applied to theselected entities. ((sde:selected-entities) returns the selected entity list.)

Note that when the chamfering is to be performed on a vertex (or vertices) that isshared by neighboring regions, all vertices must be added to the argument list. (Edit > Edit 2D > Chamfer)

Limitations: The chamfering distance, chamfer-dist, must be selected so that the operation doesnot result in an invalid geometry.

Example:(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(define mybody (car (reverse (part:entities))))(define myvertices (entity:vertices mybody))(sdegeo:chamfer-2d (list (list-ref myvertices 0) (list-ref myvertices 1)) 3)

Action: Deletes the specified region or regions, including Ref/Eval window bodies.Group: sdegeoSyntax: (sdegeo:delete-region body | (list body body ...))Argument types: body ACIS BODYReturns: NoneErrors: NoneDescription: This extension removes the specified body or bodies from the entity list. The body

is specified by its entity number. The specified regions are permanently removedfrom the model.

Limitations: None

266

Page 287: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:delete-refeval-window

sdegeo:extrude

sdegeo:fillet

Action: Deletes the specified region or regions, including Ref/Eval window bodies.Group: sdegeoSyntax: (sdegeo:delete-refeval-window body | (list body body ...))Argument types: body ACIS BODYReturns: NoneErrors: NoneDescription: This extension removes the specified body or bodies from the entity list. The body

is specified by its entity number. The specified regions are permanently removedfrom the model. This extension is equivalent to sdegeo:delete-region.

Limitations: None

Action: Extrudes a 2D device to a 3D model.Group: sdegeoSyntax: (sdegeo:extrude body-list extrusion-depth)Argument types: body-list ACIS BODY LIST | "all"

extrusion-depth REALReturns: NoneErrors: NoneDescription: This function takes a list of 2D bodies (specified by body-list) and extrudes them in

the positive z-direction by extrusion-depth. Instead of body-list, the keyword allcan be used, in which case, the complete model is extruded.

Limitations: NoneExample:

(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 0 10 0) (position 10 10.1 0) "Oxide" "region_2")(sdegeo:create-rectangle (position 4 10.1 0) (position 6 14 0) "PolySilicon" "region_3")(sdegeo:extrude "all" 4)

Action: Performs a 3D edge or vertex rounding operation.Group: sdegeoSyntax: (sdegeo:fillet edge|vertex-list fillet-radius)Argument types: edge|vertex-list EDGE LIST | VERTEX LIST

fillet-radius REALReturns: NoneErrors: None

267

Page 288: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:fillet-2d

Description: This extension performs edge or vertex roundings for 3D bodies. edge|vertex-listcontains a list of edges or a list of vertices to be rounded. fillet-radius is therounding radius used for the operation. The GUI can be used to select the edges thatneed to be rounded or other methods can be used to find out the edge entity IDs. Forexample, find-edge-id can be used to find the edge IDs.

Rounding is a complex operation and can fail for several reasons. A commonproblem is the use of an incorrect fillet-radius, which is usually too large. Thefillet-radius must be selected so that the resulting model (after performing thefilleting operation) is physically (topologically) correct. Another typical problem isthe incorrect selection of the edges to be filleted. The edge|vertex-list must containall tangent continuous edges if an edge list is specified; otherwise, rounding fails.Rounding changes model topology; new faces (and edges) are created and old faces(edges) are removed from the model. When rounding is performed in several steps,the order of performing the sdegeo:fillet operation may be important. The roundingemploys a constant-radius rounding for all edges in the edge|vertex-list.

Limitations: NoneExample:

(sde:clear)(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silver" "region_1")(define edge1 (find-edge-id (position 5 0 0)))(sdegeo:fillet edge1 2)(define face1 (find-face-id (position 5 5 10)))(sdegeo:fillet (entity:edges face1) 1)(define face1 (find-face-id (position 5 0 5)))(sdegeo:fillet (entity:edges face1) 3)

Action: Rounds the specified vertex or vertices.Group: sdegeoSyntax: (sdegeo:fillet-2d vertex(s) fillet-radius)Argument types: vertex(s) ACIS VERTEX | ACIS VERTEX LIST

fillet-radius REALReturns: NoneErrors: NoneDescription: This command rounds the specified vertex or list of vertices. When users utilize the

GUI, the fillet-2d operation is applied to the selected entities. ((sde:selected-entities) returns the selected entity list.)Note that when the rounding is to be performed on a vertex (or vertices) that isshared by neighboring regions, all vertices must be added to the argument list.(Edit > Edit 2D > Fillet)

Limitations: The fillet-radius must be selected so that the operation does not result in an invalidgeometry. Small roundings may result in an excessive number of small elementsduring meshing.

268

Page 289: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:mirror-selected

sdegeo:move-edge

Example:

(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(define mybody (car (reverse (part:entities))))(define myvertices (entity:vertices mybody))(sdegeo:fillet-2d (list (list-ref myvertices 0) (list-ref myvertices 1)) 3)

Action: Reflects the specified entities.Group: sdegeoSyntax: (sdegeo:mirror-selected entity-list transform [keep-flag]

[repeat-number])Argument types: entity-list ENTITY LIST

transform transform:reflectionkeep-flag BOOLEANrepeat-number INTEGER

Returns: NoneErrors: NoneDescription: The reflection data is specified through a transform, which is a

transform:reflection-type transform object.Limitations: None

Action: Moves the specified edge.Group: sdegeoSyntax: (sdegeo:move-edge entity-id gvector)Argument types: entity-id EDGE ENTITY

gvector GVECTORReturns: NoneErrors: NoneDescription: This extension is used to move the specified edge (identified by its entity ID) to a

new location. The new position of the edge is specified by a gvector.Limitations: The function can be applied only to 2D models.Example:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silver" "region_1")(define top-edge (car (find-edge-id (position 0.5 1 0))))(sdegeo:move-edge top-edge (gvector 0.2 0.2 0))

269

Page 290: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:move-vertex

sdegeo:reflect

Action: Moves the selected vertex.Group: sdegeoSyntax: (sdegeo:move-vertex entity-id new-position)Argument types: entity-id ENTITY

new-position POSITIONReturns: NoneErrors: NoneDescription: This extension is used to move the specified vertex (identified by its entity ID) to a

new location, which is given by a position entity, new-position.Limitations: The function can be applied only to 2D models.Example:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silver" "region_1")(define lower-left-vertex (car (find-vertex-id (position 0 0 0))))(sdegeo:move-vertex lower-left-vertex (position -0.2 0.2 0))

Action: Reflects the specified entities.Group: sdegeoSyntax: (sdegeo:reflect entity-list base-position base-vector keep-flag)Argument types: entity-list ENTITY LIST | "all"

base-position POSITIONbase-vector GVECTORkeep-flag BOOLEAN

Returns: NoneErrors: NoneDescription: Instead of an entity-list, the keyword all can be used. In this case, the operation is

performed on all entities. The base position that is used for the operation isspecified by base-position. base-vector is a gvector specifying the direction of thereflection. The reflect operation generates new bodies that inherit the materialproperties of the parent bodies. If the base-vector points to the x-direction, theregion names for the new regions are inherited from the parent region names and an".x" string is appended to the region names. If gvector points to the y-direction, a".y" string is appended to the region names. Similarly, for the z-direction, ".z" isused. In all other cases, ".tr" is added to the region names. The keep-flagdetermines whether the parent elements are kept. If keep-flag is #t, the parentelements are kept. If it is #f, the parent elements are deleted.

Limitations: This function is still available, but it is obsolete. Use sdegeo:mirror-selected.

270

Page 291: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:revolve

Example:

(sde:clear)(sdegeo:set-default-boolean "ABA")(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 0 10 0) (position 10 10.1 0) "Oxide" "region_2")(sdegeo:create-rectangle (position 4 10.1 0) (position 6 14 0) "PolySilicon" "region_3"); (sdegeo:extrude "all" 4)(sdegeo:reflect "all" (position 10 0 0) (gvector 1 0 0) #t)

Action: Revolves the specified entity or entities.Group: sdegeoSyntax: (sdegeo:revolve entity-list base-position base-vector angle)Argument types: entity-list ACIS ENTITY | ACIS ENTITY LIST | "all"

base-position POSITIONbase-vector GVECTORangle REAL

Returns: NoneErrors: NoneDescription: This function revolves the specified entity or entities with the specified base-

position and base-vector. The specified entity can be either a single entity or a list ofentities. Alternatively, all can be used, in which case, the complete device isrevolved. When the GUI is used, the revolve operation is applied to the selectedentities. ((sde:selected-entities) returns the selected entity list.) If no entities areselected and the GUI is used, the operation is performed for the complete model.The revolve operation is defined by a base-position and base-vector. The specifiedentity-list entities are revolved about the base-position. The axis of the revolveoperation is specified by base-vector. The revolve operation is always performedwith respect to the active coordinate system.

Limitations: When the operation is applied only to some parts of a device, overlapping regionsor gaps can be created. In this case, explicit Boolean operations must be performedon the model to avoid overlapping regions.

Example:

(sde:clear)(sdegeo:set-default-boolean "ABA")(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 0 10 0) (position 10 10.1 0) "Oxide" "region_2")(sdegeo:create-rectangle (position 4 10.1 0) (position 6 14 0) "PolySilicon" "region_3")(sdegeo:revolve "all" (position 0 0 0) (gvector 0 1 0) 90)(sdegeo:reflect "all" (position 0 0 0) (gvector -1 0 0) #t)

271

Page 292: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:rotate-selected

sdegeo:scale

Action: Rotates the specified entities.Group: sdegeoSyntax: (sdegeo:rotate-selected entity-list transform [keep-flag]

[repeat-number])Argument types: entity-list ENTITY LIST

transform transform:rotationkeep-flag BOOLEANrepeat-number INTEGER

Returns: NoneErrors: NoneDescription: The rotation data is specified through a transform, which is a transform:rotation

type transform object.Limitations: None

Action: Scales the specified entity or entities.Group: sdegeoSyntax: (sdegeo:scale entity-list scale-x scale-y | scale-z)Argument types: entity-list ACIS ENTITY | ACIS ENTITY LIST | "all"

scale-x REALscale-y REALscale-z REAL (optional)

Returns: NoneErrors: NoneDescription: This function scales the specified entity or entities with the specified scaling

factors. The specified entity can be either a single entity or a list of entities.Alternatively, all can be used, in which case, the complete device is scaled. Whenthe GUI is used, scaling is applied to the selected entities. ((sde:selected-entities)returns the selected entity list.) If no entities are selected and the GUI is used, theoperation is performed for the complete model. Scaling is defined by its xyz-components. The z-component is optional.

Note that the scale operation is always performed with respect to the activecoordinate system, that is, the xyz-values are applied in the active coordinatesystem, in the local xyz-directions. (Edit > Transform > Scale)

Limitations: When the operation is applied to only some parts of a device, overlapping regionsor gaps can be created. In this case, explicit Boolean operations must be performedon the model to avoid overlapping regions.

This function is still available, but it is obsolete. Use sdegeo:scale-selected.

272

Page 293: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:scale-selected

sdegeo:sweep

Example:

(sde:clear)(sdegeo:set-default-boolean "ABA")(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 4 8 0) (position 6 14 0) "PolySilicon" "region_2")(sdegeo:scale "all" 2 1 1)

Action: Scales the specified entities.Group: sdegeoSyntax: (sdegeo:scale-selected entity-list transform)Argument types: entity-list ENTITY LIST

transform transform:scalingReturns: NoneErrors: NoneDescription: The scaling data is specified through a transform, which is a transform:scaling type

transform object.Limitations: None

Action: Performs a sweep operation.Group: sdegeoSyntax: (sdegeo:sweep profile {path | distance | vector | axis} [sweep-options])Argument types: profile FACE

path WIRE | EDGEdistance REALvector GVECTORaxis POSITION . VECTORsweep-options SWEEP OPTIONS

Returns: EntityErrors: An error is reported if the result of the sweep operation is unsuccessful.Description: This extension creates a sheet body or solid body from a profile and a path. The

path can be defined as a path, a distance, a vector, or an axis (position and vector).The argument profile is a pointer to a face, which in turn, defines the sweepgeometry and becomes the base of the solid or the edge of the surface.

273

Page 294: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:taper-faces

Description: The argument path is a wire-body along which the profile is swept. path can bedefined as a distance if profile is a planar face. path can be defined as a vector ifrail_law is used (no twist). path can be defined as an axis (defined as position andvector) if rail_law is used (no twist).

The distance argument defines the distance to sweep along the face normal. Thevector argument defines the direction and distance to sweep. The axis argument is aposition and vector that defines the axis to revolve about. The amount to revolve iscontrolled by the sweep:angle option. sweep-options is an optional argument thatcontains the sweep-options data structure.

This data structure is created by sweep:options. If sweep-options is not specified,default sweep option values are used. The defaults are:Create a solid.Draft angle is 0.Gap type is 2 (natural).Twist angle is 0.Rail law is minimum rotation.

Limitations: None

Action: Tapers an array of faces about a point and a supplied draft vector by a given draftangle.

Group: sdegeoSyntax: (sdegeo:taper-faces face-list point normal angle)Argument types: face-list FACE LIST

point POSITIONnormal GVECTORangle REAL

Returns: BodyErrors: NoneDescription: This extension tapers the face(s) specified by face-list by the supplied draft angle

about an axis defined by the intersection between the plane of the face and a taperplane, which is defined by a point and normal given as arguments to the extension.The direction of the normal defines the direction of the angle, that is, the resultingangled plane will slope in the direction of the draft plane normal. The taper planeneed not intersect the face to be tapered and, even when it does, this intersectionneed not be an edge of the body (unlike in edge tapering). The face-list identifiesthe faces of the body to be tapered. point specifies a position on the taper plane.normal specifies the normal of the taper plane at the point specified. angle specifiesthe rotation angle in degrees.

Limitations: Only planes, cones, ruled surfaces, and previously plane-tapered surfaces (providedthe same taper plane is used) can be plane tapered.

274

Page 295: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:translate

Action: Translates the specified entity or entities.Group: sdegeoSyntax: (sdegeo:translate entity-list translate-x translate-y | translate-z)Argument types: entity-list ACIS ENTITY | ACIS ENTITY LIST | "all"

translate-x REALtranslate-y REALtranslate-z REAL (optional)

Returns: NoneErrors: NoneDescription: This function translates the specified entity or entities with the specified distance.

The specified entity can be either a single entity or a list of entities. Alternatively,all can be used, in which case, the complete device is translated. When users utilizethe GUI, the translate operation is applied to the selected entities. ((sde:selected-entities) returns the selected entity list.) If no entities are selected and the GUI isused, the operation is performed for the complete model. The translation is definedby its xyz-components. The z-component is optional.

Note that the translate operation is always performed with respect to the activecoordinate system, that is, the xyz-values are applied in the active coordinatesystem, in the local xyz-directions. (Edit > Transform > Translate)

Limitations: When the operation is applied only to some parts of a device, overlapping regionsor gaps can be created. In this case, explicit Boolean operations must be performedon the model to avoid overlapping regions.

This function is still available, but it is obsolete. Use sdegeo:translate-selected.Example:

(sde:clear)(sdegeo:set-default-boolean "ABA")(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-polygon (list (position 2 0 0) (position 3 2 0) (position 7 2 0) (position 8 0 0) position 8 -3 0) (position 7 -4 0) (position 3 -4 0) (position 2 -3 0)(position 2 0 0)) "PolySilicon" "region_2")

(sdegeo:translate "all" 1 0)(sdegeo:define-coord-sys "cs" 0 0 45)(sdegeo:set-active-coord-sys "cs")(sdegeo:translate "all" 1 0)

275

Page 296: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:translate-selected

sweep:options

Action: Translates the specified entities.Group: sdegeoSyntax: (sdegeo:translate-selected entity-list transform [keep-flag]

[repeat-number])Argument types: entity-list ENTITY LIST

transform transform:translationkeep-flag BOOLEANrepeat-number INTEGER

Returns: NoneErrors: NoneDescription: The translate data is specified through a transform, which is a transform:translation

type transform object.Limitations: None

Action: Sets the options for sdegeo:sweep.Group: sdegeoSyntax: (sweep:options "name-of-option" {value | location direction})Argument types: "name-of-option" STRING

value STRING | law | REAL | GVECTOR | ENTITY | BOOLEAN |INTEGER

location POSITIONdirection GVECTOR

Returns: sweep-optionsErrors: NoneDescription: This extension defines elements in the sweep-options data structure that are used

later for the sdegeo:sweep operation. name-of-option is a string within quotationmarks. If value is a real, it does not require delimiters. If value is a stringrepresenting a law, it should be enclosed in quotation marks. If value is a law, onlythe variable name for the law is required. Multiple pairs of name-of-option and valuecan be specified simultaneously.

The following sweep options can be used: draft_angle, gap_type, miter, rigid, andsweep_angle. The option draft_angle is a real number that represents the angle withwhich the swept profile is to draft while sweeping. Drafting has two mutuallyexclusive options: draft_angle and draft_law. The default for draft_angle is 0. Oneapplication of drafting is for molded items. As the profile is swept, the endingprofile has been offset by an equal distance, which helps with the removal of theitem from a mold. Extreme draft angles or draft laws can result in errors due to self-intersecting bodies, incomplete lateral faces (likely at corners), or unsupportedtopologies.

Limitations: None

276

Page 297: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

transform:reflection

transform:rotation

Example:

(define plist1 (list (position 0 0 0) (position 20 0 0) (position 20 20 0) (position 20 20 20)))

(define start1 (gvector 1 0 0))(define end1 (gvector 0 0 10))(define path1 (edge:spline plist1 start1 end1))(render:rebuild)(define edgelist1 (list(edge:linear (position 0 3 3) (position 0 3 -3))(edge:linear (position 0 3 -3) (position 0 -3 -3))(edge:linear (position 0 -3 -3) (position 0 -3 3))(edge:linear (position 0 -3 3) (position 0 3 3))))(define profile1 (wire-body edgelist1))(define sweep1 (sweep:law profile1 path1))

Action: Creates a transform to mirror an object through an axis.Group: sdeSyntax: (transform:reflection plane-position plane-direction)Argument types: plane-position POSITION

plane-direction GVECTORReturns: transformErrors: NoneDescription: This function is used to define a reflection transform, which can be used in

sdegeo:mirror-selected. plane-position specifies the location to mirror an object.plane-direction specifies the normal of the mirror in the plane.

Limitations: NoneExample:

(sde:clear)(define mb (sdegeo:create-rectangle (position 1 1 0) (position 2 2 0) "Silicon" "xx"))(define tr1 (transform:reflection (position 0 0 0) (gvector -1 0 0)))(set! tr1 (transform:reflection (position 0 0 0) (gvector 0 1 0)))(sdegeo:mirror-selected (part:entities (filter:type "solid?")) tr1 #t)

Action: Creates a transform to rotate an object about an axis.Group: sdeSyntax: (transform:rotation origin-position axis-direction angle)Argument types: origin-position POSITION

axis-direction GVECTORangle REAL

Returns: transformErrors: None

277

Page 298: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

transform:scaling

transform:translation

Description: This function is used to define a rotation transform, which can be used insdegeo:rotate-selected. The origin-position specifies the start location of the rotate.axis-direction specifies the axis direction of rotation. The right-hand ruledetermines the direction of the rotation. angle specifies the angle in degrees to rotatethe object.

Limitations: NoneExample:

(sde:clear)(sdegeo:create-circle (position 0 0 0) 0.1 "PolySilicon" "xx")(define mb (sdegeo:create-rectangle (position 1 1 0) (position 2 2 0) "Silicon" "xx"))(define tr1 (transform:rotation (position 0 0 0) (gvector 0 0 1) 45))(sdegeo:rotate-selected mb tr1 #t 7)

Action: Creates a scaling transform.Group: sdeSyntax: (transform:scaling x-scale [y-scale z-scale])Argument types: x-scale REAL

y-scale REALz-scale REAL

Returns: transformErrors: NoneDescription: This function is used to define a scaling transform, which can be used in

sdegeo:scale-selected. Although the extension accepts a scaling factor (x-scale, y-scale, or z-scale) 0 or less, only a positive scale factor is recommended. Whenuniform scaling is used, only the x-scale term can be supplied. In this case, all threecomponents of the gvector will be multiplied by the same x-scale factor. x-scalespecifies the scaling factor for the x-axis direction. y-scale is an optional argumentthat specifies the scaling factor for the y-axis direction. z-scale is an optionalargument that specifies the scaling factor for the z-axis direction.

Limitations: NoneExample:

(sde:clear)(define mb (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "xx"))(sdegeo:scale-selected mb tr1)(define tr1 (transform:scaling 1.0 2.0 1.0))

Action: Creates a translation transform object.Group: sdeSyntax: (transform:translation gvector)Argument types: gvector GVECTORReturns: transformErrors: None

278

Page 299: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:split-insert-device

Description: This function is used to define a translation transform, which can be used insdegeo:translate-selected.

Limitations: NoneExample:

(sde:clear)(define mb (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "xx"))(define tr1 (transform:translation (gvector 3.0 0.0 0.0)))(sdegeo:translate-selected mb tr1 #t 5)

Action: Splits the device and inserts a part between the split bodies.Group: sdegeoSyntax: (sdegeo:split-insert-device splitpos splitdir splitlength | splitmerge)Argument types: splitpos POSITION

splitdir GVECTORsplitlength REALsplitmerge BOOLEAN

Returns: BooleanErrors: NoneDescription: This function is used to split a device at a specified position and to insert a part

between the split bodies. The direction of the insertion can also be specified. Thecommand works both for 2D and 3D devices. If the splitmerge attribute is set to #t,the split faces are merged.

Limitations: NoneExample:(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "xx")(sdegeo:split-insert-device (position 0.2 0 0) (gvector 1 0 0) 0.4 #t)

(sde:clear)(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Silicon" "xx")(sdegeo:split-insert-device (position 0.2 0 0) (gvector 1 0 0) 0.4 #t)

(sde:clear)(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Silicon" "xx")(sdegeo:split-insert-device (position 0.5 0.5 0.5) (gvector 1 1 0) 0.4 #t)

(sde:clear)(sdegeo:create-sphere (position 0 0 0) 1 "Silicon" "xx")(sdegeo:split-insert-device (position 0 0 0) (gvector 1 0 0) 0.4 #t)

279

Page 300: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:extend-device

Managing contacts

sdegeo:contact-sets

Action: This function is used to extend a device around its axis-aligned perimeter.Group: sdegeoSyntax: (sdegeo:extend-device { "right" rightextension } { "left" leftextension }

{ "top" topextension } { "bottom" bottomextension })Argument types: "right" KEYWORD

rightextension REAL"left" KEYWORDleftextension REAL"top" KEYWORDtopextension REAL"bottom" KEYWORDbottomextension REAL

Returns: BooleanErrors: NoneDescription: This function is used to extend a device around its axis-aligned perimeter. The

keywords specify the direction of the extension. At least one of the keywords mustbe used in the argument list. More than one keyword can be used together with theactual extension distance. If an extension is defined around a corner (for example,both "top" and "right" are specified), then the rounded corner will also be filled.The region names of the extended strips will be derived from the original regionnames. The extended sides must be axis aligned.

Limitations: The command can be used only for 2D devices.Example:(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 1 0.2 0) "Silicon" "xx1")(sdegeo:create-rectangle (position 0 0.2 0) (position 1 0.3 0) "Copper" "xx2")(sdegeo:create-rectangle (position 0 0.3 0) (position 1 0.6 0) "Silver" "xx3")(sdegeo:create-rectangle (position 0 0.6 0) (position 1 0.7 0) "PolySi" "xx4")(sdegeo:extend-device "right" 0.3 "top" 0.2)

Action: Returns the names of all the defined contact sets.Group: sdegeoSyntax: (sdegeo:contact-sets)Argument types: NoneReturns: A Scheme list that contains the names of the defined contact setsErrors: NoneDescription: This function returns the names of all the defined contact sets.Limitations: None

280

Page 301: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:define-2d-contact

sdegeo:define-3d-contact

sdegeo:define-3d-contact-by-polygon

Action: Defines a named 2D contact for a specified edge or list of edges.Group: sdegeoSyntax: (sdegeo:define-2d-contact entity-list name)Argument types: entity-list EDGE | EDGE LIST

name STRINGReturns: NoneErrors: An error occurs if entity-list is not an EDGE or a list of (at least) one EDGE, or name is

not an already defined contact set.Description: Defines a named 2D contact for a specified edge or list of edges.Limitations: NoneExample:

(sdegeo:define-2d-contact (sde:selected-entities) (sdegeo:get-current-contact-set))

Action: Defines a named 3D contact for a specified face or list of faces.Group: sdegeoSyntax: (sdegeo:define-3d-contact entity-list name)Argument types: entity-list FACE | FACE LIST

name STRINGReturns: NoneErrors: An error occurs if entity-list is not a FACE or a list of (at least) one FACE, or name is

not an already defined contact set.Description: This command adds a ‘3D contact’ attribute to a specified face list.Limitations: NoneExample:

(sdegeo:define-3d-contact (sde:selected-entities) (sdegeo:get-current-contact-set))

Action: Defines a 3D face contact by a polygon.Group: sdegeoSyntax: (sdegeo:define-3d-contact-by-polygon pos-list dir-vector contact-name)Argument types: pos-list POSITION LIST

dir-vector GVECTORcontact-name STRING

Returns: NoneErrors: None

281

Page 302: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:define-contact-set

Description: This function imprints a general polygon wire to an existing body. The imprintedwire splits the faces of the body. This function can be used to define a polygonalcontact area. The imprint functions split faces to surface patches. After the facesplit, the newly created face patches to be marked as contacts must be identified.During the assignment of contacts, these face ID numbers can be used explicitly.pos-list contains the vertices of the imprinted polygon. The polygon must be closedto imprint it, so the first position must be repeated as the last position. dir-vectorspecifies the direction in which the polygon is projected for the imprint step.contact-name specifies the name of the contact set.

Limitations: NoneExample:

(sde:clear)(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "region_1")(sdegeo:define-contact-set "demo" 4 (color:rgb 1 0 0) "##")(sdegeo:set-current-contact-set "demo")(sdegeo:define-3d-contact-by-polygon (list (position 1 1 10)(position 5 1 10) (position 5 5 10) (position 3 2 10) (position 1 5 10) (position 1 1 10))(gvector 0 0 -1) "demo")

Action: Defines a contact set name and initializes the supporting data.Group: sdegeoSyntax: (sdegeo:define-contact-set name [edgeThickness] [edgeColor]

[facePattern])Argument types: name STRING

edgeThickness REAL NUMBER (default is 4.0)edgeColor rgb_color Default is rgb_color(1.0,0.0,0.0)facePattern STRING, can be one of (default is "##"): "solid",

"##", "||", "==", "//", "::", "", "[] []"Returns: UnspecifiedErrors: NoneDescription: The last three arguments are optional and can be given in any order. If the contact

set name is already defined, the existing contact set is replaced by the newdefinition. The Contact Sets button of the GUI is used to display the correspondingContact Set dialog box, which can be used to define the arguments interactively. (Device > Contacts > Contact Sets)

Limitations: NoneExample: (sdegeo:define-contact-set "Drain")

(sdegeo:define-contact-set "Source" 4.0 (color:rgb 1.0 0.0 0.0) "##")

282

Page 303: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:delete-contact-boundary-edges

sdegeo:delete-contact-boundary-faces

sdegeo:delete-contact-edges

Action: Removes the active contact set attribute from all edges of the specified regions.Group: sdegeoSyntax: (sdegeo:delete-contact-boundary-edges entity-list)Argument types: entity-list ENTITY LISTReturns: NoneErrors: NoneDescription: This command deletes the current contact set attributes from all edges of the

selected body or bodies. Alternatively, a body or body list can be given in theargument list. Only the active contacts are removed.

Limitations: None

Action: Deletes a contact attribute from all faces of the specified body or bodies.Group: sdegeoSyntax: (sdegeo:delete-contact-boundary-faces [body-list])Argument types: body-list ENTITY LISTReturns: NoneErrors: NoneDescription: This function is used to remove a contact attribute from all faces of each specified

body in body-list. If the argument list is empty and body-list is not defined, thefunction takes the body or bodies from (sde:selected-entities). The active contactset name is taken to specify the contacts. Alternatively, to the selected faces, a facelist can be given explicitly in the argument list.

Limitations: NoneExample:

(sde:clear)(sdegeo:define-contact-set "xx" 4.0 (color:rgb 1 0 0) "##")(sdegeo:set-current-contact-set "xx")(define mycube (sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "PolySilicon""region_1"))

(sdegeo:set-contact-boundary-faces mycube)(sdegeo:delete-contact-boundary-faces mycube)

Action: Deletes the current contact set attributes from the selected edges.Group: sdegeoSyntax: (sdegeo:delete-contact-edges entity-list)Argument types: entity-list ENTITY LISTReturns: NoneErrors: None

283

Page 304: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:delete-contact-faces

sdegeo:delete-contact-set

sdegeo:get-contact-edgelist

Description: Deletes the current contact set attributes from the selected edges. Alternatively, anedge or edge list can be given in the argument list. Only the active contacts areremoved. (Device > Contacts > Unset Edge(s))

Limitations: None

Action: Removes the contact attribute from specified faces.Group: sdegeoSyntax: (sdegeo:delete-contact-faces [face-list])Argument types: face-list ENTITY LISTReturns: NoneErrors: NoneDescription: This function removes a contact attribute from faces. If the argument list is empty

and face-list is not defined, the function takes the faces from (sde:selected-entities). The name of the active contact set is taken to specify the contacts.Alternatively, to the selected faces, a face list can be given explicitly in theargument list.

Limitations: None

Action: Deletes the specified contact set.Group: sdegeoSyntax: (sdegeo:delete-contact-set)Argument types: NoneReturns: NoneErrors: NoneDescription: Deletes the specified contact set and removes the corresponding contact attributes

(either ‘2D contact’ or ‘3D contact’).Limitations: None

Action: Returns the edges that have the specified contact set as ‘2D contact’ attributes.Group: sdegeoSyntax: (sdegeo:get-contact-edgelist contact-set-name)Argument types: contact-set-name STRINGReturns: Edge listErrors: None

284

Page 305: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:get-contact-facelist

sdegeo:get-current-contact-set

sdegeo:imprint-circular-wire

Description: This function returns all edges that have the specified contact set name attached as a‘2D contact’ attribute (sdegeo:get-contact-edgelist csetname). csetname is the nameof the contact set.

Limitations: None

Action: Returns the faces that have the specified contact set as ‘3D contact’ attributes.Group: sdegeoSyntax: (sdegeo:get-contact-facelist contact-set-name)Argument types: contact-set-name STRINGReturns: Face listErrors: NoneDescription: This function returns all faces that have the specified contact set name attached as a

‘3D contact’ attribute (sdegeo:get-contact-edgelist csetname). csetname is the nameof the contact set.

Limitations: None

Action: Returns the name of the current (active) contact set.Group: sdegeoSyntax: (sdegeo:get-current-contact-set)Argument types: NoneReturns: Returns the name (string) of the current (active) contact setErrors: NoneDescription: The function returns the name of the current (active) contact set.Limitations: NoneExample: (sdegeo:define-contact-set "Drain")

(sdegeo:define-contact-set "Source" 4.0 (color:rgb 1.0 0.0 0.0) "##")(sdegeo:set-current-contact-set "Drain")(sdegeo:get-current-contact-set)

Action: Splits existing boundary faces by imprinting a circular wire to the model.Group: sdegeoSyntax: (sdegeo:imprint-circular-wire center-position radius)Argument types: center-position POSITION

radius REALReturns: NoneErrors: None

285

Page 306: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:imprint-polygonal-wire

sdegeo:imprint-rectangular-wire

Description: This function imprints a circular wire to an existing body. The imprinted wire splitsthe faces of the existing bodies. This function can be used to prescribe a circularcontact area. The imprint functions split existing faces to surface patches. After theface split, the newly created face patches to be marked as contacts must beidentified. During the assignment of contacts, these face ID numbers can be usedexplicitly. center-position is used to define the center of the circular wire body andradius specifies the radius of the circular patch.

Limitations: None

Action: Splits existing boundary faces by imprinting a polygonal wire to the model.Group: sdegeoSyntax: (sdegeo:imprint-polygonal-wire vertex-list)Argument types: vertex-list POSITION LISTReturns: NoneErrors: NoneDescription: This function imprints a polygonal wire to an existing body. The imprinted wire

splits the faces of the existing body. This function can be used to prescribe apolygonal contact area. The imprint functions split existing faces to surface patches.After the face split, the newly created face patches to be marked as contacts must beidentified. During the assignment of contacts, these face ID numbers can be usedexplicitly. vertex-list contains the vertices of the imprinted polygon. The polygonmust be closed to imprint it, so the first position must be repeated as the lastposition.

Limitations: None

Action: Splits existing boundary faces by imprinting a rectangular wire to the model.Group: sdegeoSyntax: (sdegeo:imprint-rectangular-wire position1 position2)Argument types: position1 POSITION

position2 POSITIONReturns: NoneErrors: NoneDescription: This function imprints a rectangular wire to an existing body. The imprinted wire

splits the faces of the existing body. This function can be used to prescribe arectangular contact area. The imprint functions split existing faces to surfacepatches. After the face split, the newly created face patches to be marked as contactsmust be identified. During the assignment of contacts, these face ID numbers can beused explicitly. position1 and position2 define the two opposite corners of theimprinted rectangular body.

Limitations: None

286

Page 307: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:imprint-triangular-wire

sdegeo:set-contact-boundary-edges

sdegeo:set-contact-boundary-faces

Action: Splits existing boundary faces, by imprinting a triangular wire to the model.Group: sdegeoSyntax: (sdegeo:imprint-triangular-wire position1 position2 position3)Argument types: position1 POSITION

position2 POSITIONposition3 POSITION

Returns: NoneErrors: NoneDescription: This function imprints a triangular wire to an existing body. The imprinted wire

splits the faces of the existing body. This function can be used to prescribe atriangular contact area. The imprint functions split existing faces to surface patches.After the face split, the newly created face patches to be marked as contacts must beidentified. During the assignment of contacts, these face ID numbers can be usedexplicitly. position1, position2, and position3 define the three vertices of theimprinted triangular wire.

Limitations: None

Action: Attaches the name of the active contact set to all edges of a specified body.Group: sdegeoSyntax: (sdegeo:set-contact-boundary-edges entity-list)Argument types: entity-list ENTITY LISTReturns: NoneErrors: NoneDescription: This command defines all edges of a selected region or regions as contacts, using

the name of the active contact set and the selected entities (sde:selected-entities).Alternatively, an entity list can be specified in the argument list. In this case,(sde:selected-entities) is ignored and the edge list is extracted from the specifiedentity list. (Device > Contacts > Set Region Boundary Edges)

Limitations: None

Action: Attaches a contact attribute to all faces of the specified body or bodies.Group: sdegeoSyntax: (sdegeo:set-contact-boundary-faces [body-list])Argument types: body-list ENTITY LISTReturns: NoneErrors: None

287

Page 308: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:set-contact-edges

sdegeo:set-contact-faces

Description: This function is used to attach a contact attribute to each face of the specified bodyor bodies. If the argument list is empty and body-list is not defined, the functiontakes the bodies from (sde:selected-entities). The name of the active contact set istaken to specify the contacts. Alternatively, to the selected faces, a face list can begiven explicitly in the argument list.

Limitations: NoneExample:

(sde:clear)(sdegeo:define-contact-set "xx" 4.0 (color:rgb 1 0 0) "##")(sdegeo:set-current-contact-set "xx")(define mycube (sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "PolySilicon""region_1"))

(sdegeo:set-contact-boundary-faces mycube)

Action: Marks the specified edges as contacts.Group: sdegeoSyntax: (sdegeo:set-contact-edges edge-list contact-set-name)Argument types: edge-list ENTITY LIST

contact-set-name REALReturns: NoneErrors: NoneDescription: This function marks all edges in edge-list as contacts. contact-set-name specifies the

contact set to which the contact edges will belong. The specified contact set must bepredefined. When the GUI is used to add contact attributes to the edges, the selectedentities are used to initialize edge-list. (sde:selected-entities) returns the edgesthat were previously selected (and that are highlighted) from the GUI as contacts.The contact set name is the active contact set name. (Device > Contacts > Set Edge(s))

Limitations: None

Action: Attaches a contact attribute to specified faces.Group: sdegeoSyntax: (sdegeo:set-contact-faces [face-list])Argument types: face-list ENTITY LISTReturns: NoneErrors: None

288

Page 309: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:set-contact-faces-by-polygon

Description: This function attaches a contact attribute to faces. If the argument list is empty andface-list is not defined, the function takes the faces from (sde:selected-entities).The name of the active contact set is taken to specify the contacts. Alternatively, tothe selected faces, a face list can be given explicitly in the argument list. (Device > Contacts > Set Face(s))

Limitations: None

Action: Attaches a ‘3D contact’ attribute to specified polygons.Group: sdegeoSyntax: (sdegeo:set-contact-faces-by-polygon polygon-list normal-list

contact-set-name)Argument types: polygon-list POLYGON LIST (a polygon is a POSITION list)

normal-list GVECTOR LISTcontact-set-name STRING

Returns: NoneErrors: NoneDescription: This function provides an alternative way to prescribe contacts. It can be used to

attach a contact attribute to only a part of an existing face (or list of faces). Thespecified polygons are imprinted on the faces of the existing model. After theimprint operation, the original faces are split and the contact attribute is attached tothe imprinted face segment. A normal vector must be specified for each face tomark the direction of the imprint.

Limitations: None

289

Page 310: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:set-current-contact-set

Example:

; to define a polygonal contact region use sde:define-contact; which is a list of polygons. (a polygon is a list of 3d vertices); example:(sde:clear)(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "r1")(sdegeo:define-contact-set "c1" 4.000000 (color:rgb 1.000000 0.000000 0.000000) "##")(sdegeo:define-contact-set "c2" 4.000000 (color:rgb 1.000000 0.000000 0.000000) "==")(sdegeo:define-contact-set "c3" 4.000000 (color:rgb 1.000000 0.000000 0.000000) "//")(sdegeo:set-current-contact-set "c1")(sdegeo:set-contact-faces-by-polygon (list (list (position 8 7 10) (position 9 8 10) (position 8 9 10)

(position 7 8 10) (position 8 7 10))) (list (gvector 0 0 -1)) "c1")(sdegeo:set-contact-faces-by-polygon (list (list (position 0 0 0) (position 2 0 0) (position 2 3 0)

(position 0 3 0) (position 0 0 0))) (list (gvector 0 0 1)) "c2")(sdegeo:set-contact-faces-by-polygon (list (list (position 0 5 2) (position 0 8 5) (position 0 5 8) (position 0 2 5)) (list (position 10 5 2) (position 10 8 5) (position 10 5 8) (position 10 2 5)))

(list (gvector 1 0 0) (gvector -1 0 0)) "c3")(sdegeo:set-contact-faces-by-polygon (list (list (position 0 5 2) (position 0 8 5) (position 0 5 8) (position 0 2 5)) (list (position 10 5 2) (position 10 8 5) (position 10 5 8) (position 10 2 5)))

(list (gvector 1 0 0) (gvector -1 0 0)) "c3")

Action: Sets the name of the current (active) contact set.Group: sdegeoSyntax: (sdegeo:set-current-contact-set csName)Argument types: csName STRING (name of the contact set)Returns: Returns the name of the previously defined contact setErrors: NoneDescription: This function sets the name of the current (active) contact to the specified contact

set. An error occurs if the specified contact set is not yet defined.Limitations: NoneExample: (sdegeo:define-contact-set "Drain")

(sdegeo:define-contact-set "Source" 4.0 (color:rgb 1.0 0.0 0.0) "##")(sdegeo:set-current-contact-set "Drain")

290

Page 311: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

set-interface-contact

Managing doping and refinement

Managing placement views

sdedr:hide-mbox

Action: Marks the common faces of two regions as contacts.Group: sdegeoSyntax: (set-interface-contact region1 region2 contact-name)Argument types: region1 STRING

region2 STRINGcontact-name STRING

Returns: NoneErrors: NoneDescription: This function attaches a contact attribute to the common faces of the specified

regions.Limitations: The command works in 3D only.Example:(sde:clear)(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "mb1")(sdegeo:create-sphere (position 10 10 0) 4 "PolySilicon" "mb2")(sdegeo:define-contact-set "ifcontact" 4 (color:rgb 1 0 0) "##")(set-interface-contact "mb1" "mb2" "ifcontact")

Action: Hides the specified multiboxes.Group: sdedrSyntax: (sdedr:hide-mbox mbox-list)Argument types: mbox-list STRING LISTReturns: NoneErrors: NoneDescription: This command displays the specified multiboxes.Limitations: None

291

Page 312: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdedr:hide-profile

sdedr:hide-refinement

sdedr:hide-rewin

Action: Hides the specified analytic doping profiles.Group: sdedrSyntax: (sdedr:hide-profile profile-list)Argument types: profile-list STRING LISTReturns: NoneErrors: NoneDescription: This command hides the specified analytic doping profiles.Limitations: None

Action: Hides the specified refinements.Group: sdedrSyntax: (sdedr:hide-refinement refinement-list)Argument types: refinement-list STRING LISTReturns: NoneErrors: NoneDescription: This command hides the specified refinements.Limitations: NoneExample:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 4 10 0) (position 6 12 0) "PolySilicon" "region_2")(sdedr:define-refinement-size "ref1" 2 2 2 1 1 1)(sdedr:define-refinement-region "ref1" "ref1" "region_1")(sdedr:show-refinement "ref1")(sdedr:hide-refinement "ref1")

Action: Hides the specified reference/evaluation window or windows.Group: sdedrSyntax: (sdedr:hide-rewin rewin-list)Argument types: rewin-list STRING LISTReturns: NoneErrors: NoneDescription: This command hides the specified reference/evaluation window or windows.Limitations: None

292

Page 313: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdedr:show-mbox

sdedr:show-profile

sdedr:show-refinement

Example:

(sdedr:define-refeval-window "N1" "Rectangle" (position 0 0 0) (position 1 1 0))(sdedr:define-refeval-window "N2" "Rectangle" (position 2 0 0) (position 3 1 0))(sdedr:define-refeval-window "N3" "Rectangle" (position 4 0 0) (position 5 1 0))(sdedr:define-refeval-window "N4" "Rectangle" (position 0 2 0) (position 1 3 0))(sdedr:define-refeval-window "N5" "Rectangle" (position 2 2 0) (position 3 3 0))(sdedr:define-refeval-window "N6" "Rectangle" (position 4 2 0) (position 5 3 0))(sdedr:define-refeval-window "N7" "Rectangle" (position 0 4 0) (position 1 5 0))(sdedr:define-refeval-window "N8" "Rectangle" (position 2 4 0) (position 3 5 0))(sdedr:define-refeval-window "N9" "Rectangle" (position 4 4 0) (position 5 5 0))(sdedr:hide-rewin (list "N1" "N2" "N3" "N4" "N5" "N6" "N7" "N8" "N9"))(sdedr:show-rewin "N1")(sdedr:show-rewin (list "N2" "N3" "N4"))

Action: Displays the specified multiboxes.Group: sdedrSyntax: (sdedr:show-mbox mbox-list)Argument types: mbox-list STRING LISTReturns: NoneErrors: NoneDescription: This command displays the specified multiboxes.Limitations: None

Action: Displays the specified analytic doping profiles.Group: sdedrSyntax: (sdedr:show-profile profile-list)Argument types: profile-list STRING LISTReturns: NoneErrors: NoneDescription: This command displays the specified analytic doping profiles.Limitations: None

Action: Displays the specified refinements.Group: sdedrSyntax: (sdedr:show-refinement refinement-list)Argument types: refinement-list STRING LISTReturns: NoneErrors: None

293

Page 314: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdedr:show-rewin

Description: This command displays the specified refinements.Limitations: NoneExample:

(sde:clear)(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")(sdegeo:create-rectangle (position 4 10 0) (position 6 12 0) "PolySilicon" "region_2")(sdedr:define-refinement-size "ref1" 2 2 2 1 1 1)(sdedr:define-refinement-region "ref1" "ref1" "region_1")(sdedr:show-refinement "ref1")

Action: Displays the specified reference/evaluation (Ref/Eval) window or windows.Group: sdedrSyntax: (sdedr:show-rewin rewin-list)Argument types: rewin-list STRING LISTReturns: NoneErrors: NoneDescription: This command displays the specified reference/evaluation window or windows.Limitations: NoneExample:

(sdedr:define-refeval-window "N1" "Rectangle" (position 0 0 0) (position 1 1 0))(sdedr:define-refeval-window "N2" "Rectangle" (position 2 0 0) (position 3 1 0))(sdedr:define-refeval-window "N3" "Rectangle" (position 4 0 0) (position 5 1 0))(sdedr:define-refeval-window "N4" "Rectangle" (position 0 2 0) (position 1 3 0))(sdedr:define-refeval-window "N5" "Rectangle" (position 2 2 0) (position 3 3 0))(sdedr:define-refeval-window "N6" "Rectangle" (position 4 2 0) (position 5 3 0))(sdedr:define-refeval-window "N7" "Rectangle" (position 0 4 0) (position 1 5 0))(sdedr:define-refeval-window "N8" "Rectangle" (position 2 4 0) (position 3 5 0))(sdedr:define-refeval-window "N9" "Rectangle" (position 4 4 0) (position 5 5 0))(sdedr:hide-rewin (list "N1" "N2" "N3" "N4" "N5" "N6" "N7" "N8" "N9"))(sdedr:show-rewin "N1")(sdedr:show-rewin (list "N2" "N3" "N4"))

294

Page 315: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

General command file functions

sdedr:read-cmd-file

sdedr:set-meshing-engine

sdedr:set-title

Action: Loads a DF–ISE command file.Group: sdedrSyntax: (sdedr:read-cmd-file cmd-file-name)Argument types: cmd-file-name STRINGReturns: NoneErrors: NoneDescription: This command parses a specified DF–ISE command file and initializes the doping-

related and refinement-related data structures in Sentaurus Structure Editor. Thecommand file entities can be visualized using the Placements Viewer. Thecommand file entities can be manipulated by using the sdedr Scheme extensions orthe Sentaurus Structure Editor GUI menus.

Limitations: None

Action: Sets the name of the meshing engine.Group: sdedrSyntax: (sdedr:set-meshing-engine meshing-engine)Argument types: meshing-engine STRINGReturns: NoneErrors: NoneDescription: This command sets the name of the meshing engine that is written to the Control

section of the command file. The implemented meshing engines are Mesh (mesh),Noffset3D (noffset), and Sentaurus Mesh (snmesh).

Limitations: None

Action: Sets the title of the command file.Group: sdedrSyntax: (sdedr:set-title cmd-file-title)Argument types: cmd-file-title STRINGReturns: NoneErrors: NoneDescription: Information is written to the Title section of the command file. If this function is

not called explicitly, the title of the command file is set to Untitled.Limitations: None

295

Page 316: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdedr:write-cmd-file

sdedr:write-scaled-cmd-file

sdedr:append-cmd-file

Action: Writes a DF–ISE mesh command file.Group: sdedrSyntax: (sdedr:write-cmd-file cmd-file-name)Argument types: cmd-file-name STRINGReturns: NoneErrors: NoneDescription: This command writes all doping-related and refinement-related data to the specified

command file. The command file can be used during a subsequent meshing action,together with the generated boundary file. By using a command file, users cancontrol, for example, local mesh refinements during meshing.

Limitations: None

Action: Writes a DF–ISE mesh command file (after scaling some dimensions).Group: sdedrSyntax: (sdedr:write-scaled-cmd-file cmd-file-name scaling-factor)Argument types: cmd-file-name STRING

scaling-factor REALReturns: NoneErrors: NoneDescription: This extension writes all doping-related and refinement-related data to the specified

command file, which can be used during a subsequent meshing action, togetherwith the generated boundary file. By using a command file, users can control, forexample, local mesh refinements, during meshing.

All position and length parameters are multiplied by scaling-factor. All gradientparameters are divided by scaling-factor.

Limitations: None

Action: Appends a text file to a DF–ISE mesh command file.Group: sdedrSyntax: (sdedr:append-cmd-file file-name)Argument types: file-name STRINGReturns: NoneErrors: None

296

Page 317: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Clearing doping and refinement

sdedr:clear

sdedr:clear-multibox-definitions

sdedr:clear-multibox-placements

Description: This command appends a text file to the end of a mesh command file. The meshcommand file is not created by this command. Users must call sdedr:write-cmd-file after sdedr:append-cmd-file to create the mesh command file.

Limitations: None

Action: Clears the doping and refinement container class.Group: sdedrSyntax: (sdedr:clear)Argument types: NoneReturns: NoneErrors: NoneDescription: This command clears all doping-related and refinement-related data from Sentaurus

Structure Editor. A subsequent sdedr:write-cmd-file call creates an empty commandfile. (Mesh > Clear All > Profiles and Definitions)

Limitations: None

Action: Deletes all multibox definition–related data.Group: sdedrSyntax: (sdedr:clear-multibox-definitions)Argument types: NoneReturns: NoneErrors: NoneDescription: This command deletes all multibox definition–related data from the doping and

refinement container. (Mesh > Clear All > Multibox Definitions)Limitations: None

Action: Deletes all multibox placement–related data.Group: sdedrSyntax: (sdedr:clear-multibox-placements)Argument types: NoneReturns: NoneErrors: None

297

Page 318: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdedr:clear-profile-definitions

sdedr:clear-profile-placements

sdedr:clear-ref-windows

Description: This command deletes all multibox placement–related data from the doping andrefinement container. (Mesh > Clear All > Multibox Placements)

Limitations: None

Action: Deletes all profile definition–related data.Group: sdedrSyntax: (sdedr:clear-profile-definitions)Argument types: NoneReturns: NoneErrors: NoneDescription: This command deletes all profile definition–related data from the doping and

refinement container. (Mesh > Clear All > Profile Definitions)Limitations: None

Action: Deletes all profile placement–related data.Group: sdedrSyntax: (sdedr:clear-profile-placements)Argument types: NoneReturns: NoneErrors: NoneDescription: This command deletes all profile placement–related data from the doping and

refinement container. (Mesh > Clear All > Profile Placements)Limitations: None

Action: Deletes all defined reference/evaluation windows.Group: sdedrSyntax: (sdedr:clear-ref-windows)Argument types: NoneReturns: NoneErrors: NoneDescription: This command deletes all previously defined refinement/evaluation windows from

the database. (Mesh > Clear All > Ref/Eval Windows)Limitations: None

298

Page 319: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdedr:clear-refinement-definitions

sdedr:clear-refinement-placements

Action: Deletes all refinement definition–related data.Group: sdedrSyntax: (sdedr:clear-refinement-definitions)Argument types: NoneReturns: NoneErrors: NoneDescription: This function deletes all refinement definition–related data from the doping and

refinement container. The DF–ISE command files contain all refinement-relateddata. The command file includes two data blocks that are related to doping andrefinement: a Definitions block and a Placements block. The Definitions blockcontains the definitions of the refinement entities (definition name, refinement sizeinformation) and the Placements block contains the named placements forrefinements (associated refinement windows). This functions deletes all refinement-related data only from the Definitions data block. (Mesh > Clear All > Refinement Definitions)

Limitations: None

Action: Deletes all refinement placement–related data.Group: sdedrSyntax: (sdedr:clear-refinement-placements)Argument types: NoneReturns: NoneErrors: NoneDescription: This command deletes all refinement placement–related data from the doping and

refinement container. The DF–ISE command files contain all refinement-relateddata. The command file includes two data blocks that are related to doping andrefinement: a Definitions block and a Placements block. The Definitions blockcontains the definitions of the refinement entities (definition name, refinement sizeinformation) and the Placements block contains the named placements forrefinements (associated refinement windows). This functions deletes all refinement-related data only from the Placements block. (Mesh > Clear All > RefinementPlacements)

Limitations: None

299

Page 320: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Managing refinement

extract-refwindow

Action: Defines refinement windows, matching the specified geometry face or faces.Group: sdedrSyntax: (extract-refwindow faceid refwindowname)Argument types: faceid FACE | FACE LIST

refwindowname STRINGReturns: NoneErrors: NoneDescription: This function goes through the specified face list (or the specified single face list),

extracts the vertex list for each face, and defines a separate polygonal refinementwindow for each face. Planar faces will have the corresponding refinement polygondefined as one single refinement polygon. However, for nonplanar polygons, thegeometric face will be triangulated first and a separate refinement polygon(triangle) will be defined for each triangle

Limitations: NoneExample:

Example 1(sde:clear)(define mypyramid (sdegeo:create-pyramid (position 0 0 0) 20 40 40 6 12 "PolySilicon""r1"))

(define myface (list-ref (entity:faces mypyramid) 2))(extract-refwindow myface "refinement1")

Example 2(sde:clear)(define mycube (sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon""r1"))

(define myedge (car (find-edge-id (position 10 5 10))))(sdegeo:fillet myedge 4)(define mflist (entity:faces mycube))(extract-refwindow (list-ref mflist 2) "refwin1")(extract-refwindow (list-ref mflist 5) "refwin2")(extract-refwindow (list-ref mflist 0) "refwin3")

300

Page 321: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdedr:define-refinement-function

sdedr:define-refinement-material

sdedr:define-refinement-placement

Action: Adds a refinement function to the specified refinement.Group: sdedrSyntax: (sdedr:define-refinement-function definition-name function-name ref-type

ref-value)Argument types: definition-name STRING

function-name STRING (name of function to be used for refinement)ref-type STRING {"MaxGradient" | "MaxTransDiff"}ref-value REAL

Returns: NoneErrors: NoneDescription: Adds a refinement function to the specified refinement.Limitations: None

Action: Defines the placements information for a ‘materialwise’ refinement.Group: sdedrSyntax: (sdedr:define-refinement-material placement-name definition-name

material-name)Argument types: placement-name STRING

definition-name STRINGmaterial-name STRING

Returns: NoneErrors: NoneDescription: Defines the placements information for a ‘materialwise’ refinement.Limitations: NoneExample: (sdedr:define-refinement-material "p1" "d1" "Silicon")

Action: Creates a refinement placement in the Mesh command file.Group: sdedrSyntax: (sdedr:define-refinement-placement refinement-name definition-name

ref-eval-window)Argument types: refinement-name STRING

definition-name STRING ref-eval-window STRING

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

301

Page 322: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdedr:define-refinement-region

sdedr:define-refinement-size

sdedr:define-refeval-window

Action: Defines the placements information for a ‘regionwise’ refinement.Group: sdedrSyntax: (sdedr:define-refinement-region placement-name definition-name

region-name)Argument types: placement-name STRING

definition-name STRINGregion-name STRING

Returns: NoneErrors: NoneDescription: Defines the placements information for a ‘regionwise’ refinement.Limitations: NoneExample: (sdedr:define-refinement-region "p1" "d1" "Region_1")

Action: Creates a refinement size definition in the Mesh command file.Group: sdedrSyntax: (sdedr:define-refinement-size definition-name max-x max-y max-z min-x

min-y min-z)Argument types: definition-name STRING

max-x REALmax-y REAL (optional)max-z REAL (optional)min-x REALmin-y REAL (optional)min-z REAL (optional)

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

Action: Defines a geometric region that can be used as a refinement/evaluation (Ref/Eval)window.

Group: sdedrSyntax: (sdedr:define-refeval-window rfwin-name rfwin-type data)Argument types: rfwin-name STRING (name of ref/eval window)

rfwin-type {"Point" | "Line" | "Rectangle" | "Polygon" |"Cuboid"}

data POSITION | POSITION LIST

302

Page 323: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Returns: #t if the requested refinement window was successfully created#f if the operation failed

Errors: NoneDescription: In the case of "Point", the data argument is a position; in case of "Line" or

"Rectangle" or "Cuboid", the data argument is POSITION POSITION (the two oppositecorners). In the case of "Polygon", the data argument is a position list (the first andlast positions must be the same). (Mesh > Define Ref/Eval Window.)

Limitations: NoneExample:

(sdedr:define-refeval-window "rfwin1" "Line" (position 0 0 0) (position 1 0 0))

(sdedr:define-refeval-window "rfwin2" "Rectangle" (position 0 -2 0) (position 1 -1 0))

(sdedr:define-refeval-window "rfwin3" "Polygon" (list (position 1 2 0.0) (position 0.75 2 0.0) (position 1 2.5 0.0) (position 1.25 3 0.0) (position 1.5 3.5 0.0) (position 1.75 4 0.0) (position 2 4.25 0.0) (position 2.25 4.5 0.0) (position 2.5 4.75 0.0) (position 2.75 5 0.0) (position 2.75 5.5 0.0) (position 3 5.75 0.0) (position 3.5 5.5 0.0) (position 4 5.75 0.0) (position 4.5 5.5 0.0) (position 5 5.5 0.0) (position 5.5 5.75 0.0) (position 5.5 6 0.0) (position 6 6.25 0.0) (position 6.5 6 0.0) (position 7 6 0.0) (position 7.5 5.25 0.0) (position 8 5.5 0.0) (position 8 5 0.0) (position 7.5 4.5 0.0) (position 8 4.25 0.0) (position 8.5 4 0.0) (position 9 3.75 0.0) (position 9.5 4 0.0) (position 9.5 3.5 0.0) (position 9.5 3 0.0) (position 9 3 0.0) (position 8.5 2.75 0.0) (position 8.75 2.5 0.0) (position 8.5 2.25 0.0) (position 8 2.25 0.0) (position 7.5 2.25 0.0) (position 7.5 2.5 0.0) (position 7 2.5 0.0) (position 7 2 0.0) (position 6.75 1.5 0.0) (position 6.75 1 0.0) (position 6.25 1 0.0) (position 6 1.5 0.0) (position 5.5 2 0.0) (position 5.5 2.5 0.0) (position 5 2 0.0) (position 4.75 1.5 0.0) (position 4.5 1 0.0) (position 4 1.25 0.0) (position 3.5 1.25 0.0) (position 3 1 0.0) (position 2.5 1.5 0.0) (position 2.5 2 0.0) (position 2.5 2.5 0.0) (position 2 2.5 0.0) (position 1.5 2.5 0.0) (position 1.5 2 0.0) (position 1 2 0.0))

(sdedr:define-refeval-window "rfwin4" "Cuboid" (position 0 0 0) (position 1 2 3))

Note: In earlier versions of Sentaurus Structure Editor, this function was calledsdedr:define-refinement-window, which has been renamed sdedr:define-refeval-

window. For compatibility reasons, the old function name is still defined and has beenkept as an alias, but Synopsys recommends using the new function name in newscripts.

303

Page 324: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdedr:redefine-refeval-window

Managing submeshes

sdedr:define-submesh

Action: Redefines a previously defined geometric refinement/evaluation (Ref/Eval)window.

Group: sdedrSyntax: (sdedr:redefine-refeval-window rfwin-name new-rfwin-name rfwin-type data)Argument types: rfwin-name STRING (name of Ref/Eval window)

new-rfwin-name STRING (new name of Ref/Eval window)rfwin-type {"Point" | "Line" | "Rectangle" | "Polygon" |

"Cuboid"}data POSITION | POSITION LIST

Returns: #t if the requested Ref/Eval window was successfully created#f if the operation failed

Errors: NoneDescription: In the case of "Point", the data argument is a position; in the case of "Line" or

"Rectangle" or "Cuboid", the data argument is POSITION POSITION (the two oppositecorners). In the case of "Polygon", the data argument is a position list (the first andlast positions must be the same). This command is mainly used in renaming existingRef/Eval windows.

Limitations: NoneNote: In earlier versions of Sentaurus Structure Editor, this function was called

sdedr:redefine-refinement-window, which was renamed sdedr:redefine-refeval-

window. For compatibility reasons, the old function name is still defined and has beenkept as an alias, but Synopsys recommends using the new function name in newscripts.

Action: Creates a one-dimensional external profile in the Mesh command file.Group: sdedrSyntax: (sdedr:define-submesh definition-name geofile-name file1 mode1 file2

mode2 ... filen moden)Argument types: definition-name STRING

geofile-name STRINGfile[1...n] STRINGmode[1...n] {"r" | "i" | "o" | "w" | "w=outfile-name"}

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

304

Page 325: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdedr:define-submesh-placement

sdedr:define-submesh-placement (old syntax)

Action: Creates a submesh placement in the Mesh command file.Group: sdedrSyntax: (sdedr:define-submesh-placement placement-name definition-name

ref-eval-window ["DecayLength" decay-length]["SelectWindow" (position x y z) (position x y z)]["AttachPoint" (position x y z)] ["ToPoint" (position x y z)]["Replace" | "NoReplace"] ["Reflect" ["X" | "Y" | "Z"]]["Rotation" angle])

Argument types: placement-name STRINGdefinition-name STRINGref-eval-window STRINGdecay-length REALx, y, z REALangle REAL

Returns: NoneErrors: NoneDescription: This extension creates a submesh placement in the Mesh command file (see the

Mesh Generation Tools User Guide for a detailed description of the parameters).The positions defined for SelectWindow are rectangle corner points. These points andthe AttachPoint are given in coordinates local to the external profile.

Limitations: None

Action: Creates a submesh placement in the Mesh command file.Group: sdedrSyntax: (sdedr:define-submesh-placement placement-name definition-name

ref-eval-window decay-factor "Replace"|"NoReplace" shift-x shift-y shift-z "X"|"Y"|"Z"|"" "X"|"Y"|"Z" rotation-angle)

Argument types: placement-name STRINGdefinition-name STRINGref-eval-window STRINGdecay-factor REALshift-x REALshift-y REALshift-z REALrotation-angle REAL

Returns: NoneErrors: NoneDescription: This extension creates a submesh placement in the Mesh command file (see the

Mesh Generation Tools User Guide for a detailed description of the parameters).The first X, Y, or Z is the reflection axis. The second is the rotation axis.

Limitations: None

305

Page 326: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Deleting doping and refinement data

sdedr:del-selected-drentity

sdedr:delete-multibox-placement

sdedr:delete-profile-placement

Action: Deletes a specified entity or list of entities.Group: sdedrSyntax: (sdedr:del-selected-drentity entity | entity-list)Argument types: entity ENTITY

entity-list ENTITY LISTReturns: NoneErrors: NoneDescription: This extension deletes a specified entity or list of entities.Limitations: None

Action: Deletes the specified multibox placement from the placements part of the commandfile.

Group: sdedrSyntax: (sdedr:delete-multibox-placement placement-name)Argument types: placement-name STRINGReturns: NoneErrors: NoneDescription: This command deletes the specified multibox placement from the placements part

of the command file.Limitations: NoneExample: (sdedr:delete-multibox-placement "multibox_1")

Action: Deletes the specified placement.Group: sdedrSyntax: (sdedr:delete-profile-placement placement-name)Argument types: placement-name STRINGReturns: NoneErrors: NoneDescription: This extension deletes the specified placement.Limitations: None

306

Page 327: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdedr:delete-refinement-placement

sdedr:delete-refeval-window

Action: Deletes the specified refinement placement from the placements part of thecommand file.

Group: sdedrSyntax: (sdedr:delete-refinement-placement placement-name)Argument types: placement-name STRINGReturns: NoneErrors: NoneDescription: This function deletes the specified refinement placement from the placements part

of the command file.Limitations: NoneExample: (sdedr:delete-refinement-placement "refinement_1")

Action: Deletes a refinement/evaluation (Ref/Eval) window or list of Ref/Eval windows.Group: sdedrSyntax: (sdedr:delete-refeval-window ref-win)Argument types: ref-win STRINGReturns: NoneErrors: NoneDescription: This extension deletes specified Ref/Eval windows.Limitations: NoneExample:(sdedr:define-refeval-window "rw1" "Rectangle" (position 0 0 0) (position 1 1 0))(sdedr:define-refeval-window "rw2" "Rectangle" (position 1 0 0) (position 2 1 0))(sdedr:define-refeval-window "rw3" "Rectangle" (position 2 0 0) (position 3 1 0))(sdedr:delete-refeval-window "rw1") ; or equivalently(sdedr:delete-refeval-window (list "rw1"))(sdedr:delete-refeval-window (list "rw2" "rw3")); refinement/evaluation windows can also be deleted, by selecting them, and using; (sde:selected-refeval-windows)(sdedr:delete-refeval-window (sde:selected-refeval-windows))Note: In earlier versions of Sentaurus Structure Editor, this function was called

sdedr:delete-refinement-window, which was renamed sdedr:delete-refeval-window.For compatibility reasons, the old function name is still defined and has been keptas an alias, but Synopsys recommends using the new function name in new scripts.

This function calls the function sdegeo:delete-region, since sdedr:delete-refeval-window handles real regions as well as doping/refinement/submesh (DRS) bodies.

307

Page 328: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdedr:delete-submesh-placement

Defining multiboxes

sdedr:define-multibox-placement

sdedr:define-multibox-size

Action: Deletes the specified placement.Group: sdedrSyntax: (sdedr:delete-submesh-placement placement-name)Argument types: placement-name STRINGReturns: NoneErrors: NoneDescription: This extension deletes the specified placement.Limitations: None

Action: Defines the placements part of a multibox definition.Group: sdedrSyntax: (sdedr:define-multibox-placement placement-name definition-name

refwindow-name)Argument types: placement-name STRING

definition-name STRINGrefwindow-name STRING

Returns: NoneErrors: NoneDescription: This command defines the placements part of a multibox definition.Limitations: NoneExample: (sdedr:define-multibox-placement "p1" "d1" "refwindow1")

Action: Defines the definitions part of a multibox definition.Group: sdedrSyntax: (sdedr:define-multibox-size mbox-name max-x max-y [max-z] min-x min-y

[min-z] ratio-x ratio-y [ratio-z])Argument types: mbox-name STRING

max-x REALmax-y REALmin-x REALmin-y REALratio-x REALratio-y REAL

Returns: None

308

Page 329: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Defining profiles

sdedr:define-1d-external-profile

Errors: NoneDescription: This command defines the definitions part of a multibox definition. Note that max-z,

min-z, and ratio-z (in brackets) are optional.Limitations: NoneExample: (sdedr:define-multibox-size "multibox-2d" 10 10 1 1 2 2)

(sdedr:define-multibox-size "multibox-3d" 10 10 10 1 1 1 2 2 2)

Action: Creates a one-dimensional external profile in the Mesh command file.Group: sdedrSyntax: (sdedr:define-1d-external-profile name filename "Scale" scale "Range"

range-from range-to "Erf" {"Factor" lateral_factor | "Length" length})

(sdedr:define-1d-external-profile name filename "Scale" scale "Range" range-from range-to "Gauss" {"Factor" lateral-factor | "Length" length | "StdDev" stddev})

Argument types: name STRINGfilename STRINGscale REALrange-from REALrange-to REALlateral-factor REALlength REALstddev REAL

Returns: NoneErrors: NoneDescription: The default units are micrometers. The lateral profile can be given as a Gaussian

function or an error function (see the Mesh Generation Tools User Guide for adetailed description of the parameters).

Limitations: None

309

Page 330: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdedr:define-analytical-profile

sdedr:define-analytical-profile-placement

sdedr:define-analytical-profile-placement (old syntax)

Action: Creates a user-defined analytic function that describes doping in the Meshcommand file.

Group: sdedrSyntax: (sdedr:define-analytical-profile name species initialization function

start-value)Argument types: name STRING

species STRINGinitialization STRINGfunction STRINGstart-value REAL

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

Action: Creates a placement for an analytic profile definition in the Mesh command file.Group: sdedrSyntax: (sdedr:define-analytical-profile-placement placement-name definition-name

ref-eval-window symmetry replacement evaluation eval-window decay-length eval-window-type)

Argument types: symmetry {"Both" | "Positive" | "Negative"}replacement {"Replace" | "NoReplace"}evaluation {"Eval" | "NoEval"}eval-window STRINGdecay-length REALeval-window-type {"region" | "material" | "evalwin"}

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

Action: Creates a placement for an analytic profile definition in the Mesh command file.Group: sdedrSyntax: (sdedr:define-analytical-profile-placement placement-name definition-name

ref-eval-window "Symm"|"NoSymm" "Replace"|"NoReplace" "Eval"|"NoEval")

310

Page 331: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdedr:define-constant-profile

sdedr:define-constant-profile-material

Argument types: placement-name STRINGdefinition-name STRINGref-eval-window STRING

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

Action: Creates a definition for a constant doping profile in the Mesh command file.Group: sdedrSyntax: (sdedr:define-constant-profile definition-name species concentration)Argument types: definition-name STRING

species STRINGconcentration REAL

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

Action: Creates a constant doping profile placement based on a material in the Meshcommand file.

Group: sdedrSyntax: (sdedr:define-constant-profile-material placement-name definition-name

material decay-length replace)Argument types: placement-name STRING

definition-name STRINGmaterial STRINGdecay-length REAL (optional)replace "Replace" (optional)

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

311

Page 332: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdedr:define-constant-profile-placement

sdedr:define-constant-profile-region

sdedr:define-erf-profile

Action: Creates a reference/evaluation window placement of a constant doping profiledefinition in the Mesh command file.

Group: sdedrSyntax: (sdedr:define-constant-profile-placement placement-name definition-name

ref-win-name decay-length replace)Argument types: placement-name STRING

definition-name STRINGref-win-name STRINGdecay-length REAL (optional)replace "Replace" (optional)

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

Action: Creates a constant doping profile placement based on a region in the Meshcommand file.

Group: sdedrSyntax: (sdedr:define-constant-profile-region placement-name definition-name

region-name decay-length replace)Argument types: placement-name STRING

definition-name STRINGregion-name STRINGdecay-length REAL (optional)replace "Replace" (optional)

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

Action: Creates a definition of an error-function doping profile in the Mesh command file.Group: sdedrSyntax: (sdedr:define-erf-profile definition-name species "SymPos" peak-position

"MaxVal" max-value | "Dose" dose "Junction" junction "ValueAtDepth" value-at-depth "Depth" depth "Length" length "StdDev" standard-deviation "Gauss"|"Erf" "Factor" factor "StdDev" lateral-standard-deviation "Length" lateral-length)

312

Page 333: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdedr:define-gaussian-profile

Argument types: definition-name STRINGspecies STRINGpeak-position REALmax-value REALdose REALjunction REALvalue-at-depth REALdepth REALlength REALstandard-deviation REALfactor REALlateral-standard-deviation REALlateral-length REAL

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

Action: Creates a definition of a Gaussian-function doping profile in the Mesh commandfile.

Group: sdedrSyntax: (sdedr:define-gaussian-profile definition-name species "PeakPos"

peak-position "PeakVal" peak-value | "Dose" dose "ValueAtDepth" value-at-depth "Depth" depth "Gauss"|"Erf" "Factor" lateral-factor "StdDev" lateral-standard-deviation "Length" lateral-length)(sdedr:define-gaussian-profile definition-name species "PeakPos" peak-position "PeakVal" peak-value | "Dose" dose "Length" length "Gauss"|"Erf" "Factor" lateral-factor "StdDev" lateral-standard-deviation "Length" lateral-length) (sdedr:define-gaussian-profile definition-name species "PeakPos" peak-position "PeakVal" peak-value | "Dose" dose "StdDev" standard-deviation "Gauss"|"Erf" "Factor" lateral-factor "StdDev" lateral-standard-deviation "Length" lateral-length)

Argument types: definition-name STRINGspecies STRINGpeak-position REALmax-value REALdose REALjunction REALvalue-at-depth REALdepth REALlength REALstandard-deviation REALlateral-factor REALlateral-standard-deviation REALlateral-length REAL

313

Page 334: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Simplifying boundaries

merge-collinear-edges-2d

sde:window-select-2d

Returns: NoneErrors: NoneDescription: See the Mesh Generation Tools User Guide for a detailed description of the

parameters.Limitations: None

Action: Merges all collinear edges of the specified bodies.Group: sdegeoSyntax: (merge-collinear-edges-2d body-list [angular-tolerance])Argument types: body-list BODY LIST

angular-tolerance REALReturns: NoneErrors: NoneDescription: An optional angular-tolerance value can be specified. In that case, besides the

perfectly collinear edges, the edges that close an angle, which is larger than thespecified threshold, will also merge (that is, the two edges will be replaced by oneedge, connecting the other end points).

Limitations: The function can be applied only for 2D models.

Action: Returns a list containing all vertex and edge entities that are inside the specified 2Dwindow.

Group: sdegeoSyntax: (sde:window-select-2d x-left y-left x-right y-right elist stype)Argument types: x-left REAL

y-left REALx-right REALy-right REALelist {BODY LIST | "all"}stype {"vertex" | "edge"}

Returns: ListErrors: None

314

Page 335: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:align-horizontal

sdegeo:align-horizontal-aut

Description: This function selects all entities (of the specified type, stype), lying in the specified2D window. The first four arguments in the argument list x-left, y-left, x-right,and y-right define the rectangular window that will be used during the selection.The elist argument can be either "all", in which case, all entities in the model willbe used for the selection, or it can be a body list. The last argument stype is theselection criterion. It can be either "vertex" or "edge". If stype is "vertex", a vertexlist will be returned. If it is "edge", an edge list will be returned. If no entity is found,an empty list is returned.

Limitations: The function can be applied only to 2D models.Example:

(sde:clear)(sdegeo:set-default-boolean "AB")(sdegeo:create-rectangle (position 0 0 0) (position 2 2 0) "Silicon" "region_1")(sdegeo:create-circle (position 1 2 0) 1 "Silicon" "region_2")(define vlist (sde:window-select-2d -1 -1 3 4 "all" "vertex"))(define elist (sde:window-select-2d -1 -1 3 4 "all" "edge"))

Action: Aligns points horizontally to a specified position.Group: sdegeoSyntax: (sdegeo:align-horizontal vertex-list align-position)Argument types: vertex-list VERTEX LIST

align-position REALReturns: NoneErrors: NoneDescription: This function aligns the specified vertices to a horizontal line. vertex-list contains

the list of vertices and align-position defines the position (y-coordinate) of the line.Limitations: The function can be applied only to 2D models.

Action: Aligns points horizontally to the average position.Group: sdegeoSyntax: (sdegeo:align-horizontal-aut vertex-list)Argument types: vertex-list VERTEX LISTReturns: NoneErrors: NoneDescription: This command aligns the specified vertices to a horizontal line. vertex-list contains

the list of vertices. The align position (y-coordinate) of the line is defined using theaverage y-coordinate of the specified vertices, which is calculated automatically.

Limitations: The function can be applied only to 2D models.

315

Page 336: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:align-to-line

sdegeo:align-vertical

sdegeo:align-vertical-aut

Action: Aligns vertices to a line.Group: sdegeoSyntax: (sdegeo:align-to-line vertex-list pos1 pos2)Argument types: vertex-list VERTEX LIST

pos1 POSITIONpos2 POSITION

Returns: NoneErrors: NoneDescription: This function aligns the specified vertices (given by a vertex list vertex-list) to a

line. The line is specified by two points (pos1 and pos2). The points must lie on thesame work plane as the vertex-list vertices. The vertices are projected to thespecified line.

Limitations: The function can be applied only to 2D models.

Action: Aligns points vertically to a specified position.Group: sdegeoSyntax: (sdegeo:align-vertical vertex-list align-position)Argument types: vertex-list VERTEX LIST

align-position REALReturns: NoneErrors: NoneDescription: This command aligns the specified vertices to a vertical line. vertex-list contains

the list of vertices and align-position defines the new position (x-coordinate) of theline.

Limitations: The function can be applied only to 2D models.

Action: Aligns points vertically to the average position.Group: sdegeoSyntax: (sdegeo:align-vertical-aut vertex-list)Argument types: vertex-list VERTEX LISTReturns: NoneErrors: NoneDescription: This command aligns the specified vertices to a vertical line. vertex-list contains

the list of vertices. The align position (x-coordinate) of the line is defined using theaverage x-coordinate of the specified vertices, which is calculated automatically.

Limitations: The function can be applied only to 2D models.

316

Page 337: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:average-edge-length

sdegeo:break-nearly-axis-aligned-edges

Action: Returns the average edge length.Group: sdegeoSyntax: (sdegeo:average-edge-length edge-list)Argument types: edge-list EDGE LISTReturns: RealErrors: NoneDescription: This function computes the length of each edge in edge-list and returns the average

edge length.Limitations: NoneExample:

(sde:clear)(sdegeo:set-default-boolean "AB")(sdegeo:create-rectangle (position 0 0 0) (position 2 2 0) "Silicon" "region_1")(sdegeo:create-circle (position 1 2 0) 1 "Silicon" "region_2")(define elist (entity:edges (car (reverse (part:entities)))))(sdegeo:average-edge-length elist)

Action: Breaks nearly axis-aligned linear edges into horizontal or vertical components.Group: sdegeoSyntax: (sdegeo:break-nearly-axis-aligned-edges edge-list [angular-tolerance])Argument types: edge-list EDGE LIST

angular-tolerance REALReturns: NoneErrors: NoneDescription: This function changes the nearly axis-aligned edges to axis-aligned edges by

inserting additional vertices and staircase edges to the model. This step may beneeded before meshing because some meshing algorithms (typically, quadtree-based meshing engines) may have difficulties handling nearly axis-aligned edges.The angular tolerance angular-tolerance specifies the minimal angle in degrees thatis permitted between model edges and between the x-axis and y-axis of the model.If the angle between the edge and the horizontal and vertical direction is smallerthan angular-tolerance, the edge will be split into a horizontal and verticalcomponent. The use of the angular-tolerance argument is optional. If it is notspecified, the default value (5 degrees) will be used.

Limitations: The function can be applied only for 2D models.

317

Page 338: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:del-short-edges

sdegeo:delete-collinear-edges

sdegeo:delete-edges

Action: Deletes short edges.Group: sdegeoSyntax: (sdegeo:del-short-edges entity edge-length angular-tolerance)Argument types: body-list BODY LIST

edge-length REALangular-tolerance REAL

Returns: NoneErrors: NoneDescription: This Scheme extension deletes linear edges if the edge length is shorter than the

specified edge-length. Ridges can be protected by an angular tolerance, angular-tolerance. If the vertex normal difference is larger than angular-tolerance at a givenvertex location, the vertex (and the adjoining edges) are protected. In this case, evenif the edge length is smaller than edge-length, the edge is not removed. This functionis fast and very robust and is recommended to simplify 2D geometry.

Limitations: The function can be applied only to 2D models.

Action: Deletes collinear edges from the specified edge list.Group: sdegeoSyntax: (sdegeo:delete-collinear-edges edge-list)Argument types: edge-list EDGE LISTReturns: NoneErrors: NoneDescription: This function can be used to remove collinear edges from the specified edge list by

merging the neighboring collinear edges into one single-edge entity.Limitations: The function can be applied only to 2D models.

Action: Deletes the specified edges.Group: sdegeoSyntax: (sdegeo:delete-edges edge-list [angular-tolerance])Argument types: edge-list EDGE LIST

angular-tolerance REALReturns: NoneErrors: None

318

Page 339: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:delete-nearly-collinear-edges

sdegeo:delete-short-edges

Description: This function removes the specified edges from the model. If there are neighboringregions, edges that are shared by more than one body must be selected from allbodies. Otherwise, model conformity is not preserved. By default, a 90o angulartolerance is used to protect model features (that is, only those edges from thespecified entity list that enclose an angle larger than 90o will be removed from theedge list). The optional angular-tolerance value (in degrees) can be used to modifythe default setting.

Limitations: The function can be applied only to 2D models. Only linear edges can be deleted.

Action: Deletes nearly collinear edges from the specified edge list.Group: sdegeoSyntax: (sdegeo:delete-nearly-collinear-edges edge-list dist)Argument types: edge-list EDGE LIST

dist REALReturns: NoneErrors: NoneDescription: Nearly collinear edges are defined as follows: If the distance from the point

between the two edges is closer than the specified distance (dist) to the edge that isdefined by the other two noncommon end points of the two edges, they areclassified as nearly collinear. All nearly collinear edges are removed from the edgelist.

Limitations: The function can be applied only for 2D models.

Action: Deletes all edges from the edge list that are shorter than the specified edge length.Group: sdegeoSyntax: (sdegeo:delete-short-edges edge-list max-edge-length)Argument types: edge-list EDGE LIST

max-edge-length REALReturns: NoneErrors: NoneDescription: This command removes edges from the specified list of edges. An edge is deleted

from the model only if the length of the edge is shorter than the specified edgelength, max-edge-length. If there are neighboring regions, edges that are shared bymore than one body must be selected from all bodies. Otherwise, model conformityis not preserved.

Limitations: The function can be applied only to 2D models.

319

Page 340: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdegeo:delete-vertices

sdegeo:dnce

sdegeo:max-edge-length

Action: Deletes the specified vertices.Group: sdegeoSyntax: (sdegeo:delete-vertices vertex-list)Argument types: vertex-list VERTEX LISTReturns: NoneErrors: NoneDescription: This function removes the specified vertices from the model. If there are

neighboring regions, vertices that are located at the same position and are shared bymore than one body must be selected from all bodies. Otherwise, model conformityis not preserved.

Limitations: The function can be applied only to 2D models. Only vertices that are shared bylinear edges can be deleted.

Action: Deletes nearly collinear edges from a 2D model.Group: sdegeoSyntax: (sdegeo:dnce angular-tolerance)Argument types: angular-tolerance REALReturns: NoneErrors: NoneDescription: The Scheme extension sdegeo:dnce is used to remove nearly collinear edges from a

2D model. The specified angular tolerance, angular-tolerance, is used to determinewhich linear edges are removed. If the edge normals differ less than the angulartolerance (in degrees) at a given vertex, the two neighboring edges will be deletedand they will be replaced by a linear edge connecting the other two vertices of thetwo original edges that shared the given vertex.

Limitations: Applicable to 2D models only.

Action: Returns the length of the longest edge.Group: sdegeoSyntax: (sdegeo:max-edge-length edge-list)Argument types: edge-list EDGE LISTReturns: RealErrors: NoneDescription: This function sdegeo:max-edge-length computes the length of each edge in edge-list

and returns the largest edge length.Limitations: None

320

Page 341: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdegeo:min-edge-length

sdegeo:prune-vertices

Example:(sde:clear)(sdegeo:set-default-boolean "AB")(sdegeo:create-rectangle (position 0 0 0) (position 2 2 0) "Silicon" "region_1")(sdegeo:create-circle (position 1 2 0) 1 "Silicon" "region_2")(define elist (entity:edges (car (reverse (part:entities)))))(sdegeo:max-edge-length elist)

Action: Returns the length of the shortest edge.Group: sdegeoSyntax: (sdegeo:min-edge-length edge-list)Argument types: edge-list EDGE LISTReturns: RealErrors: NoneDescription: This function sdegeo:min-edge-length computes the length of each edge in edge-list

and returns the smallest edge length.Limitations: NoneExample:(sde:clear)(sdegeo:set-default-boolean "AB")(sdegeo:create-rectangle (position 0 0 0) (position 2 2 0) "Silicon" "region_1")(sdegeo:create-circle (position 1 2 0) 1 "Silicon" "region_2")(define elist (entity:edges (car (reverse (part:entities)))))(sdegeo:min-edge-length elist)

Action: Merges neighboring edges by pruning the vertices.Group: sdegeoSyntax: (sdegeo:prune-vertices body-list angular-tolerance)Argument types: body-list BODY LIST

angular-tolerance REALReturns: NoneErrors: None

321

Page 342: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Postprocessing, DF–ISE/TDR grid and data viewer

sdepp:clear

sdepp:clear-data

Description: This Scheme extension merges neighboring edges by pruning the vertices. Theangular-tolerance argument specifies the angular threshold for the operation. If theedge normals (at the common vertex position) differ less than the specified angular-tolerance (in degrees), the edges will be merged by removing the common vertexand replacing the two neighboring linear edges by a single edge.

An additional function sdegeo:dnce (delete nearly collinear edges) is defined, whichcalls sdegeo:prune-vertices for all bodies.

This function is fast and very robust, and is recommended to simplify 2D geometry.Limitations: The function can be applied only to 2D models.

Action: Removes all data (grid/data information) from the grid and data viewer.Group: sdeppSyntax: (sdepp:clear)Argument types: NoneReturns: NoneErrors: NoneDescription: This Scheme extension is used to clear the grid and data viewer of Sentaurus

Structure Editor.Limitations: None

Action: Removes all data (.dat information) from the grid and data viewer.Group: sdeppSyntax: (sdepp:clear-data)Argument types: NoneReturns: NoneErrors: NoneDescription: This extension is used to clear all data from the grid and data viewer of Sentaurus

Structure Editor.Limitations: None

322

Page 343: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdepp:load-data

sdepp:load-grid

sdepp:set-ash-factor

Action: Loads the specified DF–ISE dat file to the grid and data viewer.Group: sdeppSyntax: (sdepp:load-data file-name)Argument types: file-name STRINGReturns: NoneErrors: NoneDescription: This extension is used to load a DF–ISE dat file to the grid and data viewer of

Sentaurus Structure Editor.Limitations: None

Action: Loads the specified DF–ISE grid file to the grid and data viewer.Group: sdeppSyntax: (sdepp:load-grid file-name)Argument types: file-name STRINGReturns: NoneErrors: NoneDescription: This extension is used to load a DF–ISE grid file to the grid and data viewer of

Sentaurus Structure Editor.Limitations: None

Action: Sets the ash factor.Group: sdeppSyntax: (sdepp:set-ash-factor ffactor)Argument types: ffactor REALReturns: NoneErrors: NoneDescription: This extension is used to set the ash factor that is used when the interpolation

method is set to "ash".Limitations: None

323

Page 344: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdepp:set-colormap-type

sdepp:set-data-mapping

sdepp:set-face-displacement

Action: Sets the colormap type.Group: sdeppSyntax: (sdepp:set-colormap-type type)

Argument types: type STRINGReturns: NoneErrors: NoneDescription: The colormap type can be "rainbow", "bw", or "twocolor".Limitations: None

Action: Sets the interpolation method for data mapping.Group: sdeppSyntax: (sdepp:set-data-mapping method)Argument types: method STRINGReturns: NoneErrors: NoneDescription: The method can be "linear", "log", "ln", or "ash".Limitations: None

Action: Sets the grid edge displacement for rendering.Group: sdeppSyntax: (sdepp:set-face-displacement displ)Argument types: displ INTEGERReturns: NoneErrors: NoneDescription: This Scheme extension sets the offset value that the grid and data viewer uses to

offset the wireframe drawing of the edges from the rendered faces. If thedisplacement value is small, some rugged edges may be visible due to roundingerrors. If the displacement value is set to a very large value, the visibility renderingmay show some artifacts. Usually, the offset value should be set to 8–20 to obtainthe required rendering quality. The offset value may be platform dependent.

Limitations: None

324

Page 345: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdepp:set-num-colors

sdepp:set-palette-orientation

sdepp:set-plot-type

Action: Sets the number of colors used for rendering the data fields.Group: sdeppSyntax: (sdepp:set-num-colors numcolors)Argument types: numcolors INTEGERReturns: NoneErrors: NoneDescription: This extension is used to set the number of color bands that is used for fringe

rendering.Limitations: None

Action: Sets the palette orientation of the color mapping.Group: sdeppSyntax: (sdepp:set-palette-orientation orientation)Argument types: orientation STRINGReturns: NoneErrors: NoneDescription: The orientation can be set to "normal" or "reversed". For example, if the "rainbow"

colormap is used, the largest data value is represented as red and the smallest datavalue is represented as blue. If the palette orientation is set to "reversed", the largestvalue is rendered as blue and the lowest data value is rendered as red.

Limitations: None

Action: Sets the plot type.Group: sdeppSyntax: (sdepp:set-plot-type ftype)Argument types: ftype STRINGReturns: NoneErrors: NoneDescription: This Scheme extension is used to set the rendering method, which can be "mesh",

"isoline", "fringe", or "isofringe".Limitations: None

325

Page 346: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdepp:show-legend

sdepp:show-mesh-edges

Process emulation (Procem)

Generating substrates

sdepe:add-substrate

Action: Shows or hides the legend.Group: sdeppSyntax: (sdepp:show-legend flag)Argument types: flag BOOLEANReturns: NoneErrors: NoneDescription: This Scheme extension is used to show or hide the legend on the view window.Limitations: None

Action: Switches on or off the mesh grid rendering.Group: sdeppSyntax: (sdepp:show-mesh-edges rendering-flag)Argument types: rendering-flag BOOLEANReturns: NoneErrors: NoneDescription: This extension is used to switch on or off the mesh grid rendering.Limitations: None

Action: Adds an initial substrate layer to the device.Group: sdepeSyntax: (sdepe:add-substrate "material" material "thickness" thickness

["base" base] ["region" region-name])Argument types: material DATEXMAT

thickness REALbase REALregion-name STRING

Returns: Entity ID of the generated substrate layerErrors: None

326

Page 347: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdepe:create-substrate (old syntax)

sdepe:define-pe-domain

Description: The Scheme extension sdepe:add-substrate is used to generate the first substratelayer for a device. The domain boundary must be set before this function is called.The keyword "material" identifies the DATEX material of the generated body."base" can be used to assign a value for the bottom z-coordinate of the substratelayer. If "base" is not specified, the substrate layer will be placed such that thebottom will be placed at z = 0. An explicit region name can be assigned to thegenerated substrate by using the "region" keyword.

Limitations: None

Action: Creates a substrate layer.Group: sdepeSyntax: (sdepe:create-substrate substrate-material substrate-thickness)Argument types: substrate-material DATEXMAT

substrate-thickness REALReturns: NoneErrors: NoneDescription: This command creates a substrate layer. In a previous step, the domain boundary

must be specified using either the (sdepe:define-pe-domain) or (sdepe:generate-domainboundary) command (if the model is generated using other than sdepe Procemcommands). Other Procem commands (such as pattern, etch, deposit) usuallyassume that a substrate layer is already defined. The first substrate layer is placedsuch that the bottom face is located in the x-y plane, at z = 0.

Limitations: This command is obsolete. Use the sdepe:add-substrate command instead (seesdepe:add-substrate on page 326).

Action: Defines a base domain for the process emulation.Group: sdepeSyntax: (sdepe:define-pe-domain {{X0 Y0 X1 Y1} | {polygon}})Argument types: X0 REAL

Y0 REALX1 REALY1 REALpolygon REAL LIST

Returns: NoneErrors: None

327

Page 348: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdepe:generate-domainboundary

Description: This command creates the simulation domain for subsequent Procem commands.The argument list contains either four real numbers or a list of real pairs. If theargument list contains four real numbers, a rectangle is defined, using the fournumbers as the xy-coordinates of two opposite corners. If a list of real pairs isdefined, these pairs define the corner points of the simulation domain in the x-yplane. If a polygon is used to define the simulation domain, the only restriction isthat the polygon must be a simply connected convex polygon. The domain isdefined in the x-y plane at z = 0. The command creates a wire body, representing thesimulation domain. This wire body is called domainboundary, and this variable can beaccessed directly from Scheme. The domainboundary is an artificial object that isneeded for the other Procem commands to identify the simulation domain. Thedomainboundary is not written separately to the DF–ISE boundary output.

Limitations: NoneExample: ; to define a polygonal simulation domain use:

(sdepe:define-pe-domain (list 0 0 10 0 15 2.5 10 5 0 5)); or equivalently(sdepe:define-pe-domain 0 0 10 0 15 2.5 10 5 0 5); to define a rectangular simulation domain use:(sdepe:define-pe-domain (list 0 0 10 5)); or equivalently(sdepe:define-pe-domain 0 0 10 5)

Action: Extracts the simulation boundary from an existing model.Group: sdepeSyntax: (sdepe:generate-domainboundary)Argument types: NoneReturns: NoneErrors: NoneDescription: This function extracts the simulation boundary from an existing model. When

Procem is started from an empty model, one of the first commands should be(sdepe:define-pe-domain) to define the domain boundary. All subsequent functionswork on that domain. If users want to perform additional process steps on existingmodels, this step is not needed. It is sufficient to call (sdepe:generate-domainboundary), which will extract the domainboundary wire from the model. (Thesame restrictions apply here as for (sdepe:define-pe-domain).) The extractedboundary must be convex and can contain only one lump. The command initializesthe Scheme variable domainboundary (wire body).

Limitations: NoneExample:(sdegeo:set-default-boolean "AB")(sdegeo:create-cylinder (position 0 0 0) (position 0 0 1) 5 "Silicon" "region_1")(sdegeo:create-cuboid (position 0 -5 0) (position 15 5 1) "Silicon" "region_2")(sdepe:generate-domainboundary)(sdepe:isotropic-deposit "PolySilicon" 0.5)

328

Page 349: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Fill and polish

sdepe:fill-device

sdepe:polish-device

sdepe:remove

Action: Fills the device with the specified material up to the specified height.Group: sdepeSyntax: (sdepe:fill-device "material" material ["height" height]

["region" region-name])Argument types: material DATEXMAT

height REALregion-name STRING

Returns: Entity ID of the generated fill regionErrors: NoneDescription: The material is identified with the "material" keyword and a subsequent DATEX

material. The height is specified by using the "height" keyword and a real number.If the "height" parameter is not given, the function will fill the device up to the topposition.

Limitations: None

Action: Removes the top part of the device.Group: sdepeSyntax: (sdepe:polish-device { ["thickness" thickness] | ["height" height] })Argument types: thickness REAL

height REALReturns: NoneErrors: NoneDescription: Either the parameter "height" must be specified, in which case, all material above

the specified height is removed or the parameter "thickness" must be specified, inwhich case, the distance is measured from the top device position, and all materialsfrom the top are removed.

Limitations: None

Action: Removes the specified region or material.Group: sdepeSyntax: (sdepe:remove { ["region" region-name] | ["material" material] })Argument types: region-name STRING

material DATEXMATReturns: None

329

Page 350: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Patterning

sdepe:pattern

sdepe:anisotropic-pattern (old syntax)

Errors: NoneDescription: This function removes either the specified material (in which case, the keyword

"material" is used) or the specified region (in the case, the keyword "region" isused).

Limitations: None

Action: Performs a pattern step.Group: sdepeSyntax: (sdepe:pattern "mask" mask-name "polarity" polarity ["type" depo-type]

"material" material ["algorithm" depo-alg] "thickness" thickness ["steps" nsteps])

Argument types: mask-name STRING (name of an existing mask)polarity {"light" | "dark"}depo-type {"iso" | "aniso" | "directional"}depo-alg {"lop" | "lopx" | "PT" | "lop-offset" | "lop-move" |

"lop-body"}material DATEXMATthickness REALnsteps INTEGER (>=1)

Returns: Entity ID of the generated pattern layerErrors: NoneDescription: This extension is used to generate a patterned layer. The "mask" keyword identifies

the mask to be used for the pattern operation. (The mask must be already defined.)The mask polarity can be defined using the "polarity" keyword. Since the patternoperation is analogous to a deposition step, the detailed explanation of the usedalgorithms and types can be found under sdepe:depo.

Limitations: None

Action: Performs an anisotropic pattern operation.Group: sdepeSyntax: (sdepe:anisotropic-pattern mname mpolarity pattern-material

pattern-thickness [nsteps])Argument types: mname STRING

mpolarity POLARITYpattern-material DATEXMATpattern-thickness REALnsteps INTEGER

Returns: None

330

Page 351: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdepe:isotropic-pattern (old syntax)

Errors: NoneDescription: The first argument mname is the mask name, mpolarity is the mask polarity, pattern-

material (usually Resist) is the material that will be used as the material of thepatterned region, and pattern-thickness is the thickness of the patterned region. Theoptional argument nsteps is the number of steps that will be used to perform theoperation. The default value is 1. For more complex geometry, it may be that thetotal pattern-thickness cannot be deposited in one step. In that case, user-definednsteps must be introduced, that is, during one deposition step, only pattern-thickness/nsteps thickness will be deposited on the device.

Limitations: This command is obsolete. Use the sdepe:pattern command instead (seesdepe:pattern on page 330).

Example: (sde:clear)(sdepe:define-pe-domain 0 0 10 10)(sdepe:generate-mask "MASK1" (list (list 1 1 3 3) (list 7 7 9 9)))(sdepe:generate-mask "MASK2" (list (list 7 1 9 3 3 9 1 7)))(sdepe:create-substrate "Silicon" 2)(sdepe:anisotropic-pattern "MASK1" "light" "Resist" 0.5)

Action: Performs an isotropic pattern operation.Group: sdepeSyntax: (sdepe:isotropic-pattern mname mpolarity pattern-material

pattern-thickness [nsteps])Argument types: mname STRING

mpolarity POLARITYpattern-material DATEXMATpattern-thickness REALnsteps INTEGER

Returns: NoneErrors: NoneDescription: The first argument mname is the mask name, mpolarity is the mask polarity, pattern-

material (usually Resist) is the material that will be used as the material of thepatterned region, and pattern-thickness is the thickness of the patterned region. Theoptional argument nsteps is the number of steps that will be used to perform theoperation. The default value is 1. For more complex geometry, it may be that thetotal pattern-thickness cannot be deposited in one step. In that case, user-definednsteps must be introduced, that is, during one deposition step, only pattern-thickness/nsteps thickness will be deposited on the device.

Limitations: This command is obsolete. Use the sdepe:pattern command instead (seesdepe:pattern on page 330).

331

Page 352: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Handling masks

sdeio:read_dfise_mask

sdepe:generate-mask

Action: Loads a DF–ISE mask layout file to the modeler.Group: sdeioSyntax: (sdeio:read_dfise_mask filename)Argument types: filename STRINGReturns: Boolean (#t for success, #f for failure)Errors: NoneDescription: The file extension is .lyt. The filename should also contain the file extension and

may also contain a path.Limitations: None

Action: Creates a mask for further process operations.Group: sdepeSyntax: (sdepe:generate-mask mask-name polygon-list)Argument types: mask-name STRING

polygon-list POLYGON LISTReturns: NoneErrors: NoneDescription: This command defines masks explicitly inside Procem. The defined masks can be

used for patterning operations. Each mask is defined as a polygon list. In a givenmask, polygons must form simply connected regions. The polygons cannot intersecteach other. Different masks can have intersecting polygonal boundaries.

Limitations: NoneExample:

(sdepe:generate-mask "MASK1" (list (list 1 1 3 3) (list 7 7 9 9)))(sdepe:generate-mask "MASK2" (list (list 7 1 9 3 3 9 1 7)))(sdepe:generate-mask "MASK3" (list (list 2 1 3 2 2 3 1 2) (list 8 1 9 2 8 3 7 2) (list 8 7 9 8 8 9 7 8) (list 2 7 3 8 2 9 1 8)))(sdepe:generate-mask "MASK4" (list (list 3 3 7 7)))(sdepe:generate-mask "MASK5" (list (list 3 0 8 2) (list 8 3 10 7) (list 3 8 7 10) (list 0 3 2 7)))

332

Page 353: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Deposition

sdepe:depo

Action: Performs a deposition step.Group: sdepeSyntax: (sdepe:depo "material" material "thickness" thickness

["type" depo-type] ["algorithm" depo-alg] ["region" region-name] ["steps" nsteps] ["dx" dx "dy" dy "dz" dz] ["ray-vector" rayvector]["shadowing" sbool] ["BC" bcond] ["ext-dist" extdist]["anisotropic-shift" ashift] ["blend-global" | "blend-network"]["radius" radius] ["vexity" vexity-type]{[{"vlist" vertexlist "dlist" displist}] | [{"flist" facelist "dlist" displist ["fnlist" facenormallist]}]}["range-for-vent-face-insertion" pt1 "vent-face-angle" pt2 "max-chamfer-angle" pt3 "significant-gap-size" pt4])

Argument types: material DATEXMATthickness REALdepo-type {"iso" | "aniso" | "directional"}depo-alg {"lop" | "lopx" | "PT" | "lop-vertex" | "lop-face" |

"lop-offset"}region-name STRINGnsteps INTEGER (>=1)dx REALdy REALdz REALrayvector GVECTORsbool BOOLEANbcond STRINGextdist REALashift REALradius REALvexity-type VEXITY TYPE {"convex" | "concave" | "all"}vertexlist VERTEX LISTdisplist REAL LISTfacelist FACE LISTfacenormallist VECTOR LISTpt1 REALpt2 REALpt3 REALpt4 REAL

Returns: Entity ID of the generated deposit layerErrors: NoneDescription: "material" material specifies the name of the deposited material.

"thickness" thickness specifies the thickness of the deposited layer."type" depo-type refers to the different deposition types available.

333

Page 354: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Description: "algorithm" depo-alg refers to the available deposition (face movement) algorithms.The available algorithms are "lop", "lopx", "PT", "lop-vertex", "lop-face", and "lop-offset". For a general model, "lop" or "lopx" should be used. The "lop" algorithmcan create only isotropic deposition, while "lopx" can also handle anisotropy. "PT" isapplicable to polyhedral models only.

The optional "region" region-name argument can be used if users want to attach aspecific region name to the deposited layer. If this option is not present in theargument list, the deposited layer will be named sequentially using the "region_%N"scheme.

"steps" nsteps can be specified if the deposition should be performed in more thanone step (recommended for more complex models). The default is 1.

If the deposition type is "directional", the direction vector must be specified by "dx"dx "dy" dy "dz" dz.

If algorithm=lop-vertex, a vertex list must be specified, together with a displacementlist, dlist. If the algorithm is set to "lop-face", a list of faces can be specified, whichwill be moved by the specified displacement list, dlist. The faces will be moved inthe face-normal direction, unless the optional "fnlist" facenormallist is specified.

The "lop-vertex" and "algorithm" keywords are special in the sense that they bothdescribe an algorithm of a deposition type (that is, if the algorithm is "lop-vertex" or"algorithm", "type" is ignored and the specified displacement field will be imposedon the structure as the deposited layer). The "lop-vertex" and "algorithm" keywordscan be used if the displacement field is calculated outside Procem. Thedisplacement field can be calculated either in Sentaurus Structure Editor or anexternal tool.

Shadowing and directional effectsIf "shadowing" is set to #t, the shadowing effect will be taken into consideration.First, the silhouette of the device is computed and the silhouette edges are imprintedon the top, exposed faces. Then, a visibility calculation is performed for all exposedfaces. After the visibility of each face is established, the face offset distance iscomputed. For nonvisible faces, the face offset distance is set to 0. The shadowingeffect is applicable only for anisotropic deposition ("type" "aniso"). If the rayvector is not specified, the shadowing is computed assuming a ray vector (0, 0, –1).If the ray is not parallel to the –z-axis, the "rayvector" must be specified.

When the directional effect is taken into consideration, some unwanted side effectsmay be visible near the domain boundary. (For example, slanted side faces mayresult.) To avoid such problems, the device can be extended before deposition (andtrimmed back afterwards).

334

Page 355: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Description: The "BC" keyword can be used to extend the device before deposition. There areseveral different options: "Extend" extends the side faces, "Periodic" applies aperiodic boundary condition around the domain boundary, and "Reflect" applies areflective boundary condition. If "BC" is set to "Extend", the necessary extensiondistance is calculated automatically. If users want to specify a different extensiondistance, the "extdist" keyword can be used. In this case, the required extensiondistance must be specified. The device is automatically trimmed back to the originaldomain boundary after deposition.

The PT algorithmThe "PT" algorithm is a special algorithm that can be applied only to polyhedralmodels. It is designed to be a fast and robust algorithm to handle large polyhedralmodels. The "PT" algorithm cannot be combined with any other keywords thatwould result in a nonpolyhedral (curved) model. There is some user control that canbe applied to the "PT" algorithm.

These control parameters are:"range-for-vent-face-insertion"If the angle between two adjacent face normals is smaller than the specified angle,there may be an attempt to insert vent faces. A negative value indicates that no ventfaces are to be inserted. A value in the range [0–30o] is usually reasonable.

"vent-face-angle"The angle between a vent face and the bisector of the two adjacent face normals. Anegative value indicates that vent faces will follow the bisector of the two adjacentface normals. A value in the range [0o – range-for-vent-face-insertion] is usuallyreasonable.

"max-chamfer-angle"If the angle between two adjacent face normals is larger than the specified angle,there may be an attempt to insert chamfer faces. A nonpositive value indicates thatno chamfer faces are to be inserted. A value in the range [30–90o] is usuallyreasonable.

"significant-gap-size"When offsetting two adjacent faces, a gap may appear between the offset faces. Thisgap spans two parallel offset edges. If the distance between the two edges is smallerthan the significant-gap-size, the gap will, in any case, be closed by extending andintersecting the offset faces. In this case, no vent faces or chamfer faces will beinserted. A nonpositive value indicates that vent faces or chamfer faces will beinserted if the corresponding conditions are satisfied.

335

Page 356: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

NOTE The order of the argument list items is not relevant, but the correct data values always mustfollow the keywords. Certain options may be contradictory, for example, the "lop" algorithmcannot be used for anisotropic deposition, while the "PT" algorithm cannot be used withrounding. In addition, certain arguments may have to be specified together. sdepe:depoperforms a preprocessing consistency check of the arguments. If a keyword does not match,an error message is displayed and the function execution will be terminated. In SentaurusStructure Editor, "aniso" can be used only for polyhedral models. For models containingnonplanar faces, the "aniso" option is automatically changed to "iso".

sdepe:anisotropic-deposit (old syntax)

RoundingTwo different algorithms are available to perform rounded depositions. Both arevalid only if the "algorithm" keyword is set to "lop" or "lopx". If "blend-global" isspecified, the edges that need to be rounded (based on the vexity flag) are roundedin a single step. In this case, the maximal rounding radius must be smaller than halfof the smallest edge length in the network (for "vexity" "convex" and "vexity""concave") and must be smaller than half of the smallest edge length for "vexity""all". If the radius is set larger than this value, it will be modified automatically. Ifthe blending algorithm is set to "blend-network", Procem will try to group the edgesthat need to be rounded into ‘blendable’ edge networks. In this case, theoretically,there is no upper limit other than the largest edge length on the imposed roundingradius. The "blend-network" algorithm may take a longer time to run.

Limitations: None

Action: Generates an anisotropic deposited layer.Group: sdepeSyntax: (sdepe:anisotropic-deposit deposit-material deposit-thickness

[blend-type blend-vexity blend-frad nsteps])Argument types: deposit-material DATEXMAT

deposit-thickness REALblend-type STRING {"none" | "bledge"}blend-vexity STRING {"none" | "convex" | "concave" | "all" |

"surfnorm"}blend-frad REALnsteps INTEGER

Returns: NoneErrors: NoneDescription: The command deposits an anisotropic layer on top of the device. For a detailed

description of the command, refer to the description of (sdepe:isotropic-deposit).Limitations: This command is obsolete. Use the sdepe:depo command instead (see sdepe:depo on

page 333).

336

Page 357: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdepe:isotropic-deposit (old syntax)

Action: Generates an isotropic deposited layer.Group: sdepeSyntax: (sdepe:isotropic-deposit deposit-material deposit-thickness

[blend-type blend-vexity blend-frad nsteps])Argument types: deposit-material DATEXMAT

deposit-thickness REALblend-type STRING {"none" | "bledge"}blend-vexity STRING {"none" | "convex" | "concave" | "all" |

"surfnorm"}blend-frad REALnsteps INTEGER

Returns: NoneErrors: NoneDescription: This command deposits an isotropic layer on top of the device. Several parameters

control the properties of the deposited layer. deposit-material is a DATEX materialthat will be the material property of the generated region. deposit-thickness is thethickness of the deposited layer. These two arguments are compulsory; the otherarguments are optional. If only the two compulsory arguments are used, thecommand generates a Manhattan-type deposited layer (no roundings). In this case,the deposition is performed in one step. If the model geometry is more complexwhere global de-looping is required, there may be a need to perform the depositionin several steps. Users must specify the number of steps for the deposition. If userswant to deposit a Manhattan-type layer in multiple steps, the optional parametersmust be specified as "none" "none" 0 nsteps. In this case, the deposition is performedin nsteps and, in each step, deposit-thickness/nsteps thickness is deposited.

Typically, multiple steps are needed if the model geometry is complex and thedeposited-thickness is greater than the length of the shortest edge that is alreadypresent in the model. In this case, a deposited step (deposit-thickness/nsteps) shouldbe smaller than the shortest edge length. In addition, in the case of narrow gaps, thedeposited step should be smaller than the diameter of the smallest gap. If users wantto generate a rounded deposited layer, the optional arguments must be specified.

blend-type can be none or bledge. If a rounded layer is needed, this parameter must beset to bledge. blend-vexity specifies the type of rounding. Since the deposition isonly an emulation of the deposition process, users can choose different possibilities:convex means that only the convex edges of the deposited layer are rounded, concavemeans only the concave edges are rounded and, if all is specified for blend-vexity,all edges are rounded.

337

Page 358: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Etching

sdepe:etch-material

Description: If the deposited Manhattan layer contains faces with almost parallel surfacenormals, these vexity options may fail. In that case, the surfnorm parameter needs tobe specified. There is an additional Scheme parameter, blend-angular-criteria,which controls which faces are used for blending. The default value is 0.7 radian,that is, approximately 40o. If the surface normal difference of two adjoining faces isgreater than blend-angular-criteria, the common edge of the two surfaces isrounded.

blend-frad is the rounding radius that will be applied during rounding. If blend-vexity is convex or concave, blend-frad can be as large as the deposit-thickness. Forblend-vexity = all, the blend-frad can be as large as half of the deposit-thickness.Deposition is performed in several steps. First, a Manhattan-type deposited layer iscreated. If nsteps = 1, this layer is generated in multiple steps. If the roundingoptions are specified, the rounding is performed on the Manhattan-type depositedbody. The radius of the rounding is constant. The rounding radius is a user-specifiedinput and is not selected automatically. In some cases, blend-frad can be as large asthe deposit-thickness or half of the deposit-thickness. In some cases, there are othergeometric restrictions that must be taken into consideration. For example, if theshortest edge length of the Manhattan-type deposited layer is smaller than thedeposit-thickness, the shortest edge length sets an upper bound for blend-frad.

Limitations: This command is obsolete. Use the sdepe:depo command instead (see sdepe:depo onpage 333).

Action: Performs an etching step operation.Group: sdepeSyntax: (sdepe:etch-material "material" material "depth" depth

["type" etch-type] ["region" region-name] ["algorithm" depo-alg] ["steps" nsteps] ["dx" dx "dy" dy "dz" dz] ["ray-vector" rayvector]["shadowing" sbool] ["BC" bcond] ["ext-dist" extdist] ["vexity" vexity-type] ["overetch" overetch][{"vlist" vertexlist "dlist" displist}] | [{"flist" facelist "dlist" displist ["fnlist" facenormallist]}] ["blend-global" | "blend-network"] ["radius" radius] ["range-for-vent-face-insertion" pt1 "vent-face-angle" pt2 "max-chamfer-angle" pt3 "significant-gap-size" pt4])

338

Page 359: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Argument types: material DATEXMATdepth REALetch-type {"iso" | "aniso" | "directional"}region-name STRINGdepo-alg {"lop" | "lopx" | "PT" | "lop-vertex" | "lop-face" |

"lop-offset"}nsteps INTEGER (>=1)dx REALdy REALdz REALrayvector GVECTORsbool BOOLEANbcond STRINGextdist REALvexity-type VEXITY TYPE {"convex" | "concave" | "all"}overetch REALvertexlist VERTEX LISTdisplist REAL LISTfacelist FACE LISTfacenormallist VECTOR LISTradius REALpt1 REALpt2 REALpt3 REALpt4 REAL

Returns: NoneErrors: NoneDescription: The etching step is very similar to the deposition step, except that the deposition is

performed on the ‘complementary body,’ which is generated temporarily during theetch operation. The deposited layer (which was added to the complementary body)is then removed from the device (only using the bodies with the specified materialattribute). All regions that are a different material and are originally above thematerial being etched away will protect the etch material underneath. The optional"overetch" keyword can be added to move the vertical etch faces by the specifiedoffset.

Description: A more detailed description of the available keywords and effects can be foundunder the sdepe:depo section (see sdepe:depo on page 333).

Limitations: None

339

Page 360: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdepe:etch (old syntax)

Doping and implantation

sdepe:doping-constant-placement

Action: Performs an etching operation.Group: sdepeSyntax: (sdepe:etch etch-material protect-material depth [nsteps overetch-dist

radius])Argument types: etch-material DATEXMAT

protect-material DATEXMATdepth REALnsteps INTEGERoveretch-dist REALradius REAL

Returns: NoneErrors: NoneDescription: The etch-material argument specifies the material that will be etched away. protect-

material specifies the material that will protect the underlying etch-material to beetched away. If protect-material is specified as an empty string " ", all exposedfaces of the etch-material are used during the etch step. depth specifies the etchdepth. If all (not protected) parts of the etch-material are to be etched away and ifthe specific region was obtained during a previous deposition step, it is suggestedthat a slightly larger depth value is used than the deposition thickness that was usedduring the previous deposition step. In this way, it can be guaranteed that noundesirable small features remain in the model.

Some optional arguments can also be used in the etching operation. If the etching isto be performed in several steps (based on similar considerations that werementioned for deposition), nsteps can be given an integer value greater than 1.When the etch operation is performed in nsteps, depth/nsteps thickness is etchedaway in each step. This may be needed for more complex models. overetch-distspecifies the required overetch distance.

Limitations: This command is obsolete. Use the sdepe:etch-material command instead (seesdepe:etch-material on page 338).

Action: Defines and applies a constant doping.Group: sdepeSyntax: (sdepe:doping-constant-placement name species concentration region-name)Argument types: name STRING

species STRINGconcentration REALregion-name STRING

340

Page 361: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdepe:doping-gauss

sdepe:implant

Returns: NoneErrors: NoneDescription: This command defines and applies a constant doping to a given region. In the case

of constant doping, a separate implant command is not necessary, as is the case withGaussian doping profiles.

Limitations: None

Action: Defines a Gaussian doping profile.Group: sdepeSyntax: (sdepe:doping-gauss name species lateral-penetration peak-concentr

peak-depth inside-concentr inside-depth)Argument types: name STRING

species STRINGlateral-penetration REALpeak-concentr REALpeak-depth REALinside-concentr REALinside-depth REAL

Returns: NoneErrors: NoneDescription: This command defines a Gaussian doping profile with a given name to be applied to

the device through the implant command. In order to create a doping implantation inthe device, both doping-gauss and implant statements must be used. The firststatement defines the doping profile and the second is used to apply the dopingprofile to the device.

Limitations: None

Action: Creates a doping distribution using analytic functions to emulate an implantoperation that can include diffusion.

Group: sdepeSyntax: (sdepe:implant doping-name ["flat" ["abs-height" abs-height |

"delta-height" delta-height]])Argument types: doping-name STRING

abs-height REALdelta-height REAL

Returns: NoneErrors: None

341

Page 362: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdepe:implant-imp3d

Description: This command applies the doping profile doping-name to the top surface of a device.Areas of ‘resist’ and device features covered by resist are protected from dopingimplantation. The doping profile doping-name must be previously defined using oneof the sdedr doping definition commands sdedr:define-constant-profile,sdedr:define-1d-external-profile, sdedr:define-erf-profile, sdedr:define-gaussian-profile, or sdedr:define-analytical-profile. Sentaurus Structure Editor analyzes thegeometry of the surface of the structure to find resist layers blocking the interfacewith the gas. By default, the doping profile doping-name is placed at all surface facesexposed to the gas. By giving the option "flat", the contour of the exposed surfaceis projected onto the x-y plane, and this planar surface is used as the reference forthe placement of the doping profile doping-name. By default, this plane is positionedalong the z-axis at the uppermost nonresist device feature. This z-coordinate isadjusted by using the option delta-height or is set absolutely by using the optionabs-height.

Limitations: None

Action: Creates a doping distribution using imp3d, emulating in 3D the final distribution ofan implant operation that can include diffusion.

Group: sdepeSyntax: (sdepe:implant-imp3d "name" name "dopant" dopant "dose" dose

"peakdepth" peakdepth "stddev" stddev "gamma" gamma "beta" beta"exptail" exptail "tilt" tilt "rotation" rotation "file-basename" file-basename)

Argument types: name STRINGdopant STRINGdose REALpeakdepth REALstddev REALgamma REALbeta REALexptail REALtilt REALrotation REALfile-basename STRING

Returns: NoneErrors: None

Ion Beamtilt

x

y

rotation

Definition of tilt and rotation

z

342

Page 363: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

Sentaurus Process and Scheme extensions of Sentaurus Structure Editor

sdesp:begin

Description: This extension creates a doping profile in the device using imp3d, emulating thefinal profile of doping implantation and diffusion steps, resulting in a distributionthat can be described by a Pearson distribution whose moment parameters aredefined by the user. Doping profiles created using this extension correctly take intoaccount shadowing effects and nonplanar device surfaces. name is the name of the implant.dopant is a valid DATEX variable name defining the species to be implanted. dose is given in units of cm–2. peakdepth is given in micrometers.stddev, gamma, and beta represent the second, third, and fourth moments of thePearson distribution, respectively. stddev is the standard deviation, gamma is theskewness, and beta is the kurtosis. gamma and beta are optional, with default values of0 and 3, respectively, resulting in a Gaussian distribution.exptail is optional; its default value is 0. It is the decay length of an exponentialdecay added to the Pearson distribution. The significance of the values stddev, gamma,beta, and exptail are described in the Sentaurus Process User Guide.

file_basename is optional. Every call to sdepe:implant-imp3d results in the creation ofa .bnd and an .ani file, which will be read by imp3d while meshing with Mesh orNoffset3D or Sentaurus Mesh. The base name of these files is created from theconcatenation of file-basename, name and #, where # is a sequential count startingfrom zero, assigned to each sdepe:implant-imp3d call in sequence. If file-basename isnot defined, its default value is an empty string.The angles tilt and rotation are given in degrees.

Limitations: Only supported in 3D.

Action: Begins Sentaurus Process and Sentaurus Structure Editor boundary merging mode.Group: sdespSyntax: (sdesp:begin)Argument types: NoneReturns: NoneErrors: NoneDescription: This extension is called before beginning the merging of .sat file boundaries. This

command must be called before the sdesp:define-step command can be used. Forthat reason, it is necessary to begin the Sentaurus Process and Sentaurus StructureEditor mode, which is terminated with the sdesp:finalize command.

Limitations: Only supported in 3D.

343

Page 364: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

sdesp:define-step

sdesp:finalize

Example:; Create Sentaurus Process Tcl file using sdesp commands; Start Sentaurus Process/SDE mode(sdesp:begin); Load .sat file files, each time defining a step name to be reproduced in Sentaurus ; Process(sdesp:define-step "step1" "_step1.sat")(sdesp:define-step "step2" "_step2.sat")(sdesp:define-step "step3" "_step3.sat")(sdesp:define-step "step4" "_step4.sat"); Conclude Sentaurus Process/SDE mode, write Tcl file(sdesp:finalize "sprocess_sde.tcl")

Action: Merges boundary in (.sat file) and defines a structure step to be reproduced inSentaurus Process.

Group: sdespSyntax: (sdesp:define-step step-name file-name)Argument types: step-name STRING

file-name STRINGReturns: NoneErrors: NoneDescription: Loads a .sat file file-name and merges with the currently loaded geometry.

Associates step-name with the current step.Limitations: NoneExample: See sdesp:begin on page 343.

Action: Completes Sentaurus Process and Sentaurus Structure Editor boundary merging andwrites a Sentaurus Process Tcl file.

Group: sdespSyntax: (sdesp:finalize Tcl-file-name)Argument types: Tcl-file-name STRINGReturns: NoneErrors: NoneDescription: This extension is used to complete the merging of boundaries in the Sentaurus

Process and Sentaurus Structure Editor mode. It writes a Tcl file defining the"recreate_step" Tcl procedure called from within Sentaurus Process to recreatemodel geometry by redefining region materials.

Limitations: NoneExample: See sdesp:begin on page 343.

344

Page 365: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR CHAPTER 9 SCHEME EXTENSIONS

sdesp:restore-state

Generating interconnect layers

sdepe:icon_layer

Action: Restores the internal state of Sentaurus Process and Sentaurus Structure Editor topermit the restarting of the boundary merging process.

Group: sdespSyntax: (sdesp:restore-state step-name-list)Argument types: step-name-list STRING LISTReturns: NoneErrors: NoneDescription: During boundary merging by Sentaurus Process and Sentaurus Structure Editor,

users may want to save the state and restore it later (perhaps in a different SentaurusStructure Editor session) before continuing with the merging leading to itsfinalization. To restore: Most of the internal bookkeeping is stored in the .sat filethat is reloaded. However, the sequence of steps that have been defined so far mustbe restored using this Scheme extension. The list of all steps in the correct order isgiven as a parameter to this extension.

Limitations: NoneExample: See sdesp:begin on page 343.

Action: Creates interconnect structures.Group: sdepeSyntax: (sdepe:icon_layer {"mask" mname} {"polarity" mpolarity} {"thickness" lth}

{"taper-angle" tang} {"ic-material" icmat} {"env-material" envmat} {"ic-region" icr} {"env-region" envr} {"base-coord" bc})

Argument types: mname STRING nonempolarity STRING "light"lth STRING nonetang STRING 0icmat STRING "Metal"envmat STRING "Gas"icr STRING "ic-region"envr STRING "env-region"bc REAL the previous maximal z-coordinate

Returns: NoneErrors: None

345

Page 366: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORCHAPTER 9 SCHEME EXTENSIONS

Description: The sdepe:icon_layer command can be used like other sdepe functions. Thearguments must be added as keyword–value pairs. The "mask" and "thickness"arguments must be specified; all other variables have default values. In theArgument types section above, the default values are listed.

If the region names are not given, different layers will have the same region names("ic-region" and "env-region"). Before the generation of boundary output, theseregions can be united or renamed to have unique region names.

Limitations: NoneExample: See the example in Generating an interconnect structure on page 71.

346

Page 367: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR APPENDIX A SCHEME SCRIPTING LANGUAGE

Sentaurus Structure Editor

APPENDIX A Scheme scripting language

Sentaurus Structure Editor uses Scheme, or more precisely, the Elk extension of Scheme. Scheme is aLISP-like programming language that differs significantly from most of the commonly usedprogramming languages. The effective use of Sentaurus Structure Editor (except the GUI layer) requiresa working knowledge of Scheme. In addition to the information in Synopsys manuals, there are manyresources for learning Scheme, including:

R5RS, The Revised Report on the Algorithmic Language SchemeThis report can be found at http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs.html.

R. Kent Dybvig, The Scheme Programming Language: ANSI Scheme, New Jersey: Prentice Hall,1996.

D. P. Friedman and M. Felleisen, The Little Schemer, Massachusetts: MIT Press, 4th ed., 1996.

D. P. Friedman and M. Felleisen, The Seasoned Schemer, Massachusetts: MIT Press, 1996.

http://www.scheme.com

Website of a Scheme dialect, Chez Scheme.

http://www.schemers.org

Website of Scheme-related topics.

http://www.schemers.com

Commercial website with useful information.

347

Page 368: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORAPPENDIX A SCHEME SCRIPTING LANGUAGE

348

Page 369: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR APPENDIX B ACIS GEOMETRY KERNEL

Sentaurus Structure Editor

APPENDIX B ACIS geometry kernel

The geometry operations in Sentaurus Structure Editor are based on the ACIS geometry kernel. TheACIS 3D geometric modeler (ACIS) is an object-oriented three-dimensional geometric modeling enginefrom Spatial Corp. (Spatial). ACIS is based on boundary representation. An ACIS boundaryrepresentation (B-rep) of a model is a hierarchical decomposition of the topology of the model into lowerlevel topological objects. A typical body contains lumps, shells, faces, loops, wires, coedges, edges, andvertices.

The Topology Browser in Sentaurus Structure Editor can be used to explore the relationship betweenthese objects. When Sentaurus Structure Editor generates a new body or performs a Boolean operationor any other action that affects the geometry, the ACIS data representation always provides a validmodel.

Since the geometry representation is always three-dimensional, there is a seamless transition from 2Dmodels to 3D models (using extrusion, sweep operations, and so on). When only two-dimensionalobjects are present, the DF–ISE output will be two dimensional. For 3D objects, the DF–ISE file is threedimensional.

An entity is the most basic ACIS object. The selection tool and (sde:selected-entities) always returnthe ACIS entity IDs for the selected entities. These entity IDs are used to refer to specific entities.

Apart from the Sentaurus Structure Editor online help and manual, a useful resource to learn the basicsof ACIS and Scheme is:

J. Corney and T. Lim, 3D Modeling with ACIS, Stirling, UK: Saxe-Coburg Publications, 2001.

349

Page 370: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORAPPENDIX B ACIS GEOMETRY KERNEL

350

Page 371: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR INDEX OF SCHEME EXTENSIONS

Sentaurus Structure Editor

Index of Scheme extensions

Bbody? ................................................................ 144, 153bool

regularise ................................................................. 32

Ccolor

rgb ........................................................................... 79convert-to-degree ...................................................... 185convert-to-radian ....................................................... 186curve

circular? ................................................................. 144elliptical? ................................................................ 144linear? .................................................................... 144

curve? ........................................................................ 144

Eedge

circular? ........................................................ 144, 153curve? .................................................................... 144elliptical? ....................................................... 145, 154end ......................................................................... 154length ..................................................................... 154linear ............................................................... 68, 155linear? ........................................................... 145, 155mid-point ................................................................ 155spline ....................................................................... 62spline? ................................................................... 145start ........................................................................ 156type ........................................................................ 156

edge? ............................................................... 145, 153entity

box ................................................................ 143, 156copy ....................................................................... 157debug ....................................................142, 146, 157deep-copy .............................................................. 158delete ..................................................................... 158display ................................................................... 183dist ......................................................................... 158edges ............................................................ 143, 159erase ...................................................................... 184faces .......................................................68, 143, 159loops ............................................................. 143, 159lumps ............................................................ 143, 160set-color ................................................................. 184set-refinement .......................................................... 90shells ............................................................ 143, 160vertices ......................................................... 143, 161

entity? ........................................................................ 145exists-mask-name ..................................................... 103extract-refwindow ............................................... 74, 300

Fface

area ....................................................................... 161conical? .........................................................145, 161cylindrical? ....................................................145, 162planar? ..........................................................145, 162spherical? ......................................................145, 162spline? ...........................................................145, 163toroidal? ........................................................145, 163

face? ......................................................................... 145filter

type ....................................................................... 178find-body-id .......................................................142, 186find-body-id-drs ......................................................... 189find-drs-id .................................................................. 189find-edge-id .......................................................142, 186find-edge-id-drs ......................................................... 188find-face-id ................................................. 54, 142, 187find-face-id-drs .......................................................... 188find-mask .................................................................. 103find-material-id ..................................................143, 187find-region-id .....................................................143, 187find-vertex-id .....................................................142, 188find-vertex-id-drs ....................................................... 189

Ggeneric

get ...................................................................41, 140get entity_id ........................................................... 140

get-body-list .............................................................. 178gvector ...................................................................... 166

- ............................................................................. 167+ ............................................................................ 167copy ....................................................................... 168cross ...................................................................... 168dot ......................................................................... 169from-to ................................................................... 169length .................................................................... 169parallel? ................................................................. 170perpendicular? ...................................................... 170reverse .................................................................. 170scale ...................................................................... 171set! ........................................................................ 171set-x! ..................................................................... 171set-y! ..................................................................... 172set-z! ..................................................................... 172transform ............................................................... 172unitize .................................................................... 173x ............................................................................ 173y ............................................................................ 173z ............................................................................ 174

gvector? .................................................................... 168

351

Page 372: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORINDEX OF SCHEME EXTENSIONS

Jjournal

abort ...................................................................... 149append ................................................................... 149load ................................................................. 18, 150off .................................................................... 18, 150on .................................................................... 18, 150pause .............................................................. 18, 151resume ............................................................ 18, 152save ................................................................ 18, 152step ........................................................................ 152

Lload ..................................................................... 16, 125loop

external? ....................................................... 145, 164loop? ................................................................. 145, 163lump? ................................................................ 145, 164

Mmerge-collinear-edges-2d ............................46, 49, 314

Ppart

entities .......................................................... 142, 179load ........................................... 16, 17, 49, 125, 179save .............................................................. 121, 180save-selection ........................................................ 180

position ...................................................................... 174distance ................................................................. 175set! ......................................................................... 175set-x! ...................................................................... 176set-y! ...................................................................... 176set-z! ...................................................................... 176x ............................................................................. 177y ............................................................................. 177z ............................................................................. 177

position? ........................................................... 145, 175

Rrbi

repair-body-intersection ........................................... 32refinement

props .........................................................89, 90, 215set-prop ............................................................ 87, 90

renderrebuild .......................................................25, 96, 184

roll .............................................................................. 181

Ssde

add-material ............................................41, 142, 225add-material-GUI ..................................................... 41attach-refinement ............................................ 90, 215bg-image-transparency ................................. 131, 206

build-mesh .................................................. 3, 86, 206clear ............................................31, 39, 42, 49, 194create-bg-image ................................... 131, 205, 206create-dialog .................................................132, 226define-global-refinement ......................................... 90define-parameter ...................................... 42, 43, 222define-refinement ............................................90, 216delay-graphics-update ........................................... 190delay-graphics-update? ......................................... 190delete-bg-image ............................................131, 206delete-parameter .............................................43, 223delete-refinement ............................................90, 216dialog-add-input ............................................132, 226dialog-add-pixmap .........................................132, 227dialog-delete ......................................... 132, 133, 227dialog-ok-command .......................................132, 227dialog-show .......................................... 132, 133, 228display ...........................................................125, 228exact-coords? ........................................................ 229export-mesh-3d ....................................................... 88find-reg-region ......................................................... 67fix-imprint ............................................................... 229fix-orientation ......................................................... 229get-default-boolean ................................................. 37get-default-material ................................ 41, 142, 230gui-get-integer ...............................................135, 230gui-get-real ....................................................135, 231gui-get-string .................................................135, 231hide ....................................................................... 195hide-bg-image ...............................................131, 205hide-contact ........................................................... 195hide-interface ........................................................ 196hide-mask ......................................................103, 196hide-material ......................................................... 196hide-refinement ...............................................90, 217hide-region ............................................................ 197info ................................................................141, 231load-model ..........................................................4, 15load-sat .................................................... 16, 17, 219material-type ......................................................... 232new-region-name .................................................. 243off-lights ................................................................. 191on-lights ................................................................. 191open-model .....................................................11, 219part-load ................................................................ 219pick-point-on-wp ............................................135, 232pick-two-points-on-wp ...................................136, 232post-message ................................................136, 233refresh ................................................................... 197remove-refinement ..........................................90, 217restore-cursor ........................................................ 233round-dfise-bnd ..................................................... 224save-model ..................................4, 11, 15, 125, 220save-parameters ................................................... 223scale-dfise-bnd ..................................................3, 224scale-scene .....................................................28, 233scmwin-get-font-families .................................10, 234scmwin-get-font-family ....................................10, 234

352

Page 373: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR INDEX OF SCHEME EXTENSIONS

scmwin-get-font-size ....................................... 10, 234scmwin-select-font .......................................... 10, 235scmwin-set-font-family .................................... 10, 235scmwin-set-font-size ....................................... 10, 235scmwin-set-prefs ............................................ 10, 236scmwin-set-window-height ............................. 10, 236scmwin-suppress-output ........................................ 236selected-entities ............................... 41, 57, 140, 237selected-refeval-windows ...................................... 237selected-refinements ............................................. 237separate-lumps .......................................42, 139, 207set-background-color ...................................... 10, 191set-default-boolean .................................................. 37set-default-material ....................................... 142, 238set-refinement ................................................. 90, 217setrefprops ................................................87, 89, 218set-region-counter ................................................. 141set-rendering-mode ............................................... 238set-selection-level ......................................... 140, 238setup-grid ............................................................... 239set-view-mode ....................................................... 192set-view-operator ................................................... 239set-window-position ........................................ 11, 192set-window-size .............................................. 11, 192set-window-style ............................................. 11, 193show ...................................................................... 198showattribs ............................................................ 198show-bg-image ............................................. 131, 205show-contact ......................................................... 199show-grid ............................................................... 199show-interface ....................................................... 199show-mask ................................................... 103, 200show-material ........................................................ 200show-pcurves ........................................................ 201show-refinement ............................................. 90, 218show-region ........................................................... 201split-solid ................................................................ 244stripextension ........................................................ 225test-entity ............................................................... 239toggle-lights ........................................................... 193use-camera-manipulator ................................... 28, 29view-filter-reset ...................................................... 202view-set-light-intensity ........................................... 193view-set-visible-area .............................................. 194wait-cursor ............................................................. 240window-select-2d ............................... 46, 47, 48, 314write-hsf ................................................................. 221xshow .................................................................... 202xshow-contact ........................................................ 203xshow-interface ..................................................... 203xshow-mask .................................................. 103, 203xshow-material ............................................... 96, 204xshow-region ......................................................... 204zoom-all ................................................................. 194

sdedelaunizerset-parameters ...................................................... 214set-tolerance .......................................................... 215

sdedrappend-cmd-file .................................................... 296clear ...................................................................... 297clear-multibox-definitions ...................................... 297clear-multibox-placements .................................... 297clear-profile-definitions .......................................... 298clear-profile-placements ........................................ 298clear-refinement-definitions ................................... 299clear-refinement-placements ................................. 299clear-ref-windows .................................................. 298define-1d-external-profile ..............................118, 309define-analytical-profile .................................118, 310define-analytical-profile-placement ....................... 310define-analytical-profile-placement (old syntax) .... 310define-constant-profile ...................................118, 311define-constant-profile-material ............................. 311define-constant-profile-placement ......................... 312define-constant-profile-region ............................... 312define-erf-profile ............................................118, 312define-gaussian-profile ..................................118, 313define-multibox-placement .................................... 308define-multibox-size .............................................. 308define-refeval-window .....................................74, 302define-refinement-function .................................... 301define-refinement-material .................................... 301define-refinement-placement ................................ 301define-refinement-region ....................................... 302define-refinement-size ........................................... 302define-submesh ..................................................... 304define-submesh-placement ................................... 305define-submesh-placement (old syntax) ............... 305delete-multibox-placement .................................... 306delete-profile-placement ........................................ 306delete-refeval-window .....................................74, 307delete-refinement-placement ................................ 307delete-submesh-placement ................................... 308del-selected-drentity .............................................. 306hide-mbox ............................................................. 291hide-profile ............................................................ 292hide-refinement ..................................................... 292hide-rewin .............................................................. 292read-cmd-file ...................................................16, 295redefine-refeval-window ........................................ 304set-meshing-engine ............................................... 295set-title ................................................................... 295show-mbox ............................................................ 293show-profile ........................................................... 293show-refinement .................................................... 293show-rewin ............................................................ 294write-cmd-file ......................................................... 296write-scaled-cmd-file .........................................3, 296

sdegeo2d-cut ..............................................................51, 2443d-cut ..............................................................64, 245align-horizontal ................................................46, 315align-horizontal-aut ..........................................46, 315align-to-line ............................................... 46, 48, 316align-vertical ....................................................46, 316

353

Page 374: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORINDEX OF SCHEME EXTENSIONS

align-vertical-aut .......................................46, 47, 316average-edge-length .........................46, 47, 48, 317bool-intersect .................................................. 40, 263bool-subtract ................................................... 40, 264bool-unite ........................................................ 40, 264break-nearly-axis-aligned-edges ..............46, 49, 317chamfer .................................................................. 265chamfer-2d ..................................................... 44, 266chamfer-edges ......................................................... 51contact-sets ........................................................... 280create-circle .................................................... 33, 245create-circular-sheet ....................................... 23, 245create-cone ............................................................ 246create-cuboid ..................................... 54, 55, 82, 247create-cylinder ....................................................... 248create-ellipse .................................................. 33, 249create-ellipsoid ...................................................... 250create-elliptical-sheet ...................................... 24, 249create-linear-edge ................................................. 251create-polygon ................................... 23, 33, 34, 251create-polygonal-sheet .......................................... 251create-polyline-wire ........................................ 35, 251create-prism ........................................................... 252create-pyramid ................................................ 83, 252create-rectangle ....................23, 32, 33, 34, 42, 253create-reg-polygon ...................................23, 33, 254create-ruled-region ............................ 23, 33, 34, 254create-sphere ...........................................24, 88, 255create-spline-wire ........................................... 35, 256create-torus ........................................................... 256create-triangle ........................................................ 257create-triangular-sheet .......................................... 257curve-intersect ....................................................... 240define-2d-contact ......................................80, 81, 281define-3d-contact ............................................ 80, 281define-3d-contact-by-polygon ................................ 281define-contact ................................................... 84, 85define-contact-set .....................................79, 81, 282define-coord-sys ............................................. 39, 262define-work-plane .....................................38, 82, 260delete-collinear-edges .................................... 46, 318delete-contact-boundary-edges ...................... 80, 283delete-contact-boundary-faces .............................. 283delete-contact-edges ...................................... 80, 283delete-contact-faces ....................................... 81, 284delete-contact-set ........................................... 79, 284delete-coord-sys ............................................. 39, 262delete-edges .............................................46, 48, 318delete-nearly-collinear-edges ...................46, 50, 319delete-refeval-window ............................................ 267delete-region .............................................54, 56, 266delete-short-edges ...................... 32, 46, 47, 48, 319delete-vertices ............................ 46, 47, 48, 56, 320delete-work-plane ........................................... 38, 261del-short-edges ............................................... 46, 318distance ................................................................. 241dnce ..........................................................32, 46, 320extend-device ................................................. 71, 280

extrude ............................................................57, 267fillet ........................................................................ 267fillet-2d .............................................................44, 268fillet-edges ............................................................... 52get-active-work-plane ............................................ 261get-auto-region-naming .................................141, 257get-contact-edgelist ............................................... 284get-contact-facelist ................................................ 285get-current-contact-set .......................................... 285get-default-boolean ............................................... 258get-region-counter ................................................. 241imprint-circular-wire .........................................82, 285imprint-polygonal-wire .....................................82, 286imprint-rectangular-wire ........................... 82, 83, 286imprint-triangular-wire ........................................... 287insert-vertex ............................................. 22, 81, 258max-edge-length .............................................46, 320min-edge-length ..............................................46, 321mirror-selected ......................................... 68, 69, 269move-edge ............................................................ 269move-vertex ....................................................22, 270point-entity-relationship ......................................... 241prune-vertices .................................................46, 321ray-test .................................................................. 242reflect .................................................................... 270revolve ................................................................... 271rotate-selected ................................ 68, 69, 103, 272scale ..................................................................3, 272scale-selected ................................... 67, 68, 69, 273set-active-coord-sys ........................................39, 263set-active-work-plane ........................ 38, 82, 83, 261set-auto-region-naming .................................141, 258set-contact-boundary-edges ................................. 287set-contact-boundary-faces .............................81, 287set-contact-edges .................................................. 288set-contact-faces ................................................... 288set-contact-faces-by-polygon ................................ 289set-current-contact-set .......................................... 290set-default-boolean ........................... 37, 38, 42, 259set-region-counter ................................................. 260set-region-counter-aut ........................................... 260split-insert-device ............................................70, 279sweep ....................................................... 59, 62, 273taper-faces ..................................52, 53, 54, 55, 274translate ................................................................ 275translate-selected .............................. 67, 68, 69, 276

sdeioread_dfise_mask ........................... 16, 103, 104, 332readbnd ........................................... 16, 17, 125, 221readgrd ..........................................................125, 221read-tdr-bnd ....................................................16, 222save-2d-dfise-bnd ................................................. 208save-2d-tdr-bnd ..................................................... 209save-3d-dfise-bnd ................................................. 209save-3d-tdr-bnd ..................................................... 210save-dfise-bnd ....................................................... 210save-tdr-bnd .......................................................... 211

354

Page 375: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITOR INDEX OF SCHEME EXTENSIONS

sdenoffsetcreate-boundary .................................................... 211create-global .......................................................... 212create-isoline ......................................................... 212create-noffset-block ............................................... 213create-noffset-interface .......................................... 213

sdepeadd-substrate ...................... 106, 107, 110, 125, 326anisotropic-deposit ................................................ 111anisotropic-deposit (old syntax) ............................. 336anisotropic-pattern (old syntax) ............................. 330create-substrate (old syntax) ................................. 327define-pe-domain ..................................106, 110, 327depo ............................................. 106, 111, 125, 333doping-constant-placement ..................106, 117, 340doping-gauss ........................................106, 118, 341etch (old syntax) .................................................... 340etch-material ................................ 106, 113, 125, 338fill-device ............................. 106, 107, 114, 125, 329generate-domainboundary .................................... 328generate-mask ............................. 103, 104, 125, 332icon_layer ....................................................... 71, 345implant ..................................................106, 118, 341implant-imp3d ........................................................ 342isotropic-deposit (old syntax) ................................. 337isotropic-pattern ..................................................... 111isotropic-pattern (old syntax) ................................. 331pattern ......................................... 106, 110, 125, 330polish-device ....................... 106, 107, 114, 125, 329remove ......................................... 106, 115, 125, 329

sdeppclear ................................................................ 99, 322clear-data ........................................................ 99, 322load-data ......................................................... 99, 323load-grid .......................................................... 99, 323set-ash-factor .................................................. 99, 323set-colormap-type ........................................... 99, 324set-data-mapping ............................................ 99, 324set-face-displacement ........................................... 324set-num-colors ................................................ 99, 325set-palette-orientation ..................................... 99, 325set-plot-type .................................................... 99, 325show-legend ................................................... 99, 326show-mesh-edges .......................................... 99, 326

sdespbegin .................................................... 121, 122, 343define-step ........................................... 121, 122, 344finalize .................................................. 121, 123, 344restore-state .......................................................... 345

set-interface-contact ................................................. 291shell? .................................................................145, 164solid

area ....................................................................... 181closed? .................................................................. 145manifold? ............................................................... 145massprop .............................................................. 182

solid? .................................................................145, 165sort ............................................................................ 242sweep

options ...................................................... 59, 63, 276system

command .............................................................. 243getenv ................................................................... 243

Ttransform

reflection ................................................... 68, 69, 277rotation ............................................................69, 277scaling ...................................................... 67, 69, 278translation ................................................. 67, 69, 278

Vvertex

position .................................................................. 143vertex? ..............................................................145, 165view

display-param-lines ................................................. 24set-edge-weight ....................................................... 25set-line-weight ......................................................... 25vertices ............................................................25, 185

Wwire

closed? .................................................................. 145planar? ..........................................................145, 166

wire? .................................................................145, 165wire-body? ........................................................145, 166

355

Page 376: Sentaurus Structure Editor -  · SENTAURUS STRUCTURE EDITOR CONTENTS iii Sentaurus Structure Editor About this manual.....xvii

SENTAURUS STRUCTURE EDITORINDEX OF SCHEME EXTENSIONS

356