Skip to content
Snippets Groups Projects
  1. Jan 26, 2019
    • Mark OLESEN's avatar
      STYLE: centralize example dictionaries under etc/ (issue #1074) · 3b911600
      Mark OLESEN authored
      - as well as being more convenient to find, this is necessary when the
        OpenFOAM installation is without sources or tutorials
      3b911600
    • Mark OLESEN's avatar
      STYLE: reorganize some legacy and less frequently used components · b0fafd18
      Mark OLESEN authored
      - older emacs tools into legacy
      - old process tools
      
      * Less frequently used scripts into bin/tools/
      
        - findEmptyMake
        - foamAllHC
        - foamUpdateCaseFileHeader
      
      * Infrastructure file (only used by foamNewApp)
      
        - wmake/wmakeFilesAndOptions -> wmake/scripts/wmakeFilesAndOptions
      
      * Merge wmakeRoot convenience as 'wmake -pwd'
      * Remove obsolete wmakePrintBuild (superseded by wmakeBuildInfo)
      * Remove unused mergeHistory file
      b0fafd18
  2. Jan 25, 2019
    • Mark OLESEN's avatar
      CONFIG: combine wmake rules for KNL architecture as a compile option · ef6c2ef5
      Mark OLESEN authored
      - instead of
      
            WM_COMPILER=GccKNL WM_COMPILE_OPTION=Opt
      
            -> linux64GccKNLDPInt32Opt
      
        now specify
      
            WM_COMPILER=Gcc  WM_COMPILE_OPTION=OptKNL
      
            -> linux64GccDPInt32OptKNL
      
      This makes it easier (and more obvious) for adding different tweaks
      without needing to generate too many files.
      Eg,
      
          cd wmake/rules/linux64Gcc
      
          cp cOpt   cOptBdw
          cp c++Opt c++OptBdw
      
          edit these two files and then use WM_COMPILE_OPTION=OptBdw
      
      CONFIG: provide some default c/c++ flags in General compiler rules
      
      - can make is easier when deriving new compile options, and ensures
        that '-02' is enabled as an initial default.
      ef6c2ef5
  3. Jan 24, 2019
  4. Jan 23, 2019
    • Mark OLESEN's avatar
      DEFEATURE: remove wmakeScheduler (issue #1178) · 65e94fde
      Mark OLESEN authored
      - was for parallel compilation across multiple hosts, but less useful
        with modern CPUs with higher number of cores and/or hyperthreading.
      
        Fragile use and dependent on a 'lockfile' utility that is not often
        installed.
      65e94fde
  5. Jan 22, 2019
  6. Jan 17, 2019
  7. Jan 21, 2019
  8. Jan 18, 2019
  9. Jan 17, 2019
  10. Jan 10, 2019
    • Mark OLESEN's avatar
      ENH: make use of FOAM_API for environment as well (issue #1158) · 63d8e7e5
      Mark OLESEN authored
      - was WM_PROJECT_API in the environment and FOAM_API in dictionaries.
      
        Make these both consistently FOAM_API.
        This is a non-breaking change, since the value of WM_PROJECT_API
        (added in 1812) and/or FOAM_API is purely informative.
        For the current correct values, always use
      
          * foamEtcFile -show-api
          * wmakeBuildInfo -show-api
      63d8e7e5
    • Mark OLESEN's avatar
      ENH: make use of FOAM_API for environment as well (issue #1158) · bef508de
      Mark OLESEN authored
      - was WM_PROJECT_API in the environment and FOAM_API in dictionaries.
      
        Make these both consistently FOAM_API.
        This is a non-breaking change, since the value of WM_PROJECT_API
        (added in 1812) and/or FOAM_API is purely informative.
        For the current correct values, always use
      
          * foamEtcFile -show-api
          * wmakeBuildInfo -show-api
      bef508de
    • Mark OLESEN's avatar
      ENH: provide config setup for mesa with llvm (issue #1164) · bae92919
      Mark OLESEN authored
      - If using a non-clang compiler suite (gcc, intel, etc) the additional
        lbraries required for mesa with llvm pipelines may not be found.
      
        Provide a mesa_llvm configuration with in the 'vtk' config file.
        Can use the usual types of settings
      
           * mesa_llvm=llvm-4.0.1
           * mesa_llvm=none
           * mesa_llvm=system
      bae92919
    • Mark OLESEN's avatar
      ENH: provide config setup for mesa with llvm (issue #1164) · 7e3202f4
      Mark OLESEN authored
      - If using a non-clang compiler suite (gcc, intel, etc) the additional
        lbraries required for mesa with llvm pipelines may not be found.
      
        Provide a mesa_llvm configuration with in the 'vtk' config file.
        Can use the usual types of settings
      
           * mesa_llvm=llvm-4.0.1
           * mesa_llvm=none
           * mesa_llvm=system
      7e3202f4
  11. Jan 07, 2019
  12. Jan 06, 2019
  13. Jan 02, 2019
  14. Dec 21, 2018
  15. Dec 19, 2018
  16. Dec 17, 2018
  17. Dec 20, 2018
  18. Dec 13, 2018
    • Mark OLESEN's avatar
      ENH: consolidate handling of mandatory/optional command arguments · 5d9e278e
      Mark OLESEN authored
      - for some special cases we wish to mark command-line arguments as
        being optional, in order to do our own treatment. For example,
        when an arbitrary number of arguments should be allowed.
      
        Now tag this situation with argList::noMandatoryArgs().
        The argList::argsMandatory() query can then be used in any further
        logic, including the standard default argument checking.
      
      - with the new default check, can consolidate the special-purpose
      
            "setRootCaseNonMandatoryArgs.H"
      
        into the regular
      
            "setRootCase.H"
      
      - revert to a simple "setRootCase.H" and move all the listing related
        bits to a "setRootCaseLists.H" file. This leaves the information
        available for solvers, or whoever else wishes, without being
        introduced everywhere.
      
      - add include guards and scoping to the listing files and rename to
        something less generic.
      
           listOptions.H -> setRootCaseListOptions.H
           listOutput.H  -> setRootCaseListOutput.H
      5d9e278e
  19. Dec 12, 2018
    • Mark OLESEN's avatar
      ENH: adjust completion parser · a66e9c74
      Mark OLESEN authored
      - restrict to text between "^[Oo]ptions:" and "-help-full" to avoid
        potential issues when more text is introduced in the usage output.
      a66e9c74
  20. Dec 10, 2018
  21. Dec 08, 2018
  22. Dec 07, 2018
    • Andrew Heather's avatar
      ENH: Added new AMIWeights function object · a4dc9966
      Andrew Heather authored
      Reports the min|max|average AMI weights to text file and optionally
      writes VTK surfaces of the sum of the weights, and mask field for
      ACMI patches.
      
      Example usage:
      
          AMIWeights
          {
              type            AMIWeights;
              libs            ("libfieldFunctionObjects.so");
              writeControl    writeTime;
              writeFields     yes;
          }
      a4dc9966
  23. Dec 05, 2018
  24. Dec 03, 2018
    • Mark OLESEN's avatar
      CONFIG: adjustments to environment · b8c257d6
      Mark OLESEN authored
      - provide default WM_DIR if not already set, to improve robustness if a
        reduced environment is used
      
      - add etc/ to WM_PROJECT_SITE search. This makes the site directory
        structure consistent with the OpenFOAM structure.
        Eg,
      
            WM_PROJECT_SITE/etc/..
            WM_PROJECT_SITE/bin/..
            WM_PROJECT_SITE/platforms/..
      
      - Don't set/export WM_OSTYPE.  The default is POSIX and is properly
        defaulted throughout, including in CMakeLists-OpenFOAM.txt (also for
        Catalyst)
      b8c257d6
  25. Dec 02, 2018
    • Mark OLESEN's avatar
      ENH: update handling of versioning and make control (issue #1010) · 6c68c34e
      Mark OLESEN authored
      - Use the OPENFOAM define (eg, 1806, 1812), which normally corresponds
        to a major release, to define an API level. This remains consistent
        within a release cycle and means that it is possible to manage
        several sub-versions and continue to have a consistent lookup.
      
        The current API value is updated automatically during the build
        and cached as meta data for later use, even when the wmake/ directory
        is missing or OpenFOAM has not yet be initialized.
      
        The version information reported on program start or with -help
        usage adjusted to reflect this. The build tag from git now also
        carries the date as being more meaningful to trace than a hash
        value.
      
      - Update etc/bashrc and etc/cshrc to obtain the project directory
        directly instead of via its prefix directory. The value obtained
        corresponds to an absolute path, from which the prefix directory
        can be obtained.
      
        The combination of these changes removes the reliance on any
        particular directory naming convention.
        For example,
      
           With an 1812 version (API level):
      
           WM_PROJECT_VERSION=myVersion
      
           installed as /some/path/somewhere/openfoam-mySandbox
      
        This makes the -prefix, -foamInstall, -projectVersion, -version
        values of foamEtcFiles, and similar entries for foamConfigurePaths
        superfluous.
      
        WM_PROJECT_INST_DIR is no longer required or used
      
      ENH: improve handling and discovery of ThirdParty
      
      - improve the flexibility and reusability of ThirdParty packs to cover
        various standard use cases:
      
          1. Unpacking initial release tar files with two parallel directories
             - OpenFOAM-v1812/
             - ThirdParty-v1812/
      
          2. With an adjusted OpenFOAM directory name, for whatever reason
             - OpenFOAM-v1812-myCustom/
             - openfoam-1812-other-info/
      
          3. Operating with/without ThirdParty directory
      
        To handle these use cases, the following discovery is used.
      
        Note PROJECT = the OpenFOAM directory `$WM_PROJECT_DIR`
             PREFIX = the parent directory
             VERSION = `$WM_PROJECT_VERSION`
             API = `$WM_PROJECT_API`, as per `foamEtcFiles -show-api`
      
         0. PROJECT/ThirdParty
            - for single-directory installations
      
         1. PREFIX/ThirdParty-VERSION
            - this corresponds to the traditional approach
      
         2. PREFIX/ThirdParty-vAPI
            - allows for an updated value of VERSION (eg, v1812-myCustom)
              without requiring a renamed ThirdParty. The API value
              would still be '1812' and the original ThirdParty-v1812/
              would be found.
      
         3. PREFIX/ThirdParty-API
            - this is the same as the previous example, but using an unadorned
              API value. This also makes sense if the chosen version name also
              uses the unadorned API value in its naming
              (eg, 1812-patch190131, 1812.19W03)
      
         4. PREFIX/ThirdParty-common
            - permits maximum reuse for various versions, but only for
              experienced user who are aware of potential version
              incompatibilities
      
         Directory existence is checked as is the presence of an Allwmake file
         or a platforms/ directory. This reduces the potential of false positive
         matches and limits the selection to directories that are either
         with sources (has the Allwmake file), or pre-compiled binaries (has
         the platforms/ directory).
      
         If none of the explored directories are found to be suitable,
         it reverts to using a PROJECT/ThirdParty dummy location since
         this is within the project source tree and can be trusted to
         have no negative side-effects.
      
      ENH: add csh support to foamConfigurePaths
      
      - this removes the previously experienced inconsistence in config file
        contents.
      
      REMOVED: foamExec
      
      - was previously used when switching versions and before the
        bashrc/cshrc discovery logic was added. It is now obsolete.
      6c68c34e
  26. Nov 29, 2018