Skip to content
Snippets Groups Projects
  1. 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
  2. May 19, 2021
  3. May 13, 2021
  4. 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
  5. Apr 19, 2021
  6. 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
  7. Mar 29, 2021
  8. Mar 22, 2021
  9. 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
  10. Feb 16, 2021
  11. Feb 10, 2021
  12. Feb 03, 2021
  13. Jan 22, 2021
  14. Dec 23, 2020
  15. Dec 18, 2020
  16. Dec 16, 2020
    • Mark OLESEN's avatar
      ENH: lazier handling of dynamic libraries · 2811c054
      Mark OLESEN authored
      - previously always called dlclose on opened libraries when destroying
        the dlLibraryTable. However, by force closing the libraries the
        situation can arise that the library is missing its own code that it
        needs on unload (#1524). This is also sometimes evident when closing
        VTK libraries for runTimePostProcessing (#354, #1585).
      
      - The new default is to not forcibly dlclose any libraries, unless
        the dlcloseOnTerminate OptimisationSwitch specifies otherwise.
      
        - The dlLibraryTable::close() method can be used to explicitly close
          all libraries and clear the list.
      
        - The dlLibraryTable::clear() method now only clears the entries,
          without a dlclose.
      2811c054
  17. Dec 14, 2020
  18. Dec 11, 2020
  19. Dec 08, 2020
  20. Nov 26, 2020
  21. Nov 19, 2020
    • Mark OLESEN's avatar
      ENH: Function1 and PatchFunction1 improvements (#1917) · 2f2dcdcf
      Mark OLESEN authored
      - easier support for non-mandatory functions.
      
        In some boundary conditions it can be desirable to support
        additional functions, but not necessarily require them. Make this
        easier to support with a Function1, PatchFunction1 NewIfPresent()
        selector.
      
      - support for compatibility lookups
      
      - harmonize branching logic and error handling between Function1 and
        PatchFunction1.
      
      ENH: refactor a base class for Function1, PatchFunction1
      
      - includes base characteristics, patch or scalar information
      
      ENH: additional creation macros
      
      - makeConcreteFunction1, makeConcretePatchFunction1Type for adding a
        non-templated function into the correct templated selection table.
        makeScalarPatchFunction1 for similarity with makeScalarFunction1
      2f2dcdcf
  22. 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
    • Mark OLESEN's avatar
      CONFIG: rationalize compiler tuning · 26ec9b5a
      Mark OLESEN authored
      - support prefs.compiler with better possibilities to provide
        overload values
      
      STYLE: reduce code for WM_ARCH_OPTION (seldom-used)
      26ec9b5a
  23. 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
  24. Oct 28, 2020
    • Mark OLESEN's avatar
      ENH: support true/false, yes/no values for FOAM_ABORT (#1896) · 410d38b9
      Mark OLESEN authored
      - consistent with FOAM_SIGFPE etc.
      
      - centralize code as error::useAbort() static function to avoid
        scattering the logic throughout the code.
      
      ENH: also accept "0" and "1" string values for Switch
      
      - not the normal path for Switch input (eg, from a dictionary), but
        consistent with bool definitions and simplifies string parsing.
      
        This means that `FOAM_SIGFPE=1 application` will now also work.
      410d38b9
    • Mark OLESEN's avatar
      TUT: fix use of "constant/triSurface" etc (#1887) · 9eb73a92
      Mark OLESEN authored
      - use bracketed syntax (eg, "<constant>/triSurface") instead for
        implicit case resolution.
      9eb73a92
  25. Oct 20, 2020
  26. Sep 28, 2020
  27. Sep 07, 2020
    • Mark OLESEN's avatar
      CONFIG: improve support for compiler/link options (#1830) · 9423d2bd
      Mark OLESEN authored
      - introduce WM_COMPILE_CONTROL variable to convey control information
        into the build rules.
      
        The convention (as per spack):
            - '+' to select a feature
            - '~' to deselect a feature
      
        Eg, to select the gold linker, and disable openmp
        (spaces are not required):
      
            WM_COMPILE_CONTROL="+gold ~openmp"
      
      CONFIG: accept FOAM_EXTRA_LDFLAGS for AMD, gold, Mingw linkers
      
      CONFIG: generalize PROJECT_LIBS (-ldl used almost universally)
      9423d2bd
  28. Aug 11, 2020
  29. Aug 10, 2020
  30. Aug 06, 2020
  31. Jul 23, 2020
  32. Jun 30, 2020
  33. Jun 29, 2020