Skip to content

Compilation and Installing

When I try to compile the examples of the OpenLB release, the C++ compiler generates pages of error messages. What’s wrong?

Your C++ compiler might not be fully compliant with the current ISO C++ standard, that is, it is probably too old. OpenLB makes use of advanced, template-based techniques, and some older compilers fail to interpret them properly. The oldest versions of compilers that were found to compile the OpenLB source code without problems are gcc 9.0/10.0/11.0, clang 13 and icc 19.0. If your compiler is older than that, we strongly encourage you to upgrade to a newer version. Consider this an important investment in the quality of your programming environment, given that an increasing number of software projects nowadays require the use of a standard-compliant compiler.

When I use OpenLB, my source code takes ages to get compiled. Why’s that?

The OpenLB code is fully generic. It is a header-only library. You can for example switch from a D3Q19 lattice to a D3Q27 one by changing a single word in your code. For this to be possible, the OpenLB library is template-based, and is completely recompiled every time you recompile your code. More details about this procedure can be found in the user guide.

How can I use OpenLB on my Windows 10 system?

A Tech Report explains how to run OpenLB using Windows 10 and Ubuntu bash olb-tr5.pdf Please, also check out the video uploaded by FetchCFD explaining how to install OpenLB on Windows 10 using Ubuntu Bash.