Solution Exception in Peregrine

Dear All,

I have tried some examples (normally 2D or Simple 3D) in Peregrine, and sometimes it can not give a solution with solution exception warning. May I know what could be the main reason for me to debug?

Saying if the example is with a irregular mesh, is it possible to generate the optimized layout on the surface of the mesh rather than inside the mesh zone?
image
And if it is possible for peregrine to further optimized based on my defined layout curves as I draw in Rhino?
image
The file and script are attached for your checking. Thank you for your favor in advance.
OPT1.gh (37.9 KB) GateHouse.3dm (5.0 MB)

Hi Peijuanj

I have tried some examples (normally 2D or Simple 3D) in Peregrine, and sometimes it can not give a solution with solution exception warning. May I know what could be the main reason for me to debug?

Have you modified the examples? All of the example files should be working correctly, if they’re not, please could you let me know which files so that I can investigate.

The best method of debugging this problem is probably as follows:

  • Create a domain mesh from the Box2pt grasshopper component - ensuring that it encompasses the entire domain from your problem.
  • Add point supports at the corners of this box.
  • Add a load case with a single point load within this domain.

By swapping out the inputs into the various components from this simple case with those from your more complicated case, you can track down the problem.

Looking at your example, it appears that the software is having difficulty with the domain mesh. There are many possible reasons for this, such as your mesh not being closed, or non-manifold. There may be Grasshopper tools to check for this.

I have attached a file that uses a much simpler box mesh, with the load case, supports, and nodes that you have defined, for which Peregrine is able to find a solution.

In general, for more complicated problems, I would recommend building up your problem from a simple case, without using user defined nodes and with a small nodal division, checking that your problem is solvable at every step. This should help you spot any errors as soon as they appear.

Saying if the example is with a irregular mesh, is it possible to generate the optimized layout on the surface of the mesh rather than inside the mesh zone?

It is possible to generate the optimized layout on any domain that encompasses both the load case and the supports. Constructing a solution on only the surface of some volume is not currently implemented, but is a possibility we are investigating for a future release.

And if it is possible for peregrine to further optimized based on my defined layout curves as I draw in Rhino?

It is possible to add pre-existing structures and check the minimum volume solution for these. See Structure_ConstructTopology.gh in the example files.

I hope this helps, and please let me know if you have any further questions.

Kind regards,
Jack

OPT2.gh (40.0 KB)

Dear Jack,

Thanks to your reply. All the example files from Peregrine work well. Just sometimes my working examples met some problems. As you have mentioned, if it requires enclosed mesh and non-manifolded brep, then I can understand why my example doesn’t work.

But if the optimization can not be applied to brep or mesh surface, but only to the domain internal zoon for 3D box, then it still can not be used widely in practice I guess. Maybe it can be applied to 2D surface well so far. And my other example is a brep surface of a half dome, if I have modelled the structural layout with spiral curves on the surface, is it possible to optimize the layout (optimal intercepted angle) to be like Michell truss in 3D? I still cannot make it through Peregrine. Thanks a lot again!

Dear Peijuanj

Thanks for your feedback on applying the optimization on the surface of 3D volumes. As I said, this is something we have been investigating, I will pass your comments along to my team. I would also like to point out that Peregrine can absolutely optimize for mesh domains, the example I gave you was to demonstrate that your problem is solvable given a closed, manifold mesh.

In regards to optimizing a pre-existing layout, I will need to speak with the lead developer about this, I will get back to you once I have.

Kind regards,
Jack