mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Moved ReleaseNotes-2.0.0 to OpenFOAM-nonRelease/doc/
This commit is contained in:
@ -1,356 +0,0 @@
|
||||
# -*- mode: org; -*-
|
||||
#
|
||||
#+TITLE: OpenFOAM release notes for version 2.0.0
|
||||
#+AUTHOR: OpenCFD Ltd.
|
||||
#+DATE: TBA
|
||||
#+LINK: http://www.openfoam.com
|
||||
#+OPTIONS: author:nil ^:{}
|
||||
# Copyright (c) 2011 OpenCFD Ltd.
|
||||
|
||||
* Overview
|
||||
OpenFOAM-2.0.0 is the latest major release of OpenFOAM including many new
|
||||
developments and a number of bug-fixes. This release passes our standard
|
||||
tests and the tutorials have been broadly checked. Please report any bugs
|
||||
by following the link: http://www.openfoam.com/bugs.
|
||||
|
||||
* GNU/Linux version
|
||||
This release of OpenFOAM is distributed primarily in 2 ways: (1) as a Debian
|
||||
pack containing binaries and source; (2) from the SourceForge source code
|
||||
repository (see [[./README.org][README]]).
|
||||
|
||||
The Ubuntu/Debian pack is available for 32 and 64 bit versions of the 10.10
|
||||
and 11.04 LTS operating system using the system compiler and libraries that
|
||||
will be installed automatically from standard Debian packs.
|
||||
|
||||
To use the source version from the SourceForge repository, we provide a source
|
||||
pack of third-party packages that can be compiled on the user's system. This
|
||||
does not include =gcc=, since the system installed version is typically
|
||||
sufficient, but includes =paraview-3.10.1=, =openmpi-1.5.3=, and
|
||||
=scotch_5.1.11=
|
||||
|
||||
* Library developments
|
||||
|
||||
There have been a number of developments to the libraries to support the
|
||||
extension of functionality in solver and utility applications.
|
||||
*** Core library
|
||||
+ Large number of code refinements and consistency improvements to support
|
||||
other developments.
|
||||
+ Parallel : using non-blocking communications wherever possible. This will
|
||||
lead to lower requirements for MPI_BUFFER_SIZE and possibly better
|
||||
start-up performance on larger numbers of processors.
|
||||
*** Turbulence modelling
|
||||
*** *Updated* thermophysical libraries
|
||||
+ Now use the more descriptive dictionary input format, e.g. for a single
|
||||
component mixture:
|
||||
#+BEGIN_SRC c++
|
||||
thermoType hPsiThermo<pureMixture<sutherlandTransport<specieThermo<hConstThermo<perfectGas>>>>>;
|
||||
|
||||
mixture
|
||||
{
|
||||
equationOfState
|
||||
{
|
||||
nMoles 1;
|
||||
molWeight 28.9;
|
||||
}
|
||||
thermodynamics
|
||||
{
|
||||
Cp 1007;
|
||||
Hf 0;
|
||||
}
|
||||
transport
|
||||
{
|
||||
As 1.4792e-06;
|
||||
Ts 116;
|
||||
}
|
||||
}
|
||||
#+END_SRC
|
||||
*** *Updated* particle tracking algorithm
|
||||
+ uses non-blocking parallel transfers
|
||||
+ does 'minimum-tet' decomposition of face to work with warped faces
|
||||
(snappyHexMesh!)
|
||||
+ reuses tracking state in interpolation - improves consistency and speed
|
||||
*** Lagrangian intermediate library
|
||||
+ Extensively updated
|
||||
+ *Updated* input format
|
||||
+ Extended to include steady cloud tracking
|
||||
+ Semi-implicit treatment for particle sources
|
||||
+ *New* collision modelling
|
||||
+ Particle forces overhauled
|
||||
+ *New* Paramagnetic force
|
||||
+ *New* Brownian-motion force
|
||||
+ *New* sub-models
|
||||
+ nonSphereDrag: drag model to account for non-spherical particles
|
||||
+ *Updated* sub-models
|
||||
+ Injection models: injection for injector nozzles
|
||||
+ Devolatilisation models: now act on a per-specie basis
|
||||
+ Cloud function objects
|
||||
+ facePostProcessing: Particle/mesh face post-processing
|
||||
+ particleTracks: post-processing model to generate track data, typically
|
||||
during steady calculations
|
||||
+ *Coupled* to new surface film modelling library
|
||||
*** *New* Surface film library
|
||||
+ Creation of films by particle addition, or initial film distribution
|
||||
+ Coupled with the lagrangian/intermediate cloud hierarchy library
|
||||
+ Hierarchical design, consisting of
|
||||
+ kinematic film: mass, momentum
|
||||
+ constant thermodynamic properties
|
||||
+ thermodynamic film: mass, momentum and enthalpy
|
||||
+ constant, or temperature dependant thermodynamic properties
|
||||
+ Sub-models:
|
||||
+ detachment/dripping whereby particles (re)enter the originating cloud
|
||||
+ particle sizes set according to PDF
|
||||
+ other properties set to ensure mass, momentum and energy conservation
|
||||
+ forces
|
||||
+ many pressure- and stress-based forces including, e.g. contact
|
||||
angle force for rivulet flow
|
||||
+ heat transfer to/from walls and film surface
|
||||
+ film evaporation and boiling
|
||||
+ Additional wall functions for primary region momentum and temperature
|
||||
taking film into account
|
||||
+ Coupling to *New* pyrolysis library
|
||||
+ Parallel aware
|
||||
*** *New* Pyrolysis library
|
||||
+ ...
|
||||
|
||||
*** DSMC
|
||||
*** Dynamic Mesh
|
||||
*** Numerics
|
||||
*** *Updated* command line help, e.g. `snappyHexMesh -help' now gives:
|
||||
#+BEGIN_SRC c++
|
||||
Usage: snappyHexMesh [OPTIONS]
|
||||
options:
|
||||
-case <dir> specify alternate case directory, default is the cwd
|
||||
-overwrite overwrite existing mesh/results files
|
||||
-parallel run in parallel
|
||||
-srcDoc display source code in browser
|
||||
-doc display application documentation in browser
|
||||
-help print the usage
|
||||
#+END_SRC
|
||||
*** *New* basicSolidThermo solids thermophysical library
|
||||
+ Used in all conjugate heat transfer solvers
|
||||
+ constant properties
|
||||
+ temperature dependent properties
|
||||
+ temperature and direction (in local coordinate system) dependent
|
||||
properties
|
||||
*** *New* ptscotch decomposition method.
|
||||
*** *New* multiLevel decomposition method.
|
||||
Decomposes in levels, e.g. first decompose onto number of nodes and
|
||||
then onto number of cores per node. This will minimise off-node
|
||||
communication. Each level can use any of the other decomposition methods
|
||||
*** *New* structured decomposition method.
|
||||
Does a 2D decomposition of a mesh. Valid only for an 'extruded' mesh, i.e.
|
||||
columns of cells originating from a patch. Bases decomposition on this
|
||||
patch and assigns the cells according to the patch decomposition.
|
||||
*** *Updated* scotch decomposition method to run in parallel by doing
|
||||
decomposition on the master. Unfortunately scotch and ptscotch cannot
|
||||
be linked in to the same executable.
|
||||
*** *Updated* simple decomposition method to run in parallel by doing
|
||||
decomposition on the master.
|
||||
*** *Updated* decomposePar maps polyPatches instead of recreating them so
|
||||
polyPatches holding data can map the data.
|
||||
*** *Updated* split cyclics into two separate patches.
|
||||
+ *New* cyclics (and all coupled patches) have optional
|
||||
matchTolerance entry to allow looser area matching tolerance.
|
||||
+ *Updated* interpolation (volPointInterpolation) now works without the
|
||||
globalPointPatch. Moving mesh cases can now be run non-parallel and
|
||||
continued in parallel and reconstructed without any limitation.
|
||||
*** *New* compact binary I/O for faces and cells.
|
||||
This speeds up reading/writing meshes in binary. Binary mesh reading
|
||||
is backwards (but not forwards) compatible. Use ascii mesh format or
|
||||
foamFormatConvert.
|
||||
*** *Updated* runTimeModifiable
|
||||
+ user selectable model to use for checking run-time modifiable
|
||||
dictionaries (see also doc/changes/inotify.txt):
|
||||
+ timeStamp : use time stamp as before
|
||||
+ inotify : use inotify instead of time stamp
|
||||
+ timeStampMaster : only master checks and reads file. Slaves get file
|
||||
contents from master.
|
||||
+ inotifyMaster : only master checks and reads file. Slaves get file
|
||||
contents from master.
|
||||
+ on linux optionally uses inotify instead of time stamps - more efficient
|
||||
for large numbers of monitored files. No more fileModificationSkew needed.
|
||||
+ single integer reduction instead of one reduction per monitored file.
|
||||
+ only files that can be re-read are being checked by specifying
|
||||
in the IOobject constructor MUST_READ_IF_MODIFIED instead of
|
||||
MUST_READ. Drastic reduction of number of files to check.
|
||||
*** *New* #codeStream dictionary entry
|
||||
Uses dynamic compilation of OpenFOAM C++ code to construct dictionary.
|
||||
E.g. in blockMeshDict:
|
||||
#+BEGIN_SRC c++
|
||||
convertToMeters 0.001;
|
||||
|
||||
vertices #codeStream
|
||||
{
|
||||
code
|
||||
#{
|
||||
label nVerts =
|
||||
readLabel(dict.lookup("nx"))
|
||||
*readLabel(dict.lookup("ny"))
|
||||
*readLabel(dict.lookup("nz"));
|
||||
pointField verts(nVerts);
|
||||
// Now fill verts here
|
||||
// ..
|
||||
os << verts;
|
||||
#};
|
||||
}
|
||||
#+END_SRC
|
||||
See also ./[[doc/changes/dynamicCode.org]]
|
||||
|
||||
* Solvers
|
||||
A number of new solvers have been developed for a range of engineering
|
||||
applications. There has been a set of improvements to certain classes of
|
||||
solver that are introduced in this release.
|
||||
*** *New* Solvers
|
||||
+ =reactingParcelFilmFoam=: Lagrangian cloud and film transport in a
|
||||
reacting gas phase system
|
||||
+ =steadyReactingParcelFoam=: Steady solution of cloud and reacting systems
|
||||
using local time stepping methods
|
||||
*** Modifications to multiphase and buoyant solvers
|
||||
+ ...
|
||||
*** Modifications to solvers for sensible enthalpy
|
||||
+ ...
|
||||
*** Modifications to steady-state compressible solvers
|
||||
+ ...
|
||||
*** Other modifications
|
||||
+ ...
|
||||
|
||||
* Boundary conditions
|
||||
New boundary conditions have been introduced to support new applications in
|
||||
OpenFOAM.
|
||||
+ *New* wall functions:
|
||||
+ kappatJayatillekeWallFunction: incompressible RAS thermal wall function
|
||||
+ directMappedFixedValue:
|
||||
+ takes interpolationScheme so can interpolate instead of always getting
|
||||
cell value
|
||||
+ takes optional fieldName to sample
|
||||
+ directMapped patch added 'normal' method to calculate sample points
|
||||
to e.g. sample fields just above wall (e.g. for streaklines)
|
||||
+ *New* codedFixedValue: Uses the dynamic code compilation from #codeStream
|
||||
to provide an in-line fixedValueFvPatchScalarField. E.g.
|
||||
#+BEGIN_SRC c++
|
||||
outlet
|
||||
{
|
||||
type codedFixedValue;
|
||||
value uniform 0;
|
||||
redirectType ramped;
|
||||
|
||||
code
|
||||
#{
|
||||
operator==(min(10, 0.1*this->db().time().value()));
|
||||
#};
|
||||
}
|
||||
#+END_SRC
|
||||
See also [[./doc/changes/dynamicCode.org]]
|
||||
+ cyclicSlip: cyclic with point motion constrained to tangential plane.
|
||||
Can be used with any mesh movement, e.g. snapping in snappyHexMesh.
|
||||
* Utilities
|
||||
There have been some utilities added and updated in this release.
|
||||
*** *New* utilities
|
||||
+ =extrudeToRegionMesh=: Extrude faceZones into separate mesh (as a
|
||||
different region)
|
||||
+ used to e.g. extrude baffles (extrude internal faces) or create
|
||||
liquid film regions
|
||||
+ if extruding internal faces:
|
||||
+ create baffles in original mesh with directMappedWall patches
|
||||
+ if extruding boundary faces:
|
||||
+ convert boundary faces to directMappedWall patches
|
||||
+ extrude edges of faceZone as a <zone>_sidePatch
|
||||
+ extrude edges inbetween different faceZones as a
|
||||
(nonuniformTransform)cyclic <zoneA>_<zoneB>
|
||||
+ extrudes into master direction (i.e. away from the owner cell
|
||||
if flipMap is false)
|
||||
+ =topoSet=: replacement of cellSet,faceSet,pointSet utilities. Multiple
|
||||
commands operating on different sets.
|
||||
Comparable to a dictionary driven =setSet= utility.
|
||||
*** Updated utilities
|
||||
+ =setFields=: optionally use faceSets to set patch values (see
|
||||
e.g. =hotRoom= tutorial).
|
||||
+ =blockMesh=: specify patches via dictionary instead of type only. This
|
||||
makes rereading the boundary file superfluous. see
|
||||
e.g. pitzDailyDirectMapped tutorial.
|
||||
+ =setSet=: allows time range (e.g. 0:100) in combination with -batch
|
||||
argument to execute the commands for multiple times.
|
||||
+ =extrudeMesh=:
|
||||
- option to add extrusion to existing mesh.
|
||||
- works in parallel
|
||||
+ =snappyHexMesh=:
|
||||
+ extrude across multi-processor boundaries
|
||||
+ specify type of patches created during meshing
|
||||
+ handle cyclics in initial mesh (non parallel meshing only)
|
||||
+ preserve faceZones shape during layering
|
||||
+ combining coincident patch faces is now default after snapping
|
||||
+ *Warning*:
|
||||
- snapControls::tolerance setting fixed w.r.t. 17x. Is the
|
||||
multiplication to calculate the local search distance for nearest.
|
||||
- minMedianAxisAngle angle fixed w.r.t. 17x. Set to
|
||||
90 to get same behaviour as 130 in 17x.
|
||||
- nGrow did not work in 17x. Set to 0
|
||||
to get same behaviour as 130 in 17x.
|
||||
- nSolveIter reinstated to smooth internal mesh. Set to 0
|
||||
to get same behaviour at 17x.
|
||||
- new minTetQuality setting (see tracking). Disable for 17x
|
||||
compatibility.
|
||||
* Post-processing
|
||||
+ =paraFoam=, =foamToVTK=: full support for polyhedral cell type in recent
|
||||
Paraview versions.
|
||||
+ =foamToEnsight=: parallel continuous data. new =-nodeValues= option to
|
||||
generate and output nodal field data.
|
||||
+ =singleCellMesh=: new utility to convert mesh and fields to a single cell
|
||||
mesh. Great for postprocessing.
|
||||
+ =steadyParticleTracks=: Generates VTK tracks from the output of the cloud
|
||||
=ParticleTracks= post-processing sub-model
|
||||
+ Sampling:
|
||||
+ =patchInternalField=: new sampledSurface - like 'patch' but samples
|
||||
internal field instead of boundary field.
|
||||
+ =ensight=: new output format for all sampledSurfaces.
|
||||
+ Function objects:
|
||||
+ =abortCalculation=: watches for presence of the named file in the
|
||||
$FOAM_CASE directory and aborts the calculation if it is present
|
||||
+ =timeActivatedFileUpdate=: performs a file copy/replacement once a
|
||||
specified time has been reached, e.g. to automagically change fvSchemes and
|
||||
fvSolution during a calculation
|
||||
+ =streamLine=: generate streamlines; ouputs both trajectory and field data
|
||||
+ =surfaceInterpolateFields=: constructs face interpolate of registered
|
||||
volFields for any future functionObjects that need surfaceFields.
|
||||
+ =readFields=: reads field if not yet registered. Makes functionObjects
|
||||
useable through standalone execFlowFunctionObjects.
|
||||
+ =faceSource=: can now calculate on a sampledSurface (e.g. flow through a
|
||||
triSurfaceMesh).
|
||||
+ =nearWallFields=: constructs field with on selected patches interpolated
|
||||
internal field for further postprocessing.
|
||||
+ =partialWrite=: write some fields every time step (e.g. for
|
||||
postprocessing) and others only every so often (for restart)
|
||||
+ =coded=: uses the dynamic code compilation from =#codeStream=
|
||||
to provide an in-line functionObject. E.g.
|
||||
#+BEGIN_SRC c++
|
||||
functions
|
||||
{
|
||||
pAverage
|
||||
{
|
||||
functionObjectLibs ("libutilityFunctionObjects.so");
|
||||
type coded;
|
||||
redirectType average;
|
||||
code
|
||||
#{
|
||||
const volScalarField& p = mesh().lookupObject<volScalarField>("p");
|
||||
Info<<"p avg:" << average(p) << endl;
|
||||
#};
|
||||
}
|
||||
}
|
||||
#+END_SRC
|
||||
See also [[./doc/changes/dynamicCode.org]]
|
||||
|
||||
|
||||
* New tutorials
|
||||
There is a large number of new tutorials for existing and new solvers in the
|
||||
release.
|
||||
+ =reactingParcelFilmFoam= tutorials:
|
||||
+ multipleBoxes, hotBoxes, panel, evaporationTest
|
||||
+ =interDyMFoam= tutorials:
|
||||
+ testTubeMixer: showcases =solidBodyMotionFunction=
|
||||
+ =snappyHexMesh= tutorials:
|
||||
+ flange: demonstration of feature lines in snappyHexMesh
|
||||
|
||||
* Other
|
||||
+ compilable with =clang=
|
||||
In your prefs.sh set the WM_COMPILER to Clang
|
||||
Reference in New Issue
Block a user