OpenFOAM release notes for version 1.3 OpenCFD Ltd, 29 March 2006 http://www.openfoam.org ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OpenFOAM-1.3 is a significant upgrade to version 1.2 in ways which are outlined below. This release passes all our standard tests and the tutorials have been broadly checked. If there are any bugs, please report them using the instructions set out in: http://www.openfoam.org/bugs.html 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: Linux version ~~~~~~~~~~~~~ The binary packs of the OpenFOAM release were compiled using SuSE Linux version 10.x We recommend that users run OpenFOAM on this or an equivalent version. Running on one version lower has been generally successful in testing, with one notable problem: when running FoamX, nsd requires libelf.0.so which does not appear to be in, for example, the standard installation of SuSE Linux 9.3. It was found that this problem could be overcome simply by downloading the rpm of the libelf library for version 9.3, libelf-0.8.5-35.i586.rpm, from: ftp://rpmfind.net/linux/SuSE-Linux/i386/9.3/suse/i586/ C++ Compiler version ~~~~~~~~~~~~~~~~~~~~ - released compiled with GCC 4.1, a version with superior optimisation, better adherence to the C++ standard and improved error messaging. - built in support for the Intel C++ 9.0 compiler. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Note: The choice of compiler is controlled by the setting of the $WM_COMPILER and $WM_COMPILER_ARCH environment variables in the .OpenFOAM1.3/bashrc (or cshrc) file !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Parallel running ~~~~~~~~~~~~~~~~ - 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; - supported for and shipped with OpenMPI (but released compiled with lam-MPI by default). !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Note: The choice is controlled by the setting of the $WM_MPLIB environment variable in the .OpenFOAM1.3/bashrc (or cshrc) file !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Improvements in speed and memory storage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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. Code reorganisation and development ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - separation of finite volume from the main library so that other discretisation techniques may be easily supported; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Note!!: when upgrading the compilation of customised solvers, the user generally needs to include the finiteVolume library and give the path to the finiteVolume class header files, see for example: $FOAM_SOLVERS/incompressible/icoFoam/Make/options !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - 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). !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Note: The choice is controlled by the setting of the $WM_PRECISION_OPTION environment variable in the .OpenFOAM1.3/bashrc (or cshrc) file !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Developments of the solvers ~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 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 the utilities ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 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. Discretisation schemes ~~~~~~~~~~~~~~~~~~~~~~ - 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 forth-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.