- Jun 08, 2017
- Jun 07, 2017
- Jun 02, 2017
-
-
sergio authored
2)Adapting divU in TEqn.H for compressibleInterDyMFoam and compressibleInterFoam 3)Re-instated sixDoFRigidBodyDisplacement as patch for pointFields. It allows to use a different fvDynamincMesh type independently of the BC's
-
- Jun 01, 2017
-
-
sergio authored
Modification on rhoPimpleFoam pEq's for handling rho thermo and incompressible EoS. Adding rho limiters if p is limited. This is important when LTS stepping or large Co number is used. Updating rhoBuoyantPimpleFoam to handle closed domain for rho thermo and incompressible Eos. Consolidating chtMultiRegionSimpleFoam and chtMultiRegionFoam pEqs to use the same formulation as rhoBuoyantPimpleFoam and rhoBuoyantSimpleFoam
-
Andrew Heather authored
ENH: noiseModels - updated parallel usage (no longer needs proc dirs) and apply input data validation
-
Mark OLESEN authored
-
Mark OLESEN authored
-
- May 31, 2017
-
-
Mark OLESEN authored
- was generally somewhat fragile. The main problem stems from the fact that several interfaces may be attached to a boundary. No trivial means of solving this without too much work for a feature that is only "nice-to-have".
-
Mark OLESEN authored
- Programming convenience. Eg, cos(45_deg) vs cos(degToRad(45)) STYLE: conversions marked as constexpr and noexcept
-
Mark OLESEN authored
-
- May 30, 2017
-
-
Andrew Heather authored
-
- May 29, 2017
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- the NamedEnum wrapper is somewhate too rigid. * All enumerated values are contiguous, starting as zero. * The implicit one-to-one mapping precludes using it for aliases. * For example, perhaps we want to support alternative lookup names for an enumeration, or manage an enumeration lookup for a sub-range.
-
Mark OLESEN authored
- no penalty compared to Tuple2, potential future benefits with C++ constructor forwarding.
-
Mark OLESEN authored
- Remove the unused enums() method since it delivers wholly unreliable results. It is not guaranteed to cover the full enumeration range, but only the listed names. - Remove the unused strings() method. Duplicated functionality of the words(), but was never used. - Change access of words() method from static to object. Better code isolation. Permits the constructor to take over as the single point of failure for bad input. - Add values() method - do not expose internal (HashTable) lookup since it makes it more difficult to enforce constness and the implementation detail should not be exposed. However leave toc() and sortedToc() for the interface. STYLE: relocated NamedEnum under primitives (was containers) - internal typedef as 'value_type' for some consistency with STL conventions
-
- May 26, 2017
-
-
Mark OLESEN authored
- The unset() method never auto-vivifies, whereas the set() method always auto-vivifies. In the case where set() is called with a zero for its argument - eg, set(index, 0) - this should behave identically to an unset() and not auto-vivify out-of-range entries.
-
Mark OLESEN authored
-
Mark OLESEN authored
-
- May 24, 2017
-
-
Andrew Heather authored
-
- May 19, 2017
-
-
Andrew Heather authored
-
- May 18, 2017
-
-
mattijs authored
-
Mark OLESEN authored
COMP: avoid undefined-var-template warning in runTimePostProcessing
-
- May 17, 2017
-
-
Mark OLESEN authored
-
Mark OLESEN authored
-
79ff91350 - rhoPimpleFoam: Improved support for compressible liquids (2017-05-17 17:05:43 +0100) <Henry Weller>
-
Mark OLESEN authored
BUG: foamToEnsight fails with missing field at time 0 (fixes #473)
-
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
-
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.
-
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'.
-
- May 16, 2017
-
-
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.
-
Mark OLESEN authored
-
- May 15, 2017
-
-
mattijs authored
-
Mark OLESEN authored
- This makes the following safe: auto iter = ptrTable.find(unknownKey); ptrTable.erase(iter); - Unmask HashPtrTable::erase(const Key& key) method
-
- May 14, 2017
-
-
Mark OLESEN authored
ENH: ensure std::distance works with hashtable iterators
-
Mark OLESEN authored
- inherit from std::iterator to obtain the full STL typedefs, meaning that std::distance works and the following is now possible: labelRange range(100, 1500); scalarList list(range.begin(), range.end()); -- Note that this does not work (mismatched data-types): scalarList list = identity(12345); But this does, since the *iter promotes label to scalar: labelList ident = identity(12345); scalarList list(ident.begin(), ident.end()); It is however more than slightly wasteful to create a labelList just for initializing a scalarList. An alternative could be a a labelRange for the same purpose. labelRange ident = labelRange::identity(12345); scalarList list(ident.begin(), ident.end()); Or this scalarList list ( labelRange::null.begin(), labelRange::identity(12345).end() );
-
- May 12, 2017
-
-
-
Mark OLESEN authored
- provides const/non-const access to the underlying list, but the iterator access itself is const. - provide linked-list iterator 'found()' method for symmetry with hash-table iterators. Use nullptr for more clarity.
-
Improves stability on start-up and allows running at slightly larger time-steps.
-