next up previous contents
Next: References Up: Alamode: A LAyered MOdel Previous: Simple 1D Structure File

SUPREM Structure File Format

 

This documentation was provided by Dr. Goodwin Chin. It has not been checked for accuracy. It is know to be out of date with respect to the field and materials in SUPREM-IV.GS.

	All lines begin with a one character code.  After this character
is parsed, subsequent characters are parsed based on the
character code.  The currently used single letter codes are as 
follows:

v - Version number
	(e.g. v SUPREM-IV 9130)

D - dimensionality (only for versions 9130 or greater)
	valid values are 1 and 2
	(e.g. D 2)

c - coordinate (coordinates start counting from 1)
	the format of this line is as follows:
	c coordinate_number x.value [y.value] [z.value] [spacing]
		note that the units are microns
		
	y.value and z.value are only valid for D=2, D=3, 
		respectively

	the spacing value was parsed in versions A.9030 and older
		but never used

	(e.g. c 1 1.0 0.5 0)	

	In the SUPREM-IV coordinate system, into the silicon is
		positive (y-axis).  The x-axis values are
		numbered from left to right.

e - edge (edges start counting from 1)
	while not used by SUPREM-IV (it generates it's own edge
		tables from scratch) it was included as output
		for versions BEFORE 9130.

	the format of this line is as follows:
	e edge_number coordinate.number coordinate.number boundary_code

	the boundary_code value was never used

	(e.g. e 1 2 3 0)

r - region (regions start counting from 1)
	multiple regions of the same material can exist in SUPREM-IV 
	so be careful

	the format of this line is as folows:
	r region_number material_number

	material_number is a special integer code used in SUPREM-IV.
	While this can be changed easily by modification of
	include/material.h, the material codes have remained fairly
	stable through the releases with only possible additions
	in newer versions for new materials.  Here is the mapping
	from releases (A.8912, A.9030, and 9130).


	Material		Integer Code
	--------		------------
	Gas				0
	Silicon Dioxide			1
	Nitride				2
	Si				3
	Polysilicon			4
	Oxinitride			5
	Al				6
	Photoresist			7			

b - boundary (boundary)
	this code traces the boundary for each region.  after each
	region specification (r), the next lines comprise the
	boundary of the region,  until the presence of the next non-b
	command. The boundary is traced in a clockwise
	fashion.  As with the e code, the b code has been elimiated
	and is only included for versions BEFORE 9130.

	the format of this line is as follows:
	b edge_number

	BEWARE.  there is nothing that states that the edge are
		directed properly.  Edge cannot be directed
		properly since for structures such as the interface
		for the gate oxide in a MOS device traversal of the
		silicon and oxide polygons would require that the
		edges point in different directions.

t - elements (triangles) (triangles start counting from 1)
	this one is complicated so be careful.  SUPREM-IV has a lot
		of internal smarts and rebuilds neighbor information
		from the nodal description and does not rely on
		the neighbor information dumped out.  The neighbor
		information is usually correct though.

	the format of this line is as follows:
	t triangle_number region_number \  (no new line)
		coordinate_number coordinate_number coordinate_number \
		neighbor_triangle_number neighbor_triangle_number \
		neighbor_triangle_number father_triangle \
		first_offspring_triangle

	region_number is the same as those used in the r line.
	coordinate_number are the same as those used in the c lines.

	the concept of neighbors is somewhat more difficult to explain.
		given a triangle with vertices a, b, c, edge a is the
		edge OPPOSITE the vertex (i.e. edge a containes vertices
		b and c).  see below.


			a
		       x x
		      x   x
              edge c x     x  edge b
                    x       x
                   x         x
                  bxxxxxxxxxxxc
		 
		    edge  a


	now since edges aren't used in SUPREM-IV, the number of the 
		neighbor trangle containg the edge in question is given
		in leau of the edge number.  these triangle numbers
		correspond to the ones now used in the t-list.
		of course the problem is what do we do when the
		triangle in question does not exist (e.g. at the
		surface and sides of a wafer).  In this case a
		dummy code is given describing the boundary condition
		used.  The codes currently supported by SURPEM-IV
		are

		-1024 : reflecting boundary (von Neumann)
		-1022 : exposed surface (Dirichlet)
		-1023 : backside (version 9130 only)
	
	the concept of father and offspring triangles are only
		supported in version 9130.  In most cases the
		value is -1 to denote the absence of parents
		and children.  the intent is to provide a hook
		for refinement and unrefinement of triangles as
		done in PISCES.  

s - solution information
	the purpose of this line is to define the solution varialbes
		available from the simulation.  the format of the
		line is as follows:

s number_of_solutions solution_1 solution_2 .... solution_number_of_solutions
	the integer codes for solutions can be found in include/impurity.h.
	These have slightly changed over time.

	Impurity			Integer Code	Comments
	-------				------------	--------
	Vacancy				0
	Interstitial			1
	Arsenic				2
	Phosphorus			3
	Antimony			4
	Boron				5
	Electrons			6
	Holes				7
	X component of velocity		8		used for oxidation
	Y component of velocity		9		used for oxidation
	dry O2				10
	wet O2				11
	trap				12
	Gold				13
	Potential			14
	x component of stress		15		
	y component of stress		16		
	mixed component of stress	17		
	Cesium				18
	change in interface area	19
	Electrically active Arsenic	20		version >= relA.9030
	Electrically active Phosphorus	21		version >= relA.9030
	Electrically active Antimony	22		version >= relA.9030
	Electrically active Boron	23		version >= relA.9030
	Polysilicon Grain Size 		24		version >= rel.9130
	Gallium				25		version >= rel.9130
	

n - node information
	remember that in SUPREM-IV you can have multiple nodes
	for each point in space, one for each material.
	the format is as follows:

n point_number-1 material_code value_1 value_2 ... value_number_of_solutions
	
	It is IMPORTANT that you remember the "off by 1" for the point
	number.  This was just an efficiency hack since C arrays start
	counting from 0 and by this time, the point arrays have been
	created.  One might argue that the same thing should have been
	done for the rest of the arrays.  But it's a historical (HYSTERICAL)
	problem that keeps SUPREM-IV developers employed.

	The material codes have been already shown under the r command.
		Note that regions were not used here so that for the
		case where you have two regions of the same material
		intersections (e.g. the oxides in the TCAD Framework
		demo), only one set of solutions values are stored
		for the oxide, not 2.

M - model information
	this line can be pretty much ignored but I will give the
	syntax anyways

	the syntax is:
M substrate_orientation last_temperature

	codes for substrate_orientation are as follows (include/material.h)

	Orientation	Code
	-----------	----
	<100>		0
	<110>		1
	<111>		2

	last_temperature is in the units of Kelvin



Dan Yergeau
Wed Aug 20 14:01:54 PDT 1997