0% found this document useful (0 votes)
8 views

Introduction to COMSOL Multiphysics

The document serves as an introduction to COMSOL Multiphysics version 4.3b, detailing its capabilities as a flexible platform for modeling and simulating various physical phenomena. It emphasizes the importance of reliability in simulation results and highlights the software's adaptability and compatibility for multiphysics modeling. Additionally, it provides an overview of the COMSOL Desktop interface, including its components and functionalities for building and analyzing models.

Uploaded by

Kike Paniagua
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Introduction to COMSOL Multiphysics

The document serves as an introduction to COMSOL Multiphysics version 4.3b, detailing its capabilities as a flexible platform for modeling and simulating various physical phenomena. It emphasizes the importance of reliability in simulation results and highlights the software's adaptability and compatibility for multiphysics modeling. Additionally, it provides an overview of the COMSOL Desktop interface, including its components and functionalities for building and analyzing models.

Uploaded by

Kike Paniagua
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 148

Introduction to

Comsol Multiphysics ®

Version 4.3b
comsol_introduction.book Page i Monday, April 29, 2013 2:57 PM

Introduction to COMSOL Multiphysics


Protected by U.S. Patents 7,519,518; 7,596,474; 7,623,991. Patents pending.
This Documentation and the Programs described herein are furnished under the COMSOL Software License
Agreement (www.comsol.com/sla) and may be used or copied only under the terms of the license agreement.
COMSOL, COMSOL Multiphysics, Capture the Concept, COMSOL Desktop, and LiveLink are either registered
trademarks or trademarks of COMSOL AB. All other trademarks are the property of their respective owners, and
COMSOLAB and its subsidiaries and products are not affiliated with, endorsed by, sponsored by, or supported by
those trademark owners. For a list of such trademark owners, see www.comsol.com/tm.
Version: May 2013 COMSOL 4.3b

Contact Information
Visit the Contact Us page at www.comsol.com/contact to submit general inquiries, contact
Technical Support, or search for an address and phone number. You can also visit the Wordwide
Sales Offices page at www.comsol.com/contact/offices for address and contact information.

If you need to contact Support, an online request form is located at the COMSOL Access page at
www.comsol.com/support/case.

Other useful links include:

• Support Center: www.comsol.com/support


• Download COMSOL: www.comsol.com/support/download
• Product Updates: www.comsol.com/support/updates
• COMSOL Community: www.comsol.com/community
• Events: www.comsol.com/events
• COMSOL Video Center: www.comsol.com/video
• Support Knowledge Base: www.comsol.com/support/knowledgebase

Part No. CM010004


comsol_introduction.book Page i Monday, April 29, 2013 2:57 PM

Contents

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
The COMSOL Desktop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Example 1: Structural Analysis of a Wrench . . . . . . . . . . . . . . . . 20
Example 2: The Busbar—A Multiphysics Model . . . . . . . . . . . . . 42
Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Parameters, Functions, Variables and Model Couplings. . . . 69
Material Properties and Material Libraries. . . . . . . . . . . . . . . 73
Adding Meshes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Adding Physics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Parametric Sweeps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Parallel Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Appendix A—Building a Geometry . . . . . . . . . . . . . . . . . . . . . . 107
Appendix B—Keyboard and Mouse Shortcuts . . . . . . . . . . . . . 121
Appendix C—Language Elements and Reserved Names . . . . 124
Appendix D—File Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Appendix E—Connecting with LiveLink™ Add-Ons. . . . . . . . 142

|i
comsol_introduction.book Page ii Monday, April 29, 2013 2:57 PM

ii |
comsol_introduction.book Page 1 Monday, April 29, 2013 2:57 PM

Introduction

Computer simulation has become an essential part of science and engineering.


Digital analysis of components, in particular, is important when developing new
products or optimizing designs. Today a broad spectrum of options for simulation
is available; researchers use everything from basic programming languages to
various high-level packages implementing advanced methods. Though each of
these techniques has its own unique attributes, they all share a common concern:
Can you rely on the results?
When considering what makes software reliable, it’s helpful to remember the goal:
you want a model that accurately depicts what happens in the real world. A
computer simulation environment is simply a translation of real-world physical
laws into their virtual form. How much simplification takes place in the translation
process helps to determine the accuracy of the resulting model.
It would be ideal, then, to have a simulation environment that included the
possibility to add any physical effect to your model. That is what COMSOL is all
about. It’s a flexible platform that allows users to model all relevant physical
aspects of their designs. Expert users can go deeper and use their knowledge to
develop customized solutions, applicable to their unique circumstances. With this
kind of all-inclusive modeling environment, COMSOL gives you the confidence
to build the model you want with real-world precision.
Certain characteristics of COMSOL become apparent with use. Compatibility
stands out among these. COMSOL requires that every type of simulation included
in the package has the ability to be combined with any other. This strict
requirement mirrors what happens in the real world. For instance in nature
electricity is always accompanied by some thermal effect; the two are fully
compatible. Enforcing compatibility guarantees consistent multiphysics models
and the knowledge that you never have to worry about creating a disconnected
model again.
Another noticeable trait of the COMSOL platform is adaptability. As your
modeling needs change, so does the software. If you find yourself in need of
including another physical effect, you can just add it. If one of the inputs to your
model requires a formula, you can just enter it. Using tools like parameterized
geometry, interactive meshing and custom solver sequences, you can quickly adapt
to the ebbs and flows of your requirements.
The flexible nature of the COMSOL environment facilitates further analysis by
making “what-if” cases easy to set up and run. You can take your simulation to the
production level by optimizing any aspect of your model. Parameter sweeps and
target functions can be executed directly in the user interface. From start to finish,
COMSOL is a complete problem-solving tool.

Introduction |1
comsol_introduction.book Page 2 Monday, April 29, 2013 2:57 PM

The COMSOL Desktop

MENU BAR—Use these menus for access MAIN TOOLBAR—The main toolbar has
to functionality such as file load/save, standard buttons for frequently used
selections, desktop layout, preferences, and actions such as load/save, print, and help.
documentation. It adapts to the active Model Tree node.

MODEL BUILDER
TOOLBAR

INITIAL MODEL
TREE

MODEL BUILDER MODEL WIZARD WINDOW—Guided


WINDOW—The modeling steps to set space dimension, physics and
process is controlled through the study types.
Model Builder window with a
Model Tree together with
associated toolbar buttons.
MODEL LIBRARY WINDOW—Easy
access to COMSOL and user model
libraries.

2 | The COMSOL Desktop


comsol_introduction.book Page 3 Monday, April 29, 2013 2:57 PM

GRAPHICS WINDOW TOOLBAR

GRAPHICS WINDOW—The Graphics window presents


interactive graphics for Geometry, Mesh, and Results.
Interactions include rotating, panning, zooming, and
selecting. It is the default window for most Results and
visualizations.

INFORMATION WINDOWS—The Information windows will display vital


model information during the simulation, such as the solution time, solution
progress, mesh statistics and solver logs, as well as Results Tables, if any.

The COMSOL Desktop |3


comsol_introduction.book Page 4 Monday, April 29, 2013 2:57 PM

The Desktop on the previous pages is what you see when you first start COMSOL.
The COMSOL Desktop provides a complete and integrated environment for
physics modeling and simulation. You can customize it to your own needs. The
Desktop windows can be resized, moved, docked and detached. Any changes you
make to the layout will be saved when you close the session and used again the
next time you open COMSOL. As you build your model, additional windows and
widgets will be added. (See page 16 for an example of a more developed desktop).
Among the possible windows are the following:

Settings Window
This is the main window for entering all of the specifications of the model, the
dimensions of the geometry, the properties of the materials, the boundary
conditions and initial conditions, and any other information that the solver will
need to carry out the simulation.

Plot Windows
These are the windows for graphical output. In addition to the Graphics window,
Plot windows are used for Results visualization. Several Plot windows can be used
to show multiple results simultaneously. A special case is the Convergence Plot

4 | The COMSOL Desktop


comsol_introduction.book Page 5 Monday, April 29, 2013 2:57 PM

window, an automatically generated Plot window that displays a graphical


indication of the convergence of the solution process while a model is running.

Information Windows
These are the windows for non-graphical information. They include:
• Messages: Various information about events of the current COMSOL
session is displayed in this window.
• Log: Information from the solver such as number of degrees of freedom,
solution time and solver iteration data.
• Progress: Progress information from the solver as well as stop buttons.
• Table: Numerical data in table format as defined in the Results branch.
• External Process: Provides a control panel for cluster, cloud and batch jobs.

Other Windows
• Material Browser: Access the material property libraries.
• Model Library Update: An update service for downloading new model
tutorials as well as update existing models to the Model Library.
• Selection List: A list of geometry objects, domains, boundaries, edges and
points which are currently available for selection.

Progress Bar with Cancel Button


The Progress Bar with a button for cancelling the current computation, if any, is
located in the lower right-hand corner of the COMSOL Desktop window.

Dynamic Help
The Help window provides context dependent help texts about windows and
Model Tree nodes. If you have the Help window open in your desktop (by typing
F1 for example) you will get dynamic help (in English only) when you click a node
or a window. From the Help window you can search for other topics such as menu
items.

The COMSOL Desktop |5


comsol_introduction.book Page 6 Monday, April 29, 2013 2:57 PM

Prefe re n c es

Preferences are settings that affect the modeling environment. Most are persistent
between modeling sessions, but some are saved with the model. You access
Preferences from the Options menu.

In the Preferences window you can change settings such as graphics rendering,
number of displayed digits for Results, or maximum number of CPU cores used
for computations. Take a moment to browse your current settings to familiarize
yourself with the different options.
There are three graphics rendering options available: Open GL, Direct X, and
Software Rendering. Direct X is not available on Mac OS X or Linux but is
available on Windows if you choose to install the Direct X runtime libraries during
installation. If your computer doesn’t have a dedicated graphics card, you may
have to switch to Software Rendering for slower but fully functional graphics. A
list of recommended graphics cards can be found at:
http://www.comsol.com/products/requirements/

If you cannot use the arrow-keys to step up and down the Preferences list,
you should change the Rendering selection in the Graphics Preferences.

6 | The COMSOL Desktop


comsol_introduction.book Page 7 Monday, April 29, 2013 2:57 PM

T h e M o d e l B u i l d e r a n d t h e M o d e l Tre e

The Model Builder is the tool where you define the model: how to solve it, the
analysis of results, and the reports. You do that by building a Model Tree.
You build the tree by starting with a default Model Tree, adding nodes, and
editing the node settings.
All of the nodes in the default Model Tree are top-level parent nodes. You can
right-click on them to see a list of child nodes, or subnodes, that you can add
beneath them. This is the means by which nodes are added to the tree.
When you left-click on a child node, then you will see its node settings in the
Settings window. It is here that you can edit node settings.
It is worth knowing that if you have the Help window open (which is achieved
either by clicking Help in the menu bar, or by typing function key F1), then you
will also get dynamic help (in English only) when you click on a node.

T HE R OOT , G LOBAL D EFINITIONS AND R ESULTS N ODES


A Model Tree always has a Root node
(initially labeled Untitled.mph), a
Global Definitions node and a Results
node. The label on the Root node is
the name of the multiphysics model
file, or MPH file, that this model is
saved to on the disk. The Root node
has settings for author name, default
unit system, and more.
The Global Definitions node is where you define parameters, variables, functions,
and computations that can be used throughout the Model Tree. They can be used,
for example, to define the values and functional dependencies of material
properties, forces, geometry, and other relevant features. The Global Definitions
node itself has no settings, but its child nodes have plenty of them.

The COMSOL Desktop |7


comsol_introduction.book Page 8 Monday, April 29, 2013 2:57 PM

The Results node is where you access the solution after performing a simulation
and where you find tools for processing the data. The Results node initially has
five subnodes:
• Data Sets: contains a list of
solutions you can work with.
• Derived Values: defines values to
be derived from the solution using
a number of postprocessing tools.
• Tables: is a convenient destination
for the Derived Values, or for
Results generated by probes that
monitor the solution in real-time
while the simulation is running.
• Export: defines numerical data, images and animations to be exported to
files.
• Reports: contains automatically generated or custom reports about the
model in HTML or Microsoft Word format.
To these five default subnodes you may also add additional Plot Group subnodes
that define graphs to be displayed in the Graphics window or in Plot windows.
Some of these may be created automatically, depending on the type of simulations
you are performing, but you may add additional figures by right-clicking on the
Results node and choosing from the list of plot types.

T HE M ODEL AND S TUDY N ODES


In addition to the three nodes just
described, there are two additional
top-level node types: Model nodes
and Study nodes. These are usually
created by the Model Wizard when
you create a new model. After using
the Model Wizard to specify what
type of Physics you are modeling,
and what type of Study (e.g. steady-state, time-dependent, frequency-domain, or
eigenfrequency analysis) you will carry out, the Wizard automatically creates one
node of each type and shows you their contents.

8 | The COMSOL Desktop


comsol_introduction.book Page 9 Monday, April 29, 2013 2:57 PM

It is also possible to add


additional Model and Study
nodes as you develop the model.
Since there can be multiple
Model and Study nodes and it
would be confusing if they all had
the same name, these types of
nodes can be renamed to be
descriptive of their individual
purposes.
If a model has multiple Model Keyboard Shortcuts
nodes, they can be coupled
together to form a more
sophisticated sequence of
simulation steps.

Note that each Study node may carry out a different type of computation, so each
one has a separate Compute button.
To be more specific, suppose
that you build a model that
simulates a coil assembly that is
made up of two parts, a coil
and a coil housing. You could
create two Model nodes, one
of which modeled the coil and
the other of which modeled
the coil housing. You would
then rename each of the nodes
with the name of the object
that it modeled. Similarly, you
might also create two Study
nodes, the first simulating the
stationary, or steady-state, behavior of the assembly and the second simulating the
frequency response. You could rename these two nodes to Stationary and
Frequency Domain. When the model is completed, it could be saved to a file
named Coil Assembly.mph. At that point, the Model Tree in the Model Builder
would look like the figure to the right.
In this figure, the Root node is named Coil Assembly.mph, indicating the file in
which the model is saved. The Global Definitions node and the Results node each
have their default name. In addition there are two Model nodes and two Study
nodes with the names chosen in the previous paragraph.

The COMSOL Desktop |9


comsol_introduction.book Page 10 Monday, April 29, 2013 2:57 PM

P ARAMETERS , VARIABLES AND S COPE

Parameters
Parameters are user-defined constant scalars that are usable throughout the Model
Tree. (That is to say, they are “global” in nature.) Important uses are:
• Parameterizing geometric dimensions
• Specifying mesh element sizes
• Defining parametric sweeps (i.e. simulations that are repeated for a variety
of different values of a parameter).
A Parameter Expression can contain numbers, parameters, built-in constants,
functions with Parameter Expressions as arguments, and unary and binary
operators. For a list of available operators, see “Appendix C—Language Elements
and Reserved Names” on page 124. Because these expressions are evaluated
before a simulation begins, Parameters may not depend on the time variable t.
Likewise, they may not depend on spatial variables, like x, y, or z, nor on the
dependent variables that your equations are solving for.
It is important to know that the names of Parameters are case-sensitive.
You define Parameters in the Model Tree under Global Definitions.

10 | The COMSOL Desktop


comsol_introduction.book Page 11 Monday, April 29, 2013 2:57 PM

Variables
Variables can be defined either in the Global Definitions node or in the Definitions
subnode of any Model node. Naturally the choice of where to define the variable
depends upon whether you want it to be global (i.e. usable throughout the Model
Tree) or locally defined within a single one of the Model nodes. Like a Parameter
Expression, a Variable Expression may contain numbers, parameters, built-in
constants, and unary and binary operators. However, it may also contain Variables,
like t, x, y, or z, functions with Variable Expressions as arguments, and dependent
variables that you are solving for as well as their space and time derivatives.

Scope
The “scope” of a Parameter or Variable is a statement about where it may be used
in an expression. As we have said, all Parameters are defined in the Global
Definition node of the model tree. This means that they are global in scope and
can be used throughout the Model Tree.
A Variable may also be defined in the Global Definitions node and have global
scope, but they are subject to limitations other than their scope. For example,
Variables may not be used in Geometry, Mesh, or Study nodes (with the one
exception that a Variable may be used in an expression that determines when the
simulation should stop).
A Variable that is defined, instead, in the Definitions subnode of a Model node
has local scope and is intended for use in that particular Model (but, again, not in
Geometry or Mesh nodes). They may be used, for example, to specify material
properties in the Materials subnode or to specify boundary conditions or
interactions. It is sometimes valuable to limit the scope of the variable to only a
certain part of the geometry, such as certain boundaries. For that purpose,
provisions are made in the Settings for a Variable definition to apply the definition
either to the entire geometry of the Model, or only to certain Domains,
Boundaries, Edges, or Points.

The COMSOL Desktop | 11


comsol_introduction.book Page 12 Monday, April 29, 2013 2:57 PM

The picture below shows the definition of two Variables, q_pin and R, in which
the scope is being limited to just two boundaries identified by numbers 15 and 19.

Similarly they could have been defined only on selected Domains, Edges, or
Points. Such Selections can optionally be named and then referenced elsewhere in
a model, such as when defining material properties or boundary conditions that
will use the Variable. To give a name to the Selection, click on the Create Selection
button ( ) to the right of the Selection list.
Although Variables defined in the Definitions subnode of a Model node are
intended to have local scope, they can still be accessed outside of the Model node
in the Model Tree by being sufficiently specific about their identity. This is done
by using a “dot-notation” in which the Variable name is preceded by the name of
the Model node in which it is defined and they are joined by a “dot.” In other
words, if the Variable named foo is defined in a Model node named MyModel,
then this variable may be accessed outside of the Model node by using
MyModel.foo. This can be useful, for example, when you want to use the variable
to make plots in the Results node.

12 | The COMSOL Desktop


comsol_introduction.book Page 13 Monday, April 29, 2013 2:57 PM

B u i l t - i n C o n s t a n t s , Va r i a bl e s a n d F u n c t i o n s

COMSOL comes with many built-in constants, variables and functions. They have
reserved names that cannot be redefined by the user. If you use a reserved name
for a user-defined variable, parameter, or function, the text where you enter the
name will turn orange (a warning) or red (an error) and you will get a tooltip
message if you select the text string.
Some important examples are:
• Mathematical constants such as pi (3.14...) or the imaginary unit i or j
• Physical constants such as g_const (acceleration of gravity), c_const (speed
of light), or R_const (universal gas constant)
• The time variable t
• First and second order derivatives of the Dependent variables (the solution)
whose names are derived from the spatial coordinate names and Dependent
variable names (which are user-defined variables)
• Mathematical functions such as cos, sin, exp, log, log10, and sqrt

See “Appendix C—Language Elements and Reserved Names” on page 124 for
more information.

The Model Librar y

The Model Library is a collection of Model MPH-files with accompanying


documentation that includes a theoretical background and step-by-step
instructions. Each physics-based COMSOL Module comes with its own set of

The COMSOL Desktop | 13


comsol_introduction.book Page 14 Monday, April 29, 2013 2:57 PM

Model Library examples. You can use the step-by-step instructions and the Model
MPH-files as a template for your own modeling and applications.

To open the Model Library, select View>Model Library ( ) from the main
menu, and then search by model name or browse under a module folder name.
Click to highlight any model of interest, and select Open Model and PDF to open
both the model and the documentation explaining how to build the model.
Alternatively, click the Help button ( ) or select Help>Documentation in
COMSOL to search by model name or browse by module.
The Model Library is updated on a regular basis by COMSOL. Choose
View>Model Library Update ( ) to update the model library. This connects you
to COMSOL’s Model Update website where you can access the latest models and
model updates. This may typically include models that have been added or
improved since the latest product release.
The MPH-files in the COMSOL Model Library can have two formats—Full
MPH-files or Compact MPH-files.
• Full MPH-files include all meshes and solutions. In the Model Library these
models appear with the icon. If the MPH-file’s size exceeds 25MB, a

14 | The COMSOL Desktop


comsol_introduction.book Page 15 Monday, April 29, 2013 2:57 PM

tooltip with the text “Large file” and the file size appears when you position
the cursor at the model’s node in the Model Library tree.
Compact MPH-files include all settings for the model but have no built meshes
and solution data to save file size. You can open these models to study the settings
and to mesh and re-solve the models. It is also possible to download the full
versions—with meshes and solutions—of most of these models through Model
Library Update. In the Model Library such models appear with the icon. If
you position the cursor at a compact model in the Model Library window, a No
solutions stored message appears. If a full MPH-file is available for download, the
corresponding node’s context menu includes a Model Library Update item.

The following spread shows an example of a customized Desktop with additional


windows.

The COMSOL Desktop | 15


comsol_introduction.book Page 16 Monday, April 29, 2013 2:57 PM

MODEL BUILDER WINDOW—The modeling MENU BAR—Use these menus for MAIN TOOLBAR—The main toolbar
process is controlled through the Model Builder access to functionality such as file has standard buttons for frequently used
window with a Model Tree together with load/save, selections, desktop layout, actions such as load/save, print, and help.
associated toolbar buttons. preferences, and documentation. It adapts to the active Model Tree node.

MODEL TREE—The
Model Tree gives an
overview of the model
and all the functionality
and operations needed
for building and solving a
model as well as
processing the results.

SETTINGS WINDOW—
Click any node to see its
associated settings
window displayed next to
the Model Builder.

MODEL LIBRARY
WINDOW—Easy
access to COMSOL and
user model libraries.

PLOT WINDOW—The Plot window visualizes INFORMATION WINDOWS—The Information windows


Results quantities, probes, and convergence plots. will display vital model information during the simulation
Several Plot windows can be used to show such as solution time, solution progress, mesh statistics,
multiple results simultaneously. and solver logs, as well as Results Tables, if any.

16 | The COMSOL Desktop


comsol_introduction.book Page 17 Monday, April 29, 2013 2:57 PM

GRAPHICS WINDOW—The Graphics window presents DYNAMIC HELP—Continuously updated with online
interactive graphics for Geometry, Mesh, and Results. access to the Knowledge Base and Model Gallery.
Interactions include rotating, panning, zooming, and selecting. The Help window enables easy browsing with extended
It is the default window for most Results visualizations. search functionality.

PROGRESS BAR WITH CANCEL BUTTON

The COMSOL Desktop | 17


comsol_introduction.book Page 18 Monday, April 29, 2013 2:57 PM

Wo r k f l ow a n d S e q u e n c e o f O p e r a t i o n s

In the Model Builder window of this example, every step of the modeling process,
from defining global variables to the final report of results, is displayed in the
Model Tree.

From top to bottom, the Model Tree defines an orderly sequence of operations.
In the following branches of the Model Tree, node order makes a difference and
you can change the sequence of operations by moving the nodes up or down the
Model Tree:
• Geometry
• Material
• Physics
• Mesh

18 | The COMSOL Desktop


comsol_introduction.book Page 19 Monday, April 29, 2013 2:57 PM

• Study
• Plot Groups

In the Model Definitions branch of the tree, the ordering of the following node
types also makes a difference:
• Perfectly Matched Layers
• Infinite Elements

Nodes may be reordered by these methods:


• Drag-and-drop,
• Right-clicking the node and selecting Move Up or Move Down, or
• Pressing Ctrl + up-arrow or Ctrl + down-arrow.
In other branches, the ordering of nodes is not significant with respect to the
sequence of operations but some nodes can be reordered for readability. Child
nodes to Global Definitions is one such example.
You can view the sequence of operations presented as program code statements by
saving the model as a Model M-file or as a Model Java-file after having selected
Reset History in the File menu. (Note: the model history keeps a complete record
of the changes you make to a model as you build it. As such, it includes all your
corrections, changes of parameters and boundary conditions, modifications of
solver method, etc. Resetting this history removes all of the overridden changes
and leaves a clean copy of the most recent form of the model steps.)
As you work with the COMSOL Desktop and the Model Builder you will grow
to appreciate the organized and streamlined approach. But any description of a
user interface is inadequate until you try it for yourself. So, in the next chapters
you are invited to work through two examples to familiarize yourself with the
software.

The COMSOL Desktop | 19


comsol_introduction.book Page 20 Monday, April 29, 2013 2:57 PM

Example 1: Structural Analysis of a Wrench

This simple example requires none of the add-on products to COMSOL


Multiphysics. For more fully-featured structural mechanics models, see the Model
Library of the Structural Mechanics Module.
At some point in your life, it is likely you have tightened a bolt using a wrench.
This exercise takes you through a structural mechanics model that analyzes this
basic task from the perspective of structural integrity of the wrench subjected to a
worst-case loading.
The wrench is, of course, made from steel, a ductile material. If the applied torque
is too high, the tool will be permanently deformed due to the steel’s elastoplastic
behavior when pushed beyond its yield stress level. To analyze whether the wrench
handle is appropriately dimensioned, you will check if the mechanical stress level
is within the yield stress limit.
This tutorial gives a quick introduction to the COMSOL workflow. It starts with
opening the Model Wizard and adding a physics option for solid mechanics. Then
a geometry is imported and the Material Browser is opened to add steel as the
choice of material. You then explore the other key steps in creating a model by
defining a parameter and boundary condition for the load, selecting geometric
entities in the Graphics window, defining the Mesh and Study, and finally
examining the results numerically and through visualization.
If you prefer to practice with a more advanced model, read this section to
familiarize yourself with some of the key features, and then go to the tutorial
“Example 2: The Busbar—A Multiphysics Model” on page 42.

20 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 21 Monday, April 29, 2013 2:57 PM

M o d e l W i z a rd

1 To start the software, double-click the COMSOL icon on


the desktop which will take you to the Model Wizard. Or
when COMSOL is already open, you can start the Model
Wizard in one of these three ways:
- Click the New button on the main toolbar
- Select File > New from the main menu
- Right-click the root node and select Add Model

The Model Wizard, visible to the right of the Model Builder, will guide you
through the first steps of setting up a model. The first window lets you select
the dimension of the modeling space.
2 In the Select Space Dimension
window, the 3D button is selected
by default. Click Next .

3 In Add Physics, select Structural


Mechanics > Solid Mechanics (solid)
. Click Next .
With no add-on modules, Solid
Mechanics is the only physics user
interface available in the Structural
Mechanics folder. In the picture to
the right, the Structural Mechanics
folder is shown as it looks when all
add-on modules are available.

Example 1: Structural Analysis of a Wrench | 21


comsol_introduction.book Page 22 Monday, April 29, 2013 2:57 PM

4 Click Stationary under Preset


Studies. Click the Finish button .
Preset Studies have solver and
equation settings adapted to the
selected physics: in this example,
Solid Mechanics. A Stationary study
is used in this casethere is no
time-variation of loads or material
properties.
Any selection from the Custom
Studies branch needs manual
settings.

Geometr y

This tutorial uses a geometry that was previously created and stored on
COMSOL’s native CAD format .mphbin. To learn how to build your own
geometry, see “Appendix A—Building a Geometry” on page 107.

File Locations
The location of the Model Library that contains the model file used in this exercise
varies based on the software installation and operating system. On Windows, the
file path will be similar to C:\Program Files\COMSOL\COMSOL43b\models\.

22 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 23 Monday, April 29, 2013 2:57 PM

1 In the Model Builder window, under Model 1, right-click Geometry 1 and


select Import .

2 In the Import settings window, from the Geometry import list, select
COMSOL Multiphysics file.

3 Click Browse and locate the file wrench.mphbin in the Model Library folder of
the COMSOL installation folder. Its default location on Windows is
C:\Program Files\COMSOL\COMSOL43b\models\COMSOL_Multiphysics\
Structural_Mechanics\wrench.mphbin
Double-click to add or click Open.

Example 1: Structural Analysis of a Wrench | 23


comsol_introduction.book Page 24 Monday, April 29, 2013 2:57 PM

4 Click Import to display the geometry in the Graphics window.

Rotate: Left-click and drag

Pan: Right-click and drag

5 Click the wrench geometry in the Graphics window and experiment with
moving it around. As you click and right-click the geometry, it changes color.
Click the Zoom In , Zoom Out , Go to Default 3D View , Zoom
Extents , and Transparency buttons on the toolbar to see what happens to
the geometry:
- To rotate the model, left-click and drag it in the Graphics window.
- To move it, right-click and drag.
- To zoom in and out, center-click (and hold) and drag.

Also see “Appendix B—Keyboard and Mouse Shortcuts” on page 121 for
additional information.
The imported model has two parts, or domains, corresponding to the bolt and the
wrench. In this exercise, the focus will be on analyzing the stress in the wrench.

24 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 25 Monday, April 29, 2013 2:57 PM

Mate rials

The Materials node stores the material properties for all physics and all domains
in a Model node. Use the same generic steel material for both the bolt and tool.
Here is how to choose it in COMSOL.
1 Open the Material Browser.
You open the Material Browser in
either of these two ways:
- Right-click Materials in the
Model Builder and select Open
Material Browser
- Use the Menu Bar to select View >
Material Browser
2 In the Material Browser, under
Materials, expand the Built-In
folder. Scroll down to find
Structural Steel, right-click and
select Add Material to Model.

Example 1: Structural Analysis of a Wrench | 25


comsol_introduction.book Page 26 Monday, April 29, 2013 2:57 PM

3 Examine the Material


Contents section to see the
properties that are available
and will be used by the
Physics in the simulation
(indicated by green check
marks).

Also see the busbar tutorial sections “Materials” on page 49 and


“Customizing Materials” on page 73 to learn more about working with
the Material Browser.

Global Definitions

You will now define a global parameter specifying the load applied to the wrench.

Parameters
1 In the Model Builder, right-click Global Definitions and choose
Parameters .
2 Go to the Parameters settings window. Under Parameters in the Parameters
table (or under the table in the fields), enter these settings:
- In the Name column or field, enter F.
- In the Expression column or field, enter 150[N]. The square-bracket
notation is used to associate a physical unit to a numerical value, in this case
the unit of force in Newton. The Value column is automatically updated
based on the expression entered (when you leave the window or press
Return).
- In the Description column or field,
enter Applied force.
The sections “Global Definitions” on
page 45 and “Parameters, Functions,
Variables and Model Couplings” on
page 69 show you more about working
with parameters.

26 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 27 Monday, April 29, 2013 2:57 PM

So far you have added the physics and


study, imported a geometry, added the
material, and defined one parameter. The
Model Builder node sequence should
now match the figure to the right. The
default feature nodes under Solid
Mechanics are indicated by a ‘D’ in the
upper left corner of the node icon.
The default nodes for Solid Mechanics
are: a Linear Elastic Material model, Free
boundary conditions that allows all
boundaries to move freely with no
constraint or load, and Initial Values for
specifying initial displacement and
velocity values for a nonlinear or transient
analysis (not applicable in this case).
At any time you can save your model to
be able to load it at a later time in exactly
the state in which it was saved.
3 From the main menu, select File >
Save As, browse to a folder where you
have write permissions, and save the
file as wrench.mph.

Example 1: Structural Analysis of a Wrench | 27


comsol_introduction.book Page 28 Monday, April 29, 2013 2:57 PM

D o m a i n P hy s i c s a n d B o u n d a r y C o n d i t i o n s

With the geometry and materials defined, you are now ready to set the boundary
conditions.
1 In the Model Builder,
right-click Solid
Mechanics (solid) and
select Fixed Constraint .
This boundary condition
constrains the
displacement of each
point on a boundary
surface to be zero in all
directions.

2 In the Graphics window,


rotate the geometry by left-clicking
and dragging into the position
shown. Then left-click the cut-face
of the partially modeled bolt (which
turns the boundary red) and then
right-click to select it (which turns
the boundary blue). The Boundary
number in the Selection list should
be 35.

3 Click the Go to Default 3D View button on the Graphics toolbar to restore


the geometry to the default view.

28 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 29 Monday, April 29, 2013 2:57 PM

4 In the Model Builder, right-click Solid Mechanics (solid) and select


Boundary Load. A Boundary Load node is added to the Model Builder
sequence.

5 In the Graphics window, click


the Zoom Box button on the
toolbar and drag the mouse to
highlight the area shown in the
figure to the right. Release the
mouse button.

6 Select the top socket face


(Boundary 111) by left-clicking
to highlight the boundary in red
and right-clicking it to highlight
it in blue and add it to the
Selection list.

7 In the Boundary Load settings


window, under Force, select Total
force as the Load type and enter -F
in the text field for the z
component. The negative sign

Example 1: Structural Analysis of a Wrench | 29


comsol_introduction.book Page 30 Monday, April 29, 2013 2:57 PM

indicates the negative z direction (downward). With these settings, the load of
150 N will be distributed uniformly across the selected surface.
Note that to simplify the modeling process, the mechanical contact between the
bolt and the wrench is approximated with a material interface boundary
condition. Such an internal boundary condition is automatically defined by
COMSOL and guarantees continuity in normal stress and displacement across
a material interface.

Me sh

The mesh settings determine the resolution of the finite element mesh used to
discretize the model. The finite element method divides the model into small
elements of geometrically simple shapes, in this case tetrahedrons. In each
tetrahedron, a set of polynomial functions is used to approximate the structural
displacement field—how much the object deforms in each of the three coordinate
directions.
In this example, because the geometry contains small edges and faces, you will
define a slightly finer mesh than the default setting suggests. This will better
resolve the variations of the stress field and give a more accurate result. A finer
mesh, however, comes at a cost: the computation time as well as memory usage
will go up. Choosing a mesh size is always a trade-off between accuracy on the one
hand and speed and memory usage on the other hand.
1 In the Model Builder, under Model 1 click Mesh 1 . In the Mesh settings
window, under Mesh Settings, select Fine from the Element size list.

2 Click the Build All button on the Mesh settings window toolbar.

30 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 31 Monday, April 29, 2013 2:57 PM

3 After a few seconds the mesh is displayed in the Graphics window. Zoom in to
the mesh and have a look at the element size distribution.

Example 1: Structural Analysis of a Wrench | 31


comsol_introduction.book Page 32 Monday, April 29, 2013 2:57 PM

Study

In the beginning of setting up the model you selected a Stationary study, which
implies that COMSOL will use a stationary solver. For this to be applicable, the
assumption is that the load, deformation and stress do not vary in time. The
default solver settings will be good for this simulation if your computer has more
than 2 GB of in-core memory (RAM). If you should run out of memory, the
instructions below will show solver settings that make the solver run a bit slower
but use up less memory. To start the solver:
1 Right-click Study 1 and select
Compute (or press F8).

If your computer’s memory is below 2 GB you may at this point get an


error message “Out of Memory During LU Factorization”. LU
factorization is one of the numerical methods used by COMSOL for
solving the large sparse matrix equation system generated by the finite
element method.
You can easily solve this example model on a memory-limited machine by allowing
the solver to use the hard drive instead of performing all of the computation using
RAM. The steps below show how to do this. If your computer has more than
2 GB of RAM you can skip to the end of this section after step 5 below.
1 If you did not already start the computation, you can get access to the solver
settings from the Study node. In the Model Builder, right-click Study 1
and choose Show Default Solver .

32 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 33 Monday, April 29, 2013 2:57 PM

2 Under Study 1>Solver Configurations,


expand the Solver 1 node.
3 Expand the Stationary Solver 1 node
and left-click Direct .
A Direct solver is a fast and very robust
type of solver that requires little or no
manual tuning in order to solve a wide
range of physics problems. The drawback
is that it may require large amounts of
RAM.
4 In the Direct settings
window, in the General
section, select the
Out-of-core check box.
Leave the default
In-core memory
(RAM) setting of
512 MB.
This setting ensures
that if your computer
runs low of RAM
during computation,
the solver will start
using the hard drive as a
complement to RAM. Allowing the solver to use the hard drive instead of just
RAM will slow the computation down somewhat.
5 Right-click Study 1 and select Compute (or press F8).
After a few seconds of computation time, the default plot is displayed in the
Graphics window. You can find other useful information about the computation
in the Messages and Log windows; click the Messages and Log tabs under the
Graphics window to see the kind of information available to you. These windows
can also be opened from the main View menu.

Example 1: Structural Analysis of a Wrench | 33


comsol_introduction.book Page 34 Monday, April 29, 2013 2:57 PM

Disp laying Results

The von Mises stress is displayed in the Graphics window in a default Surface plot
with the displacement visualized using a Deformation subnode. Change the
default unit (N/m2) to the more suitable MPa as shown by following steps.
1 In the Model Builder, expand the Results>Stress (solid)
node, then click Surface 1 .

2 In the settings window under


Expression, from the Unit list select
MPa (or enter MPa in the field).

If you wish to study the stress


more accurately, expand the
Quality section. From the
Recover list select Within
domains. This setting will
recover information about the
stress level from a collection of
elements rather than from each element individually. It is not active by
default since it makes visualizations slower. The Within domain setting
will treat each domain separately and the stress recovery will not cross
material interfaces.

34 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 35 Monday, April 29, 2013 2:57 PM

3 Click the Plot button in the toolbar of the settings window for the Surface
plot and then the Zoom Extents button on the Graphics toolbar.
The plot is regenerated with the updated unit and shows the von Mises stress
distribution in the bolt and wrench under an applied vertical load. (This plot
does not use the Recover option described earlier.)

For a typical steel used for tools like a wrench, the yield stress is about 600 MPa,
which means that we are getting close to plastic deformation for our 150 N load
(which corresponds to about 34 pounds force). You may also be interested in a
safety margin of, say, a factor of three. To quickly assess which parts of the wrench
are at risk of plastic deformation, you can plot an inequality expression such as
solid.mises>200[MPa].
1 Right-click the Results node and add a 3D Plot Group .
2 Right-click the 3D Plot Group 2 node and select Surface .

Example 1: Structural Analysis of a Wrench | 35


comsol_introduction.book Page 36 Monday, April 29, 2013 2:57 PM

3 In the Surface settings window click the


Replace Expression button and select
Solid Mechanics>Stress>von Mises Stress
(solid.mises). When you know the
variable name beforehand, you can also
directly enter solid.mises in the
Expression field. Now edit this expression
to: solid.mises>200[MPa].
This is a boolean expression that evaluates to either 1, for true, or 0, for false.
In areas where the expression evaluates to 1, the safety margin is exceeded. (You
also here use the Recover feature described earlier.)
4 Click the Plot button .
5 In the Model Builder, click 3D Plot Group 2. Press F2 and in the Rename 3D
Plot Group dialog box, enter Safety Margin. Click OK.
The resulting plot shows that the stress in the bolt is high, but the focus of this
exercise is on the wrench. If you wished to comfortably certify the wrench for a
150 N load with a factor-of-three safety margin, you would need to change the
handle design somewhat, such as making it wider.

You may have noticed that the manufacturer, for various reasons, has chosen an
asymmetric design of the wrench. Because of that, the stress field may be
different if the wrench is flipped around. Try now, on your own, to apply the
same force in the other direction and visualize the maximum von Mises stress to
see if there is any difference.

36 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 37 Monday, April 29, 2013 2:57 PM

Conver gence Analysis

To check the accuracy of the computed maximum von Mises stress in the wrench,
you can now continue with a mesh convergence analysis. Do that by using a finer
mesh and thereby a higher number of degrees of freedom (DOFs).
This section will illustrate some more in-depth functionality and the steps
below could be skipped at a first reading. In order to run the convergence
analysis below, a computer with at least 4GB of memory (RAM) is
recommended.

E VALUATING THE M AXIMUM VON M ISES S TRESS


1 To study the maximum von Mises stress in the wrench, in the Results section of
the Model Tree, right-click the Derived Values node and select
Maximum>Volume Maximum.
2 In the Volume Maximum settings window under Selection choose Manual and
select the wrench domain 1 by left-clicking on the wrench in the Graphics
window and then right-clicking. We will only consider values in the wrench
domain and neglect those in the bolt.
3 In the Expression text field enter the function ppr(solid.mises). The
function ppr() corresponds to the Recover setting in the earlier note on page
34 for Surface plots. The Recover setting with the ppr function is used to
increase the quality of the stress field results. It uses a polynomial-preserving
recovery (ppr) algorithm, which is a higher-order interpolation of the solution
on a patch of mesh elements around each mesh vertex. It is not active by default
since it makes Results evaluations slower.
4 Under Expression, select or enter MPa as the Unit.
5 In the toolbar for Volume Maximum,
click Evaluate to evaluate the
maximum stress. The result will be
displayed in a Table window and will
be approximately 363 MPa.
To see where the maximum value is
attained, you can use a Max/Min Volume plot.
6 Right-click the Results node and add a 3D Plot Group .
7 Right-click the 3D Plot Group 3 node and select More Plots>Max/Min
Volume .
8 In the Max/Min Volume settings window, in the Expression text field, enter the
function ppr(solid.mises).

Example 1: Structural Analysis of a Wrench | 37


comsol_introduction.book Page 38 Monday, April 29, 2013 2:57 PM

9 In the settings window under Expression, from the Unit list select MPa (or
enter MPa in the field).
10Click the Plot button . This type of plot simultaneously shows the location of
the max and min values and also their coordinate location in the table below.

P ARAMETERIZING THE M ESH


We will now define a parametric sweep for successively refining the mesh size while
solving and then finally plot the maximum von Mises stress vs. mesh size. First,
let’s define the parameters that will be used for controlling the mesh density.
1 In the Model Builder, click Parameters under Global Definitions .
2 Go to the Parameters settings window. Under Parameters in the Parameters
table (or under the table in the fields), enter these settings:
- In the Name column or field, enter hd. This parameter will be used in the
parametric sweep to control the element size.
- In the Expression column or field, enter 1.
3 In the Description column or field, enter Element size divider.

38 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 39 Monday, April 29, 2013 2:57 PM

4 Now, enter another parameter


with Name h0, Expression 0.01,
and Description Starting
element size. This parameter
will be used to define the element
size at the start of the parametric
sweep.
5 In the Model Builder, under Model 1 click Mesh 1 . In the Mesh settings
window, under Mesh Settings, select User-controlled mesh from the Sequence
type list.
6 Under Mesh 1, click the Size node .
7 In the Size settings window under Element Size, click the Custom button.
Under Element Size Parameters, enter:
- h0/hd in the Maximum element size field.
- h0/(4*hd) in the Minimum element size field.
- 1.3 in the Maximum element growth rate field.
- 0.1 in the Resolution of curvature field.
- 0.2 in the Resolution of narrow regions field.
See page 59 for more information on the Element Size Parameters.

P ARAMETRIC S WEEP AND S OLVER S ETTINGS


As a next step, add a parametric sweep for the parameter hd.
1 In the Model Builder, right-click Study 1 and select
Parametric Sweep . A Parametric Sweep node is
added to the Model Builder sequence.
2 In the Parametric Sweep settings window, under the
table, click the Add button . From the Parameter
names list in the table, select hd.

Example 1: Structural Analysis of a Wrench | 39


comsol_introduction.book Page 40 Monday, April 29, 2013 2:57 PM

3 Enter a range of Parameter values to


sweep for. Click the Range button
and enter the values in the Range
dialog box. In the Start field, enter 1.
In the Step field, enter 1, and in the
Stop field, enter 6. Click Replace. The
Parameter value list will now display
range(1,1,6).
The settings above make sure that as
the sweep progresses, the value of the
parameter hd increases and the
maximum and minimum element sizes
decrease.
See page 96 for more information on defining parametric sweeps.
For the highest value of hd, the number of DOFs will exceed one million.
Therefore, we will switch to a more memory efficient iterative solver.
4 Under Study 1>Solver Configurations>Solver 1, expand the Stationary Solver 1
node, right-click Stationary Solver 1 , and select Iterative. The Iterative solver
option typically reduces memory usage but can require physics-specific tailoring
of the solver settings for efficient computations.
5 Under General in the settings window for Iterative, set Preconditioning to
Right. (This is an optional low-level solver option which in this case will avoid
a warning message that otherwise will appear. However, this setting does not
affect the resulting solution. Preconditioning is a mathematical transformation
used to prepare the finite element equation system for using the Iterative
solver.)
6 Right-click the Iterative 1 node and select Multigrid. The Multigrid iterative
solver uses a hierarchy of meshes of different densities and different finite
element shape function orders.
7 Click the Study 1 node and select Compute , either in the Settings window
or by right-clicking the node. The computation time will be a few minutes
(depending on the computer hardware) and memory usage will be about 4GB.

R ESULTS A NALYSIS
As a final step, analyze the results from the parametric sweep by displaying the
maximum von Mises stress in a Table.

40 | Example 1: Structural Analysis of a Wrench


comsol_introduction.book Page 41 Monday, April 29, 2013 2:57 PM

1 In the Model Builder under Results>Derived values, select the Volume


Maximum node.
The solutions from the parametric sweep are stored in a new Data set named
Solution 2. Now change the Volume Maximum settings accordingly:
2 In the settings window for Volume Maximum, change the Data set to Solution
2.
3 From the Evaluate toolbar button at the top of the
Volume Maximum settings window, select to
evaluate in a New Table. This evaluation may take a
minute or so.
4 To plot the results in the Table, click the Graph Plot
button at the top of the Table window.
Generating this plot may take a minute or so.
It is more interesting to plot the maximum value vs. the number of DOFs. This
is possible by using a built-in variable numberofdofs.
5 Right-click the Derived Values node and select Global Evaluation.
6 In the settings window for Global Evaluation, change the Data set to Solution
2.
7 In the Expressions field, enter numberofdofs.
8 From the Evaluate toolbar button at the top of the Global Evaluation settings
window, select to evaluate in a Table 2 (to display the DOF values for each
parameter next to the previously evaluated data).
This convergence analysis shows that the computed value of the maximum von
Mises stress in the wrench handle will increase from the original 367 MPa, for a
mesh with about 50,000 DOFs, to 370 MPa for a mesh with about 1,100,000
DOFs. It also shows that 300,000 DOFs essentially gives the same accuracy as
1,100,000 DOFs; see the table below.

DEGREES OF FREEDOM COMPUTED MAX VON MISES STRESS (MPA)


52,542 367.3
156,909 364.8
302,700 368.3
533,826 368.8
853,926 369.4
1,140,490 369.7

This concludes the wrench tutorial.

Example 1: Structural Analysis of a Wrench | 41


comsol_introduction.book Page 42 Monday, April 29, 2013 2:57 PM

Example 2: The Busbar—A Multiphysics Model

Electrical Heating in a Busbar


This tutorial demonstrates the concept of multiphysics modeling in COMSOL.
We will do this by introducing different phenomena sequentially. At the end, you
will have built a truly multiphysics model.
The model that you are about to create analyzes a busbar designed to conduct
direct current to an electric device (see picture below). The current conducted in
the busbar, from bolt 1 to bolts 2a and 2b, produces heat due to the resistive
losses, a phenomenon referred to as Joule heating. The busbar is made of copper
while the bolts are made of a titanium alloy. The choice of materials is important
because titanium has a lower electrical conductivity than copper and will be
subjected to a higher current density.
Titanium Bolt 2a

Titanium Bolt 2b Titanium Bolt 1


The goal of your simulation is to precisely calculate how much the busbar heats
up. Once you have captured the basic multiphysics phenomena, you will have the
chance to investigate thermal expansion yielding structural stresses and strains in
the busbar and the effects of cooling by an air stream.
The Joule heating effect is described by conservation laws for electric current and
energy. Once solved for, the two conservation laws give the temperature and
electric field, respectively. All surfaces, except the bolt contact surfaces, are cooled
by natural convection in the air surrounding the busbar. You can assume that the
exposed parts of the bolt do not contribute to cooling or heating of the device.
The electric potential at the upper-right vertical bolt surface is 20 mV and the
potential at the two horizontal surfaces of the lower bolts is 0 V.

42 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 43 Monday, April 29, 2013 2:57 PM

Busbar Model Overview


More in-depth and advanced topics included with this tutorial are used to show
you some of the many options available in COMSOL. The following topics are
covered:
• “Parameters, Functions, Variables and Model Couplings” on page 69, where
you learn how to define functions and model couplings.
• “Material Properties and Material Libraries” on page 73 shows you how to
customize a material and add it to your own material library.
• “Adding Meshes” on page 75 gives you the opportunity to add and define
two different meshes and compare them in the Graphics window.
• “Adding Physics” on page 77 explores the multiphysics capabilities by
adding Solid Mechanics and Laminar Flow to the busbar model.
• “Parametric Sweeps” on page 96 shows you how to vary the width of the
busbar using a parameter and then solve for a range of parameter values. The
result is a plot of the average temperature as a function of the width.
• In the section “Parallel Computing” on page 104 you learn how to solve the
model using Cluster Computing.

M o d e l W i z a rd

1 Open the Model Wizard.


To open the Model Wizard, double-click the COMSOL icon
on the desktop. Or when COMSOL is already open, choose
between one of these three ways to open the Model Wizard:
- Click the New button on the main toolbar
- Select File > New from the main menu
- Right-click the root node and select Add Model

Example 2: The Busbar—A Multiphysics Model | 43


comsol_introduction.book Page 44 Monday, April 29, 2013 2:57 PM

2 When the Model Wizard opens,


select a space dimension; the
default is 3D. Click the Next
button .

3 In the Add Physics window, expand


the Heat Transfer > Electromagnetic
Heating folder, then right-click
Joule Heating and choose Add
Selected. Click the Next button .
You can also double-click or click the
Add Selected button to add
physics.
Another way to open the Add
Physics window is to right-click the
Model node and select Add Physics
.
Note that you may have fewer items
in your physics list depending on the
add-on modules installed. The
figure on the right is shown for the
case where all add-on modules are
installed.

44 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 45 Monday, April 29, 2013 2:57 PM

4 In the Select Study Type window,


click to select the Stationary study
type.
Click the Finish button .
Preset Studies are studies that have
solver and equation settings adapted
to the selected physics; in this
example, Joule heating.
Any selection from the Custom
Studies branch needs manual
fine-tuning.
Note also here that you may have
fewer study types in your study list
depending on the installed add-on
modules.

Global Definitions

To save time, it’s recommended that you 2xrad_1


load the geometry from a file. In that case,
you can skip to “Geometry” on page 46.
If you, on the other hand, want to draw the
geometry yourself, the Global Definitions
branch is where you define the parameters.
First complete the steps 1 to 3 below to
define the parameter list for the model and
then skip to the section “Appendix A—
Building a Geometry” on page 107. You may
then return to this section and use this
busbar.mph file.
wbb L
The Global Definitions node in the Model
Builder stores Parameters, Variables, and
Functions with a global scope. The Model tbb
Builder tree can hold several models
simultaneously, and the Definitions with a global scope are made available for all
models. In this particular example, there is only one Model node in which the
parameters are used, so if you wish to limit the scope to this single model you

Example 2: The Busbar—A Multiphysics Model | 45


comsol_introduction.book Page 46 Monday, April 29, 2013 2:57 PM

could define, for example, Variables and Functions in the Definitions subnode
available directly under the corresponding Model node. However, no Parameters
can be defined here because COMSOL Parameters are always global.
Since you will run a geometric parameter study later in this example, define the
geometry using parameters from the start. In this step, enter parameters for the
length for the lower part of the busbar, L, the radius of the titanium bolts, rad_1,
the thickness of the busbar, tbb, and the width of the device, wbb.
You will also add the parameters that control the mesh, mh, a heat transfer
coefficient for cooling by natural convection, htc, and a value for the voltage
across the busbar, Vtot.
1 Right-click Global Definitions and choose Parameters . In the Parameters
table, click the first row under Name and enter L.
2 Click the first row under Expression and enter the value of L, 9[cm]. You can
enter the unit inside the square brackets.
3 Continue adding the other parameters: L, rad_1, tbb, wbb, mh, htc, and 
Vtot according to the Parameters list. It is a good idea to enter descriptions
for variables in case you want to share the model with others and for your
own future reference.

4 Click the Save button and name the model busbar.mph. Then go to
“Appendix A—Building a Geometry” on page 107.

Geometr y

This section describes how the model geometry can be opened from the Model
Library. The physics, study, parameters, and geometry are included with the
model file you are about to open.

46 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 47 Monday, April 29, 2013 2:57 PM

1 Select Model Library from the main


View menu.

2 In the Model Library tree under


COMSOL Multiphysics > 
Multiphysics, select busbar_geom.
To open the model file you can:
- Double-click the name
- Right-click and select an option
from the menu
- Click one of the buttons under the
tree
The geometry in this model file is
parameterized. In the next few steps,
we will experiment with different
values for the width parameter, wbb.

Example 2: The Busbar—A Multiphysics Model | 47


comsol_introduction.book Page 48 Monday, April 29, 2013 2:57 PM

3 Under Global Definitions click the


Parameters node .
In the Parameters settings window, click
in the wbb parameter’s Expression
column and enter 10[cm] to change the
value of the width wbb.
4 In the Model Builder, click the Form
Union node and then the Build All
button to rerun the geometry
sequence.

5 In the Graphics toolbar click the Zoom Extents button to see the wider
busbar in the Graphics window.

wbb=5cm wbb=10cm

48 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 49 Monday, April 29, 2013 2:57 PM

6 Experiment with the geometry in the Graphics window:


- To rotate the busbar, left-click and drag it.
- To move it, right-click and drag.
- To zoom in and out, center-click (and hold) and drag.
- To get back to the original position, click the Go to Default 3D View button
on the toolbar.

7 Return to the Parameters table and


change the value of wbb back to 5[cm].
8 In the Model Builder, click the Form
Union node and then click the Build
All button to rerun the geometry
sequence.
9 On the Graphics toolbar, click the
Zoom Extents button .

10If you built the geometry yourself you are already using the busbar.mph file,
but if you opened the Model Library file, from the main menu, select File >
Save As and rename the model busbar.mph.
After creating or opening the geometry file, it is time to define the materials.

Mate rials

The Materials node stores the material properties for all physics and geometrical
domains in a Model node. The busbar is made of copper and the bolts are made
of titanium. Both these materials are available from the Built-In material database.

Example 2: The Busbar—A Multiphysics Model | 49


comsol_introduction.book Page 50 Monday, April 29, 2013 2:57 PM

1 In the Model Builder, right-click Materials and select Open Material Browser
.

The Materials node will show a red × in the lower-right corner if you try
to solve without first defining a material (you are about to define that in
the next few steps).
2 In the Material Browser, expand
the Built-In materials folder and
locate Copper. Right-click
Copper and select Add
Material to Model.
A Copper node is added to the
Model Builder.
3 Click the Material Browser tab.

4 In the Material Browser, scroll to


Titanium beta-21S in the
Built-In material folder list.
Right-click and select Add
Material to Model.

50 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 51 Monday, April 29, 2013 2:57 PM

5 In the Model Builder, collapse the Geometry 1 node to get an overview of


the model.

6 Under the Materials node , click Copper.

7 In the Material settings window, examine the Material Contents section.

The Material Contents section has useful feedback about the model’s material
property usage. Properties that are both required by the physics and available
from the material are marked with a green check mark . Properties required
by the physics but missing in the material are marked with a warning sign . A
property that is available but not used in the model is unmarked.
The Coefficient of thermal expansion in the table above is not used, but
will be needed later when heat-induced stresses and strains are added to
the model.

Example 2: The Busbar—A Multiphysics Model | 51


comsol_introduction.book Page 52 Monday, April 29, 2013 2:57 PM

Because the copper material is added first, by default all parts have copper
material assigned. In the next step you will assign titanium properties to the
bolts, which overrides the copper material assignment for those parts.
8 In the Model Builder, click Titanium beta-21S.

9 Select All Domains from the selection list and then click Domain 1 in the list.
Now remove Domain 1 from the selection list.
To remove a domain from the selection list (or any geometric entity such as
boundaries, edges, or points), you can use either of these two methods:
- Click Domain 1 in the selection list found in the Material settings window,
then click the Remove from Selection button .
- In the Graphics window, click domain 1 to select it, and then right-click to
remove it from the selection list.

52 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 53 Monday, April 29, 2013 2:57 PM

The domains 2, 3, 4, 5, 6, and 7 highlighted in blue.

10In the Material settings window, be


sure to inspect the Material Contents
section for the titanium material. All
the properties used by the physics
should have a green check mark .
Close the Material Browser.

Example 2: The Busbar—A Multiphysics Model | 53


comsol_introduction.book Page 54 Monday, April 29, 2013 2:57 PM

Physics

Next you will inspect the physics domain settings and set the boundary conditions
for the heat transfer problem and the conduction of electric current.
1 In the Model Builder, expand the
Joule Heating node to examine the
default physics nodes.
The ‘D’ in the upper left corner of a
node’s icon ( ) means it is a default
node.
The equations that COMSOL solves
are displayed in the Equation section
of the settings window.
The default equation form is inherited
from the study added in the Model
Wizard. For the Joule Heating node,
COMSOL displays the equations
solved for the temperature and
electric potential.

To always display the section in its expanded view, click the Expand
Sections button ( ) on the Model Builder toolbar and select Equations.
Selecting this option expands all the Equation sections on physics settings
windows.

54 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 55 Monday, April 29, 2013 2:57 PM

The domain level Joule Heating


Model 1 node has the settings for heat
conduction and current conduction.
The contributions of the Joule
Heating Model 1 node to the
equation system are underlined in the
Equation section.
The heating effect for Joule heating is
set in the Electromagnetic Heat
Source 1 node. The Electric
Insulation 1 node corresponds to the
conservation of electric current, and
the Thermal Insulation 1 node
contains the default boundary
condition for the heat transfer
problem. 
The Initial Values 1 node contains initial guesses for the nonlinear 
solver for stationary problems and initial conditions for time-dependent
problems.
2 Right-click the Joule Heating node . In the second section of the context
menu—the boundary section—select Heat Transfer>Heat Flux.

Domain section

Section divider

Boundary section

Example 2: The Busbar—A Multiphysics Model | 55


comsol_introduction.book Page 56 Monday, April 29, 2013 2:57 PM

3 In the Heat Flux settings window, select


All boundaries from the Selection list.
Assume that the circular bolt boundaries
are neither heated nor cooled by the
surroundings.
In the next step you will remove the
selection of these boundaries from the
heat flux selection list, which leaves them
with the default insulating boundary
condition for the Heat Transfer interfaces.
4 Rotate the busbar to view the back. Click one of the circular titanium bolt
surfaces to highlight it in green. Right-click anywhere in the Graphics window
to remove this boundary selection from the Selection list. Repeat this step to
remove the other two circular bolt surfaces from the selection list. Boundaries
8, 15, and 43 are removed.
Cross-check: Boundaries 8, 15, and 43 are removed
from the Selection list.

15
43

56 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 57 Monday, April 29, 2013 2:57 PM

5 In the Heat Flux settings window


under Heat Flux, click the Inward heat
flux button. Enter htc in the Heat
transfer coefficient field, h.
This parameter was either entered in
the Parameter table in “Global
Definitions” on page 45 or imported
with the geometry.
Continue by setting the boundary
conditions for the electric current according to the following steps:
6 In the Model Builder, right-click the Joule Heating node . In the second
section of the context menu—the boundary section—select Electric Currents >
Electric Potential. An Electric Potential node is added to the Model Builder.

Example 2: The Busbar—A Multiphysics Model | 57


comsol_introduction.book Page 58 Monday, April 29, 2013 2:57 PM

7 Click the circular face of the upper


titanium bolt to highlight it and
right-click anywhere to add it
(boundary 43) to the Selection list.

43

8 In the Electric Potential settings


window, enter Vtot in the Electric
potential field.
The last step is to set surfaces of the
two remaining bolts to ground.
9 In the Model Builder, right-click the
Joule Heating node . In the boundary section of the context menu, select
Electric Currents > Ground. A Ground node is added to the Model Builder.
The node sequence under Joule Heating should now match this figure.

58 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 59 Monday, April 29, 2013 2:57 PM

10In the Graphics window, click one Cross-check: Boundaries 8 and 15.
of the remaining bolts to highlight
it. Right-click anywhere to add it
to the Selection list.
8
Repeat this step to add the last
bolt. Boundaries 8 and 15 are
added to the selection list for the
Ground boundary condition.

15

11On the Graphics toolbar, click the Go to Default 3D View button .

Me sh

The simplest way to mesh is to create an unstructured tetrahedral mesh, which is


perfect for the busbar. Alternatively, you can create several meshing sequences as
shown in “Adding Meshes” on page 75.
A physics-controlled mesh is created by default. In most cases, it is possible
to skip to the Study branch and just solve the model. For this exercise, the
settings are investigated in order to parameterize the mesh settings.

Example 2: The Busbar—A Multiphysics Model | 59


comsol_introduction.book Page 60 Monday, April 29, 2013 2:57 PM

1 In the Model Builder, click the Mesh 1


node . In the Mesh settings window,
select User-controlled mesh from the
Sequence type list.
2 Under Mesh 1, click the Size node .
The asterisk (*) that displays in the
upper-right corner of the icon indicates
that the node is being edited.
3 In the Size settings window under
Element Size, click the Custom
button.
Under Element Size Parameters, enter:
- mh in the Maximum element size
field. Notice that mh is 6 mm—the
value entered earlier as a global
parameter. By using the parameter
mh, element sizes are limited to this
value.
- mh-mh/3 in the Minimum element
size field. The Minimum element
size is slightly smaller than the
maximum size.
- 0.2 in the Resolution of curvature
field.
The Resolution of curvature
determines the number of elements on
curved boundaries: a lower value gives
a finer mesh.
The Maximum element growth rate determines how fast the elements should
grow from small to large over a domain. The larger this value is, the larger the
growth rate. A value of 1 does not give any growth.
The Resolution of narrow regions works in a manner similar to the Resolution
of curvature.

60 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 61 Monday, April 29, 2013 2:57 PM

4 Click the Build All button in the Size settings window to create the mesh as
in this figure:

Study

1 To run a simulation, in the Model


Builder, right-click Study 1 and
choose Compute . Or press F8.
The Study node automatically
defines a solution sequence for the
simulation based on the selected
physics and the study type. The
simulation only takes a few seconds
to solve.

Example 2: The Busbar—A Multiphysics Model | 61


comsol_introduction.book Page 62 Monday, April 29, 2013 2:57 PM

Results

The default plot displays the temperature in the busbar. The temperature
difference in the device is less than 10 K due to the high thermal conductivity of
copper and titanium. The temperature variations are largest on the top bolt, which
conducts double the amount of current compared to the two lower bolts. The
temperature is substantially higher than the ambient temperature of 293 K.
1 Click and drag the image in the
Graphics window to rotate and
view the back of the busbar.
2 On the Graphics toolbar, click
the Go to Default 3D View
button .
You can now manually set the
color table range to visualize
the temperature difference in
the copper part.

3 In the Model Builder, expand the Results > Temperature node and click the
Surface 1 node .

62 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 63 Monday, April 29, 2013 2:57 PM

4 In the Surface settings window, click Range to expand the section. Select the
Manual color range check box and enter 323 in the Maximum field (replace the
default).

Example 2: The Busbar—A Multiphysics Model | 63


comsol_introduction.book Page 64 Monday, April 29, 2013 2:57 PM

5 Click the Plot button on the Surface settings window. On the Graphics
toolbar, click the Zoom Extents button to view the updated plot.

6 Click and drag in the Graphics window to rotate the busbar and view the back.

The temperature distribution is laterally symmetric with a vertical mirror plane


running between the two lower titanium bolts and cutting through the center of
the upper bolt. In this case, the model does not require much computing power
and you can model the whole geometry. For more complex models, you can
consider using symmetries to reduce the computational requirements.
Now let us generate a Surface plot that shows the current density in the device.

64 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 65 Monday, April 29, 2013 2:57 PM

1 In the Model Builder, right-click


Results and add a 3D Plot Group .
Right-click 3D Plot Group 2 and
add a Surface node .

2 In the Surface settings window under Expression, click the Replace Expression
button . Select Joule Heating (Electric Currents) > Currents and charge >
Current density norm (jh.normJ).
jh.normJ is the variable for the magnitude, or absolute value, of the current
density vector. You can also enter jh.normJ in the Expression field when you
know the variable name.

3 Click the Plot button .


The plot that displays in the Graphics window is almost uniform in color due to
the high current density at the contact edges with the bolts. The next step is to
manually change the color table range to visualize the current density
distribution.
4 On the Surface settings window under Range, select the Manual color range
check box. Enter 1e6 in the Maximum field and replace the default.

Example 2: The Busbar—A Multiphysics Model | 65


comsol_introduction.book Page 66 Monday, April 29, 2013 2:57 PM

5 Click the Plot button . The plot automatically updates in the Graphics
window.
The resulting plot shows how the current takes the shortest path in the
90-degree bend in the busbar. Notice that the edges of the busbar outside of
the bolts are hardly utilized for current conduction.

66 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 67 Monday, April 29, 2013 2:57 PM

6 Click and drag the busbar in the Graphics window to view the back. Continue
rotating the image to see the high current density around the contact surfaces
of each of the bolts.

Make sure to save the model. This version of the model, busbar.mph, is
reused and renamed during the next set of tutorials.
When you are done, click the Go to Default 3D View button on the Graphics
toolbar and create a model thumbnail image.

C REATING M ODEL I MAGES FROM P LOTS


With any solution, you can create an image to display in COMSOL when
browsing for model files. After generating a plot, select File>Save Model
Thumbnail from the main menu.
There are two other ways to create images from a plot. One is to click the Image
Snapshot button in the Graphics toolbar to directly create an image. You can
also add an Image node to an Export node, for creating image files, by
right-clicking the plot group of interest and then selecting Add Image to Export.
This completes the Busbar example. The next sections are designed to improve
your understanding of the steps implemented so far, and to extend your
simulation to include additional effects like thermal expansion and fluid flow.
These additional topics begin on the following pages:
• “Parameters, Functions, Variables and Model Couplings” on page 69

Example 2: The Busbar—A Multiphysics Model | 67


comsol_introduction.book Page 68 Monday, April 29, 2013 2:57 PM

• “Material Properties and Material Libraries” on page 73


• “Adding Meshes” on page 75
• “Adding Physics” on page 77
• “Parametric Sweeps” on page 96
• “Parallel Computing” on page 104
• “Appendix A—Building a Geometry” on page 107

68 | Example 2: The Busbar—A Multiphysics Model


comsol_introduction.book Page 69 Monday, April 29, 2013 2:57 PM

Advanced Topics

Par a m e t e r s , F u n c t i o n s , Va r i a bl e s a n d M o d e l C o u p l i n g s

This section explores working with Parameters, Functions, Variables and Model
Couplings.
Global Definitions and Model Definitions contain functionality that help you to
prepare model inputs and model couplings and to organize simulations. You have
already used the functionality for adding Parameters to organize model inputs in
“Global Definitions” on page 45.
Functions, available as both Global Definitions and Model Definitions, contain a
set of predefined functions templates that can be useful when setting up
multiphysics simulations. For example, the Step function template can create a
smooth step function for defining different types of spatial or temporal transitions.
To illustrate using functions, assume that you want to add a time dependent study
to the busbar model by applying an electric potential across the busbar that goes
from 0 V to 20 mV in 0.5 seconds. For this purpose, you could use a step function
to be multiplied with the parameter Vtot. Add a function that goes smoothly from
0 to 1 in 0.5 seconds to find out how functions can be defined and verified.

D EFINING F UNCTIONS
For this section, you can continue working with the same model file created in the
previous section. Locate and open the file busbar.mph if it is not already open on
the COMSOL Desktop.

Advanced Topics | 69
comsol_introduction.book Page 70 Monday, April 29, 2013 2:57 PM

1 Right-click the Global Definitions node and select Functions > Step .

2 In the Step settings window, enter 0.25 in the Location field to set the location
of the middle of the step, where it has the value of 0.5.

3 Click Smoothing to expand the section and enter 0.5 in Size of the transition
zone field to set the width of the smoothing interval. Keep the default Number
of continuous derivatives at 2.
4 Click the Plot button in the Step settings window.

70 | Advanced Topics
comsol_introduction.book Page 71 Monday, April 29, 2013 2:57 PM

If your plot matches the one below, this confirms that you have defined the
function correctly.

You can also add comments and rename the function to make it more descriptive.
5 Right-click the Step 1 node
in the Model Builder and
select Properties .

6 In the Properties window,


enter any information you
want.

Advanced Topics | 71
comsol_introduction.book Page 72 Monday, April 29, 2013 2:57 PM

For the purpose of this exercise, assume that you want to introduce a second
model to represent an electric device connected to the busbar through the
titanium bolts.
A first step would be to rename Model 1 to specify that it represents the busbar.
1 Right-click the Model 1 node and select Rename (or press F2).
2 In the Rename Model window, enter Busbar. Click OK and save the model.

D EFINING M ODEL C OUPLINGS


Click the Definitions node under Busbar
(mod1) to introduce a Model Coupling that
computes the integral of any Busbar (mod1)
variable at the bolt boundaries facing the
electric device. You can use such a coupling, for
example, to define a Variable in the Global
Definitions that calculates the total current.
This variable is then globally accessible and
could, for example, form a boundary condition
for the current that is fed to the electric device
in the Electric Device (mod2) node.

The Model Couplings in Definitions have a wide range of use. The Average ,
Maximum , and Minimum model couplings have applications in generating
results as well as in boundary conditions, sources, sinks, properties, or any other
contribution to the model equations. The Probes are for monitoring the
solution progress. For instance, you can follow the solution at a critical point
during a time-dependent simulation, or for each parameter value in a parametric
study.
You can find an example of using the average operator in “Parametric Sweeps” on
page 96. Also see “Functions” on page 128, for a list of available COMSOL
functions.

72 | Advanced Topics
comsol_introduction.book Page 73 Monday, April 29, 2013 2:57 PM

To learn more about working with definitions, in the Model Builder click the
Definitions or Global Definitions node and press F1 to open the Help
window . This window displays help about the selected item in the
COMSOL Desktop and provides links to the documentation. It could take
up to a minute for the window to load the first time it is activated, but the
next time it will load quickly.

Ma te ria l Prope r tie s and Ma te rial Libra ries

Up to now, you have used the functionality in Materials to access the properties
of copper and titanium in the busbar model. In Materials, you are also able to
define your own materials and save them in your own material library. You can also
add material properties to existing materials. In cases where you define properties
that are functions of other variables, typically temperature, the plot functionality
helps you to verify the property functions in the range of interest. You can also
load Excel® spreadsheets and define interpolation functions for material properties
using LiveLink™ for Excel®.
The Material Library add-on contains over 2500 materials with tens of thousands
of temperature-dependent property functions.
In the near future, you will also be able to import material properties from CAD
using the CAD LiveLink add-ons.
First investigate how to add properties to an existing material. Assume that you
want to add bulk modulus and shear modulus to the copper properties.

C USTOMIZING M ATERIALS
Let us keep working on the busbar.
1 In the Model Builder, under Materials, click
Copper .

Advanced Topics | 73
comsol_introduction.book Page 74 Monday, April 29, 2013 2:57 PM

2 In the Material settings window, the


Materials Properties section
contains a list of all the definable
properties.
Expand the Solid Mechanics >
Linear Elastic Material section.
Right-click Bulk Modulus and Shear
Modulus and select Add to
Material.
This lets you define the bulk
modulus and shear modulus for the
copper in your model.
3 Locate the Material Contents
section. Bulk modulus and Shear
modulus rows are now available in the table. The warning sign indicates the
values are not yet defined. To define the values, click the Value column. In the
Bulk modulus row, enter 140e9 and in the Shear modulus row, enter 46e9.

By adding these material properties, you have changed the Copper material. You
cannot save this in the read-only Solid Mechanics material library, however, you
can save it to your own material library.
4 In the Model Builder, right-click Copper and select Add Material to “User
Defined Library” .

74 | Advanced Topics
comsol_introduction.book Page 75 Monday, April 29, 2013 2:57 PM

Addin g M eshes

A model can contain different meshing sequences to generate meshes with


different settings. These sequences can then be accessed by the study steps. In the
study, you can select which mesh you would like to use in a particular simulation.
In the busbar model, a second mesh node is now added to create a mesh that is
refined in the areas around the bolts and the bend.

A DDING A M ESH
1 In order to keep this model in a separate
file for later use, from the main menu,
select File > Save as and rename the model
busbar_I.mph.
2 To add a second mesh node, right-click the
Busbar (mod1) node and select Mesh .
By adding another Mesh node, it creates a
Meshes parent node that contains both
Mesh 1 and Mesh 2.

3 Click the Mesh 2 node. In the Mesh


settings window under Mesh Settings,
select User-controlled mesh as the
Sequence type.
A Size and Free Tetrahedral node are
added under Mesh 2.

Advanced Topics | 75
comsol_introduction.book Page 76 Monday, April 29, 2013 2:57 PM

4 In the Model Builder, under Mesh 2, click Size .

The asterisk in the upper-right


corner of a node icon indicates that
the node is being edited.

5 In the Size settings window under


Element Size, click the Custom
button.
6 Under Element Size Parameters,
enter:
- mh/2 in the Maximum element
size field, where mh is 6 mm—the
mesh control parameter entered
earlier
- mh/2-mh/6 in the Minimum
element size field
- 0.2 in the Resolution of curvature
field.
7 Click the Build All button .

76 | Advanced Topics
comsol_introduction.book Page 77 Monday, April 29, 2013 2:57 PM

Compare Mesh 1 and Mesh 2 by clicking the Mesh nodes. The mesh is updated
in the Graphics window. An alternative for using many different meshes is to run
a parametric sweep of the parameter for the maximum mesh size, mh, that was
defined in the section “Global Definitions” on page 45.

Mesh 1 Mesh 2

A dd i n g P hy s i c s

COMSOL's distinguishing characteristics of adaptability and compatibility are


prominently displayed when you add physics to an existing model. In this section,
you will understand the ease with which this seemingly difficult task is performed.
By following these directions, you can add structural mechanics and fluid flow to
the busbar model.

S TRUCTURAL M ECHANICS
After completing the busbar Joule heating simulation, we know that there is a
temperature rise in the busbar. What kind of mechanical stress is induced by
thermal expansion? To answer this question, let us expand the model to include
the physics associated with structural mechanics.

Advanced Topics | 77
comsol_introduction.book Page 78 Monday, April 29, 2013 2:57 PM

To complete these steps, either the Structural Mechanics Module or the


MEMS Module (which enhances the standard Solid Mechanics interface) is
required.
If you want to add cooling by fluid flow, or don’t have the Structural
Mechanics Module or MEMS Module, read this section and then go to
“Cool by Adding Fluid Flow” on page 83.
1 Open the model busbar.mph that was created earlier. From the main menu,
select File>Save as and rename the model busbar_II.mph.
2 In the Model Builder, right-click the
Busbar node and select Add Physics .

3 In the Model Wizard under Structural


Mechanics, select Solid Mechanics .
To add this interface, you can
double-click it, right-click and select Add
Selected, or click the Add Selected
button .
4 Click the Finish button and save the
file. You do not need to add any studies.

When adding additional physics, you need to make sure that materials
included in the Materials node have all the required properties for the
selected physics. In this example, you already know that all properties are
available for copper and titanium.
You can start by adding the effect of thermal expansion to the structural
analysis.

78 | Advanced Topics
comsol_introduction.book Page 79 Monday, April 29, 2013 2:57 PM

5 In the Model Builder under Solid


Mechanics, right-click the Linear Elastic
Material 1 node and from the domain
level select Thermal Expansion .
A Thermal Expansion node is added to the
Model Builder.

6 In the Thermal Expansion settings


window under Model Inputs, select
Temperature (jh/jhm1) from the
Temperature list.
This is the temperature field from the
Joule Heating interface (jh/jhm1)
and couples the Joule heating effect to
the thermal expansion of the busbar.

With the Structural Mechanics Module, the Thermal Stress


predefined multiphysics interface is also available to define thermal
stresses and strains.

Next, constrain the busbar at the position of the titanium bolts.


7 In the Model Builder, right-click Solid Mechanics and from the boundary
level, select Fixed Constraint . A node with the same name is added to the
Model Builder.
8 Click the Fixed Constraint node. In the Graphics
window, rotate the busbar to view the back. Click
the circular surface of one of the bolts to
highlight it and right-click to add this surface to
the Selection list.

Advanced Topics | 79
comsol_introduction.book Page 80 Monday, April 29, 2013 2:57 PM

9 Repeat this procedure for the remaining bolts to add boundaries 8, 15, and 43.

Next we update the Study to take the added effects into account.

S OLVING FOR JOULE H EATING AND T HERMAL E XPANSION


The Joule heating effect is independent of the stresses and strains in the busbar,
assuming small deformations and ignoring the effects of electric contact pressure.
This means that you can run the simulation using the temperature as input to the
structural analysis. In other words, the extended multiphysics problem is weakly
coupled. As such, you can solve it in two separate study steps to save computation
time—one for Joule heating and a second one for structural analysis.
1 In the Model Builder, right-click Study 1 and
select Study Steps>Stationary to add a second
stationary study step.

When adding study steps you need to manually connect the correct
physics with the correct study step. We shall start by removing the
structural analysis from the first step.
2 Under Study 1, click the Step 1: Stationary node .

80 | Advanced Topics
comsol_introduction.book Page 81 Monday, April 29, 2013 2:57 PM

3 In the Stationary settings window, locate the Physics and Variables Selection.
4 In the Solid Mechanics (solid) row under Solve for, click to change the check
mark to an to remove Solid Mechanics from Study 1.

Now repeat these steps to remove Joule heating from the second study step.
5 Under Study 1, click Step 2: Stationary 2 .

6 Under Physics and Variables


Selection, in the Joule Heating
(jh) row under Solve for, click to
change the check mark to an
to remove Joule Heating from
Step 2.
7 Right-click the Study 1 node
and select Compute (or press
F8) to solve the problem.

Save the file busbar_II.mph, which now includes the Solid Mechanics interface
and the additional study step.

R ESULTING D EFORMATION
Now add a displacement to the plot.

Advanced Topics | 81
comsol_introduction.book Page 82 Monday, April 29, 2013 2:57 PM

1 Under Results>3D Plot Group 2, click the Surface 1 node .

2 In the Surface settings window in the


Expression section, click the Replace
Expression button .
From the context menu, select Solid
Mechanics>Displacement>Total
Displacement. You can also enter
solid.disp in the Expression field.
3 Click Range to expand the section.
Click to clear the Manual color range
check box.

The local displacement due to thermal expansion is displayed by COMSOL as


a surface plot. Next we’ll add information about the busbar deformation.
4 In the Model Builder, under Results>3D Plot Group 2, right-click the Surface
1 node and add a Deformation . The plot automatically updates in the
Graphics window.

82 | Advanced Topics
comsol_introduction.book Page 83 Monday, April 29, 2013 2:57 PM

The deformations shown in the figure are highly amplified to make visible the
very small distortions that actually take place.

5 Save the busbar_II.mph file, which now includes a Surface plot with a
Deformation.
You can also plot the von Mises and principal stresses to assess the structural
integrity of the busbar and the bolts.

C OOL BY A DDING F LUID F LOW


After analyzing the heat generated in the busbar and possibly the induced thermal
stresses, you might want to investigate ways of cooling it by letting air flow over
its surfaces. These steps do not require any additional modules.
When you have the CFD Module or the Heat Transfer Module, the
Conjugate Heat Transfer multiphysics interface is available. This
automatically defines coupled heat transfer in solids and fluids including
laminar or turbulent flow.
Adding fluid flow to the Joule heating model forms a new multiphysics coupling.
To simulate the flow domain, you need to create an air box around the busbar.
You can do this manually by altering the geometry from your first model or by
opening a Model Library file. In this case, you will open a model with the box
already created.

Advanced Topics | 83
comsol_introduction.book Page 84 Monday, April 29, 2013 2:57 PM

Having loaded the geometry, you will now learn how to simulate air flow
according to this figure:

Air outlet

Air inlet

D EFINING I NLET VELOCITY


Start by loading the geometry and adding a new parameter for the inlet flow
velocity.
1 Select View>Model Library and navigate to COMSOL Multiphysics>
Multiphysics>busbar_box. Double-click to open the model file, which
contains the geometry in addition to the physics modeling steps completed
up to the end of the section “Customizing Materials” on page 73.

84 | Advanced Topics
comsol_introduction.book Page 85 Monday, April 29, 2013 2:57 PM

2 Under Global Definitions, click the Parameters node .

3 In the Parameters settings window, click the empty row just below the Vtot
row. In the Name column, enter Vin. Enter 1e-1[m/s] in the Expression
column and a description of your choice in the Description column.
4 Select File>Save As and save the model with a new name, busbar_box_I.mph.

A DDING A IR
The next step is to add the material properties of air.
1 Select View>Material Browser.
2 In the Material Browser, expand the
Built-In tree. Right-click Air and select
Add Material to Model. Click the
Material Browser tab and close it.
3 In the Model Builder under Materials,
click the Air node.

Advanced Topics | 85
comsol_introduction.book Page 86 Monday, April 29, 2013 2:57 PM

4 In the Graphics window, click the air box (Domain 1) to highlight it (in red)
and right-click to add it to the Selection list (which changes the color to blue).

A DDING F LUID F LOW


Now add the physics of fluid flow.
1 In the Model Builder, right-click Model 1 and
select Add Physics .
2 In the Add Physics tree under Fluid
Flow>Single-Phase Flow double-click Laminar
Flow to add it to the Selected physics section.
You do not need to add any more studies. Click
the Finish button .

86 | Advanced Topics
comsol_introduction.book Page 87 Monday, April 29, 2013 2:57 PM

3 On the Graphics toolbar, click the Select Boundaries button and then the
Wireframe rendering button to look inside the box.

Now that you have added fluid flow to the model, you need to couple the heat
transfer part of the Joule Heating interface to the fluid flow.
4 In the Model Builder, right-click Joule Heating . In the first section of the
context menu, the domain level, select Heat Transfer>Heat Transfer in
Fluids.

Advanced Topics | 87
comsol_introduction.book Page 88 Monday, April 29, 2013 2:57 PM

5 In the Graphics window select the


air box (Domain 1) and right-click
to add it to the Selection list.
Now couple the fluid flow and the
heat transfer phenomena.

6 In the Heat Transfer in Fluids


settings window under Model
Inputs, select Velocity field (spf/
fp1) from the Velocity field list.
This identifies the flow field from
the Laminar Flow interface and
couples it to heat transfer.
Now define the boundary
conditions by specifying the inlet
and outlet for the heat transfer in
the fluid domain.
7 In the Model Builder, right-click
Joule Heating . In the second
section of the context menu, the
boundary section, select Heat
Transfer>Temperature.
A Temperature node is added to the Model Builder

88 | Advanced Topics
comsol_introduction.book Page 89 Monday, April 29, 2013 2:57 PM

8 In the Graphics window, click the


inlet boundary, Boundary 2, and
right-click to add it to the
Selection list.
This sets the inlet temperature to
293.15 K, the default setting.
Click the Transparency button
in the Graphics toolbar to turn off
transparency, since we do not
need this anymore. Click the
Wireframe Rendering button
in the Graphics toolbar. The
graphics should look like the
image on the right. Continue by
defining the outlet.
9 In the Model Builder, right-click Joule Heating . At the boundary level, select
Heat Transfer>Outflow. An Outflow node is added to the Model Builder.

Advanced Topics | 89
comsol_introduction.book Page 90 Monday, April 29, 2013 2:57 PM

10In the Graphics window, click the


outlet boundary, Boundary 5, and
right-click to add it to the
Selection list.

The settings for the busbar, the bolts and the Electric Potential 1 and
Ground 1 boundaries have retained the correct selection, even though you
added the box geometry for the air domain. To confirm this, click the
Electric Potential 1 and the Ground 1 nodes in the Model Builder to verify
that they have the correct boundary selection.

Let’s continue with the flow settings. You need to indicate that fluid flow only
takes place in the fluid domain and then set the inlet, outlet, and symmetry
conditions.

90 | Advanced Topics
comsol_introduction.book Page 91 Monday, April 29, 2013 2:57 PM

1 In the Model Builder, click the Laminar Flow node . In the Laminar Flow
settings window, click the Clear Selection button .

2 In the Graphics window, click the air box (Domain 1) and right-click to add it
to the Selection.
It is good practice to verify that the Air
material under the Materials node has all the
properties that this multiphysics combination
requires. In the Model Builder under
Materials, click Air. In the 
Material settings window under Material
Contents, verify that there are no missing
properties, which are marked with a warning
sign . The section “Materials” on page 49
has more information.
Let’s continue with the boundaries.
3 In the Model Builder, right-click Laminar Flow and at the boundary level
select Inlet. An Inlet node is added to the Model Builder.

Advanced Topics | 91
comsol_introduction.book Page 92 Monday, April 29, 2013 2:57 PM

4 In the Graphics window, select the


inlet (Boundary 2) and right-click
to add it to the Selection list.

5 In the Inlet settings


window under Velocity in
the U0 field, enter Vin to
set the Normal inflow
velocity.

6 Right-click Laminar Flow


and at the boundary level select
Outlet . In the Graphics window,
select the outlet (Boundary 5) and
right-click to add it to the Selection
list.
The last step is to add symmetry
boundaries. You can assume that
the flow just outside of the faces of
the channel is similar to the flow
just inside these faces. This is
correctly expressed by the
symmetry condition.
7 Right-click Laminar Flow and
select Symmetry. A Symmetry node
is added to the sequence.

92 | Advanced Topics
comsol_introduction.book Page 93 Monday, April 29, 2013 2:57 PM

8 In the Graphics window, click one of the blue faces in the figure below
(Boundaries 1, 3, 4, or 48) and right-click each one to add all to the Selection
list.
Save the busbar_box_I.mph file,
which now includes the Air material
and Laminar Flow interface
settings.

When you know the


boundaries, you can click the
Paste button and enter the
information. In this example,
enter 1,3,4,48 in the Paste
selection window. Click OK
and the boundaries are
automatically added to the
Selection list.

C OARSENING THE M ESH


To get a quick solution, we will change the mesh slightly and make it coarser. The
current mesh settings would take a relatively long time to solve, and you can
always refine it later.
1 In the Model Builder, expand the Mesh 1 node and click the Size node .

2 In the Size settings window under


Element Size, click the Predefined
button and ensure that Normal is
selected.

Advanced Topics | 93
comsol_introduction.book Page 94 Monday, April 29, 2013 2:57 PM

3 Click the Build All button . The geometry displays with a coarse mesh in the
Graphics window.

You can assume that the flow velocity is large enough to neglect the influence of
the temperature increase in the flow field.
It follows that you can solve for the flow field first and then solve for the
temperature using the results from the flow field as input. This is implemented
with a study sequence.

S OLVING FOR F LUID F LOW AND JOULE H EATING


When the flow field is solved before the temperature field it yields a weakly
coupled multiphysics problem. The study sequence described in this section
automatically solves such a weak coupling.
1 In the Model Builder, right-click Study 1 and select Study Steps>Stationary
to add a second stationary study step to the Model Builder.

Next, the correct physics needs to be connected with the correct study step.
Start by removing Joule heating from the first step.

94 | Advanced Topics
comsol_introduction.book Page 95 Monday, April 29, 2013 2:57 PM

2 Under Study 1, click Step 1: Stationary .

3 In the Stationary settings window locate the Physics and Variables Selection
section. In the Joule Heating (jh) row, click to change the check mark to an
in the Solve for column, removing Joule Heating (jh) from Study 1.
4 Repeat the step. Under Study 1 click Step 2: Stationary 1 . Under Physics and
Variables Selection, in the Laminar Flow (spf) row click in the Solve for column
to change the check mark to an .

5 Right-click the Study 1 node and select Compute (or press F8) to
automatically create a new solver sequence that solves the two problems in
sequence.

Advanced Topics | 95
comsol_introduction.book Page 96 Monday, April 29, 2013 2:57 PM

6 After the solution is complete, click the Transparency button on the Graphics
toolbar to visualize the temperature field inside the box.

The Temperature Surface plot that displays in the Graphics window shows the
temperature in the busbar and in the surrounding box. You can also see that the
temperature field is not smooth due to the relatively coarse mesh. A good
strategy to get a smoother solution would be to refine the mesh to estimate the
accuracy.
7 Save the busbar_box_I.mph file up to this point so you can return to this file
if you want. The next steps use the original busbar.mph file.

Par am et ri c Swe ep s

S WEEPING A G EOMETRIC P ARAMETER


It is often useful to generate multiple instances of a design with the objective of
meeting specific constraints. In the previous busbar example, a design goal might
be to lower the operating temperature, or to decrease the current density. We will
demonstrate the former. Since the current density depends on the geometry of the
busbar, varying the width, wbb, should change the current density and, in turn,

96 | Advanced Topics
comsol_introduction.book Page 97 Monday, April 29, 2013 2:57 PM

have some impact on the operating temperature. Let us run a parametric sweep on
wbb to study this change.

A DDING A P ARAMETRIC S WEEP


1 Open the model file busbar.mph. In the Model Builder, right-click Study 1
and select Parametric Sweep . A Parametric Sweep node is added to the Model
Builder sequence.

2 In the Parametric Sweep settings


window, under the table, click the
Add button . From the Parameter
names list in the table, select wbb.

The Sweep type, available above the Parameter names, is used to control
parametric sweeps with multiple parameters. You select between
sweeping for All combinations of the given parameters or a subset of
Specified combinations.

Advanced Topics | 97
comsol_introduction.book Page 98 Monday, April 29, 2013 2:57 PM

3 Enter a range of Parameter values to sweep the width of the busbar from 5 cm
to 10 cm with 1 cm increments. There are different ways to enter this
information:
- Copy and paste or enter range(0.05,0.01,0.1) into the Parameter value
list field.
- Click the Range button and
enter the values in the Range
dialog box. In the Start field,
enter 5e-2. In the Step field,
enter 1e-2, and in the Stop
field, enter 1e-1. Click Replace.
Next, define an Average Model
Coupling, which can later be used
to calculate the average
temperature in the busbar.
4 Under Model 1, right-click Definitions and select Model Couplings>
Average .
5 In the Average settings window select All domains from the Selection list. This
creates an operator called aveop1.

The aveop1 is now available to calculate the average of any quantity defined on
those domains. A little later this is used to calculate the average temperature, but
it can also be used to calculate average electric potential, current density, and so
forth.
6 Right-click Study 1 and select Compute to run the sweep.
7 Select File>Save As to save the model with a new name, busbar_III.mph.

98 | Advanced Topics
comsol_introduction.book Page 99 Monday, April 29, 2013 2:57 PM

P ARAMETRIC S WEEP R ESULTS


A Temperature (jh) 1 node is added under Results.
The plot that displays in the Graphics window after the
parametric sweep shows the temperature in the wider
busbar using the last parameter value, wbb=0.1[m]
(10[cm]). The plot is rather uniform in color, so we need
to change the maximum color range.

1 Under the Temperature (jh) 1 node, click the Surface node .

2 In the Surface settings window, click


Range to expand the section. Select
the Manual color range check box.
Enter 309.35 in the Maximum field
(replace the default) to plot wbb at 10
cm.

Advanced Topics | 99
comsol_introduction.book Page 100 Monday, April 29, 2013 2:57 PM

3 The Temperature (jh) 1 plot is updated in the Graphics window for 


wbb=0.1[m] (10[cm]).

Compare the wider busbar plot to the temperature for wbb=0.05[m] (5[cm]).
1 In the Model Builder, click the first Temperature (jh) node .

2 In the 3D Plot Group settings


window, select Solution 2 from the
Data set list. This data set contains the
results from the parametric sweep.
3 In the Parameters value list, select
0.05 (which represents wbb=5 cm).
Click the Plot button . Click the
Zoom Extents button on the
Graphics toolbar.

100 | Advanced Topics


comsol_introduction.book Page 101 Monday, April 29, 2013 2:57 PM

The Temperature (jh) plot is updated for wbb=0.05[m] (5[cm]). Note that you
may have updated the color range for this plot already and then your plot may look
different compared to the one below. If not, follow the steps below.

Like the wider busbar, the plot may be quite uniform in color, so change the
maximum color range.
1 Under the first Temperature (jh) node, click the Surface node .
2 In the Surface settings window, click Range to expand the section (if it is not
already expanded). Select the Manual color range check box.

Advanced Topics | 101


comsol_introduction.book Page 102 Monday, April 29, 2013 2:57 PM

3 Enter 323 in the Maximum field (replace the default) to plot wbb at 5 cm.
The Temperature (jh) plot is updated in the Graphics window for 
wbb=0.05[m] (5[cm]).

Click the first and second Temperature plot nodes to compare the plots in the
Graphics window. The plots show that the maximum temperature decreases from
331 K to 318 K as the width of the busbar increases from 5 cm to 10 cm.

A DDING M ORE P LOTS


To further analyze these results, you can plot the average temperature for each
width.
1 Right-click Results and add a
1D Plot Group .
2 In the 1D Plot Group settings
window, select Solution 2 from the
Data set list. 

102 | Advanced Topics


comsol_introduction.book Page 103 Monday, April 29, 2013 2:57 PM

3 In the Model Builder, right-click 1D Plot Group 4 and add a Global node.

4 Under y-Axis Data, click the first row in the Expressions column and enter
aveop1(T). This operator is the one we defined on page 98 for later use. You
use a similar syntax to calculate the average of other quantities.

5 Click to expand the Legends section. Select the Expression check box.
This adds a legend at the top right corner of the graph.

Advanced Topics | 103


comsol_introduction.book Page 104 Monday, April 29, 2013 2:57 PM

6 Click the Plot button and save the busbar_III.mph model with these
additional plots that use the parametric sweep results.

In the plot, the average temperature also decreases as the width increases. This
indicates that the goal of a lower operating temperature would be fulfilled by using
a wider busbar.
The subject of parametric sweeps raises the question of parallel computing; it
would be efficient if all parameters were solved simultaneously.

Par a l l e l C o m p u t i n g

COMSOL supports most forms of parallel computing including shared memory


parallelism for multicore processors and high performance computing (HPC)
clusters and clouds. Any COMSOL license will be multicore enabled. For cluster
or cloud computing, a Floating Network License is needed.
You can use clusters or clouds either for Cluster Sweep or for Cluster Computing.
If you have a Floating Network License, these two options are available from the
Study node by right-clicking. However, you first need to enable Advanced Study

104 | Advanced Topics


comsol_introduction.book Page 105 Monday, April 29, 2013 2:57 PM

Options by clicking the Show button on the Model Builder toolbar and
selecting Advanced Study Options.

C LUSTER S WEEP
Cluster Sweep is used for solving several models in parallel
where each model has a different set of Parameters. This
can be seen as a generalization of Parametric Sweep.
Right-click the Study node to add a Cluster Sweep node.
The Study Settings for Cluster Sweep is similar to that of
Parametric Sweep, but additional settings are required for the cluster or cloud
being used. The below picture shows how the top of the settings window for
Cluster Sweep would look like for the same sweep as defined in “Parametric
Sweeps” on page 96.

C LUSTER C OMPUTING
You can also utilize a cluster or cloud to solve a single large model using
distributed memory. For maximum performance, the COMSOL cluster
implementation can utilize shared-memory multicore processing on each node in
combination with the Message Passing Interface (MPI) based distributed memory

Advanced Topics | 105


comsol_introduction.book Page 106 Monday, April 29, 2013 2:57 PM

model. This brings a major performance boost by making the most out of the
computational power available.
Right-click the Study node to add a Cluster Computing
node.
The Cluster Computing settings window, shown below,
helps to manage the simulation with settings for the
cluster or cloud.

You choose the type of cluster job you want to do from the Cluster type list.
COMSOL supports Windows Computer Cluster Server (WCCS) 2003, Windows
HPC Server (HPCS) 2008, Open Grid Scheduler/ Grid Engine (OGS/GE), or
Not distributed.
To learn more about running COMSOL in parallel, see the COMSOL
Multiphysics Reference Manual.

106 | Advanced Topics


comsol_introduction.book Page 107 Monday, April 29, 2013 2:57 PM

Appendix A—Building a Geometry

This section details how to create the busbar geometry using COMSOL’s built-in
geometry tools. The step-by-step instructions take you through the construction
of the geometry using parameters set up in Global Definitions. Using
parameterized dimensions helps to produce what-if analyses and geometric
parametric sweeps.
As an alternative to building the geometry in COMSOL you can import a
geometry from a CAD package. The optional CAD Import Module supports
many CAD file formats. Moreover, several add-on products are available that
provide bidirectional interfaces to common CAD software packages. See
“Appendix E—Connecting with LiveLink™ Add-Ons” on page 142 for a list.
Follow the steps under the Model Wizard (to add the physics and study) and
Global Definitions (to add the parameters) starting with “Example 2: The
Busbar—A Multiphysics Model” on page 42. Then return to this section to learn
about geometry modeling. The first step in the geometry sequence is to draw the
profile of the busbar.
1 Under Model 1, right-click 
Geometry 1 and select 
Work Plane . In the Work 
Plane settings window:
- Select xz-plane from the Plane list.
- Click the Show Work Plane button
on the Work Plane settings
toolbar.
Continue by editing the axis and grid
settings in Work Plane 1.

Appendix A—Building a Geometry | 107


comsol_introduction.book Page 108 Monday, April 29, 2013 2:57 PM

2 In the Model Builder, expand the View 2 node and click Axis .

3 In the Axis settings window:


Under Axis:
- In the x minimum and y minimum
fields, enter -0.01.
- In the x maximum and y maximum
fields, enter 0.11.
Note that the values you type will be
automatically adjusted slightly after
you enter it to adapt to the screen
aspect ratio.
Under Grid:
- Select the Manual Spacing check
box.
- In the x spacing and y spacing
fields, enter 5e-3.
4 Click the Apply button on the
toolbar.

You can use interactive drawing to create a geometry using the drawing toolbar
buttons while pointing and clicking in the Graphics window. You can also

108 | Appendix A—Building a Geometry


comsol_introduction.book Page 109 Monday, April 29, 2013 2:57 PM

right-click the Plane Geometry node under Work Plane 1 to add geometry
objects to the geometry sequence.

Right-click the Geometry or


Plane Geometry nodes to
add geometry objects.

Click the Plane Geometry node


under a Work Plane node
to open the interactive drawing toolbar.

In the next sequence of steps we create a profile of the busbar.


5 In the Model Builder under Work Plane 1, right-click Plane Geometry and
select Rectangle .
In the Rectangle settings window
under Size, enter:
- L+2*tbb in the Width field.
- 0.1 in the Height field .
Click the Build Selected button .

Appendix A—Building a Geometry | 109


comsol_introduction.book Page 110 Monday, April 29, 2013 2:57 PM

6 Create a second rectangle. Under


Work Plane 1, right-click Plane
Geometry and select Rectangle .
Under Size, enter:.
- L+tbb in the Width field
- 0.1-tbb in the Height field.
Under Position, enter:
- tbb in the yw field.
Click the Build Selected button .
Use the Boolean Difference operation
to subtract the second rectangle from
the first one. 

7 Under Work Plane 1, right-click Plane Geometry and select Boolean


Operations>Difference . In the Graphics window, click r1 and right-click to
add r1 to the Objects to add list in the Difference settings window.
To help select the geometry you can display geometry labels in the
Graphics window. In the Model Builder under Geometry
1>WorkPlane 1>Plane Geometry, click the View 2 node. Go to the
View settings window and select the Show geometry labels check box.

8 Click the Difference node. In the


Difference settings window, click the
Activate selection button to the
right of the Objects to subtract list.
Then select the smaller rectangle
(left-click multiple times to cycle
through overlapping geometry
objects) and right-click to add r2 to
the list.
Click Build Selected .
Another way to select r2 in the
Graphics window is to use the
Selection List window. Select
View>Selection List and in the
Selection List settings window, 

110 | Appendix A—Building a Geometry


comsol_introduction.book Page 111 Monday, April 29, 2013 2:57 PM

click to highlight r2 (solid). Then right-click r2 (solid) in the list to add it to the
Object to subtract list.
After building the selected geometry, you should have a backward-facing,
L-shaped profile. Continue by rounding the corners of the L-shaped profile.

9 Under Work Plane 1, right-click Plane Geometry and select Fillet .


Select point 3 to add it to the Vertices to fillet list. There are different ways to
add the points:
- In the Graphics window, click point 3 (in the inner right corner), and
right-click to add it to the Vertices to fillet list.
- Select View>Selection List. In the Selection List window, click 3. The
corresponding point is highlighted in the Graphics window. Click the Add to

Appendix A—Building a Geometry | 111


comsol_introduction.book Page 112 Monday, April 29, 2013 2:57 PM

Selection button on the Fillet settings window or right-click in the


Selection List.

10Enter tbb in the Radius field. Click Build Selected .


This takes care of the inner corner.
11For the outer corner, right-click Plane
Geometry and select Fillet .
12In the Graphics window, click point
6, the outer corner, and right-click to
add it to the Vertices to fillet list.
13Enter 2*tbb in the Radius field. Click
Build Selected .

112 | Appendix A—Building a Geometry


comsol_introduction.book Page 113 Monday, April 29, 2013 2:57 PM

The result should match this figure:

Next you extrude the work plane to create the 3D busbar geometry.
1 In the Model Builder, right-click Work Plane 1 and select Extrude . In the
Extrude settings window, enter wbb in the Distances from Plane table (replace
the default) to extrude to the width of the profile.

The table allows you to enter several values in order to create sandwich
structures with different layer materials. In this case, only one extruded layer is
needed.

Appendix A—Building a Geometry | 113


comsol_introduction.book Page 114 Monday, April 29, 2013 2:57 PM

2 Click Build Selected and then click the Zoom Extents button on the
Graphics toolbar. Click the Save button and name the model busbar.mph (if
you have not already done so).

Next, create the titanium bolts by extruding two circles drawn in two 
work planes.
3 In the Model Builder, right-click Geometry 1 and add a Work Plane . A
Work Plane 2 node is added. In the Work Plane settings window, under Work
Plane, select Face parallel as the Plane type.

114 | Appendix A—Building a Geometry


comsol_introduction.book Page 115 Monday, April 29, 2013 2:57 PM

4 In the Graphics window, click face 8 (highlighted in the figure). Once this
surface is highlighted in red, right-click anywhere in the Graphics window to
add it to the Planar face list in the Work Plane settings window.
Face number 8 is now highlighted in blue and the work plane is positioned on
top of face number 8.

Face 8

5 Click the Show Work Plane button to draw the first circle representing the
position of the first bolt. Click the Zoom Extents button on the Graphics
toolbar.

Appendix A—Building a Geometry | 115


comsol_introduction.book Page 116 Monday, April 29, 2013 2:57 PM

6 Under Work Plane 2, right-click


Plane Geometry and select
Circle .
In the Circle settings window:
- Under Size and Shape in the
Radius field, enter rad_1.
- Under Position, the xw and yw
coordinates (0, 0) are already
defined.
Click Build Selected .

Continue creating the bolt by adding an extrude operation.


1 In the Model Builder, right-click Work Plane 2 and select Extrude . In the
Extrude settings window, in the first row of the Distances from Plane table,
enter -2*tbb to extrude the circle.

116 | Appendix A—Building a Geometry


comsol_introduction.book Page 117 Monday, April 29, 2013 2:57 PM

2 Click the Build Selected button to create the cylindrical part of the titanium
bolt that runs through the busbar.

Draw the two remaining bolts.


3 Right-click Geometry 1 and select Work Plane . A Work Plane 3 node is
added. In the Work Plane settings window, for Work Plane 3, select Face parallel
as the Plane type.
4 In the Graphics window, click Face 4 (shown in the figure). When this surface
is highlighted red, right-click anywhere in the Graphics window to add it to the
Planar face list in the Work Plane settings window.

Appendix A—Building a Geometry | 117


comsol_introduction.book Page 118 Monday, April 29, 2013 2:57 PM

5 Click the Show Work Plane button on the Work Plane settings window and
the Zoom Extents button on the Graphics toolbar to get a better view of the
geometry.
To parameterize the position of the two remaining bolts, add the circles that
form the cross sections of the bolts.
6 Under Work Plane 3, right-click Plane Geometry and select Circle .
In the Circle settings window:
- Under Size and Shape, enter rad_1
in the Radius field.
- Under Position, enter -L/
2+1.5e-2 in the xw field and
-wbb/4 in the yw field.

Click Build Selected .

Copy the circle that you just created


to generate the third bolt in the
busbar.
7 Under Work Plane 3, right-click
Plane Geometry and select
Transforms>Copy .
8 In the Graphics window, click the
circle c1 to highlight it. Right-click
anywhere in the Graphics window
and add the circle to the Input object
list in the Copy settings window.
9 In the Copy settings window under
Displacement, enter wbb/2 in the yw
field.

118 | Appendix A—Building a Geometry


comsol_introduction.book Page 119 Monday, April 29, 2013 2:57 PM

10Click Build Selected .


Your geometry, as shown in the workplane, should match this figure so far.
Continue by extruding the circles.

Appendix A—Building a Geometry | 119


comsol_introduction.book Page 120 Monday, April 29, 2013 2:57 PM

11In the Model Builder, right-click Work Plane 3 and select Extrude . In the
Extrude settings window, in the first row of the Distances from Plane table,
enter -2*tbb (replace the default). Click Build All .
The geometry and its corresponding geometry sequence should match the
figures below. Click the Save button and name the model busbar.mph.

To continue with the busbar tutorial, return to the section “Materials” on


page 49.

120 | Appendix A—Building a Geometry


comsol_introduction.book Page 121 Monday, April 29, 2013 2:57 PM

Appendix B—Keyboard and Mouse Shortcuts

SHORTCUT (WINDOWS, LINUX) SHORTCUT (MAC) ACTION

F1 F1 Display help for the selected node


or window
Ctrl+F1 Command+F1 Open the COMSOL
Documentation front page in an
external window
F2 F2 Rename the selected node, file, or
folder
F3 F3 Disable selected nodes
F4 F4 Enable selected nodes
F5 F5 Update the Data Sets Solutions with
respect to any new Global
Definitions and Definitions without
re-solving the model
F7 F7 Build the selected node in the
geometry and mesh branches, or
compute to the selected node in the
solver sequence
F8 F8 Build the geometry, build the mesh,
compute the entire solver sequence,
update results data, or update the
plot
Del Del Delete selected nodes
Left arrow (Windows); Shift Left arrow Collapse a branch in the Model Tree
+ left arrow (Linux)
Right arrow (Windows); Shift Right arrow Expand a branch in the Model Tree
+ right arrow (Linux)
Up arrow Up arrow Move to the node above in the
Model Tree
Down arrow Down arrow Move to the node below in the
Model Tree
Alt+left arrow Ctrl+left arrow Move to the previously selected
node in the Model Tree
Alt+right arrow Ctrl+right arrow Move to the next selected node in
the Model Tree

Appendix B—Keyboard and Mouse Shortcuts | 121


comsol_introduction.book Page 122 Monday, April 29, 2013 2:57 PM

SHORTCUT (WINDOWS, LINUX) SHORTCUT (MAC) ACTION

Ctrl+A Command+A Select all domains, boundaries,


edges, or points; select all cells in a
table
Ctrl+D Command+D Deselect all domains, boundaries,
edges, or points
Ctrl+C Command+C Copy text in fields
Ctrl+N Command+N New model
Ctrl+O Command+O Open file
Ctrl+P Command+P Print
Ctrl+S Command+S Save file
Ctrl+V Command+V Paste copied text
Ctrl+Z Command+Z Undo the last operation
Ctrl+Y Ctrl+Shift+Z Redo the last undone operation
Ctrl+up arrow Command+up arrow Move a definitions node, geometry
node, physics node (except default
nodes), material node, mesh node,
study step node, or results node up
one step
Ctrl+down arrow Command+down Move a definitions node, geometry
arrow node, physics node (except default
nodes), material node, mesh node,
study step node, or results node
down one step
Ctrl+Tab Ctrl+Tab Switch focus to the next window on
the desktop
Ctrl+Shift+N Command+Shift+N New Physics Builder
Ctrl+Shift+Tab Ctrl+Shift+Tab Switch focus to the previous
window on the desktop
Ctrl+Alt+left arrow Command+Alt+left Switch focus to the Model Builder
arrow window
Ctrl+Alt+right arrow Command+Alt+right Switch focus to the settings window
arrow
Ctrl+Alt+up arrow Command+Alt+up Switch focus to the previous section
arrow in the settings window
Ctrl+Alt+down arrow Command+Alt+down Switch focus to the next section in
arrow the settings window

122 | Appendix B—Keyboard and Mouse Shortcuts


comsol_introduction.book Page 123 Monday, April 29, 2013 2:57 PM

SHORTCUT (WINDOWS, LINUX) SHORTCUT (MAC) ACTION

Shift+F10 or Ctrl+F10 Open the context menu


(Windows only) Menu key
Ctrl+Space Ctrl+Space Open list of predefined quantities
for insertion in Expression fields for
plotting and results evaluation
Left-click and hold down the Same as for Windows, Rotate the scene around the axes
mouse button while dragging only available for parallel to the screen X- and Y-axes
the mouse. two-button mouse. with the origin at the scene rotation
point.
Right-click and hold down the Same as for Windows, Move the visible frame on the image
mouse button while dragging only available for plane in any direction.
the mouse. two-button mouse.
Middle-click and hold down Same as for Windows, The scene is zoomed in/out around
the mouse button while only available for the mouse position where the
dragging the mouse. two-button mouse. action started.
Press Ctrl and left-click. Same as for Windows, Tilt and pan the camera by rotating
While holding down both only available for about the X- and Y axes in the
buttons, drag the mouse. two-button mouse. image plane.
Press Ctrl and right-click. Same as for Windows, Move the camera in the plane
While holding down both only available for parallel to the image plane.
buttons, drag the mouse. two-button mouse.
Press Ctrl and middle-click. Same as for Windows, Move the camera into and away
While holding down both only available for from the object (dolly in/out).
buttons, drag the mouse. two-button mouse.
Press Ctrl+Alt and left-click. Same as for Windows, Rotate the camera around the axis.
While holding down both only available for
buttons, drag the mouse. two-button mouse.
Press Alt and left-click. While Same as for Windows, Rotate the camera about its axis
holding down both buttons, only available for between the camera and the scene
drag the mouse. two-button mouse. rotation point (roll direction).
Press Alt and right-click. Same as for Windows, Move the scene in the plane
While holding down both only available for orthogonal to the axis between the
buttons, drag the mouse. two-button mouse. camera and the scene rotation
point.
Press Alt and middle-click. Same as for Windows, Move the camera along the axis
While holding down both only available for between the camera and the scene
buttons, drag the mouse. two-button mouse. rotation point.

Appendix B—Keyboard and Mouse Shortcuts | 123


comsol_introduction.book Page 124 Monday, April 29, 2013 2:57 PM

Appendix C—Language Elements and Reserved Names

Building a Model Tree in COMSOL is equivalent to graphically programming a


sequence of operations. Saving as Model M-file or Model Java-file outputs the
sequence of operations as a list of traditional programming statements. In this
section we will give an overview of the following element categories as defined by
the underlying COMSOL language:
• Constants
• Variables
• Functions
• Operators
• Expressions

These language elements are built-in or user-defined. Operators cannot be


user-defined. Expressions are always user-defined.

A BOUT R ESERVED N AMES


Built-in elements have reserved names, names that cannot be redefined by the
user. If you try to use a reserved name for a user-defined variable, parameter, or
function, the text where you enter the name will turn orange and you will get a
tooltip error message if you select the text string. Reserved function names are
reserved only for function names, which means that such names can be used for
variable and parameter names, and vice versa. In the following pages we list the
most commonly used built-in elements and hence those reserved names.

C o n s t a n t s a n d Par a m e t e r s

There are three different types of Constants: Built-in Mathematical and Numerical
Constants, Built-in Physical Constants, and Parameters. Parameters are
User-defined Constants which can vary over parameter sweeps. Constants are
scalar valued. The tables below list the Built-in Mathematical and Numerical
Constants as well as Built-in Physical Constants. Constants and Parameters can
have units.

124 | Appendix C—Language Elements and Reserved Names


comsol_introduction.book Page 125 Monday, April 29, 2013 2:57 PM

B UILT - IN M ATHEMATICAL AND N UMERICAL C ONSTANTS

DESCRIPTION NAME VALUE

Floating point relative accuracy for double eps 2-52 (~2.2204·10-16)


floating point numbers, also known as
machine epsilon
The imaginary unit i, j i, sqrt(-1)
Infinity,  inf, Inf A value larger than what
can be handled with
floating point
representation
Not-a-number NaN, nan An undefined or
unrepresentable value
such as the result of 0/0
or inf/inf
 pi 3.141592653589793

B UILT - IN P HYSICAL C ONSTANTS

DESCRIPTION NAME VALUE

Acceleration of gravity g_const 9.80665[m/s^2]


Avogadro constant N_A_const 6.02214129e23[1/mol]
Boltzmann constant k_B_const 1.3806488e-23[J/K]
Characteristic impedance Z0_const 376.73031346177066[ohm]
of vacuum (impedance of
free space)
Electron mass me_const 9.10938291e-31[kg]
Elementary charge e_const 1.602176565e-19[C]
Faraday constant F_const 96485.3365[C/mol]
Fine-structure constant alpha_const 7.2973525698e-3
Gravitational constant G_const 6.67384e-11[m^3/(kg*s^2)]
Molar volume of ideal gas V_m_const 2.2413968e-2[m^3/mol]
(at 273.15 K and 1 atm)
Neutron mass mn_const 1.674927351e-27[kg]
Permeability of vacuum mu0_const 4*pi*1e-7[H/m]
(magnetic constant)
Permittivity of vacuum epsilon0_const 8.854187817000001e-12[F/m]
(electric constant)

Appendix C—Language Elements and Reserved Names | 125


comsol_introduction.book Page 126 Monday, April 29, 2013 2:57 PM

DESCRIPTION NAME VALUE

Planck’s constant h_const 6.62606957e-34[J*s]


Planck’s constant over 2 pi hbar_const 1.05457172533629e-34[J*s]
Proton mass mp_const 1.672621777e-27[kg]
Speed of light in vacuum c_const 299792458[m/s]
Stefan-Boltzmann sigma_const 5.670373e-8[W/(m^2*K^4)]
constant
Universal gas constant R_const 8.3144621[J/(mol*K)]
Wien displacement law b_const 2.8977721e-3[m*K]
constant

P ARAMETERS
Parameters are user-defined constant scalars in the Global Definitions branch in
the Model Tree. Example uses are:
• parameterizing geometric dimensions,
• parameterizing mesh element sizes,
• defining parameters to be used in parametric sweeps.

A Parameter can be defined as an expression in terms of numbers, Parameters,


built-in constants, and functions of parameters and built-in constants. Parameters
should be assigned a unit, using [], unless they are dimensionless.

Var i abl e s

There are two types of Variables: built-in and user-defined. Variables can be scalars
or fields. Variables can have units.
Note: There is a group of user-defined variables of special interest. Spatial
coordinate variables and dependent variables. These variables have default names
based on the space dimension of the geometry and the Physics interface
respectively. As a result of the names chosen for these variables, a list of built-in
variables will be created by COMSOL: the first and second order derivatives with
respect to space and time.

126 | Appendix C—Language Elements and Reserved Names


comsol_introduction.book Page 127 Monday, April 29, 2013 2:57 PM

B UILT - IN VARIABLES

NAME DESCRIPTION TYPE

t Time Scalar
freq Frequency Scalar
lambda Eigenvalue Scalar
phase Phase angle Scalar
numberofdofs Number of degrees of freedom Scalar
h Mesh element size (length of the longest edge of Field
the element)
meshtype Mesh type index for the mesh element; this is the Field
number of edges in the element.
meshelement Mesh element number Field
dvol Volume scale factor variable; this is the Field
determinant of the Jacobian matrix for the
mapping from local (element) coordinates to
global coordinates.
qual A mesh quality measure between 0 (poor quality) Field
and 1 (perfect quality)

U SER- DEFINED VARIABLES T HAT G ENERATE B UILT - IN VARIABLES

DEFAULT NAME DESCRIPTION TYPE

x, y, z Spatial coordinates (Cartesian) Field


r, phi, z Spatial coordinates (Cylindrical) Field
u, T, etc. Dependent variables (Solution) Field

Example: T is the name for the temperature in a 2D, time-dependent heat transfer
model, x and y are the spatial coordinate names. In this case, the following built-in
variables will be generated: T, Tx, Ty, Txx, Txy, Tyx, Tyy, Tt, Txt, Tyt, Txxt,
Txyt, Tyxt, Tyyt, Ttt, Txtt, Tytt, Txxtt, Txytt, Tyxtt, and Tyytt. Here, Tx
corresponds to the partial derivative of the temperature T with respect to x, and
Ttt corresponds to the second-order time derivative of T, and so on. If the spatial
coordinate variables have other names—for example, psi and chi—then Txy
would be Tpsichi, and Txt would be Tpsit. (The time variable t is built-in; the
user cannot change its name.)

Appendix C—Language Elements and Reserved Names | 127


comsol_introduction.book Page 128 Monday, April 29, 2013 2:57 PM

Functio n s

There are two types of Functions: Built-in and User-defined. Functions can be
scalar valued or field valued depending on the input argument(s). Some Functions
can have units for both input and output arguments.

B UILT - IN M ATHEMATICAL F UNCTIONS


These functions do not have units for their input or output arguments.

NAME DESCRIPTION SYNTAX EXAMPLE

abs Absolute value abs(x)


acos Inverse cosine (in radians) acos(x)
acosh Inverse hyperbolic cosine acosh(x)
acot Inverse cotangent (in radians) acot(x)
acoth Inverse hyperbolic cotangent acoth(x)
acsc Inverse cosecant (in radians) acsc(x)
acsch Inverse hyperbolic cosecant acsch(x)
arg Phase angle (in radians) arg(x)
asec Inverse secant (in radians) asec(x)
asech Inverse hyperbolic secant asech(x)
asin Inverse sine (in radians) asin(x)
asinh Inverse hyperbolic sine asinh(x)
atan Inverse tangent (in radians) atan(x)
atan2 Four-quadrant inverse tangent (in radians) atan2(y,x)
atanh Inverse hyperbolic tangent atanh(x)
besselj Bessel function of the first kind besselj(a,x)
bessely Bessel function of the second kind bessely(a,x)
besseli Modified Bessel function of the first kind besseli(a,x)
besselk Modified Bessel function of the second kind besselk(a,x)
ceil Nearest following integer ceil(x)
conj Complex conjugate conj(x)
cos Cosine cos(x)
cosh Hyperbolic cosine cosh(x)
cot Cotangent cot(x)
coth Hyperbolic cotangent coth(x)

128 | Appendix C—Language Elements and Reserved Names


comsol_introduction.book Page 129 Monday, April 29, 2013 2:57 PM

NAME DESCRIPTION SYNTAX EXAMPLE

csc Cosecant csc(x)


csch Hyperbolic cosecant csch(x)
erf Error function erf(x)
exp Exponential exp(x)
floor Nearest previous integer floor(x)
gamma Gamma function gamma(x)
imag Imaginary part imag(u)
log Natural logarithm log(x)
log10 Base-10 logarithm log10(x)
log2 Base-2 logarithm log2(x)
max Maximum of two arguments max(a,b)
min Minimum of two arguments min(a,b)
mod Modulo operator mod(a,b)
psi Psi function and its derivatives psi(x,k)
range Create a range of numbers range(a,step,b)
real Real part real(u)
round Round to closest integer round(x)
sec Secant sec(x)
sech Hyperbolic secant sech(x)
sign Signum function sign(u)
sin Sine sin(x)
sinh Hyperbolic sine sinh(x)
sqrt Square root sqrt(x)
tan Tangent tan(x)
tanh Hyperbolic tangent tanh(x)
The following functions are only available when solving and not when evaluating
parameters and variables in the user interface: acosh, acoth, acsch, asech,
asinh, atanh, besselj, bessely, besseli, besselk, erf, gamma, and psi.

B UILT - IN O PERATOR F UNCTIONS


These built-in functions behave differently than the built-in mathematical
functions. They may not belong in an introductory text but are listed to complete

Appendix C—Language Elements and Reserved Names | 129


comsol_introduction.book Page 130 Monday, April 29, 2013 2:57 PM

the list of reserved names. For more information see the COMSOL Multiphysics
Reference Manual.

NAME NAME NAME NAME

adj down linsol scope.ati


at dtang lintotal sens
ballavg error lintotalavg shapeorder
ballint fsens lintotalpeak side
bdf if lintotalrms sphavg
centroid integrate linzero sphint
circavg isdefined mean subst
circint isinf nojac test
circumcenter islinear pd timeavg
d isnan ppr timeint
depends jacdepends pprint try_catch
dest lindev prev up
diskavg linper reacf var
diskint linpoint realdot with

130 | Appendix C—Language Elements and Reserved Names


comsol_introduction.book Page 131 Monday, April 29, 2013 2:57 PM

U SER-D EFINED F UNCTIONS


A User-defined Function can be defined in the Global Definitions or Model
Definitions branch of the Model Tree by selecting a template from the Functions
menu and entering settings to define the name and detailed shape of the function.

TEMPLATE NAME ARGUMENTS AND DEFINITION SYNTAX EXAMPLE

Analytic The function name is its identifier, The name of the function with
for example an1. comma-separated arguments within
The function is a mathematical parenthesis. For example:
expression of its arguments. an1(x,y)
Example: Given the arguments x
and y, its definition is
sin(x)*cos(y).
The function has an arbitrary
number of arguments.
Elevation The function name is its identifier, The name of the function with
for example elev1. comma-separated arguments within
Used to import geospatial elevation parenthesis. For example:
data from digital elevation models elev1(x,y)
and map the elevation data to a
function of x and y. A DEM file
contains elevation data for a portion
of the Earth’s surface. The resulting
function behaves essentially like a
grid-based interpolation function.
Gaussian Pulse The function name is its identifier, The name of the function with a
for example gp1. single argument within parenthesis.
The Gaussian pulse function defines For example:
a bell-shaped curve according to the gp1(x)
expression
– x – x0 
2
-----------------------
-
1 2
2

y  x  = --------------- e
 2

It is defined by the mean parameter,


x0, and the standard deviation, .
The function has one argument.

Appendix C—Language Elements and Reserved Names | 131


comsol_introduction.book Page 132 Monday, April 29, 2013 2:57 PM

TEMPLATE NAME ARGUMENTS AND DEFINITION SYNTAX EXAMPLE

Image The function name is its identifier, The name of the function with
for example im1. comma-separated arguments within
Used to import an image (in BMP, parenthesis. For example:
JPEG, PNG, or GIF format) and map im1(x,y)
the image’s RGB data to a scalar
(single channel) function output
value. By default the function’s
output uses the mapping (R+G+B)/
3.
Interpolation The function name is its identifier, The name of the function with
for example int1. comma-separated arguments within
An interpolation function is defined parenthesis. For example:
by a table or file containing the int1(x,y,z)
values of the function in discrete
points.
The file formats are the following:
spreadsheet, grid, or sectionwise.
The function has one to three
arguments.
Piecewise The function name is its identifier, The name of the function with a
for example pw1. single argument within parenthesis.
A piecewise function is created by For example:
splicing together several functions, pw1(x)
each defined on one interval. Define
the argument, extrapolation and
smoothing methods, and the
functions and their intervals.
This function has one argument with
different definitions on different
intervals, which must not overlap or
have any holes between them.
Ramp The function name is its identifier, The name of the function with a
for example rm1. single argument within parenthesis.
A ramp function is a linear increase For example:
with a user-defined slope that begins rm1(x)
at some specified time.
The function has one argument. It
can also be smoothed.

132 | Appendix C—Language Elements and Reserved Names


comsol_introduction.book Page 133 Monday, April 29, 2013 2:57 PM

TEMPLATE NAME ARGUMENTS AND DEFINITION SYNTAX EXAMPLE

Random The function name is its identifier, The name of the function with
for example rn1. comma-separated arguments within
A random function generates white parenthesis. For example:
noise with uniform or normal rn1(x,y)
distribution and has one or more The arguments x and y are used as a
arguments to simulate white noise. random seeds for the random
The function has arbitrary number function.
of arguments.
Rectangle The function name is its identifier, The name of the function with a
for example rect1. single argument within parenthesis.
A rectangle function is 1 in an For example:
interval and 0 everywhere else. rect1(x)
The function has one argument.
Step The function name is its identifier, The name of the function with a
for example step1. single argument within parenthesis.
A step function is a sharp transition For example:
from 0 to some other value step1(x)
(amplitude) at some location.
The function has one argument. It
can also be smoothed.
Triangle The function name is its identifier, The name of the function with a
for example tri1. single argument within parenthesis.
A triangle function is a linear For example:
increase and linear decline within an tri1(x)
interval and 0 everywhere else.
The function has one argument. It
can also be smoothed.
Waveform The function name is its identifier, The name of the function with a
for example wv1. single argument within parenthesis.
A waveform function is a periodic For example:
function with one of several wv1(x)
characteristic shapes: sawtooth, sine,
square, or triangle.
The function has one argument. It
can also be smoothed.

Appendix C—Language Elements and Reserved Names | 133


comsol_introduction.book Page 134 Monday, April 29, 2013 2:57 PM

TEMPLATE NAME ARGUMENTS AND DEFINITION SYNTAX EXAMPLE

External (Global An external function defines an The name of the function and the
Definitions only) interface to one or more functions appropriate number of arguments
written in the C language (which within parenthesis. For example:
can be a wrapper function myextfunc(a,b)
interfacing source code written in
for example Fortran). Such an
external function can be used, for
example, to interface a user-created
shared library. Note that the
extension of a shared library file
depends on the platform: .dll
(Windows), .so (Linux), or .dylib
(Mac OS X).
MATLAB A MATLAB function interfaces one The name of the function and the
(Global or more functions written in the appropriate number of arguments
Definitions only) MATLAB language. Such functions within parenthesis. For example:
can be used as any other function mymatlabfunc(a,b)
defined in COMSOL provided
LiveLink for MATLAB and MATLAB
are installed. (MATLAB functions are
evaluated by MATLAB at runtime.)

134 | Appendix C—Language Elements and Reserved Names


comsol_introduction.book Page 135 Monday, April 29, 2013 2:57 PM

Unar y and Binar y Operators

PRECEDENCE LEVEL SYMBOL DESCRIPTION

1 () {} . Grouping, Lists, Scope


2 ^ Power
3 ! - + Unary: Logical Not, Minus, Plus
4 [] Unit
5 * / Multiplication, Division
6 + - Binary: Addition, Subtraction
7 < <= > >= Comparisons: Less-Than, Less-Than or
Equal, More-Than, More-Than or Equal
8 == != Comparisons: Equal, Not Equal
9 && Logical And
10 || Logical Or
11 , Element Separator in Lists

Ex pres sions

P ARAMETERS
A Parameter Expression can contain: Numbers, Parameters, Constants, Functions
of Parameter Expressions, Unary and Binary Operators. Parameters can have units.

VARIABLES
A Variable Expression can contain: Numbers, Parameters, Constants, Variables,
Functions of Variable Expressions, Unary and Binary Operators. Variables can
have units.

F UNCTIONS
A Function definition can contain: input arguments, Numbers, Parameters,
Constants, Functions of Parameter Expressions including input arguments, Unary
and Binary Operators.

Appendix C—Language Elements and Reserved Names | 135


comsol_introduction.book Page 136 Monday, April 29, 2013 2:57 PM

Appendix D—File Formats

C O M S O L F i l e Fo r m a t s

The COMSOL Model file type, with the extension .mph, is the default file type
containing the entire Model Tree. The file contains both binary and text data. The
mesh and solution data are stored as binary data, while all other information is
stored as plain text.
The COMSOL binary and text file types, with the extension .mphbin and
.mphtxt, respectively, contain either geometry objects or mesh objects which can
be imported directly to the Geometry or Mesh branches in the Model Tree.
The Physics Builder file type, with the extension .mphphb, contains one or more
physics user interfaces that you can access from the Model Wizard. See the Physics
Builder Manual, for more information.
See “Supported External File Formats” for more information about all the other
formats supported by COMSOL.

FILE TYPE EXTENSION READ WRITE

COMSOL Model .mph Yes Yes


Binary Data .mphbin Yes Yes
Text Data .mphtxt Yes Yes
Physics Builder .mphphb Yes Yes

S u p p o r t e d E x t e r n a l F i l e Fo r m a t s

CAD
The CAD Import Module allows for import of a range of industry-standard CAD
file types. Additional file types are available through the bidirectional functionality
of the LiveLink products for CAD as well as with the File Import for CATIA V5
add-on.

136 | Appendix D—File Formats


comsol_introduction.book Page 137 Monday, April 29, 2013 2:57 PM

The DXF (2D), VRML (3D), and STL (3D) file types are available for import with
COMSOL Multiphysics and don’t require any add-on products.

FILE TYPE EXTENSION READ WRITE

AutoCAD® (3D only)1 .dwg Yes6 Yes6


Autodesk Inventor®2 .ipt, .iam Yes Yes6
Creo™ Parametric2 .prt, .asm Yes Yes6
Pro/ENGINEER®2 .prt, .asm Yes Yes6
Solid Edge®3 .par, .asm Yes6 Yes6
SolidWorks®2 .sldprt, .sldasm Yes Yes6
SpaceClaim®4 .scdoc Yes6 Yes6
DXF (2D only) .dxf, Yes Yes
®2
Parasolid .x_t, .xmt_txt, .x_b, .xmt_bin Yes Yes
®2
ACIS .sat, .sab, .asat, .asab Yes Yes
2
Step .step, .stp Yes No
IGES2 .iges, .igs Yes No
® 5
CATIA V5 .CATPart, .CATProduct Yes No
7
VRML, v1 .vrml, .wrl Yes No
7
STL .stl Yes Yes
1
Requires LiveLink™ for AutoCAD®
2Requires one of the LiveLink™ products for AutoCAD®, Creo™ Parametric, Inventor®, Pro/
ENGINEER®, Solid Edge®, SolidWorks®, or SpaceClaim®; or the CAD Import Module
3Requires LiveLink™ for Solid Edge®
4
Requires LiveLink™ for SpaceClaim®
5
Requires the CAD Import Module (or one of the LiveLink™ products for AutoCAD®,
Creo™ Parametric, Inventor®, Pro/ENGINEER®, Solid Edge®, SolidWorks®, or SpaceClaim®)
and the File Import for CATIA® V5
6
From/To file via linked CAD package
7
Limited functionality for a single geometric domain only

ECAD
The ECAD Import Module allows for import of 2D layout files with automatic
conversion to 3D CAD models. The Touchstone file type is used for exporting
S-parameters, impedance, and admittance values from simultaneous port and

Appendix D—File Formats | 137


comsol_introduction.book Page 138 Monday, April 29, 2013 2:57 PM

frequency sweeps. The SPICE Circuit Netlist file type is converted at import to a
series of lumped circuit element nodes under an Electrical Circuit node.

FILE TYPE EXTENSION READ WRITE

NETEX-G1 .asc Yes No


ODB++(X)1 .xml Yes No
GDS1 .gds Yes No
Touchstone .s2p, .s3p, .s4p, ... No Yes
SPICE Circuit Netlist2 .cir Yes No
1Requires the ECAD Import Module
2
Requires one of the AC/DC, RF, MEMS, or Plasma Modules

M ATERIAL D ATABASES
The Chemical Reaction Engineering Module can read CHEMKIN files to
simulate complex chemical reactions in the gas phase. The Plasma Module can
read LXCAT files for sets of electron impact collision cross-sections.

FILE TYPE EXTENSION READ WRITE


1 3
CHEMKIN .dat, .txt, .inp Yes No
1
CAPE-OPEN (direct connection) n/a n/a n/a
LXCAT file2 .lxcat, .txt Yes No
1
Requires Chemical Reaction Engineering Module
2Requires Plasma Module
3
Any extension is allowed, these are the most common extensions

138 | Appendix D—File Formats


comsol_introduction.book Page 139 Monday, April 29, 2013 2:57 PM

M ESH
The NASTRAN Bulk Data file types are used to import a volumetric mesh. The
VRML and STL file types are used to import a triangular surface mesh, and cannot
be used for creating a volumetric mesh. If imported as a Geometry, then VRML
and STL files can be used as a basis for creating a volumetric mesh for a single
geometric domain.

FILE TYPE EXTENSION READ WRITE

NASTRAN Bulk Data .nas, .bdf, .nastran, .dat Yes No


VRML, v1 .vrml, .wrl Yes No
STL .stl Yes Yes

I MAGES AND M OVIES


Results visualization can be exported to a number of common image file types, see
the table below. Images can also be read and used as interpolation functions for
physics modeling. Animations can be exported to one of the Animated GIF,
Adobe Flash, and AVI file types.

FILE TYPE EXTENSION READ WRITE

JPEG .jpg, .jpeg Yes Yes


PNG .png Yes Yes
BMP .bmp Yes Yes
TIFF .tif, .tiff No Yes
GIF .gif Yes Yes
EPS (1D graphs only) .eps No Yes
Animated GIF .gif No Yes
Adobe® Flash .swf No Yes
AVI1 .avi No Yes
1
Available for Windows only

Appendix D—File Formats | 139


comsol_introduction.book Page 140 Monday, April 29, 2013 2:57 PM

P ROGRAMMING L ANGUAGES AND S PREADSHEET


Model Java-Files are editable script files, with the extension .java, that contain
sequences of COMSOL Multiphysics commands as Java code. Edit the files in a
text editor to add additional commands. You can compile these Java files into Java
Class files, with the extension .class, and run them as separate applications.
Model M-files are editable script files, similar to the Model Java-files, for use with
MATLAB. Model M-files, which have the extension .m, contain a sequence of
COMSOL Multiphysics commands as a MATLAB M-file. Run the Model M-files
in MATLAB like any other M-file scripts. Also edit the files in a text editor to
include additional COMSOL Multiphysics commands or general MATLAB
commands. Running files in the Model M-file format requires the COMSOL
LiveLink™ for MATLAB®.

FILE TYPE EXTENSION READ WRITE

MATLAB®: Model M-File .m No Yes


MATLAB®: Function1 .m Yes No
Java: Model Java File .java No Yes
Java: Model Class File .class Yes No
C: Function .dll3, .so4, .dylib5 Yes No
Excel®2 .xlsx Yes Yes
1Requires LiveLink™ for MATLAB®
2
Requires LiveLink™ for Excel®, available for Windows only
3
Available for Windows only
4Available for Linux only
5
Available for Mac OS X only

140 | Appendix D—File Formats


comsol_introduction.book Page 141 Monday, April 29, 2013 2:57 PM

N UMERICAL AND I NTERPOLATION D ATA FORMATS


The Grid, Sectionwise, and Spreadsheet file types can be read for defining
Interpolation functions. The Sectionwise and Spreadsheet file types can
furthermore be read and used for defining Interpolation curves and written for
exporting Results. In addition, Tables can be copy-pasted on spreadsheet format.
Parameters and Variables can be imported and exported to the Plain text,
Comma-separated values, or Data file types.
The Continuous and Discrete color table text file types are used for user-defined
color tables for Results visualization.
Digital Elevation Model (DEM) files can be read and used as a Parametric Surface
for defining a Geometry.

FILE TYPE EXTENSION READ WRITE

Copy and paste spreadsheet format n/a Yes Yes


Excel® spreadsheet1 .xlsx Yes Yes
Table .txt, .csv, .dat Yes Yes
Grid .txt Yes Yes
Sectionwise .txt, .csv, .dat Yes Yes
Spreadsheet .txt, .csv, .dat Yes Yes
Parameters .txt, .csv, .dat Yes Yes
Variables .txt, .csv, .dat Yes Yes
Continuous and Discrete color table .txt Yes No
DEM .dem Yes No
1Requires LiveLink™ for Excel®, available for Windows only

Appendix D—File Formats | 141


comsol_introduction.book Page 142 Monday, April 29, 2013 2:57 PM

Appendix E—Connecting with LiveLink ™ Add-Ons

The following table shows the options to start COMSOL and the different linked
partner software using the LiveLink add-ons.

COMSOL® Can Start COMSOL Can Start Partner Software Can Connect
Product from Partner Software from COMSOL Running Sessions
LiveLink™  Yes1 Yes2 No
®
for Excel

LiveLink™ Yes3 Yes4 Yes5


for MATLAB®

LiveLink™  No No Yes
for AutoCad®

LiveLink™  No No Yes
for Creo™ Parametric

LiveLink™ 
for Inventor®
- Bidirectional Mode No No Yes
- One Window Mode Yes No No
LiveLink™  No No Yes
for Pro/ENGINEER®

LiveLink™  No No Yes
for Solid Edge®

LiveLink™ 
for SolidWorks®
- Bidirectional Mode No No Yes
- One Window Mode Yes No No
LiveLink™  No No Yes
for SpaceClaim®
1 When you open a COMSOL model from Excel, a COMSOL model window starts and a link is established
automatically. The COMSOL model window is an output window that displays geometry, mesh, and results.
2 A COMSOL model that includes a table reference to an Excel spreadsheet automatically starts an Excel

process in the background when the model is run in COMSOL Desktop.


3 You can start a COMSOL Server from a MATLAB session using the "system" command and then connect

to it using "mphstart" in the MATLAB command prompt.

142 | Appendix E—Connecting with LiveLink™ Add-Ons


comsol_introduction.book Page 143 Monday, April 29, 2013 2:57 PM

COMSOL® Can Start COMSOL Can Start Partner Software Can Connect
Product from Partner Software from COMSOL Running Sessions
4 The"COMSOL 4.3b with MATLAB" desktop shortcut starts a COMSOL Server and MATLAB, then
connects them automatically. When you run a COMSOL model in the COMSOL Desktop that includes a
MATLAB function (Global Definitions>Functions), a MATLAB engine and connection is started
automatically.
5
You can connect a MATLAB session to a running COMSOL Server using the COMSOL command
"mphstart" in the MATLAB command prompt.

Appendix E—Connecting with LiveLink™ Add-Ons | 143


comsol_introduction.book Page 144 Monday, April 29, 2013 2:57 PM

144 | Appendix E—Connecting with LiveLink™ Add-Ons

You might also like