SMEKlib progress update

SMEKlib progress update

This piece was originally published on anttilehikoinen.fi.

Woah, it’s been more than a year since I released the first version of SMEKlib (an open-source Matlab library for finite element analysis of electrical machines, in case you’ve missed). I’m happy to say it was really well received, but I also admit but an update has been long overdue. Well, now the wait is over and you can download a new version from GitHub.

SMEKlib will also be featured in a paper of mine in this year’s ICEM conference in Greece. The paper, assuming it passes review, will double as a coarse-level documentation of the library, i.e. something that has been sorely missing. You can find a sneak peek of the paper below – a comparison between SMEKlib and the in-house FORTRAN software FCSMEK. The former was faster, by the way.

Sidenote about ICEM: I’ll also be hosting a tutorial there, together with an awesome colleague of mine from Austria. We’ll cover optimization and modelling of electrical machines, with yours truly focusing on the latter part. So, hope to see you there.

Updates

Anyway, what’s new in the library? Well, the basic functionality is pretty much the same. Second-order shape functions are now included (and illustrated below), and numerous small bugs have been fixed.

The biggest change is related to the typical analysis workflow. Indeed, the library now includes some classes for wrapping up typical functionality under one object. For example, time-stepping analysis can now be performed with a single line of code. Like this, basically:


I guess anybody with even the basest understanding of programming (and the English language, of course), can understand the intent of the above snippet.

Matlab users can try the examples themselves right away. Octave is out of the question at the moment (due to the lack of enumeration classes), put a compatibility fix will be published shortly.

I’d still consider Matlab though – the performance is so much better at least on Windows platforms, and the license is very affordable for persons and businesses alike. In the 37 kW example, it was 4.8 versus ~20 seconds on my PC. Unix users could probably do a little better by linking Octave to e.g. OpenBLAS. However, even though SMEKlib’s pretty much entirely vectorized, the inner Newton iteration is still traversed hundreds if not thousands of times during a typical time-stepping simulation. Here, Matlab’s JIT compiler simply rules. Tangentially, Python+Numba starts to seem like the preferred open-source alternative over Octave, assuming I ever have time for porting the library into a Python-based SNEKlib.

Is it for you?

Finally, the big question: why should you care? Well, you don’t have to. You can, of course, do most of the same things with a commercial software of your choice. Or if you are happy with static solutions only, you can settle for FEMM.

It all boils down to personal preferences; e.g. if you want a GUI versus how much access you like. Some people like tailored products, while others off-the-shelf everything – nothing wrong with either.

Good work Antti. I will definitely test it, although I would have preferred an Octave-ready version :).

回复

要查看或添加评论,请登录

Antti Lehikoinen ????的更多文章

  • An MTPA-optimal operating point - the How and Why

    An MTPA-optimal operating point - the How and Why

    This article is the second part of this post here; exceeding the word limit of a single post so hence it's an article…

    8 条评论
  • Of Circuits and Conductors

    Of Circuits and Conductors

    I love the concept of 'circuits' and 'conductors' in 2D finite element analysis. There are just so many varieties and…

  • A million ways to compute torque

    A million ways to compute torque

    Well, not exactly. But the output torque is the most important single characteristic of an electric motor, and getting…

    9 条评论
  • Six things you might not know about finite element analysis

    Six things you might not know about finite element analysis

    This article originally appeared on anttilehikoinen.fi.

  • Coarse Mesh Generation - Progress update

    Coarse Mesh Generation - Progress update

    Right now, one of our summer employees (basically a paid intern for those unfamiliar with the term) is working on…

    6 条评论
  • Comsol, SMEKlib, and TEAM Workshop Problem 30a

    Comsol, SMEKlib, and TEAM Workshop Problem 30a

    Alright, benchmarking time. In the blue corner, Comsol.

    4 条评论
  • Fixing a 100-Year Old Mistake with SMEKlib

    Fixing a 100-Year Old Mistake with SMEKlib

    This week, I was (t)asked to do a very simple verification simulation for our professor emeritus. My job was to…

    8 条评论
  • SMEKlib Released

    SMEKlib Released

    I'm happy to announce that the very first version of SMEKlib is now available. SMEKlib, named after the Finnish word…

    14 条评论

社区洞察

其他会员也浏览了