LES transient simulation of formula car nose, Part 1 of 3 (Meshing)

I modelled a formula car nose and performed an LES transient simulation.

The image below shows the 3D model of the nose, which is like the nose of Ferrari F14 T. I used Rhinoceros 5 for modelling.


Wind speed and ground speed of the simulation is 50m/s (180km/h).

Upon meshing, I decided to use addLayer feature of snappyHexMesh in order to generate adequately thin cells around the surface.

The spatial resolution of the mesh is as follows:

[far from the surface]
X: 72mm Y: 36mm Z: 36mm

[near the surface]
X: 2.25mm Y: 1.125mm Z: 1.125mm

[thickness of the nearest boundary layer cells to the surface]
0.225mm

The number of cells is approximately 13 million.





blockMeshDict:

    convertToMeters 1;

    vertices ( 

        (-3.6 -1.08 -0.02)
        ( 7.2 -1.08 -0.02)
        ( 7.2 1.08 -0.02)
        (-3.6 1.08 -0.02)
        (-3.6 -1.08 2.14)
        ( 7.2 -1.08 2.14)
        ( 7.2 1.08 2.14)
        (-3.6 1.08 2.14)
    );

    blocks
        ( hex (0 1 2 3 4 5 6 7) (150 60 60) 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
    {
        nose_2.stl
        {
            type triSurfaceMesh;
            name nose;
        }
    };

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

        features
        (
            {
                file "nose_2.eMesh";
                level 5;
            }
        );

        refinementSurfaces
        {
            "nose"
            {
                level (5 5);

                patchInfo
                {
                    type wall;
                    inGroups (car);
                }
            }
        }

        resolveFeatureAngle 30;

        refinementRegions
        {
        }

        locationInMesh (-3.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 false;

        layers
        {
            "car_*"
            {
                nSurfaceLayers 6;
            }
        }

        expansionRatio 1.308;
        finalLayerThickness 0.000860625;
        minThickness 0.00005;
        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 10;
    }

    meshQualityControls
    {
        maxNonOrtho 65;
        maxBoundarySkewness 4; //20;
        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