Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
SolariaPCB Manual Version 3.0
Contents 1 The Overall Process ............................................................................................................................... 3
2 The Project File...................................................................................................................................... 4
2.1 Changing Projects ............................................................................................................................ 4
2.2 Removing PCBs from the Project file ............................................................................................... 5
2.3 Project path ...................................................................................................................................... 5
3 SolariaPCB flow path ............................................................................................................................. 6
4 Importing an ODB++ file........................................................................................................................ 7
5 Board Outline ........................................................................................................................................ 9
6 Defining layers in the board ................................................................................................................ 10
6.1 Simplifying Layer in the PCB .......................................................................................................... 12
6.2 Simplifying PCB planes ................................................................................................................... 13
7 Defining what is viewed on the screen ............................................................................................... 16
8 Adding Thermal Contact ..................................................................................................................... 16
9 Add Simple Flow .................................................................................................................................. 18
10 Add Natural Convection ................................................................................................................. 18
11 Adding Vias .................................................................................................................................... 20
12 Adding Stiffeners ............................................................................................................................ 21
13 Adding a surface heat load to the board ....................................................................................... 22
14 Adding a Layer Plate ...................................................................................................................... 24
15 Adding Wedgelock Edge Contact ................................................................................................... 25
16 Adding Cutouts .............................................................................................................................. 26
17 Deleting items on the PCB ............................................................................................................. 28
18 Editing Vias ..................................................................................................................................... 29
19 Editing Cutouts ............................................................................................................................... 29
20 PCB default settings ....................................................................................................................... 30
21 Getting information on a particular feature .................................................................................. 33
22 Electronic components .................................................................................................................. 34
2
22.1 Mapping Components................................................................................................................. 34
22.2 Adding components to the library .............................................................................................. 35
22.3 The Component Library .............................................................................................................. 36
22.4 Component Geometry ................................................................................................................ 37
22.5 Component Thermal Properties ................................................................................................. 38
22.5.1 Guidelines for creating the component thermal representation ....................................... 38
22.5.2 DELPHI thermal model ........................................................................................................ 40
23 Placing a component on the board ................................................................................................ 42
23.1 Adding to the Working Set .......................................................................................................... 42
23.2 Placing the Component on the Board ......................................................................................... 43
23.3 Import component data .............................................................................................................. 44
24 Defining Active components .......................................................................................................... 45
25 Creating a Solaria model ................................................................................................................ 47
25.1 Solving the board ........................................................................................................................ 48
25.2 Viewing component temperatures in a table ............................................................................. 48
25.3 Viewing component temperatures graphically .......................................................................... 49
26 Deleting a PCB from a Solaria model ............................................................................................. 50
27 Calculate PCB effective thermal conductivity ................................................................................ 51
28 Inserting a PCB into a chassis model .............................................................................................. 53
28.1 Auto Move Object feature in Solaria .......................................................................................... 53
29 Details of the Solaria Thermal model ............................................................................................ 65
29.1 Representing the board .............................................................................................................. 65
29.2 Representing Traces .................................................................................................................... 66
29.2.1 Algorithms validation .......................................................................................................... 68
29.3 Representing Vias ....................................................................................................................... 70
29.4 Modeling components ................................................................................................................ 71
29.4.1 Attaching the component to the board .............................................................................. 71
29.5 Modeling the Wedgelock Edge ................................................................................................... 72
30 Joule Heating.................................................................................................................................. 73
31 Representing Simple Air Flow ........................................................................................................ 88
32 Representing natural Convection .................................................................................................. 90
3
Introduction
SolariaPCB is essentially a pre-processor for Solaria. SolariaPCB runs within the Solaria environment.
When is SolariaPCB mode, you work at the single board level, defining its shape and layers, placing
components and defining thermal boundary conditions. You can easily switch between multiple boards
that are going to go into a single chassis level Solaria model. A board can be manually defined or an
ECAD database can be imported. Once the definition of the board is complete, a ready to solve Solaria
thermal model is automatically generated. At that point you are working within the Solaria
environment. So now you are working with elements and nodes. But the roots of the board definition
are not lost. You can merge the board with other boards into a chassis and solve the entire system. You
still get clear tables for each board in the chassis summarizing component temperatures.
There are two operating modes for Solaria. The first and initial is Solaria. In this mode you are working
with the elements of the model. The second is PCB mode. In this mode you are looking at a PCB,
components, traces and all features that make up a printed circuit board. In Solaria mode, the PCB top
menu is grayed out, not accessible. All other menus are accessible. To switch from Solaria mode to PCB
mode, hit the toolbar button. If you dwell your mouse over the button it will tell you what mode
you are in, or .
The picture below shows the PCB menu. All features in PCB mode are in this single menu. You can work
on multiple boards at a time. When you save a PCB file, the name of the file will be added to the PCBs
sub-menu. To switch to a different board simply select PCB>PCBs then select the board name. If
changes have been made to the current board, these changes are automatically saved.
1 The Overall Process In Solaria Mode the electronic chassis or enclosure model would be generated. In this environment you
are building models with Nodes and elements, importing DXF geometry or solids geometry through
Netgen or Gmsh. You also solve models for temperatures and view the results. In PCB Mode, you are
building printed circuit boards (PCBs). You import an ODB++ file to start with or generate the board
from scratch. In this environment you are building the PCB by defining its outline, defining the layers in
the board, placing components, stiffeners, Layer Plates, thermal interfaces, Wedgelock Edges and
Surface Heat. Once the PCB is completed you hit a menu item to create a complete, ready-to-solve
Solaria model. The model is generated in the Solaria Mode environment. If there is already a model in
the Solaria Mode environment, then the new PCB is merged with it. You are given the opportunity to
offset the PCB in the X, Y and Z directions. When the model is initially generated, the lower left corner
of the PCB is 0, 0, 0. When the Solaria model is generated, it is placed into its own Group. So later in the
Solaria Model environment, you can easily look at each board individually. During the model generation
process, the Solaria Nodes that represent the components Junction, Case and local board surface
4
temperatures are saved. After the model is solved, you can view component temperature is a tabular
form. When you create a color temperature contour of the PCB, the Junction and Case temperatures
are also represented by color plates at their location on the board.
When you create a PCB you can add Flow/Convection boundary conditions or Thermal Contact
boundary conditions and solve the PCB for temperatures by itself. On the other hand, you can create
Thermal Contacts that have IntelliMesh on the surface. This allows you to merge it into a chassis level
model that has its own thermal boundary conditions. IntelliMesh allows you to thermally connect the
chassis and PCB model even though they have very different meshes at their interface.
2 The Project File A list of boards you are working on are saved in a Project File. As time goes on, more information will be
saved in this file. The user never needs to look at this or manually edit this file.
2.1 Changing Projects
Solaria saves the last four Project Folders you have worked on. This makes it easy for you to work on
multiple projects at the same time. This also ensures that files from one project don’t get into another
projects folder. When you change to a different folder, the current Solaria and SolariaPCB data is saved
and cleared, the Project Folder is changed and the Project file, if it exists, is opened and the first PCB is
opened.
5
2.2 Removing PCBs from the Project file
To remove a PCB from the Project, select PCB>Remove PCB from Project. Select the PCB then hit the
Remove button.
2.3 Project path
It is important to define a project path. This defines the location for your PCB files and Solaria models
created. Select PCB>Path Control. Hit the Project path button and select the folder where you want all
the project files to reside.
You can also select File>Change Project Path or PCB>Path Control.
6
3 SolariaPCB flow path
PCB>Add Menu
Stiffeners
Thermal Contact
Surface Heat
Layer Plate
Vias
Air flow
Wedgelock Edge
Define board outline PCB>PCB Outline
Add components to the Working Library PCB>Add Components to Lib
Place components on the board Add>Component Import ECAD data PCB>Import ODB++
Import ECAD data
Manually define board
Settings>Properties
Define mesh constraints
Define solution constraints
Define/Edit layers to define dielectric
PCB>PCB Layers
Import power dissipation file or manually define
Solve the model Solve>Steady State
Create Solaria Model PCB>Build board model
Define Active components
PCB>Define Active Components
7
4 Importing an ODB++ file Most ECAD systems can export an ODB++ file. This is a compressed file that contains the complete
board definition. There is no need to import Gerber, drill or IDF files. The single file contains
components, layers, vias, traces and planes. An ODB++ file should have the tgz extension. The name of
the file should not be changed as it is the name of the folder that is created when the file is
uncompressed by SolariaPCB.
Select PCB>Import ODB++. First select the units you are using in the Select Units drop down. Next
define the Number of segments in a circle from the drop down. This defines how circles and arcs are
represented when imported. This has a slight effect on model build time. A smaller number will build
faster. Typically 4 or 6 are fine. If you plan to do Joule Heating simulation where the exact definition of
the trace or plane is meshed into the model, 4 segments in a circle should be used. Larger values can
make model generation time exceedingly long and the model unnecessarily large.
If the file has not been imported (or expanded) yet, hit the Browse button under the Compressed ODB++
File and select the tgz file. If it had been expanded, then you will receive a message to that effect. In
this case you will select the second option.
If the ODB++ had already been open, or expanded, then hit the Browse button under the Root folder for
ODB++ files then select the folder.
8
The folders containing the board data will be read and the dialog filled as shown below. Next hit the
Import button. The status will be given at the top of the dialog. In this case there are 122 different
components in the library and 1269 placed components. The library contains the component type,
geometry and lead/pad/solder ball locations, material and geometry. The placed components reference
a component in the library, defines its location, the side of the board it is on, the power dissipation if
different in the library, the component rotation and if the component is bonded to the PCB surface.
When it is Done, hit the Cancel button.
The Map Component dialog will come up next. This dialog is discussed in more detail later.
Components in the SolariaPCB Master Component Library are shown in the left column and the
9
components in the current board library are shown on the right. The ODB++ file includes a component
outline, its location on the board, the side of the board it is on and the location of all leads/pads/solder
balls. It does not contain lead geometry or thermal information. This information is needed to perform
a thermal simulation of the component. If you had defined this information for a component, you can
add that component to the Master Component Library. Now in the Map Component dialog, SolariaPCB
will look for a match between those components just imported and the components in the Master
Component Library. If one is found, as shown below, you can hit Yes to map. In this case, the complete
information in the library component will be used for the component just imported.
5 Board Outline Select PCB>PCB Outline. The shape or outline of the board is defined by a series of X-Y data points. It is
assumed that the first and last points are connected. You can open a file that has space delimited data
points that define the board outline by hitting the Import button. When you import an ODB++ file, this
data is included.
10
6 Defining layers in the board The PCB layers dialog is used to add, remove or modify layers in the board. If an ECAD database is
imported then all layers, metal and dielectric, are imported. The thickness of each is also imported. If a
board is being built from scratch, then layers can be manually added.
Select PCB>PCB Layers to edit or define the layers in the board.
Update Materials
To redefine all of the Conducting and Dielectric layers materials to those defined in the Default Layer
Material area, hit the Update Materials button.
Simplify Layers
This is explained in the next section.
11
Add Layer
Hit the Add Layer button to add a layer. The initial information used is defined in the Default Layer
Material area of the dialog.
Delete Layer
To delete a layer, select any item on that layer then hit the Delete Layer button.
Insert Layer
To insert a layer, select any tem on the line just after the line you want to insert then hit the Insert Layer
button.
Name
This is the name given to the layer. It is defined by the user.
Thickness
Enter the thickness of the layer. Units must be consistent throughout the board definition.
Type
There are four types of layers, Conducting, Dielectric, 2D and 3D. A conducting layer has metal traces or
power or ground planes on it. A Dielectric layer is an electrical insulation layer. A 2D layer is just a layer
that is represented with 2D Plate type elements in the model. A 3D layer is just a layer that is
represented by 3D Brick type elements in the model. In the figure below, an aluminum heat sink or
conducting plate is bonded to the backside of the board. The bond layer would be represented with a
3D layer. A 3D layer accounted for the temperature rise through its thickness. The heat sink could be
represented by either a 2D or 3D layer. If you are going to use the Wedgelock Edge feature to extend
the edges of the heatsink then the layer must be a 3D type.
Material
This is the material the layer is made of. For Conducting layers, only Metal type materials will be shown
in the list. For Dielectric layers, only Dielectric type materials will be shown in the list.
12
Coverage
This defines how the Conducting layers are represented. If there is a check then the thickness of the
layer is multiplied by the Percentage and divided by 100. If traces are imported from an ODB++ file,
then this should NOT be checked. In this case the traces on the layer will be used to more accurately
create elements in the Solaria model. This is explained in Section 29.2.
Color
This defines the color of the traces as shown on the screen.
6.1 Simplifying Layer in the PCB
When performing Joule Heating, the mesh can get large. If there are many layers in the board, the
Solaria model can get very large since every layer is explicitly represented. There is an option in the
PCB>PCB Layers dialog to simplify layer in the board. This will combine metal layers together and add
dielectric layers. Layers with Joule Heating defined are left untouched.
NOTE: There is no Undo for this operation. It is recommended that the board file be saved with a
different name prior to doing this operation.
Below shows a cross section of a PCB. This function merges metal layers together and adds dielectric
layers. Layer that have Joule heating defined are not changed.
13
Below shows how the Layer dialog shown above with 12 metal layers is changed to 3 metal layers.
6.2 Simplifying PCB planes
For some reason, a filled area on a layer may be very complex. This can result in a very fine mesh when
the board model is created. When calculating voltage drop or temperatures, this complexity is not
necessary to give accurate results.
Select PCB>Simplify Layer. Select the layers that you want this operation performed on by checking the
metal layer.
NOTE: There is no Undo for this operation. It is recommended that the board file be saved with a
different name prior to doing this operation.
14
Below shows an area of a power plane in a PCB.
When the plane is defined as Joule heating, below shows the mesh created.
In the PCB>Simplify Layer dialog, if the layer is selected, it can be simplified. In the Maximum
Dimension edit box, enter a linear dimension of the maximum dimension you want. It is suggested to
start large. If when you hit the Process button, nothing happens, reduce the value and try again. In the
Number of vertices edit box, enter the smallest number of vertices defining a filled area you want to
have processed. Hit the Process button.
15
Below shows an example of simplifying a group of features in a power plane.
Below shows how the mesh is simplified.
16
7 Defining what is viewed on the screen Select PCB>View Entities to define what is drawn to the screen. Color boxes can be clicked on to change
their color. All settings are saved when Solaria is closed. The screen is updated as each item is changed.
Remember, if you add, for instance, a Surface Heat and it is not checked, after creating it, it will not be
drawn to the screen.
Set/Clear Buttons – Check and uncheck all checkboxes.
8 Adding Thermal Contact Thermal contacts are to represent an area of the surface of the board in contact with a heat sink. This
contacting surface can be defined by a defined temperature. If a temperature is not defined then
IntelliMesh Slave surfaces are created at the mating surface. In this way the Thermal Contact area can
mate to a chassis or other model that provides a heat transfer path. IntelliMesh allows the contact to be
made with different meshes on the mating surfaces.
17
Select PCB>Add Thermal Contact.
Side
This defines the side the thermal contact is on. In the Solaria model that is generated, Interface
elements are created on this side of the board.
Rectangular or Circular
The contact area can be rectangular or circular.
Width
This is the X or horizontal dimension of the contact if set at Rectangular.
Length
This is the Y or vertical dimension of the contact if set at Rectangular.
Diameter
The diameter of a circular area.
Resistance
This is the thermal resistance of the contact between the board surface and the heat sink. The units
should be in C/W, or those appropriate to the units you are using.
X-Y
This defines the X and Y location of the center of the contact area. If the contact is on the back of the
board, this is the X and Y location as looking from the FRONT of the board.
Select Diagonal
An additional way to define the location and size of the Thermal Contact is to select the Select Diagonal
button. As instructed on the button, select the diagonal points. The X and Y location as well as the
Width and Length will automatically be entered in the dialog.
Add
There are two ways to place the Thermal Contact. One is to enter the X and Y location of the center of
the area then hit the Add button. Note that when you are on the X-Y plane, the X and Y location of the
mouse is given on the bottom of the Solaria window. The second way is to check “Place with mouse”
then select the center of the contact area with the mouse. You can change the significant figures in the
X and Y location by going to Settings>OpenGL>Display. In the Text Display area, change the number of
decimal places displayed.
18
9 Add Simple Flow Fluid flow can be simulated by creating convection elements from the exposed board surfaces, stiffener
surfaces and component surfaces to a local air node. These local fluid nodes are connected using Solaria
Flow elements to account for the temperature rise of the fluid. Solaria Convection elements are
generated between the board surfaces and the local fluid nodes. A heat transfer coefficient is calculated
but should be verified so it accurately represents your configuration.
In the PCB>Settings dialog, in the Model tab, the number of flow nodes can be defined.
10 Add Natural Convection Natural convection is defined as heat transfer from a surface to a fluid where the fluid
movement is buoyancy induced. As the surface of a PCB heats up, it heats the surrounding air.
As the air heats, its density reduces which causes it to rise. This air movement induces better
heat transfer from the surface to the fluid. As the surface heats, the air movement increases,
which intern enhances the heat transfer. This phenomenon is simulated by calculating a heat
transfer coefficient that is a function of the temperature difference between the surface and
the fluid.
Natural convection is relatively inefficient. Therefore, radiation heat transfer from the board to
the surroundings can be significant.
19
Therefore when defining natural convection, you also have the option to define radiation heat
transfer as well.
Important note:
As explained above, natural convection is a function of the board temperature. It is also
effected by obstacles near the board which can hinder air flow. If this happens then higher
temperatures can result. On the other hand, pure natural convection is actually difficult to
achieve. Any slight forced air movement near the board can create more air movement than
that induced by the buoyancy. This can result in lower temperatures than those predicted. The
equations used in the calculation of the temperature difference heat transfer coefficient are
empirically formulated.
This can be simulated in SolariaPCB by selecting PCB>Add>Define Nat Convection.
The efficiency of natural convection depends on the orientation of the board. First define if the
board is horizontal or vertical. If it is vertical, then appropriate factors are used. If the board is
20
horizontal, then the side that is facing up must be defined. Heat transfer from the top side of
the board is more efficient than the side facing down and appropriate factors are used.
You can define natural convection from the front and/or back of the board. Select Front Side
then define the conditions, including the ambient temperature. Next check Cooling Exists then
hit the Add button. Do the same if there is similar heat transfer from the other side by selecting
the Back Side radio button.
Often, the surrounding surfaces are at a different temperature than the ambient air. So when
defining radiation heat transfer the surrounding temperature is defined.
11 Adding Vias If an ODB++ file is imported then vias will automatically be imported and thermally represented in the
thermal model. An array of vias can also be created manually. Select PCB>Add Vias. The settings in the
dialog shown below created the via array shown below the dialog.
21
Defining the layers the via is connected to
When the via drill hole is plated, it is electrically and thermally connected to the traces that cut through
the hole. SolariaPCB connects thermal resistors between these layers. These layers should be checked
in the dialog. Note that only metal layers are displayed.
Via location
Define the X and Y location of the lower left corner of the area of the vias. You can enter the X and Y
location or after all information is defined, check “Place component with mouse” then select the lower
left corner with the mouse. You will notice that the location of the mouse will appear in the X and Y edit
boxes. An array of vias will be created depending on the via pitch and the Length and Width of the area.
12 Adding Stiffeners
A stiffener is a three-dimensional material that is bonded to the board surface.
Side
This is the side of the board the stiffener is on.
Width
This is the X or horizontal dimension of the stiffener.
Length
This is the Y or vertical dimension of the stiffener.
X-Y
This defines the X and Y location of the center of the stiffener. If the stiffener is on the back of the
board, this is the X and Y location as looking from the FRONT of the board.
22
Material
This is the material the stiffener is made of.
Attach Properties
Define the Thickness and Material of the attach material.
Select Diagonal
An additional way to define the location and size of the Stiffener is to select the Select Diagonal button.
As instructed on the button, select the diagonal points. The X and Y location as well as the Width and
Length will automatically be entered in the dialog.
Add
There are two ways to place the Stiffener. One is to enter the X and Y location of the center of the area
then hit the Add button. Note that when you are on the X-Y plane, the X and Y location of the mouse is
given on the bottom of the Solaria window. The second way is to check “Place with mouse” then select
the center of the contact area with the mouse. You can change the significant figures in the X and Y
location by going to Settings>OpenGL>Display. In the Text Display area, change the number of decimal
places displayed.
13 Adding a surface heat load to the board
Location of the heat load
If the area of the heat load is rectangular, then the X-Y location is the center of the area. If the area is
circular then the X-Y location is the center of the circle. If defined heat load areas overlap, they will be
additive in the overlapping areas.
23
Heat load
This is the power to be defined over the area. In the Solaria model surface heat load elements are
created with a value in the property table of Heat Load divided by the applied area.
Layer
The surface heat load can be applied to the top or bottom surfaces of the board or any internal
Conducting layer. Simply select the layer you want the heat load applied. The last layer in the drop
down list will be the back surface of the board.
Width
If Rectangle is selected, enter the X or horizontal dimension of the heat load area.
Length
If Rectangle is selected, enter Y or vertical dimension of the heat load area.
Diameter
If Circular is selected, enter the diameter of the heat load area.
Select Diagonal
An additional way to define the location and size of the Surface Heat is to select the Select Diagonal
button. As instructed on the button, select the diagonal points. The X and Y location as well as the
Width and Length will automatically be entered in the dialog.
Add
There are two ways to place the Surface Heat Load. One is to enter the X and Y location of the center of
the area then hit the Add button. Note that when you are on the X-Y plane, the X and Y location of the
mouse is given on the bottom of the Solaria window. The second way is to check “Place with mouse”
then select the center of the contact area with the mouse. You can change the significant figures in the
X and Y location by going to Settings>OpenGL>Display. In the Text Display area, change the number of
decimal places displayed.
24
14 Adding a Layer Plate A Layer Plate is an area on a metal layer of the board where more metal is added by the user. The area
can be rectangular or circular. The material and thickness will be that defined for the layer selected.
Location of the Layer Plate
If the area of the Layer Plate is rectangular, then the X-Y location is the center of the area. If the area is
circular then the X-Y location is the center of the circle. If defined Layer Plates areas overlap, they will
be additive in the overlapping areas.
% Coverage
This is the percent coverage of the metal to be defined over the area. Typically this is 100 percent. But
if the metal is perforated for RF reasons, the value should be the metal area over the total area times
100.
Layer
The Layer Plate can be applied to the top or bottom surfaces of the board or any internal Conducting
layer. Simply select the layer you want the Layer Plate. The last layer in the drop down list will be the
back surface of the board.
Width
If Rectangle is selected, enter the X or horizontal dimension of the Layer Plate area.
Length
If Rectangle is selected, enter Y or vertical dimension of the Layer Plate area.
25
Diameter
If Circular is selected, enter the diameter of the Layer Plate area.
Select Diagonal
An additional way to define the location and size of the Layer Plate is to select the Select Diagonal
button. As instructed on the button, select the diagonal points. The X and Y location as well as the
Width and Length will automatically be entered in the dialog.
Add
There are two ways to place the Layer Plate. One is to enter the X and Y location of the center of the
area then hit the Add button. Note that when you are on the X-Y plane, the X and Y location of the
mouse is given on the bottom of the Solaria window. The second way is to check “Place with mouse”
then select the center of the contact area with the mouse. You can change the significant figures in the
X and Y location by going to Settings>OpenGL>Display. In the Text Display area, change the number of
decimal places displayed.
15 Adding Wedgelock Edge Contact A Thermal Contact can be defined from the board surface. But heatsinks typically extend beyond the
edges of the board. This feature will extend the heatsink layer of the board to accommodate a
Wedgelock. A 3D Layer much previously exist in the PCB. How the Wedgelock Edge Contact is
represented in the Solaria model is described in Section 29.5.
Board Edge
The selected 3D layer of the board can be extended on the four sides of the board.
26
3D Layer
Existing 3D layers are listed in the drop down. Select the one that extends.
Wedgelock Exists
To disable the Wedgelock Edge, uncheck Wedgelock Exists.
Define edge temperature
If the board is going to be solve stand-alone, then check Define edge temperature and enter its value in
the Edge temperature edit box. If this is left unchecked then IntelliMesh elements will be created on the
Interface elements where you can attach the PCB to a chassis.
Resistance
This defines the thermal resistance of the contact between the 3D layer contacting surface and the
chassis. This value is typically defined by the wedgelock manufacturer.
PCB Side
This defines the side that is in thermal contact with the chassis.
16 Adding Cutouts A Cutout is a hole in the board. The hole can pass through the entire board or just go from the board
surface down to a defined layer of the board. The partial hole can start on the front or the back side of
the board. If a component, or the leads of a component, lie within a Cutout, the thermal resistors that
represent the components contact with the board surface will automatically be attached to the upper
most exposed layer of the board.
The shape of a Cutout is defined by a set of three or more points. Four methods are provided to define
the points. If the Cutout area is rectangular then two methods are provided. The first, selecting
Rectangular, is done by defining the Width (horizontal direction) and the Length (vertical direction).
Next define the position on the board by entering the X and Y center location then hitting the Add
button or selecting the location with the mouse by checking Place with mouse. The second way is to
select Diagonal points then hit the Select points button. Next, select two diagonal points with the
mouse that define the corners. Next hit the Add button.
27
To define a circular Cutout, select Circular, define the diameter then define the location as described for
a Rectangular area. To define an arbitrary shape, select Multiple points, hit select points then select
locations on the board that define the shape. The Select points button will be redefined to DONE. Hit
the DONE when you are finished selecting points. Next hit the Add button.
When using the Multiple points option, the points cannot create an inclusion as shown on the left in the
figure below.
Defining the Terminating Layer
The possible layers the Cutout can go to are in the drop down list. These are locations of Nodes in the
thermal model generated.
Bad Good
28
The figure below shows a Cutout from the Front and one from the Back to Node layer 4.
17 Deleting items on the PCB Select PCB>Edit>Delete Items.
Item selection
Hit the Select button then select the center of the item. If the item isn’t deleted or Confirm is checked
and you don’t get a confirmation, then the item wasn’t properly selected. Hit the Select button again
and this time box in the center of the item. You can box in many items at once.
Confirmation prior to deleting
Check “Confirm Deletion” if you want to get a confirmation prior to deleting the item.
Filtering
If there are multiple item types close together then you can check only the item type you want to delete
and only those types can be selected. Alternatively, you can define what is drawn to the screen by
selecting PCB>View Entities. Only items that are visible on the screen can be selected.
29
18 Editing Vias Vias that were imported and created manually can be modified. To modify a group of vias that were
created manually, select PCB>Edit>Edit Vias. Hit the Select button then select the center of the
manually created vias. To modify vias that were imported from an ODB++ file, first check Select
imported vias, the hit the Select button and box in all the vias you want to modify. They will be
highlighted. If you select the wrong ones then hit the Select button again and reselect the vias. The
only value that can be changed is their drill diameter. Enter a new diameter then hit the Edit button.
19 Editing Cutouts To make a change to an existing Cutout, select PCB>Edit>Edit Cutout. Hit the Select button then select
the center of the Cutout, at the beginning of the Cutout name. If there are multiple cutouts at the same
location, hit the Next button to cycle through the ones found in the area selected. The three buttons
below the number list are used to make changes to the X-Y data. To change a value, select the line then
hit the Edit button below the list. To delete a line, select the line then hit the Del button. To add a row,
hit the Add button.
Once the changes are made, hit the large Edit button.
30
20 PCB default settings In the General tab, you can define how components are viewed on the screen, either as a rectangle or
as the geometry was defined in the ODB++ file, a Polyline.
These settings are saved when Solaria is closed. In the Via tab shown above, the settings are the default
values when the Add Via dialog is opened. They are also used for vias imported from an ECAD file. The
Model tab has settings defining how the Solaria model is generated.
In the Thermal tab, whether Typical or Maximum power is used is defined. You can also define a Power
factor. This is a multiplier for the component power applied to all components in the board. Checking
Space environment will assume that there is no gaseous conduction between the underside of the
component and the board surface.
31
In the Geometry tab, you define what values are used when calculating the conduction down the
leads/pads/solder balls. When Worst Case is selected, values leading to the highest thermal resistance
will be used. For a leaded component this would be Maximum length and Minimum Width and Height.
These values are defined in the Component Library Geometry dialogs.
𝑅 = 𝐿𝑒𝑛𝑔𝑡ℎ/(𝐾 ∗ 𝑊𝑖𝑑𝑡ℎ ∗ 𝐻𝑒𝑖𝑔ℎ𝑡)
In the Model tab, the number of flow nodes created in the Solaria model for Simple Air Flow is defined.
For the PCB meshing, the Maximum edge length for the meshed triangles is defined. A smaller number
will create a finer mesh for the board.
32
The Mesh Geometry tolerance can simplify the mesh of the board by removing small unneccesary
details.
There is a small jog in a trace segment which is 0.002” long
With the Mesh Geometry Tolerance set to 0.001 you get the mesh shown below. You can see small
elements capturing this detail.
With the Mesh Geometry Tolerance set to 0.01, prior to meshing the small jog is removed because it is
smaller than 0.01. You can see the board mesh is much better.
33
21 Getting information on a particular feature Select Information>Element. Hit the Select button then select the feature. In Solaria, you can click a
spot on the screen or drag a box over an area. For each selection, only the first feature found will be
displayed.
34
22 Electronic components SolariaPCB includes a large component library. This is defined as the Master Component Library.
22.1 Mapping Components
SolariaPCB comes with a component library which contains over 400 components. The data for each
component was derived from JEDEC documents. It includes component geometry including
lead/pad/solder ball information. In most cases it includes thermal information. Because there is no
such thing as accurate thermal resistance data for a specific package type (due to the many construction
and die variables) this data should be reviewed.
When an ODB++ file is imported, component outline, lead/pad/solder ball locations and at times,
component height are imported. To make a thermal connection to the board, lead/pad/solder ball
geometry and material are needed.
After importing an ODB++ file, the Map Component dialog automatically comes up. On the left side of
the dialog, the components on the board are listed. On the right side of the dialog, the components in
the library are listed. If you select a component in the left side list, that component will be drawn below
and specific information for that component is given. SolariaPCB then looks for a match to that
component from the library. If one is found, then it is highlighted in the right-side list and drawn
below. You can then hit the Map button to map the two components and have the data in the library is
assigned to the component on the board. The component name remains the same. The name of the
library component is assigned to the component type.
Instead of selecting one component at a time, you can hit the Auto Search button. SolariaPCB will then
go through the entire list of components on the board and search for a match in the library. If one is
found then you are given the opportunity to Map the components, as shown in the picture below.
35
22.2 Adding components to the library
One of the most tedious parts of PCB thermal simulation is getting component thermal information. So,
after spending the time to get accurate information, it is a good idea to now add that component to the
Master Component Library. The advantage to doing this is because when you do your next board and
go to the Map Components dialog, if that device is on the new board it will be found, and you can map
it.
Go to PCB>Add Component to Lib. Select the component on the right side, those on the board, then hit
the << button to add that component to the Master Component Library.
36
The more you use SolariaPCB and add components to the library, the less time you will have to spend
looking for component data.
22.3 The Component Library
To view the Master Component Library data, select PCB>Component Library. Select a component then
hit the Edit button.
In this dialog the type of component is defined, IC, Capacitor, Resistor, Connector, Diode, Transistor,
Test point, Transformer, Inductor, Regulator, Other. These values are only used when defining the type
of components to be drawn to the screen.
You also define whether the component is leadless, leaded or BGA construction. This setting defines
which Geometry dialog comes up and how that component will be thermally represented in the Solaria
model.
Hit the Geometry or Thermal Properties buttons to view the data.
37
22.4 Component Geometry
If the component is a BGA type, then this dialog will come up.
If the component is a leaded type, then this dialog will come up.
If the component is a leadless type, then this dialog will come up.
38
22.5 Component Thermal Properties
If you hit the Thermal Properties button, the following dialog will come up. Note at this time, Max Temp
and Emissivity values are not used. Maximum and Typical power dissipation values can be entered. If
values are defined when placing a component, then these values are not used.
The selects in the Type area only provide suggestions on different ways to defined the component
thermal resistance.
22.5.1 Guidelines for creating the component thermal representation
There are two parts to defining the component thermal representation, Nodes and Resistors. Nodes are
places where temperatures are calculated and are connected to each other, the board surface and
possibly the local air, by Resistors. To define a Compact Thermal Model, see Section 22.5.2.
To add a node, hit the Add button. From the drop down list, select a name for the node. A name can
only be used once. To remove a node select the column then hit the Cut button. If areas are not
defined then they will automatically be calculated from the geometry of the component.
39
Nodes
Nodes are assigned specific names that define what they represent. It is important to follow the
definitions provided because they define how they are used in the solution. In addition to a specific
name, a node can have an area and a percent heat load. If the node is a CASE, TOP, SIDE, TOP INNER or
TOP OUTER node, then this area defines the convective surface area. If the node is a BOTTOM, BOTTOM
INNER or BOTTOM OUTER node, then this area defines the possible area that can be bonded to the
board. The percent heat load of a node defines what percentage of the total component power
dissipation is associated with the node. Any node can dissipate heat. The total percent power for all
nodes must add up to 100. Remember, the value is a percent so they should add up to 100, not 1.
Resistors
Resistors are thermal resistive links between nodes. The nodes must be defined in the Nodes area of
the dialog. To add a resistor, hit the Add button. Select the two nodes and enter its value. The order of
the nodes does not matter. To remove a resistor select the column and hit the Cut button.
Below are several ways to define the component thermal resistance. Red Nodes are where the
component heat is applied. Blue resistors are calculated by SolariaPCB.
The convective surface area of the component top and sides can be defined by defining a TOP and a
SIDE node and defining their area. If Simple Air Flow has been defined then the CASE node will be
connected to the local fluid node. This is signified by the small blue arrows in the figures above.
1) Only a CASE node, no resistors
The resistance from the case to the board surface will be
calculated based on gap or bond and leads as detailed here. The
CASE area can be defined or it can be calculated based on
40
geometry.
2) JUNCTION to CASE resistor
JUNCTION to CASE resistor defined. TOP and SIDE areas defined.
If TOP or SIDE areas are not defined then they are calculated
from geometry. If the BOTTOM area is not defined then TOP the
area is used. The resistance from the case to the board surface
will be calculated based on gap or bond and leads as detailed
here.
3) CASE to BOARD resistor
Resistors are generated to the board surface based on the value
defined. The component cannot be bonded to the board since
the resistance to the board is defined. CASE area can be defined
or it can be calculated based on geometry.
4) JUNCTION to CASE, JUNCTION to BOARD
Resistors are generated to the board surface based on the value
defined. The component cannot be bonded to the board since the
resistance to the board is defined. CASE area can be defined or it
can be calculated based on geometry.
5) JUNCTION to CASE, JUNCTION to BOTTOM
The resistance from the case to the board surface will be
calculated based on gap or bond and leads as detailed here.
6) JUNCTION to CASE, CASE to BOARD
22.5.2 DELPHI thermal model
The table below shows and example of a DELPHI representation of a component provided by
the component manufacturer.
Junction Bo Bi To Ti
Junction 6.27 0.7 0.75 0.001
Bo 15.57 8.33
Bi 4.58 2.74
41
Five Nodes are created in the Nodes section of the dialog. Area under the die must be defined. If not,
defaults to 0.5 of the package area. Enter 100% for the JUNCTION Node. Create eight resistors in the
Resistor section between the Nodes per the table above.
The figure below to the right shows a side view of the Solaria model generated. Convection elements
are created from the two bottom nodes to the inner and outer areas of the board.
42
Below shows a top view of the Solaria model as well as the Nodes and Resistors.
23 Placing a component on the board
23.1 Adding to the Working Set
Before a component can be placed on the board, components from the library must be copied to the
Working Library. Select PCB>Add Components to Lib. Select a component on the left side, the
component library, then hit the >> button. This will copy it to the right side, the Working Library. If you
want to see data for the component in the Working Library, select the component then hit the Edit
button. If a component is imported from an ECAD file and it is completely defined, you can hit the <<
button to add it to the Master Library.
43
Active Only
Check Active Only to display only the Active components on the current board.
23.2 Placing the Component on the Board
To place a component on the board, select PCB>Add Component to PCB.
Working Set drop down
Select the component you want to place on the board from the Working Set drop down list.
Working Set button
If you want to view the details of the component, hit the Working Set button.
Reference Designator
Enter a reference designator you want to assign to the component. If one is not defined, a unique one
will automatically assigned.
Dissipation
The component power dissipation can be defined in the library or when it is placed. To define the
dissipation, check Define in the Dissipation area of the dialog. Enter a Typical and a Maximum value.
Orientation
A component is defined in a specific orientation in the library. It can be rotated to any arbitrary
orientation.
Side
This defines the side of the board the component is on.
44
Placing the component
The component can be placed two ways. You can enter the X-Y location of the center of the component
then hit the Add button. Or, check the Place component with mouse checkbox then select the location
of the center of the component on the board. You do not need to hit the Add button in this case.
Bonding to PCB
If the component is bonded or soldered to the board surface, check Bonded. Enter the percentage of
the component underside area that is bonded. Next select the material.
23.3 Import component data
The Import Component File option is used to define specific component data by importing it from a text file. Select PCB>Import Component File. The following dialog will come up.
If you select Yes then the component power dissipation, maximum and typical, will be set to zero prior to reading the file. If you select No, then only components defined in the file will be updated. All others will remain at their current values. The following defines the format and capability. The file can be comma, space or tab delimited. The data can be in any order. Let us know if there is more data you would like to import. PD, RefDes, Typical power, Maximum power PD defines adding power dissipation to a component JC, RefDes, 2.3 JC defines adding a Junction to Case resistance to a component JB, RefDes, 1.8 JB defines adding a Junction to Board resistance to a component The next option is to define all component data. If a value entered is zero then it is not assigned. It is highly recommended that the data be defined using Excel as if a single value is missing then the rest on the line will be assigned to the incorrect data. The Excel file ComponentData.xlsx is provided in your SolariaPCB folder. The first four lines in the file start with # and are ignored. They define the format of the four options. After importing the file, it is recommended that you verify that the data was imported correctly within SolariaPCB. AL, RefDes Typical power Maximum power J-C Resistance J-Board Resistance Component Min height Component Max height Component Min clearance
45
Component Max clearance Component Min lead width Component Max lead width Component Min lead thickness Component Max lead thickness Component Min lead length Component Max lead length Component Min pad width Component Max pad width Component Min pad length Component Max pad length example file: PD, U1, 2.3, 3.4 PD, U3, 0.8, 1.2 JC, U1, 5.6 JB, U3, 12.3 AL,U7, 1.2, 1.5, 12.3, 0.0, 0.12, 0.14, 0.002, 0.004, 0.008, 0.01,0.008, 0.01, 0.12, 0.16, 0.02, 0.025, 0.02, 0.025 JC, U6, 1.32 PD, U6, 3.4, 4.5
24 Defining Active components It is very important to only define as Active those components you want to find the component Junction
temperatures for. If a component has a power dissipation defined, that power dissipation will always be
part of the Solaria model, whether it is Active or not. If it is not active, it will be applied to the side of
the board where the component lies and at the location of the component. If the component is active
and the components thermal resistance is defined, then it will be added to the Junction node.
The rectangular shape of Active components will be meshed into the board. Therefore, components like
resistors and capacitors should not be active. If they are then the board mesh will be unnecessarily large
and the time to build the Solaria model will be long.
Select PCB>Define Active Components.
46
When you select a row, that component will be highlighted as shown above. Direct access to the
components Geometry and Thermal information is done by hitting the button in the Geometry and
Thermal columns, as shown above in the Thermal column for component I2.
Active area
To set active components of a certain type, check the types in the Active area then hit the Set Active
button.
Set Pdiss Active
If you hit the Set Pdiss Active button, only components that have a dissipation defined will be set as
Active.
Color coding
In PCB>Define Active Components, the Geometry and Thermal cells are color coded based on the information defined for that specific component. If enough data has been defined such that the component can be accurately represented, then the cell in green. If there is missing information but enough for the model, the cell is yellow. If there isn't enough data defined to thermally represent that component, then the cell is red. When you click on the cell twice it tells you what is missing then launches the appropriate dialog to define the data.
47
25 Creating a Solaria model To create a Solaria model, select PCB>Build board model. Next hit the Build button. The progress
dialog will give the status of the build. From this dialog you can get an idea of the mesh density of the
model. Below the status gives 130/542. This means that Layer 5 traces are being processed and mesh
triangle number 130 of the total of 542 is being processed. A board mesh of 542 is extremely small. For
a typical board with a dozen components and other items, the total will be between 2000 and 10,000. If
it is well beyond 10,000 then you should check to make sure only thermally important components are
defined as Active. Or in PCB>PCB Settings in the Model tab, make sure that Maximum edge length is not
too small as compared to the PCB with the dimensions you are using. For a 6” by 9” board, a value of
0.25” is good. That means the largest triangle edge will be 0.25 inches. For a 6” by 9” board when you
are using cm, the value should be 0.6. If it is significantly larger, hit the Cancel button and check these
values.
After the model is created, the following dialog will come up. The lower left corner of the board is at X =
0.0, Y = 0.0 and Z = 0.0. You can offset the board by entering and X, Y and Z offset. Next, hit Apply. The
Solaria model will be created in the Solaria window. Hit the toolbar button to view the model.
The board that is generated is automatically equivalence and compacted so it is ready to solve.
48
Hit the Cancel button when the dialog status says Done.
25.1 Solving the board
Hit the toolbar button to change to Solaria Mode. Select Solve>Steady State>Finite Diff or hit the
toolbar button. In the Solve Steady State dialog, hit the Solve button.
Select Results>PCB Results or from within PCB Mode, PCB>PCB Results. The Display temperatures
checkbox defines whether component temperatures are displayed for that PCB.
25.2 Viewing component temperatures in a table
If you have created multiple boards, select the other boards in the drop down to the right.
49
If you hit the Save Data button, the data for all boards will be written to a file.
25.3 Viewing component temperatures graphically
50
26 Deleting a PCB from a Solaria model If a single PCB is imported into Solaria for solving by itself, then if you want to make changes to the
board and resolve, then just select Edit>Clear the Current Model or the toolbar. But, if the model
was merged with other PCBs generated by Solaria or was merged into a chassis model, then it must not
be deleted manually within Solaria. If it is, then the Results Data files which includes the mapping
between Solaria and SolariaPCB will be out of sync. The only way to delete a PCB properly is to select
Edit>Delete PCB. It can be done within either environment but if done within Solaria Mode then you will
see the selected PCB disappear when the Delete button is hit. All Materials, Properties, Nodes and
Elements will be deleted. The Results Data file will also be automatically updated removing the PCB.
Junction temperature
Case temperature
51
27 Calculate PCB effective thermal conductivity PCB>Add>Add Grid Lines. Start by entering a X and Y increment values then hit the Process button.
To add more Grid Lines at specific locations, select the direction, enter the location then hit Add Grid.
Note that the location of your mouse as you move it is given at the bottom of the window. This can be
used to get the Location value.
The Build model option will create a Solaria model with each cell represented by a single Brick element
that references a Material that will have anisotropic thermal conductivity. An example is shown below.
Hit the Calc Effective Properties button when you are done creating Grid Lines. You can hit the Clear
Grids to remove all Grid Lines and redo them.
The Solaria model of the PCB will be generated accounting for all traces, planes, layers and vias in the
PCB.
52
Nodes at the vertical Grid Lines will be assigned as Boundary Nodes and the model solved for
temperatures. When done, the heat flux horizontally for each cell is calculated based on the results and
the thermal conductivity for each cell is calculated. Similarly, this is done for the Y and Z directions.
As notified, a file is written with the results. If the Build model option is selected then a Solaria model is
created.
53
28 Inserting a PCB into a chassis model When SolariaPCB creates a Solaria model, the lower left corner of the board is at X = 0.0 and Y = 0.0.
The 0.0 Z location is at the front surface of the board. So the board is built in the negative Z direction.
The thickness of the board in the model is the sum of the dielectric layers plus the sum of the 3D layers.
Conducting and 2D layers are represented by 2D elements and have no actual thickness in the model.
Just it is viewed in SolariaPCB, the Solaria model is built on the X-Y plane. Therefore, when building the
chassis model it is easiest if it was built such that the board lies on the X-Y plane. The model can be
rotated in Solaria but it is just one added step.
After the Solaria model is built within SolariaPCB you are given the opportunity to enter an X, Y and/or Z
offset. Unless you make some notes and do some calculations, it’s difficult to determine exactly what
offset will put the board exactly where it should go. It is easiest to enter an offset that will put the
board well away from the chassis model. In the Edit>Copy and Move dialog there is a Delta option.
Using this you can select a Node on the board then a Node on the chassis where that Node should go
and the distance in the X, Y and Z direction is entered in the dialog. Then the PCB can be boxed and
moved by that displacement.
28.1 Auto Move Object feature in Solaria
The chassis shown below was imported into NETGEN and 3D automeshed with Tetrahedron elements.
It was then imported into Solaria. In Solaria, IntelliMesh Master surfaces were added along the card
guides, where the PCBs make thermal contact. A thermal interface was added to the bottom of the
chassis to a coldplate.
54
The PCB below was generated by SolariaPCB by importing an ODB++ file. In SolariaPCB Thermal
Contacts were added along the top and bottom surfaces where the PCB makes contact with the chassis.
The chassis and the PCB models were merged. The chassis and PCB are put into their own Groups.
Notes:
1) The IntelliMesh surfaces are moved into place based on the center of the area of the IntelliMesh
Slave and Master surfaces. In the above example, the red area in the chassis is the IntelliMesh
area and extends the entire length of the surface. But the contact surface on the PCB does not
extend the entire width. If the board is to be centered in the chassis, the contact area on the
board should be extended.
2) If the move that was automatically performed was not as desired, then either hit the Cancel
button in the dialog or hit the Undo button a couple times to undo the rotations and try it again.
55
Now the PCB needs to be rotated then moved into place in the chassis. A gap is needed between the
Master and Slave IntelliMesh surfaces, less than the IntelliMesh tolerance.
To access the new feature, select Modify>Auto Move Objects. The dialog shown below will come up.
First select the Group that is fixed, in this case the chassis, then select the Group that will move, in this
case the PCB. Once they are selected, hit the Create Groups button.
56
Each group of IntelliMesh surfaces will automatically be shown with their given names. If the name
starts with F, then it is a Fixed IntelliMesh group. If the name starts with M, then it is a Moving
IntelliMesh group. Next, from the Moving and Fixed drop down, select which Moving IntelliMesh
surface should match up with the Fixed IntelliMesh surface. In this example we are selecting two pairs.
Next hit the Move Object button. First the moving object, in this case the PCB, is rotated so it is on the
same plane as the chassis IntelliMesh surfaces. I’ve stopped the process at this step to show the PCB
first rotation.
57
It does this by:
1) The centers and overall dimensions of the IntelliMesh Groups are calculated.
2) It determines what planes the Fixed and Moving IntelliMesh surfaces are on by determining
what dimension is zero. For instance, if it is on the XY plane then the Z dimension or thickness
of the nodes defining the IntelliMesh surfaces must be zero.
3) Next, the normal direction is determined for each InteliiMesh Group. This is based on the
element face the IntelliMesh surfaces lies on. When the Master and Slave surfaces are aligned,
the normal must be pointing towards each other. This therefore goes into determining the
rotation, positive or negative.
4) The geometric center of the moving object is calculated
5) The Moving Group is then rotated onto the correct plane.
Next, if necessary, the PCB is rotated on plane to align the Master and Slave surfaces. Again, I have
stopped the process to show the PCB second rotation.
58
This is done by:
1) The centers and overall dimensions of the IntelliMesh Groups are recalculated because they
have changed because of the first rotation.
2) The geometric center of the moving object is recalculated
3) If two pairs of IntelliMesh Groups were selected, then:
a. A line connecting the centers of the Fixed pair is compared to a line connecting the
centers of the Moving pair. If they are both horizontal or both vertical then which end
the first pair is on is used to determine if the Moving Group needs to be rotated 180
degrees.
b. If the lines are normal to each other, the Moving Group is rotated 90 degrees. Which
end the first pair is on is used to determine if the rotation is positive or negative.
4) If one pair of IntelliMesh Groups were selected, then:
a. A check is made to see if the long and short dimensions of the Fixed and Moving
IntelliMesh groups are aligned. If they are not, then the Moving group is rotated 90
degrees.
b. If a 90 degree rotation is needed, then the distance between the center and left and
right edges of the Moving and Fixed IntelliMesh groups are compared to determine if
the rotation should be negative or positive. Note that if there is symmetry in the
IntelliMesh groups and there is not symmetry in the Moving object then it may be
necessary to rotate the Moving object manually.
5) The Moving Group is rotated on the plane to the correct orientation.
The Moving Group is next moved into place. This is done by:
1. The centers and overall dimensions of the IntelliMesh Groups are recalculated because they
have changed because of the first rotation.
2. The geometric center of the moving object is recalculated
3. The centers of the first pair are used to get the X, Y and Z displacement.
4. The direction normal to the plane is adjusted to create a gap of half the IntelliMesh tolerance
defined in the dialog.
5. The Moving Group nodes are then moved.
The PCB is then automatically moved into place. All you have to do now is solve for temperatures.
59
Example 2 – Simple single pair
Below is a simple example of a PCB, green, and a device, red. The blue area on the PCB are Interface
elements with Slave IntelliMesh on their surface. The bottom side of the red area has Master
IntelliMesh on the underside surface.
Select Modify>Auto Move Objects then select the Fixed Group, the PCB, then select the Moving Group,
the Device then hit the Create Groups button. Notice that the Moving and Fixed groups are
automatically selected correctly since there is only one of each.
60
Hit the Move Object button.
All you have to do now is solve for temperatures.
61
Example 3 – Complex shapes
Below shows a tetrahedron meshed chassis and a PCB that was created by SolariaPCB.
Chassis PCB
The left picture below shows the chassis, red, with IntelliMesh surfaces, purple. On the underside of the
PCB on the right are IntelliMesh surfaces.
Chassis PCB
62
The goal is to rotate and move the PCB into the correct place within the chassis.
Chassis and PCB merged
In the Auto Move Objects dialog, the Housing and PCB Groups were selected then the Create Groups
button was hit. Since there is only one Move IntelliMesh group, it was automatically selected.
IntelliMesh group F-S-G-2 was selected for the Fixed group. The IntelliMesh group name is located at
the geometrical center of the IntelliMesh, therefore at the center of the PCB. The Move Object button
was next hit.
63
It is obvious from the picture below that the in-plane rotation based on the logic given earlier was
incorrect. But the IntelliMesh are facing each other correctly and they are the correct distance apart.
The PCB just needs to be rotated about the Y axis positive 90 degrees. This is easily done manually.
Display only the PCB Group. Now select Edit>Copy and Rotate. Select Rotate about the Y axis and
enter 90 degrees for the rotation. Be sure to check Rotate Nodes. Now check Select Rotation Axis and
then click on a node at the center of the PCB. Hit the Select button the box in the entire PCB. When you
view the entire model, you will probably see something like that below. It will be rotated differently
depending on the node selected.
64
Now the PCB needs to moved very slightly. There is a little know feature in Solaria called Edit>Grab and
Pull. It is used to select Nodes and manually, using the mouse, move the nodes selected. Since we can
visually see where the PCB needs to be, it is perfect for this operation.
Put into a Group just the PCB. Select Edit>Grab and Pull. Hit the Select button and box in the PCB.
Now view the entire model by selecting Group>Echo All, while leaving the Grab & Pull dialog up. Hold
the left mouse button down and slowly and carefully drag the PCB into place, resulting in yellow around
the PCB as shown below.
65
29 Details of the Solaria Thermal model
29.1 Representing the board
The exact shape of the board is represented as defined by the board Outline in SolariaPCB. The board
model is three dimensional with 3D Brick elements representing the dielectric layers. The metal layers
are represented two dimensionally. If an ODB++ file was not imported, then metal layers are
represented with 2D triangular Plate elements. Each layer references it’s own Property where a
material is reference and the layer thickness is defined. The layer thickness is the product of the defined
layer thickness and the percent coverage/100.
Example board 2D mesh
66
Six metal layers represented with 2D Plate elements
The green layers are 3D Brick elements representing the dielectric material
29.2 Representing Traces
If an ODB++ file is imported, then each trace is explicitly represented. For each layer in the board,
SolariaPCB goes through each triangle in the board mesh. For each triangle, it looks to see if a trace cuts
through it. Custom algorithms are used to represent the trace or traces by three resistors going
between the corner nodes that define that triangle.
67
The signal layer shown below on the left is thermally represented by the thermal resistors on the right.
68
29.2.1 Algorithms validation
As imported from an ODB++ file
Meshed by Solaria
Left side held at 0C and the right at 1C then solved
69
From the two Solaria models, exact mesh shown above and the SolariaPCB representation, the heat flow
from side to side was queried from Solaria. This process was repeated from top to bottom.
Explicit SolariaPCB representation Percent difference
Left to right 0.004184W 0.004376W 2.9%
Top to bottom 0.011297W 0.011765W 4.0%
70
29.3 Representing Vias
Knowing the location of every via, the plating thickness and material, the fill area and material, as well
as the layers the via is attached to, for each via three thermal resistors are generated going between the
nodes on the appropriate layers. The calculated thermal resistance is
𝑅 =1
(1𝑑𝑋
𝐾 ∗ 𝑎𝑟𝑒𝑎
)
𝑝𝑙𝑎𝑡𝑖𝑛𝑔
+ (1𝑑𝑋
𝐾 ∗ 𝑎𝑟𝑒𝑎
)
𝑓𝑖𝑙𝑙
Where dX is the distance between the connected layers. The resistance is proportioned to the three
nodes that define the triangle that via lies within.
Layer 2
Layer 3
Via
71
Shown above is the thermal representation of 1041 vias. The red dots are nodes and the green lines are
resistors. The view has been stretched in the Z direction to better show the resistors.
29.4 Modeling components
29.4.1 Attaching the component to the board
The attachment of the component to the board surface is calculated by SolariaPCB based on the data in
the component library. After the board is solved for temperatures, the total thermal resistance
calculated from the component case to the board accounting for all heat transfer paths is given for each
component in the Results Data summary table.
The thermal resistance down the leads is calculated by the following formula.
=
thickness)*(width*K
length LeadR
lead
leads
=
bottomair
gap
A*K
ClearanceR
=
100%coverage/*A*K
ClearanceR
bottombond
gap
72
29.5 Modeling the Wedgelock Edge
Lead resistors
Gap resistors
Case Node
Conduction
plate
Interface
elements
73
30 Joule Heating
The trace heating feature will calculate the heat dissipated in traces that are carrying current. When an
ODB++ file is imported, every trace in the board is imported. The electrical engineer designing the board
may have concerns on particular traces that are carrying a significant amount of current. IPC has
guidelines, but they do not account for all the local effect of complex boards. With this feature, you can
define Voltage sources and Current sources and sink on individual traces. You then define the rest of
the board as you would normally do, defining component data and dissipation, adding thermal contacts
so on. When you’re done with the board, simply select PCB>Build Board Model as you normally do. You
will notice now a few more dialogs will come up, but they are just to give you a status. When done, you
will, just as you usually do, have a ready to solve board Solaria model. But now it will include the power
dissipated by all the traces you have defined, as well as component and others you have defined.
Electrically connecting traces on different layers
When an ODB++ file is imported, all vias are imported. For each via, the layers it is electrically
connected to is imported. When calculating voltages, vias are electrically simulated. In the example
below, a trace on layer 5 and another on layer 1 is selected as being included in the voltage solution.
You can see that a Voltage of 5 Volts is defined on trace 1.
74
To make sure that the traces on the different layers will be electrically connected, select
Information>Element. Make sure Vias are viewed in PCB>View Entities. Hit Select then click on the
intersection of the two traces, as shown below. In this case it shows that the via is connecting layers 1
and 5. Therefore these two traces will be electrically connected in the voltage solution.
75
How to define a new trace
Make sure that the layer that the trace is on is visible. It is easiest to have only that layer visible. While
leaving the Edit Trace dialog up, select PCB>View Entities and check the layer. Hit the Select Trace
button then select the trace. You are trying to select the midpoint of any trace segment on the entire
trace. If it is easier, you can drag a box around the area. If the wrong trace is selected, then just try it
again. Next check the checkbox for “Include trace in voltage solution”.
In this example, a trace on layer 7 is also selected. You can see below that a current draw of 1.0 Amp is
defined.
Again, in Information>Element, selecting the via at the intersection of the Layer 5 and layer 7 trace
shows that there is a via connecting layers 5 and 7.
So in this case, the current applied to the trace on layer 7 will travel through the via to the trace on layer
5. It will travel down the trace on layer 5 and through the via connecting the trace on layer 1 to the
voltage at the other end of the trace on layer 1, completing the circuit.
76
Defining a trace to be included in the voltage solution
Select PCB>Edit Trace.
See below for adding a current source or sink or a Voltage source. Remember to hit the Save Data
button after making any changes to the dialog.
Changing the trace width
After selecting a trace, simply change the trace width displayed in the dialog. The width of an area or
filled trace cannot be changed. If the line trace width is increased to a value larger than the smallest
trace segment length, then the automesher will have problems meshing it correctly.
Changing the percent coverage
There may be times where an area or filled trace isn’t 100 percent copper. It may be an EMI shield
created by a field of lines. If it is about 50% copper, then the % Coverage should be changed to 50.
When the model is built, the thickness of the Plate elements representing the trace will be derated by
77
this value. So if the layer trace thickness is defined as 0.0014 inch, then the thickness in the Property
will be 0.0007 inches.
If traces have already been defined, select the one you want to view or edit from the Select Trace drop
down list.
The trace will be highlighted and information on the trace will be populated in the dialog. If the trace
wasn’t highlighted, then make sure that the layer the trace is on iv visible in PCB>View Settings.
78
Defining a Current source or sink
The figure below shows a 30 Amp current sink located at the X and Y location on the board as shown. A
current source should have a positive value. This is one that is supplying a fixed amount of current to
the board. A current sink should have a negative value. This is one the draws a fixed amount of current.
This would be like the pin of a component.
To define a new current source or sink, first hit the Add button. If you had not already checked “Include
trace in voltage solution” then you will be asked if you want the trace to be. Next check the Selected
checkbox in that row then hit either one of the Select Location buttons to the right. Next, using the
mouse, select one of the highlighted locations on the trace. Next enter the value of the current source
or sink under the Current column.
How to remove a current source or sink
Select anyplace in the row of the current source or sink you want to remove then hit the Cut button.
Defining a Voltage source
The figure below shows a 5 Volt source at the X and Y location on the board as shown.
To define a new Voltage source, first hit the Add button. If you had not already checked “Include trace
in voltage solution” then you will be asked if you want the trace to be. Next check the Selected
79
checkbox in that row then hit either one of the Select Location buttons to the right. Next, using the
mouse, select one of the highlighted locations on the trace. Next enter the value of the Voltage source
under the Voltage column.
How to remove a current source or sink
Select anyplace in the row of the Voltage source you want to remove then hit the Cut button.
How to remove a trace from the voltage solution
In the Edit Trace dialog, select the trace you want to disable. Uncheck “Include trace in voltage
solution”. Remember next to hit the Save Data button.
How traces are represented in the Solaria model
Shown is layer 5 of the PCB.
Shown below is layer 11 of the PCB.
The four traces shown above will be explicitly meshed in the board. Below are shown Solaria Line
elements that were generated from the traces selected.
Traces in voltage
solution
Trace in voltage solution
80
Filled or area trace meshing
When importing an ODB++ file, one option is to define the “Number of segments in a circle”. In the
figure below, the default value of 4 was used.
In the figure below a value of 8 was used.
81
Using a value of 8 will result in a much finer mesh with very little different in voltages calculated as well
as temperatures. Having a finer mesh will result in a longer Solaria model build time. But it is your
choice.
Line trace meshing
Solaria Line elements are generated along the exact perimeter of the line. The figure below shows the
line imported from the ODB++ file. It is simply a polyline connecting points with a defined width.
The figure below shows the Solaria Line elements along the perimeter of the line trace shown above.
The figure below shows the board mesh with only the board outline and the four traces included.
82
When the board is meshed, each trace references its own Property. The elements generated are on the
same layer in the model the actual trace is on.
This makes it easy to put the traces into Groups. When putting elements into a Group by Property, you
can check each trace individually or check Joule Heating to select them all.
All surface heat loads generated reference the Joule Heating Property. If you select
Information>Property you can see the total heat generated by the traces. In this case, 4.45 Watts.
83
Solving for voltages
After the entire Solaria model is built of the board, Boundary Nodes and Nodal Heat Loads are
generated on the traces to represent the Current sources and sinks and the Voltage sources. A Voltage
source is simply represented by a Boundary node at the defined Voltage value at the node at the
defined location. A current source or sink is simply represented with a Nodal Heat Load of the current
value defined at the node at the defined location. All traces, filled and line, are represented by 2D
triangular Plate elements. Each trace references a different Property where the thickness is defined. All
Properties reference the same Material that has the electrical conductivity of copper at 35C. Only this
part of the total Solaria model is sent to the Solaria Finite Difference solve to solve for voltages. The
“Heat Load” shown in the dialog below is actually the total current in the model.
After solving for voltages, the Boundary Nodes and the Nodal Heat Loads are deleted from the model.
All trace Properties are automatically changed to reference the material defined for the metal layers.
Next, as with any other SolariaPCB Solaria model build, the following dialog will come up. This dialog
allows you to offset the new board model. Hit Apply after changing any values.
84
Voltages are saved to a file so they can be imported later.
Solving for heat load based on the voltage drop
The 2D Plate elements are then sent to the algorithm that performs a dV2/R to generate Surface heat
loads. This calculation is performed for each triangular element based on the dV2/R for each of the
three legs of the triangle. R is the electrical resistance of the triangle. The three values are summed up
and divided by the triangle area creating a surface heat load.
Where R is the electrical resistance of the meshed element and dV is the local voltage drop.
The following dialog will come up.
Just hit OK then Cancel in the Solaria Model Generation Progress Bar dialog. Switch back to Solaria
Mode by hitting the toolbar button.
85
Viewing voltage drop in the traces
In Solaria, put the traces into a Group by selecting their Properties. Now you can view Voltages just as
you would view temperatures.
Solving for temperatures
The Solaria model created is ready to be solved for temperatures, assuming that you have added
boundary conditions like a Thermal Contact.
For the multi-layer trace model, the trace properties and the electrical vias were put into a group.
86
Displaying temperatures shows the Voltages on the traces.
The separation in the traces shown above-right, is where the electrical vias. Below shows the elements.
The vertical lines are the Resistor elements representing the vias.
87
Here are the board temperatures with power applied to one component in addition to the trace.
88
To see the effect of only the Joule heating in the traces, in the property for the component, the power
was changed to zero and the model was re-solved.
31 Representing Simple Air Flow
89
The convective heat transfer coefficient is calculated based on the board and entered geometry and air
flow rate using channel flow algorithms. The inlet Boundary Nodes reference the same Property
defining their temperature. The Flow Elements also reference the same Property defining the MdotCp
value. This value is calculated based on the volumetric flow rate times the air density times the air
Specific Heat. Density and Specific Heat values are at the inlet fluid temperature.
Resistor elements are created between the Case node to the local air node representing convection
from the component case. If you select Information>Element, hit the Select button then select the
center of this Resistor element, you will see that the Resistor references the same Property as the rest of
the Convection elements. So the same heat transfer coefficient (HTC) is used. The Area term in the
Property table is 1.0 and the Resistor has a factor which is the convective surface area of the
component. When solving the model, the thermal resistance of the Resistor element is calculated as
1.0/(HTC*factor*Area).
90
32 Representing natural Convection
Below shows an edge view of a board that has natural convection on both sides of the board.
Boundary Nodes are created on either side of the board at the defined temperatures.
The Boundary Nodes reference a Property where the temperature is defined. The Convection
elements from each side reference the same Property. As seen, the Convection heat transfer
coefficient references an array. The calculated component surface area is the Area value in the
dialog.
91
Shown below is the array that is referenced. You can see that the heat transfer coefficient is a
function of the temperature difference between the board surface and the air. During the
solution, this data is used to calculate the appropriate heat transfer coefficient based on the
board and air temperatures.
The figure below shows the Resistors that represent the components on the board. In this case
there are many components on the front of the board and one on the back of the board.
Resistor elements are automatically created from the component Case nodes to the air. This
Resistor element references a Property. In the Property dialog shown above, each component
Resistor references a new Property which has the reference designator for that component in
the name. You can see the Resistor element resistance is also a function of the temperature
92
difference between the Case node and the air. The surface area of the component is calculated
using the component geometry data.
How radiation is represented in the Solaria model
Radiation from the board surfaces is represented with Node to Surface Radiation elements.
Radiation from the front and back sides of the board each reference a Property, as shown
below. The Property defines the surrounding temperatures, View Factor and reference a
Material where an emissivity value of 0.8 is defined.
93
Node to Node Radiation elements represent the radiation from component Case nodes to the
surrounding temperatures. As seen in the Property table shown above, each Radiation link to a
component Case node references a Property. The calculated component surface area is the
Area value in the dialog. A view factor of 1.0 is defined and the property references a Material
where an emissivity value of 0.8 is defined. These values can be changed if you have better
values.