Development

From enGrid Wiki

Jump to: navigation, search

Upgrading compatibility for OpenFOAM 1.7 and above

This is related to the bug #19, so when this is solved, report it there.


Problems found so far, before any code modification:

  • decomposePar didn't work with OpenFOAM 1.7.x.


Things that need to be changed and/or added:

  • metis is no longer valid on OpenFOAM 2.0 and above. And scotch is the preferred method since OpenFOAM 1.7.
    This affects the file/function openfoamtools.cpp/OpenFOAMTools::writeMpiParameters()
    The change here should be either one of the following solutions:
    • Automatically switch from metis to scotch, depending on the OpenFOAM version. <- preferred, since it doesn't require additional GUI work.
    • Allow the user to pick the method, as well as the others that exist.
  • The OpenFOAM binary folder structure has gradually changed between versions. This means that the paths can't be fully hard-coded. Modifying this should be similarly to how this is made for metis/scotch.
    The structures are:
    • OpenFOAM 1.5, 1.6 and 1.7:
      • applications/bin/architecture/
      • lib/architecture/
    • OpenFOAM 2.0, 2.1 and above:
      • platforms/architecture/bin
      • platforms/architecture/lib
  • The 5 line comment headers that have the OpenFOAM banner can be modified to have a custom enGrid banner, so it's also easier for the user and us as well.
    This affects 2 files and several functions:
    • openfoamtools.cpp/OpenFOAMTools::writeMpiParameters()
    • openfoamtools.cpp/OpenFOAMTools::runImportFluentCase()
    • openfoamcase.cpp/OpenFOAMcase::rewriteBoundaryFaces() - in two places.
    • In the folder libengrid/resources/solvers, there are several files that could have the header modified as well. These can be version-less, since we can trace back the version from the mesh files.
  • In the controlDict template files:
    • the writeCompression should have a drop down option for compressed or uncompressed.
    • the purgeWrite entry should also be pick-able in value, since allows to reduce the space occupied in the disk.
  • In the folder libengrid/resources/solvers, one needs to add compatibility for the following OpenFOAM versions:
    • 1.7.x
    • 2.0.x - mostly stuff related to fvSchemes.
    • 2.1.x - very similar o 2.0.x.
    • Note: 1.7.0, 1.7.1, 2.0.0, 2.0.1 and 2.1.0 are going to be disregarded for now, otherwise the complexity of testing all of these versions can become cumbersome.
  • Need to document this particular detail: for running/stopping the solvers remotely or with local multicore, one needs to use ssh keys, otherwise things will not work as intended.
    • On Windows, either ssh must be ready to be used as well, or another method needs to be used...
    • Stopping the solver before it's complete seems to use ssh as well. This won't work well on Windows...
  • Need to document how to create the solver template files, since these are quite handy indeed!
    • A reference file is already available for quite sometime: libengrid/resources/solvers/example.template
    • The files libengrid/resources/solvers/solvers.* don't seem to be automatically generated... (not sure how they are created and/or used - Wyldckat)
Personal tools