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] crash sHM (https://www.cfd-online.com/Forums/openfoam-meshing/142789-crash-shm.html)

H25E October 9, 2014 10:51

crash sHM
 
Hi, I'm trying to mesh a car (porsche 911) with sHM but while it is meshing appears this foam warnings:

Code:

/*---------------------------------------------------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.1.1                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
Build  : 2.1.1-221db2718bbb
Exec  : snappyHexMesh -overwrite
Date  : Oct 08 2014
Time  : 18:20:42
Host  : "pc"
PID    : 5083
Case  : /home/hector/Desktop/porsche
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

Read mesh in = 1.92 s

Overall mesh bounding box  : (-1.5 -4 -0.605885) (1.5 2.4 1.2)
Relative tolerance        : 1e-06
Absolute matching distance : 7.29529e-06

Reading refinement surfaces.
Read refinement surfaces in = 0.09 s

Reading refinement shells.
Refinement level 4 for all cells inside refinementBox
Read refinement shells in = 0 s

Setting refinement level of surface to be consistent with shells.
Checked shell refinement in = 0 s

Reading features.
Read features in = 0 s


Determining initial surface intersections
-----------------------------------------

Edge intersection testing:
    Number of edges            : 750976
    Number of edges to retest  : 750976
    Number of intersected edges : 25255
Calculated surface intersections in = 2.05 s

Initial mesh : cells:245760  faces:750976  points:259677
Cells per refinement level:
    0    245760

Adding patches for surface regions
----------------------------------

Patch    Type    Region
-----    ----    ------
PTri:

5    wall    PTri_patch0

Added patches in = 0.03 s

Selecting decompositionMethod hierarchical

Refinement phase
----------------

--> FOAM Warning :
    From function Foam::List<Foam::tetIndices> Foam::polyMeshTetDecomposition::faceTetIndices(const polyMesh&, label, label)
    in file meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C at line 565
    No base point for face 237020, 4(81587 81648 89517 89456), produces a valid tet decomposition.
--> FOAM Warning :
    From function Foam::List<Foam::tetIndices> Foam::polyMeshTetDecomposition::faceTetIndices(const polyMesh&, label, label)
    in file meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C at line 565
    No base point for face 237021, 4(81647 89516 89517 81648), produces a valid tet decomposition.
--> FOAM Warning :
    From function Foam::List<Foam::tetIndices> Foam::polyMeshTetDecomposition::faceTetIndices(const polyMesh&, label, label)
    in file meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C at line 565
    No base point for face 237022, 4(89455 89456 89517 89516), produces a valid tet decomposition.
--> FOAM Warning :
    From function Foam::List<Foam::tetIndices> Foam::polyMeshTetDecomposition::faceTetIndices(const polyMesh&, label, label)
    in file meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C at line 565
    No base point for face 214170, 4(81586 81587 81648 81647), produces a valid tet decomposition.
--> FOAM Warning :
    From function Foam::List<Foam::tetIndices> Foam::polyMeshTetDecomposition::faceTetIndices(const polyMesh&, label, label)
    in file meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C at line 565
    No base point for face 236842, 4(81586 89455 89456 81587), produces a valid tet decomposition.
--> FOAM Warning :
    From function Foam::List<Foam::tetIndices> Foam::polyMeshTetDecomposition::faceTetIndices(const polyMesh&, label, label)
    in file meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C at line 565
    No base point for face 237017, 4(81586 81647 89516 89455), produces a valid tet decomposition.
--> FOAM Warning :
    From function Foam::List<Foam::tetIndices> Foam::polyMeshTetDecomposition::faceTetIndices(const polyMesh&, label, label)
    in file meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C at line 565
    No base point for face 0, 4(1 62 7931 7870), produces a valid tet decomposition.
--> FOAM Warning :
    From function Foam::List<Foam::tetIndices> Foam::polyMeshTetDecomposition::faceTetIndices(const polyMesh&, label, label)
    in file meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C at line 565
    No base point for face 1, 4(61 7930 7931 62), produces a valid tet decomposition.

etc, etc, etc...

And then, few minutes later appears that crash message

Code:

Point is not inside the mesh or on a face or edge
I tried adding a lot of decimal numbers to the locationInMesh numbers, also i found a post that says that is necessary select the points with negative X in the blockmeshdict but this neither worked. I tried also make a coarser background mesh and modifying the mintetquality number (-1e30, 1e-30, 0 and 1) but I always get the same result.

Could someone give me some help? Thanks


PD: I give you here the block and snappyhexmesh dicts.
Code:

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

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

convertToMeters 1;

//Bounding Box : (-0.98043 -2.2003 -0.605885) (0.980019 2.26228 0.665978)

vertices
(
    (-1.5 2.4 -0.605885)
    (1.5 2.4 -0.605885)
    (1.5  -4 -0.605885)
    (-1.5 -4 -0.605885)
    (-1.5 2.4 1.2)
    (1.5 2.4 1.2)
    (1.5  -4 1.2)
    (-1.5 -4 1.2)
);

blocks
(
    hex (0 3 7 4 1 2 6 5) (60 128 32) simpleGrading (1 1 1)
);

edges
(
);

boundary
(
    frontAndBack
    {
        type patch;
        faces
        (
            (1 2 6 5)
            (0 4 7 3)
        );
    }
    inlet
    {
        type patch;
        faces
        (
        (2 3 7 6)
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (0 1 5 4)
        );
    }
    lowerWall
    {
        type wall;
        faces
        (
            (0 1 2 3)

        );
    }
    upperWall
    {
        type patch;
        faces
        (
            (4 5 6 7)
        );
    }
);

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

Code:

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

// Which of the steps to run
castellatedMesh true;
snap            true;
addLayers      true;


// Geometry. Definition of all surfaces. All surfaces are of class
// searchableSurface.
// Surfaces are used
// - to specify refinement for any mesh cell intersecting it
// - to specify refinement for any mesh cell inside/outside/near
// - to 'snap' the mesh boundary to the surface
geometry
{
    PTri.stl
    {
        type triSurfaceMesh;
        name PTri;
    }

    refinementBox
    {
        type searchableBox;
        min (-1.2 -3 -0.505885);
        max (1.2 2.25 0.9);
    }
};



// Settings for the castellatedMesh generation.
castellatedMeshControls
{

    // Refinement parameters
    // ~~~~~~~~~~~~~~~~~~~~~

    // If local number of cells is >= maxLocalCells on any processor
    // switches from from refinement followed by balancing
    // (current method) to (weighted) balancing before refinement.
    maxLocalCells 1000000;

    // Overall cell limit (approximately). Refinement will stop immediately
    // upon reaching this number so a refinement level might not complete.
    // Note that this is the number of cells before removing the part which
    // is not 'visible' from the keepPoint. The final number of cells might
    // actually be a lot less.
    maxGlobalCells 20000000;

    // The surface refinement loop might spend lots of iterations refining just a
    // few cells. This setting will cause refinement to stop if <= minimumRefine
    // are selected for refinement. Note: it will at least do one iteration
    // (unless the number of cells to refine is 0)
    minRefinementCells 10;

    // Allow a certain level of imbalance during refining
    // (since balancing is quite expensive)
    // Expressed as fraction of perfect balance (= overall number of cells /
    // nProcs). 0=balance always.
    maxLoadUnbalance 0.10;


    // Number of buffer layers between different levels.
    // 1 means normal 2:1 refinement restriction, larger means slower
    // refinement.
    nCellsBetweenLevels 3;



    // Explicit feature edge refinement
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    // Specifies a level for any cell intersected by its edges.
    // This is a featureEdgeMesh, read from constant/triSurface for now.
    features
    (
        //{
        //    file "someLine.eMesh";
        //    level 2;
        //}
    );



    // Surface based refinement
    // ~~~~~~~~~~~~~~~~~~~~~~~~

    // Specifies two levels for every surface. The first is the minimum level,
    // every cell intersecting a surface gets refined up to the minimum level.
    // The second level is the maximum level. Cells that 'see' multiple
    // intersections where the intersections make an
    // angle > resolveFeatureAngle get refined up to the maximum level.

    refinementSurfaces
    {
        PTri
        {
            // Surface-wise min and max refinement level
            level (5 6);
        }
    }

    // Resolve sharp angles
    resolveFeatureAngle 30;


    // Region-wise refinement
    // ~~~~~~~~~~~~~~~~~~~~~~

    // Specifies refinement level for cells in relation to a surface. One of
    // three modes
    // - distance. 'levels' specifies per distance to the surface the
    //  wanted refinement level. The distances need to be specified in
    //  descending order.
    // - inside. 'levels' is only one entry and only the level is used. All
    //  cells inside the surface get refined up to the level. The surface
    //  needs to be closed for this to be possible.
    // - outside. Same but cells outside.

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


    // Mesh selection
    // ~~~~~~~~~~~~~~

    // After refinement patches get added for all refinementSurfaces and
    // all cells intersecting the surfaces get put into these patches. The
    // section reachable from the locationInMesh is kept.
    // NOTE: This point should never be on a face, always inside a cell, even
    // after refinement.
    locationInMesh (0.01000012312 0.910283903124 0.89749817401238);


    // Whether any faceZones (as specified in the refinementSurfaces)
    // are only on the boundary of corresponding cellZones or also allow
    // free-standing zone faces. Not used if there are no faceZones.
    allowFreeStandingZoneFaces true;
}



// Settings for the snapping.
snapControls
{
    //- Number of patch smoothing iterations before finding correspondence
    //  to surface
    nSmoothPatch 3;

    //- Relative distance for points to be attracted by surface feature point
    //  or edge. True distance is this factor times local
    //  maximum edge length.
    tolerance 4.0;

    //- Number of mesh displacement relaxation iterations.
    nSolveIter 0;

    //- Maximum number of snapping relaxation iterations. Should stop
    //  before upon reaching a correct mesh.
    nRelaxIter 5;

    //- Highly experimental and wip: number of feature edge snapping
    //  iterations. Leave out altogether to disable.
    //  Do not use here since mesh resolution too low and baffles present
    //nFeatureSnapIter 10;
}



// Settings for the layer addition.
addLayersControls
{
    // Are the thickness parameters below relative to the undistorted
    // size of the refined cell outside layer (true) or absolute sizes (false).
    relativeSizes true;

    // Per final patch (so not geometry!) the layer information
    layers
    {
        "(lowerWall|PTri).*"
        {
            nSurfaceLayers 1;
        }
    }

    // Expansion factor for layer mesh
    expansionRatio 1.0;

    //- Wanted thickness of final added cell layer. If multiple layers
    //  is the
    //  thickness of the layer furthest away from the wall.
    //  Relative to undistorted size of cell outside layer.
    //  is the thickness of the layer furthest away from the wall.
    //  See relativeSizes parameter.
    finalLayerThickness 0.3;

    //- Minimum thickness of cell layer. If for any reason layer
    //  cannot be above minThickness do not add layer.
    //  Relative to undistorted size of cell outside layer.
    minThickness 0.1;

    //- If points get not extruded do nGrow layers of connected faces that are
    //  also not grown. This helps convergence of the layer addition process
    //  close to features.
    // Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x)
    nGrow 0;

    // Advanced settings

    //- When not to extrude surface. 0 is flat surface, 90 is when two faces
    //  make straight angle.
    featureAngle 30;

    //- Maximum number of snapping relaxation iterations. Should stop
    //  before upon reaching a correct mesh.
    nRelaxIter 3;

    // Number of smoothing iterations of surface normals
    nSmoothSurfaceNormals 1;

    // Number of smoothing iterations of interior mesh movement direction
    nSmoothNormals 3;

    // Smooth layer thickness over surface patches
    nSmoothThickness 10;

    // Stop layer growth on highly warped cells
    maxFaceThicknessRatio 0.5;

    // Reduce layer growth where ratio thickness to medial
    // distance is large
    maxThicknessToMedialRatio 0.3;

    // Angle used to pick up medial axis points
    // Note: changed(corrected) w.r.t 17x! 90 degrees corresponds to 130 in 17x.
    minMedianAxisAngle 90;


    // Create buffer region for new layer terminations
    nBufferCellsNoExtrude 0;


    // Overall max number of layer addition iterations. The mesher will exit
    // if it reaches this number of iterations; possibly with an illegal
    // mesh.
    nLayerIter 50;
}



// Generic mesh quality settings. At any undoable phase these determine
// where to undo.
meshQualityControls
{
    //- Maximum non-orthogonality allowed. Set to 180 to disable.
    maxNonOrtho 65;

    //- Max skewness allowed. Set to <0 to disable.
    maxBoundarySkewness 20;
    maxInternalSkewness 4;

    //- Max concaveness allowed. Is angle (in degrees) below which concavity
    //  is allowed. 0 is straight face, <0 would be convex face.
    //  Set to 180 to disable.
    maxConcave 80;

    //- Minimum pyramid volume. Is absolute volume of cell pyramid.
    //  Set to a sensible fraction of the smallest cell volume expected.
    //  Set to very negative number (e.g. -1E30) to disable.
    minVol 1e-13;

    //- Minimum quality of the tet formed by the face-centre
    //  and variable base point minimum decomposition triangles and
    //  the cell centre. This has to be a positive number for tracking
    //  to work. Set to very negative number (e.g. -1E30) to
    //  disable.
    //    <0 = inside out tet,
    //      0 = flat tet
    //      1 = regular tet
    minTetQuality 1e-30;

    //- Minimum face area. Set to <0 to disable.
    minArea -1;

    //- Minimum face twist. Set to <-1 to disable. dot product of face normal
    //- and face centre triangles normal
    minTwist 0.02;

    //- minimum normalised cell determinant
    //- 1 = hex, <= 0 = folded or flattened illegal cell
    minDeterminant 0.001;

    //- minFaceWeight (0 -> 0.5)
    minFaceWeight 0.02;

    //- minVolRatio (0 -> 1)
    minVolRatio 0.01;

    //must be >0 for Fluent compatibility
    minTriangleTwist -1;


    // Advanced

    //- Number of error distribution iterations
    nSmoothScale 4;
    //- amount to scale back displacement at error points
    errorReduction 0.75;
}


// Advanced

// Flags for optional output
// 0 : only write final meshes
// 1 : write intermediate meshes
// 2 : write volScalarField with cellLevel for postprocessing
// 4 : write current intersections as .obj files
debug 0;


// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
mergeTolerance 1e-6;


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


wyldckat October 11, 2014 12:44

Greetings H25E,

Run the following commands, after you've ran blockMesh:
Code:

checkMesh -allTopology -allGeometry -constant
surfaceCheck constant/triSurface/PTri.stl

The first one will diagnose if there is something particularly wrong with the base mesh that was created with blockMesh and the second one will check if the STL file is sane or not ;)

Best regards,
Bruno

H25E October 11, 2014 15:38

Thanks for your answer, I'm really stuck here. I generate a coarse mesh with blockMesh to accelerate the process (8000 cells) and then I executed sHM again but it returns the same error without writing any mesh.

I launched checkMesh and here we have the result:

Code:

hector@pc:~/Desktop/porsche$ checkMesh -allTopology -allGeometry -constant
/*---------------------------------------------------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.1.1                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
Build  : 2.1.1-221db2718bbb
Exec  : checkMesh -allTopology -allGeometry -constant
Date  : Oct 11 2014
Time  : 21:23:53
Host  : "pc"
PID    : 2854
Case  : /home/hector/Desktop/porsche
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create polyMesh for time = constant

Time = constant

Mesh stats
    points:          9471
    faces:            25400
    internal faces:  22600
    cells:            8000
    boundary patches: 5
    point zones:      0
    face zones:      0
    cell zones:      0

Overall number of cells of each type:
    hexahedra:    8000
    prisms:        0
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:    0

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Topological cell zip-up check OK.
    Face-face connectivity OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces ...
    Patch              Faces    Points  Surface topology                  Bounding box
    frontAndBack        1600    1722    ok (non-closed singly connected)  (-1.5 -4 -0.605885) (1.5 2.4 1.2)
    inlet              400      451      ok (non-closed singly connected)  (-1.5 -4 -0.605885) (1.5 -4 1.2)
    outlet              400      451      ok (non-closed singly connected)  (-1.5 2.4 -0.605885) (1.5 2.4 1.2)
    lowerWall          200      231      ok (non-closed singly connected)  (-1.5 -4 -0.605885) (1.5 2.4 -0.605885)
    upperWall          200      231      ok (non-closed singly connected)  (-1.5 -4 1.2) (1.5 2.4 1.2)

Checking geometry...
    Overall domain bounding box (-1.5 -4 -0.605885) (1.5 2.4 1.2)
    Mesh (non-empty, non-wedge) directions (1 1 1)
    Mesh (non-empty) directions (1 1 1)
    Boundary openness (-4.72339e-18 1.3379e-17 -2.9731e-17) OK.
 ***High aspect ratio cells found, Max aspect ratio: 2.60365e+198, number of cells 8000
  <<Writing 8000 cells with high aspect ratio to set highAspectRatioCells
    Minumum face area = 0.0135441. Maximum face area = 0.096.  Face area magnitudes OK.
    Min volume = 2e-300. Max volume = 2e-300.  Total volume = 1.6e-296.  Cell volumes OK.
    Mesh non-orthogonality Max: 180 average: 180
 ***Number of non-orthogonality errors: 22600.
  <<Writing 22600 non-orthogonal faces to set nonOrthoFaces
 ***Error in face pyramids: 48000 faces are incorrectly oriented.
  <<Writing 25400 faces with incorrect orientation to set wrongOrientedFaces
    Max skewness = 5.78066e-13 OK.
    Coupled point location match (average 0) OK.
 ***Error in face tets: 73400 faces with low quality or negative volume decomposition tets.
  <<Writing 25400 faces with low quality or negative volume decomposition tets to set lowQualityTetFaces
    Min/max edge length = 0.0451471 0.32 OK.
    All angles in faces OK.
    Face flatness (1 = flat, 0 = butterfly) : average = 1  min = 1
    All face flatness OK.
    Cell determinant (wellposedness) : minimum: 0.0255014 average: 0.491182
    Cell determinant check OK.
 ***Concave cells (using face planes) found, number of cells: 8000
  <<Writing 8000 concave cells to set concaveCells

Failed 5 mesh checks.

End

"***Error in face tets: 73400 faces with low quality or negative volume decomposition tets.", what is tet decomposition? It's the same error that sHM gives to me.

H25E October 11, 2014 15:39

And with surfaceCheck:
Code:

/*---------------------------------------------------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.1.1                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
Build  : 2.1.1-221db2718bbb
Exec  : surfaceCheck constant/triSurface/PTri.obj
Date  : Oct 11 2014
Time  : 21:35:15
Host  : "pc"
PID    : 2868
Case  : /home/hector/Desktop/porsche
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Reading surface from "constant/triSurface/PTri.obj" ...

Statistics:
Triangles    : 21855
Vertices    : 13022
Bounding Box : (-0.98043 -0.605885 -2.26228) (0.980019 0.665978 2.2003)

Region    Size
------    ----
part    21855


Surface has no illegal triangles.

Triangle quality (equilateral=1, collapsed=0):
    0 .. 0.05  : 0.0946237
    0.05 .. 0.1  : 0.101304
    0.1 .. 0.15  : 0.0812171
    0.15 .. 0.2  : 0.0583391
    0.2 .. 0.25  : 0.0551361
    0.25 .. 0.3  : 0.0472203
    0.3 .. 0.35  : 0.0565088
    0.35 .. 0.4  : 0.0479524
    0.4 .. 0.45  : 0.0419584
    0.45 .. 0.5  : 0.0580645
    0.5 .. 0.55  : 0.0582933
    0.55 .. 0.6  : 0.0677191
    0.6 .. 0.65  : 0.0447952
    0.65 .. 0.7  : 0.0424159
    0.7 .. 0.75  : 0.0244795
    0.75 .. 0.8  : 0.0344086
    0.8 .. 0.85  : 0.0275452
    0.85 .. 0.9  : 0.0186685
    0.9 .. 0.95  : 0.0209105
    0.95 .. 1  : 0.0184397

    min 3.02579e-07 for triangle 798
    max 0.999996 for triangle 21569

Edges:
    min 0.00125755 for edge 1576 points (-0.699321 0.281457 1.68512)(-0.699931 0.282372 1.68573)
    max 1.57158 for edge 20330 points (0.137944 -0.460121 0.746644)(-0.000632 -0.454017 -0.818798)

Checking for points less than 1E-6 of bounding box ((1.96045 1.27186 4.46258) meter) apart.
    close unconnected points 4182 (0.673681 -0.310279 0.171876) and 11936 (0.67368 -0.310279 0.171876) distance:1e-06
    close unconnected points 3844 (-0.584833 0.536278 -0.170445) and 1223 (-0.584833 0.536278 -0.170444) distance:1e-06
    close unconnected points 3867 (-0.755935 -0.307533 -0.042439) and 4634 (-0.755934 -0.307533 -0.042439) distance:1e-06
    close unconnected points 3842 (-0.640512 0.425194 -0.342825) and 1228 (-0.640512 0.425194 -0.342824) distance:1e-06
    close unconnected points 3703 (0.733105 -0.008766 0.447708) and 12072 (0.733105 -0.008766 0.447707) distance:1e-06
    close unconnected points 1535 (-0.702406 0.244835 0.494323) and 9526 (-0.702406 0.244835 0.494322) distance:1e-06
    close unconnected points 9711 (-0.643773 0.387963 0.54402) and 1534 (-0.643773 0.387963 0.544019) distance:1e-06
    close unconnected points 4185 (0.67794 -0.304786 -0.610599) and 11930 (0.67794 -0.304786 -0.610598) distance:1e-06
    close unconnected points 2819 (-0.736875 0.214623 -0.633886) and 7972 (-0.736874 0.214623 -0.633885) distance:1.41421e-06
    close unconnected points 3172 (-0.718001 0.222558 -0.693105) and 8323 (-0.718001 0.222558 -0.693104) distance:1e-06
    close unconnected points 3726 (-0.784802 -0.348732 -0.652158) and 4620 (-0.784801 -0.348732 -0.652158) distance:1e-06
    close unconnected points 2904 (-0.847406 -0.025855 -0.70643) and 4638 (-0.847406 -0.025855 -0.706429) distance:1e-06
    close unconnected points 2478 (0.84632 -0.025855 -0.707779) and 3766 (0.84632 -0.025855 -0.707778) distance:1e-06
    close unconnected points 2905 (-0.846187 -0.086891 -0.708262) and 4639 (-0.846187 -0.086891 -0.708261) distance:1e-06
    close unconnected points 2476 (0.845097 -0.086891 -0.709609) and 3764 (0.845097 -0.086891 -0.709608) distance:1e-06
    close unconnected points 2471 (0.828628 -0.295021 -0.697084) and 3763 (0.828628 -0.295021 -0.697083) distance:1e-06
    close unconnected points 3806 (-0.433543 0.543297 0.881377) and 1488 (-0.433543 0.543297 0.881376) distance:1e-06
    close unconnected points 28 (-0.821758 -0.359107 -0.690581) and 3729 (-0.821758 -0.359107 -0.69058) distance:1e-06
    close unconnected points 1517 (0.663591 0.272301 0.914988) and 3828 (0.663591 0.272301 0.914987) distance:1e-06
    close unconnected points 2469 (0.829195 -0.359413 -0.751406) and 184 (0.829195 -0.359413 -0.751405) distance:1e-06
    close unconnected points 3821 (0.602429 0.352257 1.13751) and 1507 (0.602428 0.352257 1.13751) distance:1e-06
    close unconnected points 4170 (0.001613 0.324792 1.61589) and 1497 (0.001612 0.324792 1.61589) distance:1e-06
    close unconnected points 2757 (-0.550327 0.123986 -1.6759) and 9331 (-0.550326 0.123986 -1.6759) distance:1e-06
    close unconnected points 2652 (0.70244 0.127038 -1.65279) and 1415 (0.702439 0.127038 -1.65279) distance:1e-06
    close unconnected points 2697 (0.542037 -0.029823 -1.88552) and 5711 (0.542036 -0.029823 -1.88552) distance:1e-06
    close unconnected points 3257 (-0.677451 -0.062171 -1.89034) and 7399 (-0.67745 -0.062171 -1.89034) distance:1e-06
    close unconnected points 3258 (-0.648165 -0.066749 -1.9041) and 7401 (-0.648164 -0.066749 -1.9041) distance:1e-06
Found 27 nearby points.

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

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

writing part 0 size 12340 to "PTri_0.obj"
writing part 1 size 4 to "PTri_1.obj"
writing part 2 size 434 to "PTri_2.obj"
writing part 3 size 38 to "PTri_3.obj"
writing part 4 size 553 to "PTri_4.obj"
writing part 5 size 25 to "PTri_5.obj"
writing part 6 size 315 to "PTri_6.obj"
writing part 7 size 13 to "PTri_7.obj"
writing part 8 size 16 to "PTri_8.obj"
writing part 9 size 16 to "PTri_9.obj"
writing part 10 size 36 to "PTri_10.obj"
writing part 11 size 40 to "PTri_11.obj"
writing part 12 size 75 to "PTri_12.obj"
writing part 13 size 4 to "PTri_13.obj"
writing part 14 size 4 to "PTri_14.obj"
writing part 15 size 4 to "PTri_15.obj"
writing part 16 size 4 to "PTri_16.obj"
writing part 17 size 4 to "PTri_17.obj"
writing part 18 size 5 to "PTri_18.obj"
writing part 19 size 225 to "PTri_19.obj"
writing part 20 size 10 to "PTri_20.obj"
writing part 21 size 10 to "PTri_21.obj"
writing part 22 size 10 to "PTri_22.obj"
writing part 23 size 72 to "PTri_23.obj"
writing part 24 size 6 to "PTri_24.obj"
writing part 25 size 6 to "PTri_25.obj"
writing part 26 size 8 to "PTri_26.obj"
writing part 27 size 72 to "PTri_27.obj"
writing part 28 size 8 to "PTri_28.obj"
writing part 29 size 16 to "PTri_29.obj"
writing part 30 size 8 to "PTri_30.obj"
writing part 31 size 6 to "PTri_31.obj"
writing part 32 size 16 to "PTri_32.obj"
writing part 33 size 10 to "PTri_33.obj"
writing part 34 size 6 to "PTri_34.obj"
writing part 35 size 2 to "PTri_35.obj"
writing part 36 size 339 to "PTri_36.obj"
writing part 37 size 132 to "PTri_37.obj"
writing part 38 size 2 to "PTri_38.obj"
writing part 39 size 2 to "PTri_39.obj"
writing part 40 size 132 to "PTri_40.obj"
writing part 41 size 32 to "PTri_41.obj"
writing part 42 size 30 to "PTri_42.obj"
writing part 43 size 20 to "PTri_43.obj"
writing part 44 size 152 to "PTri_44.obj"
writing part 45 size 112 to "PTri_45.obj"
writing part 46 size 12 to "PTri_46.obj"
writing part 47 size 24 to "PTri_47.obj"
writing part 48 size 26 to "PTri_48.obj"
writing part 49 size 14 to "PTri_49.obj"
writing part 50 size 34 to "PTri_50.obj"
writing part 51 size 8 to "PTri_51.obj"
writing part 52 size 19 to "PTri_52.obj"
writing part 53 size 2 to "PTri_53.obj"
writing part 54 size 2 to "PTri_54.obj"
writing part 55 size 25 to "PTri_55.obj"
writing part 56 size 6 to "PTri_56.obj"
writing part 57 size 4 to "PTri_57.obj"
writing part 58 size 4 to "PTri_58.obj"
writing part 59 size 20 to "PTri_59.obj"
writing part 60 size 15 to "PTri_60.obj"
writing part 61 size 2 to "PTri_61.obj"
writing part 62 size 4 to "PTri_62.obj"
writing part 63 size 65 to "PTri_63.obj"
writing part 64 size 22 to "PTri_64.obj"
writing part 65 size 32 to "PTri_65.obj"
writing part 66 size 6 to "PTri_66.obj"
writing part 67 size 12 to "PTri_67.obj"
writing part 68 size 90 to "PTri_68.obj"
writing part 69 size 24 to "PTri_69.obj"
writing part 70 size 90 to "PTri_70.obj"
writing part 71 size 30 to "PTri_71.obj"
writing part 72 size 2 to "PTri_72.obj"
writing part 73 size 4 to "PTri_73.obj"
writing part 74 size 8 to "PTri_74.obj"
writing part 75 size 4 to "PTri_75.obj"
writing part 76 size 2 to "PTri_76.obj"
writing part 77 size 48 to "PTri_77.obj"
writing part 78 size 2 to "PTri_78.obj"
writing part 79 size 2 to "PTri_79.obj"
writing part 80 size 52 to "PTri_80.obj"
writing part 81 size 5 to "PTri_81.obj"
writing part 82 size 4 to "PTri_82.obj"
writing part 83 size 30 to "PTri_83.obj"
writing part 84 size 4 to "PTri_84.obj"
writing part 85 size 6 to "PTri_85.obj"
writing part 86 size 6 to "PTri_86.obj"
writing part 87 size 6 to "PTri_87.obj"
writing part 88 size 16 to "PTri_88.obj"
writing part 89 size 2 to "PTri_89.obj"
writing part 90 size 2 to "PTri_90.obj"
writing part 91 size 5 to "PTri_91.obj"
writing part 92 size 6 to "PTri_92.obj"
writing part 93 size 6 to "PTri_93.obj"
writing part 94 size 16 to "PTri_94.obj"
writing part 95 size 16 to "PTri_95.obj"
writing part 96 size 2 to "PTri_96.obj"
writing part 97 size 4 to "PTri_97.obj"
writing part 98 size 4 to "PTri_98.obj"
writing part 99 size 17 to "PTri_99.obj"
writing part 100 size 17 to "PTri_100.obj"
writing part 101 size 17 to "PTri_101.obj"
writing part 102 size 4 to "PTri_102.obj"
writing part 103 size 8 to "PTri_103.obj"
writing part 104 size 17 to "PTri_104.obj"
writing part 105 size 17 to "PTri_105.obj"
writing part 106 size 17 to "PTri_106.obj"
writing part 107 size 6 to "PTri_107.obj"
writing part 108 size 6 to "PTri_108.obj"
writing part 109 size 2 to "PTri_109.obj"
writing part 110 size 12 to "PTri_110.obj"
writing part 111 size 6 to "PTri_111.obj"
writing part 112 size 6 to "PTri_112.obj"
writing part 113 size 2 to "PTri_113.obj"
writing part 114 size 12 to "PTri_114.obj"
writing part 115 size 12 to "PTri_115.obj"
writing part 116 size 12 to "PTri_116.obj"
writing part 117 size 12 to "PTri_117.obj"
writing part 118 size 12 to "PTri_118.obj"
writing part 119 size 12 to "PTri_119.obj"
writing part 120 size 12 to "PTri_120.obj"
writing part 121 size 12 to "PTri_121.obj"
writing part 122 size 12 to "PTri_122.obj"
writing part 123 size 12 to "PTri_123.obj"
writing part 124 size 12 to "PTri_124.obj"
writing part 125 size 12 to "PTri_125.obj"
writing part 126 size 12 to "PTri_126.obj"
writing part 127 size 12 to "PTri_127.obj"
writing part 128 size 12 to "PTri_128.obj"
writing part 129 size 4 to "PTri_129.obj"
writing part 130 size 16 to "PTri_130.obj"
writing part 131 size 30 to "PTri_131.obj"
writing part 132 size 4 to "PTri_132.obj"
writing part 133 size 6 to "PTri_133.obj"
writing part 134 size 41 to "PTri_134.obj"
writing part 135 size 25 to "PTri_135.obj"
writing part 136 size 30 to "PTri_136.obj"
writing part 137 size 35 to "PTri_137.obj"
writing part 138 size 30 to "PTri_138.obj"
writing part 139 size 35 to "PTri_139.obj"
writing part 140 size 41 to "PTri_140.obj"
writing part 141 size 25 to "PTri_141.obj"
writing part 142 size 18 to "PTri_142.obj"
writing part 143 size 18 to "PTri_143.obj"
writing part 144 size 18 to "PTri_144.obj"
writing part 145 size 18 to "PTri_145.obj"
writing part 146 size 50 to "PTri_146.obj"
writing part 147 size 25 to "PTri_147.obj"
writing part 148 size 25 to "PTri_148.obj"
writing part 149 size 54 to "PTri_149.obj"
writing part 150 size 4 to "PTri_150.obj"
writing part 151 size 2 to "PTri_151.obj"
writing part 152 size 4 to "PTri_152.obj"
writing part 153 size 2 to "PTri_153.obj"
writing part 154 size 2 to "PTri_154.obj"
writing part 155 size 2 to "PTri_155.obj"
writing part 156 size 10 to "PTri_156.obj"
writing part 157 size 8 to "PTri_157.obj"
writing part 158 size 12 to "PTri_158.obj"
writing part 159 size 16 to "PTri_159.obj"
writing part 160 size 24 to "PTri_160.obj"
writing part 161 size 20 to "PTri_161.obj"
writing part 162 size 14 to "PTri_162.obj"
writing part 163 size 14 to "PTri_163.obj"
writing part 164 size 4 to "PTri_164.obj"
writing part 165 size 4 to "PTri_165.obj"
writing part 166 size 4 to "PTri_166.obj"
writing part 167 size 7 to "PTri_167.obj"
writing part 168 size 2 to "PTri_168.obj"
writing part 169 size 2 to "PTri_169.obj"
writing part 170 size 5 to "PTri_170.obj"
writing part 171 size 4 to "PTri_171.obj"
writing part 172 size 7 to "PTri_172.obj"
writing part 173 size 8 to "PTri_173.obj"
writing part 174 size 3 to "PTri_174.obj"
writing part 175 size 2 to "PTri_175.obj"
writing part 176 size 2 to "PTri_176.obj"
writing part 177 size 6 to "PTri_177.obj"
writing part 178 size 8 to "PTri_178.obj"
writing part 179 size 2 to "PTri_179.obj"
writing part 180 size 2 to "PTri_180.obj"
writing part 181 size 6 to "PTri_181.obj"
writing part 182 size 2 to "PTri_182.obj"
writing part 183 size 2 to "PTri_183.obj"
writing part 184 size 4 to "PTri_184.obj"
writing part 185 size 6 to "PTri_185.obj"
writing part 186 size 2 to "PTri_186.obj"
writing part 187 size 6 to "PTri_187.obj"
writing part 188 size 2 to "PTri_188.obj"
writing part 189 size 20 to "PTri_189.obj"
writing part 190 size 14 to "PTri_190.obj"
writing part 191 size 14 to "PTri_191.obj"
writing part 192 size 4 to "PTri_192.obj"
writing part 193 size 7 to "PTri_193.obj"
writing part 194 size 2 to "PTri_194.obj"
writing part 195 size 2 to "PTri_195.obj"
writing part 196 size 5 to "PTri_196.obj"
writing part 197 size 4 to "PTri_197.obj"
writing part 198 size 8 to "PTri_198.obj"
writing part 199 size 3 to "PTri_199.obj"
writing part 200 size 2 to "PTri_200.obj"
writing part 201 size 2 to "PTri_201.obj"
writing part 202 size 7 to "PTri_202.obj"
writing part 203 size 8 to "PTri_203.obj"
writing part 204 size 2 to "PTri_204.obj"
writing part 205 size 2 to "PTri_205.obj"
writing part 206 size 6 to "PTri_206.obj"
writing part 207 size 2 to "PTri_207.obj"
writing part 208 size 2 to "PTri_208.obj"
writing part 209 size 4 to "PTri_209.obj"
writing part 210 size 6 to "PTri_210.obj"
writing part 211 size 2 to "PTri_211.obj"
writing part 212 size 15 to "PTri_212.obj"
writing part 213 size 6 to "PTri_213.obj"
writing part 214 size 2 to "PTri_214.obj"
writing part 215 size 6 to "PTri_215.obj"
writing part 216 size 16 to "PTri_216.obj"
writing part 217 size 10 to "PTri_217.obj"
writing part 218 size 16 to "PTri_218.obj"
writing part 219 size 10 to "PTri_219.obj"
writing part 220 size 14 to "PTri_220.obj"
writing part 221 size 14 to "PTri_221.obj"
writing part 222 size 6 to "PTri_222.obj"
writing part 223 size 4 to "PTri_223.obj"
writing part 224 size 3 to "PTri_224.obj"
writing part 225 size 6 to "PTri_225.obj"
writing part 226 size 1 to "PTri_226.obj"
writing part 227 size 7 to "PTri_227.obj"
writing part 228 size 12 to "PTri_228.obj"
writing part 229 size 4 to "PTri_229.obj"
writing part 230 size 4 to "PTri_230.obj"
writing part 231 size 4 to "PTri_231.obj"
writing part 232 size 4 to "PTri_232.obj"
writing part 233 size 4 to "PTri_233.obj"
writing part 234 size 15 to "PTri_234.obj"
writing part 235 size 4 to "PTri_235.obj"
writing part 236 size 3 to "PTri_236.obj"
writing part 237 size 7 to "PTri_237.obj"
writing part 238 size 1 to "PTri_238.obj"
writing part 239 size 12 to "PTri_239.obj"
writing part 240 size 553 to "PTri_240.obj"
writing part 241 size 25 to "PTri_241.obj"
writing part 242 size 315 to "PTri_242.obj"
writing part 243 size 4 to "PTri_243.obj"
writing part 244 size 5 to "PTri_244.obj"
writing part 245 size 40 to "PTri_245.obj"
writing part 246 size 16 to "PTri_246.obj"
writing part 247 size 36 to "PTri_247.obj"
writing part 248 size 16 to "PTri_248.obj"
writing part 249 size 75 to "PTri_249.obj"
writing part 250 size 4 to "PTri_250.obj"
writing part 251 size 4 to "PTri_251.obj"
writing part 252 size 4 to "PTri_252.obj"
writing part 253 size 4 to "PTri_253.obj"
writing part 254 size 13 to "PTri_254.obj"
writing part 255 size 225 to "PTri_255.obj"
writing part 256 size 553 to "PTri_256.obj"
writing part 257 size 25 to "PTri_257.obj"
writing part 258 size 315 to "PTri_258.obj"
writing part 259 size 4 to "PTri_259.obj"
writing part 260 size 5 to "PTri_260.obj"
writing part 261 size 40 to "PTri_261.obj"
writing part 262 size 16 to "PTri_262.obj"
writing part 263 size 36 to "PTri_263.obj"
writing part 264 size 16 to "PTri_264.obj"
writing part 265 size 75 to "PTri_265.obj"
writing part 266 size 4 to "PTri_266.obj"
writing part 267 size 4 to "PTri_267.obj"
writing part 268 size 4 to "PTri_268.obj"
writing part 269 size 4 to "PTri_269.obj"
writing part 270 size 13 to "PTri_270.obj"
writing part 271 size 225 to "PTri_271.obj"
writing part 272 size 22 to "PTri_272.obj"
writing part 273 size 15 to "PTri_273.obj"
writing part 274 size 65 to "PTri_274.obj"
writing part 275 size 32 to "PTri_275.obj"
writing part 276 size 6 to "PTri_276.obj"
writing part 277 size 8 to "PTri_277.obj"
writing part 278 size 4 to "PTri_278.obj"
writing part 279 size 553 to "PTri_279.obj"
writing part 280 size 25 to "PTri_280.obj"
writing part 281 size 315 to "PTri_281.obj"
writing part 282 size 13 to "PTri_282.obj"
writing part 283 size 16 to "PTri_283.obj"
writing part 284 size 16 to "PTri_284.obj"
writing part 285 size 36 to "PTri_285.obj"
writing part 286 size 40 to "PTri_286.obj"
writing part 287 size 75 to "PTri_287.obj"
writing part 288 size 4 to "PTri_288.obj"
writing part 289 size 4 to "PTri_289.obj"
writing part 290 size 4 to "PTri_290.obj"
writing part 291 size 4 to "PTri_291.obj"
writing part 292 size 4 to "PTri_292.obj"
writing part 293 size 5 to "PTri_293.obj"
writing part 294 size 225 to "PTri_294.obj"

There is someway to avoid surfaceCheck generates these annoying .obj files?

Thanks for your time:)

PD: double post due to max length post limitation.

wyldckat October 11, 2014 16:48

Hi H25E,

:eek: Oh my! I wasn't expecting the base mesh to have so many errors!! I gave it a quick try myself and apparently you didn't notice these warning messages that blockMesh gives you:
Code:

Creating block mesh topology
--> FOAM Warning :
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -5.77883 for face 0
--> FOAM Warning :
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -5.77883 for face 1
--> FOAM Warning :
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -5.77883 for face 2
--> FOAM Warning :
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -5.77883 for face 3
--> FOAM Warning :
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -5.77883 for face 4
--> FOAM Warning :
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -5.77883 for face 5
--> FOAM Warning :
    From function blockMesh::createTopology(IOdictionary&)
    in file blockMesh/blockMeshTopology.C at line 255
    negative volume block : 0, probably defined inside-out
--> FOAM Warning :
    From function polyMesh::polyMesh(... construct from shapes...)
    in file meshes/polyMesh/polyMeshFromShapeMesh.C at line 888

Let's see, on this wiki page: http://openfoamwiki.net/index.php/BlockMesh - you can find a lot of information. Specially the section on how to visually diagnose the "blockMeshDict" file is essential.
From what I checked, the order of the vertices for the block are incorrect. This works properly:
Code:

    hex (1 2 6 5 0 3 7 4) (60 128 32) simpleGrading (1 1 1)
As for the STL file, ouch... that's one bad surface mesh :(
There is no option for surfaceCheck to not give you all of those obj files. It's clearly trying to tell you that the surface mesh is reaaaaaaally bad and it's pointing out every single piece it was able to find, so that you can inspect yourself as to why that's different from all other pieces ;).

As for repairing the STL file, there is already a lot of information here: http://openfoamwiki.net/index.php/Sn...xing_STL_files

Best regards,
Bruno

H25E October 12, 2014 13:02

Well, this is being a bit demotivating...

About the first part, I thought my blocmeshdict was correct. You took my last 4 points and put them at the beginning, what's the difference? Anyway I achieve to install PyFoam but when I launched it there was an error that googling I found that i had to install VTK python. I had some problems to install it and I belive that is not correctly installed. I followed this steps:
HTML Code:

http://kazenotaiyo.blogspot.com.es/2010/06/installing-vtk-in-ubuntu-and-making.html
I problems in the cmake step. Anyway when i launch now pyFoamDisplayBlockMesh.py appears that message:
Code:

Using system-VTK
 PyFoam WARNING on line 282 of file /usr/local/lib/python2.7/dist-packages/PyFoam/Applications/DisplayBlockMeshQt.py : While reading Desktop/porsche/constant/polyMesh/blockMeshDict this happened: 'patches'
Traceback (most recent call last):
  File "/usr/local/bin/pyFoamDisplayBlockMesh.py", line 11, in <module>
    DisplayBlockMesh()
  File "/usr/local/lib/python2.7/dist-packages/PyFoam/Applications/DisplayBlockMeshQt.py", line 744, in __init__
    nr=1)
  File "/usr/local/lib/python2.7/dist-packages/PyFoam/Applications/PyFoamApplicationQt4.py", line 37, in __init__
    exactNr=exactNr)
  File "/usr/local/lib/python2.7/dist-packages/PyFoam/Applications/PyFoamApplication.py", line 155, in __init__
    result=self.run()
  File "/usr/local/lib/python2.7/dist-packages/PyFoam/Applications/PyFoamApplicationQt4.py", line 59, in run
    self.setupGUI()
  File "/usr/local/lib/python2.7/dist-packages/PyFoam/Applications/DisplayBlockMeshQt.py", line 751, in setupGUI
    self.dialog=DisplayBlockMeshDialog(bmFile)
  File "/usr/local/lib/python2.7/dist-packages/PyFoam/Applications/DisplayBlockMeshQt.py", line 283, in __init__
    raise e
KeyError: 'patches'

But the worst part I supose that is the part of the stl files. I have some 3D models of different cars and all the models had got this kind of errors, and without models I can't make my project. It's a little difficult find free 3D models of cars in the internet, and the most of them are in .3ds format .max format or something like that, so I have to export them to stl or obj format and I suppose that's the reason for the low quality.

I believe that i have 4 problems. The first the nearby points, that i found the solution. The second is the edges connected only to one point, here I found one solution using admesh but it changes the original gemotry generating for example massif rims. There are two more problems, edges connected to >2 faces and the unnconected parts, that I hadn't found the solution. I have to solve all this 4 problems to achieve sHM the models?:confused:

Again, thanks for your time. It's my first time with linux and openFoam and it's being harder than I expected.

wyldckat October 12, 2014 13:30

Quote:

Originally Posted by H25E (Post 513966)
Well, this is being a bit demotivating...

Whoever told you OpenFOAM is easy to use, lied :D Well, perhaps didn't lie, but omitted that OpenFOAM is reaaaaaaally very picky about every single detail, no matter how small. We could say it's relentlessly unforgiving, because it's trying to simulate the real life physics, which are also unforgiving ;)
Remember, unless in certain special conditions, gravity will always work and is also unforgiving :D

Quote:

Originally Posted by H25E (Post 513966)
About the first part, I thought my blocmeshdict was correct. You took my last 4 points and put them at the beginning, what's the difference?

You were telling blockMesh to build your block with negative volume. It's as if you were trying to build a house starting by the roof and then making a hole through the roof to dump the cement directly inside and through the roof, in order to create the floor.

Quote:

Originally Posted by H25E (Post 513966)
Code:

Using system-VTK
 PyFoam WARNING on line 282 of file /usr/local/lib/python2.7/dist-packages/PyFoam/Applications/DisplayBlockMeshQt.py : While reading Desktop/porsche/constant/polyMesh/blockMeshDict this happened: 'patches'
[...]
KeyError: 'patches'


Depends on the version of PyFoam you're using and OpenFOAM version. The keyword "patches" is the old way of defining the "boundary" block: http://www.openfoam.org/version2.0.0/meshing.php - search for the section "Changes to blockMesh".
I honestly don't use much PyFoam, so I'm not familiar with its limitations.


Quote:

Originally Posted by H25E (Post 513966)
But the worst part I supose that is the part of the stl files. I have some 3D models of different cars and all the models had got this kind of errors, and without models I can't make my project. It's a little difficult find free 3D models of cars in the internet, and the most of them are in .3ds format .max format or something like that, so I have to export them to stl or obj format and I suppose that's the reason for the low quality.

That's what happens when you don't monitor the Forums and social networks for ideas. I've seen a few models over the past several months... there was one "driveAr" or something like that... here you go, it's the "DrivAer": http://www.cfd-online.com/Wiki/DrivAer_Model - it's not in STL, but IGES/STEP to STL... see this page: http://openfoamwiki.net/index.php/OS_Meshing

Quote:

Originally Posted by H25E (Post 513966)
It's my first time with linux and openFoam and it's being harder than I expected.

"Real life is hard. Properly simulating real life is harder." ;)

H25E October 13, 2014 07:28

Well, to create a positive volume I have to indicate to blockMesh to start in positive coordinates and go to negative ones? That way it worked and sHM could mesh but... It meshed the internal part of the car!! and nothing in the outside, how can modify this to mesh the car for external flow? Maybe I have to modify the stl and make it chunky?

And, the low quality of my 3D models will interference the simulation results?

EDIT: I answer myself to the first question, putting the locationmesh point in the external part of the car, that way sHM meshed the external part but also the internal one, which is not the best solution...

wyldckat October 18, 2014 15:11

Hi H25E,
Quote:

Originally Posted by H25E (Post 514069)
Maybe I have to modify the stl and make it chunky?
And, the low quality of my 3D models will interference the simulation results?

All depends on the level of details you're looking for in the results. I have a few links in my Twitter for reminding me some good links on topics about meshing... here you go:

Quote:

Originally Posted by H25E (Post 514069)
EDIT: I answer myself to the first question, putting the locationmesh point in the external part of the car, that way sHM meshed the external part but also the internal one, which is not the best solution...

Use surfaceCheck to diagnose your STL file... again ;)
It very likely has a hole in the chassis or tires somewhere, which lead the mesh to leak into the car model :)

I strongly suggest that you start working with the simplest possible model first, so that you can gradually increase the level of complexity of your problem, without ending up in a situation where there are too many possible variables... for example, as the blog posts above indicate ;)

By the way, this blog post of mine and the links therein might also come in handy: OpenFOAM: Interesting cases of bad meshes and bad initial conditions - You should notice the protocol on how problems can be isolated on each issue ;).

Best regards,
Bruno

H25E October 19, 2014 06:16

Well, I have already assigned the engineering final project so now I have to continue althought the problems as I can.

The gaps that could be between faces due to the bad quality mesh also allows to sHM leak into the interior of the car? Or it's only a problem about the 3D model has a hole intentionally created by the author somewhere?

Thanks for your time :)

wyldckat October 26, 2014 10:07

Hi H25E,

Quote:

Originally Posted by H25E (Post 515026)
Well, I have already assigned the engineering final project so now I have to continue althought the problems as I can.

If your assignment was that you had to lift 500kg over your head solely with your own strength, under Earth's standard gravity, without the assistance of other people, machines nor objects, what would you do?
In theory, you would start training your body to be able to handle gradually 50, 70, 80, 90, 100kg and so on, all the way up to where your body could develop to lift those 500 kg. Lifting strategies would also come in handy.

The same is applicable to this situation you're in... conceptually, that is ;). If you do not have enough training/experience to solve this issue directly, you will need to change your starting point and then gradually increase the difficulty/complexity of the problem until you reach your final objective. This is essentially what I wrote in the previous post.

Quote:

Originally Posted by H25E (Post 515026)
The gaps that could be between faces due to the bad quality mesh also allows to sHM leak into the interior of the car? Or it's only a problem about the 3D model has a hole intentionally created by the author somewhere?

It could be both.

I've remembered about a project I saw some years ago... one with a Vespa... on their website, they detailed some of the issues and solutions they went through. This post in particular should come in handy to you: http://www.vespalabs.org/Projects/Ve...Vespa_3D_Model

Best regards,
Bruno

H25E November 10, 2014 11:27

Well, I was trainning all this time with blender and meshlab to close this gaps and well it worked, sometimes xD. The main problem is that designers build the cars in different layers and then when someone tries to package all in the same product, the vertexs that must concur don't concur. Thanks for the help, you can close the threat.


All times are GMT -4. The time now is 10:59.