Issue 004 – July 18, 2020

My CFD Toolkit: The Extra Bits

Morning, morning,

It’s Robin from CFD Engine, with another dose of CFD goodness. With any luck there might be a few bits of software for you to check out in this week’s email.

I posted a graphic earlier this year listing my 2020 core CFD toolkit, aka OpenFOAM v1912, ParaView & Rhinoceros running locally on a Mac, & remotely on AWS.

But that’s just the core toolkit, what about all the other bits & bobs that make a workflow tick? What are the other tools I’ve adopted along the way, to make #CFDlife a bit easier?

I put this annotated list together in case there’s something here that you might find useful. I’ve left out those core tools, they’ll no doubt get their own emails. And I’ve also left out the tens of unix commands that glue it all together.

Many of the tools below are cross-platform but, for those that are Mac-only, I’ve tried to give an alternative.

So, here’s the list…

AWS CLI

Although I’m not going into detail on AWS, I need to mention their command-line tools. Start instances, upload/download/sync files with S3, check what’s running, find IP addresses and more, all from the comfort of the command-line.

Authy

Lots of the services I use support 2-factor authentication & I use Authy as my authenticator of choice. AWS, Dropbox, Google, GitHub etc don’t let me in without Authy’s say so.

Docker

I use Docker for running OpenFOAM on my Mac. I build my own OpenFOAM Docker images using an Ubuntu base image & the relevant OpenFOAM binaries. I use Ubuntu AMIs on AWS, so using it in Docker keeps things relatively consistent across my local & remote compute. I don’t use Docker on AWS (yet).

Dropbox API

I use normal Dropbox for sharing files & folders with clients, standard. But I also use their developer API to transfer results from the command-line on AWS EC2 instances directly to Dropbox. It can do much more, but that’s enough for me.

Espanso

A recent addition, Espanso is a cross-platform text expander with a few nifty features that make short work of long terminal commands. It’s especially useful when using remote machines (or in Docker containers) where it’s hard to keep bash aliases consistent.

FFmpeg

I do all of my standard batch post-processing on AWS instances with no graphics. I use FFmpeg to stitch images together into animations from the command line. It’s lightning fast, but has the most-complex command line I’ve ever seen.

Git

I’m experimenting (again) with using git to version control my OpenFOAM case files. It’s proving difficult to break a decade-long habit of having a project full of case directories, but it might just be worth it. I’ve been using GUIs – Sourcetree & GitUp – a lot, which is a bit embarrassing for someone who insists that “you don’t need a GUI” for OpenFOAM 🙄

iTerm2

The built-in Mac terminal used to be rubbish, so I’ve used iTerm2 as a replacement for years. You probably don’t need it any more, but it has a few nice extras like splitting, mouse-less copy & great profiles. Linux-heads will have no shortage of options in this area, but Hyper might be interesting for Windows people (or anyone who likes to make their terminal look nice).

Mailgun

I use Mailgun to email myself from the command-line on EC2 instances without having to configure anything on the actual instance. Just simple stuff like a force summary, or a notification that the job has finished. If you wanted to do this without an extra service then you could use AWS’ Simple Email Service via the CLI.

MOSH

Kind of like SSH, but for ropey connections. Mosh is a mobile shell that’s plays nicely if your WiFi connection drops out while you’re doing stuff on remote machines. You give up your scrollback, but you gain a responsive terminal that works on almost any connection.

Obsidian

This one’s fairly recent as I’m on a never-ending quest for the ultimate notes app. I take a lot of notes & I’m hoping Obsidian can help me make sense of them with backlinking & graph view. Recent contenders have included Quiver & an outliner called Workflowy. I love outliners - check it out if you like making lists.

Sublime Text

If you’re going to spend a lot of time in a text editor, you might as well make it a good one. Granted, you don’t have to spend $80 on Sublime Text like I did (I still don’t know what I was thinking). But, if you’re editing dictionary files in notepad, then do yourself a favour & grab a code editor. You’ll wonder how you ever did without bracket matching, folding, multi-line cursors, syntax highlighting, etc, etc. Checkout Atom or VSCode for more wallet-friendly, cross-platform options. Alternatively, get to grips with vi or emacs & you’ll never have to leave the command-line again 🤓

Anything else?

There are loads of other non-CFD-related tools that I’ve skipped – collaboration & communication tools, stuff for accounting, graphics software, podcasting bits etc.

Hit reply if there’s anything, in the list or otherwise, that you want to know more about.

Beyond that, what tools am I missing out on? What do you rely on, that I’ve never heard of? Help me out, what shiny new things should I check out?

I’ll be back next week with a few thoughts on free CFD.

Until then, stay safe,

Signed Robin K