Database Full Index
4. Hexa
[ top ] [ previous ] [ next ]
4.1. I get negative volumes when I load the mesh in the solver
You have to clear atleast the first bar in Meshing > Quality check > Determinant histogram to ensure all positive volume elements.
If the elements seem to be perfect but still the diagnostics shows bad elements then the problem could be of inverted block. To remove these bad elements, click on Meshing > Invert block > Inverted
[ top ]
4.2. How do I define periodicity?
You first need to define the periodicity in the geometry inside MED. If you have not done that yet, please do that first.
Once you are done with that, you have to define the topological nodes (vertices) as periodic inside Hexa. To do this, go to "Blocking > Periodic nodes > Make nodes Periodic" and then select the relevant pair of vertices lying on two periodic planes. Now onwards, when-ever you move one of these vertices the pair-up vertex would move automatically.
You can check for the existing periodicity of vertices by switching ON/OFF the display for Vertices > Opts > Periodic in the right-hand-side Display panel.
You can remove the ill-defined periodicities by visiting "Blocking > Periodic nodes > Make nodes not Periodic".
[ top ]
4.3. How do I run hexa in batch from command line?
Let' say that you have a project name called "test", tetin file called "test/tetin1" and the replay file called "test/replay.hxa", then
-
on UNIX platform, you would say
hexa test -tetin tetin1 -i test/replay.hxa
- on WinNT you would run hexa_batch:
hexa_batch test -tetin tetin1 -i test/replay.hxa
Please note that the arguements would still have "/" to specify files deep down in the directory even though you are on Windows platform.
If the files do not lie inside the directory or are not in default locations, you can give the full path for them.
[ top ]
4.4. Why can't I merge two faces even though they share the same material?
When you merge two faces, what you are in essense doing is merging the two blocks above and below these two faces. If the two blocks above and/or below can not be merged, the merge face command will not work.
There could be following possible reasons, why two blocks can not be merged:
- The indices would not allow these to be merged (maybe one index is "i", and the other is "j"). They could be the different direction faces of the same block,
- Sometimes, if the VORFN region is blanked, and you try to merge faces, the blocks in the VORFN region will not get merged, and you have to merge these blocks in the VORFN region by hand - this could also be the case if you have multiple materials.
Try to limit the index control to the faces you want to merge, and then turn on all materials, and then try to merge the faces. If this does not work, increase the index control one level up and down from the faces you want to merge. If nothing else, this should point out what may be the problem.
Sometimes you might have to extend a split in another direction if you want the faces merged -if you are merging blocks that would create an L, this is a violation as indicated above (can't merge an "i" and "j" index).
[ top ]
4.5. Why does my mesh project to the wrong surface?
In Hexa, white edges and vertices try to get projected to the nearest surfaces which may or may not be desirable. You should first pull out the surfaces on which projection is not taking place, to different families. Then, you can do one of following:
- See only the relevant surface and then use "Split edge > single edge - auto".
- If the topological face is completely inside the pulled out surface family, you should define "Face -> Surface" projection to force the mesh on the face to go to that family. You still might want to do split edges to clear the visiblity
[ top ]
4.6. Why does my edge go to the wrong location even though I projected it to a right curve?
You probably have a huge curve (or you have grouped some curves), thus the nodes on the edge are going to the nearest location onto the curve which may not be the correct location. You can do "split edge - single" to force the edge to go along a defined direction.
There could be another reason for this if you see a completely crazy projections. Check out if your curve names start with numerals (or other than alphabets) under "Display > Curve > Show names". If it does, then it confuses "Edge->curve" associations. You should rename such curves in Med under "Curve > Modify" so that they start with alphabets.
[ top ]
4.7. Why doesn't my mesh go to true B-spline surface? I do not want to use the approximation of tri-tolerance!
Inside Hexa, goto "Meshing > Meshing options" and switch on the button "Project to Bsplines" to project the mesh to the true B-spline surface. This way it will not use the approximated triangulation of the geometry.
You can use it also to work in a faster way inside Hexa as Hexa is normally dependent on the tri-tolerance. So, you can increase the tri-tolerance heavily for a big part, work on HEXA topology and while meshing can switch on this option to get true mesh.
[ top ]
4.8. Why does the O-grid get created outside the blocks?
The reason for O-grid being created outside the selected blocks are :
- You have clicked on O-grid "Around the blocks" button while creating the O-grid
- The blocks in which you require the O-grid are inverted. If this is the case click on Meshing > Invert block > Inverted to get rid of the inverted blocks
[ top ]
4.9. I have a Plot3D mesh. I want to modify it, I have the geometry. But I don't want to redo the blocking. How do I do that?
Let's say you have a Plot3D mesh called "xyz.fmt".
MED:
- Start a new project,
- Import the Plot3D mesh as the domain file. Make sure that you have right options to import. Most likely they are:
- Formatted,
- Single precision,
- Whole data layout,
- No IBLANK array and
- most importantly Structured mesh,
- Say Yes to Recompute the topology,
- Save/Overwrite the domain file again,
- Say File > Utilities > Structured -> Unstructured. Make sure that you say "NO" if you have degenerated stuff in the mesh. By default, it writes a mesh called "struct_merge.uns",
- Close the domain file and load the tetin file which you have. I assume that you have the geometry available as the tetin file,
HEXA
- Start HEXA session for the new geometry tetin file,
- In Hexa, say "File > Open > Domain (mesh) file" and load the previously saved "struct_merge.uns",
- It should create the blocking for you. You might have to deselect/select your VOLUME family to update the graphics,
- IMP: Your projections might get all screwed up. Say "Projections=>Update Proj=>Clear all" and redefine the projections where-ever needed,
- For collapsed/degenerated Plot3D meshes, please look carefully the blocking. Sometimes, you get un-necessary white edges in between or the extra splits. Those have to manually modified,
- You should be all set with the hexa blocking for this geometry now.
[ top ]
4.10. I get a decent mesh when I have the first cell height of 0.01 in my model. However, I start getting lot of negative cells when I reduce it to 0.0001. What is going on?
This is probably happening because your model has the gaps of 1e-4 order. Whenever the model has gaps of the order of the cell height, you will end up with skewed meshes.
You should do following to get away with this:
- In HEXA, go to Meshing > Meshing options panel and, put the Projection limit to a little higher value than the smallest cell height. This would make sure that anything below that value would be interpolated rather than actually projected,
- Switch on "Project to Bsplines" option. This would ensure that even if you have high "tri tolerance" in the model, actual projections to the Bspline surfaces would happen,
- You should also check for the curves. If you have extracted the curves in Mesh Editor with a higher tolerance, they would create trouble. You should delete them and extract them again with the tolerance lower than the first cell height you desire
[ top ]
4.11. I write "hex.uns" mesh from HEXA and I get lot of missing face errors as well as uncovered faces in MED. Why?
You probably have, by all possible means, 7 noded blocks in HEXA.
The unstruct hex mesh writer in HEXA cannot handle the corner where you have 7 noded elements sitting. So, when it writes the mesh, it does not write these elements in the mesh. This gives hole in the mesh, resulting in missing faces and uncovered faces etc..
BTW: You might also get some bad determinants reporting for those corner elements inside HEXA while they may actually look good.
Hexa, MED and at times most of the unstructured solvers cannot handle the 7 noded elements. There is a work-around to deal with this:
- You should write a multi-block mesh from HEXA. If you have too many blocks, you can first mesh the topology, then switch on "Output blocks" from the right side Display panel and then say "Blocking > Init output blocks" to initialize the output number of blocks. At this stage, whatever you work on will be saved only in the output blocks and not in the actual topology. You should then do "Blocking > Merge > Automatic" which would reduce the number of blocks. Then you can go ahead and write the multi-block mesh (you need not mesh it again).
- This is good enough for a Multi-block solver.
- For an unstructured solver, there are additional steps:
- Convert this multi-block mesh into an unstruct mesh using "struct->unstruct" inside MED. Please make sure to say "No" to degenerate elements!
- Unload the multi-block mesh, load the "struct.merge" you wrote above,
- Do the check for uncovered faces. It should show you all those collapsed regions. Put them into a temporary family like "temp" by saying "Fix",
- Then write the output for the solver,
- Your solver might complain for these zero-area faces. Either you should be able to merge the nodes there or there could be another way to handle it. For example, in Fluent, you can define them as "axis" bc and things should be just fine for you.
[ top ]
4.12. I have complex blocking and Hexa takes a lot of time to do splitting. Why is that and how do I stop that?
This is probably due to the big scratch files that HEXA needs to do Undo and Redo. You can stop Undo operations by typing "undo stop" in the lower Hexa messages window. However, that is risky as you can guess. Also, at this stage, to start Undo operations back, you will have to quit and then come back again.
[ top ]
4.13. My Hexa blocking gives enormous error/warning messages which keep scrolling for several minutes. How do I stop that?
In ICEM CFD version 4.2.2, this feature has been added. If you are running HEXA in batch mode, you should run it with command-line option "-do_not_print_errors". If you are running it in GUI mode, you can switch off the error messages by typing "error_messages off" in the HEXA messages window. You can turn it ON by typing "error_messages on".
[ top ]
4.14. How do I reduce number of blocks in HEXA? They become enormous and it's difficult to handle that many for my multi-block solver. Is there any way to “optimise” them?
You would use something called "Output blocks" feature in ICEM CFD. Just create the topology in the geometry the way you want without ever bothering for the number of blocks. Once you have the topology and the final mesh ready do following inside HEXA:
- Switch on "Output blocks" button on the right side display panel,
- Click "Init output blocks" under "Meshing",
- Goto "Merge blocks->Automatic" under "Blocking",
This will reduce the number of blocks as much as possible for your mesh without changing anything in the mesh. Write out the multiblock mesh to save the reduced number of blocks.
The key to remember is to do this operation when everything is ready. This does not change anything in your original topology and you can go back to your original topology by switching off the "Output blocks" button on the right side display panel. Do the modifications and then again repeat the above-said procedure to get minimum number of blocks.
Also see the Advanced examples in the tutorial manual for the same.
[ top ]
4.15. I can't remove my link bunching? Also it gave error of "impossible link bunching" when I did the linking. What to do?
You are probably using version 4.2.2 of ICEM CFD. That's a bug but here is a workaround.
When you get "impossible link bunching" message, that's actually more of a incorrect warning message and it essentially should be ignored since it does the linking in any case.
To remove the link bunching, switch off the linking in the Edge params and pick a node distribution (any). Then clicking "Apply" should resolve the trouble. Picking "node distribution" is important since otherwise those entry boxes are left empty and they probably create trouble.
[ top ]
4.16. Why does 2D->3D translate not extrude normal to the 2D blocking?
Since certain solvers require a 2D mesh to be in Z=0 plane. Hexa also enforces this concept. In other words, a default 2D blocking originates on the XY plane. Since 2D translate then extrudes from this XY Plane outwards, normal is always in Z direction.
A work around to this would be to rotate a non XY-Plane blocking to the XY plane. Do 2D->3D Translate. Then rotate the blocking back. The recommended solution, however, would be to start with a geometry in XY plane.
Since certain solvers require a 2D mesh to be in Z=0 plane. Hexa also enforces this concept. In other words, a default 2D blocking originates on the XY plane. Since 2D translate then extrudes from this XY Plane outwards, normal is always in Z direction.
A work around to this would be to rotate a non XY-Plane blocking to the XY plane. Do 2D->3D Translate. Then rotate the blocking back. The recommended solution, however, would be to start with a geometry in XY plane.
[ top ]
4.17. How do I change the number of points or first/last cell spacing in one shot for multiple edges in a replay file?
Give a command in Hexa in the messages window like the following..
set NUMPTS 25
set FIRSTCELLSPACING 0.0001
Then, when you define Edge params, you can use $NUMPTS, $FIRSTCELLSPACING
for number of nodes on that edge and for the spacing 1 or spacing 2. When you define edge params like this, it updates the Edge params with the defined variable value. So, if we record the commands in replay mode, next time, we can just manually change the variables in replay file and run the replay...
[ top ]
4.18. Can I define variables in HEXA? Can HEXA get variables defined outside, say in MED?
HEXA, in version 4.3, would be able to use following 3 functions to define a variable:
- set x [ length CURVE_NAME ]
- set y [ distance POINT_1 POINT_2 ]
- set z [ lindex [ get_curve_params CURVE_NAME ] 1 ]
You can then use $x, $y, $z or any of the mathematical operations on these to define your edge meshing parameters or something else.
The 3rd definition is of specific importance since you can define the "height" of a curve in MED as a variable value and then retrieve it in HEXA to be used further.
Some examples of the mathematical operations that can be done on variables are ( Make sure that every operator is separated by a blank):
- set a ( 1 + 2 )
- set pi acos ( 0.0 )
- set b sin ( $pi )
- set c sqrt ( 3 * 3 + 4 * 4 )
- set d ( sqrt ( 3 * 3 + 4 * 4 ) - 5 )
- set e cos ( atan2 ( 1.0 , 1.0 ) * 2 )
- set f "1.0 2.0"
- set g [ lindex $f 1 ]
- set h [ set a ] + [ set b ]
- eval i %.9s "$a * 5"
- eval i %.9g "$a * 5"
- eval i %5.2f "$a * 5"
- set (displays the variables with their values)
[ top ]
4.19. I am able to generate a very large Hexa mesh (more than 32 million cells) on a 64 bit machine. But while writing it, Hexa process is exited. Why?
If you are writing the mesh to an NFS mounted hard disk, the problem could be related to the NFS (Network File System) version. Possibly, you are trying to use NFS version 2. Try to use NFS version 3 here
On an sgi machine, you would do following for an "xyz" machine:
xyz:/home /hosts/xyz/home nfs rw,hard,intr,bg,vers=3 0 0
[ top ]
4.20. I am trying to split a particular face but it also splits another face somewhere else. How to overcome this problem?
You probably have a situation like this:
This is because HEXA maintains the connectivity even in the ORFN region.
If you switch ON your VORFN blocks, you could see the split there.
Also, even though you see the button called "Split Face", it's essentially a fictitious term as it's always going to split some block in the VORFN region. And when it splits the block, obviously you would see the split on the other side of the block which in your case, is happening.
There are several solutions to this:
- Split the right side block itself rather than just going for split face. In any case, you would have to do lot of adjustments for the bunching (even go for linked bunching) if you don't go for split blocks.
We suggest, normally, not to go for "Split Face" or else you would have a hard time in node distribution or meshing quality. Try giving 50 nodes on top of the split edge and 10 on the bottom, mesh it and see the bad quality..
- Turn ON your VORFN and vertically split that particular middle VORFN block in the middle. You would see a split coming on the horizontal face of the bottom FLUID block though. But, this would prevent the split to go through the VORFN. Basically, you need more than 1 block in the VORFN region there to stop the split face to pass through,
- Turn on that VORFN middle block and make a complete internal O-grid there. Then when you just see your FLUID blocks and split the face, other side won't get split. Again, essentially, we tried to have more blocks in between. This way you won't get the split coming in the bottom block as in happening in previous point,
- Turn ON all your FLUID blocks only. Then say "Delete blocks-blanked", this would reconstruct the VORFN blocks and would get rid of that middle connection. The simplest to do but since lot of deletion of VORFN region might happen, your indices in the Display panel would change a lot. I normally don't suggest this to do because people get confused with indices after they use this option.
[ top ]
[ top ] [ previous ] [ next ]
created by faq-system 0.3.6 Thomas Linden