- 07 Mar, 2018 1 commit
-
-
Mark Olesen authored
- The bitSet class replaces the old PackedBoolList class. The redesign provides better block-wise access and reduced method calls. This helps both in cases where the bitSet may be relatively sparse, and in cases where advantage of contiguous operations can be made. This makes it easier to work with a bitSet as top-level object. In addition to the previously available count() method to determine if a bitSet is being used, now have simpler queries: - all() - true if all bits in the addressable range are empty - any() - true if any bits are set at all. - none() - true if no bits are set. These are faster than count() and allow early termination. The new test() method tests the value of a single bit position and returns a bool without any ambiguity caused by the return type (like the get() method), nor the const/non-const access (like operator[] has). The name corresponds to what std::bitset uses. The new find_first(), find_last(), find_next() methods provide a faster means of searching for bits that are set. This can be especially useful when using a bitSet to control an conditional: OLD (with macro): forAll(selected, celli) { if (selected[celli]) { sumVol += mesh_.cellVolumes()[celli]; } } NEW (with const_iterator): for (const label celli : selected) { sumVol += mesh_.cellVolumes()[celli]; } or manually for ( label celli = selected.find_first(); celli != -1; celli = selected.find_next() ) { sumVol += mesh_.cellVolumes()[celli]; } - When marking up contiguous parts of a bitset, an interval can be represented more efficiently as a labelRange of start/size. For example, OLD: if (isA<processorPolyPatch>(pp)) { forAll(pp, i) { ignoreFaces.set(i); } } NEW: if (isA<processorPolyPatch>(pp)) { ignoreFaces.set(pp.range()); }
-
- 24 Apr, 2018 5 commits
-
-
Mark Olesen authored
- was somewhat redundant in wmake/rules/General/general anyhow
-
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.
-
Mark Olesen authored
-
Mark Olesen authored
- permits platform-specific override of the general CGAL rules
-
Mark Olesen authored
- also simplify parsing by accepting any case on keywords. This implies that something like "sOlId", "SoLiD" will also be accepted. Although nobody should really count on this rather generous behaviour, it does simplfy the state machine even further.
-
- 20 Apr, 2018 2 commits
-
-
Mark Olesen authored
- the previous grammar used '/*' { fgoto comment; } to start processing multi-line comments and comment := any* :>> '*/' @{ fgoto main; }; as a finishing action to return to normal lexing, but seemed not to have been triggered properly. Now simply trap in a single rule: '/*' any* :>> '*/'; # Multi-line comment STYLE: use more compact dnl (delete to newline) OLD: [^\n]* '\n' NEW: (any* -- '\n') '\n' eliminates the intermediate state
-
Andrew Heather authored
-
- 19 Apr, 2018 2 commits
-
-
Andrew Heather authored
-
Mark Olesen authored
- the API-versioned calls (eg, tecini142, teczne142, tecpoly142, tecend142), the limited availability of the SDK and lack of adequate testing make proper maintenance very difficult.
-
- 05 Apr, 2018 1 commit
-
-
Mark Olesen authored
- in debug, also report the first 10 cell ids - format header documentation
-
- 04 Apr, 2018 1 commit
-
-
Mark Olesen authored
- these errors are mostly rounding related (when a point is located on the edge of a bounding box instead of being fully inside it). For debug > 1, continue to treat as fatal.
-
- 19 Apr, 2018 3 commits
-
-
Mark Olesen authored
- also see issue #793 (paraview version)
-
Mark Olesen authored
-
Mark Olesen authored
-
- 18 Apr, 2018 6 commits
-
-
Mark Olesen authored
Style iostream option See merge request OpenFOAM-plus!199
-
mattijs authored
-
mattijs authored
-
Andrew Heather authored
-
Andrew Heather authored
-
Mark Olesen authored
-
- 17 Apr, 2018 1 commit
-
-
Andrew Heather authored
-
- 13 Apr, 2018 1 commit
-
-
Mark Olesen authored
-
- 12 Apr, 2018 1 commit
-
-
Mark Olesen authored
- IOstreamOption class to encapsulate format, compression, version. This is ordered to avoid internal padding in the structure, which reduces several bytes of memory overhead for stream objects and other things using this combination of data. Byte-sizes: old IOstream:48 PstreamBuffers:88 Time:928 new IOstream:24 PstreamBuffers:72 Time:904 ==== STYLE: remove support for deprecated uncompressed/compressed selectors In older versions, the system/controlDict used these types of specifications: writeCompression uncompressed; writeCompression compressed; As of DEC-2009, these were deprecated in favour of using normal switch names: writeCompression true; writeCompression false; writeCompression on; writeCompression off; Now removed these deprecated names and treat like any other unknown input and issue a warning. Eg, Unknown compression specifier 'compressed', assuming no compression ==== STYLE: provide Enum of stream format names (ascii, binary) ==== COMP: fixed incorrect IFstream construct in FIREMeshReader - spurious bool argument (presumably meant as uncompressed) was being implicitly converted to a versionNumber. Now caught by making IOstreamOption::versionNumber constructor explicit. - bad version specifier in changeDictionary
-
- 28 Mar, 2018 1 commit
-
-
Andrew Heather authored
-
- 27 Mar, 2018 2 commits
-
-
Andrew Heather authored
-
Andrew Heather authored
-
- 22 Mar, 2018 1 commit
-
-
Andrew Heather authored
-
- 17 Apr, 2018 2 commits
-
-
Mark Olesen authored
- affected csh users
-
Mark Olesen authored
- adjusted grammar to be more precise
-
- 16 Apr, 2018 1 commit
-
-
Mark Olesen authored
- In addition to the traditional Flex-based parser, added a Ragel-based parser and a handwritten one. Some representative timings for reading 5874387 points (1958129 tris): Flex Ragel Manual 5.2s 4.8s 6.7s total reading time 3.8s 3.4s 5.3s without point merging
-
- 13 Apr, 2018 2 commits
-
-
Mark Olesen authored
- better naming consistency with std::regex_constants::icase - deprecate older NOCASE, but leave supported
-
Mark Olesen authored
-
- 12 Apr, 2018 6 commits
-
-
Mark Olesen authored
-
Mark Olesen authored
-
Mark Olesen authored
- now uses current OpenFOAM code level - added initial catalyst script for insitu processing of overset
-
Mark Olesen authored
-
Mark Olesen authored
- note that the python paths also seem to be treated differently
-
Mark Olesen authored
- However, the new ragel-based parser is much faster than the others, and does not cause 'too many open files' error that the flex-based parser does (issue #784). The timings (using src/sampling as being somewhat representative) $ wclean; wmakeLnInclude -u .; time wmake -s dep 3.4s wmkdepend (ragel) [now default] 5.7s wmkdep (flex) 6.1s cpp -M - The makeDepend script is for testing purposes only, but could used as a hook for other dependency generation systems (eg, ninja). It simply wraps 'cpp -M' in a form that is calling compatible with wmkdepend. BUG: wmkdepend parser was missing optional leading space on #include match STYLE: use -G2 (goto-based) option for wmkdepend state machine - the machine is compact with few states and lends itself to this
-
- 11 Apr, 2018 1 commit
-
-
Mark Olesen authored
- the expansions were previously required as slash to follow, but now either are possible. "<case>", "<case>/" both yield the same as "$FOAM_CASE" and will not have a trailing slash in the result. The expansion of "$FOAM_CASE/" will however have a trailing slash. - adjust additional files using these expansions
-