CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [snappyHexMesh] non manifold points (https://www.cfd-online.com/Forums/openfoam-meshing/254006-non-manifold-points.html)

Casper123 January 14, 2024 11:58

non manifold points [answered]
 
Hey OpenFoamers,

For my simulation of a rotating wheel (which currently is only a simple cylinder), I have created a mesh using snappyHexMesh. However, when running my case the velocity always explodes and I do not think it is due to the boundary conditions as it usually starts somewhere within the mesh. I could not find any logic behind where the issue starts based on looking at each timestep. My simulation will be an MRF approach and using the pimpleFoam solver. For now, I have set the rotation to zero for simplicity.

However, after running checkMesh -writeSets vtk, it outputs a file called nonManifoldPoints.vtk. When loading it in ParaView it looks something like the attached images, where the red dots are the output. I cannot find which setting triggers these nonManifoldPoints or see why these points are non manifold using paraview.

I will provide my snappyHexMeshDict below, in that file I refer to the wheel surface as 'wiel'. Hope someone can help me out!

Edit:
I found the issue. The refinementSurfaces in the snappyHexMeshDict wants to refine both the MRF and the wiel surfaces. This caused an issue, therefore I disabled the refinementSurfaces MRF. This did remove the creation of the MRF cellzone, so for this I used topoSet.

Regards,
Casper

Code:

/*--------------------------------*- C++ -*----------------------------------*\
  =========                |
  \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox
  \\    /  O peration    | Website:  https://openfoam.org
    \\  /    A nd          | Version:  7 
    \\/    M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    object      snappyHexMeshDict;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

castellatedMesh true;
snap            true;
addLayers      true;

geometry
{
    wiel
    {
        type triSurfaceMesh;
        file "wiel.stl";
    }
    MRF
    {
        type searchableCylinder;
        point1 (0 -150 0);
        point2 (0  150 0);
        radius 300;
    }
}


castellatedMeshControls
{

    maxLocalCells 100000;

    maxGlobalCells 2000000;

    minRefinementCells 0;

    nCellsBetweenLevels 2;

    maxLoadUnbalance 0.10;

    features
    (
        {
            file "wiel.eMesh";
            level 0;
        }
    );

    resolveFeatureAngle 30;

    refinementSurfaces
    {
        MRF
        {
            level (0 0);
            cellZone cellMRFzone;
            faceZone faceMRFzone;
            cellZoneInside inside;
        }

        wiel
        {
            level (0 0);
        }
    }

    refinementRegions
    {
        MRF
        {
            mode inside;
            levels ((1E15 1));
        }
       
    }

    locationInMesh (1000.0001 0 0); // Inside point

    allowFreeStandingZoneFaces true;
}

// Settings for the snapping.
snapControls
{

    nSmoothPatch 3;

    tolerance 0.1;

    nSolveIter 300;

    nRelaxIter 10;

    nFeatureSnapIter 10;

    implicitFeatureSnap true;

    explicitFeatureSnap false;

    multiRegionFeatureSnap true;
}

// Settings for the layer addition.
addLayersControls
{

    relativeSizes true;

    layers
    {
                wiel
                {
                        nSurfaceLayers 3;
                }
    }

    expansionRatio 1.0;

    finalLayerThickness 0.3;

    minThickness 0.25;

    nGrow 0;

    featureAngle 30;

    nRelaxIter 5;

    nSmoothSurfaceNormals 1;

    nSmoothNormals 3;

    nSmoothThickness 10;

    maxFaceThicknessRatio 0.5;

    maxThicknessToMedialRatio 0.3;

    minMedianAxisAngle 90;

    nBufferCellsNoExtrude 0;

    nLayerIter 50;

    nRelaxedIter 20;
}

meshQualityControls
{
    #include "meshQualityDict"

    relaxed
    {
        maxNonOrtho 75;
    }
}

writeFlags
(
);

mergeTolerance 1E-6;


// ************************************************************************* //



All times are GMT -4. The time now is 06:24.