Additions.

This commit is contained in:
henry 2009-07-27 07:52:54 +01:00
parent 5ab9eca915
commit a034711c39

View File

@ -11,7 +11,7 @@
outlined below. This release passes all our standard tests and the outlined below. This release passes all our standard tests and the
tutorials have been broadly checked. If there are any bugs, please report tutorials have been broadly checked. If there are any bugs, please report
them using the instructions set out here: them using the instructions set out here:
http://www.OpenFOAM.org/bugs.html http://www.OpenFOAM.org/bugs.html.
* GNU/Linux version * GNU/Linux version
The 32bit and 64bit binary packs of the OpenFOAM release were compiled on The 32bit and 64bit binary packs of the OpenFOAM release were compiled on
@ -34,286 +34,222 @@
* Library developments * Library developments
** Core library *** Core library
*** Regular Expressions ***** Dictionary improvements/changes
The addition of regular expressions marks a major improvement in usability. + Dictionaries can use words (unquoted) or regular expressions (quoted)
+ *New* =regExp= class provides support for accessing POSIX extended regular for their keywords. When searching, an exact match has priority over a
expresssions from within OpenFOAM. See the manpages on your system (/man regular expression match. Multiple regular expressions are matched in
7 regex/) for more information about the extended regular expression reverse order.
syntax. Since entire strings are matched, the =^= and =$= anchors are not + The *new* =#includeIfPresent= directive is similar to the =#include=
required. directive, but does not generate an error if the file does not exist.
+ *New* =wordRe= class can contain a =word= or a =regExp= . The match() + The default =#inputMode= is now '=merge=', which corresponds to the most
method matches appropriately (as a =word= or as a =regExp=). general usage. The =#inputMode warn= corresponds to the previous default
+ *New* =stringListOps= to search string lists based on regular expressions, behaviour.
=wordRe= or =wordReList= . + The *new* =#inputMode protect= can be used to conditionally merge
+ =Istream= and =Ostream= now retain backslashes when reading/writing default values into existing dictionaries.
strings. The backslash continues to be used as an escape character for + *New* =digest()= method to calculate and return the SHA1 message digest.
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 ***** Regular Expressions
+ Dictionaries can use words (unquoted) or regular expressions (quoted) for The addition of regular expressions marks a major improvement in
their keywords. When searching, an exact match has priority over a regular usability.
expression match. Multiple regular expressions are matched in reverse + *New* =regExp= class provides support for accessing POSIX extended
order. regular expresssions from within OpenFOAM.
+ The *new* =#includeIfPresent= directive is similar to the =#include= + *New* =wordRe= class can contain a =word= or a =regExp= .
directive, but does not generate an error if the file does not exist. + *New* =stringListOps= to search string lists based on regular
+ The default =#inputMode= is now '=merge=', which corresponds to the most expressions, =wordRe= or =wordReList=.
general usage. The =#inputMode warn= corresponds to the previous default + =Istream= and =Ostream= now retain backslashes when reading/writing
behaviour. strings.
+ 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 ***** Convenience changes
+ It is now possible to append a =UList= to an existing =List= or + =IOobject= has a *new* constructor for creating an =IOobject= from a
=DynamicList= . single-path specification (eg, see =blockMesh -dict= option).
+ =DynamicList= is now much more flexible. It can be used with the + =argList= has *new* convenience methods for accessing options more
=append()= method, or with the =setSize()= method and =operator[]=, as per directly: =option()=, =optionFound()=, =optionLookup()=, =optionRead()=,
=List= . =DynamicList= also has more methods for adjusting the space =optionReadIfPresent()=.
allocated. + The *new* =readList(Istream&)= can read a bracket-delimited list or
+ =SortableList= now uses stable sort and allows =reverseSort()= as well. handle a single value as a list of size 1. This can be a useful
=SortableList= is also more versatile - the indices mostly remain convenience when processing command-line options.
unallocated until they are required in the =sort()= method. The sort + Export *new* environment variable =FOAM_CASENAME= that contains the
indices can be deallocated with the =shrink()= method. Works as expected name part of the =FOAM_CASE= environment variable.
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, *new* lazy evaluation and *new*
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= . A =PackedBoolList= can thus replace
=labelHashSet= in many places.
+ *New* =UIndirectList= for an indirect list without storing the addressing.
*** New hashing algorithms *** Numerics
+ Bob Jenkins' hash routine for performance improvement (5-10% faster for + *new* polynomial-fit higher-order interpolation schemes:
string hashing than the previous algorithm) and fewer collisions. - =biLinearFit=
+ SHA1 hashing and SHA1 message digests (NIST specification FIPS-180-1) - =linearFit=
added. The SHA1 digest provides a compact (20 bytes) means of determining - =quadraticLinearFit=
if the contents of an object have changed. The *new* =OSHA1stream= class - =quadraticFit=
can be used to calculate SHA1 digests for anything that can write to an - =linearPureUpwindFit=
output stream. - =quadraticLinearPureUpwindFit=
- =quadraticLinearUpwindFit=
- =quadraticUpwindFit=
- =cubicUpwindFit=
+ *new* polynomial-fit higher-order Sn-Grad: =quadraticFitSnGrad=.
*** HashTable/HashSet improvements *** Turbulence modelling
+ Performance improvements for querying on empty tables + Major development of turbulence model libraries to give extra flexibility
+ The =erase()= method can take a list of keys or the keys from any another at the solver level. For solvers that can support either RAS/LES
=HashTable=/=HashSet= . computations, the selection is made in the
+ =HashSet= has an =operator[]() const= that allows the same syntax to be /constant/turbulenceProperties/, by setting the =simulationType= keyword
used for =boolList=, =PackedBoolList= and =labelHashSet= . to:
+ =HashSet has additional operators '+=', '-=', '&=' to add, remove or - =laminar=,
intersect keys, respectively. - =RASModel=,
- =LESModel=.
+ Depending on the selection, the model is the instantiated from /constant//
- /RASProperties/,
- /LESProperties/.
*** Improved bool/Switch ***** RAS wall functions
+ The =Switch= class has reduced the storage to be on par with =bool= . It Wall functions are now run-time selectable per patch for RAS.
is now more flexible and behaves much more like a =bool= . + Velocity:
+ The IO for =bool= uses =Switch= internally for reading, so the end-user - Apply to turbulent viscosities =nut= or =mut=,
doesn't need to know if a particular class used =bool= or =Switch= . - Apply to =k=, =Q=, =R=,
- Apply to =epsilon=, =omega=.
+ Temperature:
- Apply to turbulent thermal diffusivity, =alphat= (compressible only).
+ To apply wall functions:
- To recapture the functionality of previous OpenFOAM versions (v1.5 and
earlier) assign:
- for velocity:
- =nut=: =nutWallFunction=,
- =mut=: =muWallFunction=,
- =epsilon=: =epsilonWallFunction=,
- =omega=: =omegaWallFunction=,
- =k=, =q=, =R=: =kqRWallFunction=.
- for temperature:
- =alphat=: =alphatWallFunction=.
- New =alphaSgsJayatillekeWallFunction= thermal wall function for
compressible LES.
*** Miscellaneous container class improvments ***** *New* LES turbulence models
+ *New* Boost-style =StaticAssert= added. Which is useful to catch invalid + Spalart-Allmaras DDES.
template sizes, for example. + Spalart-Allmaras IDDES.
+ Various containers now have C++0x-style =cbegin()=, =cend()= iterator
methods.
+ Various containers now have STL-style =empty()= method, which may be more
readable and universal than =!size()= or =!valid()= conditions.
+ various containers now have an =xfer()= method for yielding their contents
to a corresponding =Xfer= class.
*** *New* Xfer class ***** Upgrading:
Provides finer grained control over copying or transferring objects with + *New* utility - =applyWallFunctionBoundaryConditions=.
very little overhead. It can be used for any object that has a =transfer()= + Solvers will automatically update existing cases.
method and a =operator=()= copy method. Since it is decided upon - New fields created based on the presence of the =nut/mut= field.
construction of the =Xfer= object whether the parameter is to be copied or - Boundary conditions include scoping, i.e compressibility:: for
transferred, the contents of the resulting Xfer object can be transferred compressible solvers.
unconditionally. This greatly simplifies defining constructors or methods in - Modified fields will be backed-up to /<field>.old/.
other classes with mixed transfer/copy semantics without requiring 2^N + NOTE:
different versions. - Fields are only updated for those fields associated with the current
+ =xferCopy()=, =xferMove()= and =xferCopyTo()=, =xferMoveTo()= functions to turbulence model selection, i.e. if fields exist for use with other
ease the use of the =Xfer= class. models, they will not be updated.
- The new specification is not backwards compatible.
*** Convenience changes *** Thermo-physical Models
+ =IOobject= has a *new* constructor for creating an =IOobject= from a + Old compressibility-based thermo package renamed
single-path specification (eg, see =blockMesh -dict= option). =basicThermo= \rightarrow =basicPsiThermo=.
+ =argList= has *new* convenience methods for accessing options more + *New* =basicRhoThermo= thermo package.
directly: =option()=, =optionFound()=, =optionLookup()=, =optionRead()=, - Additional density field stored.
=optionReadIfPresent()= . - General form - can be used for other types of media, e.g. liquids.
+ The *new* =readList(Istream&)= can read a bracket-delimited list or handle - Additional polynomial-based thermodynamics:
a single value as a list of size 1. This can be a useful convenience when - Equation of state: =icoPolynomial=,
processing command-line options. - Transport: =polynomialTransport=,
+ Export *new* environment variable =FOAM_CASENAME= that contains the - Thermo: =hPolynomialThermo=.
name part of the =FOAM_CASE= environment variable + Removed earlier hard-coding of gas thermophysics for chemistry modelling:
- =reactingMixture= now templated on thermo package,
- =chemistryModel= now templated on thermo package,
- =chemistrySolver= now templated on thermo package.
+ *New* =fvDOM= radition model
- finite volume, discrete ordinates method.
+ *New* (reinstated) =eThermo= thermodynamics package
- internal energy-based thermodynamics.
*** Misc. improvements *** Lagrangian
+ 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=)
** Turbulence modelling ***** Intermediate
+ Major development of turbulence model libraries to give extra flexibility + Overhaul of the underlying framework.
at the solver level. For solvers that can support either RAS/LES + Reacting now split into reacting and reacting multiphase.
computations, the selection is made in the /constant/turbulenceProperties/, + New structure for variable composition.
by setting the =simulationType= keyword to: + Many new sub-models, including:
- =laminar= - Injection
- =RASModel= - =PatchInjection= - injection local to patch face cells,
- =LESModel= - =FieldActivatedInjection= - injection based on satisfying external
+ Depending on the selection, the model is the instantiated from /constant// criterion,
- /RASProperties/ - LookupTableInjection - explicity define injection locations and all
- /LESProperties/ parcel properties.
- Post-processing
- patch post-processing - collect data for parcels impacting user,
defined patches.
- Patch interaction
- generalised behaviour for parcel interaction with patch.
- Phase change
- liquid evaporation.
**** RAS wall functions ***** Coal combustion
Wall functions are now run-time selectable per patch for RAS. + *New* library - extension of reacting-multiphase functionality.
+ Velocity: - Surface reaction/combustion models.
- Apply to turbulent viscosities =nut= or =mut=
- Apply to =k=, =Q=, =R=
- Apply to =epsilon=, =omega=
+ Temperature:
- Apply to turbulent thermal diffusivity, =alphat= (compressible only)
+ To apply wall functions: *** Discrete methods
- To recapture the functionality of previous OpenFOAM versions (v1.5 and
earlier) assign:
- for velocity:
- =nut=: =nutWallFunction=
- =mut=: =muWallFunction=
- =epsilon=: =epsilonWallFunction=
- =omega=: =omegaWallFunction=
- =k=, =q=, =R=: =kqRWallFunction=
- for temperature:
- =alphat=: =alphatWallFunction=
- New =alphaSgsJayatillekeWallFunction= thermal wall function for
compressible LES
**** *New* LES turbulence models
+ Spalart-Allmaras DDES
+ Spalart-Allmaras IDDES
**** Upgrading:
+ *New* utility - =applyWallFunctionBoundaryConditions=
+ Solvers will automatically update existing cases
- New fields created based on the presence of the =nut/mut= field
- Boundary conditions include scoping, i.e compressibility:: for
compressible solvers
- Modified fields will be backed-up to /<field>.old/
+ NOTE:
- Fields are only updated for those fields associated with the current
turbulence model selection, i.e. if fields exist for use with other
models, they will not be updated
- The new specification is not backwards compatible
** Thermo-physical Models
+ Old compressibility-based thermo package renamed
=basicThermo= \rightarrow =basicPsiThermo=
+ *New* =basicRhoThermo= thermo package
- Additional density field stored
- General form - can be used for other types of media, e.g. liquids
- Additional polynomial-based thermodynamics
- Equation of state: =icoPolynomial=
- Transport: =polynomialTransport=
- Thermo: =hPolynomialThermo=
+ Removed earlier hard-coding of gas thermophysics for chemistry modelling:
- =reactingMixture= now templated on thermo package
- =chemistryModel= now templated on thermo package
- =chemistrySolver= now templated on thermo package
+ *New* =fvDOM= radition model
- finite volume, discrete ordinates method
+ *New* (reinstated) =eThermo= thermodynamics package
- internal energy-based thermodynamics
** Lagrangian
**** Intermediate
+ Overhaul of the underlying framework
+ Reacting now split into reacting and reacting multiphase
+ New structure for variable composition
+ Many new sub-models, including:
- Injection
- =PatchInjection= - injection local to patch face cells
- =FieldActivatedInjection= - injection based on satisfying external
criterion
- LookupTableInjection - explicity define injection locations and all
parcel properties
- Post-processing
- patch post-processing - collect data for parcels impacting user
defined patches
- Patch interaction
- generalised behaviour for parcel interaction with patch
- Phase change
- liquid evaporation
**** Coal combustion
+ *New* library - extension of reacting-multiphase functionality
- Surface reaction/combustion models
** Discrete methods
+ *New* library offering DSMC simulation functionality - see =dsmcFoam= + *New* library offering DSMC simulation functionality - see =dsmcFoam=
below below.
+ *New* libraries offering molecular dynamics simulation functionality - see + Significant development of the libraries offering molecular dynamics
=mdFoam= and =mdEquilibrationFoam=: below. simulation functionality - see =mdFoam= and =mdEquilibrationFoam= below.
** *New* surfMesh library *** *New* surfMesh library
Provides a more efficient storage mechanism than possible with =triSurface= Provides a more efficient storage mechanism than possible with =triSurface=
without restrictions on the shape of the face (templated parameter). It will without restrictions on the shape of the face (templated parameter).
however take quite some time before it can fully replace =triSurface= . + =MeshedSurface= class - with zero or more contiguous =surfZones= .
+ =MeshedSurface= class - with zero or more contiguous =surfZones= . + =UnsortedMeshedSurface= class - unordered surface zones (as per
+ =UnsortedMeshedSurface= class - unordered surface zones (as per =triSurface=).
=triSurface=) + =surfMesh= class - for reading/writing in native OpenFOAM format.
+ =surfMesh= class - for reading/writing in native OpenFOAM format
* Solver restructuring * Solver restructuring
The upgrade to the turbulence models means that the simulation type, i.e. The upgrade to the turbulence models means that the simulation type, i.e.
laminar, RAS or LES can be selected at run time. This has allowed a reduction laminar, RAS or LES can be selected at run time. This has allowed a reduction
in the number of solvers, simplifying the overall code structure in the number of solvers, simplifying the overall code structure
+ Solvers which support laminar, RAS and LES: + Solvers which support laminar, RAS and LES:
- =turbFoam=, =oodles= \rightarrow =pisoFoam= - =turbFoam=, =oodles= \rightarrow =pisoFoam=.
- =turbDyMFoam= \rightarrow =pimpleDyMFoam= - =turbDyMFoam= \rightarrow =pimpleDyMFoam=.
- =rhoTurbFoam=, =coodles= \rightarrow =rhoPisoFoam= - =rhoTurbFoam=, =coodles= \rightarrow =rhoPisoFoam=.
- =xoodles= \rightarrow absorbed into =XiFoam= - =xoodles= \rightarrow absorbed into =XiFoam=.
- =buoyantFoam=, =lesBuoyantFoam= \rightarrow =buoyantPisoFoam= - =buoyantFoam=, =lesBuoyantFoam= \rightarrow =buoyantPisoFoam=.
- =interFoam=, =rasInterFoam=, =lesInterFoam= \rightarrow =interFoam= - =interFoam=, =rasInterFoam=, =lesInterFoam= \rightarrow =interFoam=.
- =lesCavitatingFoam=, =rasCavitatingFoam= \rightarrow =cavitatingFoam= - =lesCavitatingFoam=, =rasCavitatingFoam= \rightarrow =cavitatingFoam=.
+ Solvers which support LES only: + Solvers which support LES only:
- =channelOodles= \rightarrow =channelFoam= (LES) - =channelOodles= \rightarrow =channelFoam= (LES).
* General changes * General changes
+ pd to p ------------------------------------------------------------ [HENRY] + =pd= replaced by static pressure =p=. All solvers in which buoyancy affects
+ gravity ------------------------------------------------------------ [HENRY] might be strong have been converted from using =pd= to =p= with improved
numerics to give equally good accuracy and stability. This change is
prompted by the need to remove the confusion surrounding the meaning and
purpose of =pd=.
+ =g= (acceleration due to gravity) is now a *new*
=uniformDimensionedVectorField= which has the behaviour of a field, is
registered to an =objectRegistry=, but stores only a single value. Thus
=g= and other =UniformDimensionedFields= can be created and looked-up
elsewhere in the code, /e.g./ in =fvPatchFields=.
** Solver control improvements ** Solver control improvements
Use dictionary entries instead of an =Istream= for the solver controls. Use dictionary entries instead of an =Istream= for the solver controls.
+ This Allows dictionary substitutions and regular expressions in + This Allows dictionary substitutions and regular expressions in
/system/fvSolution/ /system/fvSolution/.
+ The old solver control syntax is still supported (warning emitted), but + The old solver control syntax is still supported (warning emitted), but
the *new* =foamUpgradeFvSolution= utility can be used to convert the *new* =foamUpgradeFvSolution= utility can be used to convert
/system/fvSolution/ to the new format. /system/fvSolution/ to the new format.
* Tutorial restructuring * Tutorial restructuring
to reflect solver application structure to reflect solver application structure.
* Post-processing
* sampling on iso-surfaces, interpolated or non-interpolated
* sampling on surface defined by distance to surface (distanceSurface)
* cutting planes on non-convex cells
* Output to any surface geometry format supported by the =surfMesh= library.
* *New* Solvers * *New* Solvers
+ =buoyantBoussinesqSimpleFoam= Steady state heat transfer solver using a + =buoyantBoussinesqSimpleFoam= Steady state heat transfer solver using a
Boussinesq approximation for buoyancy, with laminar, RAS or LES turbulence Boussinesq approximation for buoyancy, with laminar, RAS or LES turbulence
modelling modelling.
+ =buoyantBoussinesqPisoFoam= Transient heat transfer solver using a + =buoyantBoussinesqPisoFoam= Transient heat transfer solver using a
Boussinesq approximation for buoyancy, with laminar, RAS or LES turbulence Boussinesq approximation for buoyancy, with laminar, RAS or LES turbulence
modelling modelling.
+ =coalChemistryFoam= Transient, reacting lagrangian solver, employing a coal + =coalChemistryFoam= Transient, reacting lagrangian solver, employing a coal
cloud and a thermo cloud, with chemistry, and laminar, RAS or LES turbulence cloud and a thermo cloud, with chemistry, and laminar, RAS or LES turbulence
modelling modelling.
+ =porousExplicitSourceReactingParcelFoam= Transient, reacting lagrangian + =porousExplicitSourceReactingParcelFoam= Transient, reacting lagrangian
solver, employing a single phase reacting cloud, with porous media, explicit solver, employing a single phase reacting cloud, with porous media, explicit
mass sources, and laminar, RAS or LES turbulence modelling mass sources, and laminar, RAS or LES turbulence modelling.
+ =rhoReactingFoam= Density-based thermodynamics variant of the reactingFoam + =rhoReactingFoam= Density-based thermodynamics variant of the reactingFoam
solver, i.e. now applicable to liquid systems solver, i.e. now applicable to liquid systems.
+ =dsmcFoam= DSMC (Direct Simulation Monte-Carlo) solver for rarefied gas + =dsmcFoam= DSMC (Direct Simulation Monte-Carlo) solver for rarefied gas
dynamics simulations, able to simulate mixtures of an arbitrary number of dynamics simulations, able to simulate mixtures of an arbitrary number of
gas species. The variable hard sphere collision model with Larsen-Borgnakke gas species. The variable hard sphere collision model with Larsen-Borgnakke
@ -328,88 +264,109 @@
molecule of any species can be built by specifying its sites of mass and molecule of any species can be built by specifying its sites of mass and
charge. All molecules interact with short-range dispersion forces and charge. All molecules interact with short-range dispersion forces and
pairwise electrostatic interactions using methods described in: Fennell and pairwise electrostatic interactions using methods described in: Fennell and
Gezelter, J. Chem. Phys. 124, 234104 (2006) Gezelter, J. Chem. Phys. 124, 234104 (2006).
+ =mdEquilibrationFoam= Similar to mdFoam, but employs velocity scaling to + =mdEquilibrationFoam= Similar to mdFoam, but employs velocity scaling to
adjust the simulation temperature to a target value. Useful to equilibrate a adjust the simulation temperature to a target value. Useful to equilibrate a
case before simulation. case before simulation.
+ =chtMultiRegionFoam= New boundary condition allows independent decomposition + =chtMultiRegionFoam= New boundary condition allows independent decomposition
of coupled regions without any constraint on the decomposition. of coupled regions without any constraint on the decomposition.
* Function objects * Post-processing
+ Sampling on iso-surfaces, interpolated or non-interpolated.
+ Sampling on surface defined by distance to surface (=distanceSurface=).
+ Cutting planes for arbitrary meshes.
+ Output to any surface geometry format supported by the =surfMesh= library.
** Improvements for function objects and time-looping *** Function objects
+ 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 both forms are supported.
+ The =functionObject= now has an additional =end()= method that is called
when =Time::loop()= or =Time::run()= determine 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++; ... }=
+ *New* - =functionObjectList= now tracks the SHA1 message digest of the
sub-directories. This avoids reloading a =functionObject= when
something unrelated in /system/controlDict/ changed.
** *New* function objects: ***** Improvements for function objects and time-looping
+ =systemCall= - executes a list of system instructions + The =functionObjectList= retains the order of the =functionObject=
+ =fieldMinMax= - computes the min/max of a <field> order, which allows a chaining of operations. It is thus internally more
+ =staticPressure= - converts kinematic pressure to static pressure efficient when /system/controlDict/ uses =functions {..}= instead of
+ =dsmcFields= - calculates intensive fields (velocity and temperature) from =functions (..)=, but both forms are supported.
averaged extensive fields (i.e. momentum and energy) + The =functionObject= now has an additional =end()= method that is called
when =Time::loop()= or =Time::run()= determine 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++; ... }=.
+ *New* =functionObjectList= now tracks the SHA1 message digest of the
sub-directories. This avoids reloading a =functionObject= when
something unrelated in /system/controlDict/ changed.
** Usage ***** *New* function objects:
+ Improved output control: =timeStep= or =outputTime= + =systemCall= - executes a list of system instructions.
+ =fieldMinMax= - computes the min/max of a <field>.
+ =staticPressure= - converts kinematic pressure to static pressure.
+ =dsmcFields= - calculates intensive fields (velocity and temperature)
from averaged extensive fields (i.e. momentum and energy).
***** Usage
+ Improved output control: =timeStep= or =outputTime=.
* Boundary conditions * Boundary conditions
+ Improved set of direct mapped boundary conditions + Improved set of direct mapped boundary conditions.
+ Buoyancy boundary condition ---------------------------------------- [HENRY] + =buoyantPressureFvPatchScalarField=, the *new* buoyancy pressure boundary
condition now supports =p= and =pd= for backward compatibility.
+ =uniformDensityHydrostaticPressure= is an additional pressure boundary
condition to aid the transition from =pd= to =p= as it behaves similarly to
specifying a uniform =pd= at an outlet for example.
* Utilities * Utilities
** Improvements *** Improvements
+ =blockMesh= has a *new* =-dict= option for specifying an alternative + =blockMesh= has a *new* =-dict= option for specifying an alternative
dictionary for the block mesh description. The '=convertToMeters=' entry dictionary for the block mesh description. The '=convertToMeters=' entry
is now optional, and the alternative '=scale=' entry can be used for is now optional, and the alternative '=scale=' entry can be used for
less typing. less typing.
+ =foamToEnsight= has a *new* =-noPatches= option to suppress generation
of patches.
+ =foamToEnsightParts= has *new* =-noMesh= and =-index= options that can
be useful when post-processing results incrementally.
+ =snappyHexMesh= has lower memory footprint. New distributed triangulated
surface type for meshing surfaces with extremely large triangle count.
Now supports multi-region meshing of arbitrarily complex regions.
+ =foamToEnsight= has a *new* =-noPatches= option to suppress generation *** *New* utilities
of patches. + =particleTracks= - generate particle tracks for lagrangian calculations.
+ =dsmcInitialise= - preprocessing utility to create initial configurations
+ =foamToEnsightParts= has *new* =-noMesh= and =-index= options that can of DSMC particles in a geometry.
be useful when post-processing results incrementally. + =surfaceRedistributePar= - preprocessing utility to create distributed
triangulated surface.
+ =snappyHexMesh= has lower memory footprint. New distributed triangulated
surface type for meshing surfaces with extremely large triangle count.
Now supports multi-region meshing of arbitrarily complex regions.
** *New* utilities
+ =particleTracks= - generate particle tracks for lagrangian calculations
+ =dsmcInitialise= - preprocessing utility to create initial configurations of
DSMC particles in a geometry
+ =surfaceRedistributePar= - preprocessing utility to create distributed
triangulated surface.
*** *New* foamCalc functions *** *New* foamCalc functions
+ =interpolate= - performs fvc::interpolate(<field>) + =interpolate= performs fvc::interpolate(<field>).
+ =randomise= - randomises a <field> by a given perturbation + =randomise= randomises a <field> by a given perturbation.
+ =addSubtract= - simple add/subtract field functionality + =addSubtract= provides simple add/subtract field functionality.
** Usage *** Usage
+ =timeSelector= can now combine =-time ranges= and =-latestTime= options. + =timeSelector= can now combine =-time ranges= and =-latestTime= options.
For example, -time '0.01:0.09' -latestTime vs. -time '0.01:'. For example, -time '0.01:0.09' -latestTime vs. -time '0.01:'.
More reliable behaviour for cases missing /constant// or /0// directories. More reliable behaviour for cases missing /constant// or /0// directories.
When the =-noZero= option is enabled, =-latestTime= will not select the When the =-noZero= option is enabled, =-latestTime= will not select the
=0/= directory unless the =-zeroTime= option is given. =0/= directory unless the =-zeroTime= option is given.
This helps avoid ill effects caused by accidentally using the This helps avoid ill effects caused by accidentally using the
/0// directory in certain utilities (eg, =reconstructPar=). /0// directory in certain utilities (eg, =reconstructPar=).
+ =-region= option added to more utilities. + =-region= option added to more utilities.
** Improvements to Paraview reader module *** Improvements to Paraview reader module
+ =PV3FoamReader= added mesh region handling. The region name is parsed + =PV3FoamReader= added mesh region handling. The region name is parsed
from the filename. Eg, /case{region}.OpenFOAM/ from the filename. Eg, /case{region}.OpenFOAM/.
+ =paraFoam= with a *new* =-region= option for specifying an alternative + =paraFoam= with a *new* =-region= option for specifying an alternative
region. A *new* =-touch= option to generate the /.OpenFOAM/ file only. region. A *new* =-touch= option to generate the /.OpenFOAM/ file only.
Only creates (and removes) /.OpenFOAM/ files if they didn't already Only creates (and removes) /.OpenFOAM/ files if they didn't already
exist, which is useful in connection with the =-touch= option. exist, which is useful in connection with the =-touch= option.
* Third-party Software
+ =gcc= upgraded to version 4.3.3.
+ =OpenMPI= upgraded to version 1.3.3.
+ =ParaView= upgraded to version 3.6.1.
+ =Scotch= *new* decomposition method: \\
Scotch (http://gforge.inria.fr/projects/scotch/) is a general multi-level
decomposition method originating from the ScAlApplix project (Inria). It is
a framework for general recursive partitioning methods and a such comparable
to Metis but with a permissive licence.
The corresponding decomposition method (in =decomposeParDict=) is
=scotch=. An optional =strategy= string can be supplied to change the
decomposition methods; initial testing shows the default strategy producing
decompositions comparable in quality to Metis.