1. 10 Dec, 2020 1 commit
    • sergio's avatar
      ENH: New vibro-acoustic model suite · bc430ccd
      sergio authored and Andrew Heather's avatar Andrew Heather committed
      
      
        - New solver: `acousticFoam`
        - New base finite-area region class: `regionFaModel`
        - New base shell model classes:
          - `vibrationShellModel`
          - `thermalShellModel`
        - New shell models:
          - A vibration-shell model: `KirchhoffShell`
          - A thermal-shell model: `thermalShell`
        - New finite-area/finite-volume boundary conditions:
          - `clampedPlate`
          - `timeVaryingFixedValue`
          - `acousticWaveTransmissive`
        - New base classes for `fvOption` of finite-area methods: `faOption`
        - New `faOption`s:
          - `contactHeatFluxSource`
          - `externalFileSource`
          - `externalHeatFluxSource`
          - `jouleHeatingSource`
        - New tutorial: `compressible/acousticFoam/obliqueAirJet`
      Signed-off-by: Kutalmis Bercin's avatarKutalmis Bercin <kutalmis.bercin@esi-group.com>
      bc430ccd
  2. 09 Dec, 2020 1 commit
    • Mark Olesen's avatar
      ENH: reduce use of readdir on individual processors (#1946) · 627d79db
      Mark Olesen authored
      - implicitly enabled when timeStampMaster (default) is used
        for the fileModificationChecking
      
      - When running with non-distributed roots (eg, NFS-share) read for
        processor directories on master only and send to sub-processes
        instead individual reads.
      
      - If disabled (old default, or when running with distributed roots),
        uses the regular fileHandler readDir, which may perform readDir
        on each processor. Potentially slow startup times on large systems.
      
      Improvements based on analysis from T.Aoyagi(RIST), A.Azami(RIST)
      627d79db
  3. 19 Nov, 2020 2 commits
    • Mark Olesen's avatar
      STYLE: can add compile-time deprecated message for autoPtr::set() · 6e3bc1f7
      Mark Olesen authored
      - deprecated Feb-2018, but not marked as such.
      
        The set() method originally enforce an additional run-time check
        (Fatal if pointer was already set), but this was rarely used.
        In fact, the set() method was invariably used in constructors
        where the pointer by definition was unset.
      
        Can now mark as deprecated to catch the last of these.
        We prefer reset() for similarity with std::unique_ptr
      
        Eg,
        FOAM_EXTRA_CXXFLAGS="-DFoam_autoPtr_deprecate_setMethod"  wmake
      6e3bc1f7
    • Mark Olesen's avatar
      STYLE: use brace constructors for Foam::zero and Foam::one · 07bbae0c
      Mark Olesen authored
      - makes it clearer that these are constructors and not function calls
      07bbae0c
  4. 01 Oct, 2020 1 commit
    • Mark Olesen's avatar
      ENH: add identity(IntRange) and Istream operator for common types · 56c9134c
      Mark Olesen authored
      - provides consistency with identity(label, label) and looks more
        familiar than using labelRange::labels()
      
      - relocates labelRange IO operators to IntRange
      
      ENH: make sliceRange interators random access
      
      STYLE: scalarRanges::match() instead of predicate operator
      56c9134c
  5. 10 Aug, 2020 1 commit
    • Mark Olesen's avatar
      ENH: direct access to wrapped ifstream/ofstream with compression (#1805) · 6e2b7be9
      Mark Olesen authored
      - previously hidden as Detail::[IO]FstreamAllocator, now exposed
        directly as [io]fstreamPointer, which allows reuse for
        std::ifstream, std::ofstream wrapping, without the additional
        ISstream, OSstream layers.
      
        These stream pointers have some characteristics similar to a
        unique_ptr.
      
      - restrict direct gzstream usage to two files (fstreamPointers.C,
        gzstream.C) which improves localization and makes it simpler to
        enable/disable with the `HAVE_LIBZ` define.
      
        The HAVE_LIBZ define is currently simply hard-coded in the
        Make/options.
      
        If compiled WITHOUT libz support:
          - reading gz files : FatalError
          - writing gz files : emit warning and downgrade to uncompressed
          - warn if compression is specified in the case controlDict
            and downgrade to uncompressed
      
      ENH: minor updates to gzstream interface for C++11
      
      - support construct/open with std::string for the file names.
      
      CONFIG: provisioning for have_libz detection as wmake/script
      6e2b7be9
  6. 14 Jul, 2020 2 commits
    • Mark Olesen's avatar
      ENH: mutable libs() access in Time and other classes (#1737) · 1e7c6ea2
      Mark Olesen authored
      - This reflects the pre-existing coding situation where const_cast was
        used throughout to effect the same.
      
      STYLE: fix private/protected access
      
      - CodedField, codedMixedFvPatchField
      1e7c6ea2
    • Mark Olesen's avatar
      ENH: various dlLibraryTable improvements/refinements (#1737) · 41d3e6f1
      Mark Olesen authored
      - libs() singleton method for global library handling
      
      - explicit handling of empty filename for dlLibraryTable open/close.
        Largely worked before, but now be more explicit about its behaviour.
      
      - add (key, dict) constructor and open() methods.
        More similarity to dimensionedType, Enum etc, and there is no
        ambiguity with the templated open().
      
      - construct or open from initializer_list of names
      
      - optional verbosity when opening with auxiliary table,
        avoid duplicate messages or spurious messages for these.
      
      - basename and fullname methods (migrated from dynamicCode).
      
      - centralise low-level load/unload hooks
      
      - adjust close to also dlclose() aliased library names.
      41d3e6f1
  7. 09 Jul, 2020 1 commit
    • Mark Olesen's avatar
      ENH: use unique_ptr for memory management of profiling · a088bda4
      Mark Olesen authored
      - makes it easier to distinguish between pointers referring to pool
        data versus pointers actually holding storage, avoids
        manual demand-driven deletion and autoPtr.
      
      ENH: simplify/improve Pstream profiling
      
      - times now double (not scalar) for consistency with what cpuTime
        delivers
      
      - use bool to track suspend state
      a088bda4
  8. 16 Jun, 2020 1 commit
  9. 02 Jun, 2020 1 commit
    • Mark Olesen's avatar
      ENH: unify use of dictionary method names · 3e43edf0
      Mark Olesen authored
      - previously introduced `getOrDefault` as a dictionary _get_ method,
        now complete the transition and use it everywhere instead of
        `lookupOrDefault`. This avoids mixed usage of the two methods that
        are identical in behaviour, makes for shorter names, and promotes
        the distinction between "lookup" access (ie, return a token stream,
        locate and return an entry) and "get" access (ie, the above with
        conversion to concrete types such as scalar, label etc).
      3e43edf0
  10. 23 May, 2020 1 commit
    • Mark Olesen's avatar
      ENH: support disable libs when constructing Time from argList (#1714) · a5a50469
      Mark Olesen authored
      - previously relied on presence/absence of command-line options.
        Can now explicitly disable individually
      
      - provide shorter constructors for dealing with these types of cases.
        Make construction with non-default names for "system" and "constant"
        lengthier so there is no ambiguity.
      a5a50469
  11. 27 Apr, 2020 1 commit
  12. 15 Apr, 2020 1 commit
  13. 11 Mar, 2020 1 commit
  14. 19 Feb, 2020 1 commit
  15. 18 Feb, 2020 2 commits
    • Mark Olesen's avatar
      ENH: support IOstreamOption in abstract stream types · 3135dcf2
      Mark Olesen authored
      - expose the write IOstreamOption in Time
      3135dcf2
    • Mark Olesen's avatar
      ENH: improvements to IOstreamOption · 33f9ae50
      Mark Olesen authored
      * Support default values for format/compress enum lookups.
      
        - Avoids situations where the preferred default format is not ASCII.
          For example, with dictionary input:
      
              format binar;
      
          The typing mistake would previously have caused formatEnum to
          default to ASCII. We can now properly control its behaviour.
      
              IOstream::formatEnum
              (
                  dict.get<word>("format"), IOstream::BINARY
              );
      
          Allowing us to switch ascii/binary, using BINARY by default even in
          the case of spelling mistakes. The mistakes are flagged, but the
          return value can be non-ASCII.
      
      * The format/compression lookup behave as pass-through if the lookup
        string is empty.
      
        - Allows the following to work without complaint
      
            IOstream::formatEnum
            (
                dict.getOrDefault("format", word::null), IOstream::BINARY
            );
      
        - Or use constructor-like failsafe method
      
            IOstream::formatEnum("format", dict, IOstream::BINARY);
      
        - Apply the same behaviour with setting stream format/compression
          from a word.
      
             is.format("binar");
      
          will emit a warning, but leave the stream format UNCHANGED
      
      * Rationalize versionNumber construction
      
        - constexpr constructors where possible.
          Default construct is the "currentVersion"
      
        - Construct from token to shift the burden to versionNumber.
          Support token as argument to version().
      
          Now:
      
              is.version(headerDict.get<token>("version"));
      
          or failsafe constructor method
      
              is.version
              (
                  IOstreamOption::versionNumber("version", headerDict)
              );
      
          Before (controlled input):
      
              is.version
              (
                  IOstreamOption::versionNumber
                  (
                      headerDict.get<float>("version")
                  )
              );
      
          Old, uncontrolled input - has been removed:
      
              is.version(headerDict.lookup("version"));
      
      * improve consistency, default behaviour for IOstreamOption construct
      
        - constexpr constructors where possible
      
        - add copy construct with change of format.
      
        - construct IOstreamOption from streamFormat is now non-explicit.
          This is a commonly expected result with no ill-effects
      33f9ae50
  16. 31 Jan, 2020 1 commit
  17. 31 Oct, 2019 1 commit
  18. 25 Oct, 2019 1 commit
    • Mark Olesen's avatar
      ENH: add flexible command options for setting Debug and Info switches #1467 · da332229
      Mark Olesen authored
      For example,
      
         $ someSolver -info-switch writeOptionalEntries
      
      - note that values changed via the command-line are changed after the
        etc/controlDict entries, but *before* any case-local
        system/controlDict entries.
      
        However, in many testing cases the command-line options eliminate
        the need for such local file modifications.
      
      ENH: cleanup handling of local debug switches in Time
      
      - add as methods directly on simpleObjectRegistry to avoid code
        duplication
      
      STYLE: adjust internal naming of ITstream parameters
      da332229
  19. 27 Sep, 2019 1 commit
    • Mark Olesen's avatar
      ENH: support writeControl 'none' (#1448) · 4cc7bf14
      Mark Olesen authored
      - for special cases when normal writing is to be completely disabled
        and replaced with alternate means (eg, via a function object).
      
      - support "adjustable" as "adjustableRunTime" alias to reduce typing
        for writeControl or outputControl
      4cc7bf14
  20. 30 Aug, 2019 1 commit
    • Mark Olesen's avatar
      ENH: support additional command-line loading of libraries (#1414) · 6eaa326c
      Mark Olesen authored
      - this can be useful for preloading of libraries, or for utilities
        that don't use system/controlDict.
      
        The additional libraries can be specified individually:
      
            myUtil -lib lib1 -lib lib2 -lib lib3
      
        When specified like this, the options add up.
      
        Or as a 'captured' list using OpenFOAM's standard arg list handling:
      
            myUtil -lib '(' lib1  lib2 lib3 ')'
            myUtil -lib \( lib1  lib2 lib3 \)
      
        or as single argument list:
      
            myUtil -lib '("lib1" "lib2" "lib3")'
      
        When specified as a single argument, would normally take advantage
        of the transparent handling of word vs fileName and omit the string
        quotes:
      
            myUtil -lib '(lib1 lib2 lib3)'
      
      ENH: dlOpen error messages now propagated into dlLibraryTable
      
      - this makes the context more relevant and also avoids the previous
        annoyance of double warnings (one from the POSIX loader, and one
        from dlLibraryTable)
      
      STYLE: mark -noFunctionObjects and -withFunctionObjects as 'advanced'
      
      - reduces clutter. Still visible with -help-full
      6eaa326c
  21. 02 Aug, 2019 1 commit
  22. 24 Jun, 2019 1 commit
  23. 24 Apr, 2019 1 commit
  24. 17 Apr, 2019 1 commit
  25. 10 Apr, 2019 1 commit
  26. 14 Jun, 2019 1 commit
  27. 07 Jan, 2019 1 commit
  28. 06 Feb, 2019 1 commit
  29. 17 Dec, 2018 1 commit
    • Mark Olesen's avatar
      ENH: allow "none" as time range specification (issue #1128) · c4ec4121
      Mark Olesen authored
      - this corresponds to 'never match', which may be useful in combination
        with -constant selection.
      
        Eg,
      
            surfaceMeshTriangulate -constant -time none
      
        selects only the constant entry and suppresses any automatic time loop
      
      STYLE: adjust help for the standard -times option
      
      - indicate that times can be comma or space separated, since this is
        otherwise not apparent. Don't mention semicolon separators in the help
        since that just adds even more clutter.
      c4ec4121
  30. 15 Dec, 2018 1 commit
    • Mark Olesen's avatar
      ENH: simplify use of case-relative paths · 455c8ef5
      Mark Olesen authored
      - provide relativePath() for argList and for Time.
        These are relative to the case globalPath().
        Eg,
      
           Info<< "output: " << runTime.relativePath(outputFile) << nl;
      455c8ef5
  31. 14 Nov, 2018 1 commit
  32. 11 Nov, 2018 1 commit
  33. 02 Nov, 2018 1 commit
  34. 19 Oct, 2018 1 commit
    • Mark Olesen's avatar
      STYLE: use range-for when looping dictionary entries. · 07dafe7b
      Mark Olesen authored
      - as part of the cleanup of dictionary access methods (c6520033)
        made the dictionary class single inheritance from IDLList<entry>.
      
        This eliminates any ambiguities for iterators and allows
        for simple use of range-for looping.
      
        Eg,
            for (const entry& e : topDict))
            {
                Info<< "entry:" << e.keyword() << " is dict:" << e.isDict() << nl;
            }
      
         vs
      
            forAllConstIter(dictionary, topDict, iter))
            {
                Info<< "entry:" << iter().keyword()
                    << " is dict:" << iter().isDict() << nl;
            }
      07dafe7b
  35. 18 Oct, 2018 1 commit
    • Mark Olesen's avatar
      ENH: cleanup of Enum class · 3b745122
      Mark Olesen authored
      - more dictionary-like methods, enforce keyType::LITERAL for all
        lookups to avoid any spurious keyword matching.
      
      - new readEntry, readIfPresent methods
      
      - The get() method replaces the now deprecate lookup() method.
      
      - Deprecate lookupOrFailsafe()
        Failsafe behaviour is now an optional parameter for lookupOrDefault,
        which makes it easier to tailor behaviour at runtime.
      
      - output of the names is now always flatted without line-breaks.
        Thus,
      
           os << flatOutput(someEnumNames.names()) << nl;
           os << someEnumNames << nl;
      
        both generate the same output.
      
      - Constructor now uses C-string (const char*) directly instead of
        Foam::word in its initializer_list.
      
      - Remove special enum + initializer_list constructor form since
        it can create unbounded lookup indices.
      
      - Removd old hasEnum, hasName forms that were provided during initial
        transition from NamedEnum.
      
      - Added static_assert on Enum contents to restrict to enum or
        integral values.  Should not likely be using ...
      3b745122
  36. 15 Oct, 2018 1 commit
    • Mark Olesen's avatar
      ENH: rationalize dictionary access methods · c6520033
      Mark Olesen authored
      - use keyType::option enum to consolidate searching options.
        These enumeration names should be more intuitive to use
        and improve code readability.
      
          Eg,   lookupEntry(key, keyType::REGEX);
          vs    lookupEntry(key, false, true);
      
        or
      
          Eg,   lookupEntry(key, keyType::LITERAL_RECURSIVE);
          vs    lookupEntry(key, true, false);
      
      - new findEntry(), findDict(), findScoped() methods with consolidated
        search options for shorter naming and access names more closely
        aligned with other components. Behave simliarly to the
        methods lookupEntryPtr(), subDictPtr(), lookupScopedEntryPtr(),
        respectively. Default search parameters consistent with lookupEntry().
      
          Eg, const entry* e = dict.findEntry(key);
          vs  const entry* e = dict.lookupEntryPtr(key, false, true);
      
      - added '*' and '->' dereference operators to dictionary searchers.
      c6520033
  37. 11 Oct, 2018 1 commit