Simulation

Mesh it, solve it,then look at it

OpenFOAM 10 with the environment already sourced.The container stays up, and your cases sit under /data.

OpenFOAM 114 cores · 32 GBRuns in a shell
hub://openfoam

$ dxflow workflow create --identity openfoam hub://openfoam --start

01Pick a machinecores, memory and a rate per hour
02Create the workflowpulled from the hub, once
03Run it, then stopstopped when the work is done
The application

Solvers, utilitiesand the whole environment

Sourced on login, so blockMesh and every solver are on the PATH.

The solver set

icoFoam, simpleFoam, pimpleFoam, interFoam and the rest, all in it.

Decompose and run

decomposePar, then mpirun -np N and -parallel, then reconstructPar.

ParaView after it

The case sits on the volume, so the ParaView workflow will open it.

How you run it

The environmentis already sourced

Nothing to configure at start. Put the case under /data and the whole toolchain is on the PATH.

a case, meshed and solved

$ blockMesh

$ decomposePar

$ mpirun -np 8 simpleFoam -parallel

$ reconstructPar

Every name is on the PATHblockMesh, snappyHexMesh, icoFoam and the rest answer straight away. No bashrc to source first.
Split it, run it, join itdecomposePar cuts the case up, mpirun -parallel works it, reconstructPar puts the time directories back together.
The shell

No window,just a prompt

The container stays up, and the cases live under /data.

blockMeshCommandand every solver
/dataStoragecases, meshes and logs
The container stays upIt idles until you stop it, so the shell is there when you are.
Everything on /dataThe volume is mounted there, and the time directories land in it.
Good to know

ParaView ridesalong with it

The image is OpenFOAM 11 with ParaView beside it, so a finished case can be looked at where it was solved.

Post-process in place

paraFoam and the ParaView readers are in the image. No second machine, and no copying a mesh across the internet to see it.

Cores are the whole game

A solver run scales with ranks. Pick the machine by core count, and match -np to what you actually got.

Everything lands on /data

Cases, meshes, time directories and logs are written where you mounted them, and stay after the stop.

The image

Pulled once,then it stays

OpenFOAM arrives as one image. This is what comes down the first time, and what the disk should have free for it.

892Mamd64compressed, the way the registry counts it
50GOn diskunpacked, with room to work beside it
What it asks for

What it wants,and what it needs

The definition asks for 4 cores and 32 GB. The image comes up on less than that, and a start given --fit trims the ask to whatever the machine actually has.

4 cores · 32 GBAsks forwhat the definition writes down
2 cores · 16 GBRuns onthe least the image comes up on
Not neededGPUit works on the cores alone
The ask is not the floorThe definition writes down what suits the work. The image itself starts on less, which is what the second figure is.
--fit caps it to the hostA start given --fit trims each step to what the machine actually has, for that start alone. The definition is never rewritten.

Machines that fit it

OpenFOAM asks for 4 cores and 32 GB. Cheapest first.

E2 Highmem-4
$0.226/ hour4 cores · 32 GBStart this machine
R6i XLarge
$0.315/ hour4 cores · 32 GBStart this machine
E4s v5
$0.315/ hour4 cores · 32 GBStart this machine
Run OpenFOAM on your own machinePick a machine that meets it, and it opens about a minute after you ask.