Discrepancy results for "Beamview Utilization" & "Utilization of Beams" when using SHS profiles

Hi,

There seems to be an error, when calculating the utilization with the “utilization of beams” node for SHS-profiles specifically. The results for “Beamview Utilization” and “Utilization of Beams” are different. Note that I’m checking the cross-section. Buckling is turned off. When doing a simple hand calculation based on Eurocode the “Beamview Utilization” seems to be the correct one. “Utilization of Beams” gives a slight underestimation of around. This does not occur for other profile types that I tried (HEA, HEB and IPE). In that case the result values are the same for both nodes. Also noteworthy: this error does not occur when the beam is subject to mere bending. See attachment below to see the simple model that I used to test this. Does anyone know where this discrepancy comes from? I think there might be an error in the code, that causes hollow sections to give the wrong result. Or is there maybe a Eurocode formula that I’m missing here?

testmodel.gh (37.1 KB)

Hi Tam Ngo,
thanks for reporting this dicrepancy! I will have a look.
Best,
Clemens

Thank you for looking into this problem. Looking forward to your reply.

Hi Tam Ngo,
sorry for my late reply - I was knocked out by a cold for some days.
The difference in the utilization values is due to the interaction coefficient ‘Cmy’ according to table B.3 of EC3. It is 0.95 in case of a uniformly distributed load and directly influences ‘kyy’ according to table B.1. which in turn modifies the bending resistance.
So if one divides the EC3-utilization of your example by 0.95 one arrives at the value found by dividing the actual maximum stress by the yield strength.
Best,
Clemens

Hi,

How is the Cmy calculated for a linear moment distribution from 0 to x. My Karamba calculation is giving 1.0, where I would expect 0.4.

Hi @r.h.a.titulaer,
this is how the Cm values are currently (Karamba3D 1.3.2) calculated:

		real psi = 1.0;
		if (Mh != 0) psi = Mpsi / Mh;

		real cm;
		// a uniformly distributed load is assumed
		if (std::abs(Mh) > std::abs(Ms)) {
			real alpha_s = Ms / Mh;
			if (alpha_s >= 0) {
				cm = 0.2 + 0.8*alpha_s;
				cm = cm < 0.4 ? 0.4 : cm;
			}
			else {
				if (psi >= 0) {
					cm = 0.1 - 0.8*alpha_s;
					cm = cm < 0.4 ? 0.4 : cm;
				}
				else {
					cm = 0.1*(1 - psi) - 0.8*alpha_s;
					cm = cm < 0.4 ? 0.4 : cm;
				}
			}
		}
		else {
			real alpha_h = 1;
			if (Ms != 0) alpha_h = Mh / Ms;
			if (alpha_h >= 0) {
				cm = 0.95 + 0.05*alpha_h;
			}
			else {
				if (psi >= 0) {
					cm = 0.95 + 0.05*alpha_h;
				}
				else {
					cm = 0.95 + 0.05*alpha_h*(1.0 + 2.0*psi);
				}
			}
		}

		// for buckling with lateral displacement according to EN 1993-1-1, Table B.3
		// is too conservative for systems that do no displace laterally
		cm = cm < 0.9 ? 0.9 : cm; 

In the end it is assumed that buckling occurs by side-way sway which entails the limitation of the Cm values to 0.9 according to table B.3 of EN 1993-1-1.
A possibility would be to add a switch so users can decide whether side-way sway can occur or not. Then however another problem remains: currently (Karamba3D 1.3.2) the beam elements are not aware of their context. In case they form part of a larger beam the moment distribution in the small pieces could lead to Cm values which are too high. The solution is to base the cross section design on user-defined beam-sets. This is an item on my TODO-list.
Best,
Clemens

1 Like

Very nice! thanks Clemens!