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

[blockMesh] BlockMeshMergePatchPairs trouble 2

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   December 19, 2006, 11:35
Default BlockMeshMergePatchPairs trouble 2
  #1
Member
 
Radu Mustata
Join Date: Mar 2009
Location: Zaragoza, Spain
Posts: 99
Rep Power: 17
r2d2 is on a distinguished road
Hi,
Can anyone tell me why the following blockMeshDict of a simple four blocks gives trouble when trying to merge the last pair of patches ( topMerge bottomMerge) .
blockMeshDict reads:

/*---------------------------------------------------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.0 |
| \ / A nd | Web: http://www.openfoam.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/

FoamFile
{
version 2.0;
format ascii;

root "";
case "";
instance "";
local "";

class dictionary;
object blockMeshDict;
}

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


convertToMeters 1.0;

vertices
(

// z = 0 (back plane)
(0 0 0) //0
(1 0 0) //1
(1 0 0) //2
(2 0 0) //3
(2 0 0) //4
(3 0 0) //5
(0 1 0) //6
(1 1 0) //7
(1 1 0) //8
(2 1 0) //9
(2 1 0) //10
(3 1 0) //11
(0 1 0) //12
(3 1 0) //13
(0 2 0) //14
(3 2 0) //15


// z = 0.1 (front plane) = +16
(0 0 0.1) //16
(1 0 0.1) //17
(1 0 0.1) //18
(2 0 0.1) //19
(2 0 0.1) //20
(3 0 0.1) //21
(0 1 0.1) //22
(1 1 0.1) //23
(1 1 0.1) //24
(2 1 0.1) //25
(2 1 0.1) //26
(3 1 0.1) //27
(0 1 0.1) //28
(3 1 0.1) //29
(0 2 0.1) //30
(3 2 0.1) //31
);

blocks
(
hex (0 1 7 6 16 17 23 22) (2 2 1) simpleGrading (1 1 1)
hex (2 3 9 8 18 19 25 24) set1 (2 2 1) simpleGrading (1 1 1)
hex (4 5 11 10 20 21 27 26) (2 2 1) simpleGrading (1 1 1)
hex (12 13 15 14 28 29 31 30) (8 2 1) simpleGrading (1 1 1)
);

edges
(
);

patches
(

wall bottom
(
(0 1 17 16)
(2 3 19 18)
(4 5 21 20)
)
wall top
(
(14 30 31 15)
)

patch inflow
(
(0 16 22 6)
(12 28 30 14)
)
patch outflow
(
(5 11 27 21)
(13 15 31 29)
)

empty frontAndBack
(
(0 6 7 1)
(16 17 23 22)
(2 8 9 3)
(18 19 25 24)
(4 10 11 5)
(20 21 27 26)
(12 14 15 13)
(28 29 31 30)
)

patch leftMerge1
(
(1 7 23 17)
)
patch rightMerge1
(
(2 18 24 8)
)

patch leftMerge2
(
(3 9 25 19)
)
patch rightMerge2
(
(4 20 26 10)
)

patch bottomMerge
(
(6 22 23 7)
(8 24 25 9)
(10 26 27 11)
)

patch topMerge
(
(12 13 29 28)
)

);

mergePatchPairs
(
(leftMerge1 rightMerge1)
(leftMerge2 rightMerge2)
(topMerge bottomMerge)
);


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


and the output of blockMesh gives the error:
Enriched patch support OK. Slave faces: 6 Master faces: 8
local: 4(18 27 28 19) one side: 0 other side: 0
local: 4(28 38 36 19) one side: 0 other side: 1
Finished face 0
local: 4(36 38 29 20) one side: 1 other side: 1


--> FOAM FATAL ERROR : Zero length edge detected. Probable projection error: slave patch probably does not project onto master. Please switch on enriched patch debug for more info

From function void enrichedPatch::calcCutFaces() const
in file slidingInterface/enrichedPatch/enrichedPatchCutFaces.C at line 237.

FOAM aborting

Foam::error::printStack(Foam:stream&)
Foam::error::abort()
Foam::enrichedPatch::calcCutFaces() const
Foam::enrichedPatch::cutFaces() const
Foam::slidingInterface::coupleInterface(Foam::poly TopoChange&) const
Foam::slidingInterface::setRefinement(Foam::polyTo poChange&) const
Foam::polyTopoChanger::topoChangeRequest() const
Foam::polyTopoChanger::changeMesh()
Foam::attachPolyTopoChanger::attach(bool)
blockMesh [0x80718c2]
__libc_start_main
__gxx_personality_v0

..and that is with "enriched patch debug" switched on in controlDict.
What am I missing?
Many thanx in advance,
Radu
r2d2 is offline   Reply With Quote

Old   December 19, 2006, 12:38
Default I bet you 10 to 1 you messed u
  #2
Senior Member
 
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,907
Rep Power: 33
hjasak will become famous soon enough
I bet you 10 to 1 you messed up a choice of master and slave patch pair: the two patches must face each other. Otherwise, the slave projects into a line on a master and you get this error.

Hrv
__________________
Hrvoje Jasak
Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk
hjasak is offline   Reply With Quote

Old   December 20, 2006, 05:32
Default Oh how much I would like to lo
  #3
Member
 
Radu Mustata
Join Date: Mar 2009
Location: Zaragoza, Spain
Posts: 99
Rep Power: 17
r2d2 is on a distinguished road
Oh how much I would like to loose this bet... The two patches do face each other and do have the same area and so on.
I did an even simpler test, with only three blocks, something like (in xy plane):

bl3
___________
bl1 | bl2


and defined just two merge pairs
1: between bl1 and bl2
2: between bl3 and bl1+bl2
...and saw that it failed only when BOTH the merge pairs were specified. Any one by itself was fine.(of course the mesh had multiple regions not connected by any face)
Just in case anyone is interested I post theblockMeshDict file.
/*---------------------------------------------------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.0 |
| \ / A nd | Web: http://www.openfoam.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/

FoamFile
{
version 2.0;
format ascii;

root "";
case "";
instance "";
local "";

class dictionary;
object blockMeshDict;
}

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


convertToMeters 1.0;

vertices
(

// z = 0 (back plane)
(0 0 0) //0
(1 0 0) //1
(1 0 0) //2
(2 0 0) //3
(0 1 0) //4
(1 1 0) //5
(1 1 0) //6
(2 1 0) //7
(0 1 0) //8
(2 1 0) //9
(0 2 0) //10
(2 2 0) //11


// z = 0.1 (front plane) = indx+12

(0 0 0.1) //12
(1 0 0.1) //13
(1 0 0.1) //14
(2 0 0.1) //15
(0 1 0.1) //16
(1 1 0.1) //17
(1 1 0.1) //18
(2 1 0.1) //19
(0 1 0.1) //20
(2 1 0.1) //21
(0 2 0.1) //22
(2 2 0.1) //23


);

blocks
(
hex (0 1 5 4 12 13 17 16) (2 4 1) simpleGrading (1 1 1)
hex (2 3 7 6 14 15 19 18) set1 (2 8 1) simpleGrading (1 1 1)
hex (8 9 11 10 20 21 23 22) (8 4 1) simpleGrading (1 1 1)
);

edges
(
);

patches
(

wall bottom
(
(0 1 13 12)
(2 3 15 14)
)

wall top
(
(10 22 23 11)
)

patch inflow
(
(0 12 16 4)
(8 20 22 10)
)
patch outflow
(
(3 7 19 15)
(9 11 23 21)
)

empty frontAndBack
(
(0 4 5 1)
(12 13 17 16)
(2 6 7 3)
(14 15 19 18)
(8 10 11 9)
(20 21 23 22)
)

patch leftMerge
(
(1 5 17 13)
)
patch rightMerge
(
(2 14 18 6)
)



patch bottomMerge
(
(4 16 17 5)
(6 18 19 7)
)

patch topMerge
(
(8 9 21 20)
)

);

mergePatchPairs
(
(leftMerge rightMerge)
(topMerge bottomMerge)
);


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

Cheers,
Radu
r2d2 is offline   Reply With Quote

Old   December 20, 2006, 06:21
Default You have two intersecting mesh
  #4
Senior Member
 
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,907
Rep Power: 33
hjasak will become famous soon enough
You have two intersecting mesh modifiers operating at the same time, which is not allowed - please read the documentation. If you connect them one at a time, everything works.

Hrv
__________________
Hrvoje Jasak
Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk
hjasak is offline   Reply With Quote

Old   December 20, 2006, 07:34
Default Sorry about that, but I tried
  #5
Member
 
Radu Mustata
Join Date: Mar 2009
Location: Zaragoza, Spain
Posts: 99
Rep Power: 17
r2d2 is on a distinguished road
Sorry about that, but I tried to run blockMesh with either one of them switched on and then use stitchMesh for the other pair and I get the following error, e.g.:
Adding point and face zones


--> FOAM FATAL ERROR : point, face or cell zone already exists

From function void addZones
(
const List<pointzone*>& pz,
const List<facezone*>& fz,
const List<cellzone*>& cz
)
in file meshes/polyMesh/polyMesh.C at line 590.

FOAM aborting

Foam::error::printStack(Foam:stream&)
Foam::error::abort()
Foam::polyMesh::addZones(Foam::List<foam::pointzon e*> const&, Foam::List<foam::facezone*> const&, Foam::List<foam::cellzone*> const&)
stitchMesh [0x80564c8]
__libc_start_main
__gxx_personality_v0
Aborted

I remember seeing this problem reported before...a long time ago...but donīt seem to be able to find that thread.
Can anyone help.
Thanx again,
Radu
r2d2 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
[waves2Foam] Having a lot of trouble for a short wavelengths arieljeds OpenFOAM Community Contributions 1 January 2, 2024 14:10
Trouble with rotating wall boundary condition king1989 OpenFOAM Running, Solving & CFD 7 July 29, 2016 14:44
Trouble with sampleDict syntax for OpenFOAM 2.3.1 rawdoggity OpenFOAM Post-Processing 1 February 1, 2015 06:24
[ICEM] trouble with mesh quality from ICEM in CFX Solver escher25 ANSYS Meshing & Geometry 0 February 28, 2011 08:38
[GAMBIT] Trouble meshing complex VOF geometry RPJones ANSYS Meshing & Geometry 2 February 14, 2011 19:54


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