How does OptiCroSec work for Non-Steel materials?

Dear experts,

OptiCroSec component is intended to optimize steel structures according to EC3 (EN 1993-1-1), so it keeps utilization and displacements below the maximum levels.

What happens for non-steel materials? Please, correct me if I´m wrong but EC3 is only intended for steel structures.

How do you measure the maximum utilization of the members, e.g. for other non-steel materials like timber or aluminum?

What about buckling? (In EC3 the maximum capacity of the members includes buckling in some way) (96.2 KB)

Thanks a lot for your help!

Dear @Vigardo,

currently (version 1.3.3 and 2.3.0) in case of beams and trusses the EC3 procedure is used for all materials. The tensile strength is used as fy.

The utilization of the members is the maximum utilization (regarding normal force, bending, shear,…) encountered in the cross sections for all load-cases.

Buckling of beam and truss elements is taken into acount via their buckling length (see here) and the cross section’s buckling coefficients alphaY, alphaZ, alphaLT. These can be read out via the ‘Disassemble Cross Section’-component. They can be set via a cross section table or a smalll script.

– Clemens

Hi Clemens,

Then, OptiCroSec it is only intended for architecture and civil engineering construction projects since it will only produce meaningful results for steel materials.

In my opinion, I think your OptiCroSec component would be also very useful in other engineering flavors if a “code independent” utilization model were implemented. I mean, the component would include some input to select between the EC3 utilization model or, for example, a Von Mises (ductile materials) or Rankine (brittle).

This option would facilitate enormously the material selection in the initial design stages of almost any structural engineering project involving beams and shells. Please, just take this comment as a suggestion from a convinced Karamba3D user :slight_smile:

In any case, I´m trying to perform a comparative structural analysis to select the most appropriate material among steel, aluminum, titanium, and timber for an academic project. How would do it using OptiCroSec component? Is there a way to disable the EC3 checks and use some simple stress utilization model?

In other thread post you say that “setting the buckling length of the beam and truss elements to zero the EC3 procedure reduces to a design based on stresses and strength”. (sorry I´ve just seen it and edited this post)

Should I understand that the material strength is the yield strength (whatever the material is) and the stresses are computed using the classic formulas for beams?

s_axial = N/A
s_bending = M·c / I
s_shear = V·Q / I·b

Thanks Clemens for your kind response and help!

Hi @Vigardo,

I am currently working on making the OptiCroSec component more versatile. It is however not sufficient to implement different strength criteria for the materials - this is by the way already available in version 2.3.0 for shells (see here).
Instead of setting the buckling length to zero, you can disable buckling for a beam by setting ‘Buckling’ to false in the ‘ModifyElement’-component in submenu ‘2nd order’. Then cross section design is based on the cross section stresses only.

1 Like

Hi Clemens, thanks for your answers!

Ok, so it is possible to disable buckling checks and rely just on strength checks. This would be a workaround for my application if I finally perform a global buckling analysis, thanks!

In any case, is there a way to switch from EC3 buckling (i.e. via alpha coefficients) to classic Euler and local buckling formulas?

Pcr = pi^2 EI / (KL)^2
Plocal = (t/r) • E / (3(1-v^2)^0.5)

There are more local buckling formulas for different cross sections, and some include knock down factors:

I know that this is not going to be very accurate for combined loading cases but for lattice structures (axial loading mainly) it would be very helpful, at least for solid and simple holow closed cross-sections.

Perhaps it would be easier including some speciffic input in OptiCroSec component to introduce a custom expression for buckling.

As another suggestion, it would also be great having the possibility to include Karamba’s global buckling analysis as an alternative to EC3 buckling.

Hi @Vigardo,

at the moment (version 1.3.3. and 2.3.0 WIP) the cross section optimizer works on the basis of EC3. With smaller alpha coefficients one approaches the Eulerhyperbole also for small relative slenderness values.

You could consider scripting a custom cross seciton optimizer - an example can be found here.

The EC3 design procedure includes physical imperfections (e.g. eigen-stresses due to manufacturing the profiles) via the alpha-coefficients. This is not accounted for in a linear elastic buckling analysis. I think the way to go would be the determination of the buckling length of the members via global buckling analysis and then doing a EC3 design procedure. However I haven’t yet found a convincing method for doing so. Any recommendations would be highly appreciated.


1 Like

Hi Clemens,

I´ve taken a look to the C# example to customize the cross section optimizer. Your code is tidy and very well organized, so it seems quite easy to add any specific checking formula. Thank you very much, I hope to play with this soon!

By the way, are the other methods like k3d.Algorithms.AnalyzeThI() documented elsewhere? It would be great designing custom optimization routines using your global buckling or modal analyses!


Hi @Vigardo,
for version 1.3.3 there is the online API documentation which can be found here. There will be soon an improved API-documentation for version 2.3.0 WIP as well.
– Clemens

1 Like

Absolutely great !!! Thanks a lot!