Karamba Buckling Analysis Queeries

Hello, I am trying to undertake a buckling analysis of a truss bridge in Karamba. I am struggling to understand the buckling analysis in Karamba and the correct ordering to place the components. I am based in the UK so design according to Eurocodes.

BS EN 1993-1-1 cl 5.2.1 only requires 2nd order effects to be considered if the elastic critical buckling factor is greater than 10. However, Karamba seems to require the ThII component before the buckling analysis component. Therefore, I am not clear if the results of the buckling analysis are the elastic critical buckling factor as they already include 2nd order effects. Can anyone clarify?

cl 5.3 requires consideration of initial imperfections (Geometric nonlinearities) when undertaking a second-order analysis. I would normally use the eigenvector deformed shape, normalised to the geometric imperfections but I can’t see a way to connect the external loads to the deformed model to input into the non-linear analysis.

Finally, I only want to undertake a geometric non-linear analysis - ignoring material non-linearities. Is there a way to control this with the non-linear analysis component?

hopefully the above is clear, any help would be greatly appreciated.

Hello @alexander.griffiths,

the ‘Buckling Modes’-component returns the buckling load factors for linear elastic buckling by solving a general Eigenvalue problem which involves the elastic and geometric stiffness matrices. The geometric stiffness depends on the NII-forces. These can be calculated using ‘Analyze ThII’ or set via the ‘Modify Element’-component for beams in the submenu ‘2nd Order’.

From the buckling modes found via the ‘Buckling Modes’-component one can estimate the buckling length of the beams and set them in ‘Modify Element’: BklLenY, BklLenZ and BklLenLT (see here). These then get used in the design equations of EC3.

Regarding imperfections: currently (Karamba 1.3.3, 2.2.0 WIP) they need to be set per beam as initial curvature and initial inclination (see here).

If you want a geometrically non-linear calculation where transverse displacements result in axial strains you need to use the ‘AnalyzeNonlin WIP’-component. For cases where the axial loads are large but displacements are small the ‘Analyze Th II’-component is sufficient.


Hi Clemens,
Thanks for your response it was very helpful. I have a couple of follow on questions I would be very grateful if you would help me with:

  1. Does the Analyses Thll use a pseudo load approach or a two-cycle iterative method?
  2. Can the imperfections load component be used for both global imperfections as well as local beam imperfections? if so do you have any examples?
  3. I have tried to include the Imperfections load component in my definition but when I assemble the model I get a warning that the load is not considered. I have attached the definition can you explain what I have done incorrectly?

kind regards
Milford Place Pipe Bridge.gh (112.6 KB)

Hi @alexander.griffiths,
sorry for my late reply.

ad 1.) The ‘Analyze ThII’-component iteratively refines NII untile its relative change between two iterations falls below the value given in ‘RTol’. NII could also be se manually via a ‘Modify Element’-component. An element’s NII controls its stiffness and forces which result from imperfections. Non-zero NII forces are taken into account also when using an ‘Analyze’-component, however then NII is not iteratively refined. The method used for taking account of NII-forces is based on the transfer matrix method in the formulation of Helmut Rubin (see e.g. here).

ad 2.) You can use imperfection loads for global imperfections by giving the elements initial inclinations that are affine to the first buckling mode. Local imperfections can be taken into account via initial curvature loads. At the moment (version 1.3.3.) there is no corresponding example in the TestExamples-collection. I will add one.

ad3.) At the ‘Loads’-compopnent for the imperfections Beams instead of Beam-identifiers are supplied. Due to automatic type conversion this leads to the problem that the string representation of the elements instead of their identifiers is used. In Karamba3D it is possible to supply elements. In case you do not want to update use a ‘Disassemble’-component to get the identifiers from the beams: Milford Place Pipe Bridge_cp.gh (116.2 KB).

– Clemens

Hi @cp1
Thanks for the reply it is very helpful.

kind regards