Meshing with foamyHexMesh for Perrinn myP1

In this post, I show a result of meshing using foamyHexMesh for a racing car.

I modified the geometry of the racing car in a previous post (Geometry modification of Perrinn myP1).

Perrinn myP1 open-source LMP1 racing car 

The procedure of meshing is described in another previous post (Meshing with foamyHexMesh).

defaultCellSize is 0.1 and surfaceCellSizeCoeff of myP1 is 0.1.

That means the cell size is 10mm on the surface of the car, and glows up to 100mm  according to the distance from the surface of the car.

================
foamyHexMesh:
// Include defaults parameters from master dictionary
#include "$WM_PROJECT_DIR/etc/caseDicts/foamyHexMeshDict"
geometry
{
    myP1_one_solid_combined.stl
    {
        name myP1;
        type triSurfaceMesh;
    }
    Box.stl
    {
        name box;
        type triSurfaceMesh;
    }
}

surfaceConformation
{
    locationInMesh (-3 0 0);
    featurePointControls
    {
        specialiseFeaturePoints off;
        edgeAiming              on;
        guardFeaturePoints      off;
        snapFeaturePoints       off;
        circulateEdges          on;
    }
    // Geometry to mesh to
    geometryToConformTo
    {
        myP1
        {
            featureMethod   extractFeatures;
            includedAngle   140;
            mode            inside;
            patchInfo
            {
                type        wall;
                inGroups    (groupMyP1);
            }
        }
        box
        {
            featureMethod   extractFeatures;
            includedAngle   100;
            mode            outside;
            patchInfo
            {
                type        wall;
                inGroups    (groupBox);
            }
        }
    }
    additionalFeatures
    {
        boxSphereIntersection
        {
            featureMethod           extendedFeatureEdgeMesh;
            extendedFeatureEdgeMesh "myP1_one_solid_combined_Box_intersection.extendedFeatureEdgeMesh";
        }
    }
}

initialPoints
{
    initialPointsMethod         autoDensity;
    autoDensityCoeffs
    {
        minCellSizeLimit        0;
        minLevels               0;
        maxSizeRatio            5;
        sampleResolution        10;
        surfaceSampleResolution 10;
    }
}

motionControl
{
    defaultCellSize         0.1;
    minimumCellSizeCoeff    0;
    // For background cell size and alignment grid
    maxSmoothingIterations  200;
    maxRefinementIterations 0;
    shapeControlFunctions
    {
        myP1
        {
            type                        searchableSurfaceControl;
            priority                    1;
            mode                        inside;
            surfaceCellSizeFunction     uniformValue;
            uniformValueCoeffs
            {
                surfaceCellSizeCoeff    0.1;
            }
            cellSizeFunction            linearDistance;
            uniformCoeffs
            {}
            linearDistanceCoeffs
            {
                distanceCellSizeCoeff 1;
                distanceCoeff 5;
            }
        }
        box
        {
            type                searchableSurfaceControl;
            priority            2;
            mode                outside;
            surfaceCellSizeFunction uniformValue;
            uniformValueCoeffs
            {
                surfaceCellSizeCoeff 1.0;
            }
            cellSizeFunction        uniform;
            uniformCoeffs
            {}
        }
    }
    cellAspectRatioControl
    {
        // Aspect ratio.
        aspectRatio 2.0;
        // Direction of action of the aspect ratio
        aspectRatioDirection (1 0 0);
    }
    // Output lots and lots of .obj files
    objOutput                   no;
    // Timing and memory usage.
    timeChecks                  no;
}
// After simulation, when converting to polyMesh, filter out small faces/edges.
// Do not change. See cvControls.H
polyMeshFiltering
{
    filterEdges                 on;
    filterFaces                 on;
    writeTetDualMesh            false;
}

meshQualityControls
{
    #include "meshQualityDict"
}

================

The resulting mesh is shown below. At first glance it seems good, but when I look in detail, I found many problems.

mesh overview

mesh overview (back view)

problems on the edges of the contact patches of tyres

problems on the edges of the rear wing gurney flap

problems on the edges of the mirror

problems on the edges of the front wing endplate

I guessed smaller cell size on the surface of the car would work, so I'm now trying surfaceCellSizeCoeff of 0.05 for myP1. (It means the cell size on the surface of the car is 5mm.)

Comments