CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   CFX (http://www.cfd-online.com/Forums/cfx/)
-   -   Getting prism to inflate into mixed tet-hex meshes (http://www.cfd-online.com/Forums/cfx/23080-getting-prism-inflate-into-mixed-tet-hex-meshes.html)

Joe September 19, 2006 09:46

Getting prism to inflate into mixed tet-hex meshes
 
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.

http://img161.imageshack.us/img161/2...tionbq2.th.jpgwww.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:

http://img95.imageshack.us/img95/884...tionqj8.th.jpgwww.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:

http://img161.imageshack.us/img161/3...seuppo1.th.jpgwww.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:

http://img95.imageshack.us/img95/1760/pipebp5.th.jpgwww.ImageShack.us" /></a>

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

http://img95.imageshack.us/img95/533...tionau1.th.jpgwww.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

Glenn Horrocks September 19, 2006 17:38

Re: Getting prism to inflate into mixed tet-hex me
 
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

Joe September 19, 2006 17:47

Re: Getting prism to inflate into mixed tet-hex me
 
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.

myron September 20, 2006 08:02

Re: Getting prism to inflate into mixed tet-hex me
 
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....

Joe September 20, 2006 09:05

Re: Getting prism to inflate into mixed tet-hex me
 
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.

Joe September 20, 2006 09:41

Re: Getting prism to inflate into mixed tet-hex me
 
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.

Glenn Horrocks September 20, 2006 17:52

Re: Getting prism to inflate into mixed tet-hex me
 
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

Joe September 20, 2006 19:31

Re: Getting prism to inflate into mixed tet-hex me
 
Thanks. I last used gridgen about 10 years ago, I see it has improved considerably since then!

myron September 21, 2006 08:18

Re: Getting prism to inflate into mixed tet-hex me
 
I'm on Windows - ICEM CFD 10.0 with SP1 and SP2 installed.

http://rapidshare.de/files/33914671/TestPrism.zip.html

Joe September 21, 2006 09:56

Re: Getting prism to inflate into mixed tet-hex me
 
Much obliged. I will report back in a few hours.

Joe September 22, 2006 08:44

Re: Getting prism to inflate into mixed tet-hex me
 
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 ...

Joe September 22, 2006 10:41

Re: Getting prism to inflate into mixed tet-hex me
 
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:

http://img114.imageshack.us/img114/7...bridwl7.th.jpgwww.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.

Astrid September 24, 2006 15:55

Re: Getting prism to inflate into mixed tet-hex me
 
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

TB September 25, 2006 05:10

Re: Getting prism to inflate into mixed tet-hex me
 
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?

myron September 26, 2006 14:45

Re: Getting prism to inflate into mixed tet-hex me
 
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.

djstoneage October 10, 2011 05:59

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

ghorrocks October 10, 2011 07:06

This is a very old thread and I think the problems being discussed have been resolved. Hopefully this stuff should work reliably now.


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