Programming Training

The programming training is aimed towards the more experienced users of OpenFOAM, who start to use the library for their own customizations and would like to get kick-started. With our extensive experience in programming C++ and OpenFOAM, we give in-depth insights in how the development process should look like and how various data structures of the OpenFOAM library can be used for specific purposes. The covered topics will be based on the interests of the participants.


  • C++ for OpenFOAM
    • Object oriented programming
      • Classes, data members and member functions.
      • Scope access (public, private, protected) and const specifiers.
      • Inheritance: public, private, protected.
      • Dynamic polymorphism (virtual functions).
      • Smart pointers.
    • Object oriented design patterns used in OpenFOAM
      • Recognizing OOD design patterns in the source code with hands-on examples.
    • Effective programming in OpenFOAM
      • Introduction to the git version control system.
      • Debugging OpenFOAM.
      • Preparing the programming project:
        • for version control,
        • for automatic configuration.
      • How to program new libraries in OpenFOAM.
  • Code smells : how to program clean code.
  • Programming new OpenFOAM elements
    • Programming a solver from scratch
      • Solver source code structure : dealing with boilerplate code.
      • Hacking the wmake build system.
      • Modifying the momentum equation.
      • Adding new transport equations.
      • Dimension checking in OpenFOAM.
      • Dictionary operations: dimensioned constants.
    • Programming a new pre/post processing application
      • Solving a transport equation for post-processing.
      • Using explicit discrete differential field operators.
      • Programming a sampling application using the sample library.
    • Programming new boundary conditions.
    • Programming a new function object in OpenFOAM.
      • Using the codedFunctionObject.
      • Programming a function object from scratch.
    • Programming a new fvOption
      • Constraining solver equations.
      • Implementing a new fvOption.


  • The price is 1200 Euro per participant, excluding 19% VAT.
  • The total length of the course is 2 days.
  • Topics of special interest to the participants are discussed at the end of the second day.
  • Please bring your own laptop with a working OpenFOAM installation.
  • We have prepared a persistent live USB disk with all the necessary programs.
  • Printed material is provided in English.
  • Lunch, coffee and cookies are included.
  • We recommend to book early, beause we limit the number of participants.


  • Book two courses in one week and get 20% discount.[1]
  • We offer a group discount for more attendees from one institution, contact us.[1]
  • Primer readers get a special offer: 150€ training voucher.[2]
    • Readers can use their book order number to activate the voucher in the training registration form.

[1] The group discount and the discount of 20% cannot be combined.[2] The voucher can be combined with the other discounts. It is only valid once and not refundable.

contact us