1

Previous: Mesh of non-rotating part Up: Mesh of non-rotating part Next: Merging meshes of rotating

This is an automatically generated documentation by LaTeX2HTML utility. In case of any issue, please, contact us at info@cfdsupport.com.

Non-rotating part mesh generation

  • Let’s start with listing of the part of the makeMesh.sh script that belongs to the mesh generation of the non-rotating part of this model.
    echo "Creating mesh of non rotating part..."
       cd  nonRotatingPart
       blockMesh > ../../log.nonRotatingPart-blockMesh  2>&1
       surfaceFeatureExtract > ../../log.nonRotatingPart-surfaceFeatureExtract 2>&1
       decomposePar > ../../log.nonRotatingPart-decomposePar  2>&1
       mpiexec -np $numProcs snappyHexMesh -overwrite -parallel > ../../log.nonRotatingPart-snappyHexMesh  2>&1
       reconstructParMesh -constant > ../../log.nonRotatingPart-reconstructParMesh  2>&1
       topoSet > ../../log.nonRotatingPart-topoSet 2>&1    # creating 'Co1_zone' zone
       checkMesh  -constant > ../../log.nonRotatingPart-checkMesh  2>&1
       cd ..
    
  • Lines 32 – 34 prints “Creating mesh of non rotating part…” on the terminal screen, jumps into the directory mesh/nonRotatingPart and starts the application blockMesh (line 34) for making the background mesh for the non-rotating part of the wind turbine model. The standard output is forwarded into the log file (log.nonRotatingPart-blockMesh).

    # cd mesh/nonRotatingPart/
    # blockMesh > ../../log.nonRotatingPart-blockMesh 2>&1

  • One can see the detailed settings of blockMesh in blockMeshDict.

    # cat mesh/nonRotatingPart/system/blockMeshDict

  • Line 35 – running surfaceFeatureExtract utility for making *.eMesh files containing feature edges information. One can see the settings for this utility in system/surfaceFeatureExtractDict and system/surfaceFeatureExtractDictDefaults

    # surfaceFeatureExtract > \
    ../../log.nonRotatingPart-surfaceFeatureExtract 2>&1

  • Once the background mesh is created it can be decomposed (line 36) for parallel execution with settings defined in system/decomposeParDict.

    # decomposePar > ../../log.rotatingPart-decomposePar 2>&1

  • The main mesh generation process is done using utility snappyHexMesh (line 37).

    # mpiexec -np 6 snappyHexMesh -overwrite -parallel > \
    ../../log.nonRotatingPart-snappyHexMesh 2>&1

  • And a parallel reconstruction of the mesh (line 38).

    # reconstructParMesh -constant > \
    ../../log.nonRotatingPart-reconstructParMesh 2>&1

  • The switch -constant in the command above means one wants to reconstruct the mesh directly into the directory constant.
  • Using topoSet (line 39) one will create non-rotating zone useful for future post-processing later on.

    # topoSet > ../../log.nonRotatingPart-topoSet 2>&1

  • Line 40 – running the checkMesh utility to collect the information about the mesh size and quality.
  • Line 41 – just a jump back to the root directory of the case.
  • The background mesh is quite coarse because the volume of the domain is huge. Therefore, four cylindrical refinementRegions near and behind the wind turbine are employed in system/snappyHexMeshDict – search for refinementCyl1 .. 4 in system/snappyHexMeshDict.
  • See the definition of geometry of the refinement cylinders in following listing of the snappyHexMeshDict file:
        refinementCyl4
        {
            type searchableCylinder;
            point1 (-15000 0 0);
            point2 (8000 0 0);
            radius 33000;
        }
        refinementCyl3
        {
            type searchableCylinder;
            point1 (-50000 0 0);
            point2 (10000 0 0);
            radius 35000;
        }
        refinementCyl2
        {
            type searchableCylinder;
            point1 (-100000 0 0);
            point2 (15000 0 0);
            radius 37000;
        }
        refinementCyl1
        {
            type searchableCylinder;
            point1 (-160000 0 0);
            point2 (20000 0 0);
            radius 40000;
        }
    
  • See the definition of mesh refinement inside the cylinders in following listing of the snappyHexMeshDict file:
        refinementRegions
        {
            refinementCyl1
            {
                mode inside;
                levels ((1E15 1));
            }
            refinementCyl2
            {    
                mode inside;
                levels ((1E15 2));
            }
            refinementCyl3
            {    
                mode inside;
                levels ((1E15 3));
            }
            refinementCyl4
            {    
                mode inside;
                levels ((1E15 4));
            }
        }
    
  • See the effect of the refinement defined by refinementRegions in the figure crossref 3.
CFDsupport meshing training wind turbine mesh 2
CFDsupport meshing training wind turbine mesh 3

Figure: Wind turbine tutorial. Mesh of non-rotating part.