CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Meshing & Mesh Conversion

[snappyHexMesh] Normals abnormal? My snappyHexMesh mesh is crashing extrudeMesh :(

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   October 1, 2016, 00:53
Default Normals abnormal? My snappyHexMesh mesh is crashing extrudeMesh :(
  #1
Member
 
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10
KarenRei is on a distinguished road
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....
Attached Images
File Type: jpg eldflaug13.jpg (44.5 KB, 44 views)
Attached Files
File Type: gz tmp.tar.gz (6.0 KB, 3 views)
KarenRei is offline   Reply With Quote

Old   October 1, 2016, 14:12
Default
  #2
Member
 
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10
KarenRei is on a distinguished road
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.
KarenRei is offline   Reply With Quote

Old   October 1, 2016, 18:42
Default
  #3
Member
 
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10
KarenRei is on a distinguished road
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 21:44.
KarenRei is offline   Reply With Quote

Old   October 1, 2016, 21:21
Default
  #4
Member
 
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10
KarenRei is on a distinguished road
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...
KarenRei is offline   Reply With Quote

Old   October 2, 2016, 11:23
Default
  #5
Member
 
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10
KarenRei is on a distinguished road
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...
Attached Images
File Type: png lowWeightFaces0.png (29.4 KB, 16 views)
File Type: png lowWeightFaces1.png (4.9 KB, 11 views)
File Type: png underdeterminedCells.png (16.7 KB, 11 views)
File Type: png concaveCells.png (20.4 KB, 15 views)
KarenRei is offline   Reply With Quote

Old   October 2, 2016, 17:09
Default
  #6
Member
 
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10
KarenRei is on a distinguished road
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....
KarenRei is offline   Reply With Quote

Old   October 2, 2016, 17:11
Default
  #7
Member
 
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10
KarenRei is on a distinguished road
Whoops, forgot to include the screenshots. Limit is 5 so it'll take one more post...
Attached Images
File Type: png tetQuality1.png (37.7 KB, 21 views)
File Type: png tetQuality2.png (5.4 KB, 8 views)
File Type: png nonOrthoFaces.png (19.8 KB, 10 views)
File Type: png skewFaces.png (18.6 KB, 10 views)
File Type: png concaveFaces.png (35.6 KB, 10 views)
KarenRei is offline   Reply With Quote

Old   October 2, 2016, 17:18
Default
  #8
Member
 
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10
KarenRei is on a distinguished road
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;
Attached Images
File Type: png underdeterminedCells.png (33.6 KB, 11 views)
File Type: png concaveCells.png (27.7 KB, 11 views)
KarenRei is offline   Reply With Quote

Old   October 2, 2016, 20:06
Default
  #9
Member
 
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10
KarenRei is on a distinguished road
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 22:39.
KarenRei is offline   Reply With Quote

Old   October 5, 2016, 22:50
Default
  #10
Member
 
Anonymouse
Join Date: Dec 2015
Posts: 98
Rep Power: 10
KarenRei is on a distinguished road
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.
KarenRei is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
sliding mesh problem in CFX Saima CFX 46 September 11, 2021 07:38
how to set periodic boundary conditions Ganesh FLUENT 15 November 18, 2020 06:09
[mesh manipulation] cfMesh + extrudeMesh -> bad quality mesh? aerospacious OpenFOAM Meshing & Mesh Conversion 1 July 28, 2020 02:57
[snappyHexMesh] Creating multiple multiple cell zones with snappyHexMesh - a newbie in deep water! divergence OpenFOAM Meshing & Mesh Conversion 0 January 23, 2019 04:17
Convergence moving mesh lr103476 OpenFOAM Running, Solving & CFD 30 November 19, 2007 14:09


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