Best Practices: Pretensioning Setup for Rectangular Membrane/shell Structures

Problem Statement

I’m working on modelling pretensioned membrane structures in PrePoMax and seeking guidance on proper setup methodology. Despite trying various approaches, I’m not achieving effective pretensioning results and would appreciate input from experienced users.

Typical Case Study Parameters

Geometry:

  • Rectangular membrane: ~5m × 10m (aspect ratio 1:2)

  • Thin section: 1-2 mm thickness

  • Material: Flexible textile (E = 1000-2000 MPa range)

Loading Scenario:

  • Wind pressure: 0.3-0.8 kN/m² (typically dominant load)

  • Self-weight included

  • High load-to-stiffness ratio (common for membrane structures)

Boundary Conditions Question:

  • Long edges: Fixed supports (anchor points)

  • Short edges: How should these be constrained for effective pretensioning?

Pretensioning Methods - Seeking Best Practices

Method 1: Surface Traction

  • Applied on edges intended for tensioning

  • Question: What magnitude ranges are typical for textile membranes?

  • Issue: Often seeing minimal improvement in deflections

Method 2: Normal Shell Edge Load

  • Seems more appropriate for shell/membrane elements

  • Question: Is this the preferred method for membrane pretensioning?

  • What are typical force/length values (N/mm) for this application?

Method 3: Temperature Loading

  • Using negative ΔT to simulate thermal contraction

  • Question: What temperature ranges work well in practice?

  • Issue: Sometimes getting counterintuitive results - is there a sign convention?

Method 4: Prescribed Displacements

  • Imposing inward displacements on tensioning edges

  • Question: What displacement magnitudes are practical?

  • Issue: Often leads to convergence problems

Key Technical Questions

  1. Which load type is most effective for membrane pretensioning in CalculiX/PrePoMax?

    • Surface Traction vs Normal Shell Edge Load vs others?
  2. What are realistic expectations for pretensioning effectiveness?

    • For thin, flexible membranes under high wind loads

    • Is 10-30% deflection reduction typical, or should we expect more?

  3. Boundary condition strategy:

    • Should tensioning edges be completely free in-plane?

    • How to balance stability vs effective tensioning?

  4. Step sequence best practices:

    • Step 1: Pretensioning only, then Step 2: Add external loads?

    • Or combined analysis in single step?

  5. Common modeling pitfalls:

    • Material property requirements (thermal expansion, etc.)

    • Solver settings (nonlinear geometry needed?)

    • Mesh considerations for thin membranes

What I’m Looking For

  • Proven workflows for membrane pretensioning setup

  • Typical parameter ranges that work well in practice

  • Troubleshooting tips for common convergence issues

  • Reality check on achievable pretensioning effectiveness

  • Alternative approaches (cables, hybrid systems, etc.)

Community Input Request

Has anyone successfully implemented effective pretensioning for similar membrane structures? What methods and parameter ranges worked best for you?

Any guidance on best practices, common mistakes to avoid, or recommended approaches would be extremely valuable!

A lot of that (especially BCs) depends on the real-life scenario that you want to model. Have you seen this tutorial ? https://www.youtube.com/watch?v=-M2BOHHkUf4 It shows how to model preload for a similar setup and includes analytical verification. Frequency analysis allows you to easily check if it’s correct - you should notice the change in natural frequencies when preload is included.

Force control (any type of load that you can assign to edges and conveniently define its magnitude using the inherent units - force or force per unit length) is the easiest way. Pulling with displacement control (if used properly) is better for convergence in nonlinear steps. Thermal load is rather old-fashioned way (also sometimes used for bolts but CalculiX has bolt pre-tension feature so thermal load is not needed).

Thank you for the feedback. I found the way the boundary conditions for the anchors were defined to be very interesting, as it’s a combination I hadn’t tried before. I’d like to add an observation: in this case, I want to determine how much pre-stress is needed to reduce the maximum displacement caused by Gravity + WindLoad (as Uniform pressure). My approach would involve:

Step 1: Define the anchors as shown in the video, but only on the short sides, as I intend to tension the shell in one direction (assuming Y is the longitudinal direction). Also, include Gravity + WindLoad as the loads.

Step 2: Use the same anchors, but include only Normal-Edge Shell as the load on the short edge.

Step 3: Set up a frequency-step with the perturbation option enabled.

However, I’m unsure if this method is correct, and I cannot fully grasp the following points:

  1. Understanding the maximum displacement due to self-weight + Wind Load.
  2. Why doesn’t tensioning seem to reduce displacement?

My goal is to calculate how much tension should be applied to the short supports to achieve the desired displacement, which should be less than the displacement caused by Gravity + wind load.

Any suggestions will be much appreciated, as done up to now.
Many thanks.

Do you have any nonlinearities in your analysis ? You should have Nlgeom enabled in the sequence of static steps but it’s also important to account for plasticity when modeling preload. The intricacies of multistep analyses are explained here (especially point 4 is important in this case): Understanding multistep analyses

Typically, preload and so-called “dead loads” (gravity) are applied in the first steps and then there are operational loads introduced in the subsequent steps. Frequency step is not always necessary, only if you want to check the influence of the preload on natural frequencies of the structure. If the perturbation option is enabled, it takes the state of the model from the previous static step.

Thank you for the clarification on frequency analysis!

You’re right - frequency step isn’t necessary for my specific goal. I’m focused on displacement reduction under operational loads, not frequency validation.

Regarding Nlgeom and step sequence: Based on your multistep analysis guidance, I think my approach needs correction. Currently I’m seeing counterintuitive results - pretensioning actually increases displacement instead of reducing it.

My revised understanding:

  1. Step 1: Gravity + Wind Load (establish baseline loading state)

  2. Step 2: Add pretensioning with Nlgeom ON (should reduce displacement from Step 1)

Key questions:

  • Is Nlgeom absolutely critical for thin membrane pretensioning effectiveness? (thickness = 1.65mm, span = 10m)

  • Should pretensioning forces be applied as incremental in Step 2, or as total values?

  • For membrane structures, is there a minimum pretensioning magnitude threshold below which no stiffening effect occurs?

Current issue: With elastic material and thin geometry, I suspect the membrane isn’t developing sufficient membrane action to benefit from pretensioning - it’s behaving more like a flexible plate in bending.

The Nlgeom suggestion makes perfect sense for this case, as thin membranes should exhibit significant geometric nonlinearity under tension.

Will implement Nlgeom ON and test the corrected step sequence. Thank you for pointing toward the multistep analysis fundamentals!

Isn’t pretensioning supposed to happen before operational conditions such as wind load ? The loading sequence should correspond to real life situation.

Nlgeom has to be enabled to get accurate results when there are large strains/displacements, preloads or structural instabilities (buckling). This is nicely explained here: Flow Chart: Do I need nonlinear geometry? - Enterfea and here: Geometrically nonlinear analysis - how does it work? - Enterfea

This is explained in point 2 here: Understanding multistep analyses

Keep in mind that PrePoMax and CalculiX have both shell elements and membrane elements. The latter have no bending stiffness.

Excellent clarifications - thank you!

You’re absolutely right about loading sequence! Real-life: pretensioning happens during installation, then operational loads. My sequence was backwards.

Corrected approach:

  1. Step 1: Pretensioning only (simulate installation)

  2. Step 2: Add Gravity + Wind Load (with Nlgeom ON throughout)

Nlgeom understanding: Thank you for the Enterfea links - they perfectly explain why Nlgeom is critical here. With:

  • Large displacement-to-thickness ratio (154mm/1.65mm ≈ 93)

  • Pretensioning forces creating geometric stiffening

  • Thin membrane geometry

Nlgeom is definitely required, not optional.

Element type insight: This is crucial! I’m currently using shell elements (which have bending stiffness). For pure membrane behavior, should I switch to membrane elements instead?

Key question: For pretensioned textile structures, which element type gives more realistic results:

  • Shell elements (current) - include bending stiffness but may not capture membrane action properly

  • Membrane elements - pure tension/compression, no bending stiffness

The fact that I’m seeing “flexible plate in bending” behavior suggests shell elements might be dominating through flexural response rather than membrane tension.

Next steps:

  1. Enable Nlgeom for both steps

  2. Correct step sequence (pretension → operational loads)

  3. Consider switching to membrane elements

Would you recommend trying membrane elements for this application?

Yes, membrane elements make sense in such cases. They are used to model very thin structures, often fabrics or coatings or something like a balloon. They have no bending stiffness, they only carry in-plane forces. In CalculiX, they aren’t true membrane elements just like shells aren’t true shells - they are internally expanded to solids. Membrane elements have hinges at all their nodes to eliminate the bending stiffness. But still, they can be used successfully in various applications involving particularly thin members.

Following up on our membrane elements discussion - I’m running into some implementation challenges in PrePoMax.

Issue encountered: When trying to switch to membrane elements, I get this CalculiX error:

*ERROR reading *MEMBRANE SECTION: *MEMBRANE SECTION can only be used for membrane elements. Element 1 is not a membrane element.

Surely I’m missing something in the setup process.

Request: Since membrane elements seem problematic, I was wondering if you might have a moment to glance at my shell element configuration instead? I’ve taken the liberty of attaching the .pmx file to this post, but please feel free to ignore it if you’re too busy.

If you do have time to take a look, I would be extremely grateful for any insights on:

  • Whether my current shell setup seems reasonable for thin membrane behavior

  • Confirmation that Nlgeom + proper step sequence should be sufficient for effective pretensioning

  • Any obvious setup issues you might notice that could improve pretensioning effectiveness

I completely understand if you don’t have time for file reviews - your guidance in this discussion has already been incredibly helpful and educational. Any feedback would be genuinely appreciated, but no pressure whatsoever!

test_03_33.pmx (3.0 MB)

Apart from assigning a membrane section, you also have to change the type of elements from S to M (membrane) ones. Right-click on the part and select Edit:

It would be better to use quad elements. In the Geometry tab, you can add Shell Gmsh mesh item and set 2D meshing algorithm and Recombination in such a way to get quads.

Is it intentional that in the first step there’s no U1 boundary condition?

Hi Jakub, thanks a lot for your input.

You’re absolutely right: even though I intentionally left U1 without any boundary condition to avoid tensioning along the X direction, the physical behaviour of the membrane still leads to deformation in that direction. My goal was to minimize this transverse deformation and focus the pretensioning along the longitudinal Y axis. I realize this is a bit of an idealization, but I wanted to test whether such behavior could be approximated.

Also, thanks for the clarification regarding membrane elements. I agree—PrePoMax isn’t always the most intuitive when it comes to discovering hidden settings. I only realized I could change membrane parameters by manually clicking through each item in the dropdown menus—not exactly user-friendly, but manageable once you know where to look definitely.

Here’s what I’ve done so far (PrePoMax v2.3.0):

  • Assigned the section as a membrane

  • Changed the element type from S to M (membrane) - what’s the difference between M3D8 vs M3D8R?

  • Set pretensioning as Step-1

  • Used a Quad-mesh (thanks to Matej Borovinšek’s video here)

However, the analysis fails, and the only result I get—displacement—is physically unrealistic. I’m attaching two simple screenshots below to illustrate the issue.

Do you have any suggestions on how I could improve the setup? Could it be a numerical stability issue or perhaps too weak boundary conditions?

test_03_34.pmx (5.1 MB)

Thanks again for your support!

The latter uses reduced integration - less integration (Gauss) points. It’s a long story when it comes to element selection but, in short words, R might be better here. You can compare both though once you have the correct setup.

You are using the Pre-tension load. This is meant for solid bolt models and applied in a different way (to two compounded halves of the bolt). You should use regular loads such as traction/shell edge load instead.