User's Reference Manual

INTRODUCTION

This manual describes SUPREM-IV.GS, a version of the process simulator SUPREM-IV extended to both GaAs and Silicon process simulation. This manual is not intended as a tutorial guide on how to use SUPREM-IV.GS, instead it is more of a reference to the commands and capabilities. The manual is divided into four sections. The first section (this section) provides an introduction and describes the conventions used in the rest of the manual. Next is a section describing the commands that are part of the interactive shell. The third section describes the commands of SUPREM-IV.GS that perform actions. The final section documents the model commands, most of which are used to set parameters. In that section the physics associated with SUPREM-IV.GS models is described and referenced. Following the manual sections are a series of SUPREM-IV.GS examples, which can be used to learn the program. The example input decks are provided on the source code tape. A new user may want to start in that section.

CONVENTIONS

This section describes the use of the manual and the conventions used to denote the parameters and choices associated with each statement. The program accepts input in a fashion similar to SUPREM-III and PISCES-II. The input is made up of a series of statements. It is important to bear in mind that the parser is case sensitive, i.e. FOO is not the same as foo.

Each statement can have parameters which are of the form:

parameter_name = value
Value is either a real number expression or a character string. There are some parameters that are booleans, which recognize true and false as special strings. If the value is left off a boolean parameter, it is set to true. The manual describes these parameters in the following form:
param = n
a numerical valued parameter
param = string
a string valued parameter
param
a boolean parameter
Choices are denoted by putting the parameters in parenthesis and separating them by vertical bars. For example, ( par1 | par2 ) states that either par1 or par2 may be specified but not both. Anything enclosed in brackets [ ] are optional parameters and aren't necessary. Almost everything in the program has some sort of default value, so almost all parameters are optional. In case of doubt, never rely on the defaults.

Floating point parameters can be specified as expressions involving numbers, numerical constants, the operators +, -, *, /, ^, and the functions listed below.

abs
absolute value
active
active portion of the specified dopant
erf
error function
erfc
complimentary error function
exp
exponential
gradx
computes the rough gradient in the x direction
grady
computes the rough gradient in the y direction
log
logarithm
log10
logarithm base 10
mat1@mat2
returns the y value of the interface between mat1 & and mat2 along a vertical slice at the given location.
scale
scales the value given by the maximum value
sqrt
square root
xfn
takes y and z and finds an x to match
yfn
takes x and z and finds an y to match
zfn
takes x and y and finds an z to match
If an expression contains spaces, it should be enclosed in parenthesis.

EXAMPLES

Par1=n
Par1 is a required numeric valued option.
Par1=( 4.0 * exp( -2.0 / (8.62e-5 * 1173.0) ) )
Par1 is a required numeric valued option, assigned a real number expression.
[ Par2=string ]
Par2 is an optional character string variable.

SEE ALSO

select for how to choose a z variable, printf for further examples of expressions.