Skip to content
Snippets Groups Projects
  1. Dec 07, 2021
    • Mark OLESEN's avatar
      CONFIG: adjust paraview libs, intelmpi handling · b25e1486
      Mark OLESEN authored
      - fix overly aggressive match in the API value
      
      - allow `INTELMPI*` generic value, this can be used to specify something
        like INTELMPI_custom and populate the corresponding wmake rule
        manually
      
      STYLE: mention FOAM_BUILDROOT in wmake -help-full output
      
      STYLE: adjust openfoam shell session welcome information
      
      - adjust internal variable names to reduce collision potential
      
      - improve handling of openfoam -etc=...
      b25e1486
  2. Dec 03, 2021
    • Mark OLESEN's avatar
      ENH: add coded Function1 (#2282) · 9a512511
      Mark OLESEN authored
      - update coded templates with qualified names
      
      GIT: add in missing PatchFunction1 constant() method
      
      - was missed in a previous commit
      9a512511
    • Mark OLESEN's avatar
      LINT: script not marked as bash-specific · e6f4ae92
      Mark OLESEN authored
      CONFIG: cleanup additional build-related env variables
      e6f4ae92
    • Mark OLESEN's avatar
      ENH: add Function1 constant() member · f7c7fa94
      Mark OLESEN authored
      - marks if the value is considered to be independent of 'x'.
        Propagate into PatchFunction1 instead ad hoc checks there.
      
      - adjust method name in PatchFunction1 to 'whichDb()' to reflect
        final changes in Function1 method names.
      
      ENH: add a Function1 'none' placeholder function
      
      - This is principally useful for interfaces that expect a Function1
        but where it is not necessarily used by a particular submodel.
      
      TUT: update Function1 creation to use objectRegistry
      f7c7fa94
  3. Nov 26, 2021
  4. Nov 09, 2021
    • Mark OLESEN's avatar
      ENH: distinguish between compressible/incompressible coded source · fd82f3e4
      Mark OLESEN authored
      - previously had codeAddSup used for both incompressible and
        compressible source terms. However, it was not actually possible to
        use it for compressible sources since any references to the 'rho'
        parameter would cause a compilation error for the incompressible case.
      
        Added 'codeAddSupRho' to distinguish the compressible case.
        User must supply one or both of them on input.
      fd82f3e4
  5. Nov 02, 2021
  6. 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
      
      CONFIG: cleanup any shadow env variables
      435be2e5
  7. 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
  8. Oct 18, 2021
    • Mark OLESEN's avatar
      CONFIG: accept '-lib' for foamCleanPath · 4a064645
      Mark OLESEN authored
      - simplfies differences for OSX
      4a064645
    • Mark OLESEN's avatar
      CONFIG: improve robustness/flexibility for MPI config handling · 16d48ed0
      Mark OLESEN authored
      - use orte-info to determine prefix/libdir for openmpi.
        This removes a run-time dependency on mpicc, which is actually
        only needed for building with MPI (not running with MPI).
        The corresponding openmpi devel package (deb/rpm) will not
        necessarily be installed on a particular system.
      
      - retain mpicc logic if the new logic using orte-info does not
        deliver an answer. Final fallback to using 'orterun' to
        infer prefix/libdir.
      
      - Additional logic for intel and msmpi to make it easier to
        locate these vendor packages within ThirdParty
        (ie, under ThirdParty/opt/...)
      
      CONFIG: improve robustness
      
      - add check for absolute path when adding PATH/LD_LIBRARY_PATH etc.
      
      - prefix more variables with '_foam*' to prevent accidental overwrite
        of userspace shell variables when sourcing
      16d48ed0
  9. Sep 07, 2021
    • Mark OLESEN's avatar
      CONFIG: adjust ordering of library paths (#2200) · f89fb3e0
      Mark OLESEN authored
      - previously OpenFOAM library paths were set before adding in
        MPI-specific elements. However, this may mask some libraries.
      
        |  New library order  |  Old library order  |
        |---------------------|---------------------|
        |  user-lib (serial)  |  various 3rd-party  |
        |  site-lib (serial)  |  foam-lib (mpi)     |
        |  foam-lib (mpi)     |  ext-lib (mpi)      |
        |  foam-lib (serial)  |  system mpi-libs    |
        |  ext-lib  (mpi)     |  user-lib (serial)  |
        |  ext-lib  (serial)  |  site-lib (serial)  |
        |  various 3rd-party  |  foam-lib (serial)  |
        |  system mpi-libs    |  ext-lib (serial)   |
        |  dummy              |  dummy              |
      f89fb3e0
  10. Aug 02, 2021
  11. Jun 28, 2021
  12. 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
      TUT: add parallel version for various squareBend cases · 096b9dc5
      Mark OLESEN authored
      - adjust commented-out evaluation to avoid warnings.
      
        With code like this
        ```
        #if 0
        nxin    #eval{ round($nxin / 5) };
        #endif
        ```
      
        The handling of the "#if 0 / #endif" clause uses the plain ISstream
        parser to tokenize. This means that the "round(" is parsed as a word
        with a mismatched closing ')', whereas the "#eval" parser will slurp
        everything in until the closing brace and send it off as a string
        to the expression parser.
      096b9dc5
  13. Jun 16, 2021
    • Andrew Heather's avatar
      ENH: new multiFieldValue function object · ea12bfdb
      Andrew Heather authored and Mark OLESEN's avatar Mark OLESEN committed
          Computes a selected operation between multiple \c fieldValue function
          objects.
      
          The operation is applied to all results of each \c fieldValue object.
      
      Note
          Each object must generate the same number and type of results.
      
      Usage
          Minimal example by using \c system/controlDict.functions:
      
          multiFieldValue1
          {
              // Mandatory entries (unmodifiable)
              type            multiFieldValue;
              libs            (fieldFunctionObjects);
      
              // Mandatory entries (runtime modifiable)
              operation       subtract;
      
              // List of fieldValue function objects as dictionaries
              functions
              {
                  region1
                  {
                      ...
                  }
                  region2
                  {
                      ...
                  }
      
                  ...
      
                  regionN
                  {
                      ...
                  }
              }
      
              // Optional (inherited) entries
              ...
          }
      
          where the entries mean:
      
            Property     | Description                         | Type | Req'd | Dflt
            type         | Type name: multiFieldValue          | word |  yes  | -
            libs         | Library name: fieldFunctionObjects  | word |  yes  | -
            operation    | Operation type to apply to values   | word |  yes  | -
            functions    | List of fieldValue function objects | dict |  yes  | -
          \endtable
      
          Options for the \c operation entry:
      
             add           | add
             subtract      | subtract
             min           | minimum
             max           | maximum
             average       | average
      
      Deprecated fieldValueDelta
      
      - The fieldValueDelta function object was originally written to compute the
      difference between two fieldValue-type function objects. The multiFieldValue
      object name better describes its purpose whilst being able to operate on an
      arbitrary number of fieldValue-type objects.
      ea12bfdb
  14. Jun 14, 2021
  15. Jun 11, 2021
  16. Jun 10, 2021
  17. Jun 07, 2021
    • Mark OLESEN's avatar
      ENH: provide dictionary access for coded BCs etc (#1922) · b59ae32d
      Mark OLESEN authored
      - in some cases, additional dictionary inputs are useful for extending
        the input parameters or functionality of dynamic coded conditions.
      
        Typically this can be used to provide a simple set of dictionary
        inputs that are used to drive specific code, but allows changing the
        inputs without causing a recompilation.
      
        Accessed with this type of code:
        ```
        const dictionary& dict = this->codeContext();
        ```
      
      boundary conditions and function objects:
      
      * specify an additional codeContext dictionary entry:
        ```
        codeContext
        {
            ...
        }
        ```
      
      PatchFunction1:
      
      * The code context dictionary is simply the dictionary used to specify
        the PatchFunction1 coefficients.
      
        To replicated persistant data, use local member static data.
        Eg,
        ```
        code
        #{
            // Persistent (Member) Data
            static autoPtr<Function1<scalar>> baseVel;
            static autoPtr<Function1<vector>> baseDir;
            ...
        #}
        ```
      
      fvOptions:
      
      * currently not applicable
      b59ae32d
    • Mark OLESEN's avatar
      ENH: improve codeTemplates · b0891824
      Mark OLESEN authored
      - meshTools include/library for many (most) coded items
      
      - add PatchFunction1 include for coded BCs to provide ready access
        to Function1 and PatchFunction1
      b0891824
  18. May 19, 2021
  19. May 13, 2021
  20. Apr 23, 2021
    • Mark OLESEN's avatar
      CONFIG: adjust intel compiler and mpi settings (#2056) · d5498265
      Mark OLESEN authored
      - largely as per patch from Jong-Gwan (Jason) Do
      
      NB: the intel-one setup adds in paths for intelmpi.
          Its mpicc version does not harmonize with the OpenFOAM
          system openmpi setup (using mpicc --showme:link).
      
          Needs adjustment, or use intelmpi instead.
      
      - update name mappings for newer gcc, clang versions
      d5498265
  21. Apr 19, 2021
  22. Mar 31, 2021
    • mattijs's avatar
      BUG: primitiveMesh: incorrect uncached edgeFaces. Fixes #2047. · c9c85d9a
      mattijs authored
      It was only looking for faces that were used in both
      endpoints but not actually checking whether they were indeed
      an edge (== consecutive vertex) in all faces. So if one
      face had an additional crossing edge and another didn't it
      would find more edgeFaces than the proper
      'primitiveMesh::edgeFaces()' routine.
      This occasionally happened inside snappyHexMesh
      (e.g. motorBike tutorial)
      c9c85d9a
  23. Mar 29, 2021
  24. Mar 22, 2021
  25. Mar 17, 2021
    • Mark OLESEN's avatar
      ENH: support preloading fields for setExpr* utilities (#2014) · cd1350a8
      Mark OLESEN authored
      - can use either command-line option "-load-fields" or dictionary
        entry "readFields" to specify field names to be preloaded.
      
        Essentially the same functionality as with a readFields function
        object but with a lot less typing.
      
      - tutorial examples provided by Ryan Danks <ryan.danks@rwdi.com>
        illustrate using setExpr* utilities to calculate a quantity
        as a post-processing step.
      cd1350a8
  26. Feb 16, 2021
  27. Feb 10, 2021
  28. Feb 03, 2021