Manual: Difference between revisions
(129 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
= Introduction: What is FLOODS/FLOOPS? = | |||
FLOOXS is a Technology Computer Aided Design ([http://en.wikipedia.org/wiki/Technology_CAD TCAD]) tool used for [http://en.wikipedia.org/wiki/Semiconductor_process_simulation semiconductor process modeling] and [http://en.wikipedia.org/wiki/Semiconductor_device_modeling semiconductor device modeling] that will descretize and solve a set of [http://en.wikipedia.org/wiki/Partial_differential_equation partial] and [http://en.wikipedia.org/wiki/Ordinary_differential_equation ordinary differential equations] on a 1, 2 or 3D mesh using [http://en.wikipedia.org/wiki/Numerical_analysis numerical methods] such as the Finite Element Method ([http://en.wikipedia.org/wiki/Finite_element_method FEM]) and the Finite Volume Method ([http://en.wikipedia.org/wiki/Finite_volume_method FVM]). FLOOXS is built in [http://en.wikipedia.org/wiki/C%2B%2B c++], and uses several well-known math packages such as [http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS], [http://dietandlossweight.com/wiki/LAPACK LAPACK], and [http://en.wikipedia.org/wiki/Portable,_Extensible_Toolkit_for_Scientific_Computation PETSC] to handle the linear algebra. The user-interface is command-line [http://en.wikipedia.org/wiki/Tcl tcl] (tool control language), a scripting language, with additional FLOOXS-specific [[Alagator Language Description | Alagator]] commands added in. | |||
= | ==Developers and History== | ||
*[[Developers and Contributors]] | |||
*[[History]] | |||
==Code Description== | |||
* [[What is Under the Hood - Detailed]] - A detailed description of how the c++ code is organized, how the finite element methods is implemented, what physics currently exist and how to add more. | |||
== Installation == | |||
* [[Installation from Debian package]] | |||
* [[Installation on Mac OSX Mojave to Big Sur]] | |||
* [[Installation on Mac OSX not Lion yet]] - notes from v 4.1 ... | |||
* [[Installation on Ubuntu 10.10]] - Notes from a 64-bit Ubuntu 10.10 (Maverick Meerkat) current version FLOOXS installation with both Intel and AMD processors on 11/05/2010. | |||
* [[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. | |||
* [[Installation on Windows Linux Subsystem]] - Notes from Ubuntu 18.04 Subsystem on Windows 64-bit. | |||
* Ubuntu 18.04 - See [[Installation on Windows Linux Subsystem]], same instructions from "get flooxs" on | |||
* [[Installation on CentOS 7]] - Includes instructions for build as well as a build script | |||
* [[Build Triangle]] - optional alternative to gmsh | |||
[[:Media:PortNotes.pdf|Porting Notes]] from a 2016 port of the 2008 version. Thanks to Rex Lowther for sharing! | |||
= Running FLOOXS = | |||
* [[ | == Executing FLOOXS == | ||
* [[Startup Script]] - set environment variables and alias paths (running FLOOXS for the first time) | |||
==Overview and Basic Concepts== | |||
* [[Tcl]] - Tool Control Language is the main scripting language used to control local variables (set), do simple calculations (expr), define procedures (functions or routines), and accomplish basic read/write file operations (file). It sits on top of c++. | |||
* [[Conventions]] - how parameters work | |||
* [[Alagator]] - Alagator is the scripting language created specifically for FLOOXS to describe the differential equations used in process and device simulation. It sits on top of tcl. | |||
*[[Units in FLOOXS]] | |||
* [[Support Scripts]] - Built in tcl procedures that support simulation. | |||
==Examples and Tutorials== | |||
* [[ | * [[Workflow]] | ||
* [[ | * [[Process Tutorial]] - floops | ||
* [[ | * [[Device Tutorial]] - floods | ||
* [[Coupled Device and Process Tutorial]] | |||
If you've never used FLOOXS before, start here. Work through these examples and exercises to learn the basics of FLOOXS. The example decks here contain line-by-line explanations, and are organized in such a way as to introduce important concepts in increasing complexity. Full unannotated examples are in the [[Main_Page#Full_FLOOXS_Examples | full examples]] section. | |||
= | == Full FLOOXS Examples== | ||
These are full working decks that can be used as templates. If you would like line-by-line explanation of these examples, see the [[Main_Page#Tutorial | tutorial]] section of this manual. | |||
* [[ | * [[Device Examples]] - full floods decks | ||
* [[Process Examples]] - Homework Problems | |||
* [[Complex Examples]] - Complex Examples for device and process | |||
* [[AlGaN/GaN HEMT]] - reliability simulation results | |||
== Troubleshooting == | |||
Convergence: | Convergence: | ||
Having problems with solution convergence? If so, refer to this [[Convergence|convergence FAQ page]]. | Having problems with solution convergence? If so, refer to this [[Convergence|convergence FAQ page]]. | ||
= Command Reference Library = | = Command Reference Library = | ||
Line 66: | Line 60: | ||
[[Command Reference Library]] | [[Command Reference Library]] | ||
Latest revision as of 19:50, 29 June 2023
Introduction: What is FLOODS/FLOOPS?
FLOOXS is a Technology Computer Aided Design (TCAD) tool used for semiconductor process modeling and semiconductor device modeling that will descretize and solve a set of partial and ordinary differential equations on a 1, 2 or 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.
Developers and History
Code Description
- What is Under the Hood - Detailed - A detailed description of how the c++ code is organized, how the finite element methods is implemented, what physics currently exist and how to add more.
Installation
- Installation from Debian package
- Installation on Mac OSX Mojave to Big Sur
- Installation on Mac OSX not Lion yet - notes from v 4.1 ...
- Installation on Ubuntu 10.10 - Notes from a 64-bit Ubuntu 10.10 (Maverick Meerkat) current version FLOOXS installation with both Intel and AMD processors on 11/05/2010.
- 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.
- Installation on Windows Linux Subsystem - Notes from Ubuntu 18.04 Subsystem on Windows 64-bit.
- Ubuntu 18.04 - See Installation on Windows Linux Subsystem, same instructions from "get flooxs" on
- Installation on CentOS 7 - Includes instructions for build as well as a build script
- Build Triangle - optional alternative to gmsh
Porting Notes from a 2016 port of the 2008 version. Thanks to Rex Lowther for sharing!
Running FLOOXS
Executing FLOOXS
- Startup Script - set environment variables and alias paths (running FLOOXS for the first time)
Overview and Basic Concepts
- Tcl - Tool Control Language is the main scripting language used to control local variables (set), do simple calculations (expr), define procedures (functions or routines), and accomplish basic read/write file operations (file). It sits on top of c++.
- Conventions - how parameters work
- Alagator - Alagator is the scripting language created specifically for FLOOXS to describe the differential equations used in process and device simulation. It sits on top of tcl.
- Units in FLOOXS
- Support Scripts - Built in tcl procedures that support simulation.
Examples and Tutorials
- Workflow
- Process Tutorial - floops
- Device Tutorial - floods
- Coupled Device and Process Tutorial
If you've never used FLOOXS before, start here. Work through these examples and exercises to learn the basics of FLOOXS. The example decks here contain line-by-line explanations, and are organized in such a way as to introduce important concepts in increasing complexity. Full unannotated examples are in the full examples section.
Full FLOOXS Examples
These are full working decks that can be used as templates. If you would like line-by-line explanation of these examples, see the tutorial section of this manual.
- Device Examples - full floods decks
- Process Examples - Homework Problems
- Complex Examples - Complex Examples for device and process
- AlGaN/GaN HEMT - reliability simulation results
Troubleshooting
Convergence: Having problems with solution convergence? If so, refer to this convergence FAQ page.
Command Reference Library
This contains a command reference, in Unix man page style for each command in the program.