Previous: System files and case Up: OpenFOAM tutorial – Cyclone Next: Basic postprocessing
This is an automatically generated documentation by LaTeX2HTML utility. In case of any issue, please, contact us at info@cfdsupport.com.

Running the case

  • Running the case consists of several steps which are pre-defined in the script file AllrunSnappyMesh.sh below.
  • The basic steps are:
    • clean the case and set given number of processors
    • create background mesh and run snappyHexMesh
    • creating necessary files for MPPICFoam solver
    • running MPPICFoam solver


cd ${0%/*} || exit 1

if [[ $(echo $WM_PROJECT_VERSION | cut -c1-3) != "dev" ]]
    echo "Use OpenFOAM dev with this example script, please."

# Number of processes. This number will be written to "system/decomposeParDict".
if [[ $NPROCESS == "" ]]
    # ... or use all cores of a single-processor machine.
    NPROCESS=$(sed -n "s/cpu cores[\t :]*\([0-9]\+\)/\1/p" /proc/cpuinfo | sort -u)
echo "Numer of processors set for this simulation: --> $NPROCESS <--"
sed -i "s/numberOfSubdomains.*[0-9][0-9]*;/numberOfSubdomains $NPROCESS;/g" system/decomposeParDict 

echo "Cleaning cases..."
./AllcleanAll.sh > allClean 2>&1
mv allClean log-01-allClean
echo "              ...done"

echo "Creating backgroundMesh..."
blockMesh > log-02-blockMesh 2>&1
echo "                       ...done"

echo "Generating feature-edges..."
surfaceFeatureExtract > log-03-surfaceFeatureExtract 2>&1
echo "                        ...done"

echo "Decomposing background mesh..."
decomposePar > log-04-decomposePar-backgroundMesh 2>&1
echo "                           ...done"
echo "Running snappyHexMesh..."
mpiexec -np $NPROCESS snappyHexMesh -parallel -overwrite  > log-05-snappyHexMesh 2>&1
echo "                     ...done"

echo "Checking mesh..."
mpiexec -np $NPROCESS checkMesh -parallel > log-06-checkMesh 2>&1
echo "                               ...done"
echo "Reconstructing mesh..."
reconstructParMesh -latestTime -constant > log-07-reconstructParMesh 2>&1
echo "                   ...done"

echo "Cleaning mesh..."
createPatch -overwrite > log-08-createPatch 2>&1
echo "             ...done"

echo "Creating initial setup..."
cp -rv 0.org 0
echo "                      ...done"

echo "Decomposing case..."
decomposePar -force > log-09-decomposePar 2>&1
echo "                ...done"

echo "Running MPPICFoam..."
mpiexec -np $NPROCESS MPPICFoam -parallel > log-10-MPPICFoam 2>&1
echo "                  ...done"

echo "Reconstructing all saved times..."
reconstructPar > log-11-reconstructPar 2>&1
echo "                  ...done"


  • line 11 checks if the script is run from the place where the script file is stored
  • lines 13-17 check if OpenFOAM v3.0.* is used
  • lines 19-28 read number of subdomain used for computation, it uses maximum number of cores available if nothing is specified
  • lines 30-34 run script which cleans the case directory
  • lines 36-39 creates the backgroundMesh which is defined in blockMeshDict file
  • lines 41-44 more robust snapping to geometry edges can be achieved by means of feature-edges which are generated using surfaceFeatureExtract utility
  • lines 46-49 for parallel mesh generation the case is decomposed
  • lines 51-54 run snappyHexMesh in parallel; the flag -overwrite means, that new mesh will be stored in /constant/polyMesh directory
  • lines 56-59 check the quality of new generated mesh
  • lines 61-64 reconstruct the mesh
  • lines 66-69 clean empty patches in mesh
  • lines 71-75 create directory 0
  • lines 76-78 decompose the case for parallel running
  • lines 80-82 run computation in parallel
  • lines 84-86 reconstruct all time directiories
  • Go to case directory and run the script, e.g. using 4 cores:
    # ./AllrunSnappyMesh.sh 4