- Mar 07, 2018
-
-
Mark OLESEN authored
-
- Mar 05, 2018
-
-
Mark OLESEN authored
- The iterator for a HashSet dereferences directly to its key. - Eg, for (const label patchi : patchSet) { ... } vs. forAllConstIter(labelHashSet, patchSet, iter) { const label patchi = iter.key(); ... }
-
- Apr 30, 2018
-
-
mattijs authored
-
Mark OLESEN authored
-
Mattijs Janssens authored
Feature regionsplit See merge request OpenFOAM-plus!201
-
Mark OLESEN authored
-
Mark OLESEN authored
No completion added for XXX ... incorrect platform, or not yet compiled?
-
- Apr 27, 2018
-
-
Mark OLESEN authored
- the algorithm was last used in OpenFOAM-2.4, after which it was replaced with a FaceCellWave version. Whereas the original (2.4.x) version exhibited performance degradation on very large meshes (with explicit constraints), the FaceCellWave version exhibited performance issues with large numbers of blocked faces. With large numbers of blocked faces, the FaceCellWave regionSplit could take between 10 to 100 times longer due to the slow propagation speed through blocked faces. The 2.4 regionSplit has been revamped to avoid local memory allocations, which appears to have been the source of the original performance issues on large meshes. For additional performance, intermediate renumbering is also avoided during the consolidation of regions over processor domains.
-
Mark OLESEN authored
- controlled by the the 'printExecutionFormat' InfoSwitch in etc/controlDict // Style for "ExecutionTime = " output // - 0 = seconds (with trailing 's') // - 1 = day-hh:mm:ss ExecutionTime = 112135.2 s ClockTime = 113017 s ExecutionTime = 1-07:08:55.20 ClockTime = 1-07:23:37 - Callable via the new Time::printExecutionTime() method, which also helps to reduce clutter in the applications. Eg, runTime.printExecutionTime(Info); vs Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; -- ENH: return elapsedClockTime() and clockTimeIncrement as double - previously returned as time_t, which is less portable.
-
- Apr 26, 2018
-
-
Mark OLESEN authored
- reduce cell looping. Avoid initial looping over blockFace. - make early return (no processor sets, connections, or blocked faces) more apparent.
-
- Apr 27, 2018
-
-
Mark OLESEN authored
- alternative calcCellCells that handled explicitConnections was deactivated (2014 or earlier) and finally removed APR-2018.
-
Mark OLESEN authored
For example, with some HashTable or Map container of models { model0 => 1, model1 => 4, model2 => 5, model3 => 12, model4 => 15, } specify the remapping Map<label> mapper({{1, 3}, {2, 6}, {3, 12}, {5, 8}}); inplaceMapValue(mapper, models) then yields { model0 => 3, model1 => 4, model2 => 8, model3 => 12, model4 => 15, } -- ENH: extend bitSet::count() to optionally count unset bits instead. -- ENH: BitOps compatibility methods for boolList. - These ease coding that uses a boolList instead of bitSet and use short-circuit logic when possible. Eg, when 'bitset' and 'bools' contain the same information bitset.count() <-> BitOps::count(bools) bitset.all() <-> BitOps::all(bools) bitset.any() <-> BitOps::any(bools) bitset.none() <-> BitOps::none(bools) These methods can then be used directly in parameters or in logic. Eg, returnReduce(bitset.any(), orOp<bool>()); returnReduce(BitOps::any(bools), orOp<bool>()); if (BitOps::any(bools)) ...
-
Mark OLESEN authored
-
- Apr 26, 2018
-
-
mattijs authored
-
- Apr 25, 2018
-
-
mattijs authored
-
- Apr 26, 2018
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- bitSet::used() method for compatibility with code using the PackedBoolList typedef, but marked as deprecated.
-
Mark OLESEN authored
- with updated DynList that inherits from UList and uses List/FixedList internally for its memory management
-
Mark OLESEN authored
- since PackedBoolList is now a compatibility typedef for bitSet, it is useful to have an additional means of distinction. STYLE: simplify internal version tests and compiler defines. - the API version is now conveyed via the OPENFOAM define directly. The older OPENFOAM_PLUS define is provided for existing code.
-
- Apr 25, 2018
-
-
Mark OLESEN authored
- parsing error state only arises from a missing final newline in the file (which the dnl macro does not capture). Report with a warning instead of modifying the dnl macro since we generally wish to know about this anyhow. - add missing newline to YEqn.H file.
-
Andrew Heather authored
ENH: new bitSet class and improved PackedList class (closes #751) See merge request OpenFOAM-plus!200
-
Mark OLESEN authored
-
Mark OLESEN authored
- flags the following type of problems: * mismatches: keyword mismatch ( set of { brackets ) in the } entry; * underflow (too many closing brackets: keyword too many ( set of ) brackets ) in ) entry; - a missing semi-colon dict { keyword entry with missing semi-colon } will be flagged as 'underflow', since it parses through the '}' but did not open with it. Max monitoring depth is 60 levels of nesting, to avoid incurring any memory allocation.
-
- Apr 24, 2018
-
-
Mark OLESEN authored
- handling of dead links (find -L -delete unsupported) - remove ignore case flag on 's/../../i' used in have_scotch script. It is unneeded and not tolerated by Darwin's sed. - avoid embedded comments in EXE_INC (Make/options files), which do not work well with the OSX LLVM cpp. It strips out the comments but also removes the continuation char. STYLE: adjust notes about paraview library locations
-
Mark OLESEN authored
- size ambiguity for Foam::min(string::size_type, label) - stream operators for int16/uint16 which are needed for mode_t (Darwin)
-
- Apr 25, 2018
-
-
mattijs authored
-
- Apr 23, 2018
- Apr 24, 2018
-
-
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.
-
- Apr 23, 2018
-
-
Mark OLESEN authored
STYLE: change access methods names in mesh wave algorithms - nUnvisitedCells(), nUnvisitedFaces() etc instead of getUnsetCells(), getUnsetFaces() - simplify some coding with range-for
-
Mark OLESEN authored
- in 2.4.x the general default for polyMesh::findCell was FACE_DIAG_TRIS, but this was changed to CELL_TETS for better handling of concave cells. - in snappyHexMesh meshRefinement, findCell is used to define locations in mesh and cells for closer refinement. Using CELL_TETS causes an octree rebuild when the mesh has changed and this adds considerable overhead. For this operation, the faster FACE_DIAG_TRIS mode can be used instead.
-
- Apr 20, 2018
-
-
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
-
- Apr 19, 2018
-
-
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.
-
- Apr 05, 2018
-
-
Mark OLESEN authored
- in debug, also report the first 10 cell ids - format header documentation
-