Skip to content
Snippets Groups Projects
  1. May 26, 2017
  2. May 25, 2017
  3. May 24, 2017
  4. May 22, 2017
  5. May 19, 2017
  6. May 18, 2017
  7. May 17, 2017
  8. May 19, 2017
  9. May 17, 2017
    • Andrew Heather's avatar
      STYLE: Corrected header text · 8a3915eb
      Andrew Heather authored
      8a3915eb
    • Mark OLESEN's avatar
    • Mark OLESEN's avatar
    • Mark OLESEN's avatar
      ENH: simplify foamToEnsight using new IOobjectList methods · b2edd738
      Mark OLESEN authored
      BUG: foamToEnsight fails with missing field at time 0 (fixes #473)
      b2edd738
    • mattijs's avatar
    • mattijs's avatar
    • Mark OLESEN's avatar
      ENH: added classes() method to objectRegistry/IOobjectList · 9761e9d8
      Mark OLESEN authored
      - provides a summary hash of classes used and their associated object names.
      
        The HashTable representation allows us to leverage various HashTable
        methods. This hashed summary view can be useful when querying
        particular aspects, but is most useful when reducing the objects in
        consideration to a particular subset. For example,
      
            const wordHashSet interestingTypes
            {
                volScalarField::typeName,
                volVectorField::typeName
            };
      
            IOobjectList objects(runTime, runTime.timeName());
            HashTable<wordHashSet> classes = objects.classes();
      
            classes.retain(interestingTypes);
      
            // Or do just the opposite:
            classes.erase(unsupportedTypes);
      
        Can also use the underlying HashTable filter methods
      
      STYLE: use templated internals to avoid findString() when matching subsets
      9761e9d8
    • Mark OLESEN's avatar
      ENH: added HashTable count, filter and generalized toc methods · cf889306
      Mark OLESEN authored
      - Generalized means over filtering table entries based on their keys,
        values, or both.  Either filter (retain), or optionally prune elements
        that satisfy the specified predicate.
      
        filterKeys and filterValues:
        - Take a unary predicate with the signature
      
              bool operator()(const Key& k);
      
        - filterEntries:
          Takes a binary predicate with the signature
      
              bool operator()(const Key& k, const T& v);
      
      ==
      
        The predicates can be normal class methods, or provide on-the-fly
        using a C++ lambda. For example,
      
            wordRes goodFields = ...;
            allFieldNames.filterKeys
            (
                [&goodFields](const word& k){ return goodFields.match(k); }
            );
      
        Note that all classes that can match a string (eg, regExp, keyType,
        wordRe, wordRes) or that are derived from a Foam::string (eg, fileName,
        word) are provided with a corresponding
      
            bool operator()(const std::string&)
      
        that either performs a regular expression or a literal match.
        This allows such objects to be used directly as a unary predicate
        when filtering any string hash keys.
      
        Note that HashSet and hashedWordList both have the proper
        operator() methods that also allow them to be used as a unary
        predicate.
      
      - Similar predicate selection with the following:
          * tocKeys, tocValues, tocEntries
          * countKeys, countValues, countEntries
      
        except that instead of pruning, there is a simple logic inversion.
      cf889306
    • Mark OLESEN's avatar
      ENH: added constant predicates · 8d018e79
      Mark OLESEN authored
      - predicates::always and predicates::never returning true and false,
        respectively. These simple classes make it easier when writing
        templated code.
      
        As well as unary and binary predicate forms, they also contain a
        match(std::string) method for compatibility with regex-based classes.
      
      STYLE: write bool and direction as primitive 'int' not as 'label'.
      8d018e79