OpenCFD are pleased to announce that they have begun alpha testing of version 1.3 of their OpenFOAM software. Many of the developments in the release are towards improving the efficiency and robustness of OpenFOAM for large-scale engineering CFD, including low and high speed aerodynamics, heat transfer and buoyancy-driven flows. The changes and developments are as follows:
Improvements in speed and memory storage through careful optimisation using the latest generation profiling tools. The changes include:
- the use of template loop unrolling;
- significant rewriting of the AMG solver;
- simplification of the mesh structures;
- more complete handling of temporary fields.
Major reorganisation and development of the core libraries including:
- separation of finite volume from the main library so that other discretisation techniques may be easily supported;
- reordering of libraries to prevent cyclic dependencies;
- polyMesh now reads and writes the more efficient owner/neighbour addressing rather than cells;
- separation of the current mesh topology modification method from the internals of polyMesh so that other, more flexible and efficient procedures can be selected;
- generalisation of meshes with topology changes;
- new sphericalTensor type added;
- physical constants are no longer hard-coded but read in from the main controlDict enabling the use of a different base system of units from the default (SI);
- new more efficient implementation of constraints;
- support for both float and double scalar types, allowing mixed type codes to be written and easier building of the OpenFOAM with floats rather than double (the default).
Developments to the solvers include:
- rhopSonicFoam: changes in discretisation to improve resolution of expansion waves, contacts and shocks;
- icoDyMFoam: first demonstration of a solver with integrated mesh motion and topology change;
- buoyantFoam solver family: developments and additions for practical use.
Developments of utilities include:
- several new post-processing utilities added;
- new and improved mesh conversion utilities such as ccm24ToFoam (handling of un-compacted boundary regions), gmshToFoam (handling of cell and face zones), plot3dToFoam (handling of collapsed hexahedra), polyDualMesh (converts polyMesh into its vertex-based dual mesh);
- improvements to mesh manipulation utilities such as createPatch (allow creation of multiple patches) and subsetMesh (added subsetting of surface fields).
General operation of OpenFOAM:
- automatic stack trace on code termination;
Parallel running of OpenFOAM has been improved as follows:
- domain decomposition now creates a full set of patches for each processor allowing easy implementation of integral boundary conditions, e.g. fixed mass flow rate;
- debugging parallel runs made easier by processor-labelled error messages;
- rewriting the AMG solver has improved performance in parallel;
- faster parallel communications attained by using a direct transfer mechanism, avoiding the need for a transfer buffer.
- improved ’V’ schemes for momentum and other vector transport;
- new generalised linear upwind discretisation scheme based on limited gradients;
- new more flexible gradient limiter for accurate, yet stable operation on distorted meshes;
- improved handling of least squares gradient evaluation on bad tetrahedral meshes.
- corrections to the fourth-order gradient scheme.
Changes to modelling:
- new constraint implementation used to enforce the near-wall epsilon value in wall-function implementations replacing the old ”hack” of boosting the diagonal;
- new wall function implementations for Spalart-Allmaras turbulence model.