OpenFOAM-plus merge requestshttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests2017-12-18T11:44:03Zhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/179finite area integration2017-12-18T11:44:03ZMark OLESENfinite area integrationThis merge includes the finite-area port from Hrvoje Jasak, a number of integration fixes and preliminary post-processing of finite area meshes/fields.
## References
[Tukovic, Z: The Finite Volume Method on Domains of Changeable Sh...This merge includes the finite-area port from Hrvoje Jasak, a number of integration fixes and preliminary post-processing of finite area meshes/fields.
## References
[Tukovic, Z: The Finite Volume Method on Domains of Changeable Shape, PhD
Thesis, University of Zagreb, Croatia, 2005](http://foam-extend.fsb.hr/wp-content/uploads/2017/01/Tukovic_PhD_2005.pdf)
Tuković, Željko; Jasak, Hrvoje.
A moving mesh finite volume interface tracking method for surface
tension dominated interfacial fluid flow. Computers & fluids. 55
(2012) ; 70-84 v1712Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/178minor improvements in profiling2017-12-01T14:52:57ZMark OLESENminor improvements in profilingissue #648
- include amount of free system memory in profiling, which can give an
indication of when swapping is about to start
- profilingSummary utility to collect profiling from parallel
calculations. Collects prof...issue #648
- include amount of free system memory in profiling, which can give an
indication of when swapping is about to start
- profilingSummary utility to collect profiling from parallel
calculations. Collects profiling information from processor
directories and summarize the time spent and number of calls as (max
avg min) values.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/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.v1806Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/172Feature arglist option aliases2017-11-23T09:27:35ZMark OLESENFeature arglist option aliasesAllows migration of command-line options, with versioning to track the 'age' of the changes.
Eg, if `-decomposeParDict` gets changed to something like `-decompose-dict`, but we still wish to accept the older name for it:
argList:...Allows migration of command-line options, with versioning to track the 'age' of the changes.
Eg, if `-decomposeParDict` gets changed to something like `-decompose-dict`, but we still wish to accept the older name for it:
argList::addOptionCompat("decompose-dict", { "decomposeParDict", 1612});
argList::addOptionCompat("no-function-objects", {"noFunctionObjects", 1612});
This emits a warning about the option being out of date, but will rewrite it with the newer option name, which is what would be referenced internally.v1712Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/167Feature function object field input2017-11-13T09:10:58ZAndrew HeatherFeature function object field inputEnabled use of wildcard entries when when specifying the `fields` entry for some function objects:
- `fieldMinMax`
- `residuals`
Also available for the `postProcess` utility/option, e.g.
```
postProcess -func fieldMinMax -fields '(".*"...Enabled use of wildcard entries when when specifying the `fields` entry for some function objects:
- `fieldMinMax`
- `residuals`
Also available for the `postProcess` utility/option, e.g.
```
postProcess -func fieldMinMax -fields '(".*")'
```
TODO: Update `surfaceFieldValue` and `volFieldValue` objectsv1712Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/165Feature field average windowing2017-11-13T08:59:37ZAndrew HeatherFeature field average windowingExtended the fieldAverage FO to include an 'exact' windowing method.
In earlier versions the window option generated a pseudo/approximate window average. The type must now be specified by the `windowType` entry, e.g. for backwards compa...Extended the fieldAverage FO to include an 'exact' windowing method.
In earlier versions the window option generated a pseudo/approximate window average. The type must now be specified by the `windowType` entry, e.g. for backwards compatibility, use :
```
windowType approximate;
```
and for the new `exact` window average
```
windowType exact;
```
Note that the `exact` method requires all instances of the field to be cached within the windowing interval, leading to increased memory usage, and also need to be written to enable a clean restart. To suppress writing of all intermediate field files (disabling smooth restart) use the option
```
allowRestart yes;
```v1712https://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/162dictionary compatibility/migration methods2017-11-08T19:55:08ZMark OLESENdictionary compatibility/migration methods- additional methods for handling changed keywords between version.
- old keywords are tagged with the version number to allow future culling of old content.
- minor adjustments to dictionary add/set method to make it easier to build sub...- additional methods for handling changed keywords between version.
- old keywords are tagged with the version number to allow future culling of old content.
- minor adjustments to dictionary add/set method to make it easier to build sub dictionaries on-the-fly without copying.v1712Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/160Improvements to token handling2017-11-07T14:16:22ZMark OLESENImprovements to token handling- code simplification, movable/swappable tokens, Pstreams tweak.- code simplification, movable/swappable tokens, Pstreams tweak.v1712Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/156low-level binary Ostream output, additional stream classes2017-10-24T14:23:33ZMark OLESENlow-level binary Ostream output, additional stream classes- Exposing low-level raw binary output for Ostream permits direct handling of indirect lists
- Additional memory-backed streams and DynamicList backed streams to special cases to avoid excessive string copying associated with using stri...- Exposing low-level raw binary output for Ostream permits direct handling of indirect lists
- Additional memory-backed streams and DynamicList backed streams to special cases to avoid excessive string copying associated with using string streams.v1712Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/154add support for KaHIP decomposition2017-10-11T15:36:50ZMark OLESENadd support for KaHIP decomposition- an alternative to metis and scotch.- an alternative to metis and scotch.v1712Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/152Feature list methods2017-10-11T15:34:22ZMark OLESENFeature list methodsVarious minor cleanups for lists:
- simplifications and extension to DynamicList (issue #595), notably reducing the number of template parameters and imposing instead a min allocation limit that avoids repeated re-allocation when resizi...Various minor cleanups for lists:
- simplifications and extension to DynamicList (issue #595), notably reducing the number of template parameters and imposing instead a min allocation limit that avoids repeated re-allocation when resizing small lists. A small list has been arbitrarily defined as being 16 elements.
- additional removal methods for DynamicList
- `find()` and `found()` methods for list containers, which provide some symmetry with hash containers and std::string. The `found()` method may be easier to read. Eg,
`list.found(val)` vs. `(findIndex(list, val) != -1)`
- added move constructors and move assignment for various containers.
- rebased edge on labelPair for more consistency with first/second access and to make sort/flip methods more generally available. Note that the current `edge::end()` has the misfortune of masking the underlying list iterators and thus prevents use of range-based fors with edges.v1712Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/146improve consistency in parsing primitives from strings2017-09-25T17:28:48ZMark OLESENimprove consistency in parsing primitives from stringsThe motivation is to provide a simpler and safer means of extracting integers and labels from strings. There are several benefits:
- catch bad label/scalar input for command-line options/arguments which may be human generated or via s...The motivation is to provide a simpler and safer means of extracting integers and labels from strings. There are several benefits:
- catch bad label/scalar input for command-line options/arguments which may be human generated or via scripts.
- easier/clear to work with when input has already been lexed, without using an IStringStream()
- work directly with C++ strings instead of C-string.
@andyv1712Sergio FerrarisSergio Ferrarishttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/141Feature surface field value operations2017-09-12T07:37:47ZMark OLESENFeature surface field value operations- add absolute weighting for surfaceFieldValue (issue #567).
Useful either for flow-rate weighting where backflow should be ignored or when surfaces have inconsistent orientation.
- support derived field pTotal for incompressible flow- add absolute weighting for surfaceFieldValue (issue #567).
Useful either for flow-rate weighting where backflow should be ignored or when surfaces have inconsistent orientation.
- support derived field pTotal for incompressible flowv1712Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/137Feature bash completion2017-08-09T09:57:15ZMark OLESENFeature bash completionThis change adds on-the-fly definition of bash completions for (FOAM_APPBIN) OpenFOAM applications. This makes it easier and less error-prone than recreating the bash_completions via a script and reduces the environment overhead compared...This change adds on-the-fly definition of bash completions for (FOAM_APPBIN) OpenFOAM applications. This makes it easier and less error-prone than recreating the bash_completions via a script and reduces the environment overhead compared to using separate functions for each application. It also makes it relatively easy to provide as a backport for previous OpenFOAM versions.
Tcsh users now get completion as well, but for efficiency the completion_cache should be pre-built (via the `bin/tools/foamCreateCompletionCache` script).
v1712Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/128Consistent use of string methods2017-07-21T15:04:37ZMark OLESENConsistent use of string methods- use more standard forms of string access. Eg, substr() instead of the operator()(...) form, or even resize().
- turn off underscore prefixing by default for word::validated()
- new SubStrings container and associated stringOps::split...- use more standard forms of string access. Eg, substr() instead of the operator()(...) form, or even resize().
- turn off underscore prefixing by default for word::validated()
- new SubStrings container and associated stringOps::split operator. This container may also be useful for writing simple parsers.v1712Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/124Feature dictionary scoping lvalue2017-10-29T15:36:08ZMark OLESENFeature dictionary scoping lvalue* Supports using '/' within dictionary scoping, which avoids the ambiguity of having a '.' which could mean scoping, or be part of a keyword.
* General dictionary searcher classes/methods for clearer searching semantics and to enable ad...* Supports using '/' within dictionary scoping, which avoids the ambiguity of having a '.' which could mean scoping, or be part of a keyword.
* General dictionary searcher classes/methods for clearer searching semantics and to enable addressing a dictionary entry as an lvalue.
* The `#remove` directive now functions across scopes
* Can specify a keyword with a defined scope. If needed, any intermediate dictionaries are created.
For example,
"/boundaryField/lowerWall/type" noSlip;
"/boundaryField/newBoundary" { type fixedValue; value uniform (0 0 0); }
Manage "one-shot" change of the inputMode.
For example,
#includeIfPresent "user-files"
...
#default value uniform 10;
vs.
#includeIfPresent "user-files"
#inputMode protect
...
value uniform 10;
#inputMode merge // _Assuming_ we actually had this before
v1712Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/122Feature post release cleaning2017-07-07T16:29:09ZMark OLESENFeature post release cleaningVarious code tidying up to use newer C++11 and 1706 features but would have been too late for the June code-freeze.
- FoamArch : combine from argList and regIOobject
- cleanup run-time selectables to use auto and cfind
- remove Name...Various code tidying up to use newer C++11 and 1706 features but would have been too late for the June code-freeze.
- FoamArch : combine from argList and regIOobject
- cleanup run-time selectables to use auto and cfind
- remove NamedEnum from loads of places.
- ABORT function object using a sub-list of Time stopAtControls enumeration
- degToRad() user literals and eliminate duplicate code
- streams :: name() - non-virtual
- MPI_BUFFER_SIZE, NAN, FPE setting via etc/controlDict, optionally via env-variables
- clamp handling for various tables (duplicate and untidy code)Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/118Integration of rhoPimpleAdiabaticFoam from CFD Sofware E+F GmbH2017-06-29T20:02:26ZSergio FerrarisIntegration of rhoPimpleAdiabaticFoam from CFD Sofware E+F GmbHSolver for low Mach no. flows with adiabatic thermodynamics and updated
pressure-velocity coupling given by the RCM interpolation procedure
described in
Knacke, T. (2013).
Potential effects of Rhie & Chow type interpolation...Solver for low Mach no. flows with adiabatic thermodynamics and updated
pressure-velocity coupling given by the RCM interpolation procedure
described in
Knacke, T. (2013).
Potential effects of Rhie & Chow type interpolations in airframe
noise simulations. In: Schram, C., Dénos, R., Lecomte E. (ed):
Accurate and efficient aeroacoustic prediction approaches for
airframe noise, VKI LS 2013-03.
Original code supplied by Thilo Knacke, CFD Software E+F GmbH
contact: info@cfd-berlin.com
Integrated into OpenFOAM by OpenCFD Ltd.Version v1706Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/117Integration of ihc wavemodels2017-06-15T10:38:26ZAndrew HeatherIntegration of ihc wavemodelsNew solitary wave models supplied by Gabriel Barajas, IH Cantabria:
- McCowan
- Grimshaw
Updated and integrated into OpenFOAM by OpenCFDNew solitary wave models supplied by Gabriel Barajas, IH Cantabria:
- McCowan
- Grimshaw
Updated and integrated into OpenFOAM by OpenCFDVersion v1706https://develop.openfoam.com/Development/OpenFOAM-plus/-/merge_requests/116Feature paraview vtk2017-06-14T13:16:19ZMark OLESENFeature paraview vtkLongstanding changes to OpenFOAM infrastructure for improving the handling of VTK output and paraview interfaces.
Follows up on work started with 1612 (the vtk output formatters). At that stage, we had introduced foam-vtk-cells in the...Longstanding changes to OpenFOAM infrastructure for improving the handling of VTK output and paraview interfaces.
Follows up on work started with 1612 (the vtk output formatters). At that stage, we had introduced foam-vtk-cells in the attempt to consolidate vtkTopo (from foamToVTK), some bits and pieces from a foamToVTU utility and of course the paraview reader module. Each of these did something somewhat similar: namely convert OpenFOAM volume meshes into VTK formats, plus some additional management of polyhedral decomposition (since VTK still isn't the best with these).
However, each of the applications have very slightly different requirements on the output format (legacy vs xml etc). Reducing the memory overhead and improving the overall performance of the paraview reader module was an additional driving factor. The latter becoming quite important if we wish to target a catalyst interface.
The key points of the updated infrastructure:
* dimensioning analysis for OpenFOAM -> VTK conversion now stored and encapsulated as foamVtuSizing.
* copying of OpenFOAM mesh types to VTK types is now done as a service method (algorithm) from foamVtuSizing, with storage being administer elsewhere outside of the class. This lets us target various combinations of output format (legacy, xml, vtk-internal) and storage primitives (int32, int64) and storage types (OpenFOAM List, std::vector, VTK storage classes) without code duplication. This lets us leverage the OpenFOAM infrastructure when populating the VTK classes and handle the different API sizings (eg, OpenFOAM label vs VTK vtkIdType) and the different mesh layouts with the minimal level of overhead.
* Revamped paraview reader module to cache the VTK grid and only shallow copy it when changing time-steps (when the OpenFOAM mesh itself doesn't change). The storage change also makes it easier to understand what the reader module is actually doing.
* Extended the formatting support for legacy and also xml formats.
* Now possible to emit VTU, VTP files from foamToVTK. This makes for easier loading of results and with xml formats we can start grouping multiblock files etc in the future.
* propagated the newer formatting options to reduce overall code clutter in most places where vtk output was being generated. This will still need more attention, but is largely complete.
@Sergio @Prashant - extra testing would be nice.Version v1706Andrew HeatherAndrew Heather