Your ABC in fluid dynamics

Course offering, 21-22 November 2019

Registration deadline: 20 October 2019

OpenSource CFD for industry

– high-level development of OpenFOAM(R) applications

The use of OpenSource CFD in industry and academia has been growing rapidly the last decade. Many industries use it as a complement to the proprietary CFD tools, in order to reduce license costs and facilitate the usage of large computational resources. Some industries, and academia, use it because it facilitates the development of new functionalities throughout the entire code, without the limitation of specific modifications through user-defined functions. However, OpenSource CFD tools generally require more knowledge by the user than the proprietary alternatives. This is not necessarily a drawback, since although the proprietary alternatives are easier to use, the user should still have the same knowledge of the underlying methods in order to set up the simulations correctly and to assess the quality of the results.


The course teaches high-level development of OpenFOAM applications (solvers and utilities), using existing libraries. It covers the directory and code organization of the original code, as well as some naming conventions that help you understand the code organization. It suggests way of working safely and efficiently with your own developments, including an in-depth understanding of compilation procedures and linking. The building-blocks of CFD solvers are discussed and simple solvers are implemented from scratch, or starting from existing ones. Basic C++ programming is introduced, and its relation to OpenFOAM is highlighted. Solvers are examined (such as the PISO algorithm in icoFoam), using the new C++ knowledge, as well as using Doxygen.

After the course, the participant should be able to:

  • Browse through the OpenFOAM installation in several ways (terminal, graphical, Doxygen)
  • Understand the organization of directories in OpenFOAM
  • Understand the difference between applications and libraries, and their relation to programming
  • Understand the compilation process in OpenFOAM, and how it is related to the environment
  • Set up and use the user directory in an organized (OpenFOAM) way
  • Copy, rename and compile applications (and libraries), as a user
  • Understand how paths and linking are used in OpenFOAM
  • Understand the very basic parts of a C++/OpenFOAM code, and how classes are used in the top-level code
  • Understand the wmake compilation procedure for applications, and how it is related to g++ and make
  • Understand the building-blocks of OpenFOAM CFD solvers
  • Read and figure out how OpenFOAM applications work
  • Find implementation examples in the source code
  • Understand the PISO algorithm in OpenFOAM
  • Implement OpenFOAM applications from scratch, or modify existing applications (combine features)
  • Use Doxygen to figure out how OpenFOAM applications work
  • Use Doxygen to figure out how objects of a particular class can be used
  • Continue learning using the installed code

Registration and fee

Register by sending a mail to The registration fee is SEK10200(+VAT, if applicable), which includes course material as well as lunches and coffee. Supply full invoice details with the registration (name, title, company, address, country, phone, e-mail, VAT number for EU/EFTA, organisationsnummer for swedish participants). Deadline for registration is one month before the start of each course (see top of page). Cancellation can not be made after the deadline for registration, but the registration can be transferred to someone else.

There is a minimum (6) and maximum (16) number of participants. The course will be cancelled if the minimum number of participants is not reached at the registration deadline. A confirmation that the course will take place (or not) will be communicated four weeks before the start of the course, so do not make any reservations that can’t be cancelled before that confirmation. You will be notified immediately if the course is full.

If you gather a group of at least 6 participants the course may possibly be given at other times. Then it will be given as last time it was “officially” given, using the same material and software versions as at that time. We could as well discuss trainings on-site. Send an e-mail to if you are interested.

Prerequisites and preparations

  • Fluid Dynamics and CFD: You have some knowledge in Fluid Dynamics and CFD.
  • Linux: You have some Linux command-line knowledge. Preparatory material will be handed out before the start of the course.
  • OpenFOAM and Paraview: You know how to use OpenFOAM, and to find hints on usage in $FOAM_TUTORIALS. You know how to run the basic OpenFOAM tutorials, how the cases are organized, how to pre and post-process using OpenFOAM utilities, and how to make graphical representations of the results with Paraview/paraFoam. Preparatory material will be handed out before the start of the course.
  • Programming: You have a basic knowledge in programming, but not necessarily in C++ and object orientation.
  • Software: You should have Linux and OpenFOAM (with its third-party packages, such as Paraview) installed on your own laptop before the course, and bring the laptop for the course. There are no computers supplied. You will be provided with installation instructions before the start of the course. The installation can be done under e.g. VirtualBox (or Hyper-V), so that you don’t have to change your current operating system. Since you work on your own laptop you will be able to work directly in your own environment, and to continue learning after the end of the course.

Schedule and Contents

The course is arranged at Teknikparkens konferenscenter

  • Day1, 09:15-17:00:
    10:30-10:45: Coffee
    12:00-13:00: Lunch
    14:30-14:45: Coffee
  • Day 2, 08:00-15:00:
    10:00-10:15: Coffee
    11:30-12:30: Lunch
    14:00-14:15: Coffee


    • Source code and binary file directory organization, browsing, name conventions, and compilation of installation
    • User directory organization, and compilation as a user
    • High-level programming from scratch in OpenFOAM
    • The PISO algorithm in icoFoam
    • Components of icoFoam (using Doxygen)

Individual hands-on work with step-by-step instructions:

    • Implement electromagnetic solver
    • Implement passive scalar transport solver
    • Implement solid particles in VOF solver

Optional extended tasks without step-by-step instructions:

    • Copy and compile reactingMultiphaseEulerFoam
    • Use pisoFoam to include turbulence modeling in icoFoam
    • Implement a simplistic convection/diffusion solver

If the hands-on work/extended tasks are not finished during the scheduled time, they can be finished with distant supervision within a month after the course.


The course is given by Prof. Håkan Nilsson.  Read about me under About.


Accommodation is not included.

For those of you travelling to the course, here are some suggested hotels:

1.Normal standard:

City Hotel

Hotel Royal

Hotel Vasa AB

Hotel Flora AB

2. High standard:

Quality Hotel Panorama

Hotel Opalen

Hotell Liseberg Heden

Hotel Novotel

Grand Hotel Opera AB

Hotel Riverton AB

3. Very high standard:

Hotel Avalon

Elite Plaza Hotel

4. Cheap alternatives:

SGS Veckobostäder

Youth Hostel Stigbergsliden

Hotel Nice B&B

5. Other:

Info from go:teborg&company

More hotels

Stay tuned!

You may at any time opt out of that list.
You can also join the LinkedIn group 'OFGBG', but it has shown that it is not sure that you will get all information unless you are also in the mail list.


OPENFOAM®  is a registered trade mark of OpenCFD Limited, the producer of the OpenFOAM software. This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM®  and OpenCFD®  trade marks


October 13, 2019

The course content was updated.


© Copyright. All Rights Reserved.