# OpenFOAM version 7

**OpenFOAM®** (Open Source Field Operation and Manipulation) is an open source CFD software package developed by the OpenFOAM team at ESI and distributed by the OpenFOAM Foundation. OpenFOAM is a CFD toolbox, written in C++ and these C++ libraries are used to create executables, known as applications. The OpenFOAM distribution contains numerous solvers and utilities covering a wide range of CFD problems.

In this tutorial series, all the three stages in a CFD simulation, namely pre-processing, running, and post-processing, are focused in-depth. The first two stages are demonstrated in this series using version 7 of OpenFOAM, while ParaView 5.6.0 is used for post-processing. In addition to software training, this tutorial series also strives to demonstrate the basic CFD concepts for better understanding of various OpenFOAM solvers and utilities.

Being an open source software, OpenFOAM can be useful to technical institutes who cannot afford expensive licenses of commercial CFD software. The students and teachers trying to learn OpenFOAM through this series are expected to have some basic knowledge of CFD and Linux commands.

The Spoken Tutorials were developed using OpenFOAM Version 7, however, learners who use OpenFOAM Version 9 can also use it. The Spoken Tutorials has necessary support for learners who use OpenFOAM Version 9.

The **Spoken Tutorial** for **OpenFOAM version 7** has being contributed by Divyesh Variya, Padmini Priyadarshini, Ashley Melvin and Swetha Sridhar from **FOSSEE Project, IIT** Bombay with domain reviews done by Prof. Janani S Murallidharan of Dept. of Mechanical Engineering, IIT Bombay.

This series would be useful for Undergraduate and postgraduate students as well as faculty in the departments of Aerospace, Mechanical, Chemical and Civil Engineering.

## Contents

## Basic Level

- Overview of OpenFOAM
- About OpenFOAM
- OpenFOAM Capabilities
- Mesh Generation in OpenFOAM
- Mesh Conversion in OpenFOAM
- OpenFOAM Solvers
- Post-processing
- Spoken Tutorials available on OpenFOAM
- Timed discussion forum of Spoken Tutorials
- Discussion forum of FOSSEE
- OpenFOAM Case Study Project

- Installing OpenFOAM in Ubuntu
- Public key for package signature verification
- Add OpenFOAM to package list
- Install OpenFOAM
- Install ParaView
- Accessing .bashrc file
- User configuration to access OpenFOAM from terminal
- Verify OpenFOAM installation
- Verify ParaView Installation

- Setting-up a Test Case in OpenFOAM:
- Create Run directory
- Copy a case from Tutorial directory to Run directory
- Overview of blockMeshDict
- Overview of 0 folder
- Contents of p and U files
- Overview of transportProperties file
- Parameters in controlDict file
- blockMesh command
- icoFoam solver
- paraFoam command
- View contour plots in ParaView

- Creating 2D Channel Geometry and Mesh in OpenFOAM:
- 2D channel flow problem description
- Geometry of the channel
- Boundaries of the channel
- Dimensions of coordinates in blockMeshDict
- Vertex numbering and coordinates
- Defining a block
- Meshing parameters
- Labelling boundaries
- Ordering the vertices of a face
- Viewing mesh in ParaView

- Multi-block Meshing of a 2D Geometry in OpenFOAM:
- Two-block geometry
- Defining the vertices
- Defining multiple blocks
- Meshing parameters of each block
- Cell Expansion Ratio
- Labelling boundaries
- Defining cyclic patches
- Order of vertices of faces
- neighbourPatch for cyclic boundaries
- Viewing refined mesh in ParaView

- Creating 3D Pipe Geometry and Mesh in OpenFOAM:
- Create a 3D Geometry using blockMeshDict
- Create a Multi-block geometry and Mesh
- Mesh a 3D geometry
- Create arcs in blockMeshDict
- Label the boundary patches
- Check Mesh domain
- Check Skewness
- Check Aspect Ratio
- Check number of cells
- Check cell types
- View the 3D geometry and mesh in ParaView

- Simulating Hagen Poiseuille flow through a pipe in OpenFOAM:
- Set up the boundary conditions
- Set up the initial conditions
- Set up the physical properties
- Set up the solve control parameter
- Set up the write control parameter
- Hagen Poiseuille Flow
- 3D flow in Pipe
- Laminar flow
- Viscous & Newtonian flow
- Run the simulation

- Basic Post Processing using ParaView:
- Flow through pipe
- Hagen Poiseuille flow
- Streamline visualization
- Glyph visualization
- Clip the Mesh
- View internal flow field
- Plot graph in paraview
- Analytical and OpenFOAM result comparison
- Export the field data to .csv file
- Plot a graph in LibreOffice Suite Calc
- Save a screenshot of a view

- Simulation of a 2D Turbulent Flow in a Channel using OpenFOAM:
- 2D channel flow problem description
- Introduction to k-epsilon turbulence model
- Calculation of yp for a given yplus
- Boundary conditions for kappa
- Boundary conditions for epsilon
- Boundary conditions for kinematic eddy viscosity
- Setting up k file
- Setting up epsilon file
- Setting up nut file
- Running the simulation using simpleFoam
- Outlet velocity profile

- Turbulence Modelling in OpenFOAM:
- Create channel geometry with two blocks
- Set up the blockMeshDict dictionary for a given YPlus value
- Calculate expansion ratio
- Implement k-epsilon turbulence model
- Implement k-omega turbulence model
- Implement k-omega SST turbulence model
- Implement wall functions
- Calculate kappa, epsilon and omega
- Compare turbulence models
- Run the simulation

- Grid Resolution and Convergence in OpenFOAM:
- Lid-driven Cavity Flow Problem Statement
- Meshing parameters of Coarse mesh
- Time-step for Coarse mesh
- Simulation using icoFoam
- Probe Location Filter
- Pressure at the centre of the domain
- Refining a Mesh
- Time-step for Refined mesh
- Tabulated Pressure at the centre
- Grid Independence Study