Connection problem between shell and beam element


(Qlin) #1

Hi everyone,

I am pretty new to Karamba, but I have a question when watching the tutorial videos online, specifically the " Analyze a Shell & Beam Structure" video. Here is the link:

A shell element is built on top of a beam and applied with vertical load. From the displacement output, we see that the shell and the surrounding beams are not actually connected with each other. Although they seem to be connected, there is a big displacement discontinuity between beam and shell.
I built up my own model and the result is the same. I cannot find anyway to connect the shell with surrounding beams.

Does anyone have a idea what I should do to make the shell and beams working together against the external loading? Thanks!


Hi Qlin,
in order to connect a beam to a shell, the beam’s endpoints need to coincide with vertices of the shell mesh. In case of a long member one has to subdivide the beam in order to get a reasonably good connection.
Karamba3D’s ‘Mesh Breps’-component allows to define inclusion points which show up as vertices of the generated mesh. This feature can be used to join beams and shells.

(Manta Leonardo) #3

Hi, I’m sorry for the intromission, but I have a question related to this.
As you said clemens, I’ve a similar model (girder bridge) with beam connected to beams along the span of the same. In order to connect the elements, I’ve shattered beam element in a specific number of points, and from that I built the shell element. No problem for this.
Now, I want to avoid class 4 section for the beam in a evolutionary algotihm process, so, I use the utilization of element that give to me in the details panel, the specific scritp along the EN1993 process:

  1. since the beam was shattered in high number of pieces, instability parameters of cross section refer to the small piece of beam and not to the entire span of those --> How can I have the regular instability parameters of the entire cross section?
  2. the details panel, mentioned above, include the detection of class 4 cross section, but the software give me an alert of class 4 detection, only if I set specific combination of constrain at the end/beginning of the bridge (example: Tx,Ty,Tz, Rx - another example: Ty,Tz,Rx). Why is this happen? Have I to constraint necessary Rx to obtain the detection?

Thank you so much for your help.



Dear Leonardo,
Karamba3D applies a simplified procedure for calculating the buckling length: for the intermediate elements it is either the distance between between points that connect to more than three beam elements or in case of free edges double the distance between the free node and the node with more than three connections. See the manual for details. This assumption is not always on the save side and then needs to be manually adapted. You can check the buckling length of an element by disassembling it.
The cross section classification depends on the cross section dimensions and cross section forces. Did you try to apply the formulas from the code directly on your cross sections?


(Manta Leonardo) #5

Dear Clemens,
Thank you for your answer. I disassembled the beam elements, but I still have a question for you. Based on the number “n” of points used to split the line (the same number that will be used for the shell), I get as result “n-1” segments. As each segments is associated to a beam element (n-1 beam total), to the same beam element is associated a buckling lenght (n-1) in disassemble element component. Based on the “n” initial number of points used, I obtain different buckling lenghts results that does not match the real result provided by a single beam. How can I obtain the correct buckling lenght of the entire beam? Is it (n-1)*buckling lenght value?

About the cross section classification, you mean limit thickness/width, provided by EC3 for specific cross section class? Karamba 3D does provide this result, doesn’t it?
If could be of any help, I can send you a simplified model.

Thank you in advance!



Dear Leonardo,
I am not sure whether I understand the paragraph regarding the buckling length correctly. A small example would be helpful. For a simply supported beam see the following example: (14.6 KB)
The cross section class is calculated in Karamba3D as part of the EC3 design procedure. What I meant in my previous post was, that it could be faster if you select a priori only such cross sections which satisfy your cross section class criteria.

(Manta Leonardo) #7

Hi Clemens, I see this file is a little bit different from my model output.
I try to modify it and let you know if I’ve other trouble. For cross section classification I need to specify an high range of possible dimension of Ipe cross section (width,thickness of all sub-elements) because I’m trying to perform beams optimization with octopus and so, I try to keep good only cross section class I,II and III. Do you have some suggestions to do it? I’ve only think about insert manually the verification equation t/b provide by EC3.



Hi Leonardo,
I think a manual script for generating only cross sections of a specific class is the best option. A point that adds complexity is the fact, that the cross section class depends on the cross section forces.


(Manta Leonardo) #9

I perfectly understand Clemens. So I’ll Proceed with manual verification made with script component. Anyway, I’ve verificatesi the buckling length as it appear in the example: for my specific girder bridge problem of 30 m length, with only beams connect to “assemble model component” the buckling length value provided by disassemble component is correct to 30 meters, but when I connect beams and the shell to the same component, this corresponds to the length of the segment element of the beam necessary to connect beams&Shell. If can be helpful, it’s sufficient multiplier this value for the number of beams segments in order to have the correct value. Thanks again clemens.

(Qlin) #10

Hi Clemens,

Sorry for the late reply on this topic. Initially I thought I might not need to transfer load from surface to beam, and it turns out I do need this.

I looked into the “mesh brep” you mentioned before, but I do not know how to accurately set the shell mesh to match the beam mesh. I see that in “mesh brep” we can set the element size, but we cannot set the exact number of seeds for a certain boundary line, right? In the “mesh surface” method, there are “U count” and “V count” that can be used to define the seeds on the boundary, but how shall we define the seeds on a beam? What’s more, even if we set the two numbers to be the same, and we have the shell and beam elements’s nodes matching on the boundary, will Karamba recognize them as the same point, or shall we manually define the duplicated points to be the same?



Hi Qlin,
for connecting beams with shells subdivide the beams so that the section lengths match the size the mesh faces. Use the ‘IPts’-input of Karamba3D’s ‘MeshBreps’-component to integrate the beams endpoints into the mesh. The points can be taken from the ‘Pts’-output of the ‘LineToBeam’-component.