Failed to mesh with using Prepomax new Gmsh options

Hi, I´m tring to mesh a simple part using the new Gmsh features, but I´m having some problems:

  1. It is possible to mesh a Compound part in Prepomax? This part with a simple volume partition should be meshable, the central volume with a radial extrusion, and the lower/upper ones with a revolution mesh. The compound should guarantee the conformal mesh
  2. As I cannot mesh the compount part, have tried to mesh only the central part, but why the extrusion mesh doesn´t work in the central volume? I meant, the extrusion direction should be radial, it is not allowed?

I have attached the Prepomax and step model in case someone want to try

Best regards
CAGE_01.zip (118.8 KB)

probably this is still the current limitation of Gmsh extrusion in normal direction.

You will need way more partitions here (can be face partitions too). Use face partitions to get faces with 4 edges each:

The middle part will be way more tricky. Maybe transfinite mesh will work with enough volume partitions (this one can be used with compound parts).

1 Like

First of all, this implementation is a first step towards a better mesher. We are not on the Abaqus level just yet. There are some things that Gmsh can do and are not jet implemented in PrePoMax but there are also some things that Gmsh can’t do - like swept meshing.

It is possible using the tetrahedral Gmsh or transfinite Gmsh only. Extrude and Revolve features are currently limited to single body parts.

A radial extrusion direction is more in the field of a swept mesh. Gmsh only supports a single extrusion direction defined by a single vector. The extrude face must not be planar, and the extrude vector angle is arbitrary.

1 Like

You can even improve it ba adding one more split :slight_smile:

image

Right, the mesh is much better then:

Fortunately, such partitions can be easily done in FreeCAD.

2 Likes

You mean “must be planar”, right ?

No, the base (source) face can have an arbitrary shape (if multiple face patches are used, they can meet at a sharp angle), but all edges connecting it to the target face must have the same length and the same direction vector.

The problem I see at the end of all these splits is that the final mesh will not necessarily be conformal. And this is the next step that I will have to figure out.

Nice, I thought that the base surface has to be flat (lie on one plane) but it can be even curved like this:

1 Like

The result is strange, but it works :slight_smile: I am not sure about the revolve but it should be similar.

structured quad frequently generates distorted mesh for arbitrary shape, it seems quasi-structured quad can eliminate this condition. Another advantages, it does not need a face to be partition before.

base of 2d face need to be meshed before and save in Ascii version 4, using command below will generate hexahedral element based on extrusion or revolves

Merge "save2d.msh";
CreateTopology;
Extrude {0, 20, 0} {
  Surface{1}; Layers{4}; Recombine;
}

1 Like

That is great. So, I first need to create a 2D mesh and save it, and then import it and recreate the topology. Wow. I will definitely try it since I love the 2D meshes of quasi-structured quad.

1 Like

it seems to be right, a workaround is something like these. Partition of a face, still required to control the mesh flow pattern of quasi-structured quad. In specific condition of complex shape, sometimes mesh result is unpredictable and undesired. Using partition can help for such a condition.

1 Like

The part is indeed tricky to mesh. Even to set appropriate slices
with FreeCAD is difficult. This is as far I could get.

“Normal” tetra-meshing with gmsh works fine.
Thanks Matej!

only an updates and testing new implementation of sweep mesh with quasi-sructured quad algorithm (v2.2.3dev).

need to tweak to get matched mesh between part then merging coincident nodes, and it seems to be possible.

3 Likes

Beautifull mesh! Ahhh, they are not connected yet. Looks like you need to specify the same number of elements/layers in the extrusion direction to make the connection. And maybe an stich nodes operation with carefull tolerance distance to force the matching.

In order to be powerfull, the software must be able to

  1. Delete lines (or combine surfaces) in the faces that will be in the extrusion direction
  2. Allow to select one or more surfaces as “base” for the extrusion. Sometimes the base face must be more than one, but the end face must be only one. Don´t know if this estrictly needed, but is the way in NX or Abaqus CAE
  3. Allow to specify the number of elements in the extrusion direction, this is for combining with related volumes
  4. If there is a neighbord volumen meshed, it has to take in count, for taking as base for extrusion, or if is a “lateral” face, force the nodes to match
1 Like

My experience is that it helps to set the mesh refinement with the same element size to the connecting faces. The prescribed element size is converted to the number of elements, which is enforced by the Gmsh using the transfinite curve command. This works OK for most algorithms. However, it does not work well for the quad-dominated algorithm. As I understand it, it is based on an initial mesh where the elements are split in size by a factor of 2 at some point in the algorithm (with the same global mesh size the resulting mesh is about 2 x denser). That is why all edges can only be meshed with an even (2, 4, 6, …) number of elements, which causes problems in getting the meshes to be coincident.

  • currently it works only for a single part, not compound. But the mesh can be merged later and parts can be merged into one part at the end.
  • yes, this is already supported. Multiple source surfaces can be used to sweep the mesh towards a single target surface.
  • this number can be specified by using the mesh refinement. I will add a Number of elements per edge option (for Gmsh mesher) in the future.
  • this is left for the future. My idea is to apply the sweep mesh definition to a compound part. Then, the algorithm will identify the default sweep directions and mesh all sub-parts/cells at the same time, taking into consideration the connection surfaces. No more merging of nodes and parts.

For now, I wanted to develop the sweep algorithm and test its robustness, so I am waiting for some cases where it fails. After that, I need to find a way to identify the possible sweep directions in a part automatically and then put it all together.

2 Likes

My opinion is that even now, the sweep mesh procedure works very well (better than I expected since I developed it without finding a good description of a simple sweep algorithm). The benefit is that it enables me to apply it to the meshing of compound parts.

2 Likes