Close

10th July 2018

OpenFOAM 6 Released

The OpenFOAM Foundation is pleased to announce the release of version 6 of the OpenFOAM open source CFD toolbox. Version 6 is a snapshot of the OpenFOAM development version which, through sustainable development, is always-releasable.  It provides new functionality and major improvements to existing code, with strict demands on usability, robustness and extensibility.

OpenFOAM 6 includes the following key developments.

  • Conjugate heat transfer (CHT): improved usability, with simplified set up and running.
  • Rotating/sliding geometries: more robust AMI, and support for periodic cases.
  • Particle tracking: optimised computation and improved robustness.
  • Reacting multiphase models: phase change, reactions, drag, breakup, coalescence, etc.
  • Reactions/combustion: faster, full algebraic Jacobian, significant code redesign
  • Other models: water waves and films, turbulence, thermophysics, atmospheric flows
  • General: new boundary conditions, function objects, improved code compilation, etc
  • Further tools for more productive CFD with OpenFOAM.
  • Approximately 750 code commits, 350+ resolved issues
  • ISO/IEC 14882:2011 (C++11): tested for GCC v4.8+, Clang v3.7+, Intel ICC v17.0.4+.

OpenFOAM 6 is packaged for the following platforms.

The OpenFOAM 6 Source Pack can be compiled on suitable Linux platforms.

Heat Transfer

Arbitrary Mesh Interface

  • Performance/Numerics: new sweptFaceAreaWeightAMI projection method, which fills space completely [ commit 889329 ]; made overlap and normalisation areas consistent [ commit db8751 ].
  • Other: cyclicRepeatAMI enables simulations with a periodic geometry with a rotating/moving section, e.g. for a sector mesh of a mixer, turbine, etc [ commit 785a7d ].

General Multiphase

Reacting Multiphase

Particles and Tracking

  • Tracking: reduced the number of tracking calls to make barycentric tracking 40% faster [ commit 6832a4 ]; reduced memory use by 30% in kinematic layer of particle tracking [ commit 795bc4 ]; improved robustness of tracking for parallel running [ commit a0fcab ];  improved calculation sequence in particle kinematics [ commit e7fc53 ];  enabled particle tracking through ACMI patches [ commit adffa0 ].
  • Optimisation: (with VTT) force and heat transfer onto particles ensures conservation [ commit a58062 ] and splits the calculation of coupled and non-coupled contributions for greater accuracy [ commit 9ee3bb ]; removed unnecessary calculations within pair collision models for particles [ commit 937dba ]; improved numerical stability of heat transfer in particle thermodynamics [ commit 631bd4 ].
  • Injection: synchronised random number calls for setting positions for particle injection in parallel [ commit 11a3b3 ]; increased speed of random number generation with the new Random class implementation [ commit 002e7d ].
  • Data Processing: patchCollisionDensity function object for parcel collisions on patches [ commit a44e95 ]; removed special handling for old tracking of awkward particles in nearWallFields function object [ commit aa24a9 ]; icoUncoupledKinematicCloud function object enables users to add particles to any simulation [ commit db6495 ].

Chemistry and Reactions

  • Full algebraic Jacobian (with Francesco Contino): to speed up solution of chemical reactions, implemented new, full algebraic Jacobian including third-body and pressure dependent derivatives, and derivative of the temperature terms; code redesigned for easier extension of reaction rate expressions and Jacobian terms; temperate clipping added to improve stability [ commit 4dc35c ].
  • Reaction: simplified the selection of combustion and chemistry models [ commit 61cab8 ]; option to specify the initial ODE integration time-step [ commit 08d5fc ]; support for extended (long double) precision scalars [ commit d82cc3 ]; redesign to remove dependency between combustion, thermophysical and turbulence modelling [ commit 0ea0b7 ]; (with BURN Research Group) selectable piston-motion models for engine calculations [ commit 04d5f8 ]; added the Michaelis-Menten reaction rate for enzymatic reactions [ commit 19fb48 ] with support for liquid reactions in chemFoam [ commit 85e249 ].

Other Modelling

Meshes

Productivity and Usability

  • Data Visualisation: option to track in both directions in the streamline function object [ commit 8dcfc9 ]; extended, maintained and introduced consistent naming for specifying sampling locations for graphs, streamlines, etc [ commit 3ef4c8 ]; on start-up of paraFoam, the user can configure the fields [ commit 10b289 ] and mesh and patch components [ commit 4ece2c ] to be loaded by default.
  • Case Initialisation: original files with the “.orig” extension no longer need to be copied but are instead read automatically [ commit df6e2d ]; replaced the ineffective changeDictionary utility with foamDictionary [ commits 1c62b8 ]; added useful examples of common case dictionary files, e.g. decomposeParDict [ commit 351020 ]; removed confusing, unused options from utilities, e.g. -case from surface utilities [ commit 2e1825 ]; foamGet script to copy a configuration file, e.g. decomposeParDict, residuals, into a case quickly [ commit 097e15 ].
  • Case Management: time function object to monitor run, CPU and clock time [ commit d008fe ]jobInfo writes out job information into a small convenient file [ commit 0309a2 ]; foamInfo script provides quick, relevant information on models (including boundary conditions and packaged function objects), applications and scripts [ commit 930f02 ]; removed ineffective, bloated “help” system based on foamHelp [ commits b4dfbd ].
  • Boundary Conditions (BCs): new freestreamVelocity and freestreamPressure BCs [ commit fb15be ]; new fixedMeanOutletInletFvPatchField BC which fixes the outlet mean value [ commit a0399d ]; new prghUniformDensityHydrostaticPressure BC which sets the boundary values of p_rgh corresponding to a constant density hydrostatic pressure distribution [ commit 52a2ba ]; support for supersonic flow in freestreamPressureFvPatchScalarField BC [ commit 26ec6f ]; semiPermeableBaffle BCs to model semi-permeable baffles [ commit 305558 ]; improved usability of  the timeVaryingMapped BC to map data at a boundary from one case to another [ commit f6a311 ].
  • Compilation: meets new memory access and exception consistency checks in the GCC 8.1 compiler [ commit 3682e7 ]; in wmake, simplified file scanning for dependencies to avoid too many open files [ commit 9ffc02 ], improved performance by adding string path substitution [ commit 60b81b ], added on-demand generation of lnInclude directories [commit 3c000d ] and improved handling of dependencies when files are removed [ commit 61f1fe ].
  • Parallel I/O: new options for fileHandler and collated format for efficient I/O on HPC, from Mattijs Janssens [ commit a4de83]; maintained purgeWrite option with collated format [ commit 5bea9a ].
  • Other Function Objects: normalised axis directions in the forceCoeffs function object [ commit 828254 ]; ddt functionObject which calculates the time derivative of a field (with Tobias Holzmann) [ commit c2835a ]; scale function object to multiply a given field by a scaling factor, e.g. for unit conversion [ commit 7f49d6 ]; packaged the writeVTK function object to automate writing of case data in VTK format [ commit b012e1 ].
  • Other Numerics: new limiters for cellLimited gradient calculation, including cubic [ commit 103733 ]; improved stability/accuracy of the time derivative flux correction (ddtPhiCorr) [ commit da7872 ]; registered solutionControl to the database to provide convenient access to controls (of PIMPLE, etc) [ commit dfd09a ].

Further Information: “Productive CFD with OpenFOAM”.

Credits

OpenFOAM 6 was produced by:

  • Core Team (CFD Direct): Henry Weller (co-founder & lead developer); Chris Greenshields (co-founder), Will Bainbridge
  • Developers/Maintainers: Bruno Santos, Francesco Contino, Mattijs Janssens (co-founder), Juho Peltola, Fabian Schlegel, Ronald Oertel, Timo Niemi
  • Patch Contributors: Tobias Holzmann, Kevin Nordin-Bates, Lorenzo Trevisan, Federico Piscaglia, Björn Pfeiffelmann, Jakub Benda, Nicolas Bourgeois, SeongMo Yeon, Stefan Hildenbrand

Licence

OpenFOAM 6 is distributed under the General Public Licence v3 by the OpenFOAM Foundation.

Artwork

OpenFOAM 6