| ... | ... | @@ -4,13 +4,17 @@ |
|
|
|
[][upgrade-guide]
|
|
|
|
[][code-patterns]
|
|
|
|
|
|
|
|
***Preview information, subject to change at any time !!!***
|
|
|
|
|
|
|
|
[[_TOC_]]
|
|
|
|
|
|
|
|
## Deprecation and Removal
|
|
|
|
|
|
|
|
### Deprecated Models
|
|
|
|
### Boundary Conditions
|
|
|
|
|
|
|
|
The `exprFixed` and `exprMixed` boundary conditions are now marked
|
|
|
|
with run-time deprecation warning. The same functionality (and more)
|
|
|
|
is available with `uniformFixedValue` and `uniformMixed` boundary
|
|
|
|
conditions, respectively.
|
|
|
|
|
|
|
|
|
|
|
|
## Rename
|
|
|
|
|
| ... | ... | @@ -20,10 +24,21 @@ The Lagrangian function objects `patchPostProcessing` and |
|
|
|
`patchParticleHistogram` have been renamed as `particlePostProcessing` and
|
|
|
|
`particleHistogram`, respectively, to enhance clarity and understanding.
|
|
|
|
|
|
|
|
## Configuration / Environment
|
|
|
|
|
|
|
|
## Input Dictionaries
|
|
|
|
|
|
|
|
The fixed formatting and restricted precision for `#calc` and `#eval`
|
|
|
|
has been removed to avoid unnecessary rounding errors and loss of
|
|
|
|
precision. The string expansion should be more consistent when
|
|
|
|
expressions are evaluated.
|
|
|
|
|
|
|
|
|
|
|
|
### Expressions
|
|
|
|
|
|
|
|
- patch expressions can now use `normal()` to obtain the unit-normal
|
|
|
|
instead of writing `face()/area()`.
|
|
|
|
|
|
|
|
|
|
|
|
### Function object: `electricPotential`
|
|
|
|
|
|
|
|
The calculation and output of the electric field (`E`) can be enabled or
|
| ... | ... | @@ -31,6 +46,106 @@ disabled by using the optional keyword `electricField`, replacing the previous |
|
|
|
keyword `writeDerivedFields`. Also, the name of the electric field (`E`)
|
|
|
|
can now be specified using the new keyword `E`.
|
|
|
|
|
|
|
|
|
|
|
|
### Function objects: `yPlus`, `wallShearStress`
|
|
|
|
|
|
|
|
Both `yPlus` and `wallShearStress` now have an optional `writeFields`
|
|
|
|
flag that allows output of the volume fields to be disabled. This can
|
|
|
|
be useful to save disk space and improve speed when only
|
|
|
|
the logged information is of interest.
|
|
|
|
|
|
|
|
|
|
|
|
## Parallel
|
|
|
|
|
|
|
|
### More flexible handling of FOAM_IORANKS
|
|
|
|
|
|
|
|
- accept plain lists (space or comma separated) as well as the
|
|
|
|
traditional OpenFOAM lists. This simplifies argument handling with
|
|
|
|
job scripts.
|
|
|
|
For example,
|
|
|
|
```
|
|
|
|
simpleFoam -ioRanks 0,4,8 ...
|
|
|
|
```
|
|
|
|
versus
|
|
|
|
```
|
|
|
|
simpleFoam -ioRanks '(0 4 8)' ...
|
|
|
|
```
|
|
|
|
It is also possible to select the IO ranks on a per-host basis:
|
|
|
|
```
|
|
|
|
simpleFoam -ioRanks host ...
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Command-line specification of MPI threads
|
|
|
|
|
|
|
|
- Having MPI_THREAD_MULTIPLE is usually undesirable for performance
|
|
|
|
reasons, but in some cases may be necessary if a linked library
|
|
|
|
expects it. The `-mpi-threads` command-line option can be used to
|
|
|
|
explicitly request it.
|
|
|
|
|
|
|
|
|
|
|
|
### More details for parProfiling
|
|
|
|
|
|
|
|
The parProfiling now has more separation between different MPI
|
|
|
|
operations for more granularity in the information:
|
|
|
|
|
|
|
|
- broadcast times are separated from reduce/gather/scatter time
|
|
|
|
- general wait times vs all-to-all wait times
|
|
|
|
- supports invocation counts, with the requests time/count
|
|
|
|
separated from others (to avoid masking other counts)
|
|
|
|
|
|
|
|
|
|
|
|
## Finite-Area Improvements
|
|
|
|
|
|
|
|
The minimum edge-length checks have been more consistent and robuster
|
|
|
|
in the presence of small edges. Improved handling of 2D tensor
|
|
|
|
inversion makes for robuster least-square schemes in Finite Area.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Mesh Generation
|
|
|
|
|
|
|
|
### makeFaMesh
|
|
|
|
|
|
|
|
Additional heuristics have been added to handle multiply-connected
|
|
|
|
finite-area edges, which can arise at the centre of a "star"
|
|
|
|
connection or because the patch faces are actually baffles.
|
|
|
|
|
|
|
|
In serial case these internal edges are rather dubious in terms of
|
|
|
|
modelling, but when split across processor domains they cause
|
|
|
|
considerable trouble. Although there is not necessarily sufficient
|
|
|
|
information to uniquely determine connectivity, some remedial actions
|
|
|
|
to join edges is often possible. The extra _"dangling"_ edges are
|
|
|
|
relegated to an `ignore` patch so that they can be handled separately.
|
|
|
|
|
|
|
|
While these heuristics solve several problems encountered, more work
|
|
|
|
is still necessary.
|
|
|
|
|
|
|
|
|
|
|
|
## Mesh Checks / Post-processing
|
|
|
|
|
|
|
|
### checkMesh
|
|
|
|
|
|
|
|
- added a global topology check in checkMesh and makeFaMesh to detect
|
|
|
|
when boundary patches are multiply connected across edges.
|
|
|
|
|
|
|
|
- New `-write-edges` option for checkMesh: the topologically
|
|
|
|
questionable edges can be written to disk. This new functionality
|
|
|
|
can be a useful diagnostic aid (especially for finiteArea meshes,
|
|
|
|
which remain fragile in the presence of illegal edges).
|
|
|
|
|
|
|
|
|
|
|
|
### foamToVTK
|
|
|
|
|
|
|
|
When `foamToVTK` is run with the `-no-internal` and the `-no-boundary`
|
|
|
|
options, all loading and reporting of fields is suppressed, which
|
|
|
|
improves its speed significantly.
|
|
|
|
|
|
|
|
For regular conversion with fields, the loaded volume fields are
|
|
|
|
temporarily cached for reuse with point interpolation.
|
|
|
|
This reduces the input IO and improves the execution time.
|
|
|
|
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
[code-patterns]: /coding/patterns/patterns
|
| ... | ... | |