Issue 028 – January 9, 2021

OpenFOAM v2012: First Contact

Hey there,

It’s Robin from CFD Engine & as promised I’m back with a quick rundown of what stood out (for me) in the latest OpenFOAM.com release.

It’s been a few weeks since v2012 was released so I grabbed the release notes, fired up an Ubuntu Docker container, installed the latest binaries and took it for a spin.

Quick note, the Ubuntu binaries have been a game changer for me. As someone who’s too lazy to compile it myself having a binary install for a Linux distribution that I’m familiar with is mega. Thank you for packaging it up 🙏

There’s much more in v2012 than I’ll cover here, so you should definitely check out the release notes yourself. Here are my personal highlights, in no particular order…

snappyHexMesh Layers

Don’t get excited. Layering hasn’t been overhauled, but we do have some new settings to play with. Rather than just relative or absolute sizing options we now have six thickness models to try. All sorts of combinations that should keep you busy, until you finally accept that you can’t have 15 nice layers on your rear wing in SHM 😉

Vibro-Acoustics

New solvers tend to pass me by, I’m too busy plugging away in simpleFoam, but the new vibro-acoustics solver resonated with me 😁

Less than a month ago I was on a call telling a company that I thought this kind of analysis would be pretty tricky to do in OpenFOAM. And now we have a solver that’s just the job. You’ve got to love the pace of development. Nick & Tim, if you’re reading this, you should check it out.

Non-moving Moving Mesh

There’s been a nifty addition to the ACMI (the coupled interface, often used in moving mesh simulations) which means you can “turn it off” – effectively blocking it without actually having to move it. Neat.

There’s a nice demonstration that uses it to switch the flow between outlets in a tee-junction over a given time period – like switching a valve without having to move anything. It makes more sense if you check out the movie.

Loads of new post-pro bits

Probably the most interesting section of the release notes for me, lots of little things that add to the polish & remove a few quirks…

surfaceFieldValue has been updated to work on volume fields. It warrants one line at the end of another announcement but this is my favourite new feature. Finally, an easy way to report pressure on a faceZone – a simple task that was surprisingly difficult to do before this release 🎉

There’s a “new” isosurface method (topo) which makes your isosurfaces smoother (helping to mask the fact that your mesh is too coarse 🤫) plus the output file sizes are reduced. I’ve only tested it on the standard motorBike tutorial, but it looks pretty promising 🤞

You can now change the alert level triggered when functionObjects fail, from anywhere between “yeah, whatever, I don’t care” to “stop everything, my Lamb vector isn’t working”.

You can now specify a series of offsets for cuttingPlanes in sampledSurface which makes it easier to create multiple slices through your domain. I kind of like this functionality except that all the resulting slices get lumped together into a single output file. That means you’ll have to bust them apart again in ParaView (using the Connectivity filter) in order to display them individually or to use them to create a moving slice/sweep animation – nearly there, B+

You can now have multiple iso-levels in the one VTK file which I think could make for some nice wake visualisations.

Bits & Bobs

There are plenty of other things that didn’t make my personal highlight reel, that look pretty cool, including:

  • a host of Lagrangian bits, from new post-processing options to moving wall/moving mesh improvements, plus “particle recycling” which sounds very eco friendly;
  • tweaks to some of the meshing tools, including new arc definitions in blockMesh, origin tweaks in transformPoints and a cool polyline option in extrudeMesh (the image in the release notes reminds me of playing snake on a Nokia phone);
  • an extension to Funtion1 capabilities – I don’t do a lot of time-varying boundary conditions etc, but I need to look into Funtion1 some more, it seems really interesting 🤔

Over to you

As usual, there’s a lot to digest & some (most) of it may not impact your workflow, but v2012 feels like a welcome step forwards.

Plus, the user upgrade guide (always worth checking out in addition to the release notes) suggests that there aren’t too many “hidden” changes waiting to trip us up. I’m not sure when/if it’ll make it into my production workflow, but I’ll definitely be giving it more of a workout.

Have you taken v2012 for a spin yet? What are you’re favourite announcements? What are you looking forward to having a play with? What have I missed? Drop me a note & let me know – always keen to hear your experiences.

Until next week, stay safe,

Signed Robin K