openfoam merge requestshttps://develop.openfoam.com/Development/openfoam/-/merge_requests2018-02-23T10:34:43Zhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/177several improvements for linked-lists2018-02-23T10:34:43ZMark OLESENseveral improvements for linked-lists- support move construct/assignment for linked-lists themselves
and when moving into a 'normal' list
- better consistency with begin/end signatures and the various
iterators.- support move construct/assignment for linked-lists themselves
and when moving into a 'normal' list
- better consistency with begin/end signatures and the various
iterators.v1806AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/192Feature memory containers2018-03-07T16:58:10ZMark OLESENFeature memory containersA fundamental cleanup of autoPtr, tmp and Xfer containers.
- modified the autoPtr to more closely resemble the interface and behaviour of std::unique_ptr, but with some legacy behaviour still available: a copy constructor that acts li...A fundamental cleanup of autoPtr, tmp and Xfer containers.
- modified the autoPtr to more closely resemble the interface and behaviour of std::unique_ptr, but with some legacy behaviour still available: a copy constructor that acts like a move constructor, a copy assign that acts like a move assign, a implicit cast to the underlying data type.
- modifying tmp to resemble std::shared_ptr is not easily possible or 100% desirable (we use it both for a shared_ptr behaviour and also to hold a const-ref of externally allocated fields etc).
- removed use of Xfer entirely, since it is now possible to accomplish the same with movable copy/assign (with lower overhead) or an autoPtr.
See issue #639v1806AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/151Feature shortest path set2018-03-15T10:18:39ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comFeature shortest path setMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/193Updated/modified PtrList implementation2018-03-26T17:41:42ZMark OLESENUpdated/modified PtrList implementation- re-implement lowest-level with PtrListDetail to allow access to protected List methods
- new PtrDynList class: for a dynamically resizable PtrList with memory management.
- NO UPtrDynList since this is probably not needed and a plain...- re-implement lowest-level with PtrListDetail to allow access to protected List methods
- new PtrDynList class: for a dynamically resizable PtrList with memory management.
- NO UPtrDynList since this is probably not needed and a plain `DynamicList<T*>` can also be used in a pinch.v1806Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/194ENH: reduce profiling overhead (issue #764)2018-03-27T15:39:02ZMark OLESENENH: reduce profiling overhead (issue #764)- avoid clockTime in favour of clockValue.
- avoid allocations when profiling is not active.
- replace hashing with manual pointer lists- avoid clockTime in favour of clockValue.
- avoid allocations when profiling is not active.
- replace hashing with manual pointer listsv1806AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/195Feature catalyst2018-04-03T19:22:48ZMark OLESENFeature catalystIntegration of ParaView Catalyst (issue #705) via a function object.Integration of ParaView Catalyst (issue #705) via a function object.v1806Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/196more consistent use of dimensioned Zero2018-04-03T19:30:32ZMark OLESENmore consistent use of dimensioned ZeroReduced clutter when creating and zero initializing volume fieldsReduced clutter when creating and zero initializing volume fieldsv1806Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/197STYLE: use 'return nullptr' for empty autoPtr/tmp returns2018-04-03T19:32:53ZMark OLESENSTYLE: use 'return nullptr' for empty autoPtr/tmp returnsReduces code clutter.Reduces code clutter.v1806Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/198Feature wmake2018-04-11T11:35:11ZMark OLESENFeature wmakeIntroduce C++-based make depend parser (using ragel FSM parser) to address #784, but also to reduce some dependency on Flex (which may be out of date on some systems).Introduce C++-based make depend parser (using ragel FSM parser) to address #784, but also to reduce some dependency on Flex (which may be out of date on some systems).v1806Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/199Style iostream option2018-04-18T16:23:30ZMark OLESENStyle iostream option- Minor adjustments to the internal layout and management of IOstream options (format, compression, version) with a change in the underlying enum type from `int` to `char`. Shaves off a few bytes for each stream.
- Bundling the stream...- Minor adjustments to the internal layout and management of IOstream options (format, compression, version) with a change in the underlying enum type from `int` to `char`. Shaves off a few bytes for each stream.
- Bundling the stream options might also be useful in the future to pass around as an opaque structure `IOstreamOption`, but haven't fully explored how much benefit this would bring.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/200ENH: new bitSet class and improved PackedList class (closes #751)2018-04-25T10:40:00ZMark OLESENENH: new bitSet class and improved PackedList class (closes #751)- 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 ...- 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());
}
v1806AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/201Feature regionsplit2018-04-30T10:21:46ZMark OLESENFeature regionsplitv1806Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/205Feature iso advector AMR2018-06-13T13:44:39ZJohan RoenbyFeature iso advector AMR1. interIsoFoam rewritten based on the new interFoam including DyM functionality.
2. isoAdvection, isoCutFace and isoCutCell classes modified to work with AMR (dynamicRefineFvMesh).
3. Refactoring of isoAdvection, isoCutFace and isoCut...1. interIsoFoam rewritten based on the new interFoam including DyM functionality.
2. isoAdvection, isoCutFace and isoCutCell classes modified to work with AMR (dynamicRefineFvMesh).
3. Refactoring of isoAdvection, isoCutFace and isoCutCell (not related to AMR functionality).
4. Included damBreakWithObstacle test case for interIsoFoam with dynamicRefineFvMesh.
5. Added discInConstantFlowCyclicBC case for interIsoFoam to confirm proper behaviour with cyclic BC's (not AMR related).
I have tested the changes by compiling, running all interIsoFoam tutorials and verified visually that everything looks OK.
Known issue: isoCutFace sometimes gives a warning related to an edge being cut multiple times by the isoFace (There are around 20 such warnings in the damBreakWithObstacle log). It does not seem to have any effect on the results. I have not so far been able to locate the cause of these warnings.
Best regards
Johanv1806AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/207ENH: add foamRestoreFields utility (issue #877)2018-06-18T12:13:41ZMark OLESENENH: add foamRestoreFields utility (issue #877)- "Restore" field names by removing the ending.
Useful, for example, to change a UMean to U field for further
calculation.- "Restore" field names by removing the ending.
Useful, for example, to change a UMean to U field for further
calculation.AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/206ENH: vtkCloud function object (issue #866)2018-06-18T12:22:37ZMark OLESENENH: vtkCloud function object (issue #866)- writes lagrangian data in VTP format during a simulation.
In parallel, all data are written from the master.
- also emits a file series (supported by paraview 5.5 and later), which helps maintain a correspondence between VTK files a...- writes lagrangian data in VTP format during a simulation.
In parallel, all data are written from the master.
- also emits a file series (supported by paraview 5.5 and later), which helps maintain a correspondence between VTK files and their time values.v1806AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/204Feature ico reacting multiphase inter foam dev2018-06-21T07:28:49ZSergio FerrarisFeature ico reacting multiphase inter foam devnew icoReactingMultiphaseInterFoam and new laser DTRM models.
This is an incompressible solver which can handle mass/heat exchange between phases and multi-species inside
each phasenew icoReactingMultiphaseInterFoam and new laser DTRM models.
This is an incompressible solver which can handle mass/heat exchange between phases and multi-species inside
each phasehttps://develop.openfoam.com/Development/openfoam/-/merge_requests/210Feature processor level of detail (LOD)2018-06-25T07:55:22ZAdminFeature processor level of detail (LOD)Adds a new method to calculate processor distribution maps as an alternative to the AABBTree; currently available to the mapFieldsPar utility via a new command line optionAdds a new method to calculate processor distribution maps as an alternative to the AABBTree; currently available to the mapFieldsPar utility via a new command line optionv1806https://develop.openfoam.com/Development/openfoam/-/merge_requests/208STYLE: separate areaNormal/unitNormal method for primitives (issue #885)2018-06-26T11:58:59ZMark OLESENSTYLE: separate areaNormal/unitNormal method for primitives (issue #885)- This is the first stage of transition. Provides `areaNormal()` and `unitNormal()` for mesh primitives, but does not uses these outside of its own class.- This is the first stage of transition. Provides `areaNormal()` and `unitNormal()` for mesh primitives, but does not uses these outside of its own class.v1806AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/211coordinate system improvements2018-10-11T15:32:04ZMark OLESENcoordinate system improvementsReworked coordinate systems and rotations API.Reworked coordinate systems and rotations API.v1812Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/215Feature patch function12018-10-29T09:44:31ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comFeature patch function1Has PatchFunction1:
- all of Function1
- mappedFile (equivalent/replacement of timeVaryingMapped)Has PatchFunction1:
- all of Function1
- mappedFile (equivalent/replacement of timeVaryingMapped)Mark OLESENMark OLESEN