Mesh for FE Analysis using QuadRemesh

Dear all,
I am struggling in creating a mesh suitable for a finite element analysis in Rhinoceros.
I am working on a quite simple 2D geometry. I was able to obtain a very nice mesh only if Use Surface Edges is set to off.

However I need to enforce the mesh to follow the surfaces boundaries because I need linear finite elements along those lines and I need the nodes of two adjacent panels to match. If I set USe Surface Edges to smart or to strict I obtain the following weird mesh:

I tried to modify the triangular surface in a quadrangular one, but I still got not nice results.
I also tried to use the standard Rhino Mesh command, but I do not like how the finite elements along the boundaries look.

Does anyone have hints?
Or am I doing something wrong?

Thank you in advance for your feedback.

test_meshing_surface_01.3dm (46.3 KB)

1 Like

Hi Massimiliano -
You will get better results if you first extrude the outer border of that polysurface and join that result with your object.


You can explode the mesh after it is produced and then only keep the one for your original object.
-wim

Win, are you guys working with the developers to make this really better. Because your ‘better’ result is still absolutely awful for any practical use.

I was so excited about QuadRemesh’s potential until we started trying to use it in real world examples. It has been a failure, pretty much every single time.

Thx,

G

2 Likes

i tried and failed like you. target edge length seems to be too weak of a goal since it produces extremely rectangular (distorted) elements. there should be a goal for edge length ratio or target edge length should be the minimal of all 4 sides.

Thanks for your suggestion @wim. However I agree with @gustojunk, your mesh is better but still not suitable for finite element analysis.
It´s a pity in my opinion, because even if I have a fully parametric model for the description of the geometry, if I am not able to create and / or manage properly the mesh in Rhino than I have to rebuild the numerical model every time. This is the bottleneck I am facing and trying to solve.
I am open to any other suggestions of course.
Kind regards,

Massimiliano

There are tools and plugins that create FE meshing for analysis that work with Rhino. What type of FE analysis do you intend to do?

Something like:

  1. Scan and Solve: http://www.scan-and-solve.com/
  2. SimScale: https://www.simscale.com/
  3. Skyciv: https://skyciv.com/
  4. Sofistik: https://www.sofistik.com/
  5. Any from Simerics: https://www.simerics.com/

Thank you for your feedback @scottd.

I am currently using Strand7 as FE software and I am quite happy with it. The analyses deal with structural mechanics problems (not CFD) and always include non linearities, both geometrical and of material (e.g. plasticity). In the list of software you posted, I only know Sofistik and more or less it has the same features of Strand7.

The issue here is not run analysis, but how to create a FE-model in a parametric way. To date, I can build in Rhinoceros / Grasshopper wonderful parametric geometries, however every time I do a modification on the geometry I have to update the numerical model. The main problem is that I am not able to properly manage 2D elements (meshes) directly in Rhinoceros. As far as I understood, Sofistik interface for Rhinoceros performs meshing of a geometry by itself and it re-imports the mesh again in Rhino (FEA analysis. Seeding lines, points to the remesher).

If I would have a proper finite element mesh in Rhinoceros I could build a model in Strand7 in a quite straightforward way by scripting (in Python, for instance) directly from Rhinoceros. However I am not even able to call Strand7 mesher from within Rhinoceros and I need an additional step to create the mesh. I am currently thinking how to do this additional step; I could do at Python level using one of the open-source mesher (triangle, tetgen, mmg, gmsh, meshpy, …), but this requires an additional effort that I would like to avoid.

I felt free to open a thread in this forum because in Rhino 7 Feature: QuadRemesh it is stated that QuadRemesh can be used to generate mesh for finite element purposes. However if this feature is not able to manage a simple 2D geometry like the one above, then in my opinion it is failing and it should be improved.

It is also possible that I missed a way to properly manage meshes in Rhinoceros, in this case I kindly ask you to provide hints.

I highly appreciate the effort of Rhinoceros developer team for their great job and the time spent to support user community.

Thank you for your consideration,

Massimiliano

1 Like

He wants to get the FE mesh directly out of Rhino not to use Rhino model in 3rd party software to generate FE mesh.


This is step export from Rhino and one click mesh generation result from FE program. This is good mesh because it is consistent in size and shape and detect “hard edges”. Usable for FEA unlike the mesh Rhino produces. The point is that WIP promoted quadremesh as a way to generate meshes for analysis, which is not happening.

The goal is to get such mesh from Rhino. Question is if native Rhino command should do it or special plugin.
It seems right now Rhino cant do it and no plugin either (dont know of any).

1 Like

Sofistik keeps integrating Grasshopper inside. With Rhino.Inside technology a complete integration into Sofistik’s environment is possible. This project continues to develop: http://parametric-culture.com/?p=597&ckattempt=1

Are there models that quadmesher can generate an FE mesh that would work in your case?

I see the issue with planar faces. And there is the issues of wanting to seed specific points.

There are many other plugins like millipede that attempt this too.

What are the requirement of a valid FE mesh?

This is also an interesting project recently: https://wiki.fem-design.strusoft.com/xwiki/wiki/femdesignwiki/view/FEM-Design%20API/Grasshopper%20API/

ixCube Fea in the free version comes with a grasshopper toolbar
and a first class Fea mesher

gerry

4 Likes

That is cool. Looks like it is available here: https://www.food4rhino.com/app/ixcube-fea

Does it do quads?

no , tri-mesher only but very high quality

gd

It comes with a boolean operator on meshes also

gd

quick question @gerryark: does it detect “hard edges” as well?
Anyway I’ll definitely give it a try, thanks for the hint!

There are 2 components , remesh and remesh with hard edges
Maybe the second needs to be optimized a bit , if you test it we can discuss

We have several options not exposed like hard nodes and soft edges

gerry

So does a mesh like this work?

It seems that sometimes it works on planar objects:

So we need models where it does not work.

This looks pretty nice @scottd !
Answering to your previous question regarding requirements for a mesh for fe-analysis:

  • in general, for 2D quad, the ratio between two edges (max to min) should be lower than four (there are several way to calculate the aspect ratio, but this gives a clear idea);

  • size of the element does not need to be constant at all, see image below where the mesh has been refined locally;

  • mixed mesh triangle/quad are ok

  • for meshing of multiple surfaces, on common edges nodes must be shared (or vertex or whatever we want to call them) to ensure compatibility during analysis. This is a key point.

And no, I didn’t test QuadRemesh on several geometries.

@scottd does it work for you QuadRemesh for the geometry I posted at the beginning?

@gerryark I will definitely give a try at ixCube and let you know

2 Likes

@scottd maybe I am wrong, but it seems that QuadRemesh does not like triangular surfaces, even if defined with four edges.

One of my favorite topics!

It seems to me that the QuadRemesh is not strong with acute angles. This is a tricky problem for any quadrilateral mesh, and especially for FE meshes since acute corners are problematic in quadrilateral plate elements, generally.

If it must be a heavily-quad mesh, and/or it must be directly in Rhino (i.e. no Grasshopper), then ignore everything after this.

If you are okay with triangular meshes and Grasshopper, you could also look at a couple of Grasshopper plugins. I have had great results with Weaverbird and/or MeshMachine (part of the Kangaroo library). For example with your piece I was able to generate the following;

This has been super useful to create analysis meshes of complex geometries that also require hard edges (including co-planar hard edges) for things like loads of regular shape, or precise attachment points:

I also use Strand7 are have used these techniques to build those meshes directly into the FE software:

It’s possible to call the Strand7 mesher from inside grasshopper. It takes some up front work to connect the API’s, but if you already have that up and going, it should be possible to send a surface to Strand, use that automesher, and bring it back - if that’s something you need to do. For example sometimes we actually visualize the results directly in Rhino:

Hope that’s helpful in some way.

7 Likes