- Mar 15, 2018
-
-
Mark OLESEN authored
- also ensure fewer side-effects from inplaceReorder - provide ListOps::reorder especially for PackedList and PackedBoolList since they behave differently from regular lists.
-
- Mar 14, 2018
-
-
Mark OLESEN authored
- this also provides a better separation of the intent (ie, inserting a single value, or inserting multiply values)
-
- Mar 13, 2018
-
-
Mark OLESEN authored
- eliminate iterators from PackedList since they were unused, had lower performance than direct access and added unneeded complexity. - eliminate auto-vivify for the PackedList '[] operator. The set() method provides any required auto-vivification and removing this ability from the '[]' operator allows for a lower when accessing the values. Replaced the previous cascade of iterators with simpler reference class. PackedBoolList: - (temporarily) eliminate logic and addition operators since these contained partially unclear semantics. - 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. - more consistent use of PackedBoolList test(), set(), unset() methods for fewer operation and clearer code. Eg, if (list.test(index)) ... | if (list[index]) ... if (!list.test(index)) ... | if (list[index] == 0u) ... list.set(index); | list[index] = 1u; list.unset(index); | list[index] = 0u; - deleted the operator=(const labelUList&) and replaced with a setMany() method for more clarity about the intended operation and to avoid any potential inadvertent behaviour.
-
- Mar 07, 2018
-
-
Mark OLESEN authored
- consistency with other containers. Allows range-for, enables various std algorithms, and can be used with ListOp::create() with an iterator range.
-
- Mar 15, 2018
-
-
Mark OLESEN authored
- clockValue class for managing the clock values only, with a null constructor that does not query the system clock (can defer to later). Can also be used directly for +/- operations. - refactor clockTime, cpuTime, clock to reduce storage.
-
- Mar 14, 2018
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- make constexpr noexcept
-
- Mar 16, 2018
-
-
Andrew Heather authored
-
Andrew Heather authored
-
- Feb 23, 2018
-
-
Andrew Heather authored
-
Andrew Heather authored
-
- Mar 15, 2018
-
-
sergio authored
-
sergio authored
-
Mattijs Janssens authored
Feature shortest path set See merge request OpenFOAM-plus!151
-
mattijs authored
-
mattijs authored
-
- Mar 14, 2018
-
-
- now only seed boundary faces and an internal face of cell that itself has a blocked face.
-
Mark OLESEN authored
- provides a simple means of writing an internal dimensioned field when fvMesh is not available (eg, during mesh creation).
-
mattijs authored
-
mattijs authored
-
- Mar 12, 2018
- Mar 08, 2018
- Feb 21, 2018
-
-
mattijs authored
-
- Mar 07, 2018
-
-
Mark OLESEN authored
-
Mark OLESEN authored
-
Andrew Heather authored
Feature memory containers See merge request OpenFOAM-plus!192
-
- Mar 06, 2018
-
-
Andrew Heather authored
-
- Mar 05, 2018
-
-
Mark OLESEN authored
- primary points for an external user are the polyMesh constructor - add config info for gcc-7.3.0 COMP: intel-2017. Ignore unknown pragmas. Disambiguate method resolution.
-
Mark OLESEN authored
This class is largely a pre-C++11 holdover. It is now possible to simply use move construct/assignment directly. In a few rare cases (eg, polyMesh::resetPrimitives) it has been replaced by an autoPtr.
-
- Feb 28, 2018
-
-
Mark OLESEN authored
- downgrades some diagnostics about nonconformant code from errors to warnings. Oddly enough, the errors actually arise from STL library elements shipped with gcc itself. Affects kahip compilation with gcc-6, gcc-7
-
Mark OLESEN authored
-
Mark OLESEN authored
-
Mark OLESEN authored
- rvalue() is a (transitional) means of converting Xfer content to a reference for move construct, move assign semantics. - valid() method for consistency with autoPtr and tmp classes
-
- Feb 27, 2018
-
-
Mark OLESEN authored
STYLE: simplified output logic, reduced duplicate code in CompactIOList
-
- Feb 26, 2018
-
-
Mark OLESEN authored
-
Mark OLESEN authored
Improve alignment of its behaviour with std::shared_ptr - element_type typedef - swap, reset methods * additional reference access methods: cref() returns a const reference, synonymous with operator(). This provides a more verbose alternative to using the '()' operator when that is desired. Mnemonic: a const form of 'ref()' constCast() returns a non-const reference, regardless if the underlying object itself is a managed pointer or a const object. This is similar to ref(), but more permissive. Mnemonic: const_cast<> Using the constCast() method greatly reduces the amount of typing and reading. And since the data type is already defined via the tmp template parameter, the type deduction is automatically known. Previously, const tmp<volScalarField>& tfld; const_cast<volScalarField&>(tfld()).rename("name"); volScalarField& fld = const_cast<volScalarField&>(tfld()); Now, ...
-
Mark OLESEN authored
Improve alignment of its behaviour with std::unique_ptr - element_type typedef - release() method - identical to ptr() method - get() method to get the pointer without checking and without releasing it. - operator*() for dereferencing Method name changes - renamed rawPtr() to get() - renamed rawRef() to ref(), removed unused const version. Removed methods/operators - assignment from a raw pointer was deleted (was rarely used). Can be convenient, but uncontrolled and potentially unsafe. Do allow assignment from a literal nullptr though, since this can never leak (and also corresponds to the unique_ptr API). Additional methods - clone() method: forwards to the clone() method of the underlying data object with argument forwarding. - reset(autoPtr&&) as an alternative to operator=(autoPtr&&) STYLE: avoid implicit conversion from autoPtr to object type in many places - existing implementation has the following: operator const T&() const { return operator*(); } which means that the following code works: autoPtr<mapPolyMesh> map = ...; updateMesh(*map); // OK: explicit dereferencing updateMesh(map()); // OK: explicit dereferencing updateMesh(map); // OK: implicit dereferencing for clarity it may preferable to avoid the implicit dereferencing - prefer operator* to operator() when deferenced a return value so it is clearer that a pointer is involve and not a function call etc Eg, return *meshPtr_; vs. return meshPtr_();
-