|
[Sponsors] |
[snappyHexMesh] Normals abnormal? My snappyHexMesh mesh is crashing extrudeMesh :( |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
October 1, 2016, 01:53 |
Normals abnormal? My snappyHexMesh mesh is crashing extrudeMesh :(
|
#1 |
Member
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10 |
So, here's the tail end of the long line of errors in extrudeMesh:
Wedge patch 'far' is not planar. At local face at (0.58272115 -0.13322041 0.50026631) the normal (0.00045692718 -1.4411136e-14 -0.9999999) differs from the average normal (0.00045692718 -9.1495461e-18 -2.5966667e-17) by 0.99999979 Either correct the patch or split it into planar parts --> FOAM Warning : From function virtual void Foam::wedgePolyPatch::calcGeometry(Foam::PstreamBu ffers&) in file meshes/polyMesh/polyPatches/constraint/wedge/wedgePolyPatch.C at line 69 Wedge patch 'far' is not planar. At local face at (0.58452578 -0.13290467 0.50026714) the normal (0.00045692718 -1.2556885e-14 -0.9999999) differs from the average normal (0.00045692718 -9.1495461e-18 -2.5966667e-17) by 0.99999979 Either correct the patch or split it into planar parts #0 Foam::error:rintStack(Foam::Ostream&) at ??:? #1 Foam::sigFpe::sigHandler(int) at ??:? #2 ? in "/lib64/libc.so.6" #3 ? at wedgePolyPatch.C:? #4 Foam::wedgePolyPatch::calcGeometry(Foam::PstreamBu ffers&) at ??:? #5 Foam:olyBoundaryMesh::calcGeometry() at ??:? #6 Foam:olyMesh::addPatches(Foam::List<Foam:olyPa tch*> const&, bool) at ??:? #7 ? at ??:? #8 ? at ??:? #9 __libc_start_main in "/lib64/libc.so.6" #10 ? at ??:? Floating point exception (core dumped) Sure seems like something is messed up; those normals don't have a magnitude of 1! When I look at the mesh (generated by snappyHexMesh) in paraview, the "far" plane is flat as it should be, and at first glance, nothing looks wrong. But at closer inspection there's some graphics glitches on cell boundaries... perhaps they're indicative of something wrong? See the screenshot. CheckMesh isn't totally thrilled with my result: Checking geometry... Overall domain bounding box (-7.2808548e-08 -10.172217 -0.5) (4.592441 13.796311 0.5) Mesh has 3 geometric (non-empty/wedge) directions (1 1 1) Mesh has 3 solution (non-empty) directions (1 1 1) Boundary openness (-4.7905503e-16 -2.6623817e-17 1.3367687e-15) OK. Max cell openness = 4.0081077e-16 OK. Max aspect ratio = 153.11787 OK. Minimum face area = 7.5640498e-07. Maximum face area = 0.49960169. Face area magnitudes OK. Min volume = 6.2585278e-09. Max volume = 0.22989303. Total volume = 107.43732. Cell volumes OK. Mesh non-orthogonality Max: 64.669502 average: 8.5796005 Non-orthogonality check OK. Face pyramids OK. Max skewness = 3.9897695 OK. Coupled point location match (average 0) OK. Face tets OK. Min/max edge length = 0.00015605658 1.000011 OK. *There are 669 faces with concave angles between consecutive edges. Max concave angle = 65.743804 degrees. <<Writing 669 faces with concave angles to set concaveFaces Face flatness (1 = flat, 0 = butterfly) : min = 0.71319279 average = 0.99995573 *There are 3 faces with ratio between projected and actual area < 0.8 Minimum ratio (minimum flatness, maximum warpage) = 0.71319279 <<Writing 3 warped faces to set warpedFaces Cell determinant (wellposedness) : minimum: 0 average: 7.592927 ***Cells with small determinant (< 0.001) found, number of cells: 347 <<Writing 347 under-determined cells to set underdeterminedCells ***Concave cells (using face planes) found, number of cells: 21413 <<Writing 21413 concave cells to set concaveCells Face interpolation weight : minimum: 0.014156437 average: 0.48044885 ***Faces with small interpolation weight (< 0.05) found, number of faces: 20 <<Writing 20 faces with low interpolation weights to set lowWeightFaces Face volume ratio : minimum: 0.0099442612 average: 0.91347549 ***Faces with small volume ratio (< 0.01) found, number of faces: 1 <<Writing 1 faces with low volume ratio cells to set lowVolRatioFaces Failed 4 mesh checks. End ... But I still get errors even if I shut off layer addition and snapping and only do castellatedMesh: Checking geometry... Overall domain bounding box (0 -10.172217 -0.5) (4.592441 13.795547 0.5) Mesh has 3 geometric (non-empty/wedge) directions (1 1 1) Mesh has 3 solution (non-empty) directions (1 1 1) Boundary openness (8.9741618e-16 -3.0564386e-17 9.3618432e-14) OK. Max cell openness = 2.4207524e-16 OK. Max aspect ratio = 2.1774912 OK. Minimum face area = 1.3996193e-05. Maximum face area = 0.49932842. Face area magnitudes OK. Min volume = 1.0934526e-07. Max volume = 0.22931363. Total volume = 107.22771. Cell volumes OK. Mesh non-orthogonality Max: 39.051908 average: 7.8965246 Non-orthogonality check OK. Face pyramids OK. Max skewness = 1 OK. Coupled point location match (average 0) OK. Face tets OK. Min/max edge length = 0.0035878445 1 OK. <<Writing 1376 near (closer than 2.4424255e-05 apart) points to set nearPoints All angles in faces OK. Face flatness (1 = flat, 0 = butterfly) : min = 1 average = 1 All face flatness OK. Cell determinant (wellposedness) : minimum: 0 average: 8.3811569 ***Cells with small determinant (< 0.001) found, number of cells: 326 <<Writing 326 under-determined cells to set underdeterminedCells ***Concave cells (using face planes) found, number of cells: 25397 <<Writing 25397 concave cells to set concaveCells Face interpolation weight : minimum: 0.33333333 average: 0.48889781 Face interpolation weight check OK. Face volume ratio : minimum: 0.125 average: 0.94171349 Face volume ratio check OK. Failed 2 mesh checks. End ... So I think that whatever is going wrong, it's going wrong early. Any thoughts on how I can stop the mesh from going bad, or repair the damage? Just trying to get a wedge out of a very simple STL.... (attaching my case) ED: Whoops, forgot to include extrudeMeshDict! FoamFile { version 2.0; format ascii; class dictionary; object extrudeMeshDict; } constructFrom patch; sourceCase "$FOAM_CASE"; sourcePatches (far); exposedPatchName far; flipNormals false; extrudeModel wedge; mergeFaces false; nLayers 1; expansionRatio 1.0; sectorCoeffs { axisPt (0 0 0); axis (0 1 0); angle 3; } Ed2: Trying extrusion as a mesh gets a strange error: Extruding patches 1(far) on mesh "/home/meme/cfd/OpenFOAM.aerospike" Create mesh for time = 0 Adding overall 0 processor patches. Moving mesh to layer0 points since differ from original points - this can happen for wedge extrusions. Testing:"/home/meme/cfd/OpenFOAM.aerospike/system/fvSchemes" Mesh bounding box : (-0.013088475 -10.173449 -0.5) (4.6039558 13.796306 0.62004475) with span : (4.6170442 23.969755 1.1200448) Merge distance : 0.00011200448 Collapsing edges < 0.00011200448 ... Uncollapsed edges = 0 / 2637255 Number of points : 911263 Not visited : 0 Not collapsed : 911263 Collapsed : 0 Collapsing 0 cells --> FOAM FATAL ERROR: Cannot find patch in the source mesh. Valid patch names are 26 ( air inert near far engine_0_1 engine_1_2 engine_2_3 engine_3_4 engine_4_5 engine_5_6 engine_6_7 engine_7_8 engine_8_9 engine_9_10 engine_10_11 engine_11_12 engine_12_13 engine_13_14 engine_14_15 engine_15_16 engine_16_17 engine_17_18 engine_18_19 engine_19_20 engine_20_21 engine_21_22 ) It at first seems to be aware that the patch being extruded is "far", but then it seems to forget the name of the patch it's looking for.... |
|
October 1, 2016, 15:12 |
|
#2 |
Member
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10 |
Update: Okay, this is weird. I went back to surface extrusion and tried just extruding the blockMeshed version, not the snappyHexMesh version. Yet it still reports tons of weird normals than crashes. Yet the blockMeshDict is very simple:
FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } convertToMeters 1.0; vertices ( (0.000000 -10.172217 -0.5) // 0 (4.592441 -10.172217 -0.5) // 1 (4.592441 13.795547 -0.5) // 2 (0.000000 13.795547 -0.5) // 3 (0.000000 -10.172217 0.5) // 4 (4.592441 -10.172217 0.5) // 5 (4.592441 13.795547 0.5) // 6 (0.000000 13.795547 0.5) // 7 ); blocks ( hex ( 0 1 2 3 4 5 6 7) (10 48 1) simpleGrading (1 1 1) ); edges ( ); boundary ( air { type patch; faces ( ( 0 4 7 3) ( 2 6 5 1) ( 3 7 6 2) ( 1 5 4 0) ); } inert { type wall; faces ( ); } near { type patch; faces ( ( 0 3 2 1) ); } far { type patch; faces ( ( 4 5 6 7) ); } engine_0_1 { type inlet; faces ( ); } engine_1_2 { type inlet; faces ( ); } engine_2_3 { type inlet; faces ( ); } engine_3_4 { type inlet; faces ( ); } engine_4_5 { type inlet; faces ( ); } engine_5_6 { type inlet; faces ( ); } engine_6_7 { type inlet; faces ( ); } engine_7_8 { type inlet; faces ( ); } engine_8_9 { type inlet; faces ( ); } engine_9_10 { type inlet; faces ( ); } engine_10_11 { type inlet; faces ( ); } engine_11_12 { type inlet; faces ( ); } engine_12_13 { type inlet; faces ( ); } engine_13_14 { type inlet; faces ( ); } engine_14_15 { type inlet; faces ( ); } engine_15_16 { type inlet; faces ( ); } engine_16_17 { type inlet; faces ( ); } engine_17_18 { type inlet; faces ( ); } engine_18_19 { type inlet; faces ( ); } engine_19_20 { type inlet; faces ( ); } engine_20_21 { type inlet; faces ( ); } engine_21_22 { type inlet; faces ( ); } ); mergePatchPairs ( ); Something's very much not right here... time for more investigation. |
|
October 1, 2016, 19:42 |
|
#3 |
Member
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10 |
Solution to getting extrudeMesh to run: use "near" for the sourcepatches, "far" for the exposedPatchName. I'm guessing the Z-axis ordering matters when rotating around the Y axis?
Of course, rhoCentralFoam crashes immediately when I try to use the result...I'm guessing because of those checkMesh failures. In fact, they've now multiplied Overall domain bounding box (-0.013088475 -10.173454 -0.62004475) (4.6039558 13.796306 -0.37961257) Mesh has 2 geometric (non-empty/wedge) directions (1 1 0) Mesh has 3 solution (non-empty) directions (1 1 1) Wedge near with angle 1.5 degrees Wedge far with angle 1.5 degrees ***Number of edges not aligned with or perpendicular to non-empty directions: 17698 <<Writing 35396 points on non-aligned edges to set nonAlignedEdges Boundary openness (-7.5984155e-16 1.2203017e-19 -4.9030625e-15) OK. Max cell openness = 1.1748068e-15 OK. Max aspect ratio = 11.486083 OK. Minimum face area = 3.3685034e-07. Maximum face area = 0.23054045. Face area magnitudes OK. Min volume = 1.1228345e-09. Max volume = 0.052359701. Total volume = 13.173015. Cell volumes OK. Mesh non-orthogonality Max: 89.572324 average: 38.037245 *Number of severely non-orthogonal (> 70 degrees) faces: 1226. Non-orthogonality check OK. <<Writing 1226 non-orthogonal faces to set nonOrthoFaces ***Error in face pyramids: 46 faces are incorrectly oriented. <<Writing 46 faces with incorrect orientation to set wrongOrientedFaces ***Max skewness = 23.470548, 8388 highly skew faces detected which may impair the quality of the results <<Writing 8388 skew faces to set skewFaces Coupled point location match (average 0) OK. ***Error in face tets: 203 faces with low quality or negative volume decomposition tets. <<Writing 92 faces with low quality or negative volume decomposition tets to set lowQualityTetFaces Min/max edge length = 0.00015605658 0.5006823 OK. *There are 14 faces with concave angles between consecutive edges. Max concave angle = 18.78073 degrees. <<Writing 14 faces with concave angles to set concaveFaces Face flatness (1 = flat, 0 = butterfly) : min = 0.22924807 average = 0.99982601 *There are 23 faces with ratio between projected and actual area < 0.8 Minimum ratio (minimum flatness, maximum warpage) = 0.22924807 <<Writing 23 warped faces to set warpedFaces Cell determinant (wellposedness) : minimum: 1.6414878e-08 average: 1.1598552 ***Cells with small determinant (< 0.001) found, number of cells: 84 <<Writing 84 under-determined cells to set underdeterminedCells ***Concave cells (using face planes) found, number of cells: 870 <<Writing 870 concave cells to set concaveCells Face interpolation weight : minimum: 0.041015708 average: 0.45748566 ***Faces with small interpolation weight (< 0.05) found, number of faces: 2 <<Writing 2 faces with low interpolation weights to set lowWeightFaces Face volume ratio : minimum: 0.040857876 average: 0.82433489 Face volume ratio check OK. Failed 7 mesh checks. End The investigation keeps on going.... Last edited by KarenRei; October 1, 2016 at 22:44. |
|
October 1, 2016, 22:21 |
|
#4 |
Member
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10 |
Update: one step at a time:
castellatedMesh: Comes out with concavity errors. Can't seem to get rid of them, but I'm not sure if they really matter. snap: Big skewness problems arise. I've found that if I set "multiRegionFeatureSnap" to false, they go away. Yeay! Let's see how that affects the later stages. addLayers: Down to this: *There are 416 faces with concave angles between consecutive edges. Max concave angle = 56.776374 degrees. ***Cells with small determinant (< 0.001) found, number of cells: 3 ***Concave cells (using face planes) found, number of cells: 20112 extrudeMesh: Down to six errors (still clearly big problems)... Checking geometry... Overall domain bounding box (-0.0045911159 -1.172217 -0.50951419) (1.0967627 1.0558225 -0.49044774) Mesh has 2 geometric (non-empty/wedge) directions (1 1 0) Mesh has 3 solution (non-empty) directions (1 1 1) Wedge near with angle 0.5 degrees Wedge far with angle 0.5 degrees ***Number of edges not aligned with or perpendicular to non-empty directions: 6120 <<Writing 12240 points on non-aligned edges to set nonAlignedEdges Boundary openness (6.2840646e-17 4.7980132e-19 1.6326573e-15) OK. Max cell openness = 3.5125454e-16 OK. Max aspect ratio = 21.426996 OK. Minimum face area = 1.1680401e-06. Maximum face area = 0.045004462. Face area magnitudes OK. Min volume = 1.0133537e-08. Max volume = 0.00077718437. Total volume = 0.021403578. Cell volumes OK. Mesh non-orthogonality Max: 87.448012 average: 33.946912 *Number of severely non-orthogonal (> 70 degrees) faces: 258. Non-orthogonality check OK. <<Writing 258 non-orthogonal faces to set nonOrthoFaces ***Error in face pyramids: 1 faces are incorrectly oriented. <<Writing 1 faces with incorrect orientation to set wrongOrientedFaces ***Max skewness = 13.877084, 23 highly skew faces detected which may impair the quality of the results <<Writing 23 skew faces to set skewFaces Coupled point location match (average 0) OK. ***Error in face tets: 3 faces with low quality or negative volume decomposition tets. <<Writing 2 faces with low quality or negative volume decomposition tets to set lowQualityTetFaces Min/max edge length = 0.00043889936 0.22617479 OK. *There are 14 faces with concave angles between consecutive edges. Max concave angle = 31.477601 degrees. <<Writing 14 faces with concave angles to set concaveFaces Face flatness (1 = flat, 0 = butterfly) : min = 0.94740565 average = 0.99999617 All face flatness OK. Cell determinant (wellposedness) : minimum: 0.00065074968 average: 1.0570035 ***Cells with small determinant (< 0.001) found, number of cells: 20 <<Writing 20 under-determined cells to set underdeterminedCells ***Concave cells (using face planes) found, number of cells: 385 <<Writing 385 concave cells to set concaveCells Face interpolation weight : minimum: 0.087663982 average: 0.46343927 Face interpolation weight check OK. Face volume ratio : minimum: 0.089864289 average: 0.8491273 Face volume ratio check OK. Failed 6 mesh checks. Since there's only three poorly determined cells in addLayers, I'm betting I can at least get rid of them by tightening a few parameters, so I'll start with that at least... |
|
October 2, 2016, 12:23 |
|
#5 |
Member
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10 |
Backing up to snappyHexMesh, here's the cells that it seems to be complaining about:
Low weight faces: Hardly visible when I have the main mesh turned on. They appear to only be in-between the near and far patches, and since those in-between faces disappear in extrusion, I don't think I'll worry about them. Underdetermined cells: Strange... so it looks like everything that it doesn't subdivide is "underdetermined"? Why would that be? Need to read up more..... I really don't need a lot of resolution out there though, that should be for the most part calm air.... concaveCells: These appear to be wherever it changes resolution. How can I avoid that being classed as "concave cells", or otherwise avoid whatever damage that may cause? Time to try to visualize the extruded version and see how that fares... |
|
October 2, 2016, 18:09 |
|
#6 |
Member
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10 |
No end to messing with parameters, and I'm still no closer. I do have some pics of what's broken in the extrudeMesh version. The worst seems to be the tet quality issues. There seems to be bad instability right next to these faces (leading to a crash) when I run rhoCentralFoam. nonOrthoFaces and skewFaces also appear to be close to the axis that the wedge is built around; skewFaces is specifically the faces directly on the axis. concaveFaces and underdeterminedFaces seem to be fairly random. concaveCells has the same distribution as it did at the snappyHexMesh stage - wherever cells were subdivided comes up as "concave".
But those few "faces with low quality or negative volume decomposition" seems to be where rhoCentralFoam crashes out. Surely there's a way to dissolve them, isn't there? Very frustrating, I'm running out of ideas on how to get this to generate a viable mesh.... |
|
October 2, 2016, 18:11 |
|
#7 |
Member
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10 |
Whoops, forgot to include the screenshots. Limit is 5 so it'll take one more post...
|
|
October 2, 2016, 18:18 |
|
#8 |
Member
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10 |
And for what it's worth, my most recent dictionaries:
extrudeMeshDict: constructFrom patch; sourceCase "$FOAM_CASE"; sourcePatches (near); exposedPatchName far; flipNormals false; extrudeModel wedge; mergeFaces false; nLayers 1; expansionRatio 1.0; mergeTol 0.1; sectorCoeffs { axisPt (0 0 0); axis (0 1 0); angle 0.500000; } blockMeshDict FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } convertToMeters 1.0; vertices ( (0.000000 -10.172217 -0.500000) // 0 (4.592441 -10.172217 -0.500000) // 1 (4.592441 13.795547 -0.500000) // 2 (0.000000 13.795547 -0.500000) // 3 (0.000000 -10.172217 0.500000) // 4 (4.592441 -10.172217 0.500000) // 5 (4.592441 13.795547 0.500000) // 6 (0.000000 13.795547 0.500000) // 7 ); blocks ( hex ( 0 1 2 3 4 5 6 7) (10 48 1) simpleGrading (1 1 1) ); edges ( ); boundary ( air { type patch; faces ( ( 0 4 7 3) ( 2 6 5 1) ( 3 7 6 2) ( 1 5 4 0) ); } inert { type wall; faces ( ); } near { type patch; faces ( ( 0 3 2 1) ); } far { type patch; faces ( ( 4 5 6 7) ); } engine_0_1 { type inlet; faces ( ); } // snipping out engine 1_2 through engine_20_21 engine_21_22 { type inlet; faces ( ); } ); mergePatchPairs ( ); snappyHexMeshDict: FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } convertToMeters 1.0; vertices ( (0.000000 -10.172217 -0.500000) // 0 (4.592441 -10.172217 -0.500000) // 1 (4.592441 13.795547 -0.500000) // 2 (0.000000 13.795547 -0.500000) // 3 (0.000000 -10.172217 0.500000) // 4 (4.592441 -10.172217 0.500000) // 5 (4.592441 13.795547 0.500000) // 6 (0.000000 13.795547 0.500000) // 7 ); blocks ( hex ( 0 1 2 3 4 5 6 7) (10 48 1) simpleGrading (1 1 1) ); edges ( ); boundary ( air { type patch; faces ( ( 0 4 7 3) ( 2 6 5 1) ( 3 7 6 2) ( 1 5 4 0) ); } inert { type wall; faces ( ); } near { type patch; faces ( ( 0 3 2 1) ); } far { type patch; faces ( ( 4 5 6 7) ); } engine_0_1 { type inlet; faces ( ); } // snipping out engine 1_2 through engine_20_21 engine_21_22 { type inlet; faces ( ); } ); mergePatchPairs ( ); snappyHexMeshDict FoamFile { version 2.0; format ascii; class dictionary; object snappyHexMeshDict; } convertToMeters 1.0; castellatedMesh true; snap true; addLayers true; geometry { rocket.stl { type triSurfaceMesh; regions { inert { name inert; } engine_0_1 { name engine_0_1; } // snipping out engine 1_2 through engine_20_21 engine_21_22 { name engine_21_22; } } } plume { type searchableBox; min (0.0 -5.086109 -0.500000); max (0.592441 -0.172217 0.500000); } nozzle { type searchableSphere; centre (0.496220 -0.172217 0.0); radius 0.096220; } }; snapControls { nSmoothPatch 4; tolerance 2.0; nSolveIter 30; nRelaxIter 5; nFeatureSnapIter 2; implicitFeatureSnap false; explicitFeatureSnap true; multiRegionFeatureSnap false; nonManifoldEdges true; openEdges true; }; castellatedMeshControls { maxLocalCells 100000; maxGlobalCells 2000000; minRefinementCells 1000; maxLoadUnbalance 0.1; nCellsBetweenLevels 2; resolveFeatureAngle 30; locationInMesh (0.1 1 0); allowFreeStandingZoneFaces false; features ( { file "rocket.eMesh"; levels ((0 6)); } ); refinementSurfaces { rocket.stl { level (0 6); gapLevelIncrement 2; regions { inert { type wall; level (1 2); } engine_0_1 { type inlet; level (4 6); } // snipping out engine 1_2 through engine_20_21 engine_21_22 { type inlet; level (4 6); } } } }; refinementRegions { nozzle { mode distance; levels ((0.3 6) (0.45 5) (0.6 4) (0.75 3) (1.046220 2)); } plume { mode distance; levels ((0.355464 3) (0.592441 2)); } }; }; addLayersControls { relativeSizes false; nSurfaceLayers 2; expansionRatio 1.5; finalLayerThickness 0.005; minThickness 0.0001; nGrow 0; featureAngle 60; slipFeatureAngle 50; nLayerIter 5; nRelaxedIter 5; nRelaxIter 10; nMedialAxisIter 45; nSmoothSurfaceNormals 1; nSmoothNormals 3; nSmoothThickness 10; maxFaceThicknessRatio 0.5; maxThicknessToMedialRatio 0.3; minMedianAxisAngle 90; nBufferCellsNoExtrude 0; layers { inert { nSurfaceLayers 2; expansionRatio 1.5; finalLayerThickness 0.008; }; engine_0_1 { nSurfaceLayers 4; expansionRatio 1.3; finalLayerThickness 0.005; }; // snipping out engine 1_2 through engine_20_21 engine_21_22 { nSurfaceLayers 4; expansionRatio 1.3; finalLayerThickness 0.005; }; }; }; meshQualityControls { nSmoothScale 4; errorReduction 0.75; maxNonOrtho 65; maxBoundarySkewness 20; maxInternalSkewness 4; maxConcave 80; minVol 2e-10; minTetQuality 1e-9; minArea 5e-7; minTwist 0.05; minDeterminant 0.001; minFaceWeight 0.05; minVolRatio 0.01; minTriangleTwist -1; relaxed { maxNonOrtho 75; } }; mergeTolerance 1e-8; |
|
October 2, 2016, 21:06 |
|
#9 |
Member
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10 |
Potential breakthrough! After working on it all weekend, I found that by getting rid of the exposedPatchName I'm down to just three triple-star checkGeometry errors and two minor:
*There are 244 faces with concave angles between consecutive edges. Max concave angle = 79.648235 degrees. *There are 41 faces with ratio between projected and actual area < 0.8 ***Cells with small determinant (< 0.001) found, number of cells: 326 ***Concave cells (using face planes) found, number of cells: 11522 ***Faces with small interpolation weight (< 0.05) found, number of faces: 4 The tet quality error is gone. Time for a re-run to see if it's now stable Note: I spent a while looking into an alternative which hopefully I don't need to do now - using setSet to remove cells: http://www.diva-portal.org/smash/get...828/fulltext01 (page 24). Hopefully I won't need to do that now because it leaves big holes ED: Never mind that. I think extrudeMesh didn't go through without the exposed patch, and that was just the unextruded version. Ugh.... ED2: Nope, it doesn't work without the exposed patch. Which makes sense, I had tried taking it out long ago. Ughhh...... ED3: Okay, so I can't ditch the exposed patch or the source patches... and if I make them identical then it crashes.... new plan. Trying to first make a linear extrusion, then a wedge extrusion from it. Just managed to get a relatively clean linear extrusion (only concavity/determinant ***errors and six concave face-angles (1-star)). Let's see if I can find a way to get a clean wedge from it... ED4: Nope. Same number of errors making a wedge from the linear extrusion as from the raw snappyHexMatch ED5: And, now I've reverted back to my only other option (setSet to delete the low quality tets), aaaaand.... it's still unstable. So basically, I'm screwed Last edited by KarenRei; October 2, 2016 at 23:39. |
|
October 5, 2016, 23:50 |
|
#10 |
Member
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10 |
So... I think I'm to some sort of acceptable, but subpar result.
1) My reading is that those "concave" face issues will *always* happen whenever snappyHexMesh changes block resolutions. They appear to lead to some artifacts in processing when I view through paraFoam but I'm not sure how meaningful they are, it may just be illusory. They don't seem to lead to instability. 2) I got rid of the surface layer, as I'm not positive that it's actually needed. 3) I changed it so that my blockmesh approaches, but doesn't *reach* X=0 (the wedge axis). Since it never gets there, it never gets the infinitely skew / bad quality faces there. I use a symmetryPlane instead. All this together, and I think that I... roughly... have something. Not ideal, but something. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
sliding mesh problem in CFX | Saima | CFX | 46 | September 11, 2021 08:38 |
how to set periodic boundary conditions | Ganesh | FLUENT | 15 | November 18, 2020 07:09 |
[mesh manipulation] cfMesh + extrudeMesh -> bad quality mesh? | aerospacious | OpenFOAM Meshing & Mesh Conversion | 1 | July 28, 2020 03:57 |
[snappyHexMesh] Creating multiple multiple cell zones with snappyHexMesh - a newbie in deep water! | divergence | OpenFOAM Meshing & Mesh Conversion | 0 | January 23, 2019 05:17 |
Convergence moving mesh | lr103476 | OpenFOAM Running, Solving & CFD | 30 | November 19, 2007 15:09 |