This workbench aims to help users set up and run CFD analyses within the FreeCAD modeller, and serves as a front-end (GUI) for the popular OpenFOAM® CFD toolkit (www.openfoam.org, www.openfoam.com). It guides the user in selecting the relevant physics, specifying the material properties, generating a mesh, assigning boundary conditions and choosing the solver settings before running the simulation. Best practices are specified to maximise the stability of the solvers.
Disclaimer: This offering is not approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com, and owner of the OPENFOAM® and OpenCFD® trade marks
Any system on which FreeCAD and the prerequisites listed below can be installed.
Windows 7-11; 64-bit version is required.
Not widely tested, but success has been reported. See the following forum post for instructions.
The CfdOF workbench depends on the following external software, some of which can be automatically installed (see below for instructions).
The latest release or development FreeCAD build can be obtained (64 bit version) and installed by respectively running the installer or extracting the .7z archive to a directory \<FreeCAD-directory>. In the latter case, FreeCAD can be run in place (\<FreeCAD-directory>\bin\FreeCAD.exe).
CfdOF itself is installed into FreeCAD using the Addon manager:
Note: The CfdOF workbench can be updated at any time through the Addon manager.
Dependencies can be checked and installed conveniently from the CfdOF Preferences panel in FreeCAD. In the FreeCAD window, select CfdOF | Open preferences. The dependencies can be installed as individual components or as part of a docker container (refer to the Docker container install section below).
The OpenFOAM installation is via the OpenCFD MinGW package, and the BlueCFD Core port of OpenFOAM is also supported.
OpenFOAM can be installed manually using the above links, or by clicking the relevant button in the Preferences panel described above. If you experience problems running OpenFOAM in CfdOF, please make sure you have a working installation by following instructions on the relevant websites.
To interface correctly with the OpenFOAM installation, CfdOF needs to be able to write to its install location. Some users experience problems using a location inside C:\Program Files due to restrictions imposed by Windows User Account Control. It is therefore suggested to install to an alternative location, preferably in your home directory.
If OpenFOAM is installed with administrator privileges using the above packages, then Microsoft MPI will also optionally be installed. If not, then it will be necessary to download and install it manually from here. MPI is needed in order to run in parallel.
Set the OpenFOAM install directory in the preferences panel to the install directory ending in the 'vXXXX' subfolder (where XXXX is the version number installed) for the MinGW package, or the BlueCFD install directory. It will be automatically detected in the default install locations.
Any version of ParaView can be installed, by following the above link or clicking the relevant button in the Preferences panel. Set the ParaView install path in the preferences panel to the 'paraview.exe' file in the 'bin' subfolder of the ParaView installation. Common defaults will be detected if it is left blank.
Likewise, cfMesh and HiSA can be installed from the Preferences panel. Do not close it until the 'Install completed' message is received. Note that the OpenFOAM installation must be in a writable location for cfMesh and HiSA to be installed successfully.
Choosing the "Check dependencies" option will verify that all prerequisites have been successfully installed.
AppImages of the latest release or development versions of FreeCAD can be downloaded and run directly without installation. Note that you will have to enable execution permission on the downloaded file to run it. Otherwise, FreeCAD can be built from the source code at https://github.com/FreeCAD/FreeCAD .
Note:
For the reasons above we recommend the AppImage as the most robust installation option on Linux.
CfdOF itself is installed into FreeCAD using the Addon manager:
Note: The CfdOF workbench can be updated at any time through the Addon manager.
Dependencies can be checked and some of them installed conveniently from the CFD Preferences panel in FreeCAD. In the FreeCAD window, select Edit | Preferences ... and choose "CfdOF".
The dependencies can be installed manually, or as part of a docker container (refer to Docker container install below). Manual installation may be undertaken for OpenFOAM (OpenCFD or Foundation versions), Paraview and Gmsh (optional) by using the links above or your distribution's package manager. Note, however, that the OpenFOAM packages bundled in some Linux distributions may be out of date or incomplete; for example, the standard Debian and Ubuntu packages do not include the build command 'wmake' and therefore cannot be used with the optional components 'HiSA' and 'cfMesh'. We therefore recommend installation of the packages supplied through the official websites above. Please make sure the install the 'development' package where available (usually named with the suffix '-devel' or '-dev') to be sure that the optional components 'HiSA' and 'cfMesh' can be compiled with 'wmake'.
Set the OpenFOAM install directory in the preferences panel - examples of typical install locations are /usr/lib/openfoam/openfoam2306, /opt/openfoam10 or /home/user/OpenFOAM/OpenFOAM-10.x (it will be automatically detected in common default install locations). Note that if you have loaded the desired OpenFOAM environment already before starting FreeCAD, the install directory should be left blank.
cfMesh and HiSA can be installed using the Preferences panel described above, and can be downloaded and built from their source code inside your OpenFOAM installation if you have not already done so yourself. Note that this is a lengthy process.
Choosing the "Check dependencies" option will verify that all prerequisites have been successfully installed.
Docker containers offer a convenient way of providing pre-compiled program packages for both windows and linux. macOS can also be supported but assistance may be required to get this to work. Please leave a message on the forum.
Podman is the preferred docker run-time for Windows as using the WSL fast file system integration appears to offer performance benefits. Docker Desktop may also be used.
podman machine stop podman-machine-default
podman machine rm podman-machine-default
cmd
(or terminal) window and issue the following commands:
podman machine init
podman machine start
Note, the set rootful command should not be used.wsl -d podman-machine-default
sudo usermod --add-subuids 10000-75535 $USER
sudo usermod --add-subgids 10000-75535 $USER
podman system migrate
mkdir -p /home/user/cfdof
This command makes a directory for WSL fast file system integration exit
exit
(A second time to return to the cmd prompt).\\wsl$\podman-machine-default\home\user\cfdof
Either docker or podman may be used on linux; however, podman is preferred.
sudo apt install docker.io
sudo usermod -aG docker $USER
sudo su $USER
can be used if Freecad is run from the current terminal window).sudo apt install -y podman crun
sudo usermod --add-subuids 10000-75535 $USER
sudo usermod --add-subgids 10000-75535 $USER
podman system migrate
sudo apt-get install paraview
on debian).At present there is no formal documentation for CfdOF apart from this README. However, demonstration cases are provided inside the 'Demos' folder of the CfdOF workbench directory. These aim to provide a basic overview of features and best practices. The examples are run by loading and executing the macro files ending in '.FCMacro' in the various sub-directories in the 'Demos' directory. Where there are several numbered files, these should be run in order and aim to demonstrate step-by-step how the case is set up.
Community assistance may be sought at the CfdOF dedicated FreeCAD forum, and a list of various third-party documentation is available in the following forum post.
Q: Do I have to create a watertight geometry?
A: This isn't necessary if using the cartesian mesh generators snappyHexMesh and cfMesh. You can make use of shells and compounds instead of creating solids, as long as the collection of shapes in the compound being meshed blocks off the volume desired. Gaps smaller than the mesh spacing are also allowed.
Please discuss issues on the CfdOF FreeCAD forum for community assistance. Bugs can be reported on the Github project site.
Please first read the guidelines for reporting bugs in order to provide sufficient information.
If you would like to get involved in the development of CfdOF, please refer to the Contribution guidelines and Roadmap.
This development was made possible through initial funding from Eskom Holdings SOC Ltd and the Council for Scientific and Industrial Research (South Africa).
CfdOF is dedicated to the memory of Michael Hindley. It is thanks to his irrepressible enthusiasm for FreeCAD and open source software that this workbench exists. Rest in peace.