gammaM0 and gammaM1 factors for Cross Section Optimizer

I’m using Karamba V 1.3.3. for R6.

I was testing out the cross-section optimizer and decided to test a simple case: a column with tension on it (giving it a list of circular cross-sections). The maximum utilization factor works as expected, but was getting some strange behavior when setting the gamma factors.

I’m not very familiar with Eurocode, but from what I understand the M0 factor is for cases where buckling doesn’t cause failure (i.e., tension or compression cross section yielding) and M1 factor is for cases where buckling governs. So in the case I am looking at (i.e., direct tension on a column), the M1 factor should not have an influence.

But I am getting the opposite behavior, and it looks like gamma,M1 is scaling the the axial force resistance and hence affecting the optimization. M0 has no effect. Any ideas? Is this a bug?

A follow-up question related to the optimizer and how it designs for buckling.

It appears that it takes the imperfection factor (alpha) as a default of 0.49 when calculating the buckling reduction factor. Is there any way to change this?

Dear @edvard.bruun,
currently (version 1.3.3) gamma_m1 is used to reduce NRd, MyRd and MzRd in case the buckling length in the corresponding direction is different from zero:
if (lk_y != 0) My_Rd /= gamma_m1_; else My_Rd /= gamma_m0_;
if (lk_z != 0) Mz_Rd /= gamma_m1_; else Mz_Rd /= gamma_m0_;
if (lk_z != 0 || lk_y != 0) N_Rd /= gamma_m1_; else N_Rd /= gamma_m0_;
So it is not dependent on whether the normal force is tensile or compressive. This is a simplification which speeds up calculation in case of several load-cases. it would be a good idea to change this in the next release. I will add this as a feature request on Issues · karamba3d/K3D_NightlyBuilds (github.com).
– Clemens

Dear @edvard.bruun, regarding the imperfection factors:
cross section objects have the attribute ‘product’ which can be set via script. Its value is an enum defined in Karamba.CrossSections.CroSec_Beam.Production and may have the values ‘cold_formed’, ‘hot_finished’, ‘welded’, ‘rolled’ or ‘undefined’. alpha_y, alpha_z and alpha_lt get set according to these values when the cross section calculates its mechanical properties. The alpha values can be set afterwards independently.
For user defined cross sections 'product ’ is set to ‘welded’ by default. For cross sections read from a table the values can be defined in the table (see attached example: alpha_example_cp.gh (10.6 KB) ).
– Clemens

Hello @edvard.bruun, one additional thing: the alpha-values can also be set using the ‘Modify CrosSec’-component, submenu ‘Resistance’
– Clemens