SYMMIC Users Manual CapeSym

Device Template File Format

The template is an XML-formatted input file that describes a thermal problem for the SYMMIC simulator. A template contains the device layout, geometrical and meshing parameters, material properties, boundary conditions, and other settings for the finite element simulation.

The XML syntax is defined in a Document Type Definition (DTD) file called template_format.dtd. This DTD file can be used to validate a device template file by using an XML validator, such as validateXML.htm in Internet Explorer. (For details see the \validate folder on the installation CD.)

A template file begins with a reference to the DTD:

<?xml version="1.0"?>
<!DOCTYPE Template SYSTEM "template_format.dtd">

The next line of the file opens the Template element:

<Template title="FET">

The Template element tag contains an attribute: title=”FET”. The title attribute specifies a string (enclosed in quotes) that describes the device template. This string will be written on the title bar of the application window and other places as the name of the device. A Template element can have a second attribute "helpFile" that gives the filename of HTML help that explains the device.

Several sections follow the Template tag in a fixed order:

<Parameters>... </Parameters>
<Points>... </Points>
<ZLayers>... </ZLayers>
<Materials>... </Materials>
<Device>... </Device>
<BoundaryConditions>... </BoundaryConditions>
<Simulation>... </Simulation>
<History>... </History>

There can be only one section of each type in the template. The Points, Zlayers, Materials, Device, and BoundaryConditions sections must be present, but the Parameters, Simulation, and History sections are optional. Each section contains additional elements in a particular order, as detailed below. After all the elements of a section are listed, each section must be terminated with its closing tag. Likewise, after all sections have been listed, the Template element is closed with the tag </Template>. This tag marks the end of the template data.

Attributes of the various elements in the sections typically contain integer, boolean, string, or floating point values, as defined in the DTD. (Read the DTD for more details on the XML syntax of template files.) Two additional special attribute types are also used: ID attributes and Evald attributes.

ID Attributes

ID attributes are identifier strings that must be unique to the element. No other element in the template can be given that same ID string. ID attributes are usually indicated by the “id” attribute name. Valid ID strings must conform to standard variable naming conventions by beginning with a letter and containing only alphanumeric characters without whitespace or punctuation marks, e.g. “P31”, “N16”, or “Layer07”. An identifier may not be given the same string as one of the built-in mathematical functions or constants defined for Evald attributes. The maximum length of an ID string is 15 characters.

Evald Attributes

Evald attributes are mathematical expressions that evaluate to double precision floating point values. Any unique identifier defined in an AParam element can be used in an Evald expression found anywhere in the template, including the min and max attributes of any AParam element. Evald expressions are converted to floating point values by a relaxation algorithm that iteratively assigns values to the parameters and evaluates the expressions until all values stop changing. This is done when the template is first parsed and whenever a parameter value is changed.

Valid Evald expressions follow the most common conventions of mathematical expressions in computer programming languages such as C or Fortran. Arithmetic expressions of parameters, such as “P1+P2”, “P1^2”, or “P1+2*(P2-P3)/7.3”, are evaluated using double precision for all operations and constants. Expressions may also include the following mathematical functions:

cos(x)

sin(x)

tan(x)

asin(x)

acos(x)

atan(x)

atan2(x,y)

sinh(x)

cosh(x)

tanh(x)

exp(x)

log(x)

log10(x)

sqrt(x)

floor(x)

ceil(x)

fabs(x)

pow(x,y)

min(x,y)

max(x,y)

as defined in the Standard C Library, and one additional function is if(x,y,z) which returns expression y if x is greater than zero but returns expression z if x is less than or equal to zero.

Given that parameters P1, P2, P3, and L5 are defined, the following are examples of valid Evald expressions.

"max(P1,P2/P3+0.9)"
"10"
"floor(max(min(8,P1/P2),3))"
"(P3^6)*(P1-P2)/2."
"if(P3-11.5,P1-P2,P2)"
"max(4,log(L5/(L5+(P2-P1)*(P3-1)))/log(1/P3))"

Parameters Section

The parameters section contains a sequence of AParam elements. Each AParam contains the following attributes:

id

An ID string identifier (see ID Attributes above, required)

name

A descriptive name string which may contain spaces (required)

value

A double precision floating point constant (required)

min

An Evald expression that evaluates to the minimum legal value (req'd)

max

An Evald expression that evaluates to the maximum legal value (req'd)

units

A string describing the units of the value

type

A string identifying the list of parameters to which this belongs

link

The string “HTCOEFF” links the heat transfer coefficient calculator to this parameter (which should be the same). See Choosing Appropriate Boundary Conditions for more information.

record

A boolean to record parameter with run values

equalizeOverMMIC

A boolean to share value with other devices in layout

description

A string explaining what the parameter represents

<Parameters>
<AParam id="P1" name="Number of Gates" value="3"
min="1" max="13" units="" type="Number of Gates"
description="The number of gates in half device FET"
/>
<AParam id="P2" name="Gate Length" value="0.1"
min="0.1" max="1" units="microns" type="Finger/Channel/Gate"
description="Length of the gate metal on the mesa"
/>
:
</Parameters>

All parameters with the same type attribute will be displayed in the parameter list of that name. The parameters will be listed in reverse order from their order in the template, e.g. the first parameter encountered for the “Finger/Channel/Gate” list will appear at the bottom of that list. Lists will appear in the order that they are encountered in the template. In the above example, the “Number of Gates” list will appear in the Device menu before the “Finger/Channel/Gate” list.

Only the first five attributes in the table above are required. The rest default to “false” or an empty string.

Points Section

The points section defines the layout of the 2D geometry of the device by giving the distances in x and y between geometrical features. Distances are given as delta values in microns from the previous feature point to the next one. The first feature is assumed to occur at zero. The smallest allowable delta is 1 nm (0.001), and feature locations should be rounded to the nearest nm.

Typically the attributes of the RefX and RefY elements are Evald expressions of the parameters, but they may also be floating point constants. For example, in the following P1 is a parameter that defines the length of the first feature in the x-direction.

<Points>
<RefX delta="P1" refn="10" bias="1"/>
<RefX delta="P2" refn="4" bias="1"/>
:
<RefY delta="P3" refn="12" bias="1"/>
<RefY delta="P4" refn="2" bias="1"/>
:
</Points>

The above excerpt defines the following geometry:


Each feature point defines an interval that can be indexed by an integer. The first RefX interval is 1, the second is 2, and so on. This implied indexing allows blocks of the geometry to be easily referenced later in the Device and BoundaryConditions sections. For example, the region defined by the first RefX and RefY features is referenced by x=“1” and y=“1”. The region defined by the first two intervals in both directions can be referenced by x=“1-2” and y=“1-2”.

A feature point includes attributes that specify how it will be meshed. In the example above, refn gives the number of finite elements to create over the interval, while bias gives a multiplicative scaling factor for the length of the finite elements. A bias of 1 means that the interval will be divided into equal intervals. A bias value greater than 1 means the length of the elements will grow from start to the end of the interval, while a bias value less than 1 means elements will shrink in length from start to end. A negative bias (which requires a refn divisible by 2) will produce a mesh the same size at the ends of the interval but different in the middle. A bias value less than -1 will grow elements to the middle of the interval, then shrink them toward the end of the interval. A negative bias value greater than -1 will shrink the mesh elements to the middle of the interval and then grow them to the end.

Each RefX or RefY tag may contain the following attributes:

delta

Evald expression: length of the feature (in microns, required)

refn

Evald expression: number of mesh intervals for feature point

bias

Evald expression: multiplicative scaling of mesh interval sizes

beginMeshSize

Evald expression: size of first mesh interval on feature

endMeshSize

Evald expression: size of last mesh interval on feature

beginMeshPrev

If true then size of first interval is same as last interval of previous feature

endMeshNext

If true then size of last interval is same as first interval of the next feature

The direction of meshing of a feature point is from lower position to higher position, the same as the direction implied by the sequence of features. Insteading of using refn to specify the number of intervals, the beginMeshSize value can be set to indicate how large a mesh interval will be at the start of the feature. The bias value will then determine how the mesh elements scale as the feature is divided. Bias > 1.0 means that mesh intervals on a feature will grow larger at the end of the feature, whereas a bias < 1.0 means that mesh elements grow smaller at the end of the interval. Alternatively, the endMeshSize attribute could be used to specify the size of the last interval on the feature. For example, using

<RefX delta="100" endMeshSize="10" bias="0.8"/>

will create a feature 100 microns long that is meshed into 6 intervals, the last interval being about 10 microns long and the first interval being about 27 microns long. Each subsequent mesh element decreases in length by 20% in going from 27 down to 10. The endMeshSize is matched as closely as possible within the constraints imposed by the delta and bias values.

The boolean attributes beginMeshPrev and endMeshNext allow the size of the mesh interval to be taken from an adjacent feature. This provides a convenient way to have a mesh grow in size as it traverses features of variable length. By default, beginMeshPrev is false. Setting beginMeshPrev to true causes the size of the first mesh interval to be the same size as the last interval on the previous feature. Note that beginMeshPrev cannot be used on the first RefX or RefY feature because no previous feature exists. When endMeshNext is true the size of the last interval of the feature is set to the size of the first interval of the next feature. The endMeshNext attribute cannot be set to true on the last RefX or RefY feature.

The refn and bias attributes take priority over the other attributes in determining mesh density. So to use beginMeshSize or endMeshSize, the refn attribute must be eliminated. The beginMeshSize attribute takes precedence over endMeshSize, and beginMeshPrev takes precedence over beginMeshSize, whenever bias is present. Both beginMeshSize and endMeshSize attributes can be used together when both refn and bias are not present. In this case, the effective bias is estimated from the two size attributes, and then the effective refn is calculated from this bias and the beginMeshSize attribute.

The delta attribute is required for all feature points, while the other attributes are optional. When no other attributes are given, default values of refn=1 and bias=1.0 are used. This means that the feature will not be divided into finer intervals when the mesh is created. If an error occurs in the specification of meshing attributes, such as choosing beginMeshSize too small for a bias < 1.0, the default of no mesh divisions will be used instead.

ZLayers Section

The ZLayers define how the device geometry is built up in the z-direction. Combination of these layers with the feature intervals defined in the Points section fully covers the 3D geometry of the device. The extent of each layer is defined by the begin and end attributes. As with x and y features, layers must begin and end on 1 nm intervals, and no layer can have zero thickness.

<ZLayers>
<Layer id="layer00" begin="0.0" end="P24" refn="N1" bias="1"/>
<Layer id="layer01" begin="P24" end="P24+P25" refn="N1+1" bias="1"/>
:

</Zlayers>

The id attribute of a Layer is a unique ID identifier that can be referenced later in the Device and BoundaryConditions sections. The next six attributes are Evald expressions that give the Z-coordinate extent of the layer and set its mesh. Two additional attributes that are optional are the belongsToMMIC boolean flag and the toExport integer flag. When these flags are absent they are assumed false or 0. When belongsToMMIC is true the layer forms the part of the common area of a layout of multiple devices. The toExport flag is used to set default and xSYMMIC behavior. The fromExport flag is used by SYMMIC to denote bottom appended layers, users should not need to modify it.

Each Layer tag may contain the following attributes:

id

An ID string identifier (required)

begin

Evald expression: starting z-position of layer (required)

end

Evald expression: ending z-position of layer (required)

refn

Evald expression: number of mesh intervals for layer

bias

Evald expression: multiplicative scaling of mesh interval sizes

beginMeshSize

Evald expression: size of first mesh interval on layer

endMeshSize

Evald expression: size of last mesh interval on layer

beginMeshPrev

If true then size of first interval is same as last interval of previous layer

endMeshNext

If true then size of last interval is same as first interval of the next layer

belongsToMMIC

Boolean whether layer is shared by the layout

toExport

Integer where 1 indicates layer should be part of export

fromExport

Boolean whether layer was appended on the bottom in previous export

The meshing attributes of a layer are governed by the same rules used for meshing feature points. The beginMeshPrev attribute of a layer refers to the previous layer in the list, not necessary the adjacent layer determined by the z-position attributes. It is possible to define different layers with different thicknesses that sit on top of the same layer, as long as the components defined in these layers do not touch sides. When the sides of the components are touching, the mesh in the z-direction must match in order for the finite element problem to be consistent, therefore such components should come from the same layer, as illustrated in the following figure.



Materials Section

The Materials section is made up of a list of materials, with the properties of each material defined in an AMaterial element. Every material must be given a unique identifier so it can be assigned to a particular component in the Device section.

<Materials>
<AMaterial id="Air" description="Air" color="250 250 237"
conductivity="2.67e-008 300,
3.31e-008 400,
3.89e-008 500”
capacity="1005e-6 300,
1009e-6 400,
1017e-6 500"
density="1.177e-12 300,
0.883e-12 400,
0.706e-12 500"
viscosity="1.843e-005 300,
2.252e-005 400,
2.633e-005 500"
/>
:
</Materials>

The color attribute defines the intensity of the red, green, and blue 8-bit color channels, where “0 0 0” is black and “255 255 255” is white.

Thermal conductivity is assumed to be isotropic unless the isotropic=”false” attribute is present. In the isotropic case, conductivities are given as ordered pairs “k T”, where thermal conductivity (k) is given in Watts per micron per kelvin, and temperature (T) in kelvin. In the orthotropic case, conductivity is a sequence of ordered quadruples “kx ky kz T” where kx is the thermal conductivity in the x-direction, ky is the thermal conductivity in the y-direction, and kz is the thermal conductivity in the z-direction, all in Watts per micron per kelvin. A thermal conductivity attribute is required for every material.

Specific heat capacity is given in joules per milligram per kelvin, and mass density is given in milligrams per cubic micron. These attributes are also listed as a sequence of value-temperature pairs in ascending order of temperature in kelvin. Capacity and density are only used for unsteady solutions, but it is recommended that these values be present for every material in the template.

Viscosity is given in milligram per micron per second, or equivalently kilogram per meter per second. The viscosity attribute is listed as a sequence of value-temperature pairs in ascending order of temperature in kelvin. Viscosity is only used for the heat transfer coefficient calculator.

Emissivity is used when radiation boundary conditions are employed, otherwise it is not needed. Emissivity is the hemispherical total emissivity of the surface of the material, which is a dimensionless quantity. The attribute is listed as a sequence of value-temperature pairs in ascending order of temperature in kelvin.

Each AMaterial tag can have the following attributes:

id

An ID string identifier (required)

description

A descriptive name that may contain spaces (required)

color

Three integers (0-255) separated by a single space

isotropic

Boolean which is false if orthotropic (different properties in X, Y and Z)

conductivity

thermal conductivity (W/um.K), doubles k T if isotropic, or kx ky kz T if not

capacity

specific heat capacity (J/mg.K), doubles c T

density

mass density (mg/um^3), doubles rho T

viscosity

fluid viscosity (mg/um.s) or (kg/m.s), doubles nu T

emissivity

radiation emissivity, doubles eps T

Device Section

The Device section defines how the feature points, layers, and materials are grouped together to form the components of the device. The Device is made up of a list of Component elements.

<Device>
<Component name="Backside Adhesive" material="Epxy" layer="layer00" >
<Blocks x="1-21" y="1-15" />
</Component>
<Component name="Metal Shim" material="CuW" layer="layer01" >
<Blocks x="1-10" y="1-15" />
<Blocks x="11-21" y="1-15" />
</Component>
:

</Device>

Each Component tag may contain the following attributes:

name

A descriptive name string that allow components to be grouped

material

An identifier of a defined material

layer

An identifier of a defined layer

record

Boolean indicating whether this component should be recorded

belongsToMMIC

Boolean whether component is part of common areas of layout

equalizeOverMMIC

Boolean whether component material is same across devices

useTest

Evald expression: component is included in device when > 0.0

toExport

Integer indicating component should be part of export when 1

All components with the same name are grouped together for the purpose of editing component material properties. That is, all components with the same name are expected to be made of the same material, but they may involve different layers or blocks. Only components with unique names can be assigned different materials in the user interface.

A Component can contain any number of Blocks elements that assign regions of the 2D feature geometry to a component. In the above example, the “Backside Adhesive” component includes the region encompassing the first 21 RefX intervals and the first 15 RefY intervals. The “Metal Shim” component extends over this same region even though the region is defined by two Blocks elements instead of one. It is assumed that the regions defined by all the Blocks elements for all components with the same name are non-intersecting, i.e. the regions may touch at the surfaces but may not overlap. Likewise no components should intersect with any other components in the device.

Only one component (name) can have belongsToMMIC=“true” on a given layer, and that layer should be denoted as belongsToMMIC=”true” as well.

The default values for the flags (assigned when attributes are not present) have the following effects. The flag record=“false” means the component is not recorded. Flag belongsToMMIC=“false” means the component is not common to layout. Flag equalizeOverMMIC=“false” means the same material used by this component in other devices is will not be transferred to this one. The toExport flag is used to set default and xSYMMIC behavior for creating a device from a layout.

Flag useTest determines whether the component will be included in the device. The useTest string is an Evald expression on the parameters that evaluates to a positive value when the component is to be included in the model. A zero or negative value will result in the component being excluded from the model. To work in a layout, the model must include the first feature point in both RefX and RefY, so there must be at least one included component on block (1,1). Only feature points at the end of the feature list may be completely excluded by having no components on them, to ensure a continuous sequence of features in the final model. Excluding all components for any features points at the beginning or in the middle of the feature points may lead to invalid simulations.

BoundaryConditions Section

The BoundaryConditions section defines the temperatures, fluxes, and films applied to the 3D geometry. The section consists of a list of any number of four types of boundary conditions (BCs), in any order.

<BoundaryConditions>
<Film h="P42" temperature="P41" face="bottom" layer="layer00" >
<Blocks x="1-21" y="1-15" />
</Film>
<SFlux flux="(S1*P40/100000)/W1" face="top" layer="layer4b" >
<Blocks x="15-15" y="4-12" />
</SFlux>
<Constant face="left" layer="layer01" temperature="100.">
<Blocks x="1" y="1"/>
</Constant>
<BFlux flux="1000.0" layer="layer05">
<Blocks x="2" y="1"/>
</BFlux>
<Radiation ambient="P41" face="top" layer="layer06" >
<Blocks x="1-21" y="1-15" />
</Radiation>
:
</BoundaryConditions>

A Constant BC defines a fixed temperature on a surface. The attributes of a Constant tag are:

temperature

Evald expression that evaluates to the fixed temperature in kelvin

face

The face of the blocks to which the BC is applied

layer

The identifier of the layer to which this BC applies

interface

Boolean (currently not used)

usersub

Boolean that specifies whether a user subroutine will be used

useTest

Evald expression: BC is included in device when > 0.0

belongsToMMIC

Boolean whether BC will be applied to layout

extractable

Boolean whether BC is replaceable by an extracted temperature-field file

toExport

Integer where 1 indicates BC should be part of export

dn

Integer that specifies the device number for Run simulation for network

A Film BC defines heat transfer from a surface as in Newton's first-order convection cooling equation. The attributes of a Film tag are:

temperature

Evald expression that evaluates to the Tof Newon's law (kelvin)

h

Evald expression for heat transfer coefficient (Watts/µm2/kelvin)

face

The face of the blocks to which the BC is applied

layer

The identifier of the layer to which this BC applies

interface

Boolean (currently not used)

usersub

Boolean that specifies whether a user subroutine will be used

useTest

Evald expression: BC is included in device when > 0.0

belongsToMMIC

Boolean whether BC will be applied to layout

extractable

Boolean whether BC is replaceable by an extracted temperature-field file

toExport

Integer where 1 indicates BC should be part of export

dn

Integer that specifies the device number for Run simulation for network

A BFlux BC defines a volume flux. The attributes of a BFlux tag are:

flux

Evald expression for flux in Watts per µm3

layer

The identifier of the layer to which this BC applies

interface

Boolean (currently not used)

usersub

Boolean that specifies whether a user subroutine will be used

useTest

Evald expression: BC is included in device when > 0.0

belongsToMMIC

Boolean whether BC will be applied to layout

toExport

Integer where 1 indicates BC should be part of export

dn

Integer that specifies the device number for Run simulation for network

An SFlux BC defines a surface flux. The attributes of an SFlux tag are:

flux

Evald expression for the flux in Watts per µm2

face

The face of the blocks to which the BC is applied

layer

The identifier of the layer to which this BC applies

interface

Boolean (currently not used)

usersub

Boolean that specifies whether a user subroutine will be used

useTest

Evald expression: BC is included in device when > 0.0

belongsToMMIC

Boolean whether BC will be applied to layout

toExport

Integer when 1 indicates BC should be part of export

dn

Integer that specifies the device number for Run simulation for network

A Radiation BC defines heat transfer from a surface to the ambient environment through thermal radiation. The attributes of a Radiation tag are:

ambient

Evald expression evaluating to environmental temperature (kelvin)

face

The face of the blocks to which the BC is applied

layer

The identifier of the layer to which this BC applies

interface

Boolean (currently not used)

usersub

Boolean that specifies whether a user subroutine will be used

useTest

Evald expression: BC is included in device when > 0.0

belongsToMMIC

Boolean whether BC will be applied to layout

toExport

Integer where 1 indicates BC should be part of export

dn

Integer that specifies the device number for Run simulation for network

Valid face attributes are {“front”,”right”,”back”,”left”,”top”,”bottom”}, with “front” being the face parallel to the x-z plane with the smallest y value and “left” being the face parallel to the y-z plane with the smallest x value. The “bottom” face is the one with smaller z value.

In order for constant temperature-field boundary condition files to be extracted from a solution containing templates created by export (Solve > Boundary conditions > Extract at exports...), it is necessary for each layout that is exported to contain one and only one BC which is marked as “extractable.” It must be either a Film or a Constant BC on a top or bottom face.

The belongsToMMIC flag must be present to define a boundary condition that applies to the rest of a layout, but this flag is not needed when a device is simulated alone without creating a layout to contain it. The belongsToMMIC and toExport flags participate in defining how boundary conditions are handled when a layout is exported as a device. This is described in detail in the Export Requirements and Limitations section in Chapter 4: Layouts.

The dn flag is used in calculating the equivalent thermal impedance network; it specifies the network port number. It is set automatically during the export operation, but the user can also set or change it if desired. The default (unset) value is “0” in which case it is not printed in the template file. Usually only BFlux and SFlux BCs are given ports, but this behavior can be over-ridden by either setting dn to “-1” to prevent a port from being created for the given BC, or to an integer greater than “0” to specify a port. Values for dn must be sequential. Layout simulations ignore the dn tag and simply assign one port for each item in the layout, starting from “1” and in the layout list order. On export, if no dn tags are set in the templates, then export will set dn on BFlux and SFlux BCs in the same manner as in a layout simulation. However, if one or more templates has non-zero dn values specified, then those values will be used to determine port groupings. Note that if a half-device template has more than one dn (port) value specified, and it is mirrored in the layout, then on export the mirrored BCs will be grouped with their mirrors (they won't get unique port values as one might expect). So be careful about exporting mirrored templates that have defined dn values.

Each BC element contains a set of non-intersecting Blocks elements that define the parts of the geometry to which the BC is applied. These Blocks follow the same format as in the Device section. Note that a face BC will be applied to each unit block in the volume of blocks. For example, if <Blocks x="1-2" y="1-2"> has an SFLUX on the "right" face then each of the four unit blocks, (1,1), (1,2), (2,1), (2,2), receives the specified flux. Since this may be twice the flux that was intended, it is strongly recommended that all BCs on "right" or "left" faces operate on Blocks with only a single x value (e.g. x="2"), and all BCs on "front" or "back" faces operate on Blocks with only a single y value (e..g. y="1"). Any configuration of blocks may be safely used with "top" and "bottom" BCs.

New as of version 2.9.0: No .usr files are written because the solver is now called directly within the SYMMIC (or xSYMMIC) process rather than as a program with its own input files. However, the File element is still used to define the pulsed power, power scaling, and adaptive time stepping trace points of "user subrountine" fluxes in the template.

In addition to the Blocks elements, BCs may contain any number of File elements that define auxiliary parameters to support user subroutine BC computations. The File element only applies when the usersub flag is “true” and the useTest expression evaluates to a positive number. A File element has the format:

<File filename=".usr">
<Line valueOf="2*P3/1000/P2"/>
<Line valueOf="2*P1/1000/P2"/>
<Line text="border is 1.1"/>
<Line text="linear"/>
</File>

The File element may contain up to 10 Line elements, each of which represents a specific parameter for the "user subroutine" boundary condition.

Solver Features Accessed by .usr Files of SFlux and BFlux

Line

Feature

1

Flux (dissipated power) for the ON interval

2

Duration of the ON interval (seconds)

3

Flux (disi\pated power) for the OFF interval

4

Duration of the OFF interval (seconds)

5

Cycle start time offset from start of simulation run (seconds)

6

x location of trace point to use for adaptive time stepping computation

7

y location of trace point to use for adaptive time stepping computation

8

z location of trace point to use for adaptive time stepping computation

(x,y,z) should indicate the locus of peak temperature change due to the flux

9

Baseline temperature T0 of formula for scaling flux with temperature

10

Exponent n of flux scaling formula (T0/T)^n

Simulation Section

The optional Simulation section defines parameters that govern how the thermal simulation will run.

<Simulation>
<Time steady="true" final="0.0001" saveEvery="1e-005" step="1e-006">
<Interval stepSize="0" numberSteps="1" />
<Interval stepSize="1e-006" numberSteps="10" />
<Interval stepSize="1e-006" numberSteps="10" />
<Interval stepSize="1e-006" numberSteps="10" />
<Interval stepSize="1e-006" numberSteps="10" />
<Interval stepSize="1e-006" numberSteps="10" />
<Interval stepSize="1e-006" numberSteps="10" />
<Interval stepSize="1e-006" numberSteps="10" />
<Interval stepSize="1e-006" numberSteps="10" />
<Interval stepSize="1e-006" numberSteps="10" />
<Interval stepSize="1e-006" numberSteps="10" />
</Time>
<Temperature initial="300"/>
<Record recordAll="true" />
<Impedance calculate=”true” />
<Solver usePardiso="false"/>
</Simulation>

The Time element tag has the following attributes:

steady

If true will solve for steady-state temperature, otherwise unsteady

allowUnsteady

If true will allow user to choose an unsteady solution

final

The final time for the Fill button of the user interface

saveEvery

The output interval for the Fill button of the user interface

step

The integration step size for the Fill button of the user interface

adaptable

If true will allow user to choose adaptive time stepping

adaptTimeStep

If true will use adaptive time stepping in solver

These attributes define the parameters of the Simulation Time(s) dialog but not necessarily the parameters of the simulation. The simulation steps for an unsteady simulation are determined by the Interval elements. Each Interval defines a time step size and the number of steps that the simulation will compute with that step size. These values are written to the solver in the order listed, and the solver outputs the temperature at the end of each interval. So, in the above example, the solver will output the temperature at t=0, then the temperature at 10e-6 seconds, then 20e-6 seconds, and so on. At least one interval must be listed to get any output for an unsteady simulation; it is not sufficient to set the attributes in the <Time> element.

The Temperature element tag has the following attributes:

initial

The initial (uniform) temperature for an unsteady simulation

useBCfile

Boolean indicating whether a constant BC file should be used

BCfilename

The filename of the constant BC file to apply to extractable BC

restartFromFile

Boolean for whether the initial temperature should be taken from a file

filetime

The time point to use from the restart (initial temperature) file

filename

The filename of the restart (initial temperature) file

The Temperature element indicates whether a BC temperature file is available to use in place of any extractable boundary conditions. The Temperature element also defines the initial temperature at the beginning of an unsteady simulation. This can either be a constant temperature given by the “initial” attribute, or a previous calculated solution on the same mesh. To restart from a solution file the Temperature element would look like:

<Temperature restartFromFile="true"
filetime="0.1" filename="cube.dat" />

The Record element specifies the filename for recording run values (if different from default), if average as well as minimum and maximum component temperatures should be included, and whether everything should be recorded instead of using the individual parameter and component flags.

recordAll

Boolean: all parameters and components recorded if true; default is false

recordAverageTemps

Boolean: include volume-average component temps if true; default is false

filename

The filename to use; default is <template_name>.csv

The Impedance element that specifies all the options for thermal impedance calculations.

<Impedance calculate="true" outputNET="true"
useVCVS2="true" minRvalue="0.001" />

The Impedance element tag may contain any of the following attributes:

calculate

Boolean: impedance calculations are performed when true

outputBAS

Boolean: AWR scripted equation file is generated when true

outputNET

Boolean: AWR netlist file is generated when true

outputCIR

Boolean: SPICE circuit file is generated when true

outputMAT

Boolean: Matlab/Octave .m file is generated when true

useVCVS2

Boolean: when true use VCVS2 instead of VCVS in AWR netlist

minRvalue

Minimum thermal resistance to include in the RC network

timeConstant

Default time constant to output at every thermal resistance

minTimeConstant

Minimum overall time-constant for the RC network

The Solver element defines settings for the finite element solver, such as how the Parallel Direct Sparse Solver (PARDISO) will be used. When usePardiso is false, the solver uses the out-of-core algorithm to obtain a solution. The default value for the useLinear flag is false, meaning the solver will perform non-linear iterations to deal with temperature-dependent properties.

<Solver relTolerance="0.0001" absTolerance="1e-012"
iterateSuperposition="false" />

The Solver element tag has the following attributes:

usePardiso

Boolean for PARDISO solver in-core (false => out-of-core)

useLinear

Boolean for non-linear iterations (true => no iterations)

relTolerance

Relative tolerance for non-linear iterations (deprecated)

absTolerance

Absolute tolerance for non-linear iterations (in kelvin)

factorUnsteady

Select unsteady refactoring frequency (0=auto, 1=intervals, 2=steps)

iterateSuperposition

Boolean selects second superposition iteration to refine solution

stefan-boltzmann

Default value of 5.57e-20 W/µm2K4 can be changed with this

New as of version 3.0.2: The relTolerance attribute is deprecated, but is currently still recognized as an absTolerance equivalent. The fixed-point residual is the absolute value of the maximum difference in temperature between the current and previous non-linear iteration at any location in the solution. The nonlinear iterations are considered converged for a fixed-point residual less than the larger of 1.0e-4 or absTolerance in degrees Kelvin. The iterations may be terminated sooner by setting the absTolerance to a larger value than 1.0e-4. The default convergence level is assumed to be 1.0e-3 if no absTolerance attribute is present. The attribute factorUnsteady may be used to select the unsteady refactoring frequency for PARDISO solves: 0 = Refactor automatically as needed, 1= Refactor at output intervals, 2= Refactor at every time step. The default value is 0 if the attribute is not present. This attribute has no effect on PCG or PETSc unsteady.

History Section

The History section keeps a list of time-stamped events in the template file to help keep track of changes, simulation results, and certain operation sequences. The dateTime attribute is the time stamp of an Event, given as 5 integers indicating the year, month, day, hour, and minute. The other Event attributes can contain any information the user wants, except for the type attribute which is reserved for internal use.

<History>
<Event dateTime="2009 01 28 09 05" job="JCF: Run simulation"
description="Run with gate-to-gate spacing=30um"
filename="FET30.rst" type="USERDEF" />
</History>

Comments

Comments can appear any where in the file except between the < and > of a tag. Comments are opened by <!-- and closed by -->, and may span any number of lines. Therefore, a portion of the template may be removed by commenting it out. For example, the following lines remove the airbridge component from a template. An XML-aware text editor may color or otherwise highlight commented elements.

<!-- <Component name="source bridge" material="Au"
layer="Layer9" useTest="P0-0.5" >
<Blocks x="5-15" y="4-4" />
</Component> -->

CapeSym > SYMMIC > Users Manual
© Copyright 2007-2019 CapeSym, Inc. | 6 Huron Dr. Suite 1B, Natick, MA 01760, USA | +1 (508) 653-7100