Steady-state simulation of Ahmed body Part 1 of 3 (Meshing)

In this series of articles, a steady-state simulation of Ahmed body is presented. For the simulation, simpleFoam with realizableKE turbulence model was used.

You can see the definition of Ahmed body in CFD-Wiki.

The slant angle and wind speed were set to 30 degrees and 60 m/s. The drag coefficient of this case was measured in the wind tunnel tests by Ahmed et al. [1].

For the comparison of the drag coefficients with the wind tunnel tests, I separated the model into 7 regions.



The slice of the mesh on the y=0 plane is shown in the following images.

The number of the cells is approximately 2.9 million.





References
1. S.R. Ahmed, G. Ramm, Some Salient Features of the Time-Averaged Ground Vehicle Wake, SAE-Paper 840300, 1984


BlockMeshDict:

    convertToMeters 1;

    vertices        
    (
        (-3.4 -1.76 -0.05)
        (6.52 -1.76 -0.05)
        (6.52  1.76 -0.05)
        (-3.4  1.76 -0.05)
        (-3.4 -1.76  1.87)
        (6.52 -1.76  1.87)
        (6.52  1.76  1.87)
        (-3.4  1.76  1.87)
    );

    blocks          
    (
        hex (0 1 2 3 4 5 6 7) (124 88 48) simpleGrading (1 1 1)
    );

    edges           
    (
    );

    patches         
    (
        patch inlet
        (
            (4 0 3 7)
        )
        patch side 
        (
            (3 2 6 7)
            (7 4 5 6)
            (4 0 1 5)
        )
        wall ground 
        (
            (0 1 2 3)
        )
        patch outlet 
        (
            (5 1 2 6)
        )
    );

    mergePatchPairs 
    (
    );

snappyHexMeshDict:

    castellatedMesh true;
    snap            true;
    addLayers       true;

    geometry
    {
        AhmedBody_30deg.stl
        {
            type triSurfaceMesh;
            name ahmed;
        }
    };

    castellatedMeshControls
    {
        maxLocalCells 100000000;
        maxGlobalCells 100000000;
        minRefinementCells 0;
        maxLoadUnbalance 0;
        nCellsBetweenLevels 8;

        features
        (
            {
                file "AhmedBody_30deg.eMesh";
                level 4;
            }
        );

        refinementSurfaces
        {
            "ahmed"
            {
                level (4 4);
                
                patchInfo
                {
                    type wall;
                    inGroups (ahmed);
                }
            }
        }

        resolveFeatureAngle 30;

        refinementRegions
        {
        }

        locationInMesh (-1.1 0.1 0.1);
        allowFreeStandingZoneFaces true;
    }

    snapControls
    {
        nSmoothPatch 10;
        tolerance 2.0;
        nSolveIter 300;
        nRelaxIter 10;

        // Feature snapping
            nFeatureSnapIter 30;
            implicitFeatureSnap false;
            explicitFeatureSnap true;
            multiRegionFeatureSnap false;
    }

    addLayersControls
    {
        relativeSizes true;

        layers
        {
            "ahmed_*"
            {
                nSurfaceLayers 6;
            }

            ground
            {
                nSurfaceLayers 6;
            }
        }

        expansionRatio 1.308;
        finalLayerThickness 0.79762265822016;
        minThickness 0.0001;
        nGrow 0;

        // Advanced settings
        featureAngle 60;
        slipFeatureAngle 30;
        nRelaxIter 10;
        nSmoothSurfaceNormals 50;
        nSmoothNormals 50;
        nSmoothThickness 100;
        maxFaceThicknessRatio 1.0;
        maxThicknessToMedialRatio 1.0;
        minMedianAxisAngle 130;
        nBufferCellsNoExtrude 0;
        nLayerIter 50;
    }

    meshQualityControls
    {
        maxNonOrtho 65;
        maxBoundarySkewness 4;
        maxInternalSkewness 4;
        maxConcave 80;
        minVol 1e-13;
        minTetQuality 1e-9;
        minArea -1;
        minTwist 0.02;
        minDeterminant 0.001;
        minFaceWeight 0.02;
        minVolRatio 0.01;
        minTriangleTwist -1;

        // Advanced
        nSmoothScale 4;
        errorReduction 0.75;
    }

    // Advanced
    debug 0;
    mergeTolerance 1E-6;

Comments

  1. SnappyHexMesh looks quite reasonable, but having a look at your mesh plot in the vicinity of the trailing edge of Ahmed Body, one can see that the boundary layers is completely collapsed, do you think that this will influence the results.

    ReplyDelete
    Replies
    1. I'm not sure but I think it's OK so far.
      I don't find any strange things in the results.

      To be honest, I don't want to use addLayer feature of snappyHexMesh since it severely reduces mesh quality and its layer insertion capability is poor (it can insert layers for only 80% of the faces when it comes to a complex geometry).

      Delete
  2. Hi, How did you name the bodies?

    ReplyDelete
    Replies
    1. This model body was proposed by S. R. Ahmed et al.
      This body is commonly called Ahmed body after his name.

      Delete
  3. This comment has been removed by the author.

    ReplyDelete

Post a Comment