How to Model a Membrane in Karamba?

Dear experts,

I have a few questions about how to model a triangular membrane bound to a triangular frame and loaded under uniform wind pressure Membrane.gh (85.3 KB). Would you help me? Thanks!

  1. In the Generation tab from Loads component you can choose between generating Point loads or Line loads. Which one should be selected to properly model the membrane? I want the pressure to be applied over the membrane and transmitted to the beams frame.

  2. Whereas 1st and 2nd order analyses do provide very large displacements, the Non-linear analysis (WIP) provides relatively small (and more feasible) displacements instead. Why is this so? Should I trust the non-linear analysis, shouldn´t I? Can Karamba shell finite elements properly deal with membranes modeling?

  3. If you enable the Preview of 1st or 2nd order analyses Beam and Shell Views components, it is possible to smoothly control the deformation using the corresponding slider in the ModelView component. This is fine. However, for Non-linear and Modal analyses the Deformation slider just toggles on/off the deformation display. Is this the expected behavior? I think a smooth behavior is mandatory to check that the bars are adequately linked to the membrane border.

Dear @Vigardo,
ad 1.) For membrane and shells surface loads are automatically discretized as point-loads. The line load option exists for beam elements.
ad 2.) The geometric non-linear analysis takes into account the increase of in-plane forces due to transverse displacements. Make sure that the non-linear calculation reaches a load-factor of ‘1’. It terminates at lower load-levels if convergence can not be achieved.
ad 3.) It is the expected behavior. Non-linear displacements can not be scaled linearly. As a work-around you can append a linear step at the end of the non-linear calculation. For this you should be able to apply linear scaling.
You use membrane elements from Karamba3D 2.0.0 WIP - right?
– Clemens

1 Like

Thanks Clemens for the usual quick and accurate response!

  1. Then, I just have to leave deselected the Line load option to avoid “counting twice” the mesh load, am I right?

  2. So for my case, I just have to trust the Non-linear analysis if it has converged (by checking load-factor reaches 1) and forget all results from 1st and 2nd order ones, correct?

  3. Ok, you’re right, but other FEA tools usually let you iterate over all or just a few of the different “structural snapshots” following the non-linear trajectory path. Would it be great having this kind of feature in future Karamba3D releases.
    Regarding the appending of a linear step at the end of the non-linear calculation it is a clever work-around. I understand that the linear scaling will be applied to the final (hopefully converged) structure in order to check that the loads were properly transmitted between the membrane and the beams, is this right?

Thank you so much for the info! I didn’t know that there was a WIP version available with brand-new membrane elements ready to use:

“added membrane elements. Create them by setting ‘bending’ to false at the MeshToShell- or ModifyShell-component.”

That’s awesome news! I’ll install Karamba3D 2.0.0_201020 WIP and check it asap!

PS: Do you plan having a “cable” element soon? Is it on your schedule?

Hello @Vigardo,
ad 1. The line-load option should have little impact on the solution in your case. It is meant to assure that the bending moment in long beam-elements comes out correctly.

ad 2. 2nd order analysis should render correct results in case of small displacements when the prestress in the membrane is large as compared to the increase of in-plane forces during deformation.

ad 3. Being able to step through the converged states could be a useful feature indeed. The last step is not automatically assumed to be linear. One needs to set ‘NLoadSteps’ accordingly: The remaining load-cases are assumed to be linear based on the state after the non-linear calculation (see here).

– Clemens

Hi Clemens! Thanks for your kind help!

  1. Sorry, but if I select Line-load option the membrane seems not loaded while the beams does. Conversely, the results look better if I just select the Point-load option (i.e. the membrane appears loaded and transmits the force to the beams).

  2. You can check in the figure below that the 2nd order analysis displacements (Disp.II panel) are huge in comparison with those obtained from Non-Linear and Large-Deformation analyses. Should I understand that I get such wrong results because the membrane has not been pre-stressed? If so, how would it be pre-stressed?

  3. Ok, I´ll take this into account when I have multiple load-cases. Thanks!

  4. I´ve installed the last Karamba 3D WIP and compared the results between Non-Linear (NL) and Large Deformation (LD) analyses Membrane2.gh (82.4 KB). If you play with the “Beam/Subtriangle Subdivs” slider you will check that the maximum displacements and membrane shape smoothly converge for both analyses, so it looks great! However, I can´t find the way to show the Von Mises stress or Utilization % in LD analysis. ShellView only produces output for Cross-section Render Setting. Why is this so? It would be great comparing the results from both types of analysis.

  5. After this initial comparison, I´ve set False the Bending input of the MeshToShell component (in Materials Cross-Section group) to test your brand new membrane finite elements. Unfortunately, the Non-Linear component crashes and complains with the following error (with all solution procedures):

[“1. Unknown error occurred while solving for the structural response of the system. May cause errors in exported models.”]

The Large Deformation component also crashes, but with a different error:

[“1. Could not calculate deformed model. Use the component ‘Analyze’ to get details.”]

The Analyze component says:

[“1. There are 6 rigid body modes in the system. This means some parts can move freely without causing deformation. Try to use the ‘Eigen Modes’-component and activate the display of local coordinate axes: The first eigen-mode will be the rigid body motion. If this does not help, check whether you have a pinned support directly attached to a hinge. A hinge introduces an extra node which may cause the problem. When analyzing a flat shell structure one has to lock the rotation perpendicular to the plate in at least one node.”]

Accordingly, I´ve checked the normal modes and the membrane blows out above and below the triangle plane…

  1. By the way, I can´t adequately visualize the normal modes (with Bending of shell elements set to True). I can only visualize something if I set the Result-Case from Model View component to number 4… but I haven´t used Load Cases yet…

Am I doing something wrong? Is Karamba 2.0.0 WIP ready to model this kind of membrane systems or should we wait for the final release? Thanks!

Hello @Vigardo,

ad 1. My answer was unprecise: I should have written selecting the ‘line-load’ option in addition to ‘point-loads’.

ad 2. I think the difference comes from the fact that 2nd order analysis does is based on the assumption of small displacements and thus does not take into account the increase of in-plane forces due to transverse displacements.

ad 4. The ‘Large Deformation’-analysis is for shape finding only (see manual). For the derivation of stresses it is too inaccurate. This is the reason why it does not output Von Mises stresses.

ad 5. Thanks for the bug report! Could you please file an issue at https://github.com/karamba3d/K3D_NightlyBuilds? This would be great. Did you pre-stress the membrane? If so use the ‘Analyze ThII’-component. Alternatively you can set NII to a positive value via the ‘ModifyElement’-component.

ad 6. Each mode shows as a load-case.

Karamba3D 2.0.0 WIP should be ready to model this kind of membrane systems.

– Clemens

1 Like

Hi Clemens,

1-4. Ok.

  1. As you´ve indicated, I´ve registered at GitHub and reported the bug (https://github.com/karamba3d/K3D_NightlyBuilds/issues/19). I hope it helps to improve even more your excellent software!

  2. If I understood well, in the ResCase input contextual help it says that by setting “All” load cases you can control which mode will be shown with ResCase input (see I have a slider connected to it). However, it only shows a mode shape when I select number 4 at this slider… no matter how large deformation is (I tried up tu 1000).

Sorry for the delay and thanks for all your comments!