Skip to content
Snippets Groups Projects
  1. Nov 04, 2021
    • Mark OLESEN's avatar
      BUG: foamPackRelease detects wrong build information · 742a2c8a
      Mark OLESEN authored
      - was taking from the current head instead from specified commit-ish
      
      ENH: add -debian=NUM convenience option to foamPackRelease
      
      STYLE: relocate compile begin/end messages
      
      COMP: suppress more clang warnings (needed for boost)
      742a2c8a
  2. Nov 02, 2021
  3. Oct 29, 2021
    • Mark OLESEN's avatar
      CONFIG: improve flexibility of MPI specification · 435be2e5
      Mark OLESEN authored
      - it is now possible to include the selected mpi version in the
        top-level bashrc or prefs.sh file. For example,
      
            WM_MPLIB=OPENMPI-4.1.1  or  WM_MPLIB=openmpi-4.1.1
      
        after evaluation of the config.sh/mpi, this will define
      
            WM_MPLIB=OPENMPI-4.1.1  and  FOAM_MPI=openmpi-4.1.1
      
        During the wmake, the mpi-rules will first load the MPI 'family'
        rules (OPENMPI in this example) before trying to load
        version-specific rules if they exist.
      
        NOTE: the regular user-defined prefs system is unaffected by this
        change. This means it is still possible to use a file such as
        'prefs.openmpi' to define the preferred version instead or as well.
        However, it does mean inconsistent naming can be specified.
        For example, specify WM_MPLIB=OPENMPI-4.1.1 at the top-level but
        actually have FOAM_MPI=openmpi-4.0.6 in the prefs.openmpi file.
        This will make the value of WM_MPLIB misleading.
      
      CONFIG: foamConfigurePaths support for sys-openmpi major version
      
      C...
      435be2e5
  4. Oct 21, 2021
    • Mark OLESEN's avatar
      CONFIG: update c++ standard, some compiler rules (partially addresses #2209) · c2697f46
      Mark OLESEN authored
      - migrate to c++14 for most compilers *except* gcc.
        There are still many systems in use with gcc-4.8.5, which does not
        support c++14.
      
      - initial rules for nvidia compilers (pgi is will soon be defunct).
        Not fully tested...
      
      CONFIG: provide fallback value for the user directory name
      
      - in containers may have an unset USER env variable.
        Default to 'user' to prevent ugly looking directory names.
      c2697f46
  5. Oct 18, 2021
  6. Oct 07, 2021
  7. Oct 04, 2021
  8. Sep 22, 2021
  9. Jul 28, 2021
  10. Jun 18, 2021
    • Mark OLESEN's avatar
      CONFIG: inline _foamEval within <etc/config.sh/setup> · e2148b58
      Mark OLESEN authored
      - previously a function (unlike the csh version) but since bashrc and
        setup have been split -> replace with inline definition
      
      STYLE: formatting/wording for openfoam starters
      
      TUT: simplify controlDict modification, add default substitution
      
      ENH: accept '/' for end-of-options terminator (etc/openfoam)
      
      - makes the application or service more apparent.
        * eg.  /usr/bin/openfoam / blockMesh
        * vs.  /usr/bin/openfoam -- blockMesh
      
        Accept lone '-' as the end-of-options terminator, as per bash
      
      - Adjust handling of openfoam '-c' option to flag that a command-string
        will appear, but continue with option parsing.
        Consistent with bash definition.
      e2148b58
    • Mark OLESEN's avatar
      ENH: add auto-detect 0/ to foamCleanTutorials · 7d2a9fad
      Mark OLESEN authored
      - in the 'auto' mode (now the default), it will use cleanCase and also
        remove the 0/ directory if a 0.orig/ directory also exists.
      
        This corresponds to a frequent idiom and can be used quite safely
        for most cases.
      
      ENH: add -serial / -parallel preference for foamRunTutorials
      7d2a9fad
  11. Jun 10, 2021
    • Mark OLESEN's avatar
      ENH: replace tutorials/AutoTest with bin/foamTestTutorial · 85301030
      Mark OLESEN authored
      - additional -serial/-parallel option:
        prefer Allrun-serial or Allrun-parallel if available
      
      - optional -output=DIR to preserve output
      
      ENH: report missing tutorials/ directory in RunFunctions
      85301030
    • Mark OLESEN's avatar
      ENH: robustness, consistency for wmake -show-api, -version · c7bde70e
      Mark OLESEN authored
      - add to wmakeFunctions to ensure it works even without 'make' being
        installed. Exit immediately after -show-api for consistency with
        -version.
      
      foamEtcFile:
        - drop warnings for some old (pre-v1812) defunct options
          and simply flag as unknown options.
        - handle -version, --version as equivalent to -show-api
      c7bde70e
  12. May 27, 2021
  13. May 06, 2021
  14. Feb 16, 2021
  15. Feb 15, 2021
  16. Feb 10, 2021
  17. Jan 26, 2021
  18. Nov 26, 2020
    • Mark OLESEN's avatar
      ENH: add hook for bear frontend to create json output (#1936) · a50047bb
      Mark OLESEN authored
      Example usage,
      
         wmake -with-bear src/OpenFOAM
         src/Allwmake -with-bear -s -j
      
      - bin/tools/vscode-settings
      
        Emit some json content suitable for setting up Visual Studio Code
        for use with OpenFOAM.
      
        For example,
            bin/tools/vscode-settings > .vscode/settings.json
      
      Ideas from Volker Weissman
      a50047bb
  19. Nov 25, 2020
    • Mark OLESEN's avatar
      ENH: installation helpers · 9fe09ad2
      Mark OLESEN authored
      ----
      install-dirs: a general directory installer
      
        Copy installs non-binary (platform) directories.
        Eg,
      
            install-dirs -prefix=... -devel
            install-dirs -prefix=... -default -no-app
      
      ----
      install-platform: a platform (binary) installer
      
        This is primarily driven by the need to install into system mpi
        directories. The problem noted in issue #1893 is caused by the
        rpm-mpi-hooks (fedora and redhat-8).
      
        For the additional mpi library qualifier (openmpi-x86_64) to be
        added to the requirements, the mpi-specific libraries (eg,
        libPstream.so) need to be installed in the mpi system directory
        (eg, /usr/lib64/openmpi).
      
        However, then need symlinks from the system locations back to our
        local directories to ensure that the libraries are correctly found
        via our LD_LIBRARY_PATH and we don't get dummy libraries.
      
      ----
      update-mpi-links: a post-install update hook
      
        Expected paths are registered as persistent information into the
        hook during packaging. Triggering the hook after installation
        completes the creation of the symlinks.
      
      Normal usage,
      ```
      prefix="/tmp/local-install/openfoam"
      
      bin/tools/install-dirs -prefix="$prefix" -common
      bin/tools/install-platform -prefix="$prefix"
      ```
      Installs
       - /tmp/local-install/openfoam/META-INFO
       - /tmp/local-install/openfoam/bin
       - /tmp/local-install/openfoam/etc
       - /tmp/local-install/openfoam/platforms/linux64GccDPInt32Opt/bin
       - /tmp/local-install/openfoam/platforms/linux64GccDPInt32Opt/lib
      
      Can also place architecture-dependent bits elsewhere,
      ```
      prefix="/tmp/local-install/openfoam"
      multi_arch="$(dpkg-architecture -qDEB_TARGET_MULTIARCH)"
      
      bin/tools/install-dirs -prefix="$prefix" -common
      bin/tools/install-platform -exec-prefix="$prefix/$multi_arch"
      ```
      Installs
       - /tmp/local-install/openfoam/META-INFO
       - /tmp/local-install/openfoam/bin
       - /tmp/local-install/openfoam/etc
       - /tmp/local-install/openfoam/x86_64-linux-gnu/bin
       - /tmp/local-install/openfoam/x86_64-linux-gnu/lib
      
      Can use it to flatten out platforms entirely,
      ```
      prefix="/tmp/local-install/openfoam"
      bin/tools/install-dirs -prefix="$prefix" -common
      bin/tools/install-platform -exec-prefix="$prefix"
      ```
      Installs
       - /tmp/local-install/openfoam/META-INFO
       - /tmp/local-install/openfoam/bin
       - /tmp/local-install/openfoam/etc
       - /tmp/local-install/openfoam/lib
      9fe09ad2
  20. Nov 11, 2020
    • Mark OLESEN's avatar
      CONFIG: rationalize mpi config tuning (#1910) · c91fc6f4
      Mark OLESEN authored
      - prefix FOAM_MPI and library directories with 'sys-' for system
        versions for uniform identication.
      
        WM_MPLIB      | libdir (FOAM_MPI)  | old naming |
        SYSTEMMPI     | sys-mpi            | mpi        |
        SYSTEMOPENMPI | sys-openmpi        | openmpi-system |
      
      - prefix preferences with 'prefs.' to make them more easily
        identifiable, and update bin/tools/create-mpi-config accordingly
      
            Old name: config.{csh,sh}/openmpi
            New name: config.{csh,sh}/prefs.openmpi
      
      - additional mpi preferences now available:
          * prefs.intelmpi
          * prefs.mpich
          ...
      
      CONFIG: added hook for EASYBUILDMPI (eb-mpi), somewhat like USERMPI
      
      - EasyBuild uses mpicc when compiling, so no explicit wmake rules are
        used
      
      ENH: support different major versions for system openmpi
      
      - for example, with
      
           WM_MPLIB=SYSTEMOPENMPI2
      
        defines FOAM_MPI=sys-openmpi2 and thus creates lib/sys-openmpi2
      
      ENH: centralize handling of mpi as 'mpi-rules'
      
          Before:
              sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
              sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)
      
              ifeq (,$(FOAM_MPI_LIBBIN))
                  FOAM_MPI_LIBBIN := $(FOAM_LIBBIN)/$(FOAM_MPI)
              endif
      
          After:
              include $(GENERAL_RULES)/mpi-rules
      
      - also allows variants such as SYSTEMOPENMPI2 to be handled separately
      c91fc6f4
  21. Nov 04, 2020
    • Mark OLESEN's avatar
      ENH: handle wmake -debug option via FOAM_EXTRA_CXX_FLAGS · 1d544540
      Mark OLESEN authored
      - ensures that subsequent Allwmake scripts know about it.
      
      ENH: add bin/tools/query-detect wrapper for wmake have_* scripts
      
      CONFIG: use project/ThirdParty without additional sanity checks
      
      - no need to test for Allwmake or platforms/ if ThirdParty is located
        within the project directory itself.
      
      COMP: add simple mpi test to 00-dummy
      
      - for testing library linkage, etc.
      1d544540
  22. Oct 28, 2020
    • Mark OLESEN's avatar
      ENH: generate local orientation vectors for blockMesh VTK output (#1903) · f959c8eb
      Mark OLESEN authored
      - can help when designing/debugging blockMesh layouts
      
      - propagate low-level cellModel methods face() and edge() to cellShape
      
      STYLE: relocate blockMesh OBJ output to application only
      
      - remove blockTopology files in cleanCase function
      
      - improve code consistency in top-level blockMesh, PDRblockMesh
        generation.
      f959c8eb
  23. Oct 20, 2020
  24. Oct 07, 2020
  25. Sep 09, 2020
  26. Sep 03, 2020
  27. Aug 11, 2020
    • Mark OLESEN's avatar
      ENH: add bin/tools/createMingwRuntime helper · 18c68e6b
      Mark OLESEN authored
        Script to copy/create mingw run-time installation from the Linux
        cross-compilation. Packs everything into a tar or a zip file.
      
        To accommodate Windows, all .dll files are also placed in the
        platforms bin/ directory where they are easily found via the PATH.
      
        Futhermore, ThirdParty dll files (including those from mingw itself)
        are also placed in the same directory.
      
      ---
      Steps
        - bundles common files and directories (bin, etc, META-INFO, ...)
      
        - copies .exe files from FOAM_APPBIN and .dll files from FOAM_LIBBIN
          to the new target platforms/win64MingwDPInt32Opt/bin.
      
        - copies mingw sys-root .dll files to the new target
          platforms/win64MingwDPInt32Opt/bin
      
        - copies other ThirdParty dll files (scotch, fftw, etc) to
          platforms/win64MingwDPInt32Opt/bin
      
        - copies tutorials (can be deactivated)
      
      ---
      Note
          Can only be called when the linux64Mingw environment is active.
      18c68e6b
    • Mark OLESEN's avatar
      ENH: improvements for FOAM_CONFIG_ETC · a6e86caa
      Mark OLESEN authored
      - handle relative directory names for FOAM_CONFIG_ETC
      a6e86caa
  28. Jun 23, 2020
    • Mark OLESEN's avatar
      CONFIG: support openfoam -init=FILE · cbcc8754
      Mark OLESEN authored
      - useful for supporting a variety of different predefined
        configuration files. Bypasses the regular etc/bashrc entirely.
      
      - minor refactoring in foamCreateModuleInclude
      cbcc8754
  29. Jun 19, 2020
  30. Jun 08, 2020
  31. Jun 03, 2020
  32. May 29, 2020
  33. May 28, 2020
  34. May 12, 2020
    • Mark OLESEN's avatar
      ENH: add 'subcommand' handling to wmake (#1693) · 9e3d0685
      Mark OLESEN authored
      - initial split of wmake-related commands into "plumbing" and
        "porcelain" akin to how git handles things.
      
      - wmakeBuildInfo (very low-level), now relocated to the wmake/scripts
        and accessible for the user as "wmake -build-info".
      
        This satisfies a long-standing desire to access build information
        in a fashion similar to the api/patch information.
      
      CONFIG: avoid git information when building with a debian/ directory
      
      - when a 'debian/' directory exists, there is a high probability that
        the '.git/' directory is from debian and not from OpenFOAM (ie,
        useless here). This corresponds to an implicit '-no-git', which has
        no effect when building from pristine sources.
      
      ENH: wmakeCheckPwd becomes scripts/wmake-check-dir
      
      - accessible for the user as "wmake -check-dir" and with 1 or 2
        directory names. A wmakeCheckPwd symlink left for compatibility.
      9e3d0685
  35. May 11, 2020