News in COMSOL Multiphysics 3.2: Place
News in COMSOL Multiphysics 3.2: Place
News in COMSOL Multiphysics 3.2: Place
Prague
Place
2005-11-15
Bertil Waldén
COMSOL AB
FEMLAB is now COMSOL MultiphysicsTM
• First name was PDE Toolbox
– Because it solved PDEs
• COMSOL ScriptTM
COMSOL Script:
• Fully compatible with the MATLAB language
– All data types except objects
– Command line debugger, dbstop, dbstep, dbcont, ...
– Java interface
• Fast 3D graphics using OpenGL acceleration (50 times
faster than Matlab)
Batch execution with COMSOL Script
• Metric units
– SI units
– CGS units
– MPa units suitable
for structural analys
– EM units
– ES units
• English units
– British engineering
units
– FPS
– IPS
– Gravitational IPS
• No units
Pre-defined multiphysics couplings
Grouping of subdomains and boundaries
More improvements
• Customized report
• 3.1: Substitution
v
– Unsymmetric Jacobian matrix with da cu f
zeros on the diagonal t
– Not good for iterative solvers u
– Memory waste v 0
t
– Two dofs to keep track of
• 3.2: New formulation
– One variable, symmetric Jacobian if
the PDE is
2u u
– Very good for iterative solvers! ea da cu f
t 2
t
– Memory efficient!
Transient analysis improvements
• Laminar flow, 3D
• On 32-bit architecture, 2GB RAM: 450 kdofs, 60-90
minutes
– In 3.1, 240 kdofs, 4-5 hours
• On 64-bit architecture, 12 GB RAM: 2150 kdofs, 6-8
hours
– In 3.1, 400-500 kdofs, 16 hours
Exciting new feature:
Moving boundaries and mesh with the ALE-method
Moving meshes with ALE
• ALE is a technique used to handle single physics or multiphysics
problems where the effect of the deformation on the physics cannot
be neglected.
• A simple example of this is the 2D fluid structure interaction model:
Moving meshes with ALE
OK
Not OK
Example: Parameterized geomety (ALE)
Objective
• Create a GUI of your own that can run all types of scripts:
COMSOL Multiphysics or user-defined.
Panel 1
Axes
Panel 2
Panel 3
Panel 4
The m-files geommodel.m
minigui.m (sets up the GUI): (creates the geometry):
function geommodel(event)
f1=frame('FEMLAB','size',[800 600]);
width=frame.get('width').getValue;
p1=panel;
height=frame.get('height').getValue;
p1.add(label('Rectangle width:'),1,1);
centerx=frame.get('centerx').getValue;
p1.add(label('Rectangle height:'),2,1);
centery=frame.get('centery').getValue;
p1.add(label('Circle center x:'),3,1);
radius=frame.get('radius').getValue;
etc.
g1=rect2(width,height,'pos',{'0','0'});
p2=panel;
g2=circ2(radius,'pos',{centerx,centery});
p2.add(label('Element size:'),1,1);
s.objs={g1,g2};
etc.
fem.draw=struct('s',s);
f1.get('geombutton').addActionListener('geommodel');
fem.geom=geomcsg(fem);
f1.get('meshbutton').addActionListener('meshmodel');
f1.get('solvebutton').addActionListener('solvemodel');
geomplot(fem);
f1.get('plotbutton').addActionListener('plotmodel');
Quick preview: COMSOL Reaction Engineering LAB
What is the Reaction Engineering Lab?
3 cornerstones of Reaction Engineering
• Reaction kinetics
– Evaluate it quickly