Zero-thickness internal elements in blockMesh
2 Attachment(s)
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 |
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…
|
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! |
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.
|
1 Attachment(s)
Quote:
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 |
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 Code:
blocks Good luck! |
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 |
2 Attachment(s)
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! |
3 Attachment(s)
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 http://www.cfd-online.com/Forums/ope...tml#post391904 Thank you for your feedback,,, |
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. |
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:
Suggestions and recommondations will be highly appreciated. Thanks |
Thank you
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:
|
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:
|
Internal walls solution
1 Attachment(s)
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 |
All times are GMT -4. The time now is 20:58. |