CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Native Meshers: blockMesh

Zero-thickness internal elements in blockMesh

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   April 24, 2012, 11:52
Default Zero-thickness internal elements in blockMesh
  #1
New Member
 
Claudio
Join Date: May 2010
Location: Boston, MA
Posts: 28
Rep Power: 6
Claudio is on a distinguished road
I realized I posted in the wrong thread, but I also seem not to be able to find how to delete my own post.

Hi,

I'm trying to create a "simple" 2D geometry: it's a rectangular tank which has 4 internal members that are attached to the tank only at one end. Three of them look like shelves on the right wall and one is a vertical partition that goes only half the height up from the bottom of the tank. The number of cell in the B dimension is 1, hence the 2D case.

I made these internal members zero-thickness, but it seems I either did not define well the patches, or blockMesh does not like zero-thickness internal members.

Anybody know which one is it?

I'm attaching a pic of the geometry and the blockMeshDict
Attached Images
File Type: png Case_2.PNG (20.0 KB, 130 views)
Attached Files
File Type: txt blockMeshDict.txt (5.1 KB, 35 views)

Last edited by Claudio; April 24, 2012 at 13:02. Reason: Published in the wrong thread
Claudio is offline   Reply With Quote

Old   April 24, 2012, 19:19
Default
  #2
Senior Member
 
lore
Join Date: Mar 2010
Location: Italy
Posts: 458
Rep Power: 8
lovecraft22 is on a distinguished road
Send a message via Skype™ to lovecraft22
I'm not sure 100% but I don't think you can do that… theoretically speaking you would end up with a single node that would belong to two faces of a wall surface… Don't think it's possible but let's wait anyway for someone with more experience than me…
lovecraft22 is offline   Reply With Quote

Old   April 26, 2012, 07:49
Default
  #3
Member
 
Tibor Nyers
Join Date: Jul 2010
Location: Hungary
Posts: 91
Rep Power: 7
Toorop is on a distinguished road
Hi,

a while back I had the same problem and found this solution. Basically, you name your touching domains in the blockMeshDict, and extract the adjacent faces with some topoSet commands. Finally, you make these faces internal with createBaffles.

Good luck!
Toorop is offline   Reply With Quote

Old   June 28, 2012, 08:57
Default
  #4
Senior Member
 
Albrecht vBoetticher
Join Date: Aug 2010
Location: Zürich, Swizerland
Posts: 176
Rep Power: 6
vonboett is on a distinguished road
Thanks Toorop, I used your topoSet / createBaffles workaround to build a model of a 4m diameter rotating drum for rheometer measurements of debris material that included 2 cm raisers, and it works fine. I think it is always a good strategy to provide beginners with all posibilities using simple meshing methods like blockMesh, especially since snappyHexMesh is not so easy to fully understand.
vonboett is offline   Reply With Quote

Old   August 9, 2012, 18:18
Default
  #5
New Member
 
Claudio
Join Date: May 2010
Location: Boston, MA
Posts: 28
Rep Power: 6
Claudio is on a distinguished road
Quote:
Originally Posted by Toorop View Post
Hi,

a while back I had the same problem and found this solution. Basically, you name your touching domains in the blockMeshDict, and extract the adjacent faces with some topoSet commands. Finally, you make these faces internal with createBaffles.

Good luck!
Hi Toorop,

I tried to follow your example and got to the point of creating the faceZoneSets for each of the three horizontal buffers (BTW the example I am uploading is similar, but not the same as above).
How can I modify your createBaffles command so that all three of the faceZoneSets are part of the same patch (HorzMembers in my case)?

THanks,
Claudio
Attached Files
File Type: gz Tank_Baffles.tar.gz (9.1 KB, 21 views)
Claudio is offline   Reply With Quote

Old   August 22, 2012, 06:12
Default
  #6
Member
 
Tibor Nyers
Join Date: Jul 2010
Location: Hungary
Posts: 91
Rep Power: 7
Toorop is on a distinguished road
Hi Cladio,

Sorry for the delayed response.

The Allrun script that you provided had a typo at the line with m4.
Should be something like this:
Code:
m4 constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict
The next problem I encountered is that the blockMesh file has some strange entries at the blocks:
Code:
blocks
(
    hex (0 8 9 1 24 32 33 25) HrzM1 (4 7 1) simpleGrading (1 1 1)
    hex (1 9 11 3 25 33 35 27) HrzM2 (4 9 1) simpleGrading (1 1 1)
    hex (3 11 13 5 27 35 37 29) HrzM3 (4 9 1) simpleGrading (1 1 1)
    hex (5 13 14 6 29 37 38 30) HrzM4 (4 14 1) simpleGrading (1 1 1)
    hex (6 14 15 7 30 38 39 31) HrzM5 (4 ND4 1) simpleGrading (1 1 1)
    hex (8 16 17 9 32 40 41 33) (64 7 1) simpleGrading (1 1 1)
    hex (9 17 19 11 33 41 43 35) (64 9 1) simpleGrading (1 1 1)
    hex (11 19 21 13 35 43 45 37) (64 9 1) simpleGrading (1 1 1)
    hex (13 21 22 14 37 45 46 38) (64 14 1) simpleGrading (1 1 1)
    hex (14 22 23 15 38 46 47 39) (64 ND4 1) simpleGrading (1 1 1)
);
I would suggest a step-by-step approach if you're into uncharted territory. So fix the blockMeshDict and try the createBaffles in a not so complicated case first. Then merge the best of both!

Good luck!
Toorop is offline   Reply With Quote

Old   August 22, 2012, 12:44
Default
  #7
New Member
 
Claudio
Join Date: May 2010
Location: Boston, MA
Posts: 28
Rep Power: 6
Claudio is on a distinguished road
Thanks Tibor.

Sorry about the typos. ND4 in blockMeshDict just needs to be defined at the top of blockMeshDict.m4, where ND1, ND2, ND3 are defined.

I did use your method to change just one internal face to a wall, and got it to work, but now I need to be able to do it for multiple walls and have them be a part of the same patch.

Any suggestions for that?

Claudio
Claudio is offline   Reply With Quote

Old   August 23, 2012, 05:14
Default
  #8
Member
 
Tibor Nyers
Join Date: Jul 2010
Location: Hungary
Posts: 91
Rep Power: 7
Toorop is on a distinguished road
Hi Claudio,

I have attached the cavity example tutorial with baffles and other minor modifications (to get a nice look). This time I made the cellSets with topoSet so I didn't have to bother with the blockMeshDict file. Hopefully, you can find it useful!
Attached Images
File Type: png cavitiy4xBaffles.png (49.5 KB, 97 views)
Attached Files
File Type: gz cavity.tar.gz (50.6 KB, 47 views)
Toorop is offline   Reply With Quote

Old   November 13, 2012, 13:01
Default
  #9
hfs
Member
 
Join Date: Jul 2012
Posts: 59
Rep Power: 4
hfs is on a distinguished road
Thank you Toorop for sharing your case..

Can I use topoSet to create 2 patches from one 0 thickness STL; such that one patch is facing upside and the other is facing downside?

More details about what I want is in this thread
upper and lower patch for a 0_thick Membrane in a wind tunnel

Thank you for your feedback,,,
Attached Images
File Type: jpg Umb1_or_Umb2.jpg (60.6 KB, 24 views)
File Type: jpg Umb1_P.jpg (22.8 KB, 24 views)
File Type: jpg Umb2_P.jpg (23.1 KB, 20 views)
hfs is offline   Reply With Quote

Old   November 21, 2012, 22:29
Default
  #10
Member
 
Chris L
Join Date: Sep 2012
Posts: 36
Rep Power: 4
vbchris is on a distinguished road
This maybe a bit off path buy I just finished a mesh with internal walls.
I found the easiest was was to define the internal face points twice. Use the original points for once face, and the duplicate points for the other face on the 0 thickness wall.
vbchris is offline   Reply With Quote

Old   March 23, 2013, 11:29
Default
  #11
Member
 
Jamal
Join Date: May 2012
Location: Freiburg
Posts: 54
Rep Power: 3
aujamal20 is an unknown quantity at this point
Hello OFs

I am facing a problem regarding defining an internal patch within fluid domain such that internal patch behave as a patch and I am interested to calculate mass flow through that patch.

Right now I can use topoSet to define the faceSet/faceZone of that patch and using createBaffles utility patch could be created and I did that. But I dont know exaclty how to use createBaffle to create internal patch because when i create patch that also becomes a boundary patch. And this scenario lead to another situation by defining BC on that patch.
So what I want to do is to create an intern patch and to use that patch to measure mass flow and temperature of fluid passing through that patch, for that I use funtions in controlDict like
Quote:
functions
{
patchMassFlow
{
type patchExpression;
region "fluid";

accumulations (
sum
);
patches (
patchName
);
expression "phi";
//after 5;
verbose true;
}

patchAverage
{
type patchExpression;
region "fluid";

accumulations (
average
);
patches (
patchName
);
expression "T";
//after 5;
verbose true;
}
}
Secondly is it possible to define groovyBC on that internal patch to control flow rate.
Suggestions and recommondations will be highly appreciated.
Thanks
aujamal20 is offline   Reply With Quote

Old   April 29, 2013, 15:52
Default Thank you
  #12
New Member
 
Claudio
Join Date: May 2010
Location: Boston, MA
Posts: 28
Rep Power: 6
Claudio is on a distinguished road
Hi Tibor,

sorry for the very long delay on the thank you and on the reply.
Another project came in with higher priority and this one got put aside, so I forgot to keep checking this thread.
Now I'm back working on it.

I downloaded your solution and will study it. I'm sure I will have some question, and I hope you'll still be able and willing to help.

Cheers.

Quote:
Originally Posted by Toorop View Post
Hi Claudio,

I have attached the cavity example tutorial with baffles and other minor modifications (to get a nice look). This time I made the cellSets with topoSet so I didn't have to bother with the blockMeshDict file. Hopefully, you can find it useful!
Claudio is offline   Reply With Quote

Old   April 30, 2013, 16:07
Default
  #13
New Member
 
Claudio
Join Date: May 2010
Location: Boston, MA
Posts: 28
Rep Power: 6
Claudio is on a distinguished road
HI,

I thought about doing that, but then I read page U-132 of the OF 2.1.0 Manual, where it says "the point list cannot contain two different points at an exactly identical position nor any point that is not part of at least one face".
This seem to imply you can't do what you did, but you did it so...

In any case I solved my problem for now using the method Tibor suggested.

C.

Quote:
Originally Posted by vbchris View Post
This maybe a bit off path buy I just finished a mesh with internal walls.
I found the easiest was was to define the internal face points twice. Use the original points for once face, and the duplicate points for the other face on the 0 thickness wall.
Claudio is offline   Reply With Quote

Old   June 7, 2013, 13:39
Default Internal walls solution
  #14
New Member
 
Claudio
Join Date: May 2010
Location: Boston, MA
Posts: 28
Rep Power: 6
Claudio is on a distinguished road
Hi,

so I was able to take what Tibor posted and make a few changes to adapt it better to my case.
I'm attacking the cases of an oscillating 2D tank with internal baffles.

I do not use the "box" command in topoSetDict to make a cellSet, but instead create different cellSets directly in the grid. This is because I found that if the position where I want the internal walls does not coincide with a cell face, the method breaks down.

For example in the cavity example posted by Tibor, if I wanted to make only 2 baffles that were at 1/3 of the distance from the side walls it would not work because there are 200 cells in the horizontal direction and that is not divisible by 3. But if instead of making he grid out of one single block I make out of 6 blocks, then I have more control over where I place the baffles.

Anyway, I hope my case can help others.

Claudio
Attached Files
File Type: zip oscillating_tank.zip (7.3 KB, 10 views)
Claudio is offline   Reply With Quote

Reply

Tags
blockmesh, zero-thickness internal

Thread Tools
Display Modes

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 On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
BlockMesh number internal faces and boundary ynos OpenFOAM Native Meshers: blockMesh 6 December 13, 2011 06:36
blockMesh and internal faces piprus OpenFOAM 6 December 10, 2011 15:49
Internal walls of zero thickness anger OpenFOAM Native Meshers: blockMesh 20 April 6, 2009 02:50
CFX4.3 -build analysis form Chie Min CFX 5 July 13, 2001 00:19


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