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:
- name of the boundary that is the symmetry axis
- 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 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)