Contrib/MakeAxialMesh

From OpenFOAMWiki

Valid versions: OF version 13.png OF version 14.png OF version 141.png OF version 15.png OF version 16.png OF version 17.png OF Version 20.png

1 Short description

Creates an axial-symmetric grid from a two-dimensional OpenFOAM grid file. (For a guide on axisymmetric geometries and domains which feature 3D flows see this page.)

2 Usage

Prior to running makeAxialMesh, you will need to have created a mesh and have it available in a typical OpenFOAM file structure. If you have previously run blockMesh or converted a mesh from a third-party mesh generator into the OpenFOAM format, you are ready to run makeAxialMesh.

The makeAxialMesh application needs two inputs beyond the ubiquitous root and case inputs:

  1. name of the boundary that is the symmetry axis
  2. name of the boundary that is to be split into two wedge-boundaries (front and back)

The code assumes the following about the grid:

  • 2D-Grid (just one cell thick)
  • the axis of symmetry is parallel to the XY-plane
  • the boundary that is the symmetry axis is a straight line
  • the "front" and "back" are one patch
  • the domain does not cross y=0

The type of the axis-patch is set to empty, the type of the newly created patches to wedge.


To complete the construction of your axisymmetric mesh, you must next use the collapseEdges utility to remove the faces at the symmetry axis. The makeAxialMesh code doesn't manipulate the connectivity of the mesh, but only deforms the mesh so that the faces on the axis become zero size (rectangles with one side of zero area). The collapseEdges utility should remove these degenerate edges (and the faces that go with it) and stitch the mesh together. For an application like this, you would want to use collapseEdges with a very small length scale argument and an angle argument near 180 degrees.

3 Example

The original mesh
The converted mesh


The original mesh had (amongst others) these faces:

center 
The face that is to be collapsed and turned into a symmetry axis (at the bottom in the picture on the left)
frontAndBackPlanes 
The patch that contains the front and the back face and will be split into two patches)

The command

makeAxialMesh . testAxial2 center frontAndBackPlanes

converts this into the mesh seen in the picture on the right.

With the new calling convention starting from 1.5 the same would be achieved with

makeAxialMesh -case testAxial2 -axis center -wedge frontAndBackPlanes

Also there is also the possibility to specify the parameters via dictionaries

4 Download

To download the version discussed above, use the following two links.

The tar file with the sources. Works only for OpenFOAM 1.3.

The tar file with sources. Works for OpenFOAM 1.4 and 1.4.1.

A tar with the sources that work for 2.x.

The up-to-date version (that works with a dictionary) can be downloaded via Subversion (it compiles on versions from 1.4.1 to 1.7.x, 1.6-ext but not 1.5-dev):

svn checkout svn://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder_1.6/utilities/mesh/manipulation/MakeAxialMesh

A slightly older version (it compiles on versions from 1.4.1 to 1.7.x, 1.5-dev but not 1.6-ext):

svn checkout svn://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder_1.5/utilities/mesh/manipulation/MakeAxialMesh

Version for 2.0 is found at

svn checkout svn://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder_2.0/utilities/mesh/manipulation/MakeAxialMesh

The version for 1.4.1 is this

svn checkout svn://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder/utilities/mesh/manipulation/MakeAxialMesh

This modified version is maintained as part of the continuing development of openfoam-extend.

5 Installation

After downloading (and possibly unpacking) the source code as explained in the Download chapter, you can install by running the following command inside the folder for MakeAxialMesh:

./Allwmake

Run it a second time:

./Allwmake

If it tells you that the file is up-to-date:

make: `/home/ofuser/OpenFOAM/ofuser-2.x.x/platforms/linux64GccDPOpt/bin/makeAxialMesh' is up to date. 

then it's installed and ready to be used.

6 History

This utility was discussed in this thread on the Message Board.

  • 2006-03-28: New version which fixes a bug if the axis is not the whole length of the grid (fix provided by E David Huckaby)

Types of the newly created patches are set

  • 2006-04-03: New Version that works under OpenFOAM 1.3. Removes a bug that was introduced in the last version.

--Bgschaid 14:13, 31 May 2005 (CEST)