Skip to content
Snippets Groups Projects
  1. Nov 21, 2018
  2. Oct 19, 2018
  3. Jul 31, 2018
  4. Oct 05, 2018
    • Mark OLESEN's avatar
      ENH: use dictionary::readEntry for detection of input errors (#762, #1033) · 13778f76
      Mark OLESEN authored
      - instead of   dict.lookup(name) >> val;
        can use      dict.readEntry(name, val);
      
        for checking of input token sizes.
        This helps catch certain types of input errors:
      
        {
      
            key1 ;                // <- Missing value
            key2 1234             // <- Missing ';' terminator
            key3 val;
        }
      
      STYLE: readIfPresent() instead of 'if found ...' in a few more places.
      13778f76
  5. Apr 24, 2018
    • Mark OLESEN's avatar
      ENH: improve handling of ThirdParty packages · b4d38ab4
      Mark OLESEN authored
      - generalize some of the library extensions (.so vs .dylib).
        Provide as wmake 'sysFunctions'
      
      - added note about unsupported/incomplete system support
      
      - centralize detection of ThirdParty packages into wmake/ subdirectory
        by providing a series of scripts in the spirit of GNU autoconfig.
        For example,
      
            have_boost, have_readline, have_scotch, ...
      
        Each of the `have_<package>` scripts will generally provide the
        following type of functions:
      
            have_<package>          # detection
            no_<package>            # reset
            echo_<package>          # echoing
      
        and the following type of variables:
      
            HAVE_<package>          # unset or 'true'
            <package>_ARCH_PATH     # root for <package>
            <package>_INC_DIR       # include directory for <package>
            <package>_LIB_DIR       # library directory for <package>
      
        This simplifies the calling scripts:
      
            if have_metis
            then
                wmake metisDecomp
            fi
      
        As well as reducing clutter in the corresponding Make/options:
      
            EXE_INC = \
                -I$(METIS_INC_DIR) \
                -I../decompositionMethods/lnInclude
      
            LIB_LIBS = \
                -L$(METIS_LIB_DIR) -lmetis
      
        Any additional modifications (platform-specific or for an external build
        system) can now be made centrally.
      b4d38ab4
  6. Mar 28, 2018
  7. Mar 16, 2018
    • Mark OLESEN's avatar
      STYLE: more consistent use of dimensioned Zero · 2f86cdc7
      Mark OLESEN authored
      - when constructing dimensioned fields that are to be zero-initialized,
        it is preferrable to use a form such as
      
            dimensionedScalar(dims, Zero)
            dimensionedVector(dims, Zero)
      
        rather than
      
            dimensionedScalar("0", dims, 0)
            dimensionedVector("zero", dims, vector::zero)
      
        This reduces clutter and also avoids any suggestion that the name of
        the dimensioned quantity has any influence on the field's name.
      
        An even shorter version is possible. Eg,
      
            dimensionedScalar(dims)
      
        but reduces the clarity of meaning.
      
      - NB: UniformDimensionedField is an exception to these style changes
        since it does use the name of the dimensioned type (instead of the
        regIOobject).
      2f86cdc7
  8. Feb 22, 2018
  9. Jan 08, 2018
    • Mark OLESEN's avatar
      ENH: simplify method names for reading argList options and arguments · 345a2a42
      Mark OLESEN authored
      - use succincter method names that more closely resemble dictionary
        and HashTable method names. This improves method name consistency
        between classes and also requires less typing effort:
      
          args.found(optName)        vs.  args.optionFound(optName)
          args.readIfPresent(..)     vs.  args.optionReadIfPresent(..)
          ...
          args.opt<scalar>(optName)  vs.  args.optionRead<scalar>(optName)
          args.read<scalar>(index)   vs.  args.argRead<scalar>(index)
      
      - the older method names forms have been retained for code compatibility,
        but are now deprecated
      345a2a42
  10. Nov 22, 2017
  11. Jul 22, 2017
  12. Jul 03, 2017
  13. May 19, 2017
  14. May 16, 2017
    • Mark OLESEN's avatar
      ENH: cleanup wordRe interfaces etc. · a8d2ebf2
      Mark OLESEN authored
      - ensure that the string-related classes have consistently similar
        matching methods. Use operator()(const std::string) as an entry
        point for the match() method, which makes it easier to use for
        filters and predicates. In some cases this will also permit using
        a HashSet as a match predicate.
      
      regExp
      ====
      - the set method now returns a bool to signal that the requested
        pattern was compiled.
      
      wordRe
      ====
      - have separate constructors with the compilation option (was previously
        a default parameter). This leaves the single parameter constructor
        explicit, but the two parameter version is now non-explicit, which
        makes it easier to use when building lists.
      
      - renamed compile-option from REGEX (to REGEXP) for consistency with
        with the <regex.h>, <regex> header names etc.
      
      wordRes
      ====
      - renamed from wordReListMatcher -> wordRes. For reduced typing and
        since it behaves as an entity only slightly related to its underlying
        list nature.
      
      - Provide old name as typedef and include for code transition.
      
      - pass through some list methods into wordRes
      
      hashedWordList
      ====
      - hashedWordList[const word& name] now returns a -1 if the name is is
        not found in the list of indices. That has been a pending change
        ever since hashedWordList was generalized out of speciesTable
        (Oct-2010).
      
      - add operator()(const word& name) for easy use as a predicate
      
      STYLE: adjust parameter names in stringListOps
      
      - reflect if the parameter is being used as a primary matcher, or the
        matcher will be derived from the parameter.
        For example,
            (const char* re), which first creates a regExp
            versus (const regExp& matcher) which is used directly.
      a8d2ebf2
  15. Jun 08, 2017
  16. Feb 23, 2017
  17. Jan 26, 2017
  18. Nov 13, 2016
  19. Jul 18, 2016
  20. Jun 24, 2016
  21. Jun 17, 2016
  22. Apr 29, 2016
  23. Apr 04, 2016
  24. Mar 22, 2016
  25. Jun 27, 2016
  26. Feb 15, 2016
  27. Feb 03, 2016
  28. Jan 25, 2016
    • mattijs's avatar
      ENH: glboal file handling: initial commit · e4240592
      mattijs authored
      Moved file path handling to regIOobject and made it type specific so
      now every object can have its own rules. Examples:
      - faceZones are now processor local (and don't search up anymore)
      - timeStampMaster is now no longer hardcoded inside IOdictionary
        (e.g. uniformDimensionedFields support it as well)
      - the distributedTriSurfaceMesh is properly processor-local; no need
        for fileModificationChecking manipulation.
      e4240592
  29. Jan 10, 2016
  30. Dec 09, 2015
  31. Dec 01, 2015
  32. Nov 29, 2015
  33. Nov 27, 2015
  34. Nov 10, 2015
  35. Mar 24, 2015
  36. Jan 21, 2015
    • Henry's avatar
      Updated the whole of OpenFOAM to use the new templated TurbulenceModels library · 2aec2496
      Henry authored
      The old separate incompressible and compressible libraries have been removed.
      
      Most of the commonly used RANS and LES models have been upgraded to the
      new framework but there are a few missing which will be added over the
      next few days, in particular the realizable k-epsilon model.  Some of
      the less common incompressible RANS models have been introduced into the
      new library instantiated for incompressible flow only.  If they prove to
      be generally useful they can be templated for compressible and
      multiphase application.
      
      The Spalart-Allmaras DDES and IDDES models have been thoroughly
      debugged, removing serious errors concerning the use of S rather than
      Omega.
      
      The compressible instances of the models have been augmented by a simple
      backward-compatible eddyDiffusivity model for thermal transport based on
      alphat and alphaEff.  This will be replaced with a separate run-time
      selectable thermal transport model framework in a few weeks.
      
      For simplicity and ease of maintenance and further development the
      turbulent transport and wall modeling is based on nut/nuEff rather than
      mut/muEff for compressible models so that all forms of turbulence models
      can use the same wall-functions and other BCs.
      
      All turbulence model selection made in the constant/turbulenceProperties
      dictionary with RAS and LES as sub-dictionaries rather than in separate
      files which added huge complexity for multiphase.
      
      All tutorials have been updated so study the changes and update your own
      cases by comparison with similar cases provided.
      
      Sorry for the inconvenience in the break in backward-compatibility but
      this update to the turbulence modeling is an essential step in the
      future of OpenFOAM to allow more models to be added and maintained for a
      wider range of cases and physics.  Over the next weeks and months more
      turbulence models will be added of single and multiphase flow, more
      additional sub-models and further development and testing of existing
      models.  I hope this brings benefits to all OpenFOAM users.
      
      Henry G. Weller
      2aec2496
  37. Dec 14, 2014
  38. Feb 24, 2014
  39. Jan 30, 2014