Manual: Difference between revisions
Line 47: | Line 47: | ||
*[[Process Solves]] - FLOOPS | *[[Process Solves]] - FLOOPS | ||
*[[Device Solves]] - FLOODS | *[[Device Solves]] - FLOODS | ||
===5. Post Processing (print or plot results)=== | ===5. Post Processing (print or plot results)=== |
Revision as of 21:44, 23 August 2010
This is the main page for the FLOOXS (FLOOPS and FLOODS) wiki manual. The goal of this wiki is to instruct new FLOOXS users how to install FLOOXS and run simulations using the FLOOXS TCAD package; serve as a repository for working FLOOXS models; and provide a convenient place for user discussion regarding both TCAD models in general as well as the FLOOXS implementation.
Introduction
This manual is broken into several sections describing the commands that make up the FLorida Object Oriented Device and Process Simulator. FLOOXS uses the old unix wild card convention of x taking the place of either "P" or "D". The codes are built as a single executable and are configured with different sets of default variables for each purpose. New work in the Reliability MURI is aimed at combining the codes to understand device operation driven failure modes.
Commands in the manual are documented individually. It is best to start with examples that are similar to what you wish to do. These are linked to individual command descriptions for more detailed followup. The command list is also provided as a reference directly, if you are interested in more detail on the commands.
FLOODS/FLOOPS
FLOOXS is a Technology Computer Aided Design (TCAD) tool used for semiconductor process modeling and semiconductor device modeling that will discretize and solve a set of partial and ordinary differential equations differential equations on a 1 to 3D mesh using numerical methods such as the Finite Element Method (FEM) and the Finite Volume Method (FVM). FLOOXS is built in c++, and uses several well-known math packages such as BLAS, LAPACK, and PETSC to handle the linear algebra. The user-interface is command-line tcl (tool control language), a scripting language, with additional FLOOXS-specific Alagator commands added in.
Tcl - Tool Control Language
All of FLOODS/FLOOPS is built using tcl. A familiarity with tcl commands is essential for understanding how to do anything complex in FLOOPS and FLOODS. You can find many great tcl reference books and tcl command documentation is also available.
Alagator
Alagator is the scripting language that was developed as a way for FLOOXS users to easily control the physics in their simulations. This is where the real power of FLOOXS lies. These commands allow the user to easily set up a set of common process or semiconductor device equations. For example, the scripting language has multiple components that are called during execution of a diffusion command. The basic element is a description of a differential equation. The diffusion calls several procedures for a solution that allow these equations to be constructed at run time.
- Alagator Language Description, A description of the recognized keywords and symbols in building an equation.
- Callback Procedures, A description of the procedures that are looked for and called by the diffusion code.
- Alagator Tutorial, Tutorial examples that help users get started.
Support Commands
- equation, The command that allows syntax checking and resolution checking of equation strings.
- solution, Create and control generic solutions.
Installation
- Installation on Ubuntu - Notes from a 64-bit Ubuntu 9.10 (Karmic Koala) current version FLOOXS installation with both Intel and AMD processors on 3/29/2010.
- Installation on RedHat - (this version is outdated). Installation help and notes created as I did a clean install on a RedHat linux system. Your mileage may vary.
Workflow: How to create and run a FLOOXS simulation
1. Grid Generation
These are worked examples of grid generation concepts. Build 1D, 2D, and 3D structures for simulation.
- Defining a Grid - 1D, 2D, and 3D
- What is a .str file? - explanation of the format of the structure file
- Adaptive Gridding - new
2. Add Solution Variables
Includes a general discussion of declaring variables in FLOOXS, including "pde" vs. "const," and "solution" vs. "sel z=" vs. "set."
3. Add Process or Device Models
- Process Models - FLOOPS
- Device Models - FLOODS
4. Solve
- Process Solves - FLOOPS
- Device Solves - FLOODS
5. Post Processing (print or plot results)
Although not as fancy as commercial tools, there are a wide range of ways to examine output results. Examples of analysis can be found in this section.
- Selection Examples
- Printing Examples
- Plotting Examples - new short version
- Tecplot - For UF SWAMP Group / TEC users only
Troubleshooting
Convergence: Having problems with solution convergence? If so, refer to this convergence FAQ page.
Full FLOOXS Examples
These are good introductory problems for beginners. Being able to work through these will introduce most simple concepts to users.
- Device Examples
- Process Examples - Homework Problems
- Complex Examples - Complex Examples for device and process
Command Reference Library
This contains a command reference, in Unix man page style for each command in the program.
Development
- New Developments - A brief list of the new enhancements since the last release.
- Bugs - A list of current FLOOXS Bugs that need action
- "To Do" List - Needed code enhancements for specific actions: all FLOOXS users are encouraged to contribute ideas.
Copyright and Redistribution
This software and manual is copyrighted by the Mark Law, University of Florida Electrical and Computer Engineering department. It is intended for internal educational and research and development purposes only. Any use of any part of this software in any commercial package needs to be negotiated separately. Several of the implant models are copyrighted by Al Tasch from The University of Texas at Austin.
The UMFPACK package is copyrighted by Tim Davis, University of Florida, Computer and Information Sciences Department. (davis@cis.ufl.edu). Please contact Tim directly about redistribution of the UMFPACK software.
The tcl/tk package is in the public domain, and was developed by John Ousterhout at the University of California Berkeley.
Various included linear algebra packages are also public domain.
Contributors
Faculty
- Mark Law, University of Florida
Ph.D Students
- Daniel Cummings - 2010 - danieljc@ufl.edu (Device Simulation: Strained-Si, Single-Event Effects)
- David Horton - 2010 - email
- Nicole Rowsey - 2011 - nrowsey at ufl.edu (Device Simulation: Total Dose Radiation Effect in Oxides, MOS-Based Quantum Dot / Charge Qubit Devices, Multi-Gate Devices)
- Ben Gilstad - 2012 - email
- Ashish Kumar - 2013 - email
Post-Docs
- Michelle Griglione - email
- Erin Patrick - email
Intel Development Team
Martin Giles, Stephen Cea, Hal Kennel, Aaron Lilak, and Patrick Keys. Intel is feeding back bug fixes and enhancements. Steve Morris - we miss you!
Collaborators
Rex Lowther, Harris. Grid and diffusion discretizations, Cylindrical Coordinates; Mike Morris, Steve Morris, Al Tasch, University of Texas, Austin. Dual pearson implant models for boron, bf2, and arsenic; Goodwin Chin, IBM. Original ideas for hierarchical mesh; Tim Davis, University of Florida. UMF factorization code.
Recent Research Group Publications
Archive Section (Old Manual)
Getting started with Wiki
Consult the User's Guide for information on using the wiki software.