mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
added first draft of ReleaseNotes-1.6
- IMO we should retain ReleaseNotes-1.5 and distribute it with OpenFOAM-1.6 as well.
This commit is contained in:
213
ReleaseNotes-1.6
Normal file
213
ReleaseNotes-1.6
Normal file
@ -0,0 +1,213 @@
|
||||
# -*- mode: org; -*-
|
||||
#
|
||||
#+TITLE: OpenFOAM release notes for version 1.6
|
||||
#+AUTHOR: OpenCFD Ltd.
|
||||
#+DATE: 29 August 2009
|
||||
#+LINK: http://www.opencfd.co.uk
|
||||
#+OPTIONS: author:nil ^:{}
|
||||
|
||||
|
||||
* Regular Expressions
|
||||
+ new regExp class: support for accessing POSIX extended regular
|
||||
expresssions from within OpenFOAM.
|
||||
|
||||
+ new wordRe class: can contain a word or a regExp.
|
||||
The match() method matches appropriately (as word or regExp).
|
||||
|
||||
+ new stringListOps: search string lists based on regular expressions, wordRe
|
||||
or wordReList.
|
||||
|
||||
+ Istream and Ostream now retain backslashes when reading/writing strings.
|
||||
The backslash continues to be used as an escape character for double-quote
|
||||
and newline, but otherwise get passed through "as-is" without any other
|
||||
special meaning (ie, they are *not* C-style strings). This especially
|
||||
helps with input/output of regular expressions.
|
||||
|
||||
|
||||
* Dictionary improvements/changes
|
||||
+ dictionaries can use words (unquoted) or regular expressions (quoted)
|
||||
for their keywords. When searching, an exact match has priority
|
||||
over a regular expression match.
|
||||
|
||||
+ The default inputMode is now 'merge', which corresponds to the most
|
||||
general usage. The inputMode 'warn' corresponds to the previous default
|
||||
behaviour.
|
||||
|
||||
+ The new inputMode 'protect' can be used to conditionally merge default
|
||||
values into existing dictionaries.
|
||||
|
||||
+ new digest() method to calculate and return the SHA1 message digest
|
||||
|
||||
|
||||
* Improved List containers
|
||||
+ It is now possible to append a UList to an existing List or DynamicList.
|
||||
|
||||
+ DynamicList is now much more flexible. It can be used with the append()
|
||||
method, or with the setSize() method and operator[], as per List.
|
||||
DynamicList also has more methods for adjusting the space allocated.
|
||||
|
||||
+ SortableList now uses stable sort and allows reverseSort as well.
|
||||
SortableList is also more versatile - the indices mostly remain
|
||||
unallocated until they are required in the sort() method.
|
||||
The sort indices can be deallocated with the shrink() method.
|
||||
Works as expected with transfer() and assignment from other Lists.
|
||||
|
||||
+ specialization for UList<bool>::operator[](..) const to return false for
|
||||
out-of-range elements. This allows lazy evaluation with no noticeable
|
||||
change in performance.
|
||||
|
||||
+ PackedList has much better performance, lazy evaluation and auto-vivify
|
||||
of elements on assignment. Any auto-vivified elements will also
|
||||
flood-fill the gaps with zero. The append() method can be used like in
|
||||
DynamicList to append a single element. The set() method can be used
|
||||
like in labelHashSet.
|
||||
|
||||
+ new UIndirectList for an indirect list without storing the addressing.
|
||||
|
||||
|
||||
* New hashing algorithms
|
||||
+ Bob Jenkins' hash routine for performance improvement (5-10% faster for
|
||||
string hashing than the previous algorithm) and fewer collisions.
|
||||
|
||||
+ SHA1 hashing and SHA1 message digests (NIST specification FIPS-180-1)
|
||||
added. The SHA1 digest provides a compact (20 bytes) means of
|
||||
determining if the contents of an object have changed. The OSHA1stream
|
||||
can be used to calculate SHA1 digests for anything that can write to an
|
||||
output stream.
|
||||
|
||||
|
||||
* HashTable/HashSet improvements
|
||||
+ Performance improvements for querying on empty tables
|
||||
|
||||
+ The erase() method can take a list of keys or the keys from any
|
||||
another HashTable/HashSet.
|
||||
|
||||
+ HashSet has an operator[]() const that allows the same syntax
|
||||
to be used for boolList, PackedBoolList and labelHashSet.
|
||||
|
||||
+ HashSet has additional operators '+=', '-=', '&=' to add, remove or
|
||||
intersect keys, respectively.
|
||||
|
||||
|
||||
* Improved bool/Switch
|
||||
+ Switch: reduced the storage to be on par with bool.
|
||||
It is now more flexible and behaves much more like a bool.
|
||||
|
||||
+ bool: IO uses Switch internally so the end-user doesn't need to know if
|
||||
a particular class used bool or Switch internally.
|
||||
|
||||
|
||||
* Miscellaneous container class improvments
|
||||
+ boost-style StaticAssert added.
|
||||
Useful to catch invalid template sizes, for example.
|
||||
|
||||
+ various containers now have C++0x-style cbegin(), cend() iterator methods.
|
||||
|
||||
+ various containers now have STL-style empty() method, which may be more
|
||||
readable than !size() or !valid().
|
||||
|
||||
+ various containers now have an xfer() method for yielding their contents
|
||||
to a corresponding Xfer class.
|
||||
|
||||
|
||||
* New surfMesh library
|
||||
Provides a more efficient storage mechanism than possible with triSurface
|
||||
without restrictions on the shape of the face (templated parameter).
|
||||
It will however take quite some time before it can fully replace triSurface.
|
||||
|
||||
+ MeshedSurface class: with zero or more contiguous surfZones.
|
||||
|
||||
+ UnsortedMeshedSurface class: unordered surface zones (as per triSurface)
|
||||
|
||||
+ surfMesh class: for reading/writing in native OpenFOAM format
|
||||
|
||||
|
||||
* New Xfer class
|
||||
Provides finer grained control over copying or transferring objects with
|
||||
very little overhead. It can be used for any object that has a transfer()
|
||||
method and a operator=() copy method.
|
||||
Since it is decided upon construction of the Xfer object whether the
|
||||
parameter is to be copied or transferred, the contents of the resulting
|
||||
Xfer object can be transferred unconditionally. This greatly simplifies
|
||||
defining constructors or methods in other classes with mixed
|
||||
transfer/copy semantics without requiring 2^N different versions.
|
||||
|
||||
+ xferCopy(), xferMove() and xferCopyTo(), xferMoveTo() functions
|
||||
to ease the use of the Xfer class.
|
||||
|
||||
|
||||
* Improvements for functionObjects and time-looping
|
||||
+ The functionObjectList retains the order of the functionObject order,
|
||||
which allows a chaining of operations. It is thus internally more
|
||||
efficient when system/controlDict uses functions {..} instead of
|
||||
functions (..), but the both forms are supported.
|
||||
|
||||
+ The functionObjects now have an additional end() method that gets called
|
||||
when Time::loop() or Time::run() determines that the time-loop exits.
|
||||
Accordingly, one of these two idioms should be used in solver code:
|
||||
1. while (runTime.loop() { ... }
|
||||
2. while (runTime.run()) { runTime++; ... }
|
||||
|
||||
+ functionObjectList now tracks the SHA1 message digest of the
|
||||
sub-directories. This avoids reloading a functionObject when something
|
||||
unrelated in system/controlDict changed.
|
||||
|
||||
|
||||
* Solver control improvments
|
||||
Use dictionary entries instead of an Istream for the solver controls.
|
||||
+ allows dictionary substitutions and regular expressions in
|
||||
system/fvSolution
|
||||
|
||||
+ old solver control syntax is still supported (warning emitted), but the
|
||||
foamUpgradeFvSolution application can be used to convert
|
||||
system/fvSolution to the new format.
|
||||
|
||||
|
||||
* Convenience changes
|
||||
+ IOobject: new constructor for creating an IOobject from a
|
||||
single-path specification (eg, see blockMesh -dict option).
|
||||
|
||||
+ argList: convenience methods for accessing options more directly.
|
||||
option(), optionFound(), optionLookup(), optionRead(),
|
||||
optionReadIfPresent().
|
||||
|
||||
+ readList(Istream&) can read a bracket-delimited list or handle a single
|
||||
value as a list of size 1. This can be a useful convenience when
|
||||
processing command-line options.
|
||||
|
||||
|
||||
* Misc. improvements
|
||||
+ improved consistency and interoperability between face and triFace classes.
|
||||
|
||||
+ face::triangles() can split and append to a DynamicList
|
||||
|
||||
+ coordinateSystems can access global systems (similar to MeshObject)
|
||||
|
||||
|
||||
* Improvements to utilities
|
||||
+ blockMesh: -dict option for specifying an alternative dictionary for the
|
||||
block mesh description. The 'convertToMeters' entry is now optional, and
|
||||
the alternative 'scale' entry can be used for less typing.
|
||||
|
||||
+ foamToEnsight: the -noPatches option suppresses generation of patches
|
||||
|
||||
+ foamToEnsightParts: the -noMesh option and the -index option can
|
||||
be used when post-processing incrementally.
|
||||
|
||||
+ timeSelector: can combine -time ranges and -latestTime options. More
|
||||
reliable behaviour for cases missing constant/ or 0/ directories. When
|
||||
the -noZero option is available, -latestTime will not select the 0/
|
||||
directory unless the -zeroTime option is also given. This helps avoid
|
||||
ill effects caused by accidentally using the 0/ directory for certain
|
||||
utilities (eg, reconstructPar).
|
||||
|
||||
|
||||
* Improvements to Paraview reader module
|
||||
+ PV3FoamReader: added mesh region handling. The region name is parsed
|
||||
from the filename. Eg, case{region}.OpenFOAM
|
||||
|
||||
+ paraFoam: new -region option for specifying an alternative region. A new
|
||||
-touch option to generate the .OpenFOAM file only. Only creates (and
|
||||
removes) .OpenFOAM files if they didn't already exist, which is useful
|
||||
in connection with the -touch option.
|
||||
|
||||
Reference in New Issue
Block a user