Personal tools
You are here: Home Forum Use Hexablock tutorial

Hexablock tutorial

Up to Use

Hexablock tutorial

Posted by Roman Voronov at December 17. 2012

Hi all, especially Salome creators! Do you have any tutorial to use Hexablock module, starting creation of geometry and ending building a mesh? I can'y understand how to use it. Salome's  documentation explains almost nothing.

May be Hexablock is great tool, but how to use it?

Thank you!

Re: Hexablock tutorial

Posted by William Tougeron at December 17. 2012

Hello,

I am not a developer but only a user.

To create blocking, you have to create the blocks in the Geometry module. You will have to familiarize with the New Entity menu.

To do so, you can create 1D elements (edges, splines) that we call edges, with different tools.

From these edges, you can create wires (close or open assembly of edges). From these wires, you can create faces. From these faces, you can create shells (open or closed assembly of faces). From these shells, you can create solids. (You can also create blocks from two faces.)

If these solids have only 6 faces, 16 edges and 8 vertexes, they can be used as a blocks. Check it with the Measures, What is and Measures, Check compound of Block tools.

When your blocks are created, you can put them into a compound object (New Entity, Build, Compound). Then, you can 'fuse' them (delete the redundant faces between each pair of blocks) thanks to the Repair, Glue Faces (or Glue Edges for 2D blocking).

Once done, you have to create groups on your final compound object. You can create groups of edges. On each group will be applied specific meshing parameters (number of nodes, element size, etc.).

You will have also to create groups of faces for each boundary condition you want to export (eg. inlet, outlet, etc.).

Once done, you can load the Mesh module and create a mesh on your final compound object on which you created groups. You can create a mesh without any meshing parameter. Then you can create on it sub-meshes from each edge group. I recommend to use the algorithm Wire discretization with the hypothesis Nb. of Segments. You can compute your mesh to see the 1D discretization. To see the nodes, click on the mesh in the study tree, then right-click in the 3D window, and select Display Mode, Nodes

Once done, you can apply on your wole mesh the 2D algorithm Quadrangles and the 3D algorithm Hexahedrons (i,j,k) or 3D Extrusion and compute the mesh.

Finally, you will have to create mesh groups from your face groups you created in the Geometry module. To do so, right-click on your mesh in the study tree and select Create Groups from Geometry. Your mesh is ready :)

You can maybe find a usefull tutorial I made for a script I developped. It deals with structured viscous layers, so it is also blocking. You can downloaded it from here:

http://www.vzlu.cz/download.php?file=711

Save the archive, extract it, go to documentation/index.html, then Tutorials, then start the Salome Quick Start tutorial by clicking on Prepare the Geometry.

Hope this helps,

Best regards,

William

Re: Hexablock tutorial

Posted by DAVID Gilles at December 17. 2012

Hello,

Actually the HEXABLOCK module is a new module in version 6.6.0 which avoids to modify the geometry into compounds of blocks. Please have a look at the documentation where an example is presented (Python script for a connecting rod).

Your explanation to create hexa mesh from compounds of blocks is very fine though :)

Gilles

Re: Hexablock tutorial

Posted by Roman Voronov at December 18. 2012

I have 2 questions:

1. Is hexablock a tool, that makes mesh building as easy as ICEM CFD?

2. Example py script in Salme's documentation refers to rod.stp STEP file. Where can I get it? I'd like to know sizes of model in that file.

 

Re: Hexablock tutorial

Posted by Roman Voronov at December 18. 2012

And one more question...

How can I delete an object (vertexes, vectors, etc), if I added it wrongly?

Earlier I created some meshes from blocks in geometry module. This method is suitable for more or less simple geometries and almost not suitable for complex geometries. Then I have to make my complex meshes with OpenFOAM's snappyHexMesh. But this method is not very good too.

Re: Hexablock tutorial

Posted by William Tougeron at December 18. 2012

Hello Roman

What kind of geometry do you want to mesh?

Can you enclose some screenshot example?

I know well blocking with ICEM CFD, and that's true that until Salome 6.5.0, ICEM was still the best tool I know for blocking (even if sometimes, ICEM makes very strange things that can be solved in Salome). Salome is however perfect for hybrid meshing, which seems more difficult in ICEM CFD.

I know also well blockmesh in OpenFOAM and I think Salome Geom + Mesh modules is easier to use, even if Salome necessites many hours of use before taking advantage of all its power. (But one solution could be to develop some Python script to export blockmesh files from Salome, so as to have a GUI for blockmesh a bit similar to Discretizer but more sofisticated. This could be interresting...). If Salome isn't suitable for complex geometries, blockmesh is worse! (I know it from experience...)

It is just my opinion, but I think Hexablock is not as powerful as ICEM CFD yet since it is very new, but maybe in the future it will be very much powerful.

Best regards,

William

PS: I am also interrested in the .STEP files needed for the TUI tutorials :)

Re: Hexablock tutorial

Posted by Kloss Francis at December 18. 2012

Notice that this version of HEXABLOCK is the first version of this tools.

 

We are writing a tutorial and we publish it when this work is done.

 

Francis Kloss

 

 

Re: Hexablock tutorial

Posted by Kloss Francis at December 18. 2012

Hello,

 

  You describe the current way to build a hexahedral mesh with SALOME and you are right.

 

   If you build blocks with GEOM, it is necessary that they are true HEXAHEDRA: this is a constraint.

 

HEXABLOCK component, build also blocks but with the association works it is possible for exemple to associate

on an edge of a block a more complex geometric line.

 

Also, HEXABLOCK component mesh without modify an existant geometry or bluid blocks with GEOM where this operation

could be complex.

 

Francis Kloss

 

Previously William Tougeron wrote:

Hello,

I am not a developer but only a user.

To create blocking, you have to create the blocks in the Geometry module. You will have to familiarize with the New Entity menu.

To do so, you can create 1D elements (edges, splines) that we call edges, with different tools.

From these edges, you can create wires (close or open assembly of edges). From these wires, you can create faces. From these faces, you can create shells (open or closed assembly of faces). From these shells, you can create solids. (You can also create blocks from two faces.)

If these solids have only 6 faces, 16 edges and 8 vertexes, they can be used as a blocks. Check it with the Measures, What is and Measures, Check compound of Block tools.

When your blocks are created, you can put them into a compound object (New Entity, Build, Compound). Then, you can 'fuse' them (delete the redundant faces between each pair of blocks) thanks to the Repair, Glue Faces (or Glue Edges for 2D blocking).

Once done, you have to create groups on your final compound object. You can create groups of edges. On each group will be applied specific meshing parameters (number of nodes, element size, etc.).

You will have also to create groups of faces for each boundary condition you want to export (eg. inlet, outlet, etc.).

Once done, you can load the Mesh module and create a mesh on your final compound object on which you created groups. You can create a mesh without any meshing parameter. Then you can create on it sub-meshes from each edge group. I recommend to use the algorithm Wire discretization with the hypothesis Nb. of Segments. You can compute your mesh to see the 1D discretization. To see the nodes, click on the mesh in the study tree, then right-click in the 3D window, and select Display Mode, Nodes

Once done, you can apply on your wole mesh the 2D algorithm Quadrangles and the 3D algorithm Hexahedrons (i,j,k) or 3D Extrusion and compute the mesh.

Finally, you will have to create mesh groups from your face groups you created in the Geometry module. To do so, right-click on your mesh in the study tree and select Create Groups from Geometry. Your mesh is ready :)

You can maybe find a usefull tutorial I made for a script I developped. It deals with structured viscous layers, so it is also blocking. You can downloaded it from here:

http://www.vzlu.cz/download.php?file=711

Save the archive, extract it, go to documentation/index.html, then Tutorials, then start the Salome Quick Start tutorial by clicking on Prepare the Geometry.

Hope this helps,

Best regards,

William

 

 

 

Re: Hexablock tutorial

Posted by William Tougeron at December 18. 2012

Hello Francis,

Yes, I think the Hexablock's philosophy is similar to those of ICEM CFD blocking (with associations) and that's very good news :)

I look forward to your tutorial :)

William

Re: Hexablock tutorial

Posted by Kloss Francis at December 18. 2012

Hello,

 

   ICEM CFD is complex and rich tool. There are a lot powelfull functions and sereval ways to obtain a hexhedral mesh.

Some learning is necessary. And this is commercial tool.

 

   HEXABLOCK is free.

 

HEXABLOCK  propose a way to help users to obtain a hexahedral mesh. Normally, it is more simply to understand the method

in 3 principal steps:

1) Build a model of blocks

2) Association the model of blocks to the geometry

3) prepare the mesh and generate it

 

Francis Kloss

 

 

Previously Roman Voronov wrote:

I have 2 questions:

1. Is hexablock a tool, that makes mesh building as easy as ICEM CFD?

2. Example py script in Salme's documentation refers to rod.stp STEP file. Where can I get it? I'd like to know sizes of model in that file.

 

 

Re: Hexablock tutorial

Posted by Kloss Francis at December 18. 2012

Hello,

 

You could find some python exemples and geometries:

 

.../HEXABLOCK_SRC/src/TEST_PY/recettes

 

Regards,

 

Francis Kloss

 

Re: Hexablock tutorial

Posted by Roman Voronov at December 19. 2012

Hello William!

My geometry is something like this:

[img]http://img-fotki.yandex.ru/get/4136/38619229.1/0_a387d_c62e7297_-1-XL.jpg[/img]

OpenFOAM's blockMesh is suitable only for very simple meshes. And snappyHexMesh is tool that suitable for simple and complex meshes. But it's too difficult to make high quality mesh with it.

Previously William Tougeron wrote:

Hello Roman

What kind of geometry do you want to mesh?

Can you enclose some screenshot example?

I know well blocking with ICEM CFD, and that's true that until Salome 6.5.0, ICEM was still the best tool I know for blocking (even if sometimes, ICEM makes very strange things that can be solved in Salome). Salome is however perfect for hybrid meshing, which seems more difficult in ICEM CFD.

I know also well blockmesh in OpenFOAM and I think Salome Geom + Mesh modules is easier to use, even if Salome necessites many hours of use before taking advantage of all its power. (But one solution could be to develop some Python script to export blockmesh files from Salome, so as to have a GUI for blockmesh a bit similar to Discretizer but more sofisticated. This could be interresting...). If Salome isn't suitable for complex geometries, blockmesh is worse! (I know it from experience...)

It is just my opinion, but I think Hexablock is not as powerful as ICEM CFD yet since it is very new, but maybe in the future it will be very much powerful.

Best regards,

William

PS: I am also interrested in the .STEP files needed for the TUI tutorials :)

Re: Hexablock tutorial

Posted by William Tougeron at December 19. 2012

Hello Roman :)

If you don't want any viscous layer refinement, it should be possible to 'easily' (notice the quotation marks :) ) create a blocking on such geometry in the Geometry + Mesh modules of Salome.

I made some test on a random shape and you have the result in the enclosed screenshot. I made it from scratch in one hour.

Some useful tools I used to complete this job: 2D Sketch + Revolution, Divided Disk (version Salome 6.6.0 or more), Partition, Projection, Explode, Filling, Create Plane (from face, from three points)...

If you want viscous layers discretization, I think indeed that Salome Geom + Mesh becomes a bit limited. But without viscous layer I think it is entirely possible to use this method.

William

Attachments

Re: Hexablock tutorial

Posted by Roman Voronov at December 21. 2012

Great! But how did you make marked place (on picture)?

Attachments

Re: Hexablock tutorial

Posted by William Tougeron at December 21. 2012

I did this (see the enclosed picture):

  • 1- I created a 2D Wire and made the revolution (New Entity -> Basic -> 2D Sketch, New Entity -> Generation -> Revolution)
  • 2- I created a Divided Disk and extruded it (New Entity -> Blocks -> Divided Disk, New Entity -> Generation -> Extrusion)
  • 3- I made a rotation of this extrusion around its axis of 45 degrees (Operations -> Transformation -> Rotation)
  • 4- I extracted the surface of the revolution intersecting the extruded pipe and I partitionned this pipe with it (New Entity -> Explode, Operations -> Partition)
  • 5- I extracted from the partition the intersecting edges and projected them on the inner surface of the revolution after extracting it (Operations -> Transformation -> Projection)
  • 6- I partitionned the inner surface with the projected edges
  • 7- I linked all pair of faces with blocks (New Entity -> Blocks -> Hexahedral Solid)

After that, I made some extrusion and created some planes (New Entity -> Basic -> Plane, New Entity -> Primitives -> Rectangle, New Entity -> Generation -> Filling), to partition surfaces, to be linked with blocks.

Some times I had some errors during the partition. To solve it I increased a bit the tolerance of the tool objects (Repair -> Limit tolerance).

That's it :)

Attachments

Re: Hexablock tutorial

Posted by Roman Voronov at December 24. 2012

Hi  William! Excellent sample! I think a lot with it! And... can you help me with one more geometrical body? :)

Attachments

Re: Hexablock tutorial

Posted by William Tougeron at December 25. 2012

Hello Roman :)

This geometry is more complex if you want only hexahedrons (not prisms) since you have some 'triangles' in it.

I propose a solution in the enclosed picture.

To create this geometry, you just have to design the 2D planar shell you can see at the bottom-left of the picture with the basic tools of Salome (I used also the spline tool: New Entity -> Basic -> Curve, then Interpolation - third icon at the top of the dialogue box).

Then you can extrude this shell, and partition it with two planes parallel to the section, then explode the partition into solids and re-create a new compound with the solids you want to keep.

The groups are colored at the bottom-right of the picture (only 4 groups are necessary in the section)

Is it OK? :)

Marry Christmas :)

William

Attachments

Re: Hexablock tutorial

Posted by Roman Voronov at December 31. 2012

Thank you very much, William!

Re: Hexablock tutorial

Posted by Petri Majander at March 01. 2013

Hello,

I do not find the geometry  (bielle.stp of python script) or the whole directory in my installation.  Will there be a hexablock tutorial

available soon ?

BR Petri

 

Previously Kloss Francis wrote:

Hello,

 

You could find some python exemples and geometries:

 

.../HEXABLOCK_SRC/src/TEST_PY/recettes

 

Regards,

 

Francis Kloss

 

 

Re: Hexablock tutorial

Posted by Kloss Francis at March 01. 2013

Hello,

 

Some files were forgotten in the distribution.


Regards,


Francis Kloss

Attachments

Re: Hexablock tutorial

Posted by Kloss Francis at March 01. 2013

In attachement 10 files allocate in 3 tgz.

Francis Kloss

 

Attachments

Re: Hexablock tutorial

Posted by Kloss Francis at March 01. 2013

And the last, Francis Kloss

 

Attachments
Powered by Ploneboard
Document Actions