[Table of Contents][Introduction →].

The OpenFOAM User Guide provides an introduction to OpenFOAM, through some basic tutorials, and some details about the general operation of OpenFOAM. OpenFOAM is a collection of approximately 250 applications built upon a collection of over 100 software libraries (modules). Each application performs a specific task within a CFD workflow. The snappyHexMesh application, for example, is a mesh generator for complex geometry, which could be used to generate a mesh around a vehicle. The simpleFoam application could then be used to simulate steady-state, turbulent, incompressible flow around the vehicle. Alternatively, a transient simulation could be run with the pimpleFoam application. The OpenFOAM User Guide describes these applications and how to execute them, either on a single processor or in parallel on multiple processors.

The OpenFOAM User Guide then examines the set up of input data files for a CFD analysis. The input data includes time information (start time, end time, time step, etc) and controls for reading and writing data (time, format, compression, etc). It describes the setting of numerical schemes that affects accuracy and stability of a simulation. Matrix solver controls and algorithm controls are also explained that affect computational time and stability.

The OpenFOAM User Guide includes a chapter on meshing, beginning with the mesh structure of OpenFOAM and the handling of boundaries and boundary conditions. The blockMesh application for generating meshes of simple geometries is described in detail, followed by the snappyHexMesh application and its control parameters. OpenFOAM includes applications that convert meshes from well known formats into the OpenFOAM format and detailed coverage is given to the principle conversion applications, e.g. fluentMeshToFoam. The mapFields application maps field data, e.g. pressure, velocity, from one mesh/geometry to another.

OpenFOAM is shipped with a version of ParaView that includes a reader module to read data in OpenFOAM format. This enables visualization of solution from OpenFOAM, with elements used commonly in CFD such as geometry surfaces, cutting planes, vector plots and streamlines. Animations can be generated conveniently from ParaView.

Contents

1 Introduction 2 Tutorials 2.1 Lid-driven cavity flow 2.1.1 Pre-processing 2.1.2 Viewing the mesh 2.1.3 Running an application 2.1.4 Post-processing 2.1.5 Increasing the mesh resolution 2.1.6 Introducing mesh grading 2.1.7 Increasing the Reynolds number 2.1.8 High Reynolds number flow 2.1.9 Changing the case geometry 2.1.10 Post-processing the modified geometry 2.2 Stress analysis of a plate with a hole 2.2.1 Mesh generation 2.2.2 Running the code 2.2.3 Post-processing 2.2.4 Exercises 2.3 Breaking of a dam 2.3.1 Mesh generation 2.3.2 Boundary conditions 2.3.3 Setting initial field 2.3.4 Fluid properties 2.3.5 Turbulence modelling 2.3.6 Time step control 2.3.7 Discretisation schemes 2.3.8 Linear-solver control 2.3.9 Running the code 2.3.10 Post-processing 2.3.11 Running in parallel 2.3.12 Post-processing a case run in parallel 3 Applications and libraries 3.1 The programming language of OpenFOAM 3.1.1 Language in general 3.1.2 Object-orientation and C++ 3.1.3 Equation representation 3.1.4 Solver codes 3.2 Compiling applications and libraries 3.2.1 Header .H files 3.2.2 Compiling with wmake 3.2.3 Removing dependency lists: wclean 3.2.4 Compiling libraries 3.2.5 Compilation example: the pisoFoam application 3.2.6 Debug messaging and optimisation switches 3.2.7 Linking new user-defined libraries to existing applications 3.3 Running applications 3.4 Running applications in parallel 3.4.1 Decomposition of mesh and initial field data 3.4.2 Running a decomposed case 3.4.3 Distributing data across several disks 3.4.4 Post-processing parallel processed cases 3.5 Standard solvers 3.5.1 ‘Basic’ CFD codes 3.5.2 Incompressible flow 3.5.3 Compressible flow 3.5.4 Multiphase flow 3.5.5 Direct numerical simulation (DNS) 3.5.6 Combustion 3.5.7 Heat transfer and buoyancy-driven flows 3.5.8 Particle-tracking flows 3.5.9 Discrete methods 3.5.10 Electromagnetics 3.5.11 Stress analysis of solids 3.5.12 Finance 3.6 Standard utilities 3.6.1 Pre-processing 3.6.2 Mesh generation 3.6.3 Mesh conversion 3.6.4 Mesh manipulation 3.6.5 Other mesh tools 3.6.6 Post-processing 3.6.7 Post-processing data converters 3.6.8 Surface mesh (e.g. OBJ/STL) tools 3.6.9 Parallel processing 3.6.10 Thermophysical-related utilities 3.6.11 Miscellaneous utilities 4 OpenFOAM cases 4.1 File structure of OpenFOAM cases 4.2 Basic input/output file format 4.2.1 General syntax rules 4.2.2 Dictionaries 4.2.3 The data file header 4.2.4 Lists 4.2.5 Scalars, vectors and tensors 4.2.6 Dimensional units 4.2.7 Dimensioned types 4.2.8 Fields 4.2.9 Macro expansion 4.2.10 Including files 4.2.11 Regular expressions 4.2.12 Keyword ordering 4.2.13 Inline calculations and code 4.3 Time and data input/output control 4.3.1 Time control 4.3.2 Data writing 4.3.3 Other settings 4.4 Numerical schemes 4.4.1 Time schemes 4.4.2 Gradient schemes 4.4.3 Divergence schemes 4.4.4 Surface normal gradient schemes 4.4.5 Laplacian schemes 4.4.6 Interpolation schemes 4.5 Solution and algorithm control 4.5.1 Linear solver control 4.5.2 Solution under-relaxation 4.5.3 PISO, SIMPLE and PIMPLE algorithms 4.5.4 Pressure referencing 4.5.5 Other parameters 4.6 Case management tools 4.6.1 File management scripts 4.6.2 The foamDictionary tool 5 Mesh generation and conversion 5.1 Mesh description 5.1.1 Mesh specification and validity constraints 5.1.2 The polyMesh description 5.1.3 Cell shapes 5.1.4 1- and 2-dimensional and axi-symmetric problems 5.2 Boundaries 5.2.1 Geometric (constraint) patch types 5.2.2 Basic boundary conditions 5.2.3 Derived types 5.3 Mesh generation with the blockMesh utility 5.3.1 Writing a blockMeshDict file 5.3.2 Multiple blocks 5.3.3 Creating blocks with fewer than 8 vertices 5.3.4 Running blockMesh 5.4 Mesh generation with the snappyHexMesh utility 5.4.1 The mesh generation process of snappyHexMesh 5.4.2 Creating the background hex mesh 5.4.3 Cell splitting at feature edges and surfaces 5.4.4 Cell removal 5.4.5 Cell splitting in specified regions 5.4.6 Snapping to surfaces 5.4.7 Mesh layers 5.4.8 Mesh quality controls 5.5 Mesh conversion 5.5.1 fluentMeshToFoam 5.5.2 starToFoam 5.5.3 gambitToFoam 5.5.4 ideasToFoam 5.5.5 cfx4ToFoam 5.6 Mapping fields between different geometries 5.6.1 Mapping consistent fields 5.6.2 Mapping inconsistent fields 5.6.3 Mapping parallel cases 6 Post-processing 6.1 ParaView/paraFoam graphical user interface (GUI) 6.1.1 Overview of ParaView/paraFoam 6.1.2 The Parameters panel 6.1.3 The Display panel 6.1.4 The button toolbars 6.1.5 Manipulating the view 6.1.6 Contour plots 6.1.7 Vector plots 6.1.8 Streamlines 6.1.9 Image output 6.1.10 Animation output 6.2 Post-processing command line interface (CLI) 6.2.1 Post-processing functionality 6.2.2 Run-time data processing 6.2.3 The postProcess utility 6.2.4 Solver post-processing 6.3 Sampling and monitoring data 6.3.1 Probing data 6.3.2 Sampling for graphs 6.3.3 Sampling for visualisation 6.3.4 Live monitoring of data 6.4 Third-Party post-processing 6.4.1 Post-processing with EnSight 7 Models and physical properties 7.1 Thermophysical models 7.1.1 Thermophysical and mixture models 7.1.2 Transport model 7.1.3 Thermodynamic models 7.1.4 Composition of each constituent 7.1.5 Equation of state 7.1.6 Selection of energy variable 7.1.7 Thermophysical property data 7.2 Turbulence models 7.2.1 Reynolds-averaged simulation (RAS) modelling 7.2.2 Large eddy simulation (LES) modelling 7.2.3 Model coefficients 7.2.4 Wall functions 7.3 Transport/rheology models 7.3.1 Newtonian model 7.3.2 Bird-Carreau model 7.3.3 Cross Power Law model 7.3.4 Power Law model 7.3.5 Herschel-Bulkley model 7.3.6 Casson model (currently OpenFOAM-dev)

© 2011-2016 OpenFOAM Foundation
CC-NC-ND 3.0

Tagged on: