OpenFOAM for Windows 10

The packaged distributions of OpenFOAM for Ubuntu 14.04LTS can now be installed directly on Microsoft Windows 10 using Bash on Ubuntu on Windows. Bash on Ubuntu on Windows provides a full compatibility layer for running Linux applications on Windows through the Windows Subsystem for Linux (WSL), which performs real-time translation of Linux system calls into Windows OS system calls.  The system can support graphical Linux applications, such as the version of ParaView that includes the OpenFOAM reader module, with additional X server software (see below).  Running OpenFOAM applications in parallel using WSL is reported to work effectively.

Install Windows 10 Anniversary Update

The user first needs to install the Windows 10 Anniversary Update in a 64-bit Windows 10 OS in order to access the WSL.

  • Open the Settings application and select Updates & SecurityWindows Update.
  • In Windows Update, click Check for Updates.
  • The Anniversary Update appears as Feature update to Windows 10, version 1607.  Click Update and the software will download and install.
  • For full instructions, see How to Get the Windows 10 Anniversary Update.

Activate Windows Subsystem for Linux

The user then needs to to activate the WSL.

  • Open the Settings application and select Updates & Security → For Developers.
  • In For Developers, click Developer Mode (below right).
  • Open the Control Panel and select Programs → Turn Windows Features On or Off
  • Enable the Windows Subsystem for Linux (Beta) option from the list and click OK (below left).
  • You will be prompted to reboot your computer. Click Restart Now and wait for the the computer to reboot.


Run Bash on Ubuntu on Windows

After the computer restarts, the user can launch Bash.

  • Click the Start button, type bash, and press Enter.
  • The first time bash.exe is run, the user must accept the terms of service to install Bash on Ubuntu on Windows.
  • When prompted, create a user account and password for use in the Bash environment.

Installing OpenFOAM

The packaged distributions of OpenFOAM on Ubuntu Linux can now be installed from within the Bash environment.  We recommend users install the Ubuntu pack of OpenFOAM v5.0 or the current development version (or both).

  • Installing OpenFOAM 5.0
    sudo add-apt-repository
    sudo sh -c "wget -O - | apt-key add -"
    sudo apt-get update
    sudo apt-get install openfoam5
  • Installing OpenFOAM-dev
    sudo add-apt-repository " dev"
    sudo sh -c "wget -O - | apt-key add -"
    sudo apt-get update
    sudo apt-get install openfoam-dev

User Configuration

In order to use the installed OpenFOAM package, the user needs to set their environment for OpenFOAM as follows.

  1. One Time Only: At the bottom of the user’s .bashrc file, source the bashrc file in the OpenFOAM installation which contains the environment settings.  For openfoam5, the following command avoids the need to open an editor (for OpenFOAM-dev, replace openfoam5 with openfoam-dev):
    echo "source /opt/openfoam5/etc/bashrc" >> .bashrc
  2. One Time Only: register the change to the .bashrc file by typing at the terminal prompt (note the dots):
    source $HOME/.bashrc
  3. Test that the simpleFoam application, from the OpenFOAM package, is working by typing
    simpleFoam -help
  4. A “Usage” message should appear. Your installation and user configuration is complete.

If more than one OpenFOAM package is installed, e.g. both openfoam5 and openfoam-dev, the user’s .bashrc file should contain only the source... command for the version they currently wish to use.

Enabling Graphical Applications

To run graphical Linux applications, such as ParaView or the gedit editor, requires the installation of X server software.  The most popular X server software for Windows is Xming, which can be installed as follows:

  • Download the Xming installer.
  • Run the Xming installer using the default settings.
  • Launch Xming and it runs in the background, visible in the system tray, waiting for a graphical Linux application to be launched.

When a bash shell is opened, the DISPLAY environment variable needs to point to the X server that is running.  To make this addition permanent, set the DISPLAY in the user’s .bashrc file and source it again, i.e. execute one time only:

echo "export DISPLAY=:0" >> .bashrc
source $HOME/.bashrc

With graphics enabled, users may wish to install other useful supporting graphical applications for OpenFOAM, such as the gedit file editor, the GnuPlot graph drawing package, and mplayer video player (and mencoder encoder) software, e.g.

sudo apt-get install gedit gedit-plugins
sudo apt-get install gnuplot gnuplot-x11 gnuplot-doc libgd-tools
sudo apt-get install mplayer mencoder

Next Steps

See OpenFOAM 5.0 on Ubuntu: Getting Started.  If the user has enabled graphical applications, they can open the gedit editor in the background (&) with

gedit &

Otherwise without graphical support, 3 popular editors which can work through a terminal are:

  • nano: the easiest of the 3 editors for the purpose, see nano basics guide;
  • emacs: powerful editor that uses a more complex set of key commands, emacs basics;
  • vim: another editor with arguably a less familiar set of key commands, see vim quick guide.

It is worth knowing the command to exit the editor you use in case a problem arises:

  • nano exits with C-x (C=Control key)
  • emacs exits with C-x C-c (preceded by C-g, if needed)
  • vim exits with ESC :q!

Thanks to Dongyue Li (from the Contributors to OpenFOAM) for testing and reporting his experience with OpenFOAM using Bash on Ubuntu on Windows 10.