CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > CFX

Getting prism to inflate into mixed tet-hex meshes

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

Reply
 
LinkBack Thread Tools Display Modes
Old   September 19, 2006, 09:46
Default Getting prism to inflate into mixed tet-hex meshes
  #1
Joe
Guest
 
Posts: n/a
Hi all,

Like many of you I use mixed tet-hex-prism meshes to most efficiently mesh complex geometries. The procedure I typically use is:

Create tet meshes in complex areas Create hex meshes in less complex areas Make meshes node conformal Create prism layers to resolve boundary layer with Prism.

The problem I am having at the moment is that I'm getting very little penetration of inflated prisms into the hex mesh regions while the inflation into the tet meshes works perfectly. For this specific application I am attempting to inflate multiple prism layers such that their combined height is ~2X the lengthscale of the surface mesh they are inflated from.

For example, here is the interface between a tet and hex mesh after they were made node conformal.

www.ImageShack.us" /></a>

As you can see I have made the first hex layer ~2X the base length scale in order to create space for Prism to effectively inflate hexes into the existing hex mesh.

Afer inflation (15 layers, 1.2 ratio, theoretical total height = 2X base length scale) the mesh looks like this:

www.ImageShack.us" /></a>

As you can see the inflation is normal in the tet mesh but pregressively disappears near the interface and doesnt appear to exist within the hex mesh at all.

However, closer inspection of the interface reveals limited inflation i.e. ~7 of the requested 15 layers are inflated in the hex region:

www.ImageShack.us" /></a>

Inspection of Prism's output revealed the following at the inflation layer number where the hex inflation stopped:

"extruding prism layer 8 0 flat tetrahedra created between layers 0 pointy tetrahedra created between layers 21166 node columns stopped during extrusion because extruding the node would deform an existing hex check before create_prism check after create_prism worst prism quality: 2 check after reconnect_nodes no orientation errors writing out prism layer 8"

Clearly, "21166 node columns stopped during extrusion because extruding the node would deform an existing hex" is relevant to my problem. However, try as I might after fiddling with Prism's extensive set of control parameters I cant figure out how to increase the prism layers penetration into the hex mesh region. The hex mesh quality isnt being reduced by the inflation so I dont understand why it terminates early.

After some additional investigation I discovered that exactly the same problem occurs even if you just try to use Prism on a hex only mesh. For example, here is a simple quarter pipe geometry:

www.ImageShack.us" /></a>

After attempting to inflate 15x1.2 "prism" layers I get exactly the same early termination effect with the same "error" message:

www.ImageShack.us" /></a>

Does anyone know how to overcome this? I'm guessing its controlled by one of the 20 odd Prism parameters but I simply havent been able to figure out which one (or which combination)!

TIA
  Reply With Quote

Old   September 19, 2006, 17:38
Default Re: Getting prism to inflate into mixed tet-hex me
  #2
Glenn Horrocks
Guest
 
Posts: n/a
Hi Joe,

I have tried to do prism layers on a tet/hex mesh and I have never got it to work properly either. In my case I just gave up and used a tet/prism mesh. If you can find a way of getting this to work I will be very interested to hear about it.

It is just a guess, but I suspect you may well need to talk to the ICEM developers on this.

Glenn Horrocks
  Reply With Quote

Old   September 19, 2006, 17:47
Default Re: Getting prism to inflate into mixed tet-hex me
  #3
Joe
Guest
 
Posts: n/a
Argh ... I was hoping I had screwed up somewhere and there was a simple fix but your confirmation dashes that hope.

I'm dealing with the problem by using GGIs but they are suspect especially with turbulence quantities and use much more memory.

If anyone has a work around please share. I did try to pre inflate both meshes (using a mesh control for the hex portion) prior to merging them but the node conformal routine couldnt handle it.

Can anyone recommend an alternative to ICEMCFD. This issue is such a problem for me that I'd consider using an alternate mesher for this case.
  Reply With Quote

Old   September 20, 2006, 08:02
Default Re: Getting prism to inflate into mixed tet-hex me
  #4
myron
Guest
 
Posts: n/a
I just built a hex mesh using Blocking - then converted to unstructured. I was able to use the Prism mesher to build 12 prism layers into it. My smallest original hex element off the wall was 0.0396 - and the total prism thickness (total of the 12 layers) was 0.0278. It worked just fine. I've done similar meshes with tets/hexas in the past. I believe the issue with tets/hexas is that as the prism mesher pushes past a layer of tets, it must delete it and reconnect. The reattachment to the hexas might cause problems at that point....
  Reply With Quote

Old   September 20, 2006, 09:05
Default Re: Getting prism to inflate into mixed tet-hex me
  #5
Joe
Guest
 
Posts: n/a
Very strange. What platform are you working on? What version of icem CFD are you using? Which service packs?

Would you mind providing your input files as a zip file? You could use a service like www.rapidshare.de to upload them and provide us with a link.
  Reply With Quote

Old   September 20, 2006, 09:41
Default Re: Getting prism to inflate into mixed tet-hex me
  #6
Joe
Guest
 
Posts: n/a
This would allow me to test whether its a platform specific bug / configuration issue or just a mis-specification of the Prism input parameters on my part.
  Reply With Quote

Old   September 20, 2006, 17:52
Default Re: Getting prism to inflate into mixed tet-hex me
  #7
Glenn Horrocks
Guest
 
Posts: n/a
Hi Joe,

In previous versions of ICEM whenever I tried doing prism layers on a mesh with any hexes in it the software would crash. In the current version it does not crash but like you I have never managed to get a satisfactory mesh out of it so I have pretty much given up on the concept. I suspect if the developers can play with some demonstration models they may be able to fix it.

My first try for an alternative mesher is Gridgen. It is quite powerful (though not as many features as ICEM in general) and they offer a free trial license.

Regards, Glenn Horrocks
  Reply With Quote

Old   September 20, 2006, 19:31
Default Re: Getting prism to inflate into mixed tet-hex me
  #8
Joe
Guest
 
Posts: n/a
Thanks. I last used gridgen about 10 years ago, I see it has improved considerably since then!
  Reply With Quote

Old   September 21, 2006, 08:18
Default Re: Getting prism to inflate into mixed tet-hex me
  #9
myron
Guest
 
Posts: n/a
I'm on Windows - ICEM CFD 10.0 with SP1 and SP2 installed.

http://rapidshare.de/files/33914671/TestPrism.zip.html
  Reply With Quote

Old   September 21, 2006, 09:56
Default Re: Getting prism to inflate into mixed tet-hex me
  #10
Joe
Guest
 
Posts: n/a
Much obliged. I will report back in a few hours.
  Reply With Quote

Old   September 22, 2006, 08:44
Default Re: Getting prism to inflate into mixed tet-hex me
  #11
Joe
Guest
 
Posts: n/a
Initial report back:

After running your files as is, I get exactly the same mesh you got. I now have to figure out why your mesh works but my quarter O grid grid doesn't!

I will report my findings ...
  Reply With Quote

Old   September 22, 2006, 10:41
Default Re: Getting prism to inflate into mixed tet-hex me
  #12
Joe
Guest
 
Posts: n/a
This is all getting rather surreal.

As I mentioned previously, re-running your files, as is, worked. I then reopened my original quarter pipe, changed the prism settings to yours. This worked. I then reset the prism settings to my original settings and it worked again! Baffling.

I then took my quarter grid to the next logical step:

www.ImageShack.us" /></a>

After creating a node conformal mesh I re-ran prism with its parameters unchanged only to run into assertion errors:

" 3835 prisms to be created on family WALL splitting thin baffles initializing heights smoothing heights done smoothing heights initializing tetra mesh sizes 2539 verts growing 15 layers initializing directions from levelset norm 2539 prism_nodes smoothing marching directions 2539 prism_nodes iteration: 0 worst quality 0.84492 iteration: 1 worst quality 0.845499 iteration: 2 worst quality 0.8455 iteration: 3 worst quality 0.856549 iteration: 4 worst quality 0.856549 final iteration: worst extruded element quality 0.856549 completed smoothing extruding prism layer 1 0 flat tetrahedra created between layers 0 pointy tetrahedra created between layers check before create_prism check after create_prism worst prism quality: 0.856549 check after reconnect_nodes no orientation errors no orientation errors writing out prism layer 1 done initializing directions from levelset norm 2539 prism_nodes 452 prisms turned off because the were pushing into smaller tetrahedra smoothing prism layers done smoothing prism layers smoothing marching directions 1738 prism_nodes iteration: 0 worst quality 0.539816 iteration: 1 worst quality 0.539816 iteration: 2 worst quality 0.539816 iteration: 3 worst quality 0.539816 iteration: 4 worst quality 0.539816 final iteration: worst extruded element quality 0.539816 completed smoothing extruding prism layer 2 0 flat tetrahedra created between layers 0 pointy tetrahedra created between layers 1 node columns stopped during extrusion because the node was/nodes were isolated check before create_prism prism: prism.C:1877: void create_prism(int, vertex**, element*, element*, void*): Assertion `ndegen == 2' failed. "

So I'm stumped again. I also applied your settings to my main problem and ran into the same limited prism penetration problem again.

I cant draw any specific conclusions other to think that prism is buggy on hybrid meshes.
  Reply With Quote

Old   September 24, 2006, 15:55
Default Re: Getting prism to inflate into mixed tet-hex me
  #13
Astrid
Guest
 
Posts: n/a
Sorry. I have never created a hex-tet-prism-mesh (where are the pyramids?) before because I do not have a hex license. But......

Imagine a prism element: two triangular and three square faces. How do you want to connect the triangular top of a prism element with a square face of a hex element? You need two triangular faces to make a square but then you still have a problem. I can imagine ICEM has problems there. Or is there some kind of trick that I don't know?

I think it is far more logical to refine your hex mesh down to the wall. Then ICEM can connect the rectangular faces of the prisms with the hex elements, the triangular top faces with the tets and you need pyramids to connect the tets with the hexs. Then the circle is round

Or am I too old fashioned and did I miss something in gridding technology.....

Astrid
  Reply With Quote

Old   September 25, 2006, 05:10
Default Re: Getting prism to inflate into mixed tet-hex me
  #14
TB
Guest
 
Posts: n/a
I'll view this approach rather sceptical, as I find it of little use to mesh a geometry with different types of elements.

Shall be obliged if you could give me some advice about the motivation behind this? Will this help for improving the mesh quality or speeding up the meshing process?
  Reply With Quote

Old   September 26, 2006, 14:45
Default Re: Getting prism to inflate into mixed tet-hex me
  #15
myron
Guest
 
Posts: n/a
The prism mesher in general could use some work - even on pure tet meshers. It's definitely a hit-and-miss tool. Best to contact your support provider on your particular case.
  Reply With Quote

Old   October 10, 2011, 05:59
Default
  #16
New Member
 
chyn wey lee
Join Date: Apr 2009
Posts: 22
Rep Power: 8
djstoneage is on a distinguished road
it might been a long time for this post but i had success with tet to hex maybe it will help someone out there

my procedure to create it is

first create your tetra's make sure smoothing is turn off and make sure the create prism on the compute tetra section is not selected. If this option is selected it would smooth the mesh for some reason even thou smooth mesh is turn off.

run a check mesh for surface and volume orientation, if there's no error proceed with generate prism.

once you have generated prism run check mesh again to fix any volume orientation error.

no go to convert mesh and select tet to hex with 12 tetra to 1 hexa method.

hope that help someone out there
djstoneage is offline   Reply With Quote

Old   October 10, 2011, 07:06
Default
  #17
Super Moderator
 
Glenn Horrocks
Join Date: Mar 2009
Location: Sydney, Australia
Posts: 10,926
Rep Power: 85
ghorrocks has a spectacular aura aboutghorrocks has a spectacular aura aboutghorrocks has a spectacular aura about
This is a very old thread and I think the problems being discussed have been resolved. Hopefully this stuff should work reliably now.
ghorrocks is offline   Reply With Quote

Reply

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
This mesh contains patches of type empty but is not 1D or 2D oric OpenFOAM Running, Solving & CFD 35 March 8, 2014 19:37
Blockmesh error - 2D scramjet - please help ishaninair OpenFOAM Native Meshers: blockMesh 7 March 18, 2011 01:14
[ICEM] how can i create a consistent transitions between tet and hex? specifically my model? snailstb ANSYS Meshing & Geometry 3 March 15, 2010 21:26
Why are hex meshes better than tet? bigphil OpenFOAM Meshing Format & General Technical 9 May 19, 2009 05:45
CheckMeshbs errors ivanyao OpenFOAM Running, Solving & CFD 2 March 11, 2009 03:34


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