Simplifying COOLFluiD
Proposals for simplifying the use/install of COOLFluiD.
Installing COOLFluiD
- The modules/testcases catalogs should be created by check-testcases.pl and not autogen.pl
- Keep the ability to use configure (and not only the autogen.pl script) in parallel to the autogen.pl script
- Making configure smarter, automatially detecting libraries and automatically disabling libraries that cannot be built (not needing to set for example SAMGLSS=off)
- Reducing the output of ./configure --help ; For example, instead of "./configure --disable-SAMGLSS --disable-CLapack --..." use "./configure --disable-modules=SAMGLSS:CLapack" This will reduce output in ./configure --help, and make using configure easier. (The new build system already handles this syntax)
- Allowing the use of Petsc-2.2.1 by detecting the version (similar to hdf5 fix). This implies migrating the interface from Petsc 2.1 to Petsc 2.2.
- In general, allowing dependencies to be of the version >= than and not = (unless really good reason)
- Fixing the capitalization of the module names at least in EXTERNAL (e.g. configure) uses (suggestion: make everything lowercase outside of C++)
- this is also "standard" for libraries (most often library names are all in lowercase)
- Optional use of Curl library. Is currently obligatory. Shoulb be simple.
- Modules should compile irrespectivelly of the path in which they are housed. Inclusion paths should NOT have Numerics/ or Physics/ but simply the name of the module dir, like "THOR2CFmesh/Converter.hh" and "Common/CFlog.hh", even when present in the same directory.
- Remove MPICXX from configure (not standard); Instead change the default compiler CXX/CC search list when MPI is enabled
Developing COOLFluiD
- figure out how to stop rewriting coolfluid_config.hh if nothing changed (otherwise it forces relinking of all applications and rebuild of module Common)
- Module dependencies!
- the low-level parallel support (PE, GlobalReduce, type registration, ...) must become independent and moved into its own library
- parallel high level code (FileMeshReaderModule, ...) moves into the directory together with the parallel model independent code (e.g. FileMeshReaderModuleMPI -> IOUtils/FileMeshReaderModule)
- Propose to remove all 3 level namespaces. Numerics and Physics should disappear, but not as directories.
- Go over the source and try to cleanup name confusion (e.g. module suffix or not? (FileMeshWriterModule) / capitalisation / ...)
- in headers for macros and global variables: (e.g. HAVE_MPI, restrict, ...) add CF_ prefix (avoid conflict with petsc/trilinos/...)
Using COOLFluiD
- Make (or link) all loadable modules from a "module" directory so we can avoid the coolfluid.pl wrappers and specify module-dir by hand (also makes parallel debug/working with external tools easier)
- Support simple (one-time assignable) variables in CFcase files
- better control over when to save and what to overwrite (function generating frame number depending on iteration number/real time/...)
- a few REALLY WELL over-documented CFcase files
