Grasshopper

algorithmic modeling for Rhino

Hello, 

I'm trying to calculate the bending moment utilization for a CHSC to verify how Karamba's utilization element performs its analysis. I've performed hand calculations according to Eurocode 3 (BS EN 1993-1-1:2005), which have matched perfectly for the shear force utilization, but which are slightly (~10%) off for bending moment utilization.  I have tried multiple Class 1 and 3 cross sections, using the plastic and elastic section modulus respectively as outlined in section 6.2.5, but my result for bending moment utilization is always slightly off.  It always lies somewhere between the result predicted by the elastic section modulus (pi*(R^4-r^4)/(4R)) and the plastic section modulus ((D^3-d^3)/6), which has made me wonder if Karamba is using some combination of the two in calculating utilization.  I have also checked if using the reduced yield strength considered in 6.2.8 (Bending and Shear) helps, but this does not match the Karamba output either.        

The Grasshopper file I am basing my calculations on is attached.  Thanks in advance for any insight you can give!

Best, 

Tess

Views: 1883

Replies to This Discussion

Hello Tess,

the calculation of the utilization of beams according to Eurocode 3 is quite lengthy. Therefore I have attached the C++ sourcecode for its determination as used in Karamba. There are mostly formulas in the file 'CroSecStateImp_EC3.cpp' so you do not need to know any C++ language details. The file can be opened in a text editor and contains comments and references to the formulas in EC3.

In order to see some itermediate results, set 'Details?' to 'true' on the 'Utilization'-component (see attached definition).

Best,
Clemens

Attachments:

Dear Tess,

try to reduce the complexity of the definition. That makes it easier to find the source of unexpected results.

The overall utilization that comes out of the 'Utilization'-component is not the maximum of the individual utilization outputs: for a beam it makes e.g. a difference whether there is uniaxial or biaxial bending. The individual utilization components are meant to give a feedback regarding which cross section force governs the design.

The cross section optimizer does not utilize evolutionary optimization algorithms. It calculates the structural system and uses the computed cross section forces to select the most appropriate cross section. Then a new calculation is done which in case of statically indeterminate systems leads to new cross section forces, new cross sections are chosen and so on. For details please see the manual. This algorithm is not guaranteed to converge - elements with utilization larger than one may result. Sometimes it helps to increase the number of iterations. For structures which have a sufficient plastic capacity for the redistribution of internal forces (like e.g. steel or aluminum structures) this is however not a problem since the lower limit theorem of plasticity applies.

The procedure for calculating the utilization according to EC3 includes buckling. The buckling length is calculated based on the connectivity of the beams and is not always conservative. In case of system buckling (e.g. the upper cord of a truss may buckle as a whole) one has to adapt the buckling length using the 'ModifyElement'-component.

You could switch off the bending stiffness via the 'ModifyElement'-component. Then you get truss elements and do not have to apply joints.

Best,

Clemens

For completeness, the attached C++ file contains the procedure for classifying I-profiles according to EC3.

Best,

Clemens

Attachments:

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2026   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service