Release Notes for blueCFD-Core 2016-1

These release notes cover the changes made for the 2016-1 release, which covers:

Software provided with installers

Here is listed what software and respective versions are provided inside the binary installers, namely:

Cumulative changes and notes

The following list provides the changes cumulative with the already ones listed in previous release notes:

  1. Switched from using MSys to using MSys2, as the main command line interface.

  2. newWindow is new alias for starting a new window from within MSys2, nonetheless, we can also use the key combination Alt+F2.

  3. Had to create a new script wmake/scripts/makeReinterpretObjectPaths for translating path names for the mingw-w64 GCC compiler. Used in wmake/Makefile.

  4. Had to replace all entries of off_t with off64_t, due to a crazy bug in the compiler stack, where off_t is somehow defined as long int instead of long long.

  5. Introduced a new script wmake/scripts/makeObjectLongPath for translating the object file paths to the long form when needed. Used in the c++ rule files.

  6. For some Git clients, the following is needed

    • Example: git config --local core.longpaths true
  7. Due to how long the file paths are becoming in OpenFOAM’s source code, we need to use Windows’ subst command to define a drive letter where blueCFD-Core will operate from. This affects only certain operations (when building from source code), but installation can be made anywhere else.

  8. Certain solvers have a rather steep cyclic dependency loop, which we had to figure out a work-around for. This was first implemented in blueCFD-Core 2.3-1 for twoPhaseEulerFoam and multiphaseEulerFoam; now it has been extended to support the reactingEulerFoam solver stack as well.

  9. We no longer need to rename files that have “Patch” in their name. This was fixed in GCC+MinGW itself, as provided in MSys2, which embeds a default manifest: /mingw64/lib/gcc/x86_64-w64-mingw32/lib/default-manifest.o

  10. Various MPI toolboxes are supported in varying degrees:

    • Tested with the build scripts:
      • MS-MPI 2012 (without SP1)
      • MS-MPI 2012 R2
      • MS-MPI 7.1
    • Present in the build scripts, but untested:
      • MPICH2 1.4.1p1
      • Open-MPI 1.6.2
      • MS-MPI 2008 R2
    • Notes about MPI version compatibility:
      • When building for the first time on a clean system with MS-MPI 7.1, it has to be installed on the system, otherwise it will not run as intended. It can be uninstalled afterwards, if you need to develop for multiple MS-MPI versions.

      • From our experience, MS-MPI versions are usually not compatible with each other, e.g. it is not possible to use the build with MS-MPI 2012 on a machine that has MS-MPI 7.1 installed globally.

      • It is unknown if MPICH2 can run on a machine that has MS-MPI installed.

      • Open-MPI does not interfere with MS-MPI nor MPICH2.

      • MPICH2 and Open-MPI are no longer developed/supported by their respective developers to run on Windows.

      • Only tested with 64-bit builds.

  11. Metis 5.1.0 is supported and provided along with OpenFOAM 4.x in blueCFD-Core 2016-1, but it is not supported with OpenFOAM 3.0.x when blueCFD-Core 2016-1 was developed.

  12. The command line in MSys2 now shows the current version/fork of OpenFOAM that is being used on that terminal. The idea was based on the example given here.

  13. The Windows Command Line option has been removed (etc/BATCHRC.BAT was removed), at least for the time being. There has been no clear feedback on whether this is still needed or not. Nonetheless, we can bring it back if people give us feedback on this.

  14. A weird linking bug was worked-around to build surfaceAutoPatch. This hack will hopefully not be needed in future builds. The issue can apparently pop up when building any other executable as well and this bug fix does not seem to be applicable to those other occurrences.

  15. foamList will give several error messages, but do not mind it much, because it is due to duplicate entries that loading additional libraries will lead to. Example:

    Duplicate entry alphaContactAngle in runtime selection table fvPatchField
    We're sorry, but the application crashed and safe stack tracing isn't
    available in this current implementation of blueCFD-Core patches for OpenFOAM.
  16. Ongoing development to have a faster and length-controllable test loop, extending beyond what OpenFOAM currently provides.

    • Many or most of the changes done in the test loop, will be contributed to the OpenFOAM Foundation, once we have ensured things work as intended.
  17. Integrated stack tracing is still not-operational within the ports released with blueCFD-Core 2016-1. Nonetheless, we’re aiming to have it operational in the next release.