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/)
-   -   [Other] Mesh Failed - Any clue ? (https://www.cfd-online.com/Forums/openfoam-meshing/113967-mesh-failed-any-clue.html)

NewOFer March 2, 2013 01:09

Mesh Failed - Any clue ?
 
I have tried everything I could possibly do. I am using openFoam 2.1.x. From my understanding I don't even have to run createPatch since I am using neighborPatch within my boundary file. Please take a look at it and tell me what I am doing wrong. The model ran but is not performing and most likely because of the Mesh. Please advise, Thank you

Included below are :
1-the error from CheckMesh ( Mesh failed)
2-boundary file
3- createPatch (although I tried with and without running it I still get failure)




.................................................. .................................................. ..............
Create time

Create polyMesh for time = 0

Time = 0

Mesh stats
points: 1238361
faces: 3638000
internal faces: 3562000
cells: 1200000
boundary patches: 6
point zones: 0
face zones: 0
cell zones: 0

Overall number of cells of each type:
hexahedra: 1200000
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.
Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces ...
Patch Faces Points Surface topology
y1 12000 12261 ok (non-closed singly connected)
y2 12000 12261 ok (non-closed singly connected)
Bottom 20000 20301 ok (non-closed singly connected)
x1 6000 6161 ok (non-closed singly connected)
x2 6000 6161 ok (non-closed singly connected)
Topwall 20000 20301 ok (non-closed singly connected)

Checking geometry...
Overall domain bounding box (-0.05 -0.025 -0.00625) (0.05 0.025 0.00625)
Mesh (non-empty, non-wedge) directions (1 1 1)
Mesh (non-empty) directions (1 1 1)
Boundary openness (3.25855e-17 2.71645e-17 2.5719e-17) OK.
Max cell openness = 2.14867e-16 OK.
Max aspect ratio = 14.1434 OK.
Minimum face area = 1.76762e-08. Maximum face area = 3.14453e-07. Face area magnitudes OK.
Min volume = 8.83808e-12. Max volume = 1.57227e-10. Total volume = 6.25e-05. Cell volumes OK.
Mesh non-orthogonality Max: 0 average: 0
Non-orthogonality check OK.
Face pyramids OK.
Max skewness = 0.000282835 OK.
**Error in coupled point location: 101 faces have their 0th vertex not opposite their coupled equivalent. Average mismatch 2.81249e-06.
<<Writing 101 faces with incorrectly matched 0th vertex to set coupledFaces

Failed 1 mesh checks.

End
.................................................. .................................................. ....
boundary

FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

6
(
y1
{
type cyclic;
nFaces 12000;
startFace 3562000;
matchTolerance 0.0001;
neighbourPatch y2;
}
y2
{
type cyclic;
nFaces 12000;
startFace 3574000;
matchTolerance 0.0001;
neighbourPatch y1;
}
Bottom
{
type wall;
nFaces 20000;
startFace 3586000;
}
x1
{
type cyclic;
nFaces 6000;
startFace 3606000;
matchTolerance 0.0001;
neighbourPatch x2;
}
x2
{
type cyclic;
nFaces 6000;
startFace 3612000;
matchTolerance 0.0001;
neighbourPatch x1;
}
Topwall
{
type patch;
nFaces 20000;
startFace 3618000;
}
)



.................................................. .............................................
createPatchDict

FoamFile
{
version 2.0;
format ascii;
class dictionary;
object createPatchDict;
}

// This application/dictionary controls:
// - optional: create new patches from boundary faces (either given as
// a set of patches or as a faceSet)
// - always: order faces on coupled patches such that they are opposite. This
// is done for all coupled faces, not just for any patches created.
// - optional: synchronise points on coupled patches.

// 1. Create cyclic:
// - specify where the faces should come from
// - specify the type of cyclic. If a rotational specify the rotationAxis
// and centre to make matching easier
// - always create both halves in one invocation with correct 'neighbourPatch'
// setting.
// - optionally pointSync true to guarantee points to line up.

// 2. Correct incorrect cyclic:
// This will usually fail upon loading:
// "face 0 area does not match neighbour 2 by 0.0100005%"
// " -- possible face ordering problem."
// - in polyMesh/boundary file:
// - loosen matchTolerance of all cyclics to get case to load
// - or change patch type from 'cyclic' to 'patch'
// and regenerate cyclic as above

// Do a synchronisation of coupled points after creation of any patches.
// Note: this does not work with points that are on multiple coupled patches
// with transformations (i.e. cyclics).
pointSync false;

// Patches to create.
patches
(
{
// Name of new patch
name x1;

// Dictionary to construct new patch from
patchInfo
{
type cyclic;
neighbourPatch x2;

// Optional: explicitly set transformation tensor.
// Used when matching and synchronising points.
//transform rotational;
//rotationAxis (0 1 0);
//rotationCentre (0 0 0);
transform translational;
separationVector (1 0 0);

// Optional non-default tolerance to be able to define cyclics
// on bad meshes
//matchTolerance 1E-2;
}

// How to construct: either from 'patches' or 'set'
constructFrom patches;

// If constructFrom = patches : names of patches. Wildcards allowed.
patches (periodic1);

// If constructFrom = set : name of faceSet
set f0;
}

{
// Name of new patch
name y1;

// Dictionary to construct new patch from
patchInfo
{
type cyclic;
neighbourPatch y2;

// Optional: explicitly set transformation tensor.
// Used when matching and synchronising points.
//transform rotational;
//rotationAxis ( 0 0 1 );
//rotationCentre ( 0 0 0 );
transform translational;
separationVector (0 1 0);
}

// How to construct: either from 'patches' or 'set'
constructFrom patches;

// If constructFrom = patches : names of patches. Wildcards allowed.
patches (periodic2);

// If constructFrom = set : name of faceSet
set f0;
}
);
.................................................. ................................................

wyldckat March 2, 2013 07:01

Greetings Amin,

All I can figure out is that your "createPatchDict" has incompatible vectors... because in one you use:
Code:

separationVector (1 0 0);
and the other:
Code:

separationVector (0 1 0);
I think the second one should be:
Code:

separationVector (-1 0 0);
Have a look into the tutorial "DNS/dnsFoam/boxTurb16", which shows a very simple case using cyclic patches.

Best regards,
Bruno

NewOFer March 2, 2013 09:04

Thank you for the tip, I will look into that and see if that works
Amin





Quote:

Originally Posted by wyldckat (Post 411017)
Greetings Amin,

All I can figure out is that your "createPatchDict" has incompatible vectors... because in one you use:
Code:

separationVector (1 0 0);
and the other:
Code:

separationVector (0 1 0);
I think the second one should be:
Code:

separationVector (-1 0 0);
Have a look into the tutorial "DNS/dnsFoam/boxTurb16", which shows a very simple case using cyclic patches.

Best regards,
Bruno



All times are GMT -4. The time now is 15:38.