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] 'cracks' in Mesh on surface using STL (https://www.cfd-online.com/Forums/openfoam-meshing/182805-cracks-mesh-surface-using-stl.html)

Fschi January 19, 2017 07:46

'cracks' in Mesh on surface using STL
 
3 Attachment(s)
Hello,
I've got some troubles generating a good mesh with snappyHexMesh using HelyxOS as GUI.

I have a several surface-geometries of a car as STL. And I need to have a qood mesh, especially on the surface because its used for wallFilm modelling.

Below I've got 3 different pictures. The first shows the 'crack' in the mesh. The second the original STL at that point.
And in the third picture you can see the result using that mesh for the wallFilm-simulation. So it's not just some grafics problem in paraview.

I've tried to use implicit snapping, surfaceFeatureExtract, refinementBoxes but nothing helps...

Does anybody got an idea what to change?



That's the SnappyHexMeshDict for the mesh in the pictures
Code:

/*--------------------------------*- C++ -*----------------------------------*\
|      o          |                                                          |
|    o    o      | HELYX-OS                                                  |
|  o  O  o      | Version: v2.4.0                                          |
|    o    o      | Web:    http://www.engys.com                            |
|      o          |                                                          |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version 2.0;
    format ascii;
    class dictionary;
    location system;
    object snappyHexMeshDict;
}

    castellatedMesh true;
    snap true;
    addLayers true;
    geometry
    {
        car_side.stl
        {
            type triSurfaceMesh;
            name car_side;
            appendRegionName false;
        }

        car_mirror.stl
        {
            type triSurfaceMesh;
            name car_mirror;
            appendRegionName false;
        }

        car_window.stl
        {
            type triSurfaceMesh;
            name car_window;
            appendRegionName false;
        }

        car_A_pillar.stl
        {
            type triSurfaceMesh;
            name car_A_pillar;
            appendRegionName false;
        }

        refinementBox
        {
            type searchableBox;
            min ( -0.2 -1.2 0.4 );
            max ( 1.4 -0.3 1.4 );
        }

    }

    castellatedMeshControls
    {
        features
        (
        );
        refinementSurfaces
        {
            car_side
            {
                level ( 6 6 );
            }

            car_mirror
            {
                level ( 6 6 );
            }

            car_window.stl
            {
                level ( 3 3 );
            }

            car_A_pillar
            {
                level ( 6 6 );
            }

        }

        refinementRegions
        {
            refinementBox
            {
                mode inside;
                levels (( 1E5 4 ));
            }

        }

        locationInMesh ( 1.0 -0.6 1.15 );
        maxLocalCells 500000;
        maxGlobalCells 4000000;
        minRefinementCells 0;
        nCellsBetweenLevels 3;
        resolveFeatureAngle 30.0;
        allowFreeStandingZoneFaces true;
        planarAngle 30.0;
        maxLoadUnbalance 0.1;
    }

    snapControls
    {
        nSolveIter 30;
        nSmoothPatch 15;
        tolerance 5.0;
        nRelaxIter 20;
        nFeatureSnapIter 25;
        implicitFeatureSnap false;
        explicitFeatureSnap true;
        multiRegionFeatureSnap false;
    }

    addLayersControls
    {
        layers
        {
        }

        relativeSizes true;
        expansionRatio 1.0;
        finalLayerThickness 0.3;
        minThickness 0.25;
        nGrow 0;
        featureAngle 130.0;
        slipFeatureAngle 30.0;
        nRelaxIter 5;
        nSmoothSurfaceNormals 1;
        nSmoothNormals 3;
        nSmoothThickness 10;
        maxFaceThicknessRatio 0.5;
        maxThicknessToMedialRatio 0.3;
        minMedialAxisAngle 90;
        nBufferCellsNoExtrude 0;
        nLayerIter 50;
        nRelaxedIter 20;
        writeVTK false;
        noErrors false;
        layerRecovery 1;
        growZoneLayers false;
        projectGrownUp 0.0;
    }

    meshQualityControls
    {
        maxNonOrtho 65.0;
        maxBoundarySkewness 20;
        maxInternalSkewness 4;
        maxConcave 80.0;
        minFlatness 0.5;
        minVol 1.0E-13;
        minTetQuality 1.0E-15;
        minArea -1.0;
        minTwist 0.02;
        minDeterminant 0.001;
        minFaceWeight 0.05;
        minVolRatio 0.01;
        minTriangleTwist -1.0;
        nSmoothScale 4;
        errorReduction 0.75;
        relaxed
        {
            maxNonOrtho 75;
        }

    }

    debug 0;
    mergeTolerance 1.0E-6;
    autoBlockMesh false;

and checkMesh:
Code:

...

Checking geometry...
    Overall domain bounding box (-1.5 -1.3 0.499994189) (3.5 7.236849546e-35 1.5)
    Mesh has 3 geometric (non-empty/wedge) directions (1 1 1)
    Mesh has 3 solution (non-empty) directions (1 1 1)
    Boundary openness (-1.751362408e-17 5.916174453e-16 8.765075835e-16) OK.
    Max cell openness = 6.012466732e-16 OK.
    Max aspect ratio = 22.62027622 OK.
    Minimum face area = 1.424391158e-07. Maximum face area = 0.01792372431.  Face area magnitudes OK.
    Min volume = 3.321075353e-10. Max volume = 0.002282463027.  Total volume = 5.595986151.  Cell volumes OK.
    Mesh non-orthogonality Max: 66.78962882 average: 7.806298952
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 3.76298589 OK.
    Coupled point location match (average 0) OK.

Mesh OK.


akidess January 19, 2017 07:58

Fix the STL?

Fschi January 19, 2017 08:07

as far as I understand, the STL is ok. The problem doesn't appear always on the same point of the geometry.
So I thougth, it's an meshing error, not of the STL

akidess January 19, 2017 08:33

Did you surfaceCheck the STLs?

Fschi January 19, 2017 09:22

ok I think you are right! if I understand the output of surfaceCheck correctly I have to work on the stl...

Code:

/*---------------------------------------------------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  4.1                                  |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
Build  : 4.1
Exec  : surfaceCheck constant/triSurface/Spiegelregion.stl
Date  : Jan 19 2017
Time  : 15:11:15
....
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Reading surface from "constant/triSurface/Spiegelregion.stl" ...

Statistics:
Triangles    : 42809
Vertices    : 21415
Bounding Box : (0.07 -0.790212 0.6) (1.17 -0.5 1.12464)

Region        Size
------        ----
Exported_from_Blender-2.74_(sub_0)        42809


Surface has no illegal triangles.

Triangle quality (equilateral=1, collapsed=0):
    0 .. 0.05  : 0.0726016
    0.05 .. 0.1  : 0.0334743
    0.1 .. 0.15  : 0.0217244
    0.15 .. 0.2  : 0.0181971
    0.2 .. 0.25  : 0.0159546
    0.25 .. 0.3  : 0.0164919
    0.3 .. 0.35  : 0.0188278
    0.35 .. 0.4  : 0.0216777
    0.4 .. 0.45  : 0.0295031
    0.45 .. 0.5  : 0.02371
    0.5 .. 0.55  : 0.0319092
    0.55 .. 0.6  : 0.0406223
    0.6 .. 0.65  : 0.0571142
    0.65 .. 0.7  : 0.0771333
    0.7 .. 0.75  : 0.112873
    0.75 .. 0.8  : 0.27041
    0.8 .. 0.85  : 0.0464856
    0.85 .. 0.9  : 0.03268
    0.9 .. 0.95  : 0.0261861
    0.95 .. 1  : 0.0324231

    min 0 for triangle 34757
    max 0.999993 for triangle 24817

--> FOAM Warning :
    From function int main(int, char**)
    in file surfaceCheck.C at line 371
    0. This might give problems in self-intersection testing later on.
Dumping bad quality faces to "badFaces"
Paste this into the input for surfaceSubset


Edges:
    min 5.00679e-06 for edge 54594 points (0.235606 -0.5 0.658116)(0.235606 -0.5 0.658121)
    max 1.06807 for edge 63483 points (1.15987 -0.79019 0.6)(0.092734 -0.745425 0.6)

Checking for points less than 1e-6 of bounding box ((1.1 0.290212 0.52464) metre) apart.
Found 0 nearby points.

Surface is not closed since not all edges connected to two faces:
    connected to one face : 17
    connected to >2 faces : 0
Conflicting face labels:17
Dumping conflicting face labels to "problemFaces"
Paste this into the input for surfaceSubset

Number of unconnected parts : 6
Splitting surface into parts ...

Writing zoning to "zone_Spiegelregion.vtk"...

writing part 0 size 42802 to "Spiegelregion_0.obj"
writing part 1 size 1 to "Spiegelregion_1.obj"
writing part 2 size 1 to "Spiegelregion_2.obj"
writing part 3 size 3 to "Spiegelregion_3.obj"
writing part 4 size 1 to "Spiegelregion_4.obj"
writing part 5 size 1 to "Spiegelregion_5.obj"

Number of zones (connected area with consistent normal) : 6
More than one normal orientation.


End

thanks a lot!

Fschi January 19, 2017 12:24

3 Attachment(s)
with checkMesh I found some errors in the STL, but still I have the same Problem. At the regions with the errors are a lot of concaveFaces - an example is in the pictures below..

how can I delete them? whats a good value for maxConcave?


All times are GMT -4. The time now is 20:49.