Sentaurus™ Workbench User Guide Version I-2013.12, December 2013 Copyright and Proprietary Information Notice © 2013 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. Destination Control Statement All 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. Disclaimer SYNOPSYS, 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. Trademarks Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at http://www.synopsys.com/Company/Pages/Trademarks.aspx. All other product or company names may be trademarks of their respective owners. Synopsys, Inc. 700 E. Middlefield Road Mountain View, CA 94043 www.synopsys.com ii Sentaurus™ Workbench User Guide I-2013.12 Contents About This Guide xi Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii Typographic Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Accessing SolvNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Contacting Synopsys Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Contacting Your Local TCAD Support Team Directly. . . . . . . . . . . . . . . . . . . . . . . xiv Chapter 1 Overview 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Sentaurus Workbench Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Compatibility with Previous Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 System Requirements and Setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Sentaurus Workbench Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Projects Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Viewing Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Adding Multiple Roots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Updating the View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Project Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Toolbar Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Projects Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Project Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Scheduler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Scheduler Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Batch Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 spp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 gsub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 gjob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 gcleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 gtclsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 swblm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Chapter 2 Managing Projects 11 Creating a Project or Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Opening a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Sentaurus™ Workbench User Guide I-2013.12 iii Contents Changing a Project Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Changing the Default Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Copying a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Saving a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Automatically Saving a Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Moving a Project or Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Drag-and-Drop Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Cut-and-Paste Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Deleting a Project or Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Renaming a Project or Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Project Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Exporting and Importing Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Chapter 3 Project View 19 View Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Default View Configuration in User Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Project View Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Configuring the Project View Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Setting the Project View Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Customizing the Current Project View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Configuring Column Width and Row Height . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Family Tree View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Experimental Plan View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Parameter Values View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Variable Values View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Real and Virtual Family Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Configuring Node Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Showing Tool Comment Row. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Showing Process Name Row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Showing Tool Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Configuring Font of Project View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Zooming Project View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Freezing Columns and Rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Selecting Nodes with Mouse and Keyboard Operations . . . . . . . . . . . . . . . . . . . . . . . . . 35 Viewing Node Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Viewing Node Output Files in Sentaurus Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Node Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Copying Table Parts to Other Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Exporting a Spreadsheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Exporting Spreadsheet to Spreadsheet Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Exporting Spreadsheet to Inspect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 iv Sentaurus™ Workbench User Guide I-2013.12 Contents Viewing Sentaurus Workbench and Optimizer System Log Files . . . . . . . . . . . . . . . . . . 41 Visualizing Response Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Scheduler View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Viewing Running Nodes in Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Configuring User Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Configuring Project Queues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Editing Queue Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Chapter 4 Editing Projects 45 Read-Only and Writable Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Undoing Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Adding Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Deleting Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Copying and Pasting Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Changing Tool Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Editing Tool Input Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Locking and Unlocking Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Double-clicking Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Adding Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Deleting Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Copying and Pasting Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Changing Parameter Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Removing Parameter Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Double-clicking Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Defining Global Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Changing Variable Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Deleting Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Copying and Pasting Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Formatting Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Defining Variables Per Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Changing and Deleting Variable Values at a Node . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Double-clicking Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Viewing and Editing Node Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Changing Parameter Values Directly in Node Cells . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Editing Parameter Values of Multiple Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Double-clicking Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Copying and Pasting Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Sentaurus™ Workbench User Guide I-2013.12 v Contents Viewing Node Dependencies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Experiments and Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Adding Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Deleting Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Sorting Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Importing Experiments from a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Viewing Experiment Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Adding Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Deleting Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Copying and Moving Experiments Between Scenarios . . . . . . . . . . . . . . . . . . . . . . . 75 Copying and Moving Experiments Between Projects . . . . . . . . . . . . . . . . . . . . . . . . . 76 Pruning and Unpruning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Locking Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Quick-running Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Folding and Unfolding Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Project Consistency Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Activating Project Consistency Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Removing Exclamation Marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Re-Executing Marked Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Chapter 5 Design-of-Experiments and Taguchi Wizards 83 Design-of-Experiments (DoE) Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Screening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Response Surface Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Stochastic Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Square Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Sensitivity Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Standard Sensitivity Analysis Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Taurus Workbench–compatible Sensitivity Analysis Mode . . . . . . . . . . . . . . . . . 91 User-Defined Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Final Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Taguchi Wizard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Chapter 6 Preprocessing Projects 99 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Global and Run-Time Preprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Preprocessor #-Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 @-References and Tree Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 User-Defined Delimiters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Node Filters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 vi Sentaurus™ Workbench User Guide I-2013.12 Contents Node Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Split Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Preprocessed Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Extracted Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Execution Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Tcl Command Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Creating Tcl Command Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Tcl Preprocessing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Tcl Blocks and Sentaurus Workbench Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Input and Output Operations Inside Tcl Command Blocks. . . . . . . . . . . . . . . . . . . . 111 Summary of Rules for Using Tcl Command Blocks . . . . . . . . . . . . . . . . . . . . . . . . . 112 When to Use Tcl Command Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Chapter 7 Running Projects 115 From the Project Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 From the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Scheduling Project Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Standard Configuration Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Research Configuration Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Defining Run Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Delaying the Execution of Projects and Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Preprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Aborting Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Aborting Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Updating Node Statuses and Extracted Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Customizing Project Execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Viewing Project Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Viewing Project History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Project Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Chapter 8 Cleaning Up Projects 127 Cleaning Up Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Cleaning Up the Output of Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Cleaning Up Projects from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Detecting Files to Remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Backing Up Node Files Automatically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Sentaurus™ Workbench User Guide I-2013.12 vii Contents Chapter 9 Configuring Sentaurus Workbench 131 Configuring Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Tool Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Run Limits Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Format of XML-compatible Run Limits Settings File . . . . . . . . . . . . . . . . . . . . . . . 143 Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Chapter 10 Integrating Sentaurus Workbench with Other Tools 149 Synchronizing Project and Ligament Process Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Symbolic Links to Node Output Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Visualizing Response Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 First Step of RSM Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Including Parameters in RSM Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Second Step of RSM Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Visualization Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Taurus Workbench to Sentaurus Workbench Converter . . . . . . . . . . . . . . . . . . . . . . . . 156 Merging TWB Tool Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Adapting TWB Parameter Names to SWB Parameter Names . . . . . . . . . . . . . . . . . 158 Chapter 11 Schedulers 161 Scheduling Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 DMW Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Host Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Constraint Database/Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Host Allocation Policy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Troubleshooting DMW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 LSF Scheduler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Troubleshooting LSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Nodes Are Submitted but Not Executed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Nodes Are Not Executed and Log File Contains Complaints About bjobs Output171 SGE Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Troubleshooting SGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Reducing Frequency of SGE Job Polling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Configuring the Scheduling System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Global Queue Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 For Local Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 For LSF Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 For SGE Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 viii Sentaurus™ Workbench User Guide I-2013.12 Contents For DMW Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 HostDB (for DMW). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Site Queue Configuration and HostDB Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Tool Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Global Tool Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 User Tool Associations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Project Tool Associations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Node-specific Constraints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Run-Time Assignments in the GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Extended Scheduler Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Appendix A Preprocessor and Reference Syntax 187 @-References and Tree Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Horizontal Flow Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Vertical Flow Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 #-Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Split Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Node Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Appendix B Menus of Graphical User Interface 197 Project Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Edit Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Scheduler Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 View Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Scenario Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Tool Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Parameter Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Experiments Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Nodes Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Variables Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Optimization Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Calibration Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 PCM Studio Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Extensions Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Help Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Keyboard Navigation Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Sentaurus™ Workbench User Guide I-2013.12 ix Contents Appendix C Sentaurus Workbench Files 213 Project Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Hidden Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 User Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Global Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Site Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Typical Input and Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Appendix D DMW Scheduler: Frequently Asked Questions 217 Limitations of Sentaurus Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Requirements for Using DMW in a Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Global Queue and Global Host Database Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Site Queue and Site Host Database Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Administrator: Setting Up DMW Queues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 User: Setting Up User Queues and Project Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 User: Excluding a Specific Host and Running on a Specific Set of Hosts . . . . . . . . . . . 220 Checking the DMWUmpire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Standard Tests to Troubleshoot a Particular Machine in the DMW Network . . . . . . . . 222 Using ssh and DMW Scheduler Together. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Appendix E Sentaurus Workbench on VNC 225 Double-clicking Does Not Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 x Sentaurus™ Workbench User Guide I-2013.12 About This Guide The Synopsys Sentaurus™ Workbench tool is the primary graphical front end for the integration of TCAD Sentaurus simulation software into one environment. Sentaurus Workbench is a software package that provides a convenient framework to design, organize, and automatically run complete TCAD simulation projects. It provides you with a graphical user interface to drive a variety of Synopsys simulation and visualization tools and other third-party tools, and to automate the execution of fully parameterized projects. Sentaurus Workbench also supports design-of-experiments, extraction and analysis of results, optimization, and uncertainty analysis. It has an integrated job scheduler to speed up simulations and takes full advantage of distributed, heterogeneous, and corporate computing resources. The main chapters are: ■ Chapter 1 gives an overview of Sentaurus Workbench. ■ Chapter 2 presents information for managing projects in Sentaurus Workbench. ■ Chapter 3 describes how to alter the viewing configuration of projects in Sentaurus Workbench. ■ Chapter 4 describes how projects can be edited. ■ Chapter 5 describes the design-of-experiments (DoE) and Taguchi wizards. ■ Chapter 6 presents information about preprocessing projects. ■ Chapter 7 discusses how to run projects in Sentaurus Workbench. ■ Chapter 8 discusses how to clean up projects. ■ Chapter 9 describes how to configure Sentaurus Workbench. ■ Chapter 10 provides information about how to use other tools from Sentaurus Workbench. ■ Chapter 11 describes the schedulers used in Sentaurus Workbench. Audience This guide is intended for users of the Sentaurus Workbench software package. Sentaurus™ Workbench User Guide I-2013.12 xi About This Guide Related Publications Related Publications For additional information about Sentaurus Workbench, see: The documentation installed with the software and available through the Sentaurus Workbench Help menu. ■ The TCAD Sentaurus release notes, available on SolvNet® (see Accessing SolvNet on page xiii). ■ Documentation available through SolvNet at https://solvnet.synopsys.com/DocsOnWeb. ■ Typographic Conventions xii Convention Explanation [] Brackets 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 or an option. Courier font Identifies text that is displayed on the screen or that you 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 Ctrl key). Menu > Command Indicates a menu command, for example, File > New (from the File menu, select New). NOTE Identifies important information. Sentaurus™ Workbench User Guide I-2013.12 About This Guide Customer Support Customer Support Customer support is available through SolvNet online customer support and through contacting the Synopsys support center. Accessing SolvNet SolvNet includes an electronic knowledge base of technical articles and answers to frequently asked questions about Synopsys tools. SolvNet also gives you access to a wide range of Synopsys online services, which include downloading software, viewing documentation, and entering a call to the Synopsys support center. To access SolvNet: 1. Go to the SolvNet Web page at https://solvnet.synopsys.com. 2. If prompted, enter your user name and password. (If you do not have a Synopsys user name and password, follow the instructions to register with SolvNet.) If you need help using SolvNet, click Help on the SolvNet menu bar. Contacting Synopsys Support If you have problems, questions, or suggestions, you can contact Synopsys support in the following ways: ■ ■ Go to the Synopsys Global Support Centers site on www.synopsys.com. There you can find e-mail addresses and telephone numbers for Synopsys support centers throughout the world. Go to either the Synopsys SolvNet site or the Synopsys Global Support Centers site and open a case online (Synopsys user name and password required). Sentaurus™ Workbench User Guide I-2013.12 xiii About This Guide Customer Support Contacting Your Local TCAD Support Team Directly Send an e-mail message to: ■ support-tcad-us@synopsys.com from within North America and South America. ■ support-tcad-eu@synopsys.com from within Europe. ■ xiv support-tcad-ap@synopsys.com from within Asia Pacific (China, Taiwan, Singapore, Malaysia, India, Australia). ■ support-tcad-kr@synopsys.com from Korea. ■ support-tcad-jp@synopsys.com from Japan. Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 1 Overview This chapter provides an overview of Sentaurus Workbench. Introduction Sentaurus Workbench is the Synopsys framework designed to make the use of Synopsys TCAD tools easier. It frees you from typing system commands for handling data files or starting applications. One of its main advantages over a traditional simulation session is the possibility of parameterizing input files to run simulation groups automatically. The main features of the Sentaurus Workbench framework include: ■ ■ ■ ■ ■ ■ Intuitive graphical user interface (GUI) with functionality that simplifies the editing and handling of complex simulation projects Flexible configuration and storing of the view of the project simulation flow Organization of simulations into projects and folders provides a clear overview of the overall simulation environment Project database is mapped to the underlying, native file systems and allows robust file management in a multiuser, distributed environment Tool flow with multiple instances of the same tool Simulation parameters can be used in any input file; the resulting simulation experiments can be edited before running the simulations ■ Scenarios-to-group simulation experiments ■ Easy building of new simulation projects by copying and pasting parts of existing projects ■ Design-of-experiments (DoE), optimization, and statistical analysis can be performed ■ Scheduler within same GUI to schedule and monitor the running of simulation projects ■ ■ ■ Access to backend batch systems to run large simulations in parallel on a network of workstations and computing clusters such as the Sun Grid Engine (SGE), Load Sharing Facility (LSF), TORQUE Resource Manager/Maui Cluster Scheduler, and Tivoli Workload Scheduler LoadLeveler Extensive collection of example projects and application notes that can be copied and modified as required Flexible open tool interface makes it possible to plug in third-party tools The Sentaurus Workbench framework has one graphical application consisting of two tabs for the Project Editor (Project tab) and the Scheduler (Scheduler tab), and batch tools (spp, gsub, gjob, gcleanup, gtclsh, and swblm). Sentaurus™ Workbench User Guide I-2013.12 1 1: Overview Sentaurus Workbench Projects Sentaurus Workbench Projects A project consists of a family of scenarios. Each scenario consists of a family of experiments where certain sensible input variables take different values. Parameters can be introduced at any point in the simulation flow, from the process to the device simulation phases. A parameterized project is represented as a tree structure, the so-called Family Tree, which is derived from a simulation flow and a combination of all the parameter values. Each level in the Family Tree corresponds to a simulation phase, as defined in the simulation flow. To distinguish between real and virtual simulation phases: real phases correspond to the execution of tool instances, and virtual phases are introduced by parameters and do not lead to any tool execution. In a real simulation phase, there are as many tool instances as nodes in the corresponding tree level. Each tool instance is characterized by a combination of parameter values that defines the path from the root node to the tool instance node. In the Family Tree, each node has a unique number – the node key (<nkey>). A real node represents the end of a simulation phase and holds the output of the corresponding tool instance. Sentaurus Workbench associates output to a node by adding the prefix n<nkey>_ to all the output file names of the tool used. In physical form, a project exists as a directory in the file system. The directory contains a .project file that indicates to the Sentaurus Workbench framework that the current directory is a project directory. The main attribute of a project is its configuration. The project configuration defines the editing and running policy for that project. You can choose either the Standard or the Research configuration for your project. Projects with the Standard configuration deliver the maximum possible level of automation and consistency; however, you are limited with regard to applying changes to a running project. In contrast, projects with the Research configuration allow maximum flexibility, while Sentaurus Workbench partially delegates to you the responsibility of maintaining consistency between input data and simulation results. The configuration of your project can be changed at any time. The default Sentaurus Workbench project configuration is Standard; however, you can redefine it in the user preferences (see Changing the Default Project Configuration on page 12). Compatibility with Previous Versions Sentaurus Workbench is designed to be backward compatible. Old projects can be loaded, edited, and run by Sentaurus Workbench. All necessary conversions are made automatically by Sentaurus Workbench. 2 Sentaurus™ Workbench User Guide I-2013.12 1: Overview System Requirements and Setup Sentaurus Workbench is not forward compatible, that is, there is no guarantee that you can edit new projects with earlier versions of the tool. System Requirements and Setup The following environment variables must be set up: STROOT Where the Synopsys TCAD software is installed. STRELEASE The version and release information. If not given, it defaults to ‘current’. STDB The directory where all user projects reside. An example from a UNIX .cshrc file is: setenv STROOT /home/user/ST setenv STRELEASE I-2013.12 setenv STDB $HOME/DBtest Sentaurus Workbench Options Usage: swb [options] [DIRECTORY | FILE] Description: Sentaurus Workbench (SWB) is a graphical front-end for editing and examining of Synopsys TCAD projects. Options: -h[elp] : Displays this help message. -a[dvanced] : Initializes SWB Advanced. Allows the use of Optimizer and Calibration menus -b[asic] : Initializes SWB Basic. SWB without Optimizer and Calibration menus -nowait : Disables license queueing and exits if the license is not available. -default : Resets preferences to default settings. (-plugin null : Switches off standard plug-ins.) -v[ersion] : Displays the version number. -verbose : Displays all messages. Arguments: DIRECTORY FILE : A SWB project directory. : A compressed file with a SWB project. Sentaurus™ Workbench User Guide I-2013.12 3 1: Overview Projects Browser Sentaurus Workbench can be started in two different modes: ■ -advanced: Optimization (Optimizer) menu and Calibration menu are available. ■ -basic: Optimization menu and Calibration menu are not available. If Sentaurus Workbench is started without one of these two options, it automatically starts in the -basic mode. If you start Sentaurus Workbench when no license is available, Sentaurus Workbench queues for the license from the license manager and waits until the license becomes available. You can start Sentaurus Workbench with the -nowait command-line option to prevent it queueing for a license and waiting. In this case, if no license is available, Sentaurus Workbench exits. Projects Browser Projects are managed in the projects browser, which is organized like a tree, with the leaves of the tree being the project directories. The tree displays the current file system under the STDB setting. Other project directories and project collections can then be attached to the window. NOTE Any directory under a project directory is not displayed. The Sentaurus Workbench framework does not work if there is a .project file anywhere above STDB. Viewing Trees Browsing directories is intuitive. The directories can be expanded or closed, and subdirectories and project folders below directories can be visualized. Navigation is possible using the keyboard and mouse operations. Right-click the pane to display a context menu for the browser section. The color of a node represents the project status. Adding Multiple Roots Additional directories for browsing can be added to the main tree. By selecting the Attach Root context menu option, an additional directory can be attached by browsing to the specific root directory. A root directory is typically a directory that contains a collection of folders and projects. It can also be a project directory. An important constraint is that directories above a root directory 4 Sentaurus™ Workbench User Guide I-2013.12 1: Overview Project Editor must not contain project directories or .project files, which Sentaurus Workbench interprets as project directories. Updating the View The directory structure, attached roots, and project statuses are updated at regular intervals. This interval can be set up in the preferences. However, you can update the selected branch of the tree at any time. To force updating of the tree branch: 1. Right-click the tree branch. 2. Select Refresh or press the F5 key. To update the whole tree: 1. Right-click the tree root. 2. Select Refresh or press the F5 key. Project Editor The Project Editor is the main view in Sentaurus Workbench. It provides a convenient GUI to access, organize, and edit a database of simulation projects. Sentaurus Workbench has been designed with different work areas. The simulation flow can be oriented horizontally (see Figure 1 on page 6) or vertically (see Figure 2 on page 6). Sentaurus™ Workbench User Guide I-2013.12 5 1: Overview Project Editor 6 Figure 1 Project Editor main view showing traditional horizontal flow orientation Figure 2 Project Editor main view showing vertical flow orientation Sentaurus™ Workbench User Guide I-2013.12 1: Overview Project Editor Toolbar Buttons Table 1 lists the toolbar buttons in the Project Editor. Table 1 Button Project Editor toolbar buttons Description Button Description Creates a new project Displays information (properties) about the currently selected item Opens a project Runs current project or selected nodes Saves a project under an existing name Aborts running project or selected nodes Reloads a project Zooms in to the project view Stops the loading of a project Zooms out of the project view Closes the currently opened project Resets zoom to the default Cuts a selection Changes the current project view to the next view Copies a selection Opens a spreadsheet application with the current view Pastes a cut or copied selection Displays a simulation project vertically Undoes previous operation Displays a simulation project horizontally Adds a new tool, parameter, experiment, or variable to the tree Displays a simulation project in compact mode Deletes selected tool, parameter, experiment, or variable from the tree Displays a simulation project in full mode Adds a new experiment to the tree (the default values are preset to a selected experiment if there is one) Opens a command prompt in a project directory as a separate shell Adds parameter values to either all (full factorial) or selected experiments Opens manuals in PDF format using Adobe Acrobat Opens submenu for editing input files of selected tool Opens TCAD Sentaurus Tutorial (HTML training material) in Web browser Visualizes output files for selected nodes Opens application notes information page in Web browser Quickly visualizes output files for selected nodes with the default visualizer Sentaurus™ Workbench User Guide I-2013.12 7 1: Overview Scheduler Projects Browser In the left pane of Figure 1 on page 6 and Figure 2 on page 6, the projects browser shows a global view of the project database of the user as a hierarchy of folders and projects. It features a tree representation to navigate through this hierarchy, to open and close folders, and to load projects, and for diverse operations on entire projects and folders, such as copying and moving projects. Additional hierarchies of folders and projects can be attached to the projects browser. Project Tab The Project tab in the right pane of Figure 1 and Figure 2 shows an individual project as a table of experiments and simulation results. The rows from left to right in the horizontal flow orientation (see Figure 1) or columns from top to bottom in the vertical flow orientation (see Figure 2) represent the simulation flow followed by extracted results. The simulation flow is the sequence of tools running the simulations steps, split by parameters. Columns in the horizontal orientation (or rows in the vertical orientation) represent different experiments and their corresponding parameter and variable values. You can add, remove, and modify experiments, and control the running of experiments. Scheduler The Scheduler is used to schedule and monitor the running of simulation jobs of a project. It provides you with an overview of the jobs that are running and their distribution on the local area network. It also allows you to submit and abort jobs, and to define scheduling queues and job mapping constraints. To open the Scheduler: ■ Scheduler > Show Scheduler or click the Scheduler tab. Scheduler Tab In Figure 3 on page 9, the right pane shows the Scheduler tab, which displays a table of running jobs with different scheduling information, such as running time and running host. Only jobs belonging to the selected project or folder are shown. Individual jobs can also be aborted. 8 Sentaurus™ Workbench User Guide I-2013.12 1: Overview Batch Tools Figure 3 Main window of Sentaurus Workbench showing Scheduler tab Batch Tools spp The batch tool spp is the preprocessor of Sentaurus Workbench. It prepares a project for execution. Its goals are to: ■ ■ Calculate an optimum execution graph from the simulation tree to take advantage of parallel computing while enforcing start–completion job interdependencies. Generate actual tool input files from user-provided templates to differentiate experiments. gsub The batch tool gsub consists of a simple command to submit jobs to the scheduler for execution. It also constitutes the interface of Sentaurus Workbench to different internal or external batch systems. Sentaurus™ Workbench User Guide I-2013.12 9 1: Overview Batch Tools gjob The batch tool gjob manages the execution of each individual job. It controls the evaluation of the job prologue and epilogue, and the running of the corresponding simulation tool. gcleanup The batch tool gcleanup is a useful utility to clean up a project from the command line. All operations including the renumbering of the tree can be performed using this tool. gtclsh The batch tool gtclsh is a tool command language (Tcl) shell that has been extended with all of the internal commands of the Sentaurus Workbench framework, such as tree manipulation. swblm The daemon process swblm is a dispatcher of interprocess communications between Sentaurus Workbench components: swb, gsub, gjob, and spp. Sentaurus Workbench starts this process automatically when needed. You do not need to terminate a running daemon process or to start a new one manually. 10 Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 2 Managing Projects This chapter describes the operations that can be performed on the projects and directories by using the projects browser. Creating a Project or Folder To create a project: ■ Project > New > New Project. To create a folder: 1. Select the folder in which a new folder is to be created. 2. Project > New > New Folder, or right-click and select New Folder. 3. Type the name of the new folder. 4. Press the Return key. The new folder is saved. NOTE It is not possible to create new folders inside projects. Opening a Project To open a project from the browser: ■ Double-click the project in the tree. Alternatively: 1. Browse through the tree and select the project to be opened. 2. Press the Return key, or double-click the selection, or right-click and select Open. The project opens in the main view. Sentaurus™ Workbench User Guide I-2013.12 11 2: Managing Projects Changing a Project Configuration Changing a Project Configuration To change the project configuration from the browser: 1. Select the project in the tree. 2. To select the Standard configuration, Project > Configuration > Standard. 3. To select the Research configuration, Project > Configuration > Research. NOTE The project must be in the writable area. Changing the Default Project Configuration The default Sentaurus Workbench project configuration is Standard. However, you can configure Sentaurus Workbench to set up the necessary project configuration automatically for your new projects and those old projects that do not yet have a configuration attribute. To change the default project configuration: 1. Edit > User Preferences or press the F12 key. 2. Select Project > Configuration > Default Project Configuration. 3. Assign to Standard or Research. Copying a Project To copy a project: 1. Browse through the tree and select the project to be copied. 2. Copy the selection by using Ctrl+C, or right-click and select Copy. 3. Browse to the required destination folder or keep the selection. 4. Paste the selection by using Ctrl+V, or right-click and select Paste. NOTE 12 Projects (and folders) cannot be copied inside other projects. Sentaurus™ Workbench User Guide I-2013.12 2: Managing Projects Saving a Project NOTE If the project is being pasted over the original project, the new project is created in the same folder with ‘Copy_of_’ before the project name. If the folder is being pasted over the original folder, the new folder together with all its content is created in the same parent folder with ‘Copy_of_’ before the folder name. Saving a Project To save the current project in the same directory: ■ Project > Save or Ctrl+S. To save a project with a different name or in a different directory: ■ Project > Save As > Project. All the contents of the project directory is copied to the new directory, and the project is saved. To save time and omit copying all of the preprocessed and node output files: ■ Project > Save As > Clean Project. To create a new project on the basis of selected experiments: ■ Project > Save Selected Experiments > Project. To create a new project on the basis of selected experiments, but without copying the simulation results: ■ Project > Save Selected Experiments Clean > Clean Project. Automatically Saving a Project You can configure Sentaurus Workbench to save your projects automatically. Sentaurus Workbench periodically saves the currently opened project for your convenience. To switch on automatic saving of a project: 1. Edit > User Preferences or press the F12 key. 2. Select Project > Auto Save and set Project Auto Save Interval (min). 3. Assign a nonzero value specifying the auto-saving interval in minutes. A value of 0 means that the feature is switched off, which is the default. Sentaurus™ Workbench User Guide I-2013.12 13 2: Managing Projects Moving a Project or Folder NOTE Auto-saving does not take effect when the currently opened project is running. Moving a Project or Folder There are two methods for moving projects and folders across directories. Drag-and-Drop Operation 1. Browse through the tree and select the project or folder to be moved. 2. Drag the project or folder to the destination project or folder. Cut-and-Paste Operation 1. Browse through the tree and select the project or folder to be moved. 2. Cut the selection by using Ctrl+X, or right-click and select Cut. 3. Browse to the destination project or folder. 4. Paste the selection by using Ctrl+V, or right-click and select Paste. Note the following: ■ Projects opened in the browser or projects that are running cannot be moved. ■ Folders with any open or running project cannot be moved. ■ Projects or folders cannot be placed inside projects. ■ Projects without write permission are copied. Deleting a Project or Folder To delete a project or folder: 1. Browse through the tree and select the project or folder to be deleted. 2. Edit > Delete, or right-click and select Delete. NOTE 14 This operation irrecoverably removes the project directory. Sentaurus™ Workbench User Guide I-2013.12 2: Managing Projects Renaming a Project or Folder Renaming a Project or Folder To rename a project or folder: 1. Browse through the tree and select the project or folder to be renamed. 2. Right-click and select Rename. 3. Type the new name. 4. Press the Return key. (The new name is saved.) NOTE Locked projects cannot be renamed or deleted. To unlock a project, open the project and Project > Operations > Unlock or Ctrl+K. NOTE The operations on the tree directly act on the file system. Therefore, any delete, move, or rename operation cannot be undone. NOTE A file name can only contain characters permitted by the operating system. Even though the browser is configured to identify all illegal names and characters, with extreme file names, it is likely to cause some unpredictable behavior and may result in a loss of work. Project Documentation A documentation file can be attached to a project. The file format must be PDF and the file name should be greadme.pdf. The file can contain any information concerning the project. To open a project documentation file in Adobe Reader: 1. Select a project in the projects browser. 2. Project > Properties > Documentation. Sentaurus™ Workbench User Guide I-2013.12 15 2: Managing Projects Exporting and Importing Projects Exporting and Importing Projects Sentaurus Workbench allows you to export projects and directories into a package file. You can control how the package is created. To export projects and directories: 1. Select one or more projects or data directories in the projects browser. To make multiple selections, hold the Ctrl key when clicking. 2. Project > Export. 3. In the Export to Package dialog box (see Figure 4 on page 17): a) In the Package Name field, select the name and location of the package file. b) In the Exclude Patterns field, type the patterns of files and directories to be excluded from packaging. Note that the project cleanup patterns are applied automatically (see Detecting Files to Remove on page 129). c) Select from the options: Export SWB Projects As Clean: Packages all Sentaurus Workbench projects in the selected hierarchy as clean projects. Note that the original projects are not cleaned up during packaging. Compress Package (gzip): Compresses the package. Encrypt Package (openssl): Encrypts the package. If this option is selected, you must type a key in the Encryption Key field. 4. Click OK. NOTE 16 Default project export options can be redefined in user preferences: Project > Export. Sentaurus™ Workbench User Guide I-2013.12 2: Managing Projects Exporting and Importing Projects Figure 4 Export to Package dialog box To import projects and directories: 1. Double-click a .gzp or .tar file in the projects browser. 2. In the Unpacking dialog box (see Figure 5), select one or more projects or directories. 3. Click Save As to unpack and store the selected items in the specified location. Click Extract All to unpack and store all the items from the file. Figure 5 Unpacking dialog box Sentaurus™ Workbench User Guide I-2013.12 17 2: Managing Projects Exporting and Importing Projects Many users have difficulties using email to send packaged Sentaurus Workbench projects. Firewalls and email filters unpack the package, detect files with potentially dangerous extensions (.cmd), and block those files or even the entire email message. Encryption allows your package to go through email filters without problems. When unpacking an encrypted package, Sentaurus Workbench uses a default encryption key. You can control the encryption key and can package your projects with specific keys for confidential deliveries. If the package has been encrypted with a nondefault key, Sentaurus Workbench asks you to enter this key when importing a packaged project. 18 NOTE With the default Synopsys encryption key swb, Sentaurus Workbench guarantees successful importing of packaged projects by another user. When you need additional security, package your project with a specific encryption key and communicate it to the recipient of the package. NOTE It is not possible to import a packaged project that is encrypted with an unknown (or forgotten) key. Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 3 Project View This chapter describes how to alter and save the view configuration of projects in Sentaurus Workbench. View Configuration The project view consists of four main sections: Family Tree, Experimental Plan, Parameter Values, and Variable Values (see Figure 6). Figure 6 Different parts of project view in horizontal orientation These sections, as well as other project view settings, can be configured by changing the default view options in the user preferences or selecting the appropriate options in the View menu. Your project view configuration is stored together with the project data. The next time you load the project, its view settings are used automatically. Sentaurus™ Workbench User Guide I-2013.12 19 3: Project View View Configuration Figure 7 Different parts of project view in vertical orientation Sentaurus Workbench allows you to configure the project view settings on both user and project levels as shown in Table 2. Table 2 Setting project views Level Where to set Description Project View menu These view settings are stored in the view settings database file (.database) under the project directory and are applied to this project only. Your project view settings are saved each time you save the project or switch to another project in the Sentaurus Workbench projects browser. User Edit > User Preferences > Table > Default View Options These view settings are applied to all projects of a given user, unless the project does not have project-level view settings in the .database file. Project-level view settings override user-level settings. When the project does not have the .database file, the default view settings from the Sentaurus Workbench user preferences are applied; otherwise, the view settings from the .database file are used. 20 Sentaurus™ Workbench User Guide I-2013.12 3: Project View Default View Configuration in User Preferences The project view can be oriented either horizontally or vertically. In this chapter, view settings for horizontally oriented projects are considered. For vertically oriented projects, the view settings apply in the same way. Default View Configuration in User Preferences The default view settings are configured in user preferences (see Configuring Preferences on page 131). These settings apply to any project that does not have project-level view settings. It is recommended that you start by configuring the view settings of the user preferences. Set them up so that they match the view requirements for most of your projects. Later, you can customize these settings for specific projects. Project View Configuration The project view settings are stored in the .database file under the project directory. These settings override the ones in user preferences. To restore the default view settings from user preferences for the currently opened project: ■ View > Restore Default View Options or Ctrl+8. Configuring the Project View Orientation By default, Sentaurus Workbench displays projects in the traditional horizontal orientation: The tool flow is shown in the topmost row from left to right, and parameterized experiments are rows of the Family Tree (see Figure 6 on page 19). Alternatively, you can display the project vertically. The tool flow is shown in the leftmost column from top to bottom, and parameterized experiments are columns of the Family Tree (see Figure 7 on page 20). Deciding on the orientation of a project depends on your preferences and the project structure. Some projects are more convenient to display horizontally, while other projects are best viewed in a vertical orientation. To switch between horizontal and vertical orientations: ■ View > Display Simulation Flow > Vertical. ■ View > Display Simulation Flow > Horizontal. Sentaurus™ Workbench User Guide I-2013.12 21 3: Project View Setting the Project View Mode The project view orientation is stored in the project view settings database and is restored the next time you load this project. Setting the Project View Mode Sentaurus Workbench allows you to display the project in two modes: ■ ■ Full mode: This is the default display mode; the whole simulation flow is displayed (see Figure 1 on page 6). Compact mode: Sentaurus Workbench displays only varying parameterization parts of the simulation flow with extracted variables; all other parts of the flow are hidden. This mode is similar to the Taurus™ Workbench ‘Run Table’. It allows you to focus on the active parameterization part of the project and can be useful for large design-of-experiments (DoE) projects (see Figure 8). To switch from full to compact mode: View > View Mode > Compact. To switch from compact to full mode: View > View Mode > Full. Figure 8 Project view in compact mode The project view mode is stored in the project view settings database and is restored the next time you load the project. 22 Sentaurus™ Workbench User Guide I-2013.12 3: Project View Customizing the Current Project View Customizing the Current Project View You can customize the current project view (full or compact) by hiding or displaying the following flow elements manually: ■ Tool instance ■ Default tool step of a tool instance ■ Parameter step of a tool instance ■ Variable To hide a flow element, for example, a parameter step: 1. Select a cell separation line to the right of the parameter name cell and drag the line to the left until the cell disappears. Release the mouse button. 2. Alternatively, Parameter > Hide. As a result of this operation, the parameter step is hidden. To remind you that a flow element is hidden, Sentaurus Workbench shows the corresponding cell separator line in bold (see Figure 9). Figure 9 Project with hidden tools, parameters, and variables (red arrows indicate hidden flow elements) To redisplay a hidden parameter step: 1. Select the bold cell separation line and drag the line to the right. Release the mouse button. 2. Alternatively, Parameter > Show. Hiding or displaying other flow elements is performed in a similar way. Sentaurus™ Workbench User Guide I-2013.12 23 3: Project View Customizing the Current Project View For your convenience, Sentaurus Workbench provides a dialog box in which you can hide or display different flow elements in one step (see Figure 10). To display the Customize Current View dialog box: ■ View > Customize Current View. All your project view customizations are stored in the project view settings database and are restored the next time you load the project. Figure 10 24 Customize Current View dialog box used to customize the project view in one step Sentaurus™ Workbench User Guide I-2013.12 3: Project View Configuring Column Width and Row Height Configuring Column Width and Row Height By default, Sentaurus Workbench calculates automatically the column widths and row heights to adjust the project data. You can customize the width of all columns and the height of all rows in the project table by manually changing their size using mouse operations. Sentaurus Workbench stores all the column widths and row heights in the project view settings database and applies these sizes the next time you load the project. To restore the default column and row sizes at any time: ■ View > Restore Default Cell Size or Ctrl+7. Family Tree View To switch on or off the tree view: ■ View > Tree Options > Show Tree or press the F1 key. The Family Tree view shows the simulations in Sentaurus Workbench in the horizontal orientation. The horizontally shown simulation flow is the backbone of any project. It defines the sequence of tools and parameters involved in simulations. Each parameter belongs to a tool. The experiments are shown vertically. The cells are expanded to represent a tree view, with the cells themselves being either virtual or nonvirtual tree nodes associated with individual simulations. Figure 11 on page 26 shows the main parts of the Family Tree view of Sentaurus Workbench. The different areas are: Information titles Shows the row with titles such as Family Tree and Variable Values. Tool row Shows the icons of all tools of the project. Tool label row Directly below tool row. Shows all of the tool labels in the project. Set Default View Options > Display Tool Labels to true in the user preferences and reload the project. Tool comment row Displays comments about tools used in the project. Process name row Contains process names for parameters. Parameter row Contains all of the parameters of the project. Experiments column Contains all of the experiments, which are numbered. Sentaurus™ Workbench User Guide I-2013.12 25 3: Project View Family Tree View Tool Row Information Titles Tool Comment Row Process Name Row Experiments Column Parameter Row Tool Flow with Parameter Splits Figure 11 Family Tree view in horizontal orientation When the project view is oriented vertically, rows become columns and vice versa, so the Family Tree looks like Figure 12. Figure 12 26 Family Tree view in vertical orientation Sentaurus™ Workbench User Guide I-2013.12 3: Project View Family Tree View The tree view can be changed to display information about the node or from the node status files. The shortcut keys from Ctrl+1 to Ctrl+6 allow you to switch between multiple views: Parameter Values View > Tree Options > Parameter Values or Ctrl+1 Displays the parameter values of the loaded project. Node Numbers View > Tree Options > Node Numbers or Ctrl+2 Displays the node numbers. Host View > Tree Options > Host or Ctrl+3 Displays the last host on which the node was run. Date View > Tree Options > Date or Ctrl+4 Displays the time when the last run of the node was completed. Execution Time View > Tree Options > Execution Time or Ctrl+5 Displays the time taken for the last run of the node or an error message. Variables View > Tree Options > Variables or Ctrl+6 Displays the variables associated with the nodes. Job Identifier View > Tree Options > Job Identifier or Ctrl+7 Displays the job identifier assigned to the node when running on a cluster (farm, grid). NOTE To change views sequentially, click . Additional options applicable to the Family Tree view are: Show Node Numbers View > Tree Options > Show Node Numbers or press the F9 key Displays the node numbers together with parameter values. Hinting Tool Labels View > Tree Options > Hinting Tool Labels or Ctrl+F9 Displays rollover text with the tool labels when the pointer is positioned over the tool icon. Check Virtual Nodes View > Tree Options > Check Virtual Nodes or Ctrl+0 Distinguishes virtual and nonvirtual nodes by using different colors. Displays virtual nodes in blue. Show Merged Cells View > Tree Options > Show Merged Cells Merges node cells with the same parameter value. Show Information Titles View > Table Options > Show Information Titles Displays the row with information titles. Sentaurus™ Workbench User Guide I-2013.12 27 3: Project View Experimental Plan View Show Tool Icons View > Table Options > Show Tool Icons Displays the row with tool icons. Show Tool Names View > Table Options > Show Tool Names Displays the row with tool names. Show Comments View > Table Options > Show Comments Displays the row with tool comments (arbitrary multiline text). Show Parameter Process Names View > Table Options > Show Parameter Process Names Displays the row with the process names of parameters (for process tools only). Show Parameter and View > Table Options > Show Parameter and Variable Names Variable Names Displays the row with the names of parameters and variables. Show Experiment Numbers View > Table Options > Show Experiment Numbers Displays the column with the numbers of experiments. Experimental Plan View To switch on or off the Experimental Plan view: ■ View > Tree Options > Show Experimental Plan or press the F2 key. This is used for viewing purposes only. The Experimental Plan view provides a way to view parametric combinations. The header rows show all parameters and their values. For each experiment, all its parameter values are also shown in the Experimental Plan columns in blue, under their corresponding values. This feature may be useful for you to observe certain patterns in the variation of parameters. Parameter Values View To switch on or off the Parameter Values view: ■ View > Tree Options > Show Parameters or press the F3 key. This is used for viewing purposes only. The view contains the tools and their parameters on separate header rows. The parameter value is shown for each experiment and for each parameter. 28 Sentaurus™ Workbench User Guide I-2013.12 3: Project View Variable Values View Variable Values View To switch on or off the Variable Values view: ■ View > Tree Options > Show Variables or press the F4 key. This is used for viewing, editing, deleting, and adding variables. By default, it shows all types of variable: extracted, set, and defined at a node (see Variables on page 60). You can hide certain types of variable by using the Customize Current View dialog box (see Customizing the Current Project View on page 23). Real and Virtual Family Nodes Nodes are labeled with unique numbers called node keys. All family nodes are of two types: real and virtual. Real nodes are nodes that correspond to real simulation phases. For example, if a tool has no parameters, all nodes of this tool are real nodes. Parameters bring intermediate nodes to a tool. The intermediate nodes of tools do not usually correspond to real simulation phases and, therefore, do not hold any results. These are virtual nodes. However, tools with split capabilities such as Sentaurus Process, Sentaurus Structure Editor, and TSUPREM-4™ can create real intermediate nodes (see Split Points on page 104). Real nodes are colored according to the execution status of the corresponding simulation job. Virtual nodes are either light blue or white depending on whether View > Tree Options > Check Virtual Nodes is selected. When this option is switched on, Sentaurus Workbench shows the real status of intermediate nodes: Virtual intermediate nodes are light blue, and nonvirtual intermediate nodes are colored according to their status. The color codes in the status bar of the main window indicate the meaning of each color (see Configuring Node Colors on page 30). For more information about a simulation, Nodes > Properties. Sentaurus™ Workbench User Guide I-2013.12 29 3: Project View Configuring Node Colors Configuring Node Colors Nodes are colored according to their status. The traditional coloring scheme is displayed in the Sentaurus Workbench status bar (see Figure 13). Sentaurus Workbench recognizes Tk symbolic color names or 8-bit RGB values. For details, go to http://www.tcl.tk/man/tcl8.5/TkCmd/colors.htm. Table 3 lists the colors that Sentaurus Workbench uses for the different node statuses. Table 3 Colors for different node statuses Node status Hexadecimal 8-bit RGB value none #FFFFFF queued #ACFF75 ready #7CFF75 pending #75FFA0 running #ADD8E6 done #FFD700 failed #FF0000 aborted #FF00FF virtual #E0FFFF pruned #B3B3B3 orphan #8C8C8C folded #8465A5 Figure 13 Default node status colors in Sentaurus Workbench You can adjust the standard color scheme to allow for better visual distinction of colors onscreen. This can be performed in the user preferences: ■ Edit > User Preferences > Table > Node Status Color. You can change the colors in two ways, either: 30 ■ Specify the hexadecimal RGB value manually. ■ Select the color in the Choose Color for Status dialog box (see Figure 14 on page 31). Sentaurus™ Workbench User Guide I-2013.12 3: Project View Showing Tool Comment Row Figure 14 Dialog box for choosing color for a node status New colors take effect immediately after reloading the project. Node status colors are applied to all of your Sentaurus Workbench projects. Showing Tool Comment Row Sentaurus Workbench allows you to specify a comment for any tool in the project flow. Your comments are displayed in a separate row between the tool row and the parameter row. Sentaurus Workbench displays this row when at least one tool contains a comment. A comment is arbitrary multiline text. Sentaurus Workbench saves the specified comments in the project directory in the file gcomments.dat and displays them the next time you load your project. Showing Process Name Row Sentaurus Workbench allows you to specify a process name for each parameter of all process tools in the project flow. This feature addresses the needs of process engineers who often involve many process variations and splits in process simulations. In many cases, it is convenient to group process parameters by specifying so-called process names, which are arbitrary identifiers that can reflect certain process steps, splits, and so on. When you create a Sentaurus Workbench parameter for any process tool, you can also specify the process name to which this parameter belongs. The process name as well as the parameter name can be changed later in the Parameter Properties dialog box. Process names are displayed in a separate row immediately above the parameter row. Sentaurus Workbench saves the specified process names in the core project files and displays them the next time you load your project. Sentaurus™ Workbench User Guide I-2013.12 31 3: Project View Showing Tool Labels NOTE Process names are supported for process simulators and process-aware tools such as Sentaurus Process, Sentaurus Structure Editor, Sentaurus Topography, Sentaurus Topography 3D, and TSUPREM-4. Showing Tool Labels The tool icons show only the tool name at the bottom of each icon. It is also possible to see the tool label as rollover text. This feature is switched off by default. To switch on the feature: ■ View > Tree Options > Hinting Tool Labels. In addition, the tool labels can be shown permanently in the tool label row. To make this row visible: ■ View > Table Options > Show Tool Labels. Configuring Font of Project View Sentaurus Workbench allows you to configure font attributes of the project view for the currently open project. The next time the project is loaded, the applied font settings take effect. To change the font of the project view: ■ View > Table Options > Change Table Font. In the Change Font dialog box (see Figure 15), you can choose between two options: ■ ■ Apply System Default Font: Sentaurus Workbench automatically detects the optimal font to use. Choose Font from Dialog: This option displays the Font Selection dialog box (see Figure 16 on page 33) where you can select the font from those available in the system. Figure 15 32 Change Font dialog box Sentaurus™ Workbench User Guide I-2013.12 3: Project View Zooming Project View Figure 16 Font Selection dialog box To apply a particular font to all your projects, you can configure the font attributes in the user preferences: Table > Font. Configuring the font attributes is performed in a similar way as configuring the font of the Family Tree. NOTE Font attributes set up in the user preferences apply to both the Family Tree and the projects browser. NOTE Font attributes of the Family Tree are stored in the project view settings database. These attributes overwrite font settings made in the user preferences. Zooming Project View Sentaurus Workbench allows you to zoom in to and out of the project view. When working with projects with a large Family Tree, it may be useful to zoom out of the project view: Family Tree, Experimental Plan, Parameter Values, and Variable Values. Sentaurus Workbench will display values in a smaller font size, which allows you to reduce cell size and to see a bigger part of the parameterization table at one time. Conversely, zooming in will result in the opposite effect. The font name and other font attributes are retained without change (see Configuring Font of Project View on page 32). To zoom in to the project view: ■ View > Zoom In, Ctrl+Plus sign (+), or click the Zoom In button. To zoom out of the project view: ■ View > Zoom Out, Ctrl+Minus sign (-), or click the Zoom Out button. Sentaurus™ Workbench User Guide I-2013.12 33 3: Project View Freezing Columns and Rows To switch the zoom off from a previously zoomed part of the project view: ■ View > Zoom Off, Ctrl+0, or click the Zoom Off button. Freezing Columns and Rows When working with projects with a large number of tools and parametric steps, you may want to freeze a certain part of the Family Tree and keep it visible on your screen when scrolling through the rest of the Family Tree to the right. For example, imagine a simulation setup that starts with process simulation and remeshing followed by multiple device tests. You may want to configure your project view so that the process simulation and remeshing part remains visible on-screen when you scroll through the device tests part (see Figure 17). Figure 17 Project with frozen columns (indicated by cells with black background) To freeze columns: 1. Select the columns in the parameter row or tool row. 2. View > Freeze Rows/Columns. Now, Sentaurus Workbench freezes the selected columns, so they remain visible on-screen when you scroll through the Family Tree. Frozen columns are shown in black, which identifies them the next time you load the project. To unfreeze columns: ■ View > Unfreeze Rows/Columns. Rows can be frozen as well. You can freeze selected rows in the same way as columns. In addition, you can select an arbitrary set of nodes and freeze it. As the result, Sentaurus Workbench will determine the rectangle area of your Family Tree and freeze the area. 34 Sentaurus™ Workbench User Guide I-2013.12 3: Project View Selecting Nodes with Mouse and Keyboard Operations Selecting Nodes with Mouse and Keyboard Operations In Sentaurus Workbench, you can select nodes as for any spreadsheet application. You can make a typical rectangular node selection using mouse operations. Alternatively, another useful way to select a large rectangular region where scrolling the Family Tree is needed is as follows: 1. Click the upper-left node of the required rectangular region. 2. Scroll the Family Tree until the lower-right node of the rectangular selection appears on the screen. 3. Click this node while holding the Shift key. Clicking cells with experiment numbers results in selecting all the nodes belonging to these experiments. Clicking tool or parameter cells while holding the Shift key allows you to select all nodes belonging to the given tools or parameters. When combining different selection techniques with the Ctrl key, you can make complex selections containing multiple regions. Viewing Node Output Files For each real family node, there can be several output files that can be viewed using visualization tools such as Sentaurus Visual, Tecplot SV, and Inspect, as well as the text editor. The default visualization tool in Sentaurus Workbench is Sentaurus Visual. To view all the output files of a node or nodes: 1. Select a node or nodes from the Project tab. 2. Nodes > Quick Visualize, or click the Quick Visualize toolbar button. All available output files for the selected nodes are visualized with the default visualizer. If no output files correspond to a selected node or nodes, Sentaurus Workbench launches the default visualizer without any files. NOTE Sentaurus Workbench automatically detects the availability of Sentaurus Visual and Tecplot SV. If you have not yet migrated to Sentaurus Visual, your default visualizer will be Tecplot SV. Sentaurus™ Workbench User Guide I-2013.12 35 3: Project View Viewing Node Output Files To view all the output files of a node or nodes with a required visualizer: 1. Select a node or nodes from the Project tab. 2. Click the Visualize toolbar button. 3. All visualization tools are available for the selected nodes. Select the required visualizer from those listed. Alternatively, to make all visualization tools available: ■ Nodes > Visualize. If no output files correspond to a particular node, the visualizer will be launched empty. Sentaurus Workbench allows you to view the output files of nodes belonging to different projects as follows: 1. Select multiple projects in the projects browser. 2. Select the required nodes in the project that is currently open. Viewing the output files of nodes displays those files belonging to the current project as well as the output files belonging to nodes with the same node numbers in other selected projects (if they exist). NOTE Figure 18 36 The currently open project must be one of the selected projects in the projects browser. Output files visualization menu Sentaurus™ Workbench User Guide I-2013.12 3: Project View Viewing Node Output Files in Sentaurus Visual The visualization tools, the file patterns to visualize, and the maximum number of files are configured in the tool database. By default, Sentaurus Workbench configures several viewers as shown in Figure 18 on page 36. The visualization tools Sentaurus Visual, Tecplot SV, and Inspect appear twice in two modes: ■ ■ Select File: Sentaurus Workbench prompts you to select files for visualization. All Files: All files of the selected nodes will be visualized without prompting. If the number of such files exceeds the maximum number specified in the tool database for this viewer, Sentaurus Workbench prompts you to select files for visualization, as in the Select File mode. Any viewer can be defined as the default visualization tool in the tool database using the variable WB_tool(default,visualizer). In Sentaurus Workbench, the default viewer is Sentaurus Visual. Viewing Node Output Files in Sentaurus Visual Sentaurus Visual is the main visualization tool in Sentaurus Workbench. A deep integration of Sentaurus Workbench and Sentaurus Visual allows special capabilities that are not available in Tecplot SV and Inspect. Sentaurus Workbench offers you the possibility to choose between visualization in a new instance of Sentaurus Visual and visualization in an already running instance of Sentaurus Visual. Sentaurus Workbench detects the Sentaurus Visual instances that you launched from this current instance of Sentaurus Workbench, and it displays a dialog box (see Figure 19). Figure 19 Sentaurus Visual Visualization dialog box The left pane of the Sentaurus Visual Visualization dialog box allows you to select files for visualization. In the right pane, you choose in which instance of Sentaurus Visual you want to Sentaurus™ Workbench User Guide I-2013.12 37 3: Project View Node Explorer visualize the selected files. Already running Sentaurus Visual instances are noted as SWB_1, SWB_2, and so on. To identify the corresponding instance of Sentaurus Visual, check the title of the main window of Sentaurus Visual, which displays the same identification. NOTE Sentaurus Workbench recognizes only those instances of Sentaurus Visual that were launched from itself. Node Explorer The Node Explorer assembles all node-related data and files in one place, which simplifies navigating through node files, analyzing simulation results, and tracking simulation problems. Figure 20 38 Node Explorer Sentaurus™ Workbench User Guide I-2013.12 3: Project View Node Explorer To open the Node Explorer: 1. Select a node. 2. Nodes > Node Explorer or press the F7 key. The Node Explorer is divided into two parts: ■ ■ The upper part displays node properties, together with the defined parameters and extracted data. The lower part allows you to navigate through node files. The features of the Node Explorer include: ■ Viewing the properties of the node. ■ Viewing the values of Sentaurus Workbench parameters defined on the node. ■ Viewing the data extracted from the node. ■ Navigate through node input and output files using buttons and file patterns. ■ Preview text files in the text pane. ■ Visualize node files with the viewer or editors defined in the tool database. Table 4 Description of buttons in Node Explorer Button Description All Node Files Displays all files that are associated with the current node. To determine these files, tool database file patterns are used. Node Input Files Displays the input files of the current mode, which are registered in the tool database. Node Output Files Displays the output files of the current node, which are registered in the tool database. Standard Output Displays the standard output of the node simulation task. Standard Error Displays the standard error of the node simulation task. Job Log File Displays the job log file (output of node gjob process). Prologue Displays the prologue section of the job log file. Simulation Displays the simulation section of the job log file. Epilogue Displays the epilogue section of the job log file. Specifies the path to which a file pattern search is applied. By default, this is the project directory. Apply Applies the file search based on the specified file pattern. Launch Every file that is displayed in the upper list box has one or more associated viewers. This button opens the currently selected viewer together with the currently selected file. Sentaurus™ Workbench User Guide I-2013.12 39 3: Project View Copying Table Parts to Other Tools Table 4 Description of buttons in Node Explorer Button Description Track the Problem Assists you to find the reason for a node failure. Sentaurus Workbench analyzes the prologue, simulation, and epilogue sections of the job log file for error messages. In addition, it checks the standard error and standard output files of the simulation for additional error information. Search The Node Explorer looks for the specified pattern in the currently previewed file. Refresh Updates the node information. When the Node Explorer is displayed, it shows the end of the simulator standard output file. The content of this file is updated dynamically when the node is running. Copying Table Parts to Other Tools The copying and pasting of data from a table to other tools is supported in a transparent way. Spreadsheet applications support direct copy-and-paste operations of tabbed data. Exporting a Spreadsheet Exporting Spreadsheet to Spreadsheet Viewer A spreadsheet can be exported as a character-separated values (CSV) file, which can be loaded into several existing spreadsheet software. To export a spreadsheet: 1. Experiments > Export > Text File. 2. Select the separation character (comma, tab, space, semicolon, user-defined). 3. Select additional options to include the header and column names if required. 4. Click OK. 5. Select the file name in the File dialog box. 6. Click Save. 40 Sentaurus™ Workbench User Guide I-2013.12 3: Project View Viewing Sentaurus Workbench and Optimizer System Log Files To open spreadsheet software with the current view: ■ Experiments > Export > Run Spreadsheet Application or click . This saves the current view to a temporary text file and loads it with a spreadsheet application that is configured in the user preferences (Miscellaneous > Spreadsheet Application). Exporting Spreadsheet to Inspect A spreadsheet can be exported for viewing in Inspect. To export a spreadsheet: 1. Experiments > Export > Plot File. 2. Select the file name in the File dialog box. 3. Click Save. To open Inspect with the current view: ■ Experiments > Export > Run Inspect. This saves the current view to a temporary plot file and loads it into Inspect. Viewing Sentaurus Workbench and Optimizer System Log Files The preprocessor and project log files for projects of Sentaurus Workbench can be viewed using: ■ Project > Logs > Preprocessor or Project > Logs > Project. To view Optimizer log files: ■ Optimization > View Log. Visualizing Response Surfaces See Visualizing Response Surfaces on page 151. Sentaurus™ Workbench User Guide I-2013.12 41 3: Project View Scheduler View Scheduler View Viewing Running Nodes in Projects All the running nodes that belong to the selected running projects in the projects browser are listed. The status of nodes is updated based on the refresh frequency setting. Configuring User Queues User-level tool queue assignments (see Tool Associations on page 181) can be modified using Scheduler > Configure Queues > User Queues. You can modify the tool queue assignments and enter specific options associated with the Scheduler. Figure 21 42 Configure User Queues dialog box Sentaurus™ Workbench User Guide I-2013.12 3: Project View Scheduler View Configuring Project Queues Project-level tool queue assignments (see Tool Associations on page 181) can be modified using Scheduler > Configure Queues > Project Queues. You can modify the tool queue assignments, and these assignments are applied only to a particular project. Figure 22 Configure Project Queues dialog box Editing Queue Files The Scheduler does not provide a GUI to add node constraints for user-level or project-level queues. Therefore, the only way to add node constraints is by manually editing the user queue or project queue files. To edit user queues: ■ Scheduler > Configure Queues > Edit User Queues. To edit project queues: ■ Scheduler > Configure Queues > Edit Project Queues. Sentaurus™ Workbench User Guide I-2013.12 43 3: Project View Scheduler View 44 Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 4 Editing Projects This chapter describes how projects can be edited in Sentaurus Workbench. Read-Only and Writable Projects Sentaurus Workbench projects must be placed in a disk-writable area to edit, preprocess, and execute those projects. Sentaurus Workbench recognizes a disk-writable area by analyzing user permissions of a project directory and project files. A writable Sentaurus Workbench project must match the following criteria: ■ A project directory contains the file .project (it is a Sentaurus Workbench project). ■ A project directory is writable; users can create and delete files in the directory. ■ Files in the project directory are writable. Sentaurus Workbench checks user permissions for several key project files. A writable project with the Standard configuration can be cleaned, edited, preprocessed, and executed only if it is in edit mode, that is, it is not locked, and it is not running. A writable project with the Research configuration can be cleaned, edited, preprocessed, and executed at any time. NOTE Sentaurus Workbench does not require writable projects to be placed under the STDB file hierarchy. Attached roots can contain writable projects. Only user permissions and project configuration define the writability of a project. Undoing Changes To undo a change: ■ Edit > Undo or Ctrl+Z. NOTE Only tree modifications can be undone. Modified or deleted input or output files cannot be restored. The ‘undo’ data is not released after saving the project. Sentaurus™ Workbench User Guide I-2013.12 45 4: Editing Projects Tools To free the ‘undo’ data: ■ Project > Operations > Clean Up or Ctrl+L (see Chapter 8 on page 127). Tools Tools are, in general, TCAD simulation tools. Other tools may be available depending on the configuration of the tool databases of Sentaurus Workbench (see Tool Databases on page 139). NOTE There can be multiple instances of the same tool in the simulation flow. Adding Tools In a new project, to add the first tool to the flow: 1. Tool > Add or press the Insert key. The Add Tool dialog box is displayed (see Figure 23 on page 48). 2. On the Tool Properties tab, select the tool from the Name list. 3. Type a unique tool label. 4. If applicable, type any command-line options. 5. If applicable, select a run mode. Many tools offer a choice between the Batch mode and the Interactive mode. Sentaurus Visual provides the additional BatchX mode, which allows you to export plots in the batch run. 6. If applicable, type a comment associated with the tool. 7. Click the Input Files tab (see Figure 24 on page 48). The table on this tab specifies all the default tool input files registered in the tool database. Each tool input file is either a user-specified file (master file) or the output file generated from the previous simulation step. Master files are usually involved in preprocessing. 8. If applicable, select whether to use Ligament to create the input files (only for process simulation tools). 9. If applicable, select whether grid and boundary files are provided as master files or produced by previous tools. 46 Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Tools 10. Each input master file has the default Sentaurus Workbench name specified in the tool database. However, you can change this name or refer to any file outside the project directory. To specify an arbitrary file name: a) Double-click the relevant master file. b) Type a new file name. c) Press the Enter key, or the Up Arrow key, or Down Arrow key. 11. To import the content of an existing file into the master file: a) Select the relevant master file. b) Click the Import button, and select the file in the Open File dialog box. NOTE This operation restores the name of the master file to the default name of the Sentaurus Workbench tool input file defined in the tool database. NOTE The content of the imported file replaces the content of the master file. For convenience, Sentaurus Workbench creates a backup copy of the existing master file with the extension .backup. 12. To specify an existing file (which can be outside of the project directory): a) Select the relevant master file. b) Click the Assign button, and select the file in the Open File dialog box. 13. Click OK or Apply. NOTE Ligament can be used to generate input files for the following tools: Sentaurus Process, Sentaurus Structure Editor, TSUPREM-4, Sentaurus Topography 3D, and Fammos. Sentaurus™ Workbench User Guide I-2013.12 47 4: Editing Projects Tools 48 Figure 23 Add Tool dialog box showing Tool Properties tab Figure 24 Add Tool dialog box showing Input Files tab Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Tools Figure 25 Add Tool dialog box showing Output Files tab To add subsequent tools to the flow: 1. Select a tool icon from the tool row. 2. Tool > Add or press the Insert key. The Add Tool dialog box is displayed. 3. Follow Steps 2–13 for adding the first tool in the flow. In addition, you can specify whether to insert a new tool after or before the selected tool. Deleting Tools To delete a tool instance from the flow: 1. Select the required tool icon in the tool row. To select multiple tools, press the Ctrl key during selection. 2. Tool > Delete or press the Delete key. If the tool to be deleted has parameters, the parameters can be assigned to the previous tool, to the next tool, or they can be deleted. Sentaurus Workbench displays a dialog box asking you for the appropriate action (see Figure 26 on page 50). Sentaurus™ Workbench User Guide I-2013.12 49 4: Editing Projects Tools Figure 26 Dialog box when deleting a tool Copying and Pasting Tools Sentaurus Workbench allows you to cut, copy, and paste tool steps inside a Sentaurus Workbench project, as well as between two Sentaurus Workbench projects. To copy and paste tool steps: 1. Select one or multiple tool steps in the tool flow. 2. Copy the tool steps using any of the following actions: a) Edit > Copy. b) Right-click the tool step, and select Copy. c) Ctrl+C. 3. Go to the target project (it can be the same project) and select the tool step. New tool steps are inserted immediately after this step. 4. Paste the tool steps using any of the following actions: a) Edit > Paste. b) Right-click the tool step, and select Paste or Paste Special. c) Ctrl+V. New tool steps are inserted with their input command files and properties. Tool input files are copied from the source project to the target project. By default, Sentaurus Workbench pastes tool steps together with their parameterization, including variables specified on the nodes of the parameterization. You can control exactly what you want to insert by using the Paste dialog box (see Figure 27 on page 51). 50 Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Tools To display the Paste dialog box: ■ Edit > Paste Special or Ctrl+M. Figure 27 Paste dialog box for inserting tool steps Table 5 lists the available options. Table 5 Options of Paste dialog box for tool steps Option What is inserted… Tools • Tool step with its configuration and input files. Tools, Parameters • • Tool step with its configuration and input files. Tool step parameters with default values. Tools, Parameters with Values • • • Tool step with its configuration and input files. Tool step parameters with default values. Value variation for each parameter. Tools, Parameters with Values, Variables • Tool step with its configuration and input files. • Tool step parameters with default values. • Value variation for each parameter. • User-defined variables specified on the nodes of the parameterization. This is the default mode. Changing Tool Properties To change tool properties: 1. Select the required tool in the tool row. 2. Tool > Properties or double-click the tool. The Tool Properties dialog box for that tool is displayed (see Figure 28 on page 52). 3. Make any applicable changes previously described (see Adding Tools on page 46). NOTE If the project is in edit mode, you can commit changes on the Tool Properties tab and Input Files tab of the Add Tool dialog box. If the project is in running mode, all your modifications will not be supported. Sentaurus™ Workbench User Guide I-2013.12 51 4: Editing Projects Tools 4. Click OK or Apply. Figure 28 Tool Properties dialog box Editing Tool Input Files To edit tool input files: 1. Select the required tool in the tool row. 2. Tool > Edit Input. 3. Select the file to edit from the submenu (see Figure 29 on page 53). Alternatively, you can use the Tool Properties dialog box (see Figure 28): 1. Click the Input Files tab. 2. Select the master file in the table to edit. 3. Click the Edit Master File button. NOTE If you have write permissions for the file or project, the file can be edited. Otherwise, the file is read only. 4. Edit the file. 5. Click OK or Apply. 52 Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Tools Figure 29 Edit tool input file Locking and Unlocking Tools You can temporarily disable tool steps from execution by locking the tool. This means that nodes belonging to a disabled or locked tool are not involved in the next simulation run of the corresponding project. After unlocking the tool step, it is a part again of the simulation project. There are two ways to lock a tool and its nodes: ■ Tool > Lock. All nodes, virtual and real ones, that belong to the selected tool are locked. The icon of the locked tool shows a lock symbol to distinguish locked and unlocked (normal) tool steps visually (see Figure 30 on page 54). ■ Select all nodes of a tool and lock them. Sentaurus™ Workbench User Guide I-2013.12 53 4: Editing Projects Tools Figure 30 Locked and unlocked tools shown in the Family Tree view Locked tools can be unlocked in a similar way: ■ Tool > Unlock. All nodes, virtual and real ones, that belong to the selected tool are unlocked. The lock symbol in the tool icon disappears. ■ Unlock one or more of the locked real nodes. The tool is unlocked together with the selected real nodes. NOTE After unlocking a tool, the project should be preprocessed to guarantee that the correct node dependencies are taken into account in the next simulation run. Double-clicking Tools For better usability, you can configure the behavior of double-clicking a tool and bind it to the desired action. To configure the behavior of double-clicking a tool: 1. Edit > User Preferences or press the F12 key. 2. Table > Double Click Action > On Tools. 3. Set the value to one of the following: 54 Action What double-clicking invokes Show Properties Launches Tool Properties dialog box (see Changing Tool Properties on page 51). Edit Input File Opens tool input command file in the corresponding editor (see Editing Tool Input Files on page 52). Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Parameters NOTE If double-clicking a tool does not work on a VNC client, see Appendix E on page 225. Parameters A parameter splits the flow at the insertion point to derive variations of the current tool. Each parameter is characterized by a unique name, a default value, and an arbitrary number of values. The purpose of parameters is to create a family of similar simulations represented as a tree structure – the simulation tree – where levels from root to leaves (left to right) match the steps in the simulation flow. Adding Parameters Parameters are part of a tool, so parameters can be added to existing tools only. To add the first parameter to a flow with one tool: 1. Parameter > Add or press the Insert key. 2. Type the name of the parameter. 3. Type the process name (only parameters of process tools; this is an optional step). 4. Type the default value, which can be any alphanumeric value. 5. Click OK. To add another parameter to a flow, or to add a parameter to a flow with more than one split: 1. In the parameter row, select the position where the new parameter is to be inserted. 2. Parameter > Add or press the Insert key. 3. Type the name of the parameter. 4. Type the process name (only parameters of process tools; this is an optional step). 5. Type the default value, which can be any alphanumeric value. 6. Select whether to insert the new parameter before or after another parameter if the new parameter is not the first parameter for the tool. 7. Click OK. Sentaurus™ Workbench User Guide I-2013.12 55 4: Editing Projects Parameters Figure 31 Add Parameter dialog box Deleting Parameters To delete a parameter from a flow: 1. Select the parameter in the parameter row. 2. Parameter > Delete or press the Delete key. If you remove a parameter that has more than one value, you will be asked for the branch that is to be kept in the tree. All other branches will be deleted from the tree. Figure 32 Delete Parameter dialog box If you select multiple parameters to delete, the Delete Parameters dialog box is displayed asking you for the branches to retain when one or more parameters to be deleted has multiple values (see Figure 33 on page 57). 56 Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Parameters Figure 33 Delete Parameters dialog box for removing multiple parameters Copying and Pasting Parameters Sentaurus Workbench allows you to cut, copy, and paste parameters inside a Sentaurus Workbench project, as well as between two Sentaurus Workbench projects. To copy and paste parameters: 1. Select one or multiple parameters. 2. Copy the parameters using any of the following actions: a) Edit > Copy. b) Right-click the parameters, and select Copy. c) Ctrl+C. 3. Select the location in the target project (it can be the same project) where to insert the parameters. When you select a tool step, new parameters are added to the tool step after existing ones. When you select a parameter, the new parameter is added immediately after the selected one. 4. Paste the parameters using any of the following actions: a) Edit > Paste. b) Right-click the parameters, and select Paste or Paste Special. c) Ctrl+V. Sentaurus™ Workbench User Guide I-2013.12 57 4: Editing Projects Parameters Parameters are pasted by default with their parameterization, including variables specified on the nodes of the parameterization. When parameters are inserted into an empty project, Sentaurus Workbench also creates tool steps to which parameters belong. You can control exactly what you want to insert using the Paste dialog box. To display the Paste dialog box: ■ Edit > Paste Special or Ctrl+M. Figure 34 Paste dialog box for inserting parameters Table 6 lists the available options. Table 6 Options of Paste dialog box for parameters Option What is inserted… Parameters • Parameters with default values. Parameters, Values • • Parameters with default values. Value variation for each parameter. Parameters with Values, Variables • Parameters with default values. • Value variation for each parameter. • User-defined variables specified on the nodes of the parameterization. This is the default mode. Changing Parameter Properties To view or edit (in edit mode only) properties of a parameter: 1. Select the required parameter in the parameter row. 2. Parameter > Properties or double-click the parameter. 3. If the project is in edit mode, you can rename the parameter in the parameter text entry and change the default value of the parameter in the default value text entry as required. For parameters of process tools, you can change the process name. 4. Click OK. 58 Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Parameters Figure 35 NOTE Parameter Properties dialog box If a parameter name is changed, it is changed in the Family Tree view only. All references to that parameter in input files and variables are not changed. Removing Parameter Values To remove a parameter value (in edit mode only): 1. Select the required parameter in the parameter row. 2. Parameter > Remove Value. 3. Select the value to be removed. 4. Click OK. Figure 36 Remove Parameter Value dialog box Sentaurus™ Workbench User Guide I-2013.12 59 4: Editing Projects Variables Double-clicking Parameters For better usability, you can configure the behavior of double-clicking a parameter and bind it to the desired action. To configure the behavior of double-clicking a parameter: 1. Edit > User Preferences or press the F12 key. 2. Table > Double Click Action > On Parameters. 3. Set the value to one of the following: Action What double-clicking invokes Show Properties Launches the Parameter Properties dialog box (see Changing Parameter Properties on page 58). Add Parameter Value Launches the Add Parameter Values dialog box (see Adding Experiments on page 71). Remove Value Launches the Remove Parameter Value dialog box (see Removing Parameter Values on page 59). NOTE If double-clicking a parameter does not work on a VNC client, see Appendix E on page 225. Variables The variables are not part of the simulation tree. They are intended to help you interpret the results and for preprocessing. The variables can be defined as global or ‘per node,’ where ‘per node’ definitions overwrite the global definitions. The node definitions overwrite other node definitions used earlier in the tree flow (that is, closer to the root). The following types of variable can be used according to their priority (from highest to lowest): ■ ■ 60 Extracted variables are the result of simulation runs. Their format in the output files is DOE: <varname> <value> (see Extracted Variables on page 105). Preprocessed variables are the preprocessing definitions. Their format in the input files is #set <varname> <value> (see Preprocessed Variables on page 104). Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Variables ■ Defined variables are variables that are defined globally for a node and its children. These variables can be added using the GUI. Defined variables are also referred to as global variables. Defining Global Variables To add a new variable to a project: 1. Variables > Add or press the Insert key. 2. Type the name of the variable. 3. Type the default value of the variable (this can remain empty). If you have selected another variable in the parameter row, you have the option of adding the new variable either before or after the selected one. 4. Click OK. Figure 37 Add Variable dialog box The default value of the variable or formula is used when there is no defined value per node. The default value can be an arbitrary string. A Tcl parser is used to preprocess the value. Tcl expressions in brackets can be used as variable values. They may have references to parameters or other variables. The references should be placed inside of a pair of @. The default values of a variable can also be used for formatting by using the Tcl format command (this command has similar formatting arguments as the ANSI C printf command). Some examples of default values of a variable are: ■ [format %f10 @param1@] ■ [expr 2*@param1@ + sin(@var1@)] ■ [if {@param1@ > 0.5} {set var1 "passed"} else {set var1 "failed"}] Sentaurus™ Workbench User Guide I-2013.12 61 4: Editing Projects Variables Changing Variable Properties To change a global default value: 1. Select the required variable in the parameter row. 2. Variables > Properties. 3. Type the default value of the variable. 4. Click OK. Deleting Variables To delete a variable: 1. Select the required variable in the parameter row. To select multiple variables, press the Ctrl key during selection. 2. Variables > Delete or press the Delete key. Copying and Pasting Variables Sentaurus Workbench allows you to cut, copy, and paste defined variables inside a Sentaurus Workbench project, as well as between two Sentaurus Workbench projects. To copy and paste variables: 1. Select one or multiple variables. 2. Copy the variables using any of the following actions: a) Edit > Copy. b) Right-click the variables, and select Copy. c) Ctrl+C. 3. Select the variable in the target project (it can be the same project) where you want to insert the variables. New variables are added immediately after the selected one. 62 Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Variables 4. Paste the variables using any of the following actions: a) Edit > Paste. b) Right-click the variables, and select Paste or Paste Special. c) Ctrl+V. Inserted variables contain their values. A variable that is inserted into an empty project does not display its value. The variable value is visible as soon as a new tool is inserted into the empty project. NOTE Only defined (global) variables can be copied and pasted. Formatting Variables To format a variable: 1. Select the required variable in the parameter row. 2. Variables > Format. 3. Select one of the predefined format options or type a new format using ANSI C sprintf or Tcl format (refer to the rollover text for examples). 4. Click OK. Defining Variables Per Node If you define a variable at a particular node, it will overwrite the default value of that variable as well as any value of the variable that is defined higher in the tree (that is, closer to the root). To define a variable at a node: 1. Select the required node. 2. Nodes > Set Variable Value. 3. Select a variable that you want to define for this node. 4. Type the variable value. The default value of the variable is preset in the text entry. NOTE The value of a variable at a node, unlike the default value of a variable, is not parsed by the Tcl parser, but is taken as a string. Sentaurus™ Workbench User Guide I-2013.12 63 4: Editing Projects Variables Changing and Deleting Variable Values at a Node NOTE Variable values at a node can be modified only for defined variables. To see which nodes have defined variables, Tree > View Options > Variables. To change or delete a variable at a node: 1. Select the required node. 2. Nodes > Properties or double-click the node. 3. Go to the Defined Variables group box and select the required variable. Only previously defined variables are shown. 4. Type the new value of the variable. 5. Click OK to change a value or click Delete to delete the variable from the node. Figure 38 64 Node information dialog box Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Nodes Double-clicking Variables For better usability, you can configure the behavior of double-clicking a variable and bind it to the desired action. To configure the behavior of double-clicking a variable: 1. Edit > User Preferences or press the F12 key. 2. Table > Double Click Action > On Variables. 3. Set the value to one of the following: Action What double-clicking invokes Show Properties Launches the Variable Properties dialog box where you can change the variable value. Specify Format Launches the Formatting Variables dialog box (see Formatting Variables on page 63). NOTE If double-clicking a variable does not work on a VNC client, see Appendix E on page 225. Nodes A node is a point in the Family Tree where (possibly virtual) parametric splits can occur or where a simulation tool can be changed in the tool flow. Nonvirtual nodes have simulation results. In one sense, a node is an ‘atom’ of the simulation. Viewing and Editing Node Properties To view node properties: 1. Select a node in the simulation flow. 2. Nodes > Properties. A dialog box is displayed as shown in Figure 39 on page 66. 3. Change the value of the node in the Value box. 4. Change the status of the node in the Status list. 5. Click OK. Sentaurus™ Workbench User Guide I-2013.12 65 4: Editing Projects Nodes Figure 39 Node information dialog box Changing Parameter Values Directly in Node Cells Sentaurus Workbench allows you to change parameter values directly in node cells. By default, this feature is switched off. To activate it: 1. Edit > User Preferences or press the F12 key. 2. Select Table and set Edit Value in a Cell to true. 66 Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Nodes To edit the parameter value in a node cell: 1. Select a node in the simulation flow. 2. You can change the value in any of the following ways: a) Start typing in the cell. b) Click twice with a small time interval (this is not a double-click). c) Double-click a node (only possible if the node double-click action is configured as Edit Cell; see Double-clicking Nodes on page 69). d) Nodes > Edit Values in a Cell. e) Press the F6 key. 3. Type the necessary value. Use the Backspace key to delete the last symbol. 4. To save the change, press the Enter key or arrow keys, or click another node. 5. To undo the change, press the Esc key. Figure 40 Value-editing in a node cell (shown by white cell under PolyDop column) NOTE Even when this feature is switched off, you can edit the parameter value of a selected node directly in the node cell by pressing the F6 key or selecting Nodes > Edit Values in a Cell. Sentaurus™ Workbench User Guide I-2013.12 67 4: Editing Projects Nodes Editing Parameter Values of Multiple Nodes Sentaurus Workbench allows you to change parameter values defined on several nodes at the same time: 1. Select multiple nodes in the simulation flow. 2. Nodes > Modify Multiple Parameter Values. 3. Specify the necessary value for each node in the New Value column. 4. Click OK. If all of the nodes must take the same value, you can speed up the setup process: 1. Specify the necessary value in the Parameter Value for All Nodes box. 2. Click Apply. 3. Click OK. Figure 41 68 Modify Multiple Parameter Values dialog box Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Nodes Double-clicking Nodes For better usability, you can configure the behavior of double-clicking a node and bind it to the desired action. To configure the behavior of double-clicking a node: 1. Edit > User Preferences or press the F12 key. 2. Table > Double Click Action > On Nodes. 3. Set the value to one of the following: Action What double-clicking invokes Show Properties Launches the Node Info dialog box (see Viewing and Editing Node Properties on page 65). Edit Cell Activates the editor for the node cells that allows you to modify a value directly in the node cell. Launch Explorer Launches the Node Explorer (see Node Explorer on page 38). Run Launches the Run Project dialog box (see Figure 73 on page 116). Preprocess Preprocesses the current node. Visualize Results Views node output files with the default visualizer. NOTE If double-clicking a node does not work on a VNC client, see Appendix E on page 225. Copying and Pasting Nodes Sentaurus Workbench allows to cut, copy, and paste nodes inside a Sentaurus Workbench project, as well as between two Sentaurus Workbench projects. To copy and paste nodes: 1. Select one or multiple nodes. You can only make horizontal or vertical selections of nodes. Rectangular selection is not supported. 2. Copy the nodes using any of the following actions: a) Edit > Copy. Sentaurus™ Workbench User Guide I-2013.12 69 4: Editing Projects Nodes b) Right-click the nodes, and select Copy. c) Ctrl+C. 3. Select nodes in the target project (it can be the same project) where you want to insert the nodes. 4. Paste nodes using any of the following actions: a) Edit > Paste. b) Right-click the nodes, and select Paste or Paste Special. c) Ctrl+V. Copying and pasting nodes means copying and pasting parameter values, with no change to the parameterization structure. When inserting nodes into an empty project, Sentaurus Workbench creates a necessary infrastructure: tools and parameters are pasted together with the nodes. The behavior of Sentaurus Workbench when pasting nodes may differ depending on the selection of where to insert the nodes: ■ ■ Node values are replaced by copied ones when the geometry of the selected nodes is the same between the source project and the target project. Nodes that are pasted inside the tool row or parameter row of a target project are inserted together with their parameters. NOTE When copying and pasting nodes, Sentaurus Workbench does not copy the node output files to the target project. Viewing Node Dependencies Sentaurus Workbench allows you to view nodes that are prerequisites of the selected nodes. Both implicit and explicit node dependencies are taken into account. To view prerequisite nodes: 1. Select one or more nodes. 2. Nodes > Extend Selection To > Prerequisite Nodes. Sentaurus Workbench selects all the nodes that are prerequisites of the originally selected ones. 70 Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Experiments and Scenarios Experiments and Scenarios An experiment or parameter setting is a tuple that contains one value for each parameter of the flow. A scenario is a subtree of a simulation tree of Sentaurus Workbench that contains a particular subset of experiments. Scenarios can overlap, that is, a particular node or path can be part of more than one scenario. Scenarios can be run and edited independently. NOTE All projects have a scenario ‘all’ that includes all the scenarios of a project. Adding Experiments An experiment can be added only if parameters are defined in a flow. To add a single experiment: 1. Experiments > Add New Experiment or press the Insert key. 2. Choose a scenario where the new experiment is to be added (the current scenario is preset). 3. Select or type values for all parameters. If an experiment is selected, the values are preset to those of the selected experiment. 4. Click Apply to add more experiments or click OK to add the experiment and close the dialog box. Figure 42 Add New Experiment dialog box Sentaurus™ Workbench User Guide I-2013.12 71 4: Editing Projects Experiments and Scenarios To add experiments by adding parameter values: 1. Experiments > Add Values. 2. Choose a scenario where the new experiment is to be added (the current scenario is preset). 3. Select a parameter for which you want to add a value. 4. Select a minimum value for the parameter. It can be alphanumeric if only one value is added; it must be numeric if more than one value is added. 5. Select the iteration step (not necessary if you add only one value). 6. Select the number of values to be added. 7. Select a linear or logarithmic scale (not necessary if you add only one value). 8. Check if you want to format the values (by default, the values are passed ‘as is’). You can select some of the most commonly used options in the box. The format used there is the same one used in the ANSI C sprintf command and the Tcl format command. If some experiments have been preselected, there is the option of adding the parameter values to all experiments (‘full factorial’) or to the selected experiments only. 9. Click Apply to add more experimental values or click OK to add current values and close the dialog box. Figure 43 Add Parameter Values dialog box Deleting Experiments To delete an experiment: 1. Select the required experiment in the experiments column. 2. Experiments > Delete Experiments, or press the Delete key. 72 Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Experiments and Scenarios NOTE Experiments are deleted from the current scenario only. If an experiment does not belong to any scenario, all nodes belonging to it are called ‘orphan’ nodes. To delete orphan nodes from the project: • Project > Clean Up > Clean up the tree. Sorting Experiments Sentaurus Workbench can sort experiments according to the values of a selected parameter. To sort experiments: 1. Select experiments. 2. Experiments > Sort Experiments. The Select Parameters to Sort dialog box is displayed. 3. Select the scenario, parameter, and sorting order as required. 4. Click OK. Figure 44 Select Parameters to Sort dialog box Importing Experiments from a File To import experiments from a text file that contains character-separated values, for example, a .csv file: 1. Experiments > Import From File. 2. Select the required file. 3. Select or type a scenario where the experiment is to be imported. 4. For each parameter or variable, select either a column number in the file from which you want to take this parameter value (the column number starts from 0) or a constant value that will be used for all imported experiments. 5. Select a delimiter between columns in the file. Sentaurus™ Workbench User Guide I-2013.12 73 4: Editing Projects Experiments and Scenarios 6. Select the number of first lines that will be skipped when reading experiments. 7. Select how many experiments (lines) are read from the file. This number is preset to the number of lines in the file. 8. Select whether consecutive delimiters are to be treated as one. This option is often used for space-separated values. 9. Click Preview to view which experiments will be imported. 10. Click OK. Figure 45 74 Import Experiments dialog box Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Experiments and Scenarios Viewing Experiment Properties To view experiment properties: 1. Select the required experiment in the experiments column. 2. Experiments > Properties or double-click the experiment. Adding Scenarios To add a scenario to the simulation tree: 1. Scenario > Add. 2. Type a new scenario name. 3. Click OK. Deleting Scenarios To delete a scenario from the simulation tree: 1. Scenario > Delete. 2. Select the required scenario. To select multiple scenarios, press the Ctrl key during selection. 3. Click OK. Copying and Moving Experiments Between Scenarios To copy or move experiments between scenarios: 1. Select the experiments to be copied in the experiment column. To select multiple experiments, press the Ctrl key during selection. 2. Edit > Copy to copy experiments or Edit > Cut to move experiments. 3. Select the scenario where you want to copy experiments from the scenario box in the toolbar, or Scenario > Next, or Scenario > Previous. 4. Edit > Paste. Sentaurus™ Workbench User Guide I-2013.12 75 4: Editing Projects Experiments and Scenarios Copying and Moving Experiments Between Projects To copy and move experiments between projects if both projects have same number of parameters in the flow: 1. Select the experiments to be copied in the experiments column. To select multiple experiments, press the Ctrl key during selection. 2. Edit > Copy to copy experiments or Edit > Cut to move experiments. 3. Open a project where you want to copy experiments in the same instance of Sentaurus Workbench. 4. Select the scenario where you want to copy experiments from the scenario box in the toolbar, or Scenario > Next, or Scenario > Previous. 5. Edit > Paste. When pasting experiments into an empty project, Sentaurus Workbench creates the corresponding infrastructure (tool steps and parameters). When pasting experiments into a project with experiments, the experiments are pasted only if the source and target projects have the same number of parameters and the parameters in both projects have the same names and appear in the same order. Pruning and Unpruning Pruning is a useful operation to remove superfluous paths from a tree. An entire subtree can be removed, reducing the simulation tree. Pruning and unpruning is not as important as in previous versions of Sentaurus Workbench, since it is no longer necessary to use a full factorial tree. The feature is here for backward compatibility and special applications that require partial trees. To prune or unprune a tree: 1. Select the required nodes. The whole subtree starting with these nodes will be pruned (or unpruned). 2. Nodes > Prune (or Ctrl+E) or Nodes > Unprune (or Ctrl+U). Pruned and orphaned nodes can be hidden from view. To hide or show nodes: ■ 76 View > Show Pruned or press the F8 key. Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Experiments and Scenarios Locking Nodes Node locking is useful for large projects where preprocessing all nodes is cumbersome. In addition, if you need to keep the current status of the preprocessing results for a specific tool, scenario, or node, the corresponding nodes can be locked. Locking the nodes prevents the nodes from being preprocessed. These nodes can be unlocked if preprocessing is required. To lock or unlock nodes: 1. Select the required nodes. 2. Nodes > Lock or Nodes > UnLock. Quick-running Nodes The quick-running of nodes submits the nodes directly to the queue specified and the nodes are run based on the function of the queue. The project is set to a running state. To quick-run a node: 1. Select the nodes. 2. Nodes > Quick Run and select the required queue. NOTE The queue list is loaded from the global queue definition file or the site queue definition file (if it is specified by the environment variable SWB_SITE_SETTING_DIR). Folding and Unfolding Nodes Having large tables with thousands of experiments makes it difficult to navigate the project and to have a clear overview of the project. Sentaurus Workbench allows you to reduce the table size by folding multiple experiments into a single one. Folding can be applied to split points of the parameterization tree; where new experiments appear, these are nodes having two or more child nodes. To fold nodes: 1. Select the required nodes. The entire subtree starting with these nodes will be folded. 2. Nodes > Fold. Sentaurus™ Workbench User Guide I-2013.12 77 4: Editing Projects Experiments and Scenarios Figure 46 shows how the view of the project tree changes after two folding operations: ■ Folding nodes 6 and 44 ■ Folding nodes 2 and 3 Figure 46 Original and folded project tree The fold operation is applied from left to right. If the selected node does not have direct child nodes, Sentaurus Workbench tries to fold all the nodes to the right of this node. Nodes belonging to collapsed experiments represent several nodes and are shown with the specific folded status. These nodes display a range of values of all the nodes behind them. You can apply almost all operations to folded nodes, that is, you can preprocess, run, abort, and clean up nodes, and you can visualize node results. You can consider the folded node as a multiple-node selection that includes the folded node and all the nodes hidden behind it. NOTE Folding nodes does not remove any experiments or result files. The fold operation simply hides nodes behind the folded node. You can display hidden nodes and experiments at any time using the unfold operation. To unfold nodes: 1. Select the required folded nodes or nodes to the left. 2. Nodes > UnFold. This operation unfolds the experiments collapsed at that point. If you fold experiments to the right of this node, the folding will be retained. 78 Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Project Consistency Control To unfold all experiments in the scenario: ■ Scenario > Unfold All. This operation unfolds all the folded experiments and restores the project tree to its original configuration. NOTE The configuration of folded nodes is stored with the project and is applied next time you load the project. Project Consistency Control The aim of project consistency control is to prevent you from running simulations that could be based on invalid results from previous simulations. Sentaurus Workbench automatically identifies nodes that may need to be re-executed after making changes in the project structure and tool input files. Project consistency control could be helpful after the following user actions: ■ Modifying a tool input file and reloading the project ■ Modifying the project parameterization table: ■ ■ ■ • Modifying the value of one or more parameters on a node level • Removing a parameter • Inserting a new parameter Modifying the project tool flow: • Removing a tool • Adding a new tool Modifying the user-defined variables that are involved in the simulations (are used in tool input files) Removing experiments that contain nodes whose simulation results are referenced in other experiments Activating Project Consistency Control Project consistency can be set up in the Sentaurus Workbench user preferences: 1. Edit > User Preferences or press the F12 key. 2. Select Project > Consistency Control (see Figure 47 on page 80). Sentaurus™ Workbench User Guide I-2013.12 79 4: Editing Projects Project Consistency Control In Sentaurus Workbench, user preferences provides different modes for project consistency control, under Actions on Inconsistent Nodes. Figure 47 Project consistency settings in user preferences Table 7 describes the different modes of project consistency control that are available. Table 7 Different modes of project consistency control Mode Description Nothing This means that project consistency control is disabled. This is the default. Mark Ambiguous This is an informative mode where Sentaurus Workbench marks the nodes that are potentially not up-to-date and that may need to be re-executed with a red exclamation mark (see Figure 48 on page 81). The red exclamation mark means that you must decide whether to rerun this node after the latest changes in the project have been completed. Sentaurus Workbench does not take any other actions at this point (such as deleting the node simulation results or extracted variables). If you decide some marked nodes should not be rerun, remove the red exclamation mark (see Removing Exclamation Marks on page 81). If you need to re-execute marked nodes, clean up the nodes (see Re-Executing Marked Nodes on page 81). Clean Up 80 This is the most rigorous mode where Sentaurus Workbench determines ambiguous nodes and ultimately cleans them up. This mode should be used with caution because automatic cleanup may result in unwanted loss of simulation results. You should use this option with the automatic backup switched on (see Backing Up Node Files Automatically on page 130). Sentaurus™ Workbench User Guide I-2013.12 4: Editing Projects Project Consistency Control Removing Exclamation Marks If you decide some marked nodes should not be rerun, remove the red exclamation mark: 1. Select the corresponding nodes. 2. Nodes > Unmark Ambiguous. Re-Executing Marked Nodes If you need to re-execute marked nodes, clean up the nodes: 1. Select the corresponding nodes. 2. Nodes > Clean Up Node Output. When you leave nodes marked, Sentaurus Workbench decides whether to re-execute nodes depending on the corresponding user preferences setting (under Rerun Ambiguous Nodes Next Time, see Figure 47 on page 80). The options are: ■ Never ■ Always In the first case, Sentaurus Workbench considers marked nodes as up-to-date nodes and does not restart them the next time you execute your simulations. Otherwise, Sentaurus Workbench reruns the ambiguous nodes. Figure 48 After modifying the parameter value in node 12, the successive nodes are marked as ambiguous Sentaurus™ Workbench User Guide I-2013.12 81 4: Editing Projects Project Consistency Control 82 Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 5 Design-of-Experiments and Taguchi Wizards This chapter describes the design-of-experiments (DoE) and Taguchi wizards that are available in Sentaurus Workbench. Design-of-Experiments (DoE) Wizard The main purpose of the DoE Wizard is to facilitate the use of the tools for DoE available in Sentaurus Workbench. Through a self-descriptive series of windows, you are prompted to specify settings of different factors that determine the type of design to generate. Step 1 of the DoE Wizard (see Figure 49) is a dialog box in which you must choose one of the design options available. These design options implicitly relate to the objectives of the user for that design. Each option is explained briefly in the lower part of the dialog box. Figure 49 DoE Wizard - Step 1 Although a stochastic design is used to implement an uncertainty analysis instead of an optimization process, this type of design has been included in this wizard because an uncertainty analysis can be performed more efficiently with an appropriate stochastic design, such as the one provided by the probabilistic collocation method. In Step 2 (see Figure 50 on page 84), the DoE Wizard obtains parameters from the current project, in which every parameter has a default value, which is also referenced by the DoE Wizard. You must decide which parameters are to be included in the study. Sentaurus™ Workbench User Guide I-2013.12 83 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard Parameters under investigation must be moved to the DOE field (SDOE field if Stochastic Design was chosen in Step 1) or the USERD (user-defined) field. Parameters in the DOE field are used to define a DoE suitable to achieve the objective chosen in Step 1, whereas parameters in the USERD field allow for the abovementioned DoE to be run under different conditions, each parameter measuring a different response. Figure 50 DoE Wizard - Step 2 Unselected parameters remain in the left pane and are considered as constants during the simulation. Their values are the default ones assigned by you in the creation of the project. The SDOE field becomes active only when the Stochastic Design option has been selected in Step 1, that is, only if the goal is to perform an uncertainty analysis. Therefore, it is not possible to mix, in the same experimental plan, parameters that by definition have different objectives, such as deterministic parameters that are used to optimize the response and stochastic parameters intended to perform an uncertainty analysis. Step 2 is the same for every option chosen in Step 1, but the following steps are different depending on the objective defined in Step 1. 84 Sentaurus™ Workbench User Guide I-2013.12 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard Figure 51 DoE Wizard - Step 3 Screening For a screening process, Step 3 corresponds to a dialog box such as the one in Figure 51. Here, you must specify the levels for each parameter and the scale in which they are measured. When the parameters are defined, the DoE Wizard provides, in a fourth step, a list of the suitable designs to fit a first-order model. The length of the list depends on the number of parameters selected in the DOE field (Step 2). Step 4 (shown in Figure 52) has a column that displays the required number of runs to complete each design and a column that shows the resolution of each design. You must choose one of the designs. Consider that the higher the resolution, the better the quality of the fitted model will be and the higher the cost of the experimental plan will be. Figure 52 DoE Wizard - Step 4 for screening Sentaurus™ Workbench User Guide I-2013.12 85 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard Response Surface Model Step 3 for a response surface model (RSM) is the same as for screening (see Figure 51 on page 85). Nevertheless, you must be aware that, this time, the objective is to fit a second-order model. This implies that the DoE Wizard adds at least one more level to each parameter automatically. Step 4 for a RSM provides a list of designs that allow the fitting of a second-order model. The second column in the table shows the number of simulations or runs required to complete each experimental plan. If Central Composite Complete or Central Composite Small is chosen, you must define the axial distance. To do so, there is a special step (see Figure 53). Figure 53 86 DoE Wizard - Step 5 for response surface model Sentaurus™ Workbench User Guide I-2013.12 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard Stochastic Design Step 3 for stochastic design (see Figure 54) allows for the definition of characteristics for the stochastic parameters. This means that you must associate each parameter with a probabilistic distribution and a number of collocation points (parameter settings). Figure 54 DoE Wizard - Step 3 for stochastic design The stochastic design produces experiments by combining random values that are generated according to the user settings for each involved parameter: the random distribution and the number of values. The alternative is to generate an independent set of experiments. You can define the final number of experiments to generate, and Sentaurus Workbench creates experiments by generating a random value for each parameter variation. To use this mode of DoE: 1. Select the option Monte Carlo Design. 2. Specify the final number of experiments to generate (see Figure 55). Figure 55 DoE Wizard – Step 3 for Monte Carlo stochastic design Sentaurus™ Workbench User Guide I-2013.12 87 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard Square Design Square designs are deterministic designs that are used to study more than two levels for each parameter in an economical way, using Latin or Greco Latin or Hyper Greco Latin square. In this case, Step 3 (see Figure 56) allows for the definition of three up to eight levels for each parameter. Figure 56 DoE Wizard - Step 3 for square design Sensitivity Analysis Sensitivity analysis aims at analyzing the model outputs as a function of very small changes to a single parameter with all of the other parameters fixed. Therefore, sensitivity analysis only reveals the local gradient of the response surface of the model with regard to a given parameter. Sentaurus Workbench supports two modes of sensitivity analysis: ■ ■ 88 The standard mode provides a powerful and flexible way of generating experiments based on the involved parameters. The alternative mode implements the Taurus Workbench (TWB) style of creating experiments for sensitivity analysis and may be useful for Taurus Workbench compatibility. Sentaurus™ Workbench User Guide I-2013.12 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard Standard Sensitivity Analysis Mode Step 3 for sensitivity analysis (see Figure 57) consists of three group boxes: ■ TWB Compatibility ■ Global Settings ■ Parameter Settings Figure 57 DoE Wizard – Step 3 for standard sensitivity analysis mode TWB Compatibility Group Box The TWB Compatibility group box specifies whether the standard or TWB sensitivity analysis mode is used. For the standard mode, clear the TWB Sensitivity Analysis option (see Figure 57). Global Settings Group Box The Global Settings group box allows you to specify settings that are applicable to all of the involved parameters. This can save time when dealing with a number of parameters that have similar values of the sensitivity range and the number of samples inside that range. Sensitivity Range means the range around the nominal value that covers the area of the parameter variations. The default range is 10% and is a symmetric one: For the nominal value X , the corresponding sensitivity range is X ± 10% . Points specifies the number of samples inside the sensitivity range (the default is 3). Sentaurus™ Workbench User Guide I-2013.12 89 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard When you click the Apply to All Parameters button for Sensitivity Range and Points, the global values overwrite the corresponding parameter-specific settings in the Parameter Settings group box. Parameter Settings Group Box In the Parameter Settings group box, you define settings specifically for each involved parameter. Table 8 lists the available parameter settings. Table 8 Parameter Settings options Parameter setting Description Lin/Log Select either linear scale or logarithmic scale. Nominal Nominal value of the parameter. By default, this is the default parameter value. Points Number of parameter variations (samples). Range% The sensitivity range. By default, this is a symmetric range around the nominal value. Min. Specifies the lower point of the sensitivity range. Max. Specifies the upper point of the sensitivity range. Smooth Points Defines an additional number of sample points inside the smooth range (the interval around the nominal value). The default is 0. Smooth Range% Specifies a smooth range around the nominal value, where additional points (samples) are defined. Smooth Min. Specifies the lower point of the smooth sensitivity range. Smooth Max. Specifies the upper point of the smooth sensitivity range. By default, the symmetric sensitivity range is defined by the parameter nominal value and the value of range (in percent from the nominal value). You can redefine the default sensitivity range by the direct definition of the Min. and Max. values. In this case, the Range% value is removed from the table to avoid confusion. The Smooth Points may be helpful to specify when the evaluation of the response gives an unwanted increase or noise at the nominal value of the parameter. In that case, additional points around the parameter nominal value may help to interpolate the response curve (surface). 90 Sentaurus™ Workbench User Guide I-2013.12 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard After applying the standard sensitivity analysis mode, Sentaurus Workbench generates the experiments as shown in Figure 58. Figure 58 Experiments generated by standard sensitivity analysis mode Taurus Workbench–compatible Sensitivity Analysis Mode The traditional Taurus Workbench (TWB) sensitivity analysis mode is activated when you select the TWB Sensitivity Analysis option (see Figure 57 on page 89). TWB Compatibility Group Box The TWB Compatibility group box now displays options to switch between two models: ■ Sensitivity V ■ Sensitivity R The dialog box changes depending on the selected model (see Figure 59 and Figure 60 on page 92). Sentaurus™ Workbench User Guide I-2013.12 91 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard 92 Figure 59 TWB-compatible sensitivity analysis: Sensitivity V model Figure 60 TWB-compatible sensitivity analysis: Sensitivity R model Sentaurus™ Workbench User Guide I-2013.12 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard Global Setting Group Box The Global Settings group box allows you to specify the sensitivity range, which is a global option for all of the involved parameters. The default is 10%. Parameter Settings Group Box In the Parameter Settings group box, you can define the following parameter-specific values: ■ Nominal ■ Minimal and maximal (Sensitivity R model only) ■ Mean (Sensitivity V model only) After applying the Sensitivity R model, Sentaurus Workbench generates the following sample values for each involved parameter: ■ <nominal> ■ (<min + max>) / 2 ■ (<min> + <max>) / 2 + <sensitivity range> * 0.01 * (<min> + <max>) / 2 After applying the Sensitivity V model, Sentaurus Workbench generates the following sample values for each involved parameter: ■ <nominal> ■ <mean> ■ <mean> + <sensitivity range> * 0.01 * <mean> Figure 61 and Figure 62 on page 94 show how Sentaurus Workbench generates experiments for the Sensitivity V model and the Sensitivity R model, respectively. Figure 61 Experiments generated by Sensitivity V model Sentaurus™ Workbench User Guide I-2013.12 93 5: Design-of-Experiments and Taguchi Wizards Design-of-Experiments (DoE) Wizard Figure 62 Experiments generated by Sensitivity R model User-Defined Parameters Until now, only DoE and SDoE parameters have been explained, but user-defined parameters can be defined in the same way, despite the option selected in Step 1. These parameters can be defined as either continuous with any number of levels or categorical. Figure 63 DoE Wizard - Step 3 for user-defined parameters Final Step The final step is a summary that contains all the relevant information about the design you will generate. It gives the perspective to detect problems such as unfeasible combinations or excessive runs for the resources and time available for the experimental plan. 94 Sentaurus™ Workbench User Guide I-2013.12 5: Design-of-Experiments and Taguchi Wizards Taguchi Wizard This final step is common to all the design options chosen in Step 1. Figure 64 DoE Wizard - Final Step Taguchi Wizard The Taguchi Wizard is a feature to help you create a Taguchi DoE. This wizard, in a few steps, offers basic and direct options that allow for the definition of the characteristics of the required Taguchi design. An optional step shows the values generated according to user specifications in the last steps. Finally, the wizard allows for the generated design to be pasted to the main worksheet of Sentaurus Workbench as a new scenario. In the first step (see Figure 65), the number level of the Taguchi design is selected. Figure 65 Taguchi Wizard - Select Design Sentaurus™ Workbench User Guide I-2013.12 95 5: Design-of-Experiments and Taguchi Wizards Taguchi Wizard Note that: ■ ■ Choices are divided between two group boxes: 2 Level and Multilevel With Noise. When a Multilevel With Noise design is selected, the Select Outer Array Design options are available to allow you to define the design to be used as noise. In the next steps: ■ ■ The Factors column is a non-editable header column, containing the experiment references designated alphabetically, A, B, C, and so on. The Parameters column allows for the selection of one of the valid parameters from Sentaurus Workbench. When a parameter is selected, it is not available for any further selection on the other boxes. In the second step of 2 Level models (see Figure 66), you define the design corresponding to the Taguchi inner array. The columns Center and Shift must be set to define parameter values as center ± shift. Figure 66 96 Two Level design - Step 2 Sentaurus™ Workbench User Guide I-2013.12 5: Design-of-Experiments and Taguchi Wizards Taguchi Wizard The second step of Multilevel With Noise (see Figure 67) contains entries to select parameter values for each level. Columns L1 to Ln must be set with the values of the levels for the selected parameter. Figure 67 Multilevel With Noise - Step 2 The third step of Multilevel With Noise (see Figure 68) contains entries to set the values of the outer (noise) array. The No Noise, N1, and N2 columns allow you to insert three levels of error factor that will be used to create the error design to be applied. If the Percentage column is selected, the error factor is applied as a percentage of the value (Value With Error = value + value * error / 100). Otherwise, the factor is applied as a simple value (Value With Error = value + error). Figure 68 Multilevel With Noise - Step 3 Sentaurus™ Workbench User Guide I-2013.12 97 5: Design-of-Experiments and Taguchi Wizards Taguchi Wizard By clicking View Design (see Figure 68 on page 97) in the last step of the wizard, the optional View Design dialog box is displayed (see Figure 69), where you can see the design that will be generated. Figure 69 Taguchi Wizard - View Design dialog box After clicking Finish, the selected design is created in the main view (see Figure 70). Figure 70 98 Taguchi Wizard results Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 6 Preprocessing Projects This chapter discusses how Sentaurus Workbench preprocesses projects. Overview As previously mentioned in Parameters on page 55, one of the most important features of Sentaurus Workbench is the support for project parameterization. A parameterized project consists of a set of experiments where certain sensible input variables take different values. A parameterized project is represented as a tree structure called gtree. In a project, you provide the set of input file templates for each tool as defined in the tool database. You can express variations in templates using the preprocessor language of Sentaurus Workbench. There are two categories of preprocessor language constructs: preprocessor #-commands (see Preprocessor #-Commands on page 100) and @-references (see @References and Tree Navigation on page 101). The Sentaurus Workbench preprocessor supports also special Tcl command blocks, which contain arbitrary Tcl commands (see Tcl Command Blocks on page 108). To differentiate the nodes in gtree and to take into account already computed results, spp – the Sentaurus Workbench preprocessor – automatically generates actual input files at run-time. Dynamic preprocessing enables a simulation to be dependent on the results of other simulations, that is, the behavior of a node can vary as a function of variables extracted at other nodes. Global and Run-Time Preprocessing Preprocessing is performed in two phases: 1. A global, projectwide preprocessing phase, before project execution. This phase does not create real input files (pp*). Instead, it scans the user input templates of the tool to extract the job interdependencies and produce the project execution graph (file gexec.cmd), and to find the #set commands and insert variable values into the project variable file (gvars.dat). In addition, global preprocessing can be used on expressions, nodes, and scenarios (see Node Expressions on page 103). Sentaurus™ Workbench User Guide I-2013.12 99 6: Preprocessing Projects Preprocessor #-Commands 2. Generation of job input files before a job is started. All preprocessor commands and @references are resolved and replaced at that time. A variable reference is replaced with the most recently extracted value or with the value given at the closest #set command if there is no extracted value. Finally, all preprocessor Tcl blocks are extracted, evaluated, and substituted with the result of the Tcl evaluation (standard output). To perform phase 1 only, use the command: spp PROJECT To perform both phases for the whole project (create the execution graph and variable file, and generate all pp* input files), use the command: spp -input PROJECT NOTE In the global preprocessing phase, the variable references are replaced with #set values, not with extracted values. NOTE Locked nodes are not preprocessed. gsub automatically performs phase 1 preprocessing when required (if any input file has been modified since the last global preprocessing), before job submission. gjob automatically performs phase 2 preprocessing before job execution (unless the project has the Research configuration or the -nopp command-line option is specified explicitly). Preprocessor #-Commands The #-commands give instructions to spp. They are used when simple @-references are not adequate to modify the behavior of a tool. For example, conditional commands instruct spp to create different sections of an input file for different nodes (or groups of nodes). Conditions typically refer to parameters, as shown in the following input file fragment of Sentaurus Device: #if @WithHydro@ == 1 coupled { Poisson Electron Hole eTemperature } #else coupled { Poisson Electron Hole } #endif This example shows a template with two sections, one for even and one for odd node indices: #if @node:index@ % 2 == 0 # section for even node indices #else 100 Sentaurus™ Workbench User Guide I-2013.12 6: Preprocessing Projects @-References and Tree Navigation # section for odd node indices #endif As a further illustration, this example shows how to test for the next or previous tool: #if "@tool_label|+1@" == "shell2" next tool is shell2 #else next tool is something else #endif #-Commands on page 192 lists all of the available #-commands of Sentaurus Workbench. @-References and Tree Navigation Since Sentaurus Workbench must control all tool input and output files in the simulation tree and determine job interdependencies, file names should only appear as file references in input files. Do not use absolute, hard-coded file names. Use node references instead of hard-coded node keys. At run-time, the preprocessor substitutes file references and node references with the corresponding file names or node keys. The following conventions and notations are used: ■ Each node is uniquely identified by its key noted nkey. ■ Node keys can be displayed in the Project Editor. ■ ■ Tool output file names are prefixed with n<nkey>_<acronym>, where <acronym> is a three-character string identifying a specific tool. The set of nodes at a certain tree level represents all occurrences of the tool at that level. These nodes are indexed from 1 to n , where 1 denotes the leftmost node and n is the rightmost node. A node index is the absolute position of the node in its tree level. @-references can be parameters, variables, expressions, or commands that are enclosed in a pair of @. The enclosed content is evaluated and substituted by the preprocessor. A simple reference of Sentaurus Workbench usually refers to the current node (@node@). Navigation operators can be used to move the reference from the current node to another node in the tree. Relative navigation can be in all directions around the current node: up, down, left, right, and also in absolute indices. Sentaurus™ Workbench User Guide I-2013.12 101 6: Preprocessing Projects User-Defined Delimiters To illustrate the use of file references, a typical Sentaurus Device File section is: File { grid = "@grid@" doping = "@doping@" plot = "@dat@" current = "@plot@" output = "@log@" } NOTE For historical reasons, the meaning of the keyword plot is different in Sentaurus Device and Sentaurus Workbench. In Sentaurus Device, plot refers to the plots of the primary and derived quantities over the computational domain. In Sentaurus Workbench, plot refers to I–V curves. User-Defined Delimiters As specified in @-References and Tree Navigation on page 101, the preprocessor recognizes the symbol "@" as a delimiter for parameters, expressions, commands, and so on. At the same time, the input language syntax of some tools, integrated into Sentaurus Workbench, allows the use of the symbol "@" internally in language-specific constructions (for example, internal variables). This is the case for tools such as TSUPREM-4. To avoid problems during preprocessing, all such character expressions in the input file must be protected with the #verbatim keyword. However, this may overload the input file with preprocessor commands and instructions, making the file difficult to read and understand. Another issue is potential preprocessing problems, when a preprocessor reference @...@ is used on the same line as an @… language construction. To avoid such problems, the default delimiter symbol can be redefined for the tool by setting up a particular tool database instruction: set WB_tool(<tool_name>,substitution_delimiter) <delimiter> where <tool_name> is the tool name. The delimiter can be either a single character or a combination of characters (spaces are not allowed). The symbol "@" remains a valid delimiter for input files of other tools. The redefined delimiter takes effect for all of the tool-related files involved in the preprocessing. At the same time, toolspecific setup, prologue, and epilogue scripts from the tool database, as well as the variable extraction commands, can only be specified using the standard "@" delimiter. 102 Sentaurus™ Workbench User Guide I-2013.12 6: Preprocessing Projects Node Filters NOTE The delimiter redefinition works only when the preprocessor spp is used. NOTE Ligament input files do not support redefined delimiters. Node Filters A node filter is a Tcl expression that evaluates to true (!=0) or false (0) for any existing node in the simulation tree. The syntax of a filter is: filter: "{" EXPR "}" where EXPR is a Tcl expression that evaluates to a number. EXPR can refer to parameters or variables existing in the current tree using the $NAME notation, for example, the expression: { $P2 == 3 && $V1 > 2 } will evaluate to true for nodes where the value of parameter P2 is equal to 3 and the value of variable V1 is greater than 2. Nodes for which a referenced parameter or variable is not defined are rejected (evaluated to false). In other words, the previous expression is equivalent to: { ([info exists P2] && $P2 == 3) && ([info exists V1] && $V1 > 2) } Additionally, EXPR recognizes the two predefined functions min(NAME) and max(NAME). For example: { $P2 == min(P2) } will evaluate to true for nodes where the value of parameter P2 is equal to the minimal value of P2. Node Expressions Sentaurus Workbench provides expressions – abbreviated gexpr – to select nodes in the simulation tree. A gexpr returns a list of node keys and is especially used in the Scheduler to submit nodes for execution. The syntax of a gexpr is detailed in Node Expressions on page 195. For example: "sc1|last:{$P1 == 1} * sc2|last:{$P1 == 1}" will return the leaf nodes belonging to both scenarios sc1 and sc2, where parameter P1 is equal to 1. Sentaurus™ Workbench User Guide I-2013.12 103 6: Preprocessing Projects Split Points Split Points A parameter introduces a new level in the simulation tree to the right of the tool step. Viewed from the tree, a parameter splits the overall tool simulation phase into two subphases. This is only an abstract view because each tool instance usually executes the entire simulation phase from the beginning to end in one run. As a result, the same first subphase (or subphases) is unnecessarily executed several times. This is only true for tools whose command file defines a linear control flow (that is, a flow executed sequentially from the beginning to end, command after command). These tools are called linear tools. Typically, process simulation tools are linear tools. Sentaurus Workbench provides a splitting facility so that linear tools can save and restore their state; each intermediate branch in the tree can be executed only once. This facility can save considerable computing time, especially for lengthy jobs with multiple phases. A tool can only be split when the Save and Load commands are defined in the tool database. For example, Sentaurus Process has the following two lines in the standard tool database: set WB_tool(sprocess,split,save_cmd) "struct tdr=n@node@" set WB_tool(sprocess,split,load_cmd) "init tdr=n@previous@" NOTE To ensure that Sentaurus Workbench shows the real status of the intermediate nodes, check whether View > Tree Options > Check Virtual Nodes is selected (see Real and Virtual Family Nodes on page 29). Preprocessed Variables Like a parameter, a variable holds a value and can be referenced in any form of @-references. The main difference is that a variable does not create a split in the simulation flow and, therefore, does not change the shape of the simulation tree. The #set command is used to define a preprocessed variable and assign a value to it: #set <varname> <value> A defined variable can then be referenced by its name in any @-reference notation. A variable reference creates an execution dependency from the node where the reference is performed to the first ancestor where the variable has been set. The scope of a variable is similar to that of a parameter, that is, from the node with the first #set directive to all of its descendants. 104 Sentaurus™ Workbench User Guide I-2013.12 6: Preprocessing Projects Extracted Variables A variable can be reassigned in two ways: ■ ■ By another #set directive, that is, by overriding it with another preprocessed value. Through an extraction, that is, by overriding it with an extracted value (see Extracted Variables). All variables are shown in the Family Tree. A typical use of #set commands is to define a set of variables bound to a parameter, such as the fields of a record: #if @PARAM@ == 1 #set PARAM_V1 1.5 #set PARAM_V2 2.5 #elif @PARAM@ == 2 #set PARAM_V1 11.5 #set PARAM_V2 12.5 #endif This construct avoids the declaration of two artificial parameters and reduces the size of the overall project tree. Extracted Variables Another common use of variables is to extract a value from the tool output file and refer to it in the next tool input file. Values are extracted from node output files. After the node has been successfully executed, its output file is parsed for strings that match the following mask: DOE: <varname> <value> Then, the values found are written to the gvars.dat file. If the specified variable already exists, the extracted value will overwrite the existing one. If the specified variable does not exist, that is, it was not defined globally or with the #set command, a new variable will be created. After that, the extracted variable can be referenced in any subsequent tool input files by using standard preprocessor @-references. The only way to inform Sentaurus Workbench that a value must be extracted during the simulation and assigned to some variable is to provide the DOE: <varname> <value> string in the node output file. Usually, it should be printed in the tool command file. The corresponding command strictly depends on the tool and its command syntax. For example, for Sentaurus Process, it can be a simple Tcl command: puts "DOE: ENERGY 120.56" Sentaurus™ Workbench User Guide I-2013.12 105 6: Preprocessing Projects Extracted Variables Inspect supports another way of exporting of values to the Family Tree. It is possible to use the ft_scalar function in the Inspect command file: ft_scalar <varname> <value> This function assigns the value to the specified variable of Sentaurus Workbench. If the variable does not exist, it will be created. In this way, nothing is sent to the node output file: the exported value goes directly to the variable definition. Extracted values and preprocessed values are separated from each other. Extracted values become available during the simulation running phase, while preprocessed values are already known at the preprocessing stage. The following example demonstrates how the algorithm extracts values from the simulation step and accesses them in the subsequent simulation steps: 1. In the tool where the extraction is performed, an arbitrary default value must be assigned to the extracted variable: #set EXTRACTED_VAR 0 This command could be also specified in any preceding tools if any. 2. In the tool where the extraction is performed, the printing command must be specified in the tool command file. In the case of Sentaurus Process, it could be: puts "DOE: ENERGY 120.56" or: puts "DOE: ENERGY @ENERGY_2@" where ENERGY_2 is another variable. 3. The variable EXTRACTED_VAR can be referenced in any subsequent tool input files by using standard preprocessor @-references and #-commands, such as: @EXTRACTED_VAR@ @< @EXTRACTED_VAR:+1@ / 2 >@ #if @EXTRACTED_VAR@ > 1.5e15 ... #endif NOTE 106 A common cause of errors when using extracted variables is that a corresponding variable does not exist during preprocessing. In this case, preprocessing of the project can fail if there are any references to this variable in the input files of other tools. To avoid this error, globally declare the variable or use the #set preprocessing command. Sentaurus™ Workbench User Guide I-2013.12 6: Preprocessing Projects Execution Dependencies NOTE Extracted variables work only for tools for which the extracting algorithm has been defined in the tool database. For example, the global tool database defines it for Sentaurus Process in this way: set WB_tool(sprocess,epilogue) { extract_vars $wdir @stdout@ @node@; ... } where the extract_vars function is defined also in the global tool database. This definition means that the values for each executed node will be extracted from the output file on the basis of the DoE: the pattern specified in the function. In the global tool database, this extraction algorithm is defined for Sentaurus Process, TSUPREM-4, Raphael, and Inspect. To enable other tools to support extracted variables, the corresponding definition must be specified in the user or project tool database. It is also possible to define a user-specific extracting algorithm for extracting values between Family Tree steps. Execution Dependencies During preprocessing, all dependencies in the files are analyzed in the following way: If there is a file reference @file_type@ with possible, additional, relative direction suffixes (see Appendix A on page 187 for information about @-references and tree navigation) in any of the command files or parameterized input files, the execution is made dependent on the successful completion of the pointed node. NOTE @node@ references do not create any dependencies and there are no implicit child to parent dependencies. Dependencies can be forced using the #setdep directive. For example, #setdep @node|-1:all@ creates a barrier before the current level, that is, no node at the current level can start execution before all nodes at the previous level have been successfully completed. spp checks for circular references and fails if one is found. Dependencies can be viewed by extending the selection to prerequisite nodes (see Viewing Node Dependencies on page 70). Dependencies can be explicitly removed using the #remdep command, for example: #remdep @node|+1@ Sentaurus™ Workbench User Guide I-2013.12 107 6: Preprocessing Projects Tcl Command Blocks NOTE The order in which dependencies are set or unset is important. Unsetting a dependency does not have any effect if the dependency is set again later in the same input file, either implicitly or explicitly. Therefore, a #remdep directive at the beginning of the file does not have any effect; this directive typically appears at the end of an input file. NOTE Although the reference @previous@ is, in principle, equivalent to @node|-1@, the difference is that @previous@ creates a dependency, while @node|-1@ does not. Tcl Command Blocks Creating Tcl Command Blocks The concept of Tcl command blocks is to bring additional power to inflexible and hard-to-use language for some tools incorporated into Sentaurus Workbench. Tcl command blocks consist of an arbitrary set of Tcl command lines that are delimited by "!(" and ")!". During the final stage of preprocessing, Tcl command blocks are extracted and evaluated by the preprocessor. In the node input file, each Tcl block is replaced with the standard output of its Tcl evaluation. The following example illustrates the use of Tcl command blocks to power some Sentaurus Device code. Consider the following part of an input file for Sentaurus Device (Tcl blocks are italicized): #if @<polarization>@ == "on" !( #============================================================= # Computation of piezo/spontaneous charge # using SWB capability to interpret Tcl command blocks #============================================================= set q 1.602e-19;# elementary charge set Psp_AlN [expr -8.1e-6/$q];# AlN build-in spontaneous polarization set Psp_GaN [expr -2.9e-6/$q];# GaN build-in spontaneous polarization set Psp_AlGaN [expr @x@*$Psp_AlN+(1-@x@)*$Psp_GaN]; # AlGaN spontaneous polarization set DPsp [expr $Psp_GaN-$Psp_AlGaN]; # interface charge due to spontaneous polarization set e33i [expr (@x@*1.46e-4+(1-@x@)*0.73e-4)/$q] set e31i [expr (@x@*-0.60e-4+(1-@x@)*-0.49e-4)/$q] set c13i [expr @x@*108+(1-@x@)*103] set c33i [expr @x@*373+(1-@x@)*405] set straini [expr @x@*(3.189-3.112)/(@x@*3.112+(1-@x@)*3.189)] set Ppz_AlGaN [expr 2*$straini*($e31i-$c13i/$c33i*$e33i)] 108 Sentaurus™ Workbench User Guide I-2013.12 6: Preprocessing Projects Tcl Command Blocks set DPpz $Ppz_AlGaN set intCharge [expr $DPsp+$DPpz]; # resulting value of the interface charge # Transfer the resulting charge to the project Family Tree as SWB variable set SWB_VARIABLES(Charge) [format %.6e $intCharge] )! * Spontaneous polarization for AlGaN: !(puts -nonewline [format %.2e $Psp_AlGaN])! * Piezopolarization for AlGaN: !(puts -nonewline [format %.2e $Ppz_AlGaN])! * Total AlGaN Polarization: !(puts [format %.2e [expr $Psp_AlGaN+$Ppz_AlGaN]])! * Total GaN Polarization: !(puts [format %.2e $Psp_GaN])! #endif ... Physics(materialinterface="GaN/AlGaN") { #if @<polarization>@ == "on" Charge( Conc=!(puts -nonewline [format %.4e $intCharge])! ) #endif #if [string match "*NL*" "@model@"] * hetero barrier non-local barrier tunneling Recombination(eBarrierTunneling(nonlocal)) #endif } ... This file is preprocessed to the following node file: * Spontaneous polarization for AlGaN: -5.06e+13 * Piezopolarization for AlGaN: -1.85e+13 * Total AlGaN Polarization: -6.91e+13 * Total GaN Polarization: -1.81e+13 ... Physics(materialinterface="GaN/AlGaN") { Charge( Conc=1.3925e+13 ) * hetero barrier non-local barrier tunneling Recombination(eBarrierTunneling(nonlocal)) } ... NOTE If a Tcl command block prints nothing (no Tcl puts command is used), the standard output of the Tcl evaluation is empty. This is the reason why there will be nothing from this block in the preprocessed node input file. Sentaurus™ Workbench User Guide I-2013.12 109 6: Preprocessing Projects Tcl Command Blocks Tcl Preprocessing The evaluation of the Tcl command blocks is called automatically by the Sentaurus Workbench preprocessor at the final stage of project preprocessing. To reduce the preprocessing time, Tcl preprocessing can be called explicitly by using: Project > Project Operations > Preprocess Tcl Blocks (see Figure 71). In this preprocessing mode, only Tcl command blocks in the tool input files are Tcl evaluated. All unresolved Sentaurus Workbench parameters and expressions (@..@, @<..>@, @[..]@) are substituted with dummy values. This light preprocessing mode is useful for testing purposes only. To obtain the expected results, the whole preprocessing procedure must be activated. Figure 71 Project menu showing command to preprocess Tcl blocks Tcl Blocks and Sentaurus Workbench Variables Tcl command blocks provide a possibility to create or update Sentaurus Workbench variables. They are equivalent to the preprocessing variables, created with the #set command. For these purposes, a special SWB_VARIABLES Tcl array must be updated in the Tcl command block. This array is global. To instruct the Sentaurus Workbench preprocessor to initialize the Sentaurus Workbench variable "myvar" with the value "myval", the following Tcl instruction must be inserted into the Tcl command block: set SWB_VARIABLES(myvar) "myval" 110 Sentaurus™ Workbench User Guide I-2013.12 6: Preprocessing Projects Tcl Command Blocks The following is an example of the creation of three variables var1, var2, and var3 with the values 1, 2, and 3: !( ... set SWB_VARIABLES(var1) 1 set SWB_VARIABLES(var2) 2 set SWB_VARIABLES(var3) 3 ... ) Figure 72 Creation of three variables Input and Output Operations Inside Tcl Command Blocks It is necessary to force flushing of output streams in Tcl blocks. Use the Tcl flush command when writing files inside a Tcl command block. Otherwise, the file will not be available until the node has been executed: set FID [open "@pwd@/tmp_n@node@_ins.cmd" w] ... ... puts $FID "Hello World" flush $FID close $FID Sentaurus™ Workbench User Guide I-2013.12 111 6: Preprocessing Projects Tcl Command Blocks Summary of Rules for Using Tcl Command Blocks When using Tcl command blocks, note the following requirements: ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ A Tcl block contains an arbitrary number of native Tcl instructions between a "!(" and ")!" pair of symbols. Tcl blocks cannot be nested. A Tcl block can be inserted in any place of any preprocessed file (tool command files, parameter files for Sentaurus Device, and so on). Each file can contain an arbitrary number of Tcl blocks. All Tcl blocks are evaluated by a separate Tcl interpreter, which is specific for each experiment in the project. All Tcl blocks are evaluated for each tool, from left to right, and from the beginning to the end of each file. A Tcl block can contain a reference to the Tcl variable set in a previous block (which can be placed in the same file or another file of the same experiment). Sentaurus Workbench replaces each Tcl block with the result of its output (standard output). Therefore, to extract the value of the Tcl variable "aaa", it is necessary to specify "puts $aaa". This provides transparency for the interpreting of Tcl blocks: All blocks are evaluated in the same way. If the Tcl block does not provide any output, nothing will go to the preprocessed file. However, all the Tcl variables and procedures declared in that block, of course, will exist in the interpreter of the current experiment and could be used further. The Sentaurus Workbench preprocessor evaluates all the Tcl blocks after the standard preprocessing of #... commands and the resolving of @..@, @<..>@, and @[..]@ expressions. This means that you can use any of these standard preprocessing directives inside the Tcl blocks. Sentaurus Workbench has a preprocessing mode (Project > Project Operations > Preprocess Tcl Blocks) that is used to evaluate only Tcl blocks without standard Sentaurus Workbench preprocessing. This preprocessing mode is reasonably fast and can be used for checking purposes. Sentaurus Workbench provides a way to show the values of the Tcl variables in the Sentaurus Workbench variables table. The Tcl block must contain a special Tcl command such as: set out ... (comprehensive calculations) set SWB_VARIABLES(myvar) $out After the successful evaluation of the Tcl block, you can see the new Sentaurus Workbench variable "myvar" in the Sentaurus Workbench variables table. This feature works like the standard Sentaurus Workbench #set var value instruction. 112 Sentaurus™ Workbench User Guide I-2013.12 6: Preprocessing Projects Tcl Command Blocks When to Use Tcl Command Blocks Using Tcl command blocks is helpful in the following circumstances: ■ For comprehensive calculations that are difficult to implement in the language of the tool and that use the result value in the native language constructions of the tool. For example, in the case of Sentaurus Device, you could implement in the sdevice_des.cmd file: !( if { "@Type@" == "nMOS" } { set SIGN 1.0 set HFS1 "eHighFieldSaturation( CarrierTempDrive )" set HFS2 "hHighFieldSaturation( GradQuasiFermi )" set DG "eQuantumPotential" set cTemp "eTemperature" set EQN0 "Poisson eQuantumPotential Electron Hole" set EQNS "Poisson eQuantumPotential Electron Hole Temperature eTemperature" } else { set SIGN -1.0 set HFS1 "hHighFieldSaturation( CarrierTempDrive )" set HFS2 "eHighFieldSaturation( GradQuasiFermi )" set DG "hQuantumPotential" set cTemp "hTemperature" set EQN0 "Poisson hQuantumPotential Electron Hole" set EQNS "Poisson hQuantumPotential Electron Hole Temperature hTemperature" } )! ■ For enhancing the capabilities of native tool languages. For example, the following Tcl block will write 100 Sentaurus Device Physics sections with different concentrations in the preprocessed command file of Sentaurus Device (imitation of for-loop): !( for {set i 0} {$i < 100} {incr i} { puts {Physics (materialInterface=\"Silicon/Oxide\")} puts {{ Charge(Conc=!(puts [expr {6.0e11 + $i*1e11])!) }} } )! Sentaurus™ Workbench User Guide I-2013.12 113 6: Preprocessing Projects Tcl Command Blocks 114 Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 7 Running Projects This chapter discusses how to run projects in Sentaurus Workbench. Projects can be run from the Project Editor, the Scheduler, or the command line. From the Project Editor To run a project: 1. Browse the projects on the tree. 2. Open the project in the Project Editor. 3. Select the nodes or open the required scenario. To run the selected nodes: 1. Select nodes (see Selecting Nodes with Mouse and Keyboard Operations on page 35). 2. Project > Project Operations > Run, or Ctrl+R, or click the Run button. To run a scenario: 1. Select the required scenario. 2. Project > Project Operations > Run, or Ctrl+R, or click the Run button. The Run Project dialog box is displayed and nodes are assigned, based on the queue definitions and tool assignments of the user. The Run button submits the nodes to the corresponding scheduler or queues. By default, Sentaurus Workbench submits all nodes that do not have a ‘done’ status. If you want to run all the nodes of the current scenario, select all from the Nodes box in the Run Project dialog box (see Figure 73 on page 116). Sentaurus™ Workbench User Guide I-2013.12 115 7: Running Projects From the Command Line Figure 73 Run Project dialog box for a project with Standard configuration From the Command Line The gsub and gjob commands can be used to submit jobs to queues. The command gsub is the actual backend system, which performs the following: ■ Preprocesses the project (on demand). ■ Reads the queue assignments. ■ ■ Expands the generic expression to determine the node or takes the nodes from the list provided. Submits jobs to the queues, calls gjob on several machines, and executes the jobs: Usage: gsub [options] (FILENAME | PROJECT) DESCRIPTION Submits specified nodes/jobs to batch system and waits for completion Example: gsub -e all @STDB@/folder/project Options: -h[elp] : displays this help message -v[ersion] : displays version information -verbose : displays additional initialization and loading information -e[xpr] "GEXPR" : nodes resulting from the GEXPR expression -n[odes] [<scenario> | "<list of nodes>"] : remaining nodes in <scenario>, or given node numbers -q[ueue] "queue name" : submits all the jobs to a queue -startTime : start date and time of the submission format: "mm/dd/yyyy hh:mm:ss AM|PM" (default: immediately) Arguments: FILENAME PROJECT : text file defining a list of jobs : project directory The command gjob runs the given job or the node of the project locally. 116 Sentaurus™ Workbench User Guide I-2013.12 7: Running Projects Scheduling Project Jobs NOTE The command gjob cannot use the node-queue or tool-queue assignments. It essentially runs each node locally. Example: gjob -job 2 @STDB@/folder/project Options: -h[elp] : displays the help message -v[ersion] : displays version information Scheduling Project Jobs Sentaurus Workbench submits nodes in the order that is defined by implicit and explicit node dependencies of the project: ■ ■ Implicit node dependencies come from the tool input or output interface specified in the tool database. Explicit dependencies are usually those you define in the tool input files by using #setdep or @previous@ preprocessor instructions and references. The set of these node dependencies defines the submission order of the project nodes. Dependencies can be viewed by extending the selection to prerequisite nodes (see Viewing Node Dependencies on page 70). However, when there are no node dependencies or there is a choice as to which nodes run first, you may want to specify how Sentaurus Workbench should submit nodes. In this case, there are two possibilities: ■ Depth_First: Sentaurus Workbench tries to complete the current experiment and then proceeds to another experiment. ■ Breadth_First: Sentaurus Workbench tries to start executing as many experiments as possible. By default, Sentaurus Workbench uses the Breadth_First approach. To change it: 1. Edit > User Preferences or press the F12 key. 2. Select Scheduler > General Settings and set Nodes Running Order to Depth_First. However, when a project has node dependencies (which is the case for most Sentaurus Workbench simulation projects), you will not see a difference between the Breadth_First and Depth_First running modes because node dependencies take priority and define the node submission order. Sentaurus™ Workbench User Guide I-2013.12 117 7: Running Projects Standard Configuration Projects Standard Configuration Projects As soon as a project is running, it is locked for any changes in the parameterization table. All you can do is run additional nodes, or abort selected nodes or the whole running project. Sentaurus Workbench implements strict safeguards to prevent any kind of inconsistency between input project data and the simulation results. Changes made to the tool database files, user preferences, and tool input files result in the failure of currently running nodes as well as the failure to run pending nodes due to background file timestamp checks. Run-time preprocessing is an obligatory part of the execution of a project with the Standard configuration. All your changes made on the node input files will be lost during the execution; while each node input file will be replaced with the preprocessed tool input file. Sentaurus Workbench provides a direct and consistent way of scheduling project nodes. The node can be submitted for execution only when the nodes on which it depends (prerequisite nodes) are executed successfully. Sentaurus Workbench automatically determines the list of all of the prerequisite nodes from the nodes that you select for submission. All you need to do is select the nodes you want to run, and Sentaurus Workbench will handle what is required for this. Research Configuration Projects In contrast to projects with the Standard configuration, a running project with the Research configuration is not locked for changes. You can add or remove tools, parameters, and experiments, and edit tool input files and Sentaurus Workbench configuration files, and so on. In addition, you can edit node input files and rerun them without the obligatory preprocessing and node file regeneration. To do this, select the Just run, do not preprocess option in the Run Project dialog box (see Figure 74). Figure 74 118 Run Project dialog box for a project with Research configuration Sentaurus™ Workbench User Guide I-2013.12 7: Running Projects Defining Run Limits However, Sentaurus Workbench does not provide background checks of file timestamps. This may result in inconsistency between the tool input file and the simulation result of a certain node. To prevent this, you can preprocess certain nodes or the whole project at any time. Preprocessing the whole project is highly recommended after making changes to the parameterization table. The node can be executed when some prerequisite nodes are not yet completed, have not started, or have failed. When submitting a group of nodes, the order of the node execution takes into account the node dependencies inside the group, but it ignores external node dependencies. Defining Run Limits Sentaurus Workbench helps you to organize effective use of both available TCAD Sentaurus licenses and corporate computational resources for a group of users sharing the same installation of TCAD Sentaurus. This goal is achieved by controlling the maximum number of simultaneously running simulations of a certain tool by a user. Hereafter, this maximum number is referred to as run limits. The following example illustrates how run limits are taken into account when running simulations. Assume you want to run no more than four Sentaurus Process instances simultaneously. When the next Sentaurus Process job is ready to be submitted, Sentaurus Workbench checks the number of your currently running Sentaurus Process jobs. When this number is less than four, Sentaurus Workbench submits this job. Otherwise, the job is not submitted and remains in a ‘ready’ status until the next free job slot to run the simulation. Sentaurus Workbench allows a flexible definition of run limits (see Run Limits Settings on page 141). The simplest case is defining constant run limits for certain tools. You can go further and define a run limits timetable where run limits depend on the day of the week, the time of the day, holidays, and so on. With the timetable approach, TCAD users can establish a flexible and dynamic run limits schedule taking into account resource availability. Depending on the corporate resource sharing strategy, you can define run limits on a centralized level (global, site), or allow users to apply their own user-imposed run limits on the user level. As a TCAD installation administrator, you have a full control over run limits settings. When needed, you can prohibit redefinition of global run limits on a user level. You can modify run limits at any time without breaking off already running projects. Run limits restrictions that are agreed upon and applied inside a group provide a fair distribution of available licenses between users, as well as the possibility of the temporary concentration of available resources for an urgent job. Sentaurus™ Workbench User Guide I-2013.12 119 7: Running Projects Delaying the Execution of Projects and Nodes There are three modes of run limits control depending on how Sentaurus Workbench calculates the number of currently running simulations of a certain tool: ■ ■ ■ User-based (all simulations the user launches in any way are taken into account). Sentaurus Workbench instance–based (all simulations launched under one Sentaurus Workbench instance are taken into account). Project-based (all simulations launched in one Sentaurus Workbench project are taken into account). The typical mode of run limits control is user based. The number of currently running jobs is controlled by the daemon process swblm, which runs in the background. Before submitting a simulation job, Sentaurus Workbench checks swblm as to whether the number of currently running jobs of the same type exceeds the allowed maximum number and, if not, Sentaurus Workbench submits the job. When all the available job slots are occupied, Sentaurus Workbench tries to resubmit a job in case an available slot appears. You can set up a maximum number of times that Sentaurus Workbench tries to resubmit a job. After that number is reached, Sentaurus Workbench can either report the job as failed (default behavior) or proceed with the job submission ignoring the run restrictions. Run limits are switched off by default, which means that no restrictions are applied. To activate run limits, they must be specified in the global, site or user run limits files. For details, see Run Limits Settings on page 141. Delaying the Execution of Projects and Nodes The Delayed Execution button on the Run Project dialog box allows you to define the time at which a project or selected nodes are submitted (see Figure 75). Figure 75 Delayed Project Run dialog box Sentaurus Workbench preprocesses launched nodes immediately, while nodes submission is suspended until the given time. By default, the Delayed Project Run dialog box populates the fields with the current date and time, that is, nodes are submitted immediately. 120 Sentaurus™ Workbench User Guide I-2013.12 7: Running Projects Preprocessing Delayed execution in Sentaurus Workbench has some limitations. You cannot submit multiple node groups with a different submission time. Sentaurus Workbench does not mark nodes waiting for submission with a specific status (color), so it may be difficult to distinguish such nodes without analyzing of the project submission log file (glog.txt). Remembering that the main goal of delayed execution is to optimize the use of available computational resources and TCAD Sentaurus licenses, it is highly recommended to use a dynamic run limits schedule to maximize flexibility (see Defining Run Limits on page 119). Preprocessing Preprocessing, which is the initial step before jobs actually run, can be performed separately from execution either directly from the GUI (Project > Operations > Preprocess or Ctrl+P) or the command line by calling spp. NOTE spp is executed as a separate process from the GUI and the result of spp is stored in the file preprocessor.log, which can be accessed using Project > Logs > Preprocessor. The spp (preprocessor) preprocesses the given tool input file to standard output or performs a global preprocessing pass in a project, for example: spp "BOR_IMPL_ENRGY80" "N_DOSE1e15" @STDB@/nmos,process/lig.cmd spp -verbose @STDB@/nmos,process spp -expr "scnr_name" @STDB@/nmos,process Options: -h[elp] : displays this help message -v[ersion]: displays version information -verbose : displays additional initialization and run-time information -i[nput] : generates all of the initial, preprocessed pp* files in project -p[ack] : does not generate empty lines while preprocessing -n[odes] : preprocess just these nodes -e[xpr] : preprocess based on an expression -onlytcl : preprocess only Tcl blocks in command files Arguments: FILENAME : marked tool input file PROJECT : project directory Sentaurus™ Workbench User Guide I-2013.12 121 7: Running Projects Aborting Projects Aborting Projects A project that is running can be aborted from the Project Editor, the projects browser, or the command line. To abort a project from the Project Editor: 1. Browse through the tree and select the project to be aborted. 2. Double-click the selection, or right-click and select Open. The project opens in running mode. 3. Project > Operations > Abort, or Ctrl+T, or click the corresponding toolbar button. 4. Confirm that the project is to be aborted. To abort a project from the projects browser: 1. Browse through the tree and select the project to be aborted. 2. Project > Project Operations > Abort, or Ctrl+T, or right-click and select Project > Abort. 3. Confirm that the project is to be aborted. Aborting Nodes Specific running nodes in a project can be aborted from the Project Editor, the Scheduler, or the command line. To abort a running node from the Project Editor: 1. Browse through the tree and select a project. 2. Double-click the selection, or right-click and select Open. The project opens in running mode. 3. Select the node to be aborted. 4. Nodes > Abort, or Ctrl+T, or right-click and select Abort, or click the corresponding toolbar button. 5. Confirm that the node is to be aborted. 122 Sentaurus™ Workbench User Guide I-2013.12 7: Running Projects Updating Node Statuses and Extracted Variables To abort a running node from the Scheduler: 1. Select the node to be aborted from the right pane of the Scheduler, which displays the current list of running nodes. 2. Nodes > Abort, Ctrl+T, or right-click and select Abort. 3. Confirm that the node is to be aborted. NOTE If you want to abort the whole project, it is much more effective to implement that at the project level (see Aborting Projects on page 122) rather than selecting all the project nodes and aborting them. Updating Node Statuses and Extracted Variables Sentaurus Workbench updates the node statuses of running projects and extracts simulation results automatically as soon as the node status changes. Simulation results are extracted from a node output file as soon as the simulation is completed. However, for long-running simulations, it may be helpful to see completed results before the simulation itself is finished. You can force the status updating of all project nodes as well as the values of extracted variables at any time. In this case, Sentaurus Workbench reads the statuses of nodes and the values of extracted variables from the project files. To force an update of the Family Tree at any time: ■ View > Refresh or press the F5 key. NOTE It is recommended to refresh project nodes rather than reload the project when you need to monitor the progress of your running projects. Refreshing the status of nodes is much faster than reloading a project. Customizing Project Execution Sentaurus Workbench allows you to customize project execution by defining optional prologue and epilogue Tcl scripts in the tool database. The syntax is: set WB_tool(gsub,prologue) { ... arbitrary Tcl script ... } set WB_tool(gsub,epilogue) { ... arbitrary Tcl script ... } The prologue Tcl script is evaluated at the beginning of the execution session when you launch the project (start of gsub process). The epilogue Tcl script is evaluated at the end of the execution session (end of gsub process). Sentaurus™ Workbench User Guide I-2013.12 123 7: Running Projects Viewing Project Log The prologue script may be useful to prepare for project execution (clean up the disk space, and so on), while the epilogue script can be used for user-specific report generation on an executed project. A similar approach can be used to customize node execution. Sentaurus Workbench allows you to customize node execution by defining tool-specific prologue and epilogue Tcl scripts in the tool database. The syntax is: set WB_tool(<tool>,prologue) { ... arbitrary Tcl script ... } set WB_tool(<tool>,epilogue) { ... arbitrary Tcl script ... } For example, the prologue and epilogue Tcl scripts defined in the tool database for Sentaurus Mesh (snmesh) are: set WB_tool(snmesh,prologue) { snmesh_prologue $wdir @node@ @commands@ @tdr@ @tdrboundary@ @boundary@ } set WB_tool(snmesh,epilogue) { extract_vars "$wdir" @stdout@ @node@ } Both prologue and epilogue scripts are optional. Sentaurus Workbench defines an epilogue script for almost all supported tools. NOTE Be careful when redefining tool prologue and epilogue Tcl scripts in the tool database. The best practice is to append your Tcl commands to the end of the existing Tcl script (if any). A tool prologue Tcl script is evaluated immediately before the node simulation task starts. A tool epilogue Tcl script is evaluated immediately after the node simulation task is completed successfully (node status is done). For a project with the Research configuration, the tool epilogue Tcl script is evaluated even for failed simulation tasks. Viewing Project Log To view a project log file: 1. Select a project. 2. You can: a) Project > Logs > Project, or Ctrl+J. b) Right-click and select Project > View Log. 124 Sentaurus™ Workbench User Guide I-2013.12 7: Running Projects Viewing Project History Viewing Project History To view project history file: 1. Select a project. 2. You can: a) Project > Logs > History, or Ctrl+H. b) Right-click and select Project > View History. Project Summary The project summary provides a short description of a project that was run. The summary file is stored under gsummary.txt in the project directory and is generated automatically when the project finishes. The following information is provided in this file: ■ ■ ■ ■ ■ Project details: • Current status • When the last modification occurred • Who modified the file • On which host it was run Total number of nodes • Active nodes • Virtual nodes Nodes by status: list of nodes sorted by status Hosts and execution information followed by a list of hosts and run-time on each host and number of nodes executed Total run-time To view the project summary: ■ Project > Properties > Summary or Ctrl+Y. Sentaurus™ Workbench User Guide I-2013.12 125 7: Running Projects Project Summary 126 Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 8 Cleaning Up Projects This chapter discusses how to clean up projects in Sentaurus Workbench. Cleaning Up Projects To clean up a project: 1. Project > Operations > Clean Up or Ctrl+L. 2. Select the required options (see Table 9). 3. Click Cleanup or Fast Cleanup. Table 9 Project cleanup options Option Description Preprocessor Data Preprocessed Files Set Variables Deletes preprocessor data. Forces preprocessing before running a project: Deletes all preprocessor files (pp*). Deletes variables set by preprocessor from gvars.dat. Simulation Data Output Files Extracted Variables Deletes data remaining after simulation: Deletes all output files (n<nkey>*, pp<nkey>*, and so on). Deletes extracted variables from gvars.dat. Project Data Orphan Nodes Log Files Deletes data on the project level (in the project directory): Deletes orphan nodes. Deletes project log files (glog.txt, gsummary.txt, preprocessor.log, .history, and so on). Deletes the subdirectory .backup inside the project directory. Deletes project status file (.status). Renumbers the tree. Backup Files Reset Project Status Renumber the Tree NOTE To make the Renumber the Tree option available, all preprocessor and simulation data options must be selected. Sentaurus™ Workbench User Guide I-2013.12 127 8: Cleaning Up Projects Cleaning Up the Output of Nodes Figure 76 NOTE Cleanup Options dialog box with the default options The Fast Cleanup button initiates faster project cleanup, which is especially noticeable on large projects with many files. The original project directory is removed and then is re-created during this type of cleanup. Therefore, it is highly recommended to close all other applications that are working with project files to avoid unexpected errors or possible loss of data. Cleaning Up the Output of Nodes To delete output and preprocessor data of selected nodes: 1. Select required nodes (see Selecting Nodes with Mouse and Keyboard Operations on page 35). 2. Nodes > Clean Up Node Output. 3. Select whether you want to delete simulation-extracted variables from gvars.dat. 4. Select whether you want to delete preprocessed variables from gvars.dat. 5. Select output and preprocessor files to be deleted. All output and preprocessor files associated with the selected nodes are preset. 6. Click OK. 128 Sentaurus™ Workbench User Guide I-2013.12 8: Cleaning Up Projects Cleaning Up Projects from the Command Line Cleaning Up Projects from the Command Line The batch tool gcleanup is used to clean up a project from the command line. For example: gcleanup -default /folder/project Options: -pp : clean up preprocessed files -sv : clean up set variables -res : clean up output files -xv : clean up extracted variables -back : clean up backup files -orp : clean up orphan nodes -ren : renumber (automatically enables -pp, -sv, -res, -xv) -log : clean up log files -n "node list" : clean up given nodes only -unlock : delete the project status file -d[efault] : following options are enabled: -pp, -sv, -res, -xv, -back, -orp, -log, -unlock -v[ersion] : display version information -verbose : display additional information -h[elp] : display this help -f[ast] : perform fast cleanup. WARNING: The original project directory is removed and then is re-created. It is highly recommended to close all other applications that are working with project files to avoid unexpected errors or possible loss of data. Arguments: PROJECT : project directory Detecting Files to Remove The function of the Sentaurus Workbench default cleanup scenario is to detect a reproducible part of a project and to remove it. All files that appear as the result of project preprocessing and execution are considered to be reproducible files. To detect files to remove from a project and at node levels, Sentaurus Workbench uses cleanup patterns declared in the tool database. Reproducible node files are set up for each tool. For example, the following line sets up output file patterns for Sentaurus Device nodes: set WB_tool(sdevice,output,files) "n@node@_* pp@node@_* *_n@node@_*" Node files are removed during the overall project cleanup and the cleanup of selected nodes. Sentaurus™ Workbench User Guide I-2013.12 129 8: Cleaning Up Projects Backing Up Node Files Automatically The project-level cleanup patterns define files appearing as the result of system crashes. These files should be removed by any cleanup scenario: set WB_tool(project_cleanup_patterns) ".nfs* core core.*" Backing Up Node Files Automatically Sentaurus Workbench allows you to back up simulation results automatically. The automatic backup stores a copy of each node file being deleted after automatic or manual node-level cleanup under the .backup subdirectory inside the project folder. In an emergency, you can restore deleted files by copying them from the project .backup subdirectory to the project folder. To switch on automatic backup: 1. Edit > User Preferences or press the F12 key. 2. Select Safety and set Backup Node Files Before Deletion to true. The backup feature is switched off by default. NOTE Automatic project backup takes effect only during node-level cleanup in Sentaurus Workbench. The node files are not backed up when cleaning up the overall project. The Sentaurus Workbench backup system provides a simple one-level backup only. When a file is being backed up, it overwrites the file with the same name if that file exists in the .backup subdirectory (such a file could be saved when cleaning up nodes of another project). 130 Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 9 Configuring Sentaurus Workbench This chapter discusses how to configure Sentaurus Workbench. Configuring Preferences To access the preferences: 1. Edit > User Preferences or press the F12 key. 2. Select a preference. 3. Type a new value in the text entry. 4. Click the Accept Changes button or press the Return key. 5. Click Save. The preferences have different sections, which are detailed from Table 10 to Table 15 on page 137. Table 10 Project preferences Preference name Type Default value Configuration Default Project Configuration Settings related to a project configuration. Enumeration Standard Standard Research Settings for Research Configuration How to run nodes by default Just run, do not preprocess Description or reference Specifies the default project configuration for new projects as well as old projects without the configuration attributes: Maximum automation and consistency level; running project is locked for changes. Running project is open for changes, nodelevel changes in input files are allowed, all the internal consistency safeguards are off. Options for Research project configuration. Enumeration Preprocess, then run (rewrites node output files) Sentaurus™ Workbench User Guide I-2013.12 Just run, do not preprocess Specifies the default action in the Run dialog box: Runs the node as is, without run-time preprocessing. User changes made in the node input files (if any) take effect. Makes run-time preprocessing and runs the node. User changes made in the node input files (if any) do not take effect. 131 9: Configuring Sentaurus Workbench Configuring Preferences Table 10 Project preferences Preference name Type Default value Consistency Control Actions on Inconsistent Nodes Nothing Mark Ambiguous Specifies Sentaurus Workbench project consistency mode and settings. Enumeration Nothing What Sentaurus Workbench should do with inconsistent nodes: Inconsistent nodes are ignored. Sentaurus Workbench automatically marks ambiguous nodes with a red exclamation mark. Sentaurus Workbench automatically cleans up ambiguous nodes (this is the most critical option and must be used with caution). Enumeration Never Specifies how Sentaurus Workbench treats marked ambiguous nodes: Never reruns ambiguous nodes. Always reruns ambiguous nodes. Clean Up Rerun Ambiguous Nodes Next Time Never Always Safety Backup Node Files Before Deletion Setting that helps to recover data that is occasionally lost. Boolean false Auto Save Project Auto Save Interval (min) Switches on and off automatic backup during node-level cleanup. The files are saved in the .backup subdirectory that is located inside the project directory. This functionality takes effect only during manual or automatic (project consistency control) node-level cleanup. Setting for auto-saving. Integer 0 Export The interval in minutes for periodical autosaving of the currently opened project. When set to 0, no auto-saving is performed. Settings for exporting projects. Compress Package Boolean true Switches on and off package compression (gzip). Encrypt Package Boolean true Switches on and off package encryption (openssl). Encryption Key String swb Specifies default encryption key. Exclude Patterns String Export Project As Clean Boolean 132 Description or reference Specifies patterns for files or directories to be excluded from packaging. false Switches on and off exporting projects as clean projects. Sentaurus™ Workbench User Guide I-2013.12 9: Configuring Sentaurus Workbench Configuring Preferences Table 10 Project preferences Preference name Type Default value Other Settings Polling Interval for Project Database (msec) Table 11 Description or reference Settings not related to the abovementioned groups. Integer 1000 The interval for periodical querying of the project database (.database) when it is locked (busy). Table preferences Preference name Type Default value Description or reference Node Status Color Enumeration RGB color code Colors used for each node status. Background Enumeration System default (white/gray) or from .Xdefaults. Background color of table. Enumeration Show Properties Double Click Action On Tools On Parameters On Nodes On Variables Show Properties Displays the tool properties. Edit Input File Display the editor with input file. Enumeration Show Properties Show Properties Displays the parameter properties. Add Parameter Value Adds the parameter values. Remove Value Removes the parameter values. Enumeration Show Properties Show Properties Displays the node properties. Launch Explorer Displays the Node Explorer. Run Runs the currently selected node. Preprocess Preprocesses the currently selected node. Edit Cell Activates node cell editor to edit a value. Enumeration Show Properties Show Properties Displays properties of selected variable. Specify Format Allows user to change the format of the currently selected variable. Sentaurus™ Workbench User Guide I-2013.12 133 9: Configuring Sentaurus Workbench Configuring Preferences Table 11 Table preferences Preference name Type Default value Description or reference Edit Value in a Cell Boolean False Switches on value-editing in a node cell. Foreground Enumeration System default (black) or from .Xdefaults Foreground color of table. Font Enumeration System default or customized font selected by user. Font used in project view and projects browser. Mouse Wheel Integer 1 Number of experiments moved when moving the mouse wheel (if supported). Title Background Foreground Enumeration Enumeration Gray Black Background color of table title. Foreground color of table title. Default View Options Check Virtual Node Boolean True Default options when showing the tree: View > Tree Options > Check Virtual Nodes Default Project Orientation Enumeration horizontal View > Flow Orientation Display Tool Labels Boolean False View > Table Options > Show Tool Labels Show Experiment Numbers Boolean True View > Table Options > Show Experiment Numbers Hint Tool Labels Boolean False View > Tree Options > Hinting Tool Labels Display Additional Node Data Enumeration Parameter Values View > Tree Options > Parameter Values Parameter Values Node Numbers Host Date Execution Time Variables Job Identifier 134 View > Tree Options > Node Numbers View > Tree Options > Host View > Tree Options > Date View > Tree Options > Execution Time View > Tree Options > Variables View > Tree Options > Job Identifier Show Parameter Process Names Boolean False View > Table Options > Show Parameter Process Names Display Comments Boolean False View > Table Options > Show Comment Show Exp Plan Boolean False View > Tree Options > Show Experimental Plan Show Info Titles Boolean False View > Table Options > Show Information Titles Sentaurus™ Workbench User Guide I-2013.12 9: Configuring Sentaurus Workbench Configuring Preferences Table 11 Table preferences Preference name Type Default value Description or reference Show Node Numbers Boolean False View > Tree Options > Show Node Numbers Show Parameters Boolean False View > Tree Options > Show Parameters Show Parameter and Variable Names Boolean False View > Table Options > Show Parameter and Variable Names Show Pruned Boolean True View > Tree Options > Show Pruned Show Tool Icons Boolean True View > Table Options > Show Tool Icons Show Tree Boolean True View > Tree Options > Show Tree Show Variables Boolean True View > Tree Options > Show Variables Show Merged Cells Boolean True View > Tree Options > Show Merged Cells Automatically Update Boolean Variables False Variables > Automatically Update Variables Default value Description or reference Table 12 Scheduler preferences Preference name Type General Settings General settings of the Sentaurus Workbench scheduler. Run Epilogue on Failed Nodes Boolean false Specifies whether to launch an epilogue Tcl script if the simulation job failed. May be useful for debugging purposes. Nodes Running Order Enumeration Breadth First Specifies the order of the running nodes when no predefined node dependencies exist: Sentaurus Workbench tries to complete a whole parametric step of the simulation. Sentaurus Workbench tries to complete a whole experiment before starting another one. Integer 15000 Idle task frequency for updating node statuses in the Sentaurus Workbench GUI. Breadth First Depth First Update Interval of GUI Scheduler Tab (msec) Sentaurus™ Workbench User Guide I-2013.12 135 9: Configuring Sentaurus Workbench Configuring Preferences Table 12 Scheduler preferences Preference name Type Default value Local Jobs Settings applied to locally submitted jobs. Maximum Number of Simultaneous Jobs Integer 1 Maximum number of jobs that can be launched on a local machine simultaneously. Default Nice Level Integer (0 to 19) 19 The priority of locally submitted jobs (an argument for the UNIX nice command). Job Polling interval (msec) Integer 1000 The interval between sequential checks of the status of the running job (in milliseconds). LSF Jobs Setting applied to jobs submitted to LSF. Project Name Command-Line Option String -P Creates the bsub command in LSF with the -P or -J option. The same option also is applied to the bjob command. Job Polling interval (msec) Integer 1000 The interval between sequential checks of the status of the running job (in milliseconds). SGE Jobs Job Polling interval (msec) Setting applied to jobs submitted to SGE. Integer 1000 TM Jobs Job Polling interval (msec) Job Polling interval (msec) The interval between sequential checks of the status of the running job (in milliseconds). Setting applied to jobs submitted to TORQUE/Maui. Integer 1000 LL Jobs The interval between sequential checks of the status of the running job (in milliseconds). Setting applied to jobs submitted to LoadLeveler. Integer 1000 DMW Jobs 136 Description or reference The interval between sequential checks of the status of the running job (in milliseconds). Setting applied to jobs submitted to DMW. Default Nice Level Integer (0 to 19) 19 The priority of jobs submitted remotely using rsh/ssh (an argument for the UNIX nice command). Job Polling interval (msec) Integer 1000 The interval between sequential checks of the status of the running job (in milliseconds). Sentaurus™ Workbench User Guide I-2013.12 9: Configuring Sentaurus Workbench Configuring Preferences Table 13 TWB to SWB Converter preferences Preference name Type Parameter Name Concatenation Symbols String Merge Sequential Tool Instances Boolean Table 14 Default value Description or reference Set of symbols (string). When a Taurus Workbench parameter under conversion contains spaces, the specified set of symbols replaces every space to match Sentaurus Workbench requirements (no spaces are allowed). False Converts multiple sequential instances of the same Taurus Workbench tool into one Sentaurus Workbench tool instance by merging several input files into one file. Default value Description or reference Binaries preferences Preference name Type Editor File (subentries) From tool database Location of different binaries for editing (such as text, Ligament Flow Editor). Tool File (subentries) From tool database Location of different binaries for tools (such as Sentaurus Device). Viewer File (subentries) From tool database Location of different binaries for viewers (such as Inspect, Tecplot SV). Table 15 Miscellaneous preferences Preference name Type Default value Description or reference Acrobat Reader File acroread Location of Acrobat Reader executable file. FTP Application Notes String Path to application notes Path to application notes. Attached Roots on Start Up Directory (subentries) Path to Applications Attached roots when starting up projects Library browser. Number of Bookmarks Integer (0 to 200) 10 Number of last projects visited in Project > Recent Projects. Default Browser File Mozilla Name of the default browser to visualize the TCAD Sentaurus Tutorial (training material). Spreadsheet Application File oocalc Location of executable for Experiments > Export > Run Spreadsheet Application. Sentaurus™ Workbench User Guide I-2013.12 137 9: Configuring Sentaurus Workbench Configuring Preferences Table 15 Miscellaneous preferences Preference name Type Default value Description or reference Manuals Front Page File Path to manuals Location of front page for Help > Manuals. Idle Task Frequency Automatically Calculate Refresh Rate Explorer Node Refresh Boolean True Nonnegative integer 30000 10000 Projects browser. Status of nodes (when running). Sentaurus Device Materials Database Directory Obsolete Tools String mdraw, mdrawTCL Comma list of tool names. The tools specified here are no longer available in the Add Tool dialog box. Tailing File Size Integer 1024 Specifies the maximum size of a node output file, which should be displayed without tailing (in kilobytes). If this size is exceeded, only the tail of the file is displayed in Sentaurus Workbench. Tailing Lines Number Integer 1000 Specifies the number of lines of a node output file to be displayed in the tailing mode. SWB Exit Warning Boolean False Asks for a confirmation from the user when closing Sentaurus Workbench. Temp Directory Directory STDB/tmp Location of temporal directory of Sentaurus Workbench. Training Documentation File NOTE 138 Idle task frequency for refreshing (milliseconds): When true, calculates the refresh rate automatically. Path to the MaterialDB file. Path to TCAD Sentaurus training material. To restore default settings, run Sentaurus Workbench with the command-line option -default. The scheduler is an independent process; therefore, to use its default settings, save preferences in the preferences file before calling the scheduler (Edit > User Preferences, then Save). Sentaurus™ Workbench User Guide I-2013.12 9: Configuring Sentaurus Workbench Tool Databases Tool Databases All the tools are defined in the tool databases of Sentaurus Workbench. The tool databases (tooldb) are global, site, user, and project. The global tool database is usually set up by the systems administrator and is not writable. Initially, the global tool database contains the complete set of TCAD simulation tools and an example of the definition of a ‘user tool,’ mytool. When your company has multiple groups of users of the Sentaurus platform, distributed in different sites, it may be useful to customize global database settings for all users at a specific site. To do this, the site tool database must be created. The site tool database is optional. To activate the site tool database: 1. Place your site-specific tool database settings into the file tooldb.tcl stored under an arbitrary directory. 2. Set up the following environment variable to refer to this directory: % setenv SWB_SITE_SETTINGS_DIR <path_to_site_directory> Like the global tool database, the site tool database is usually not writable. You can add your own tools or modify existing ones by changing the user or project tool database. Entries in the user tool database complement or override entries in the global and site tool databases, and entries in the project tool database complement or override entries in the other tool databases. Finally, the hierarchical order is (in descending order): 1. Project tool database 2. User tool database 3. Site tool database 4. Global tool database Some of the user preferences settings intersect the tool database ones, for example, binary preferences (see Table 7 on page 80). In this case, user preferences entries override or complement ones coming from global, site, and user tool databases, but they are overridden by settings of project-level databases. The hierarchical order will look like: 1. Project tool database 2. User preferences Sentaurus™ Workbench User Guide I-2013.12 139 9: Configuring Sentaurus Workbench Tool Databases 3. User tool database 4. Site tool database 5. Global tool database To access a tool database, select the appropriate command: ■ Edit > Tool DB > Global. ■ Edit > Tool DB > Site. ■ Edit > Tool DB > User. ■ Edit > Tool DB > Project. Simulation tools are divided into several categories: ■ Sentaurus Process Simulation and Structure Generation ■ Sentaurus Grid Generation ■ Sentaurus Device Simulation ■ Sentaurus Visualization ■ Extraction ■ Utilities ■ Process Simulation and Structure Generation (Other) ■ Device Simulation (Other) The order in which these categories are displayed (from top to bottom) reflects the order in which the corresponding simulation phases are linked to each other (apart from the utilities). For example, it is not usual for a grid generation tool to precede a process simulation tool in the tool flow. NOTE The global, site, and user tool databases are loaded when starting Sentaurus Workbench or any batch tools such as gsub and gjob. The project tool database is loaded with the project and is applied only to that project. User functions can be defined in the user and project tool databases. These functions can customize standard Sentaurus Workbench preprocessing. For example, you can extend the standard value extraction algorithm (see Extracted Variables on page 105). First, create your own extract function in the user or project tool database where you traverse the output file from_file of the node nkey stored in the project directory wdir, and extract those values that are not covered by the standard Sentaurus Workbench value extraction. 140 Sentaurus™ Workbench User Guide I-2013.12 9: Configuring Sentaurus Workbench Run Limits Settings The function returns a Tcl list of pairs: name, value. For example, the function can look like: proc ::my_extract_func { wdir from_file nkey } { # extract results from input file set extracted_results [list] set in_file [file join $wdir $from_file] set in_strm [open $in_file r] while { [eof $in_strm] == 0 } { set line [gets $in_strm] # here you look for names and values to extract # ... # extracted variable "myVar" has the value stored in the variable "myVal" lappend extracted_results [list myVar $myVal] } return $extracted_results } Then, in the same tool database file, redefine the tool epilogue for the required tool. In the case of Sentaurus Topography 3D, it would look like: set WB_tool(sptopo3d,epilogue) { extract_vars "$wdir" @stdout@ @node@ ::my_extract_func } The results extracted by these functions are added to the results that are extracted by the standard Sentaurus Workbench extraction algorithm (see Extracted Variables on page 105). However, if you want to overwrite the default extraction, include an additional Boolean flag at the end of the extract_vars call in the tool epilogue: set WB_tool(sptopo3d,epilogue) { extract_vars "$wdir" @stdout@ @node@ ::my_extract_func true } In this case, only the results that the function extracts appear in Sentaurus Workbench. NOTE You must provide the ‘::’ prefix for user-defined functions in a project tool database. The project tool database is stored in a separate Tcl namespace for each of the loaded projects. Run Limits Settings Run limits are switched off by default, which means that no restrictions are applied. To switch on run limits, they must be specified on the global, site, or user levels in XML-compatible files. NOTE Unlike the tool database, Sentaurus Workbench does not allow you to define run limits on a project level to prevent potential complications and confusion with run limits control. Sentaurus™ Workbench User Guide I-2013.12 141 9: Configuring Sentaurus Workbench Run Limits Settings The systems administrator typically sets up the file runlimits.xml for the global run limits settings, which is not writable. When companies have multiple groups of users of TCAD Sentaurus, distributed over different sites, it may be useful to customize global run limits settings for all users at a specific site. To do this, the site run limits file must be created. This file is optional. To activate site run limits: 1. Place your site-specific run limits settings into the file runlimits.xml stored under an arbitrary directory. 2. Set up the following environment variable to refer to this directory: % setenv SWB_SITE_SETTINGS_DIR <path_to_site_directory> Like the global run limits settings, the site run limits settings are usually not writable. The user run limits settings complement the ones defined on the global and site levels. The site run limits settings complement the ones defined on the global level. Finally, the hierarchical order is (in descending order): 1. User run limits: $STDB/runlimits_<user>.xml 2. Site run limits: $SWB_SITE_SETTINGS_DIR/runlimits.xml 3. Global run limits: $STROOT/tcad/$STRELEASE/lib/glib2/runlimits.xml When a part of the run limits settings is defined on more than one level, it is overridden in accordance with the hierarchical order. You can completely or partially prohibit the overriding of run limits settings on the user and site levels by defining a corresponding flag in the global run limits settings. To access a run limits settings, select the appropriate command: ■ Edit > Run Limits > Global ■ Edit > Run Limits > Site ■ Edit > Run Limits > User You can define different types of run limits for each tool: 142 ■ Constant run limits, without any specific day or time restriction ■ Weekday run limits (Mon–Fri) ■ Weekend run limits (Sat, Sun) ■ Run limits on specific days of the week (Mon, Tue, Wed, Thu, Fri, Sat, Sun) ■ Run limits on special dates (public holidays, vacation, and so on) Sentaurus™ Workbench User Guide I-2013.12 9: Configuring Sentaurus Workbench Run Limits Settings Run limits must be defined separately for each tool over which you want to have run limits control. Any combination of different types of run limits can be used. You can bind arbitrary number of time frames with different run limits for each tool. The only exception is constant run limits: No time frames are allowed for this type of run limits. Sentaurus Workbench prioritizes the run limits settings in the following way (1=lowest priority and 4=highest priority): 1. Constant run limits 2. Weekday, weekend run limits 3. Run limits on specific days of the week 4. Run limits on special dates Format of XML-compatible Run Limits Settings File Table 16 on page 144 describes the available tags, their attributes, and the attribute value types for specifying run limits settings. NOTE The attribute names and values are case sensitive. All values must be enclosed in double quotation marks. Sentaurus™ Workbench User Guide I-2013.12 143 9: Configuring Sentaurus Workbench Run Limits Settings Table 16 144 Available tags, their attributes, and attribute value type Tag Attribute Attribute value type [Predefined values] Description RunLimitsTable Version String [0.0] Attribute not used. Reserved for future extensions. Use 0.0. Editable String [true, false] If false, prohibits changing any run limits settings on the next levels (site, user). Default: true. RestrictionModel String [per_user, per_project1, per_swb] Defines how a run limits quota is applied, either to all user projects, or to every project, or to every Sentaurus Workbench tool instance. In the last two cases, you can expect that the number of your overall simultaneously running jobs has no upper limits and increases with the number of projects you launch. Default: per_user. MaxTrials Integer Specifies the maximum number of attempts to acquire a running slot. Default: 17280. PollInterval Integer Defines the time interval, in milliseconds, between two sequential attempts to acquire a running slot. Default: 5000 ms (5 s). ProceedAnyway String [true, false] Instructs Sentaurus Workbench how to proceed when the maximum waiting time has been reached but no running slot is available. If false, the job is considered to have failed. If true, the execution of the job proceeds. Default: false. Tool Name String Name of tool. RunLimit Value Integer Defines the maximum number of simultaneously running instances of a tool. TimeSegment Begin Time: HH:MM Time in 00:00–24:002 format. End Time: HH:MM Time in 00:00–24:001 format. Must be later than Begin. Otherwise, values will be swapped. Sentaurus™ Workbench User Guide I-2013.12 9: Configuring Sentaurus Workbench Run Limits Settings Table 16 Available tags, their attributes, and attribute value type Tag Attribute Attribute value type [Predefined values] Description Holiday Begin Date: DD/MM/[YYYY] Date in 20/09/2013 format. Year is optional; if not defined, it means every year. End Date: DD/MM/[YYYY] Date in 30/09/2013 format. Year is optional; if not defined, it means every year. Editable String [true, false] Prohibits (false) or allows (true) tag editing. Default: true. Weekdays Editable String [true, false] Prohibits (false) or allows (true) tag editing. Default: true. Weekends Editable String [true, false] Prohibits (false) or allows (true) tag editing. Default: true. Mon Editable String [true, false] Prohibits (false) or allows (true) tag editing. Default: true. Tue Editable String [true, false] Prohibits (false) or allows (true) tag editing. Default: true. Wed Editable String [true, false] Prohibits (false) or allows (true) tag editing. Default: true. Thu Editable String [true, false] Prohibits (false) or allows (true) tag editing. Default: true. Fri Editable String [true, false] Prohibits (false) or allows (true) tag editing. Default: true. Sat Editable String [true, false] Prohibits (false) or allows (true) tag editing. Default: true. Sun Editable String [true, false] Prohibits (false) or allows (true) tag editing. Default: true. 1. The per_project run limits mode means that you will not have more than a limited number of simultaneously running jobs in each project. However, the maximum number of jobs should be calculated as a product of the run limits and the number of the projects running simultaneously. Sentaurus Workbench does not support a mode where you can distribute your run limits quota between several projects. 2. For TimeSegment tag, only one attribute is mandatory, either Begin or End. If the second attribute is omitted, the missing value is generated as follows: 00:00 for Begin attribute and 24:00 for End attribute. Sentaurus™ Workbench User Guide I-2013.12 145 9: Configuring Sentaurus Workbench Run Limits Settings Example 1 Assume you want to define the following run limits for Sentaurus Process (sprocess), which can be redefined on a user level: Weekdays: 08:00-17:00: run limit = 10 17:00-22:00: run limit = 30 Nights, weekends, the rest of time: run limit = 80 The following timetable is applicable: General run limits for tool "sprocess": 80 Weekdays (Mon-Fri): 08:00-17:00: run limit = 10 17:00-22:00: run limit = 30 This is the run limits settings file that would implement these specifications: <RunLimitsTable Version="0.0" RestrictionModel="per_user"> <Tool Name="sprocess"> <RunLimit Value="80" /> <Weekdays> <TimeSegment Begin="08:00" End="17:00"> <RunLimit Value="10" /> </TimeSegment> <TimeSegment Begin="17:00" End="22:00"> <RunLimit Value="30" /> </TimeSegment> </Weekdays> </Tool> </RunLimitsTable> Example 2 Assume you want to implement a more complex run limits timetable for Sentaurus Process (sprocess), which cannot be redefined on a user level: General: run limit = 20 Weekdays: run limit = 20 08:00-17:00: run limit = 5 18:00-24:00: run limit = 30 146 Sentaurus™ Workbench User Guide I-2013.12 9: Configuring Sentaurus Workbench Run Limits Settings Weekends: run limit = 40 Monday: 13:00-14:00: run limit = 10 Tuesday: 15:00-17:00: run limit = 15 Wednesday: 17:00-24:00: run limit = 15 Thursday: 15:00-17:00: run limit = 15 Friday: 15:00-24:00: run limit = 35 Saturday: 00:00-07:00: run limit = 50 Sunday: 20:00-24:00: run limit = 5 Exceptions (for example, vacation): 1 September 2013 – 14 September 2013 General: run limit = 15 17:00-24:00: run limit = 5 1 August every year General: run limit = 60 This is the run limits settings file that would implement these specifications: <RunLimitsTable Version="0.0" Editable="false" RestrictionModel="per_user"> <Tool Name="sprocess"> <RunLimit Value="20" /> <Weekdays> <RunLimit Value="20" /> <TimeSegment Begin="08:00" End="17:00"> <RunLimit Value="5" /> </TimeSegment> <TimeSegment Begin="18:00" End="24:00"> <RunLimit Value="30" /> </TimeSegment> </Weekdays> <Weekends> <RunLimit Value="40" /> </Weekends> <Mon> <TimeSegment Begin="13:00" End="14:00"> <RunLimit Value="10" /> </TimeSegment> </Mon> Sentaurus™ Workbench User Guide I-2013.12 147 9: Configuring Sentaurus Workbench Run Limits Settings <Tue> <TimeSegment Begin="15:00" End="17:00"> <RunLimit Value="15" /> </TimeSegment> </Tue> <Wed> <TimeSegment Begin="17:00" End="24:00"> <RunLimit Value="15" /> </TimeSegment> </Wed> <Thu> <TimeSegment Begin="15:00" End="17:00"> <RunLimit Value="15" /> </TimeSegment> </Thu> <Fri> <TimeSegment Begin="15:00" End="24:00"> <RunLimit Value="35" /> </TimeSegment> </Fri> <Sat> <TimeSegment Begin="00:00" End="07:00"> <RunLimit Value="50" /> </TimeSegment> </Sat> <Sun> <TimeSegment Begin="20:00" End="24:00"> <RunLimit Value="5" /> </TimeSegment> </Sun> <Holiday Begin="01/09/2013" End="14/09/2013"> <RunLimit Value="15" /> <TimeSegment Begin="17:00" End="24:00"> <RunLimit Value="5" /> </TimeSegment> </Holiday> <Holiday Begin="01/08"> <RunLimit Value="60" /> </Holiday> </Tool> </RunLimitsTable> 148 Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 10 Integrating Sentaurus Workbench with Other Tools This chapter discusses how to use other tools and features from Sentaurus Workbench. Synchronizing Project and Ligament Process Flow This feature addresses the needs of process engineers who use Ligament to set up their process simulations. Usually, process engineers start setting up a simulation by creating the Ligament process flow in the Ligament Flow Editor. When a Ligament process flow is complete, it often contains references to Sentaurus Workbench @..@ parameters and variables, expressions, and #split directives. Instead of manually creating the necessary parameters in the Sentaurus Workbench project, Sentaurus Workbench allows you to do this automatically by synchronizing the Ligament process flow with its Sentaurus Workbench project. To synchronize a Ligament process flow with its Sentaurus Workbench project: 1. Select the corresponding process tool step. 2. Tool > Synchronize with Flow. Sentaurus Workbench will analyze the Ligament process flow to find all the @..@ parameters and their process names. After this, Sentaurus Workbench creates all the nonexisting parameters for the current tool step in exactly the same order as they appear in the Ligament Flow Editor. NOTE Parameters are created with no variation and a default value of 0. You can change the values as required. The process names are displayed in a separate row if the corresponding option in the user preferences is switched on (see Showing Process Name Row on page 31). In the Ligament process flow, process names refer to first-level macro calls (recipes) in the root process flow. After synchronization with the Ligament process flow, the Sentaurus Workbench project will look similar to Figure 77 on page 150. Sentaurus™ Workbench User Guide I-2013.12 149 10: Integrating Sentaurus Workbench with Other Tools Synchronizing Project and Ligament Process Flow Figure 77 150 Sentaurus Workbench project after synchronization with Ligament process flow NOTE Only nonexisting parameters are created in the Sentaurus Workbench project during the synchronization with the Ligament process flow. Parameters that already exist are not updated. However, if the process tool contains Sentaurus Workbench parameters that do not appear in the Ligament flow, these parameters are removed after synchronizing with the Ligament flow. NOTE Process names that have been introduced or changed manually are not stored in the Ligament flow. All manually introduced or changed process names or parameters are removed after synchronizing with the Ligament flow. NOTE This feature is supported for process tool steps and only when Ligament is used to generate the simulator input command files. Sentaurus™ Workbench User Guide I-2013.12 10: Integrating Sentaurus Workbench with Other Tools Symbolic Links to Node Output Files Symbolic Links to Node Output Files In some process simulation projects, it may be useful to look for simulation results not by a node number, but by a combination of experiment number, parameter name, or parameter process name. Sentaurus Workbench allows you to create these links automatically. To create symbolic links to node output files: 1. Select a process tool step. 2. Tool > Create Process Output Links. Process simulators store simulation results in TDR files with the following naming scheme: n<node>_<tool_acronym>.tdr As the result of automatic linking, all available node output TDR files are linked with the following symbolic links: <experiment_number>_<parameter>_<process_name>.tdr NOTE This feature is supported for process tool steps. NOTE Sentaurus Workbench allows a node to belong to multiple experiments. In this case, the first matching experiment number is used to create the symbolic links. NOTE The symbolic link is not created when there is a file with the same name. Visualizing Response Surfaces This tool is used to display a surface corresponding to a response surface model (RSM). To use this tool: 1. Run Sentaurus Workbench and open a project containing response values (see Figure 78 on page 152). 2. Optimization > RSM Visualization. Sentaurus™ Workbench User Guide I-2013.12 151 10: Integrating Sentaurus Workbench with Other Tools Visualizing Response Surfaces Figure 78 Example of project with parameterization and responses First Step of RSM Visualization In the first step of RSM visualization (see Figure 79 on page 153), select the following options to define the RSM to be visualized: Scenario The scenario in the loaded project that will be used to make the RSM. X-axis The parameter to be used as the x-axis of the plot. Y-axis The parameter to be used as the y-axis of the plot. Z-axis The response to be used as the z-axis of the plot. Type The type of RSM model (standard or Kriging). Model The RSM model degree (first order or second order). All project parameters that are not assigned to x- or y-axes can be included in RSM modeling. 152 Sentaurus™ Workbench User Guide I-2013.12 10: Integrating Sentaurus Workbench with Other Tools Visualizing Response Surfaces Figure 79 RSM Visualization - Step 1 Including Parameters in RSM Modeling To include parameters in RSM modeling: 1. Select the corresponding check box in the Include column. 2. Specify the fixed value in the Value column. 3. Click Next to continue. Sentaurus™ Workbench User Guide I-2013.12 153 10: Integrating Sentaurus Workbench with Other Tools Visualizing Response Surfaces Second Step of RSM Visualization In the second step (see Figure 80), select the values that determine the plot ranges and the number of points for the parameters attached to the x-axis and y-axis of the resulting plot. Sentaurus Workbench automatically calculates the minimum and maximum parameter values from the project data. The default value for the number of points is 30. Figure 80 154 RSM Visualization - Step 2 Sentaurus™ Workbench User Guide I-2013.12 10: Integrating Sentaurus Workbench with Other Tools Visualizing Response Surfaces Visualization Options Sentaurus Workbench offers different visualization options to display the RSM, which are listed in Table 17. Table 17 Visualization options Option Description 2D Displays an xy graph when one parameter and a response are selected. When you select two parameters and a response, the response is displayed as a contour plot. 3D Displays a 3D surface. This is the default setting when you select two parameters and a response. Contour Sets the plotting style. Displays the surface as a contour plot. Mesh Sets the plotting style. Displays the surface as a mesh plot. Shade Sets the plotting style. Displays the surface as a shade plot. Boundary Sets the plotting style. Displays the boundaries of the surface. When the Contour option is selected, you can select whether x, y, or the response should be used as the contour variable. By default, the response is selected as the contour variable. The parameters and the response can be displayed in a logarithmic or linear scale. To obtain information about the model, click the Model Info button (see Figure 81). The following information about the model is available: statistics, coefficients, variance, ANOVA table, and evaluation of the experiments that were used to create the RSM. Additionally, the Evaluation tab can be used to evaluate the model for any combination of parameter values. Figure 81 Model Info dialog box for an RSM Sentaurus™ Workbench User Guide I-2013.12 155 10: Integrating Sentaurus Workbench with Other Tools Taurus Workbench to Sentaurus Workbench Converter To visualize the model, click the Generate button (see Figure 80 on page 154). Figure 82 Example of 2D RSM contour plot visualized in Sentaurus Visual Taurus Workbench to Sentaurus Workbench Converter To import a Taurus Workbench (TWB) project into the Sentaurus Workbench (SWB) environment: ■ Double-click the TWB project folder. Sentaurus Workbench will search for a file called <projectName>.vfl. If this file exists, then you have a valid TWB project and conversion starts. Figure 83 156 Projects browser Sentaurus™ Workbench User Guide I-2013.12 10: Integrating Sentaurus Workbench with Other Tools Taurus Workbench to Sentaurus Workbench Converter After that, the converter will ask for the destination path to store the converted project (see Figure 84). Figure 84 Save Project As dialog box During conversion, the converter performs the following steps: ■ Generates a new SWB project. ■ Creates a tool flow according to the existing one inside the TWB project. ■ ■ ■ ■ Creates experiments according to the experiment tree structure and the ‘control values’ in the TWB project. Copies all relevant files such as the mask files and the root wafer file. Creates simulator command files according to instructions that are stored in the different modules, inside the .vfl file. Saves the TWB module names in the SWB project as tool comments. Figure 85 Taurus Workbench project converted to Sentaurus Workbench project Sentaurus™ Workbench User Guide I-2013.12 157 10: Integrating Sentaurus Workbench with Other Tools Taurus Workbench to Sentaurus Workbench Converter Merging TWB Tool Instances In the Taurus Workbench simulation flow, it is common practice to have multiple sequential instances of the same tool, for example, TSUPREM-4. This approach is used for splitting purposes. Unlike Taurus Workbench, in Sentaurus Workbench, you usually create one instance of a process tool with one compound input command file, which has #split preprocessor instructions inside to separate split parts. By default, the converter creates a tool flow that is symmetric to the one in the original Taurus Workbench project. However, Sentaurus Workbench allows you to make an alternative conversion. This mode is switched off by default. To activate it: 1. Edit > User Preferences or press the F12 key. 2. Select TWB to SWB Converter and set Merge Sequential Tool Instances to true. In this mode, Sentaurus Workbench merges input files of the sequential instances of the same Taurus Workbench tool into one input command file of the corresponding Sentaurus Workbench tool and automatically inserts #split preprocessor instructions into this compound input file. NOTE Sentaurus Workbench merges only those input files of the sequential instances of the same Taurus Workbench tool, which share the same Taurus Workbench driver name. Adapting TWB Parameter Names to SWB Parameter Names During the conversion process, the converter analyzes the parameter names that are used in the Taurus Workbench input files. The converter looks for spaces inside a parameter name and replaces them with the set of user-defined concatenation symbols. By default, Sentaurus Workbench uses the underscore “_”. For example, the Taurus Workbench parameter IMPLANT DOSE is converted to IMPLANT_DOSE. 158 Sentaurus™ Workbench User Guide I-2013.12 10: Integrating Sentaurus Workbench with Other Tools Taurus Workbench to Sentaurus Workbench Converter The default symbol can be changed in the Sentaurus Workbench user preferences (TWB to SWB Converter > Parameter Name Concatenation Symbols) (see Figure 86). Figure 86 TWB to SWB Converter settings in user preferences Sentaurus™ Workbench User Guide I-2013.12 159 10: Integrating Sentaurus Workbench with Other Tools Taurus Workbench to Sentaurus Workbench Converter 160 Sentaurus™ Workbench User Guide I-2013.12 CHAPTER 11 Schedulers This chapter describes the schedulers used in Sentaurus Workbench. Scheduling Systems Parameter studies involving several parameters usually require a large number of simulation runs. The limited interdependency of the individual simulation steps makes this type of application an excellent candidate for exploiting coarse grain parallelism on a network of workstations. To take advantage of this situation, Sentaurus Workbench offers access to different, more or less sophisticated, backend job scheduling systems. Access to these systems is transparent. However, the installation and initialization of a distributed scheduling system is usually a complicated task, as it requires many conditions to be fulfilled in the network environment. A distributed system is also much more difficult to troubleshoot than a conventional application. This section provides guidelines to set up, test, and successfully operate the scheduling facilities of Sentaurus Workbench. Details about installing and configuring the Load Sharing Facility (LSF) system, the Sun Grid Engine (SGE) system, the IBM Tivoli Workload Scheduler LoadLeveler (LL) system, and the TORQUE/Maui (TM) system can be found in the appropriate vendor manuals. Sentaurus Workbench provides a unified scheduling approach, by which you can submit jobs to any scheduler or queue. Each node can be assigned to any queue defined by the systems administrator in the global queue file or site queue file. Sentaurus Workbench supports the following backend execution engines: SGE Sun Grid Engine is an open-source batch-queuing system, supported by Sun Microsystems. SGE is typically used on a computer farm or computer cluster, and is responsible for accepting, scheduling, dispatching, and managing the remote execution of large numbers of stand-alone, parallel, or interactive user jobs. In addition, it manages and schedules the allocation of distributed resources such as processors, memory, disk space, and software licenses. SGE is better suited to large corporate networks. Sentaurus™ Workbench User Guide I-2013.12 161 11: Schedulers Scheduling Systems TM TORQUE/Maui is an advanced open-source batch-queuing system, supported by Cluster Resources Inc. It provides control over batch jobs and distributed computing resources, and it incorporates significant advances in the areas of scalability, reliability, and functionality. LL IBM Tivoli Workload Scheduler LoadLeveler is a parallel job scheduling system that allows users to run more jobs in less time by matching the processing needs and priority of each job with the available resources, thereby maximizing resource use. LoadLeveler also provides a single point of control for effective workload management and supports highavailability configurations. LSF Load Sharing Facility is a widely used third-party load-sharing system developed by Platform Computing Inc. It offers a wide range of scheduling options and a complete set of administration tools. Like the SGE, LSF is a corporate-size solution to consolidate computational resources into a cluster. Local Executes jobs sequentially on the local machine; does not require any special setup and does not produce any scheduling overhead. Useful for running short simulations, or setting up and debugging more complex projects. DMW ‘In-house’ load-sharing scheduler embedded into gsub, using a ‘centrally coordinated’ scheduling approach. Useful for distributing the execution of large projects on a network of heterogeneous workstations. The SGE, TM, LL, LSF, and DMW systems work on a cluster of heterogeneous workstations sharing a common file namespace. Therefore, the following conditions are mandatory for their proper exploitation: ■ ■ ■ 162 Synopsys TCAD simulation software is installed on all of the workstations that will be used. STROOT is identical (same absolute path) on all workstations. The easiest way to obtain this is to share (NFS mount) the file system where the Synopsys software is installed. The user project space is shared by all participating workstations and accessible through the same absolute path. Again, the easiest way to obtain this is to NFS mount the file system where the STDB of the user resides. A global queue definition file and, when necessary, a site queue definition file must be set up by the systems administrator, who provides the list containing queue names. For DMW, Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers DMW Scheduler the systems administrator sets up a list of hosts (HostDB) that is available for that particular queue. DMW1 Scheduler The general goal of DMW is to distribute jobs over a cluster of network workstations to speed up simulations and better exploit available computing resources, while avoiding the overloading of individual workstations and ensuring users have equal access opportunity to shared computing resources. To achieve this goal, DMW uses a centrally coordinated scheduling approach. A global arbiter runs on a single host; this is the DMWUmpire daemon. The task of the arbiter is to globally allocate hosts to clients (gsub processes). On a client request, the DMWUmpire decides which is the best machine currently available for that client. If it finds a suitable host, it allocates it to the client and keeps the corresponding resource busy until the client explicitly releases it (when the job is completed). To obtain an overview of the current activity on the workstations, the DMWUmpire requires local state information from each host. It evaluates the state of a machine using three indicators: ■ Current ‘load average’ (the average number of jobs in the run queue over the last minute; see also the UNIX uptime command) ■ Free physical memory ■ Number of processors ■ A daemon running on each host, the DMWMole, captures local state information and sends it to the DMWUmpire upon request. Actual job execution is initiated by the gsub program. For each ‘ready-to-run’ job, gsub asks the global DMWUmpire for a host and then dispatches the job by using a job-monitoring daemon, the DMWLaunchPad. The job-monitoring daemon runs together with its job on the target machine and reports the state of its protégé to the gsub instance that initiated the execution. 1. The acronym DMW stands for ‘the Devil Makes Work for idle hands.’ Sentaurus™ Workbench User Guide I-2013.12 163 11: Schedulers DMW Scheduler After installing the Synopsys software, the systems administrator must configure the DMW system for the particular computing environment. The following files store the initial DMW configuration information: Host database Describes the computing environment, that is, which workstations are available and their relative powers. Constraint database Describes job-to-host constraints, that is, which types of job are susceptible to run on which hosts. Host Database The DMW host database enumerates the workstations eligible for hosting jobs. All of the listed hosts must be interconnected at the TCP level to be able to communicate using sockets (they need not necessarily belong to the same physical network), they must trust each other in the sense of the rsh protocol, and they must share a common file namespace. A global host database is stored in a simple text file called HostDB. Sentaurus Workbench looks for the global host database file in the following order: 1. Release-independent directory: $STROOT/queues/HostDB 2. Release-specific directory: $STROOT/tcad/$STRELEASE/lib/HostDB 3. Release-specific directory: $STROOT/tcad/$STRELEASE/lib/glib2/HostDB The global host database file also can be specified on a site level: $SWB_SITE_SETTINGS_DIR/HostDB. When this file exists, it replaces the global host database (see Site Queue Configuration and HostDB Files on page 180). The format of the HostDB file is that lines starting with a # character are considered comments and are ignored. All other lines should contain the following fields separated by spaces: 1. Name of workstation (host name) or host IP address. 2. Hardware architecture of host (refer to the installation guide, Installing TCAD Products). 3. Operating system of host (refer to the installation guide, Installing TCAD Products). 4. A positive real number greater than zero as an indicator of the performance index of the workstation. The default value is 1.0. Practical values should be 0.8 or greater. 5. Optionally, an integer as the maximum number of simultaneous jobs the workstation can accept. The default value is 1. An exclamation mark (!) preceding a host definition indicates that the corresponding host is temporarily disabled (no jobs will be dispatched to it). 164 Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers DMW Scheduler Fields 2 and 3 are purely informative; they are not used by the scheduler. Value 4 is an indicator of the comparative ‘quality’ of the workstations and has a proportional weight in the host allocation policy of the DMWUmpire. Value 4 should reflect the overall machine performance in terms of processor speed and amount of memory, but should not consider the number of processors (the number of processors is already taken into account in the host allocation policy). Hosts with a high performance index tend to receive jobs before less powerful hosts and, as a consequence, are more busy. NOTE The performance index has strictly no influence on the type of job a host will receive (it is not that a host with a high performance index will have ‘memory-gluttonous’ jobs and so on). Value 5 indicates the maximum number of jobs the host will accept. This value should usually match the number of processors. In typical conditions, it is a waste of resources to run jobs in time-sharing mode. However, for special jobs, such as interactive jobs or jobs performing a lot of output, it may be advantageous to set a value higher than the number of processors. NOTE Value 5 is authoritative: no more jobs are dispatched to a host already running its maximum number of jobs. Furthermore, the first host in the HostDB file (regardless of whether this host is enabled) is used to specify the arbitration host (the host where DMWUmpire will run). Ensure that this host is a reliable machine in your network. A simple and good solution is to specify the host that is running the license daemon as the global arbitration host. An example of a host database is: # # Example host database # speedy amd64 linux64 woody ix86 Linux turtle amd64 linux64 ! rabbit ix86 Linux 1 1 2 2 In this example, woody and rabbit are Linux machines, while speedy and turtle are ones with the AMD platform. turtle and rabbit are equipped with two processors; rabbit is disabled. The global HostDB file must be created at installation time and should be maintained by the systems administrator. Sentaurus™ Workbench User Guide I-2013.12 165 11: Schedulers DMW Scheduler Constraint Database/Queues Based on the global, site, user, and project definitions, the constraint database is created as a temporary file at run-time. DMW scans the constraint database to determine the suitable hosts for a job running the tool tool and queued into the queue queue. In Sentaurus Workbench, the queue definition file encompasses all of ConstraintDB, therefore, creation and maintenance of ConstraintDB is performed internally. To modify ConstraintDB, you can set up your hosts in your user queue definition file. Host Allocation Policy The role of the DMWUmpire daemon is to globally allocate hosts to gsub clients. DMWUmpire maintains a list of eligible hosts under its control and monitors their state. A host can be: dysfunctional Unreachable; DMWMole does not respond. embargoed Excluded for 90 seconds after being allocated, to stabilize the ‘load average.’ overworked The maximum number of jobs of the host has been reached. intolerable When Load / PEs ≥ 0.9 or FreeMem ≤ 20000 KB. available When none of the previous conditions apply. where: ■ Load is the UNIX standard ‘1 min load average’, that is, the average number of jobs in the run queue over the last minute. ■ PEs is the number of processors. ■ FreeMem is the amount of free physical memory in kilobyte. DMWUmpire allocates only available hosts and uses a ‘best-first’ allocation policy. Hosts are sorted by their score, a weighted assessment of their load average: score = 100 * PerfIndex / ((Load / PEs) + 1.0) where PerfIndex is the most recent performance index announced for that host. 166 Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers DMW Scheduler DMWUmpire satisfies the next request of the client by granting the available host with the highest score. If there is no available host, the request is denied and the client waits until a host is available. Troubleshooting DMW The DMW system automatically starts daemons (DMWUmpire, DMWMole, and DMWLaunchPad) when and where it is necessary; no explicit user intervention is required. DMW starts daemons and jobs using the remote shell protocol (rsh). In order for rsh and DMW to work, the following two conditions must be satisfied: ■ ■ The workstations should mutually trust each other, that is, rsh can be used to launch a job from or to any participating workstation. User log-in sessions must be silent (no message is printed by the log-in script). To check these conditions, the following command should succeed for any user from all to all workstations: Input: % rsh <hostname> echo coucou Output: coucou The login is silent if nothing other than coucou is printed. The DMWMole daemon monitors the load average, free memory, and number of processors of the host on which it is running. To check the current values on the local host, type the command: Input: % DMWMole -test Output: Load averages: 1.20,1.70,2.28 Memory: 1703936K real,70440K free NOTE This command does not start the daemon and it does not interfere with a daemon running in the background. The DMWTest utility makes it possible to exercise the DMW daemons and to highlight connectivity or communication problems. DMWTest uses the same protocol as the DMW system to start the daemons in the background, to connect to the daemons, to send requests, and to receive responses. For example, to check the DMW daemons on all the hosts listed in the global host database, type the command: DMWTest Sentaurus™ Workbench User Guide I-2013.12 167 11: Schedulers LSF Scheduler If everything is satisfactory, the output is similar to: Loading host database '/remote/tcadprod/tcad/22.0/L1/lib/HostDB' Checking DMWUmpire@speedy [170.1.1.72] connecting..................... -> OK (DMWUmpire version [20050901]) Checking DMWMole@woody [170.1.1.178] connecting......... -> OK (DMWMole version [20050901]) getting machine info.. -> R 0.04 798024 1 Checking DMWMole@turtle [170.1.1.112] connecting......... -> OK (DMWMole version [20050901]) getting machine info.. -> R 0.02 890024 2 ... To check the connection from the local host to a DMWMole on a specific host, use the command: DMWTest <hostname> DMWTest can also be used to shut down already running daemons. For example, the command: DMWTest -s <hostname> performs the same test as the previous command, but shuts down the daemon afterwards. NOTE Shutting down daemons is especially necessary before an upgrade of the DMW software components. LSF Scheduler As an alternative to the DMW scheduling system, Sentaurus Workbench provides an interface to the Load Sharing Facility (LSF) system. LSF integrates a cluster of heterogeneous workstations into a single system environment and provides sophisticated job scheduling policies. It can be used to submit and distribute project simulation jobs over the local network. As with DMW, LSF queues can be accessed through the Scheduler window. To use LSF, the following conditions must be fulfilled: 1. The local host (the one running Sentaurus Workbench and gsub) is a LSF client or server. 2. On the local host, the LSF binaries are accessible through the variable PATH (add $LSF/ bin to your PATH variable before starting Sentaurus Workbench). 3. Synopsys TCAD simulation software is accessible to all LSF server workstations. 4. The project space is accessible to all LSF servers with the same absolute path. 168 Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers LSF Scheduler To check points 1 and 2, the following two commands should succeed on the local host: % lsid LSF 5.0, May 31 2002 Copyright 1992-2002 Platform Computing Corporation My cluster name is test_cluster My master name is <local hostname> % bqueues QUEUE_NAME PRIO big_jobs 1 ... STATUS Open:Active MAX - JL/U 2 JL/P... 2... gsub uses the bsub command to submit jobs to LSF and the bjobs command to track job status. You can specify additional bsub command-line options using the queue options (see Configuring the Scheduling System on page 176). To execute each node, gsub does not directly submit the corresponding tool command line, but launches a job wrapper, the gjob utility. The latter updates the job status and locally executes the prologue tool and epilogue of the corresponding tool as defined in the tool database. NOTE Tool database settings control which bsub, bjobs, and lsid will be executed. The corresponding settings are WB_binaries(tool,bsub), WB_binaries(tool,bjobs), and WB_binaries(tool,lsid). You can control which command-line option the LSF command bsub uses to link a submitted job to a specific LSF project name or to LSF job name attributes. By default, LSF uses the –P option and specifies the LSF project name. Alternatively, you can use the –J option, which specifies the LSF job name. To switch to the -J option: 1. Edit > User Preferences or press the F12 key. 2. Select Scheduler > LSF Jobs, and set Project Name Command-Line Option to -J. You can specify additional command-line options for the LSF bsub and bjobs commands in the tool database using the following settings: set WB_tool(bsub,cmd_options) set WB_tool(bjobs,cmd_options) Sentaurus Workbench adds these command-line options to the default ones that Sentaurus Workbench uses for the bsub and bjobs commands. You can specify LSF resource requirements on a per-tool basis: Different resource requirements can be set up for specific tools in a Sentaurus Workbench project. Sentaurus Sentaurus™ Workbench User Guide I-2013.12 169 11: Schedulers LSF Scheduler Workbench provides full support for the LSF resource requirement string (refer to the definition of the -R option of the bsub command in the LSF Manual). The per-tool LSF resource requirements can be set up in the Sentaurus Workbench tool database (on the global, user, or project level) using the syntax: set WB_tool(<tool_name>,LSF,resource) {<resource_string>} where <tool_name> is the database name of the tool, and <resource_string> defines the resource requirements. For example: set WB_tool(sprocess,LSF,resource) {rusage[sprocess_all=1,sprocess3d_all=1]} set WB_tool(sprocess,LSF,resource) {rusage[sprocess_all=1||SK_sprocess_all=1]} set WB_tool(sdevice,LSF,resource) {mem>5000 rusage[sdevice_all=1]} The resource requirement string, specified in the tool database, overwrites the one specified in the LSF queue in the Sentaurus Workbench global or site queue configuration files (gqueues.dat). For example, when the following LSF queue name is defined in the queue configuration file: queue lsf:mylsfqueue "bsub -R \"swp > 5 && mem > 10\" -q normal" and you run a Sentaurus Process simulation over this LSF queue, the tool-related resource setting rusage[sprocess_all=1,sprocess3d_all=1] replaces the global setting swp > 5 && mem > 10. NOTE Do not specify the -R option for the resource requirement string; Sentaurus Workbench adds it automatically. Troubleshooting LSF Users of Sentaurus Workbench can have problems when submitting simulations on the LSF cluster. This section describes how to solve two typical issues you may experience with the LSF cluster. Nodes Are Submitted but Not Executed This problem can appear on overworked or slow LSF clusters. After Sentaurus Workbench submits node jobs in the LSF environment with the bsub command, it starts periodical checking of job polling by calling the bjobs command to obtain the status of the submitted jobs. In some cases, the first call of bjobs occurs before the LSF scheduler completes the 170 Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers LSF Scheduler actual job submission; this results in an empty output of the bjobs command, which Sentaurus Workbench considers to be the end of the LSF execution session. Sentaurus Workbench provides options to control the job-polling algorithm, which you can fine-tune to allow the LSF cluster to work more effectively with Sentaurus Workbench: ■ The tool database setting: WB_tool(bjobs,delay) specifies the time interval between the submission of the first node and the first call of the bjobs command to check the status of the jobs. Set the value in seconds. By default, Sentaurus Workbench defines it as 15 s. ■ The user preferences setting: User Preferences > Scheduler > LSF Jobs > Job Polling Interval (sec) specifies the time interval between two sequential calls of bjobs. This value is set in seconds (default is 1 s). Increasing this time interval may be helpful for LSF clusters that are overworked with many requests. ■ The tool database setting: WB_tool(lsf,frequency) redefines the time interval between two sequential calls of bjobs set up in the user preferences. This value is set in seconds. This setting may be helpful when a systems administrator needs to control the load level of LSF clusters. Being set up in the global tool database, this setting takes effect regardless of what is set up on the user level. Nodes Are Not Executed and Log File Contains Complaints About bjobs Output This problem can appear when the LSF bjobs command provides output in a format that is not expected by Sentaurus Workbench. This can be the case when a user-specific script or application is called instead of the standard LSF bjobs command. Sentaurus Workbench allows you to adapt nonstandard bjobs output by defining your own parsing algorithm. Implement the following Tcl function and put it into the tool database: proc ::glsf::ParseBjobsOutput { text } { ... } Sentaurus™ Workbench User Guide I-2013.12 171 11: Schedulers SGE Scheduler This Tcl function overwrites the standard one that Sentaurus Workbench uses for parsing the bjobs output. The function returns the output of the bjobs call as the input (text) and parses it. Sentaurus Workbench expects this function to return the Tcl list of the following data triplets for each LSF job: ■ jobID ■ status ■ execution_host For example, the returning Tcl list can look like: { {1234 DONE tcadaix1} {3343 EXIT tcadamd3} {1123 PEND myhost} } Supported status values are: ■ DONE ■ EXIT ■ PEND ■ RUN ■ PSUSP ■ USUSP ■ SSUSP SGE Scheduler As an alternative to the LSF, Sentaurus Workbench provides an interface to the SGE scheduling system. SGE is a queuing facility that manages various system resources, running different operating systems, and helps you to submit and manage your jobs. Being open-source software, SGE has an important advantage over LSF. As with DMW and LSF, SGE queues can be accessed through the Scheduler window. To use SGE, the following conditions must be fulfilled: 1. Proper SGE environmental settings are set up. Check with your systems administrator on which SGE configuration script to source or how to modify your environmental settings manually. In particular, the SGE binaries are accessible through the environment variable PATH. 2. The local host (the one running Sentaurus Workbench and gsub) is an SGE submit or admit host. 3. Synopsys TCAD simulation software is accessible to all SGE hosts. 4. The project space is accessible to all SGE hosts with the same absolute path. 172 Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers SGE Scheduler To check points 1 and 2, the following command should succeed on the local host: % qconf -sconf global global: execd_spool_dir mailer xterm load_sensor prolog epilog shell_start_mode login_shells min_uid min_gid user_lists xuser_lists projects xprojects enforce_project enforce_user load_report_time stat_log_time max_unheard reschedule_unknown loglevel administrator_mail set_token_cmd pag_cmd token_extend_time shepherd_cmd qmaster_params execd_params reporting_params finished_jobs gid_range qlogin_command qlogin_daemon rlogin_daemon max_aj_instances max_aj_tasks max_u_jobs max_jobs auto_user_oticket auto_user_fshare auto_user_default_project Sentaurus™ Workbench User Guide I-2013.12 /var/spool /bin/mail /usr/bin/X11/xterm none none none unix_behavior sh,ksh,csh,tcsh 0 0 none none none none false auto 00:00:40 48:00:00 00:05:00 00:00:00 log_warning none none none none none ENABLE_FORCED_QDEL none accounting=true reporting=false \ flush_time=00:00:15 joblog=false \ sharelog=00:00:00 100 20000-21000 telnet /usr/sbin/in.telnetd /usr/sbin/in.rlogind 2000 75000 0 0 0 1 none 173 11: Schedulers SGE Scheduler auto_user_delete_time delegated_file_staging reprioritize 86400 false 0 This command displays the SGE scheduler configuration. The output on your local host may differ from the above output. If point 2 is not fulfilled, you will see the following output: % qconf -sconf global denied: host "myhostname" is neither submit nor admin host In this case, check with your systems administrator. gsub uses the qsub command to submit jobs to SGE and the qstat command to track job status. You can specify additional qsub command-line options using the queue options (see Configuring the Scheduling System on page 176). To execute each node, gsub does not directly submit the corresponding tool command line, but launches a job wrapper – the gjob utility. The latter updates the job status and locally executes the prologue tool and epilogue of the corresponding tool as defined in the tool database. You can specify SGE resource descriptions on a per-tool basis: Different resource descriptions can be set up for specific tools in a Sentaurus Workbench project. Sentaurus Workbench provides full support for the SGE resource flags (refer to the definition of the -l option of the qsub command in the SGE Manual). The per-tool resource descriptions can be set up in the Sentaurus Workbench tool database (on the global, user, or project level) using the syntax: set WB_tool(<tool_name>,SGE,resource) {<resource_description>} where <tool_name> is the database name of the tool, and <resource_description> defines the comma list of resource flags. For example: set WB_tool(sprocess,SGE,resource) {amd64=1,kernel_version=2.6.9,num_proc=4,mem_inst=2G} set WB_tool(tsuprem4,SGE,resource) {amd64=0,kernel_version=2.4.21} The resource description, specified in the tool database, overwrites the one specified in the SGE queue in the Sentaurus Workbench global or site queue configuration files (gqueues.dat). For example, when the following SGE queue name is defined in the queue configuration file: queue sge:normal64 "qsub -V -cwd -now n -P bnormal -l amd64=1,kernel_version=2.6.9" 174 Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers SGE Scheduler and you run a Sentaurus Process simulation over this SGE queue, the tool-related resource description amd64=1,kernel_version=2.6.9,num_proc=4,mem_inst=2G replaces the global setting amd64=1,kernel_version=2.6.9. NOTE Do not specify the -l option for the resource requirement string; Sentaurus Workbench adds it automatically. Before setting up resource descriptions in the tool database and the global or site queue file, it is recommended to check the validity of the descriptor and the availability of the requested resources. You can do this by using the following commands: % qhost -l <resource_descriptor> Returns the list of SGE hosts that fulfill your resource descriptor. % qaccess Allows you to check which SGE hosts you have access to. % qconf -sc Provides you with detailed information on the resource flags that you can use in your resource descriptors. % qconf -se <SGE_hostname> Informs you on the resource flags that are supported by the given SGE host. Troubleshooting SGE Systems administrators of overworked SGE clusters may receive complaints from Sentaurus Workbench users about job polling occurring too frequently. This section describes how to fine-tune Sentaurus Workbench schedule settings in this case. Reducing Frequency of SGE Job Polling This problem can occur on overworked or slow SGE clusters. After Sentaurus Workbench submits node jobs in the SGE environment with the qsub command, it starts a periodical check of job polling by calling the qstat command to obtain the status of the submitted jobs. Sentaurus™ Workbench User Guide I-2013.12 175 11: Schedulers Configuring the Scheduling System This frequency can be fine-tuned in the user preferences and tool database: ■ The user preferences setting: User Preferences > Scheduler > SGE Jobs > Job Polling Interval (sec) specifies the time interval between two sequential calls of qstat. This value is set in seconds (default is 1 s). Increasing this time interval may be helpful for SGE clusters that are overworked with many requests. ■ The tool database setting: WB_tool(sge,frequency) redefines the time interval between two sequential calls of qstat set up in the user preferences. This value is set in seconds. This setting may be helpful when a systems administrator needs to control the load level of SGE clusters. Being set up in the global tool database, this setting takes effect regardless of what is set up on the user level. Configuring the Scheduling System The scheduling system requires a queue configuration file gqueues.dat to be defined on a global or site level. To launch jobs on DMW, the host database file HostDB must be defined on a global or site level. The systems administrator must set up these two files. In addition to the queue configuration, tools must be properly associated with the queues in the scheduling systems. Global Queue Configuration File A queue configuration file (gqueues.dat) combines definitions of all resources available to you for running simulations in Sentaurus Workbench. The file contains a list of Sentaurus Workbench queue definitions. Each Sentaurus Workbench queue consists of the name of the backend scheduler, a unique queue name, and optional parameters. These queues are used by Sentaurus Workbench and the command-line job submission utilities (gsub, swbopt) when launching simulations. The format of the gqueues.dat file is that lines starting with a hash (#) character are considered comments and are ignored. 176 Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers Configuring the Scheduling System An example of a queue definition file is: #local queue nice level queue local:default "19" queue local:priority "10" #dmw queues queue dmw:long hosts "tcadamd1 tcadamd2 tcadamd3" #lsf queues queue lsf:default queue lsf:normal queue lsf:high bsub string "bsub" "bsub" "bsub -R type==LINUX86" #sge queues qsub string queue sge:normal64 "qsub -V -cwd -now n -P bnormal -l amd64=1" Sentaurus Workbench looks for the global queue file in the following order: 1. Release-independent directory: $STROOT/queues/gqueues.dat 2. Release-specific directory: $STROOT/tcad/$STRELEASE/lib/gqueues.dat 3. Release-specific directory: $STROOT/tcad/$STRELEASE/lib/glib2/gqueues.dat The global queue file also can be specified on a site level: $SWB_SITE_SETTINGS_DIR/ gqueues.dat. When this file exists, it replaces the global one (see Site Queue Configuration and HostDB Files on page 180). The scheduling system of Sentaurus Workbench supports different schedulers, which can be used simultaneously: local, DMW, SGE, LSF, LL, TM. The global queue file can combine queues for all available resources. As a minimum requirement, the global queue file must contain at least one local queue to launch Sentaurus Workbench jobs locally. For Local Queues The queue configuration for local queues (that is, for jobs that are run on the local machine) is set up as follows: queue local:<queue_name> <desired nice level> For example, a priority queue can have a lower nice level: queue local:priority "10" Sentaurus™ Workbench User Guide I-2013.12 177 11: Schedulers Configuring the Scheduling System Sentaurus Workbench offers two predefined local queues in the file $STROOT/tcad/ $STRELEASE/lib/glib2/gqueues.dat: queue local:default "19" queue local:priority "0" For LSF Queues For installing and setting up LSF queues, refer to the LSF Installation Manual. From the Sentaurus Workbench side, in the global queue configuration, the systems administrator must list all LSF queues that you can access. The systems administrator also must set up the resource strings, specifying applicable resource restrictions. The format of the LSF queue specification string for the global queue configuration file is: queue lsf:<lsf_queue_name> <bsub constraint_options> where lsf_queue_name is the name of the corresponding LSF queue and constraint_options contains arbitrary constraint specifications. For example, a queue <mylsfqueue> with additional resource constraints can be defined for Sentaurus Workbench as: queue lsf:mylsfqueue "bsub -R \"linux && mem>1000\"" When Sentaurus Workbench runs a job using this queue, the following command will be generated on the basis of the queue definition: bsub -R "linux && mem>1000" -o <log_file> -q mylsfqueue -P <project_id> \ -J <job_name> <gjob command string> NOTE Using the backslash (\) in the specification of an LSF resource string to protect double quotation marks is mandatory; otherwise, Sentaurus Workbench removes double quotation marks during Tcl evaluation and the LSF bsub command fails on the wrong syntax. The name of a real LSF queue and the name of the corresponding queue in the global or site queue configuration file of Sentaurus Workbench usually are the same, but it is not obligatory. Sentaurus Workbench allows you to create so-called queue aliases, where Sentaurus Workbench queues have different names and resource strings, and refer to the same LSF queue. For example: 178 queue lsf:refqueue1 "bsub -R \"swp > 5 && mem > 10\" -q normal" queue lsf:refqueue2 "bsub -R \"swp > 10 && mem > 20\" -q normal" queue lsf:refqueue3 "bsub -R \"swp > 15 && mem > 30\" -q normal" Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers Configuring the Scheduling System These three Sentaurus Workbench queues refqueue1, refqueue2, and refqueue3 are not real LSF queues, that is, they do not exist in the LSF environment. In fact, these queues refer to the same LSF normal queue. The LSF bsub command supports multiple -q command-line options, but the last one specifies the LSF queue for the execution. That is why, in the example above, simulations scheduled among three queues will be submitted to the same LSF queue normal, but with different resource restrictions. When the lsf:default queue for LSF is specified in the global or site queue configuration file, Sentaurus Workbench expects explicit specification of the LSF queue in the constraint options, for example: queue lsf:default "bsub -R \"linux && mem>1000\" -q mylsfqueue" For additional bsub options, refer to the LSF Manual. For SGE Queues For installing and setting up SGE queues, refer to the SGE Manual. From the Sentaurus Workbench side, in the global or site queue configuration file, the systems administrator must list all SGE queues that users can access. The systems administrator also must set up the resource strings, specifying applicable resource restrictions. The format of the SGE queue specification string for the global or site queue configuration file is: queue sge:<sge_queue_name> <qsub arguments> where sge_queue_name is the SGE queue name that you will see in Sentaurus Workbench, and arguments contains the list of options. The main option is -P, which specifies the name of the associated SGE project. The SGE project specifies the group of SGE hosts where the simulation job is to be scheduled. arguments may contain arbitrary resource descriptors to filter out hosts with requested resources. For example, a queue <mysgequeue> with additional resource descriptors can be defined for Sentaurus Workbench as: queue sge:mylsfqueue "qsub -P bnormal -l amd64=1,kernel_version=2.6.9" When Sentaurus Workbench runs a job using this SGE queue, it first packs the gjob call into the shell script: #!/bin/sh #$ -S /bin/sh trap "kill -INT $!;sleep(5);kill -TERM $$" USR1 USR2 <gjob command string> Sentaurus™ Workbench User Guide I-2013.12 179 11: Schedulers Configuring the Scheduling System and then submits this script to the SGE engine using the command: qsub -notify -V -cwd -now n -P bnormal -l amd64=1,kernel_version=2.6.9 -o <log_file> -e <sge_error_file> -N <project_name> <shell script above> This command returns the job ID, which Sentaurus Workbench uses to monitor the progress of the job by periodically calling the command: qstat -u <user_name> -j <jobID from qsub> For additional qsub and qstat options, refer to the SGE Manual. For DMW Queues Setting up DMW queues requires more effort compared to local and LSF queues. All available computing hosts must be grouped in a logical manner and each group must be assigned a group name. Then, each group must be added to the global queue configuration file or site queue configuration file or both as follows: queue dmw:<queue_name> "<list of hosts>" For example, a company with hosts tcadamd1, tcadamd2, tcadamd3, linux1, linux2, and linux3 can have two DMW groups, such as amd_queue and linux_queue. The configuration can now be set up as: queue dmw:amd_queue "tcadamd1 tcadamd2 tcadamd3" queue dmw:linux_queue "linux1 linux2 linux3" HostDB (for DMW) All hosts that are listed in the DMW queues must be put in the HostDB setup by the systems administrator. For setting up the HostDB, see Host Database on page 164. Site Queue Configuration and HostDB Files When your company has multiple groups of users of the Sentaurus platform, distributed in different sites, it may be useful to redefine global queue and HostDB configuration settings for all users of the specific site. 180 Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers Configuring the Scheduling System To do this: 1. Create your site-specific settings in the files gqueues.dat and HostDB (if you plan to use DMW resources). 2. Place them under an arbitrary directory. 3. Set up the following environment variable to refer to this directory: % setenv SWB_SITE_SETTINGS_DIR <path_to_site_directory> Like the global queue configuration file and HostDB file, their site counterparts are usually not writable. The directory referenced by the environment variable SWB_SITE_SETTINGS_DIR can also contain the site tool database settings file tooldb.tcl. Unlike the site tool database file, the site queue configuration file and HostDB file completely replace the settings provided by their global counterparts. Therefore, when site-specific gqueues.dat and HostDB files are specified, the global gqueues.dat and HostDB files are not obligatory. NOTE The site-level queue configuration file and HostDB file allow you to create your own queue settings that are different from those at the global level. Tool Associations Sentaurus Workbench supports four levels of tool-queue associations: global, user, project, and node. The systems administrator sets up the global tool-queue association. You can configure the other three levels to meet your requirements. It is not possible to use the queue keyword in the user-project queues files. This means it is not possible to set up new queues on the user and project levels. These levels have permission to assign the tools and the nodes to specific queues. Global, user, and project tool-queue associations have a specific format: tool <tool_name> "options" <scheduler:queue_name> For example: tool sprocess "" dmw:long defines the running of all nodes associated with the tool Sentaurus Process on the hosts specified by the queue dmw:long. Sentaurus™ Workbench User Guide I-2013.12 181 11: Schedulers Configuring the Scheduling System Another example is: tool sprocess "tcadamd1 tcadamd2" dmw:long which defines the running of all nodes associated with the tool Sentaurus Process on the hosts tcadamd1 or tcadamd2. This is the way to reduce the globally specified queue on the user or project level. The specified list of hosts should be a subset of the main host list, which is specified for the queue on the global or site level. The keyword default can be used to specify all tools, that is, the assignment: tool default "tcadamd1 tcadamd2" dmw:long means that all tools will run in the dmw:long queue with the subset of hosts provided in the options field. The options are specific to the scheduler used and differ accordingly, and are explained in Global Queue Configuration File on page 176. NOTE Of the following options, the user tool associations and project tool associations can be modified from the Scheduler GUI. The nodespecific constraints can be edited manually from the Scheduler GUI or by using a text editor (see Configuring Project Queues on page 43). Global Tool Associations Global tool associations are written to the global queue configuration file or site queue configuration file or both, and are loaded with the setup. These associations apply to all users. Sentaurus Workbench delivers the following default tool associations in the global queue file $STROOT/tcad/$STRELEASE/lib/glib2/gqueues.dat: tool launcher "" local:default tool tecplot "" local:default tool inspect "" local:default tool svisual "" local:default tool default "" local:default The purpose of these tool associations is to run interactive tools locally regardless of the queue to which they are scheduled. 182 Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers Configuring the Scheduling System User Tool Associations You can use the list of queues and prepare the assignment of tools to queues. The options can be modified according to the requirements. The user tool associations are stored in the file gqueues_<username>.dat in the $STDB directory of the user. All the definitions specified complement and override any definitions at the global level and apply to all of your projects. Project Tool Associations You can configure the tool queue associations at the project level. These definitions are stored in the gqueues.dat file in the project directory. All definitions override any setting at the global level or user level, and apply to the current project only. For Local Scheduler The option field represents the nice level at which the tool needs to be run. For LSF Scheduler The option re-defines the resource string. For SGE Scheduler The option re-defines the resource description. For DMW Scheduler The option is the subset of the hosts, belonging to the particular DMW queue. Node-specific Constraints Node-specific constraints are handled by expanding the expression and applying the constraints to the nodes that match the expression. Node level constraints are applied during run-time: node "gexpr" <queue:name> "options" For example: node "all:{ @P1@ > 2.0 }" local:default "11" Node-specific constraints can be set up at global, user, or project level. These settings are stored in the respective definition files as previously mentioned. Sentaurus™ Workbench User Guide I-2013.12 183 11: Schedulers Extended Scheduler Log NOTE The definitions are cascaded with the latest setting overwriting the setting of the previous level, that is, the global and site queue files are loaded initially, and the global or site tool-queue associations and their corresponding strings are loaded. Then, the user-queue definition file is loaded. Any previous definition related to a particular tool is overwritten. Similarly, the project queue definition overwrites the user definitions. NOTE You cannot set up new queues. However, tool queue assignments can be overwritten. Run-Time Assignments in the GUI A finer control is available to the user at project run-time. Just before you commit a project to run, the queue definitions are loaded and the nodes are assigned as per the queue tool definitions. However, you can manually alter the assignment of nodes to any queue. A simple cut-and-paste interface is available (see Figure 76 on page 128). Extended Scheduler Log The Sentaurus Workbench Scheduler can generate detailed log information, which could be helpful for debugging scheduling-related problems. This additional information is accumulated in the project log file (glog.txt) and in the node-related job files (n<nkey>_<acr>.job). The environment variables that control the volume of data logged are: 184 GSUB_ADVANCED_LOG 1: Switches on the advanced log feature. 0 or undefined: The feature is switched off. GSUB_ADVANCED_LOG_DMW 1: Provides additional log for jobs submitted over DMW. 0 or undefined: Does not provide additional log for jobs submitted over DMW. GSUB_ADVANCED_LOG_LOCAL 1: Provides additional log for locally submitted jobs. 0 or undefined: Does not provide additional log for locally submitted jobs. Sentaurus™ Workbench User Guide I-2013.12 11: Schedulers Extended Scheduler Log GSUB_ADVANCED_LOG_LSF 1: Provides additional log for jobs submitted over LSF. 0 or undefined: Does not provide additional log for jobs submitted over LSF. GSUB_ADVANCED_LOG_SGE 1: Provides additional log for jobs submitted over SGE. 0 or undefined: Does not provide additional log for jobs submitted over SGE. By default, the advanced log feature is switched off. NOTE The advanced log feature should be used cautiously, since large amounts of data are added to project-related files. To reduce unnecessary data, the environment variables GSUB_ADVANCED_LOG_DMW, GSUB_ADVANCED_LOG_LOCAL, GSUB_ADVANCED_LOG_LSF, and GSUB_ADVANCED_LOG_SGE may be helpful. Sentaurus™ Workbench User Guide I-2013.12 185 11: Schedulers Extended Scheduler Log 186 Sentaurus™ Workbench User Guide I-2013.12 APPENDIX A Preprocessor and Reference Syntax This appendix discusses the syntax of @-references and preprocessor commands. @-References and Tree Navigation The syntax of @-references in EBNF notation is: reference: simple_reference [ operator [operator] ] simple_reference: ("node" | "previous" | file_type ["/i"] | ["/o"] | "experiment" | "experiments" | "process_name" | "swb_parameter" | parameter_name | variable_name) operator: (":"|"|") (["+"|"-"] number | tool_label | "first" | "last" | "index" | "all" | "min" | "max") where: file_type One of the file types defined in the tool database. /i and /o Extensions to file_type refer to the corresponding input and output files of the current tool. Without extensions, an implicit input file generated by a preceding tool is searched further up the tree. parameter_name One of the declared parameters. variable_name One of the known variables. tool_label The label of a tool instance in the simulation flow; the corresponding tool is defined in the tool database of Sentaurus Workbench. experiment Returns the first experiment to which a node belongs. experiments Returns all experiments to which a node belongs. process_name Returns the process name to which the current node belongs. swb_parameter Returns the parameter name of the current node. Sentaurus™ Workbench User Guide I-2013.12 187 A: Preprocessor and Reference Syntax @-References and Tree Navigation The following relative direction suffixes can be used (depending on the flow orientation): | Horizontal flow orientation: horizontal navigation operator. Vertical flow orientation: vertical navigation operator. : Horizontal flow orientation: vertical navigation operator. Vertical flow orientation: horizontal navigation operator. +number Horizontal flow orientation: relative reference in right horizontal or downward vertical direction. Vertical flow orientation: relative reference in downward vertical or right horizontal direction. -number Horizontal flow orientation: relative reference in left horizontal or upward vertical direction. Vertical flow orientation: relative reference in upward vertical or left horizontal direction. number Horizontal flow orientation: absolute index reference in right horizontal or downward vertical direction. Vertical flow orientation: absolute index reference in downward vertical or right horizontal direction. Vertical and horizontal navigation operators can be combined. Horizontal Flow Orientation In the vertical direction, a unit represents an entire simulation phase. Intermediate nodes (virtual nodes or split points) are not taken into account. For horizontal operators, the following additional keywords can be used instead of numbers: 188 "all" Returns a list of all references at the indicated horizontal level. "first" Returns the first, leftmost reference at the indicated level. "last" Returns the last, rightmost reference at the indicated level. "index" Returns the horizontal index of the node at the respective level instead of the node number, with 1 being the index of the leftmost node. "min" Returns the index of the leftmost node at the respective level (always 1). "max" Returns the index of the rightmost node at the respective level. Sentaurus™ Workbench User Guide I-2013.12 A: Preprocessor and Reference Syntax @-References and Tree Navigation With a vertical operator, you also can use the tool instance label (tool_label) as an absolute position indicator. The reference evaluates to: ■ A horizontal node index if index, min, or max is used as the horizontal operator. ■ A parameter value if parameter_name is used as the reference. ■ A file name if file_type is used as the reference. ■ A tool label if tool_label is used as the reference. ■ A node key if node or previous is used as the reference. If several values result from the reference, a space-separated list is returned. Examples are: @node@ The current node key (the key of the output node of the current tool instance). @node:all@ A list of all node keys at the current tree level, that is, at the level of the current tool output nodes. @node:2@ The node key of the second node at the current tree level. @node:+2@ The node key two positions below the current node (in the same column). @node:-1@ The node key immediately above the current node (in the same column). @node:first@ The uppermost node key at the current tree level (column). @node|-1:all@ All nodes on the previous level (column). @node|+3@ The node keys at the third generation of siblings of the current node (virtual nodes are ignored), three real levels to the right. @node:index@ The index of the current node. @node:min@ The first index at the current tree level (always 1). @file_type@ Output file of the first preceding matching tool. @file_type:all@ A list of all file names of type file_type produced by the tool at the current tree level. @file_type:3@ The file name of type file_type of the third tool instance at the current tree level. @file_type:+1@ The file of type file_type at the node below the current node (in the same column). Sentaurus™ Workbench User Guide I-2013.12 189 A: Preprocessor and Reference Syntax @-References and Tree Navigation @file_type:last@ The rightmost file of type file_type at the current level. @file_type/i@ Input file of type file_type of the current tool (by default tool_acronym.file_ acronym, for example, des.grd). @file_type/o@ Output file of type file_type of the current tool if defined as an output file. @file_type/o|-1@ Output file of type file_type of the previous tool if defined as an output file. @node:max@ The last index at the current tree level, the number of nodes at the current level. @tool_label@ The label of the tool at the current node. @tool_label|all@ A list of labels of tools appearing in the simulation flow. @tool_label|1@ The label of the first tool in the simulation flow, the tool at absolute level 1. @tool_label|+1@ The label of the following tool. @tool_label|-1@ The label of the previous tool. @tool_label|first@ The label of the first tool in the simulation flow. @tool_label|last@ The label of the last tool in the simulation flow. Vertical Flow Orientation In the horizontal direction, a unit represents an entire simulation phase. Intermediate nodes (virtual nodes or split points) are not taken into account. For vertical operators, the following additional keywords can be used instead of numbers: 190 "all" Returns a list of all references at the indicated vertical level. "first" Returns the first, upward reference at the indicated level. "last" Returns the last, downward reference at the indicated level. "index" Returns the vertical index of the node at the respective level instead of the node number, with 1 being the index of the upward node. "min" Returns the index of the upward node at the respective level (always 1). "max" Returns the index of the downward node at the respective level. Sentaurus™ Workbench User Guide I-2013.12 A: Preprocessor and Reference Syntax @-References and Tree Navigation With a horizontal operator, you also can use the tool instance label (tool_label) as an absolute position indicator. The reference evaluates to: ■ A vertical node index if index, min, or max is used as the vertical operator. ■ A parameter value if parameter_name is used as the reference. ■ A file name if file_type is used as the reference. ■ A tool label if tool_label is used as the reference. ■ A node key if node or previous is used as the reference. If several values result from the reference, a space-separated list is returned. Examples are: @node@ The current node key (the key of the output node of the current tool instance). @node:all@ A list of all node keys at the current tree level, that is, at the level of the current tool output nodes. @node:2@ The node key of the second node at the current tree level. @node:+2@ The node key two positions to the right of the current node (in the same row). @node:-1@ The node key immediately to the left of the current node (in the same row). @node:first@ The leftmost node key at the current tree level (row). @node|-1:all@ All nodes on the previous level (row). @node|+3@ The node keys at the third generation of siblings of the current node (virtual nodes are ignored), three real levels to the bottom. @node:index@ The index of the current node. @node:min@ The first index at the current tree level (always 1). @file_type@ Output file of the first preceding matching tool. @file_type:all@ A list of all file names of type file_type produced by the tool at the current tree level. @file_type:3@ The file name of type file_type of the third tool instance at the current tree level. @file_type:+1@ The file of type file_type at the node to the right of the current node (in the same row). Sentaurus™ Workbench User Guide I-2013.12 191 A: Preprocessor and Reference Syntax #-Commands @file_type:last@ The downward file of type file_type at the current level. @file_type/i@ Input file of type file_type of the current tool (by default tool_acronym.file_ acronym, for example, des.grd). @file_type/o@ Output file of type file_type of the current tool if defined as an output file. @file_type/o|-1@ Output file of type file_type of the previous tool if defined as an output file. @node:max@ The last index at the current tree level, the number of nodes at the current level. @tool_label@ The label of the tool at the current node. @tool_label|all@ A list of labels of tools appearing in the simulation flow. @tool_label|1@ The label of the first tool in the simulation flow, the tool at absolute level 1. @tool_label|+1@ The label of the following tool. @tool_label|-1@ The label of the previous tool. @tool_label|first@ The label of the first tool in the simulation flow. @tool_label|last@ The label of the last tool in the simulation flow. An additional reference that returns the current directory can be used without suffixes only: @pwd@ Absolute path of project. @pwd@/@file_type@ File reference with absolute path. #-Commands Any preprocessor command starts with an #-sign as the first character on a line. White space (space or tab characters) are allowed after the initial # for indentation. spp recognizes the following commands: #<string> 192 This is a comment. spp strips all comment lines from the preprocessed file and replaces them with empty lines. <string> is any string not listed here as a preprocessor command. Sentaurus™ Workbench User Guide I-2013.12 A: Preprocessor and Reference Syntax #-Commands #define <name> <string> This defines the new macro <name>. spp replaces subsequent instances of <name> with <string>. #setdep <list of nodes> Explicitly sets dependencies of these nodes. #remdep <list of nodes> Explicitly removes dependencies from these nodes. #include "<filename>" Includes the contents of file name at this point. spp processes the included file as if it were part of the current file. #includeext "<filename>" This is the same as the #include command, but with advanced processing of <filename>. It allows <filename> to contain macros already defined with the #define command. #if <expression> Subsequent lines up to the matching #else, #elif, or #endif commands, appear in the output only if <expression> evaluates to nonzero. <expression> is any standard Tcl expression that evaluates to a number. Before evaluation, all @-substitutions are expanded in <expression>. #if in <gexpr> Same as the previous #if command, but evaluated to true when the current node belongs to the nodes returned by gexpr (see Node Expressions on page 103). #elif <expression> Any number of #elif commands may appear between an #if command and a matching #else or #endif command. If the expression evaluates to nonzero, subsequent #elif and #else commands are ignored up to the matching #endif. Any expression allowed in an #if command is allowed in an #elif command. The lines following the #elif command appear in the output only if all of the following conditions are met: – The expression in the preceding #if command is evaluated to zero. – The expressions in all preceding #elif commands are evaluated to zero. – The current expression evaluates to nonzero. #else Inverts the sense of the conditional command otherwise in effect. If the preceding conditional indicates that lines are to be included, lines between the #else and the matching #endif are ignored. If the preceding conditional indicates that lines would be ignored, subsequent lines are included in the output. Conditional commands and corresponding #else commands can be nested. #endif Ends an #if section. #exit Stops preprocessing at this line; the following lines are stripped. Sentaurus™ Workbench User Guide I-2013.12 193 A: Preprocessor and Reference Syntax Split Commands #verbatim <string> A line starting with #verbatim is not stripped, that is, the prefix #verbatim is removed, but the rest of the line is not touched. #rem <string> A line starting with #rem is not stripped, but @-substitutions are expanded in the rest of the line. #noexec Does not execute (submit to scheduler) the current node. #set <varname> <value> Sets the value of <varname>. Split Commands The following preprocessor commands handle split points: #header Marks the first line of the header section. The header section is copied in the beginning of each partial input file before the load command. Only one header can be defined. #endheader Last line of the header section, replaced by a blank line. #postheader A postheader is an input file section that is copied after the load command in each partial input file. This is useful to define simulator defaults, which must be reset after a load command. Any number of postheaders can be defined at any position in the original input file. They are appended after the load command in the order of their definition. Nesting or overlapping postheaders are not allowed. #endpostheader Last line of a postheader section, replaced by a blank line. #split @PNAME@ Defines a split on parameter PNAME. The input file is cut at this point into (1) a partial input file from the previous split point to the current line and (2) another partial input file from the current line to the next split point (or to the end of the file). The current line is replaced with a save command at the end of the first partial input file. The second partial input file starts with the header, followed by the simulator load command, the optional postheaders and, finally, the real partial input section. param_name denotes the tree level where the split applies. NOTE 194 Multiple split points are valid only if they appear in the same order as the corresponding parameters in the simulation flow. If that is not the case, the preprocessor takes only the best possible match, ignoring certain split points. Sentaurus™ Workbench User Guide I-2013.12 A: Preprocessor and Reference Syntax Node Expressions NOTE A partial input file (corresponding to a split section) is considered a conventional tool input file regarding forward references. A common mistake is to introduce a split point after a parameter @-reference, when the referenced parameter appears after the split parameter in the simulation flow. NOTE Every #-preprocessor command that is supposed to be unique (common) to all split files must be placed in the header section (#header ... #endheader). For example, the following three macro definitions will appear in all files produced by #split: #header ... #define macro1 string1 #define macro2 string2 #define macro3 string3 ... #endheader Otherwise, these macro definitions will be placed in the first file only and will be unknown to the other files that were created after splitting. It can result in a preprocessing error. Node Expressions The EBNF syntax of a node expression GEXPR is: gexpr : gterm [operator gterm] operator : "+" | "*" | "-" | "^" gterm : scnr["|"level][":{" filter "}"] | tool_label[":{" filter "}"] | node | "(" gterm ")" | "~" gterm node : integer scnr : "all" | identifier level : integer | "last" | tool tool : identifier filter : tcl_expr where: scnr Name of a scenario tool_label Label of a tool instance node Node number Sentaurus™ Workbench User Guide I-2013.12 195 A: Preprocessor and Reference Syntax Node Expressions 196 level Tree level, starting from 0 last Last tree level "+" The ‘or’ or ‘union’ binary operator "*" The ‘and’ or ‘intersection’ binary operator "-" The ‘difference’ binary operator "^" The ‘exclusive-or’ binary operator "~" The ‘extend-to-root’ binary operator filter Tcl expression Sentaurus™ Workbench User Guide I-2013.12 Menus of Graphical User Interface APPENDIX B This appendix lists the commands for the menus of the graphical user interface of Sentaurus Workbench. Project Menu Table 18 Project menu commands Command Button Shortcut keys Description New New Project New Folder Ctrl+N Creates a new project Creates a new folder in the projects browser Open Ctrl+O Opens a project Close Ctrl+F4 Closes currently opened project Save Ctrl+S Saves project under an existing name Save As Project Clean Project Save Selected Experiments As Project Clean Project Configuration Standard Research Sentaurus™ Workbench User Guide I-2013.12 Saves project under another name Saves project under another name but does not copy output and preprocessed files Creates a new project based on the selected experiments. The new project contains the simulation results of the selected nodes. Creates a new project based on the selected experiments. The new project does not contain the simulation results of the selected nodes. Sets up the project configuration to Standard Sets up the project configuration to Research 197 B: Menus of Graphical User Interface Project Menu Table 18 Project menu commands Command Shortcut keys Description Operations Reload Ctrl+D Reloads project Stop Loading Preprocess Preprocess Tcl Blocks Run Esc key Ctrl+P Ctrl+B Ctrl+R Stops project loading or reloading Preprocesses current project Preprocesses Tcl command blocks Runs current project Abort Clean Up Rename Unlock Ctrl+T Ctrl+L Aborts running project Shows several project cleanup options Renames project in the projects browser Unlocks project and sets it to edit mode Properties Summary Readme Documentation Logs Preprocessor Project History Ctrl+K Ctrl+Y Ctrl+J Ctrl+H Project properties: Shows project summary Opens an editor with the project readme file Opens a project documentation file greadme.pdf in Adobe Acrobat Reader Options for viewing project-related logs: Views preprocessor log Views project log Views history log Export Packages the contents of a project to a .gzp file according to user settings in the Export to Package dialog box Import Extracts a zipped or tarred file containing a project into a directory and opens it Recent Projects List of recently opened projects Exit 198 Button Ctrl+Q Exits Sentaurus Workbench Sentaurus™ Workbench User Guide I-2013.12 B: Menus of Graphical User Interface Edit Menu Edit Menu Table 19 Edit menu commands Command Button Shortcut keys Description Undo Ctrl+Z Undoes previous operation Cut Ctrl+X Cuts a selection of experiments Copy Ctrl+C Copies a selection of experiments Paste Ctrl+V Pastes a cut or copied selection of experiments Paste Special Ctrl+M Allows you to specify what to insert Delete Delete key Deletes currently selected item Attach Root Attaches a new root in the projects browser Detach Root Detaches root selected in the projects browser Tool DB Global Site Options for viewing tool database files: Global tool database Site tool database; available when SWB_SITE_SETTINGS_DIR is defined User tool database Project tool database User Project Run Limits Global Site Options for viewing run limits settings files: Global run limits settings Site run limits settings; available when SWB_SITE_SETTINGS_DIR is defined User run limits settings User User Preferences Sentaurus™ Workbench User Guide I-2013.12 F12 key Opens Preferences dialog box 199 B: Menus of Graphical User Interface Scheduler Menu Scheduler Menu Table 20 Scheduler menu commands Command 200 Button Shortcut keys Description Show Scheduler Opens Scheduler Configure Queues User Queues Project Queues User DMW Queues Project DMW Queues Edit User Queues Edit Project Queues Configures tool associations and node expressions: Configures user and project queues, using user interface View Global Queues Views the global queue settings in read-only mode View Site Queues Views the site queue settings in read-only mode; available when SWB_SITE_SETTINGS_DIR is defined Configures user and project DMW queues, also stored under user_queues, using user interface Edits user queues using standard text editor Edits project queues using standard text editor Sentaurus™ Workbench User Guide I-2013.12 B: Menus of Graphical User Interface View Menu View Menu Table 21 View menu commands Command Button Shortcut keys Description Flow Orientation Configures simulation flow orientation Flow View Mode Configures simulation flow display Customize Current View Configures project view by hiding or showing different parts of the simulation flow Tree Options Show Node Numbers Hinting Tool Labels Check Virtual Nodes F9 key Ctrl+F9 Ctrl+0 Show Merged Cells Show Tree Show Experimental Plan Show Parameters Show Variables Show Pruned Parameter Values Node Numbers Host Date Execution Time Variables Job Identifier F1 key F2 key F3 key F4 key F8 key Ctrl+1 Ctrl+2 Ctrl+3 Ctrl+4 Ctrl+5 Ctrl+6 Ctrl+7 Table Options Show Information Titles Submenu for options of viewing tree: When true, always displays node numbers When true, shows rollover text with labels of tools When true, checks the node status of virtual nodes when running When true, merges cells with nodes that have children When true, shows simulation tree When true, shows experimental plan When true, shows parameter information When true, shows variable information When true, shows pruned and orphan nodes Shows parameter values in node cells Shows node numbers in node cells Shows running host in node cells Shows running date in node cells Shows execution time in node cells Shows information about variables in node cells Shows job identifier of the node at the cluster or farm. Submenu for options of viewing simulation table: Shows the row with titles such as Family Tree and Variable Values Shows tool icons Shows tool labels Shows tool comment Shows parameter process names Show Tool Icons Show Tool Labels Show Comments Show Parameter Process Names Show Parameter and Variable Names Show Experiment Numbers Shows parameters and variables names Shows experiment numbers Zoom In Ctrl+Plus sign Zooms in to the project view Zoom Out Ctrl+Minus sign Zooms out of the project view Zoom Off Ctrl+0 Resets zoom to the default Freeze Rows/Columns Sentaurus™ Workbench User Guide I-2013.12 Freezes selected rows or columns or both from scrolling 201 B: Menus of Graphical User Interface Scenario Menu Table 21 View menu commands Command Button Shortcut keys Description Unfreeze Rows/Columns Unfreezes selected rows or columns or both Restore Default Cell Size Ctrl+7 Restores default cell size for all project nodes Restore Default View Options Ctrl+8 Restores default view options from user preferences Refresh F5 key Refreshes the tree or browser view Properties Shows the basic properties of the tree Scenario Menu Table 22 Command 202 Scenario menu commands Button Shortcut keys Description Add Adds a new scenario to the tree Delete Deletes scenarios from the tree Next Alt+ → Shows next scenario in the tree Previous Alt+ ← Shows previous scenario in the tree Lock Locks all nodes of current scenario from preprocessing Unlock Unlocks all nodes of current scenario for preprocessing Preprocess Preprocesses current scenario Unfold All Unfolds all folded nodes of the current scenario Sentaurus™ Workbench User Guide I-2013.12 B: Menus of Graphical User Interface Tool Menu Tool Menu Table 23 Tool menu commands Command Button Shortcut keys Description Add Insert key Adds a new tool, parameter, experiment, or variable to the tree Delete Delete key Deletes selected tool, parameter, experiment, or variable from the tree Properties Shows basic properties of selected tool Edit Input Opens submenu for editing input files of selected tool Synchronize with Flow Obtains parameter and process names from a Ligament input flow and inserts them into the Sentaurus Workbench project; command appears only for process tools that use Ligament Create Process Output Links Allows creation of symbolic links to TDR output files; command appears only for process tools Preprocess Preprocesses all nodes belonging to the selected tools Hide Hides selected tools Show Shows a hidden tool Lock Locks selected tool with all its nodes Unlock Unlocks selected tool with all its nodes Sentaurus™ Workbench User Guide I-2013.12 203 B: Menus of Graphical User Interface Parameter Menu Parameter Menu Table 24 Parameter menu commands Command 204 Button Shortcut keys Description Add Insert key Adds a parameter to the flow Delete Delete key Deletes selected parameter from the flow Properties Shows properties of selected parameter Add Values Displays dialog box to add values to the selected parameter Edit Values Displays dialog box to edit values of the selected parameter Remove Value Removes a value of the selected parameter Hide Hides selected parameters Show Shows a hidden parameter Sentaurus™ Workbench User Guide I-2013.12 B: Menus of Graphical User Interface Experiments Menu Experiments Menu Table 25 Experiments menu commands Command Button Shortcut keys Description Create Default Experiment Add New Experiment Creates a new experiment for a specified scenario; default values are used for all parameters Insert key Add Values Delete Experiments Adds a new experiment to the tree (the default values are preset to a selected experiment if there is one) Adds parameter values to all experiments (full factorial) or selected experiments Delete key Deletes selected experiments from the flow DoE DoE Wizard Taguchi Wizard Design-of-experiments options Export Text File Plot File Run Inspect Run Spreadsheet Application Submenu for exporting current project view: Exports view into a Microsoft Excel–compatible file Exports view into an Inspect-compatible file Exports view into a file and opens it with Inspect Exports view into a file and opens it with a spreadsheet application configurable in user preferences Import From File Imports experiments from a text file Properties Shows parameter values of selected experiment Sort Experiments Sorts experiments according to a defined parameter Sentaurus™ Workbench User Guide I-2013.12 205 B: Menus of Graphical User Interface Nodes Menu Nodes Menu Table 26 Nodes menu commands Command Select All By Expression By Status Inverse Of Button Shortcut keys Description Ctrl+A Extend Selection To Root Leaves Experiments Prerequisite Nodes Deselect All Submenu for extending selected nodes to: Root Leaves Experiments Prerequisite nodes Esc key Deselects all selected cells Lock Locks selected nodes from preprocessing Unlock Unlocks selected nodes from preprocessing Mark Ambiguous Marks selected nodes with a red exclamation mark Unmark Ambiguous Removes red exclamation mark from selected nodes Prune Ctrl+E Prunes selected nodes Unprune Ctrl+U Unprunes selected nodes Set Variable Value Sets a variable value for the selected node; creates a variable if it does not exists Modify Multiple Parameter Values Sets parameter values on multiple nodes at the same time Edit Values in a Cell 206 Nodes selection submenu: Selects all nodes Selects nodes according to an expression Submenu for selecting nodes by their status Submenu for selecting nodes by the inverse of their status or their current selection F6 key Switches selected node cell to edit mode to allow modifying the value Visualize Visualizes output files for selected nodes Quick Visualize Quickly visualizes output files for selected nodes with the default visualizer View Output Ctrl+W Views standard output and error files of selected nodes Node Explorer F7 key Displays the Node Explorer Clean Up Node Output Delete key Shows cleanup options for selected node Sentaurus™ Workbench User Guide I-2013.12 B: Menus of Graphical User Interface Variables Menu Table 26 Nodes menu commands Command Button Shortcut keys Description Preprocess Nodes Shows properties of a single selected node or allows user to change status of selected nodes Run Ctrl+R Quick Run Runs selected nodes Runs selected nodes in a selected queue immediately Abort Ctrl+T Aborts running of selected nodes Properties Shows properties of a single selected node or allows user to change status of selected nodes Tool DB Info Shows input and output file names of selected nodes according to the tool database Fold Folds selected nodes. Nodes that do not have child nodes are not folded. Unfold Unfolds selected nodes. If a node is not folded, this operation unfolds the nearest preceding folded node (if any). Variables Menu Table 27 Variables menu commands Command Button Shortcut keys Description Add Insert key Adds a new variable to the project Delete Delete key Deletes selected variables from the project Properties Shows default formula of selected variable Format Displays a dialog box with formatting options for selected variable Automatically Update Variables When true, automatically updates variables view when running Update Variables Updates variables view if variables file (gvars.dat) has changed on disk Hide Hides selected variables Show Shows a hidden variable Sentaurus™ Workbench User Guide I-2013.12 207 B: Menus of Graphical User Interface Optimization Menu Optimization Menu NOTE Table 28 This menu is shown only in Sentaurus Workbench Advanced mode. Optimization menu commands Command Button Shortcut keys Description Edit Input Opens an editor with Optimizer input file Run Runs Optimizer View Log Views Optimizer log file View Optimization Plot Views optimization plot using Inspect RSM Visualization Displays RSM Visualization dialog box Optimization GUI Displays graphical user interface to create the optimization command file Calibration Menu NOTE Table 29 This menu is shown only in Sentaurus Workbench Advanced mode. Calibration menu commands Command 208 Button Shortcut keys Description Project Wizard See the Calibration Kit User Guide Scenario Wizard See the Calibration Kit User Guide Process Wizard See the Calibration Kit User Guide Parameter Wizard See the Calibration Kit User Guide Optimization Wizard See the Calibration Kit User Guide Sentaurus™ Workbench User Guide I-2013.12 B: Menus of Graphical User Interface PCM Studio Menu PCM Studio Menu NOTE Table 30 This menu is shown only when a license for Sentaurus PCM Studio is available. PCM Studio menu commands Command Button Shortcut keys Description Export Current Scenario Exports the current scenario to a temporary CSV file, then starts Sentaurus PCM Studio with this file Save Current Scenario to CSV Files Exports the current scenario to a CSV file <scenario_name>.csv and stores it in the project directory Configure Export Displays dialog box to configure exporting to a CSV file Sentaurus™ Workbench User Guide I-2013.12 209 B: Menus of Graphical User Interface Extensions Menu Extensions Menu Table 31 Extensions menu commands Command File Browser 210 Button Shortcut keys Description F11 key Browses directory files of project Command Prompt Here Opens a command prompt in the selected project New Script Creates and opens a new file for a Tcl script Run Script Runs a Tcl script Edit Script Edits a file containing a Tcl script Run Sentaurus Structure Editor Launches Sentaurus Structure Editor Run Sentaurus Process Launches Sentaurus Process Run Sentaurus Visual Launches Sentaurus Visual Run Inspect Launches Inspect Run Tecplot SV Launches Tecplot SV Run Merger Launches Merger Preprocess and Run Selected Inspect Nodes Together Preprocesses selected nodes, merges their input command files into one file, and runs the merged file in Inspect locally Run Selected Inspect Nodes Together Merges input command files (if any) into one file, runs the merged file in Inspect locally. Nodes are not preprocessed. Compare Command Files of Selected Nodes Runs a file comparison application (tkdiff by default) to compare input command files of selected nodes Sentaurus™ Workbench User Guide I-2013.12 B: Menus of Graphical User Interface Help Menu Help Menu Table 32 Help menu commands Command Button About Shortcut keys Description Ctrl+B Provides version information Manuals Opens a front page to the technical documentation (PDF) in Acrobat Reader Training Opens TCAD Sentaurus Tutorial (HTML training material) in a Web browser FTP Application Notes Opens front page to additional projects in a Web browser Keyboard Navigation Keys Table 33 Keyboard navigation keys Key Description Tab Moves between the projects browser and project viewer panel Sentaurus™ Workbench User Guide I-2013.12 211 B: Menus of Graphical User Interface Keyboard Navigation Keys 212 Sentaurus™ Workbench User Guide I-2013.12 APPENDIX C Sentaurus Workbench Files This appendix lists the different files relevant to Sentaurus Workbench. Project Files The project files that are specific to Sentaurus Workbench are: gtree.dat Contains the simulation tree. gvars.dat Contains all variables of a project. gtooldb.tcl The tool database of a project. glog.txt Contains the project log data. greadme.txt The readme file of a project. greadme.pdf The documentation file of a project. preprocessor.log Contains preprocessor log data. gexec.cmd Jobs execution graph. gopt.cmd Optimizer input file. gopt.log Optimizer log file. gqueues.dat Queues configuration file. gsummary.txt Summary of a project. gcomments.dat Contains comments for project tool steps. Sentaurus™ Workbench User Guide I-2013.12 213 C: Sentaurus Workbench Files Hidden Files Hidden Files The following hidden files are not necessarily visible in the directory listings of the project: .project An empty file indicating that the current directory is a project directory. .status Project status. .history The events history of a project (including preprocessing, runs, cleanup, and so on). .database Database of project view settings. User Configuration Files All these files are in the env(STDB) directory: gqueues_<user>.dat Queues configuration file. tooldb_<user> The tool database of the user. runlimits_<user>.xml Run limits settings of the user. gpref2_<user>.<release> User preferences file. There is one user preferences file for each feature release of TCAD Sentaurus. Service pack releases use the user preferences files of their base feature release. For example, the file gpref2_jsmith.I-2013.12 would be used by Sentaurus Workbench Versions I-2013.12, I-2013.12-SP1, and I-2013.12-SP2. Global Configuration Files These files are in the following directories: ■ $STROOT/queues; $STROOT/tcad/$STRELEASE/lib/glib2: HostDB Host definition file for DMW. gqueues.dat Queues configuration file. 214 Sentaurus™ Workbench User Guide I-2013.12 C: Sentaurus Workbench Files Site Configuration Files ■ $STROOT/tcad/$STRELEASE/lib/glib2: tooldb.tcl Global tool database. runlimits.xml Global run limits settings. Site Configuration Files These files are in the following directories: ■ SWB_SITE_SETTINGS_DIR: HostDB Host definition file for DMW. gqueues.dat Queues configuration file. tooldb.tcl Site tool database. runlimits.xml Site run limits settings. Typical Input and Output Files These are some typical file patterns seen in projects. The actual file names depend on the definitions of the tool database: <tool_label>_<tool_acronym>.cmd Input file template: the command file of a tool. <tool_label>_lig.cmd Ligament command file. <tool_label>_<tool_acronym>.* The other input files of a tool that are configurable in the tool database. pp<node_number>_<tool_acronym>.* Node input files created by preprocessing. n<node_number>_<tool_acronym>.* Node output files. Sentaurus™ Workbench User Guide I-2013.12 215 C: Sentaurus Workbench Files Typical Input and Output Files 216 Sentaurus™ Workbench User Guide I-2013.12 APPENDIX D DMW Scheduler: Frequently Asked Questions This appendix presents frequently asked questions regarding the DMW Scheduler. Limitations of Sentaurus Workbench Sentaurus Workbench does not permit the use of HostDB settings on the user and project level. However, you can use the site-level HostDB settings and create your own HostDB file, which overrides the global HostDB settings. To do this, set up the environment variable SWB_SITE_SETTINGS_DIR, which refers to the directory with your HostDB file or to the gqueues.dat file or both. Requirements for Using DMW in a Network The following requirements must be met to use DMW in a network environment: ■ ■ ■ On UNIX, DMW works on several UNIX flavors. Shared file system: DMW requires the Network File System (NFS). All the directories are expected to be the same throughout the network. DMW does not copy files across the network. The following environment variables are exported by DMW across the job execution machine, while executing the jobs: STROOT STRELEASE STROOT_LIB STDB DATEX LM_LICENSE_FILE ■ The time on the different network computers must be synchronized because Sentaurus Workbench uses file creation times for updating the project status. Although Sentaurus Workbench can compensate for some variation, different times on the machines can lead to problems with the scheduling process. Sentaurus™ Workbench User Guide I-2013.12 217 D: DMW Scheduler: Frequently Asked Questions Global Queue and Global Host Database Files Global Queue and Global Host Database Files The global queue is the gqueues.dat file, which must be set up by the systems administrator. The gqueues.dat file is read from either the release-independent directory $STROOT/ queues, or the release-specific directories $STROOT/tcad/$STRELEASE/lib/glib2 or $STROOT/tcad/$STRELEASE/lib/. The HostDB is the file that contains the list of computational hosts. The HostDB file is read from either the release-independent directory $STROOT/queues, or the release-specific directories $STROOT/tcad/$STRELEASE/lib/glib2 or $STROOT/tcad/$STRELEASE/ lib/. The HostDB setup is similar to earlier versions of Sentaurus Workbench. The gqueues.dat file specifies the queue arrangements and queue configurations. The HostDB specifies the resource index and the number of jobs for hosts. The resource constraints of the hosts specified in the gqueues.dat file are specified in the HostDB. Essentially, gqueues.dat is a file of Sentaurus Workbench whereas the HostDB file is read by DMW at run-time. Site Queue and Site Host Database Files The site queue and site host database files gqueues.dat and HostDB, respectively, can be defined for users of the same site or group. These files are read from the directory SWB_SITE_SETTINGS_DIR. Administrator: Setting Up DMW Queues The systems administrator sets up the DMW queues in the following way: 1. Collect all computational hosts, for example, redhat1, redhat2, tcadamd1, tcadamd2. 2. Collect information about the hosts, such as the number of jobs that the host can run and performance index. 3. Load the information about the hosts into the HostDB file. 218 Sentaurus™ Workbench User Guide I-2013.12 D: DMW Scheduler: Frequently Asked Questions User: Setting Up User Queues and Project Queues 4. Sort the hosts based on requirements. For example, the collection of hosts can be sorted based on platform such as: queue dmw:amd "tcadamd1 tcadamd2" queue dmw:linux "redhat1 redhat2" 5. Write the information to the gqueues.dat file. NOTE It is recommended that the systems administrator sets up a queue called dmw:all, which includes all hosts in the HostDB. NOTE A host can be specified in as many queues as required. The hosts used under the gqueues.dat file must match the HostDB and vice versa. User: Setting Up User Queues and Project Queues The user queue definitions file is located at STDB/gqueues_username.dat and the project queue definitions file is located inside the project directory as gqueues.dat. You cannot use the queue keyword in the user queue and project queue files. This means that you cannot set up the queues. You have permission to assign the tools to specific queues. To assign a specific tool to a particular queue, type: tool sprocess "" dmw:normal The above definition will run all nodes associated with the tool Sentaurus Process on the hosts specified by the queue dmw:normal. The keyword default can be used to specify all the tools, that is, the assignment: tool default "tcadamd1 tcadamd2" dmw:all means all tools will be run in the dmw:all queue with the subset of hosts provided in the options field. NOTE Always include the following header in the queue configuration files: isequeues: <identifier string> Sentaurus™ Workbench User Guide I-2013.12 219 D: DMW Scheduler: Frequently Asked Questions User: Excluding a Specific Host and Running on a Specific Set of Hosts User: Excluding a Specific Host and Running on a Specific Set of Hosts The option string is the location to add or remove hosts from a specific queue. For example, assume the following lines are in the global queue file: isequeues: generic queues queue dmw:normal "tcadamd1 tcadamd2" queue dmw:linux "redhat1 redhat2" queue dmw:all "tcadamd1 tcadamd2 redhat1 redhat2" If you need to remove the host tcadamd1 from the dmw:normal queue for all of your projects, you can define this in the user queue file as: tool default "tcadamd2" dmw:normal This excludes the host tcadamd1 from execution and also restricts the host list to a specific subset of hosts. Checking the DMWUmpire First, check the HostDB, which is located at STROOT/tcad/STRELEASE/lib/ or STROOT/ tcad/STRELEASE/lib/glib2. The master controller – DMWUmpire – is started in the first host in the HostDB. To check the DMWUmpire, it is first necessary to establish a connection. For example, assume the first host in the HostDB is tcadamd1. To connect to the DMWUmpire, secure the credentials of the DMWUmpire: 1. Execute the command: % rsh tcadamd1 DMWUmpire M [xxx] A B The reply indicates the M [Protocol Number] port_number cookie. 2. Connect to the DMWUmpire, using: % telnet tcadamd1 A where A is the port number returned in the previous command. 220 Sentaurus™ Workbench User Guide I-2013.12 D: DMW Scheduler: Frequently Asked Questions Checking the DMWUmpire 3. Type: E B [B is the second number, with cookie] M [xxxxx] F G When a response is obtained, a connection to the DMWUmpire has been established. 4. The above commands can now be typed at the Telnet connection and responses can be obtained. For example, typing D will list the available hosts and the current status of the host. Typing S will shut down the DMWUmpire. The following commands and responses are possible with DMWUmpire: Queries: 'E' cookie nl -- Establish credentials (must be first request) 'J' jobs nl -- Confess to prior jobs 'N' nl -- No Op, just confirm (with 'O') 'H' IP/name [weight [#]]nl-- Host declaration (Reply 'D'/'I') 'D' nl -- Dump list of hosts 'C' nl -- Dump list of clients 'T' nl -- Toggle logging 'I' 0101010101... nl -- Interesting hosts 'W' nl -- Want a host (Reply 'G'/'D') 'R' ID nl -- Release host (Reply 'D'/'O') 'S' nl -- Shut down umpire 'L' nl -- Load Limit on the Umpire (default is 0.9) 'Q' nl -- Quit Replies: 'M' protocol port cookie nl -- Protocol version, Master port & random password cookie 'O' nl -- Still alive 'I' ID nl -- Host ID 'G' ID nl -- Grant host for launching a process 'D' nl -- Denied request 'H' nl -- Hasta la vista -- connection closed Sentaurus™ Workbench User Guide I-2013.12 221 D: DMW Scheduler: Frequently Asked Questions Standard Tests to Troubleshoot a Particular Machine in the DMW Network Standard Tests to Troubleshoot a Particular Machine in the DMW Network Assume that machine A does not work on the DMW network. To troubleshoot this problem, the following tests must be performed on machine A: 1. Ensure that rsh A works without asking for a password. 2. Ensure rsh is silent, for example: % rsh A echo coucou coucou 3. Run DMWTest: % DMWTest A Checking DMWMole@A [XX.XX.XX.XXX] connecting..... -> OK (DMWMole version [_number_]) getting machine info.. -> R 2.38 32864 2 OVERWORKED: load average > 0.9 per processor 4. Run the DMWMole test: % rsh A DMWMole -test Load averages: 2.42, 2.37, 2.42 Memory: 2097152K real, 31456K free 5. Log on to the first host in the HostDB file. This is where the DMWUmpire resides. 6. From this machine, repeat Steps 1–4. If the problem is not obvious at this stage: 1. Modify the HostDB file and replace the first host name with machine A. 2. Start a job and view the log. If the problem persists, log on to the DMWUmpire and shut it down (see Checking the DMWUmpire on page 220). 222 Sentaurus™ Workbench User Guide I-2013.12 D: DMW Scheduler: Frequently Asked Questions Using ssh and DMW Scheduler Together Using ssh and DMW Scheduler Together It is generally advisable not to use systems other than rsh for a successful operation of DMW. In cases where ssh is the only means of communication, the following procedure must be adhered to: ■ ssh must be silent and no password must be requested, that is: % ssh A echo test test DMW does not work across domains even with ssh. ■ If the above conditions are met, in addition to the requirements previously mentioned, to use ssh, set up the following environment variable to point to the location of ssh: DMW_RSH_PATH = /my_path/ssh NOTE /my_path/ssh must be the same in all machines; otherwise, the log- on scripts must be configured appropriately to reflect the changes. NOTE It is not always guaranteed that ssh will work efficiently because of inherent differences between rsh and ssh. Sentaurus™ Workbench User Guide I-2013.12 223 D: DMW Scheduler: Frequently Asked Questions Using ssh and DMW Scheduler Together 224 Sentaurus™ Workbench User Guide I-2013.12 APPENDIX E Sentaurus Workbench on VNC This appendix discusses known problems of running Sentaurus Workbench on VNC clients. Double-clicking Does Not Work On some VNC clients, double-clicking a node, parameter, tool, or variable may not work as expected. For example, if the action of double-clicking a tool is bound to editing the tool input file in the user preferences, the expected text editor does not open after double-clicking. Figure 87 TightVNC connection options In particular, this problem appears on the TightVNC client where the double-clicking action is prevented by the default mouse settings on the TightVNC client. Specifically, on the Connection Options dialog box (see Figure 87), the Emulate 3 buttons (with 2-button click) Sentaurus™ Workbench User Guide I-2013.12 225 E: Sentaurus Workbench on VNC Double-clicking Does Not Work option is selected by default, which results in incorrect double-clicking action in Sentaurus Workbench. This option must be cleared. This problem has not been observed on other VNC clients, in particular, RealVNC. 226 Sentaurus™ Workbench User Guide I-2013.12