Robin Bornoff's blog

Views and insights into the concepts behind electronics cooling with a specific focus on the application of FloTHERM to the thermal simulation of electronic systems. Investigations into the application of FloVENT to HVAC simulation. Plus the odd foray into CFD, non-linear dynamic systems and cider making.

18 July, 2014

I’m sure in the (far) future, product design and manufacture will just involve a big box that you can ask to make things for you. “A leg driven transport device with communication, health monitoring and illumination functions that will last me the week. Please Mr. Box” (or ‘Bob the making box’ as I’d call mine). Out it would pop. Think Star Trek Next Generation Replicator, extrapolated. In the mean time product design is far more manual, time consuming and let’s face it, FUN! Time however is money and no matter how much fun it is, it has to be profitable. Waiting around for your FloTHERM thermal simulation to complete is both not fun and time consuming. Maybe not as much now though…

The CFD solver is the core, the nucleus of a CFD software. Everything upstream of it’s deployment is intended to serve it (boundary conditions, geometry, mesh etc.) and nothing downstream can happen (results inspection) until it’s done its business. Just like a watched kettle, the CFD solver can appear to take a long time to finish. More maybe due to the feeling of helplessness, that all you can do is watch those residuals come down.

I’ve been working in the application and product management side of CFD for all my professional career. I know enough about the maths to be dangerous, not enough to be useful. For FloTHERM V10 we have substantially reworked the CFD solver, especially its parallel performance. Using nothing more than words I’ll attempt to g**k porn a description of what we’ve done…

The main aim of this project was to improve the parallel scalability of the CFD solver. Experience is that for a shared memory approach care has to be taken to achieve +ve scaling above 4 cores. Key to this is focussing on load balancing between the cores. To that end we:

  • Modified our data structures to distribute the computational work across the cores more uniformly.
  • Modified our linear solvers to take advantage of the better load-balancing including introduction of a new more scalable preconditioner
  • Memory management is modified to take advantage of the NUMA-architecture (Non-Uniform Memory Access) of modern processors
  • Enhanced memory layout of our data structures to optimize the memory accesses for the modern cache-based processors

There are many ways to present the performance of parallel CFD solvers. I’ve seen enough graphs showing maximum linear scaling (use N cores results in an N times speed up) to start questioning their integrity long ago. We decided to focus on the improvements a FloTHERM user would expect to see when moving from V9 to V10.The following graph shows how many times faster V10 is compared to V9, for a range of different models, on 1, 2, 4 and 8 cores.

v9 vs v10

Being the real world, we found that the relative performance improvement is case specific, the improvement does get better the more cores you use but (surprisingly) the performance is not effected by mesh topology (i.e. the number and layout of localized grid spaces). Some of the changes we made for scalability also had a dramatic effect running even on a single core!

We did tests on up to 8 cores on all models, some we tested up to 32 cores, continued +ve scaling was observed.

Being twice as fast, having to wait half the time, is nothing to be sniffed at. 10 times faster is quite remarkable. Less time to read SF and speculate about the future, more time to get back to the real work of designing good (thermally compliant) product.

18th July 2014, Ross-on-Wye


30 June, 2014

If there’s one word that describes electronics products it’s ‘complexity’. Actually, scratch that, that’s too generic a term. How about ‘cluttered’? IC packages are constructed from a number of different parts, soldered onto a PCB that is constructed from a series of layers and secured into some kind of chassis. ‘Packaging’ at various levels, physically interconnecting functionality with itself and to the outside world. From an electronics thermal simulation perspective such an application is not complex in terms of advanced physics and convoluted curved geometries but it does entail specific challenges for those involved in assuring thermal compliance.

Detailed package _explodedThere are only about a 3 orders of magnitude difference in the thermal conductivities of the materials that go to make up an electronic product. ‘Only’ when compared to a 12 orders of magnitude difference in electrical resistivities. Electrical current therefore remains flowing in very well defined parts of the product, isolated from both a physical, design tool and design process perspective.  Heat on the other hand spreads all over the place, like a bad smell. It cares not for the classic divisions in the product development process, turns its nose up at electrical engineering as it gushes out from the IC, sneers at the PCB designer as it spreads through the board and shows nothing but disdain to mechanical engineering as it get whisked away by the air on its way out. Enter the thermal engineer, brave knight, thermocouple and FloTHERM in hand. Tasked with taming the dragon that is heat, chasing it through these scales and disciplines.

GenericSmartPhone1As such, a typical FloTHERM model will contain parts (with associated physical and behavioural parameters) such as: die, die attach, lead frame, die pad, substrate, boned wires, encapsulant, lid, solder ball, signal layer, power plane, ground plane, dielectric layers, pads, electrical vias, thermal vias, connectors, capacitors, LEDs, RF cans, EM shields, potting compound, thermal interface greases/pads/tape, heatsinks, fan-sinks, fans, blowers, heat pipes, thermo-electric coolers, batteries, cables, vents, fan trays, enclosures, chassis, nut and bolts. To name but a few.

When making predictions about operating temperatures using FloTHERM, the thermal engineer must be sure that their model of the proposed product is accurate to the extent where the resulting accuracy of the simulation will be useful. This involves inspecting the model in various ways, often, throughout the model building and results inspection process. Sure, graphical and node tree views of the model are standard. In FloTHERM V10 we have added an additional view of the model and the data that used to define it.

Integrated Summary ColumnsIntegrated summary columns can be invoked to show a tabular type view of the model, linked to the node tree view. Columns will show, per part, what attribute is attached (name tool tipped on mouse over), size, power, cumulative power for assemblies and whether any face of that object is de-keypointed due to use of minimum cell size grid constraint.

The summary columns can be shown/hidden using the “i” key shortcut. By providing a quick view of the model input, without having to navigate to the tabs that are used to enter or set that data, the user can make the frequent inspections necessary to assure that the model has all the required settings so that they can get back to doing battle with the heat and not waste unnecessary time sharpening their software sword.

30th June 2014, Hampton Court.


10 June, 2014

Flo. As far as prefixes go, I don’t know of another company that uses one so consistently for product branding, well apart from Apple. ‘Flo’ comes from ‘Flow’ and was part of the naming of Flomerics (Flow-Numerics), the company that first developed FloTHERM (flow-thermal) and FloVENT (flow-ventilation). FloMOTION was a favourite branding (animated post-processing module). Other completely unrelated Flos include Flo Rida, Flo Jo and Auntie Flo. We still use this prefix (though try to steer clear of too much conFlosion) and when it came to naming a new automation scripting technology we developed for FloTHERM V10, the name was obvious; FloSCRIPT.

Scripting allows for instructions to be stored/recorded/replayed that would otherwise have to have been done manually in the GUI. As such, scripting can do no more than would be possible manually. What it can do though is to automate such tasks. Automation saves time and can be used to impose quality and consistency on the simulation process.

FloSCRIPT_fragmentEach FloTHERM session is logged to a FloSCRIPT file, the last 5 session scripts are retained (in the \flosuite_v10\flotherm\WinXP\bin\LogFiles directory). FloSCRIPT is XML based, with each operation performed in the new Project Manager / Drawing Board window being logged.

An obvious application for this technology is when it comes to communicating with customer support. Gone are the days where a user would have to remember and recount the steps they went through when helping a support engineer replicate the steps leading to the issue being reported. Now it’s simply a case of sending the FloSCRIPT file whereupon the support engineer can replay it (using [Project/Run FloSCRIPT...]) to repeat the steps directly.

Although FloTHERM has a wealth of functions and features, often these operate at a lower level than the input might be defined at. Sure, it’s possible to define a transient variation of power dissipation as a function of time, using inputs such as start time, end time, power multiplier, attachments of such transient attributes to those objects that should vary their power dissipation in time (e.g. via RefDes of all actives). However this is somewhat removed and cumbersome when compared to how the input might be considered by the user, e.g. ‘the device should be in idle mode for 20 seconds, receiving data for 70 seconds then play video for 120 seconds’ where a table of power dissipations reflects these differing modes of operation. FloSCRIPT can be bought to bear on this, enabling the input to be phrased intuitively, and for the FloSCRIPT to do the low level implementation of this input.

A FloSCRIPT generating spreadsheet example is installed to \flosuite_v10\flotherm\examples\FloSCRIPT. It enables capture of the simulation intent directly. A lookup table indicates the various power dissipation levels, per RefDes, for each mode of operation of the model. The transient power profile itself is captured via a Duration vs. Mode table. The ‘Create FloSCRIPT file’ button then runs Visual Basic scripting to convert the input into a series of commands that can be applied to a loaded model, again via  [Project/Run FloSCRIPT...].


Running the FloSCRIPT on a loaded model will, in one click:

  • set the model to transient
  • define the overall transient solution time
  • define appropriate time patches with efficient time step distributions
  • create transient attributes that specify the power dissipation vs. time
  • attach the transient attributes to the relevant thermal attributes (using RefDes as the keying)

If you have to demonstrate the thermal compliance of your model in a number of differing customer environments then such an automation may save you a massive amount of time.

FloSCRIPT together with FloXML provide a wealth of other automation opportunities. Byron Blackmore gave an excellent overview of both automation technologies in this webinar, well worth checking out.

If I had an independent report to prove it I’d say that, unlike any other comparable CAE tools, it’s the inherent simplicity and subsequent robustness of FloTHERM’s underlying technology that enables FloTHERM to be automated to this extent and that, although other tools purport to have similar technologies, attempting to automate them is compromised due the amount of manual intervention required when the automation fails.  I don’t though, so I won’t.

10th June 2014, Ross-on-Wye.


4 June, 2014

FloTHERM’s strength has always its been its robustness, founded on a simplicity of technology that we’ve tried not to compromise over its 25 year life. This is no truer than in its 3D CAD drawing interface. More Lego than Sculpting in its capabilities, it’s always been quick and easy to mock up a conceptual cooling architecture for a proposed design. FloTHERM V10 provides a step change in usability when it comes to such 3D sketching.

FloTHERM’s CAD drawing interface is not a fully fledged 3D MCAD type environment. Geometry isn’t based on sketches extruded into features and such like. (For that fully MCAD enabled FloTHERM experience we’ve developed FloTHERM XT). FloTHERM has a set of primitive shapes out of which geometry is created, either manually using click/drag or automatically created by converting existing MCAD geometry into these primitives using the FloMCAD Bridge window. Such an approach isn’t new. Lego has been around since 1932 and if anything it’s popularity is greater now than ever before. Maybe due to the very low barrier to adoption, it’s simple, and fun!


The display of the geometry in FloTHERM’s Drawing Board has to date been rendered in wireframe only. In recent years as the size and complexity of FloTHERM models has exploded due to 64 bit support and the lifting of the lid on the old 32 bit 2GB (3GB with a trick) addressable memory limit. Trying to manipulate geometry in wireframe only is notoriously difficult. So in V10 we added the option to render geometry as solid.

Wireframe Solid

Objects can be translated, resized, rotated in either view, including a new cursor change on mouse over a grab handle. Speaking of views, to the 4 view /1 view option we’ve added a couple of 2 viewport modes (horizontal and vertical) as well as the ability to resize each view port:


All the the existing view manipulation short cuts have been retained; f(irst angle projection), t(hird angle projection), r(efit) etc. as well as an extremely useful new shortcut v(iew selected) where the view will be zoomed into the currently selected object(s). [Menu entry equivalents exist for all shortcuts of course]

KeyboardSnapAlign2D shape manipulation in Microsoft Office products has always been intuitive. In the 3D FloTHERM CAD environment we’ve replicated some of that simplicity. The existing ‘snap to object’ snap mode, where an object will snap to another one on a move or resize as soon as object being moved gets to within a few pixels of another object, has been given a keyboard equivalent. Pressing the Alt key together with a keyboard arrow key will move an object in that coordinate direction, snapping to the next object edge in that direction. Going one step beyond Microsoft, in addition to the standard left, right, up etc. align options we’ve also added an ‘Align to Center’ option that’s proving to be repeatedly useful!

Lego_PC“It’s not called modelling for nothing”. You can use Lego to build models of a range of different things, from buildings to spaceships to dinosaurs to computers :)

4th June 2014, Ross-on-Wye


3 June, 2014

Temperature has always been, and will continue to be, a good enough leading indicator of product reliability. As a parameter it is easy to specify a maximum rating value and relatively easy to measure. However it is not temperature itself that directly causes product failure, more often than not it is some kind of mechanical fracture or deformation that itself is fuelled by thermo-mechanical effects. Differences in temperature and differences in material properties cause objects to bend, deform and possibly break. When applied to electrical circuits any break in that circuit is catastrophic in that, to put it simply, the product stops working.

Einstein famously once said that “Everything should be made as simple as possible, but not simpler”. Industrial processes tend naturally to gravitate towards this as well. Simplicity is more robust and cheaper. Humans also, whilst not inherently lazy, are programmed not to expend energy unnecessarily. It is no surprise that temperature has proved such a useful metric to gauge electronic product reliability, why go any further? Looking at thermo-mechanical behaviour will provide a more explicit understanding of the actual physics of failure. Solder joint fracture is by far the most common method of failure and whilst bulk temperature prediction may indicate probability of failure, detailed stress/strain prediction will indicate exactly where and under what conditions that failure will occur.

FLOFEA_ExportWe have not incorporated a thermo-mechanical simulation capability in FloTHERM V10, instead we have enabled FloTHERM 3D temperature predictions to be exported for subsequent import into existing FEA tools. This export capability is straightforward and requires no additional license. Simply select an assembly in a solved project, RMB pop-up and Export Assembly to ‘FLOFEA’. A file will be written that contains temperature values for all solid cells that reside in the selected assembly, together with information about cell size and location.

An FEA geometry and mesh is likely to differ from that used for thermal simulation. Thermal behaviour allows for certain simplifying approaches to be adopted for thermal simulation that are invalid for a mechanical simulation. Solder ball modelling being a case in point. From a thermal perspective so long as the thermal resistance of the ball, in the direction of heat flow, is preserved, the ball can be represented as a far more mesh efficient cuboidal shape. Not appropriate for mechanical simulation, especially considering it’s the stress levels in the solder ball that is the key output to be simulated and those values are geometry dependent.

FSIMApper_InterpolationThe  FLOFEA file has been written so as to be importable into a 3rd party interpolation tool, namely MpCCI FSIMapper from Fraunhofer SCAI. MpCCI is a well established and highly regarded set of tools to enable CAE interfacing. An existing FEA mesh is imported into FSIMapper, as is the FLOFEA file, whereupon an intelligent interpolation is performed, mapping the FloTHERM temperatures onto the FEA mesh, the interpolation algorithms accommodating for differences in the geometry definition between the two model types. The FEA mesh and interpolated temperatures is then written out and can be set as thermal load boundary conditions in Ansys Mechanical or Abaqus.

For more information either contact Fraunhofer SCAI directly or contact your local FloTHERM account manager.

3rd June 2014, Ross-onWye

, , , , ,

25 February, 2014

Electronic products, and products that contain electronics, are typified by being constructed of 100s if not 1000s of individual parts. A CPU alone is the most complex manufactured product on earth as demonstrated in this excellent picture story on Tom’s Hardware. From the IC through package, PCB and chassis, items are glued, cured, soldered, screwed and assembled into the myriad of products that run through every aspect of modern life. Engineering in all its forms is driving humanity forward into a future that will be as glorious as it will be inevitable and will one day see us burst out from our planet and on to a galactic diaspora. A future far flung from FloTHERM V10′s much enhanced ‘find’ capability :)

Read the rest of this entry »

, ,

14 February, 2014

FloTHERM V10 is a major release that marks 25 years as the leading electronics thermal simulation tool. This series will introduce the top 10 features that we’ve delivered, hopefully giving some insights not just on the features themselves, but also on the background as to how and why we’ve developed them. To start with let’s look at the most obvious change, a new graphical user interface (GUI).

Read the rest of this entry »

, ,

15 January, 2014

The latest release of FloTHERM, V10, is now available! It is a major release, satisfying over 40 software enhancement requests as posted and voted on by the FloTHERM userbase on the Mentor IDEAS site. The release addresses user feedback regarding pre-processing model definition and debugging, vastly improves the performance of the CFD solver, extends FloTHERM’s transient simulation capability into the realms of thermostatic control modelling, allows for temperatures to be exported to act as boundary conditions for an FEA thermo-mechanical stress/strain simulation and increases the range of application of FloTHERM to handle Data Center cooling with the introduction of Rack and Cooler ‘SmartPart’ modelling objects.

I’ll be blogging about each of these productivity enhancing features over the coming weeks. To start with however, if you are interested in finding out more about this release, I will be introducing this version and its new capabilities in a webinar on Thursday January 23rd. Register now!—what-s-new

Hampton Court, 15th January 2014

, ,

10 January, 2014

Simulation should never be done for its own sake. 3D computational simulation is still a relatively young technology in the grand scheme of things, akin to the automotive industry of 100 years ago where drivers were more like engineers, they had to be to use the car. Coming up with a design solution is analogous to getting to your destination in a car, it’s also quicker than walking. That’s why I relish the opportunity to demonstrate the use of simulation to design something better. In this case I’m going to try to put all the things we’ve learnt over the last few blogs together and try to design a better flower pot heater.

Read the rest of this entry »

, , , ,

18 December, 2013

Have you ever wondered why, after a winter night, some of your car windows are iced over whilst others are not? Happens after a clear night with no clouds. To understand the reason one must appreciate the fact that something loses heat, and thus gets cold, for two reasons; losing heat to the local air by convection and losing heat to any colder surrounding object due to thermal radiation. On a cold clear night those windows of your car that have a clear line of sight to the cold night sky will lose heat quickly due to radiative exchange with something big that is effectively at about -270 degC – space. Windows that only see your (relatively warm) house will not lose as much heat, stay warmer and thus not freeze. If you can, park under a tree. If you can afford one, park in a garage.

Read the rest of this entry »

, , , ,