Development - enGits/engrid GitHub Wiki
This is related to the issue #18, 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
- OpenFOAM 1.5, 1.6 and 1.7:
- 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 to 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)