Cylinder mesh using blockMesh with m4 macro


After a quite long absence, I want to share a cylinder mesh with blockMesh. blockMesh is a built in mesher in OpenFOAM®. It uses simple block structured meshes. Basically I was working on meshing a complex geometry for the OpenQBMM®, and once I finished it, I separated this part and now I am making it available to use. I should mention that this work is never been possible without the help of my advisor, Prof. Alberto Passalacqua.

Software requirements:

  • OpenFOAM dev
  • m4

m4 file:

m4 file contains some commands that finally will generate the blockMesh dictionary. The advantage of using m4 is its ability of parametrisation the mesh.

  • add the complete perl-information into m4 file
define(calc, [esyscmd(perl -e 'use Math::Trig; print ($1)')])
  • labeling the vertices
define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
  • macro to initialize the blocks easily and more systematic
define(hex2D, hex ($1b $2b $3b $4b $1t $2t $3t $4t))
  • macro to define the walls and internal surfaces along $z$ direction
define(btQuad, ($1b $2b $2t $1t))
  • macro to define the inlet
define(bottomQuad, ($1b $2b $3b $4b))
  • macro to define the outlet
define(topQuad, ($1t $4t $3t $2t))
  • conversion of size
convertToMeters 0.001
  • number of cells at each side of square
define(Ns, 20)
  • number of cells between inner square and cylinder in $x$ and $y$ direction
define(Ni, 10)
  • number of cells along the cylinder height, e.g. $z$ direction
define(Nz, 100)

In order to find the defined vertices and blocks easily, I also show them in a figure below with their labels:

Cylinder

Download blockMeshDict.m4 file:

You can download the file from blockMeshDict.m4. .once you downloaded the file move the file to:

$case/system/blockMeshDict.m4

Then executing the m4 macro will generate the blockMeshDict in the same folder:

m4 blockMeshDict.m4 > blockMeshDict

As it is obvious, blockMesh should be executed afterwards.

This offering is not approved or endorsed by OpenQBMM, the producer of the OpenFOAM software and owner of the OpenFOAM® and OpenQBMM® trade marks. Ehsan Madadi is not associated to any of these companies and trade marks.