Paramater Data Base (pdb) Commands
Paramater Data Base (pdb) Commands - commands used to control the
parameters
Synopsis
The parameter data base allows the user to configure and set various control
parameters in major sections of the code. The data base is used for the diffusion,
oxidation, and grid
sections. There is planned expansion for other sections of the code.
All of the pdb structures are implemented in tcl. FLOOPS accesses
parameters with calls back to the tcl parser to obtain values.
Consequently, many of the tcl
commands can be used to help manage the data base. Scripts can be
written to help manage packages of parameters.
The hierarchy section describes the
parameter hierarchy in detail. Parameters are stored in a tree like
data structure, with leaves being values. Parameters are nested in a
consistent way from materials to solution values.
The variables section describes the
global variables that are accessible from pdb. These can be helpful
in adding to the system. They are also critical in writing parameters
that depend on user inputs to commands, for example, temperature.
The commands describe the tcl commands and
arguments that compromise the parameter access methodes. They allow
general access to set and get operations, as well as bookkeeping
operations. Access to the context information is also available.
Description
Parameter Data Base (pdb) Hierarchy
The pdb hierarchy is defined as a tree. Each parameter access
command contains a list of keywords that define the location of the
parameter in the tree. These are ordered from top down in the
parameter list. The first level is material, and cna include
interface material names. The second level are solution variables -
boron, interstitials, clusters, flow, and oxidant. The next level
below are usually parameters themselves. Some dopants have an
additional nested level for the defect they diffuse with. Figure 1
illustrates part of the hierarchy.

The "Parameter Names" boxes are the locations in the leaves of the
tree. In these locations, the actual name value pairs are stored. For
example, the pdb hierarchy {Silicon Boron Interstitial D0} refers to
the neutral diffusivity of boron when diffusing with interstitials.
The pdb hierarchy {Oxide Flow Viscosity} refers to the low stress
viscosity of the oxide. The browser
provides an excellent way to explore the hierarchy.
The hierarchy is implemented as a file system for permanent
storage. Each level of the heirarchy is a directory until the lowest
level where files contain the variable names and values. Each level
of the hierarchy can have information tagged on it, and these values
are stored in the Info file. The Info files also contain aliases for
the names of the underlying levels.
Once read, the hierarchy is stored in tcl
using the array features of the language. The top level is stored in
the Params variable. Each of that array is a material name and the
name of an array variable that stores it values.
Parameter Data Base (pdb) Global Variables
- pdbPath
- This is the home directory of the pdb directory tree. There
should be a directory named Params in this file. The parameter
tree and support files should be found here. See the installation
directions for further instructions on how to set the default
path.
The path can also be a list. If it is a list, directories are
searched in order of the list. The first definition of a parameter
is used. This allows users (or groups of users) to set up override
parameters for local work that are different than the default
parameters found in distribution directory.
- pdbHeaderFile
- This variable is the name of a file that contains header
comments to be included in all newly created parameter files. This
must be a legal file and be present - its existance is tested for
and its absence will create error messages.
- Params
- This is the global parameter array. It has entries for all the
array names for the materials. The top level of the hierarchy is
here. For example, the tcl command "set Params(Silicon)" will
return the name of the array that the silicon parameters are
stored in.
- Global
- This variable contains the top level context information. It
is similar to Params, in that it is a tcl array variable. However,
this is where the simulator sets its variables. The first level in
this hierarchy is not material, but the process step being
performed. These parameters can be accessed with the commands that
begin with sim, which indicate that they access the simulator data
base, rather than the pdb set.
- Diffuse Context
- The diffusion context contains the parameters set by the
diffuse command. The diffuse context can be accessed with any
of the names diffuse, Diffuse, diff, and diffusion. The context
exports the following information:
- temp, tempC, tempK
- These three variables hold the current temperature. The
first two report in degrees C, and the last in degrees
Kelvin.
- press, pressure
- These atmospheric pressure.
- time
- The current simulation time in seconds.
- ambient
- This is a switch variable and can contain either dry,
wet, none, or nit.
- Etch Context, Deposit Context
- Nothing is defined for these contexts currently. In the
future, the machine commands will be integrated better into
pdb, and various variables are possible.
- Implant Context
- Nothing is defined for this context currently.
Parameter Data Base (pdb) Commands
In all cases, the attached commands use the {pdb Hierarchy} string
as a place holder for the argument list that indicates the position
of the parameter. These strings should be replaced with the correct
hierarchy. Each of the commands with the {pdb Hierarchy} takes an
adjustable number of arguments. They do not take a list and an
argument.
- Management Commands
- pdbClear
- This empties the currently stored parameters. New parameter
accesses will be forced to re-read the files. This command is
useful when testing new parameter values in the file structure
to make sure they are entered correctly.
- pdbNewMaterial NewMat LikeMat
- This command allows new materials to be created. This is
used extensively internal to the program. A new material can be
made "like" an existing one. This allows the new material to
inherit the properties of a known, defined material. New
parameters that are set for the new material override stored
parameters of the "like" material. This allows most of the
properties to be similar.
- pdbAliases Mat Aliases
- Create aliases for Mat. Aliases can be a list of equivalent
names allowed for the material. This allows shorthand names to
be created when using the pdb command set. THe aliases are
swapped automatically during expansion of the pdb
hierarchy.
- Parameter Access
- pdbSetDouble {pdb Hierarchy} Value
- Set a double precision variable in the hierarchy to Value.
The pdb Hierarchy should start with a material and work down
the tree to a leaf with type double. Value must be a term that
can be passed to the expr command and evaluate to a double
precision number.
- pdbSetBoolean {pdb Hierarchy} Value
- Set a boolean variable in the hierarchy to Value. The pdb
Hierarchy should start with a material and work down the tree
to a leaf with type boolean. Value must be a term that can be
passed to the expr command and evaluate to a boolean.
- pdbSetFile {pdb Hierarchy} Value
- Set a file variable in the hierarchy to Value. The pdb
Hierarchy should start with a material and work down the tree
to a leaf with type file. Value must be a string that
corresponds to a file.
- pdbSetSwitch {pdb Hierarchy} Value
- Set a switch variable in the hierarchy to Value. The pdb
Hierarchy should start with a material and work down the tree
to a leaf with type switch. Value must be a string that
corresponds to one of the options available in the switch. This
is a radio button style entry.
- pdbSetString {pdb Hierarchy} Value
- Set a string variable in the hierarchy to Value. The pdb
Hierarchy should start with a material and work down the tree
to a leaf with type string. Value must be a string.
- pdbIsAvailable {pdb Hierarchy}
- This returns a boolean. If the entry in the hierarchy is
defined, the function returns true.
- pdbGetDouble {pdb Hierarchy}
- Return the double precision value corresponding to the
given entry in the hierarchy.
- pdbDelayDouble {pdb Hierarchy}
- Return the double precision expression corresponding to the
given entry in the hierarchy. The expression can be evaluated
later - particularly useful for alagator
scripts.
- pdbGetBoolean {pdb Hierarchy}
- Return the boolean value corresponding to the given entry
in the hierarchy.
- pdbGetFile {pdb Hierarchy}
- Return the file name corresponding to the given entry in
the hierarchy.
- pdbGetSwitch {pdb Hierarchy}
- Return the switch value corresponding to the given entry in
the hierarchy. This is returned as an integer index into the
list of values.
- pdbGetString {pdb Hierarchy}
- Return the string corresponding to the given entry in the
hierarchy.
- Context Access
- simIsAvailable {Context Hierarchy}
- This returns a boolean if the passed Context hierarchy
exists. Context hierarchies are always two deep - the first is
the simulator context and the second is the name of the
parameter.
- simGetDouble {Context Hierarchy}
- This allows retrieval of a double precision number from the
simulation context. Context hierarchies are always two deep -
the first is the simulator context and the second is the name
of the parameter.
- simGetBoolean {Context Hierarchy}
- This allows retrieval of a boolean from the simulation
context. Context hierarchies are always two deep - the first is
the simulator context and the second is the name of the
parameter.
- simGetFile {Context Hierarchy}
- This allows retrieval of a file name from the simulation
context. Context hierarchies are always two deep - the first is
the simulator context and the second is the name of the
parameter.
- simGetSwitch {Context Hierarchy}
- This allows retrieval of a radio button option from the
simulation context. Context hierarchies are always two deep -
the first is the simulator context and the second is the name
of the parameter.
- simGetString {Context Hierarchy}
- This allows retrieval of a string from the simulation
context. Context hierarchies are always two deep - the first is
the simulator context and the second is the name of the
parameter.
Examples
- pdbGetDouble Silicon Boron Interstitial D0
- Return the current value of the boron interstitial neutral
diffusivity. This will depend on the last simulated
temperature.
- pdbSetDouble Silicon Boron D0 {[Arrhenius 1.0
3.6]}
- Set the value of the boron interstitial neutral diffusivity.
The value will depend on the temperature, using an Arrhenius
relationship.
- pdbSetDouble Oxide Grid perp.add.dist 0.02e-4
- Set the desired grid spacing in oxide to 20nm.
- pdbGetSwitch Silicon Boron DiffModel
- Return the currently set diffusion model.
Bugs and Missing Features
It would be nice if the switch statement was a little easier to
use. You can't set it with an integer, and it will return only
integers. It needs two modes.
See Also
Individual commands that use parameters, and tcl.
FLOOPS/FLOODS Home Page