Meshing complex shell models

Hello everyone, this is my first post, made in somewhat of a hurry.

I have a task to calculate the stress in the fundament of a ship deckhouse. So far from the many posts I’ve read on the forum, and some research of PrePoMax functions I’ve gathered that I need a compound part to create a uniform quad mesh. Tied or tied constrained parts don’t work since the mesh nodes do not match between parts.

Since there is more than 1000 shell elements I’ve created a single compound part in stages, since that was the only way (see attached .pmx). This didn’t pass without its own problems, but since only a small portion of scantlings is affected I can work around this issue later (L profiles with brackets became flat bars with brackets). The parts were created in Rhino with a tolerance of 0.001mm. I’ve made special attention to surface normals after solver errors. Unfortunately the errors persist, mainly opposite normals in nodes.

Finally my questions after the long introduction are:

  1. Is there a way to identify the nodes that have opposite normals defined? The model has more than 300k nodes, using query tool is impractical.

  2. How can I mesh this model correctly to avoid opposite normals error, if my normals are set correctly in the first place?

Here is the .pmx file, thank you to anyone who looks at this. Meanwhile I’ll continue trying different things to solve this problem. I have tried using the latest 2.0.11 version to no effect.

The .pmx file in question:

Have you seen this recent thread ? Difficulty in establishing a connection between 2 surfaces (shell) in Prepomax

Meshes don’t have to match for these constraints to work. They have a tolerance that you can change to make them identify nodes further away than the default value allows. Of course, it should still be a reasonable distance and it’s important to select master and slave surfaces properly (master should have a coarser mesh).

In the Geometry tab, you can select Geometry → CAD Part → Flip Face Normal. It will display the face normals using 2 colors. but not per node (this is before meshing, just to check the geometry). To do it on the mesh, you could use ParaView.

Maybe try meshing with the default mesher instead of Gmsh (add only the Meshing parameters object). If it doesn’t help, try using tie constraints instead of a single large compound.

1 Like

The opposite normals appear on edges where neighboring surfaces meet. If there are more than 2 neighboring surfaces, you will likely get opposite surface normals you cannot eliminate. And you will get a warning about it in the solver. The only problem with opposite surface normals is using shell offsets in sections or material definitions based on shell directions. So, this warning can be neglected if you use 0 offset and isotropic materials. That is my understanding, but please correct me if I am wrong @FEAnalyst.

1 Like

In this case, it’s not just a warning, it’s an error message:

image

I suspect Gmsh but of course it doesn’t have to be the case.

1 Like

I missed that. But to me, the error looks like a bad element geometry where the normal could not be computed.

Yes, but anyway - it most like comes from some issue with the geometry, maybe caused by compound creation.

https://forum.freecad.org/viewtopic.php?t=23949

2 Likes

If you turn on the face orientation view: View → Color Annotations → Face Orientations, you will see a different orientation at the geometry and at the mode view. It could be the mesher - Gmsh - swaped some of the faces, or you did not remesh the structure after changing the surface orientations.

*Edit
It seems it is Gmsh. This is a problem. I was not aware of it. So, we need a feature to also reorient the mesh faces.

1 Like

Hello,

Thank you for the swift reply.

For my project the mesh has to be uniform, it is a requirement. And from my testing of constraints and ties it yields somewhat different results, enough so that it is not good enough for these calculations.

I have done that and have arranged normals to be uniform to my understanding. All parts in the same plane have the same orientation, so that when they are merged into a compound parts single face they have the same normal orientation.

Did that, doesn’t mesh. Constraints explained above, because of the rules and regulations it has to be uniform.

I understand this, but I cannot alter the arrangement of scantlings as that would compromise the whole structure (at least as far as the rules go).

Ok, I do use zero offset so thank you for that. Is there any reason to use non zero offset? Does thickness overlapping affect the results?

In the preparation of this long reply I tried the plain Meshing Parameters option without the GMsh. It doesn’t work unfortunately.

I’ll try the older versions then, hope it works.

Sorry for the ultra long reply, I’m actively working on solving this in parallel :blush:

I haven’t considered gmsh swapping orientations! I’ll check this as well, thank you.

And I did remesh every time, I spent far to much time lurking on this forum for pieces of solution before registering and finally crying for help :sweat_smile:

There are also some problematic regions - extremely short edges - in the model after compounding. Use Geometry Analyse:

Hello,

I just wanted to update you on these extremely short edges - they were created by making the compound part. The elements themselves in Rhino do not overlap and edges aren’t misaligned, so I have no other theory as to why they are there when analyzing the model in PrePoMax.

Sorry I can’t be of more help for now, I’ll try and work out meshing and then come back with the results, but it might take some time :sweat_smile:

Can you reproduce the problem with simple geometry? Then I would test wise try it with a smaller tolerance. I don’t know which tolerance Prepomax uses, but i guess it should be the same or coarser than the one used in the CAD software (this shouldn’t matter for straight lines, but it could be problematic for curved transitions).

PrePoMax uses default OpenCascade tolerance. What it is is hard to say since I do not understand precisely how it works, but if I remember correctly, a value of 1E-6 is used.

1 Like

What I can tell you is that when I simplify the geometry the problem does not happen.

Here is the link to the .pmx file with simplified geometry:

You can see that the model has more or less the same layout as the problematic part from before:

  • smaller L50x25 laid out intercostal between the larger T100/50 stiffeners
  • brackets on both sides of T profile
  • brackets not extending to the full width of the T profile flange
  • brackets need to be compound with L profiles

The surfaces were split in Rhino not in PrePoMax and the normals orientation wasn’t adjusted (brackets have opposite normal orientation from L profile).

Compound part was created easily just by selecting all surfaces and “Create compound part option”. For the bigger geometry the compound was created in multiple steps which is ok as far as the workflow goes (doesn’t take too much time) but maybe it signals some other problems in geometry?

@Matej I have a few questions regarding rendering when selecting elements and Element sets creation, should I attach that here or create a separate topic?

I would suggest creating a separate topic.

1 Like

The highlighted “lines” are faces with very small edges, furthermore all the orange faces are present twice (two equal faces overlapping). Since all of them border on fillets, I would test wise replace them with 45° chamfers and see if it helps.

1 Like

as i know, CAD interchanges depending on kernel and geometric clean up or repairing may be needed for non OpenCascade based. There’s Analysis Situs available, a specific tool or software for working in this task.

1 Like

Yes, I know the edges are doubled up, but are not overlapping when modelling. This is the needed in the ship construction in some parts, we have brackets on both sides of the bigger element connecting the smaller ones. This particular example compounded well, meshed well, and gave good (expected) results.

I don’t quite understand you here. There should be no fillets for FEA model here. Yes these would be welded and welds are a sort of fillet/chamfer but its so small in comparison to the elements connected that they should be disregarded?

What worries me is that compounding seems random, above project had very similar geometry characteristics but it was bigger and had much more parts.

I saw this tool mentioned before in other threads on this forum. I checked the geometry and it seems ok.

Do you suggest just opening and overwriting the step file using Analysis Situs?

if the geometry did not have a problem reported, i usually just simple save as or export in different format for compatibility reasons.

1 Like

I assume that the geometries were created without errors in Rhino. Nevertheless, these inaccuracies arise after importing the step file to prepomax (edges become surfaces). I don’t have the original step file to test the import to another CAD system and I don’t know what causes the inaccuracies, but I don’t think the model size is the reason and I suspect that it has something to do with these radii and different modeling tolerances:

In your simplified model, which did not cause any problems, These radii were also not present.