Incorrect displacement results with shell edge load on shell composite model

I need to simulate a tensile test of coupon (shell composite layup).
I fixed bottom and then apply a normal shell edge load.

Problem is that Calculix results show unexpected displacements (see image).

Probably it is better to apply a prescribed displacement instead of load force, but I wanted to compare with Abaqus model computations results that use shll edge load successfully.

Here is result from ABAQUS:

tensile_coupon_composite.inp (676.3 KB)

You have:

*Elastic, TYPE=ORTHO
138000, 9500, 9500, 0.28, 0.28, 0.4, 5200, 5200,
1450

But your constants look more like E, v and G than the coefficients D_xxxx. You may have to use this instead:

*Elastic, TYPE=ENGINEERING CONSTANTS
138000, 9500, 9500, 0.28, 0.28, 0.4, 5200, 5200,
1450

Description here: https://www.dhondt.de/ccx_2.23.pdf#subsection.7.47

If it doesn’t solve the isse, can you share the Abaqus .inp and PrePoMax .pmx files ?

1 Like

Thanks for your quick reply.
After doing this change, it works now properly (no more unrealistic large displacement in corner area). Moreover, the max disp (U magnitude) is now very close to value computed by ABAQUS (see image) :

Problem : I have now an unexpected stress concentration peak at the corner of the mesh (see images). Do you have an idea why ?

NB: I can’t share the PMX project file , since it contains additional data (file is generated from a fork of prePoMax). Let me know if you need something else.

It might be due to constraining rotational DOFs of shell nodes. CalculiX has an issue with that - there can be convergence issues or artificial stress concentrations due to the drilling DOF being constrained (especially at curved edges). See number 8 here: Known CalculiX limitations

1 Like

I tried to constraint only translations for BC nodes (see images), but still same result.

*Boundary, op=New
** Name: Displacement_Rotation-1
*Boundary, Fixed
Internal_Selection-1_Displacement_Rotation-1, 1, 1
Internal_Selection-1_Displacement_Rotation-1, 2, 2
Internal_Selection-1_Displacement_Rotation-1, 3, 3

You could try relaxing the BCs - instead of fully fixing one edge, try applying sort of symmetry BCs (then you can fix one node in the vertical direction if needed). See this thread: Cantilever beam with load at one end - #10 by CrisBab

It’s also always good to solve 1/2, 1/4 or even 1/8 of the model if the geometry, supports, loads and evaluated responses allow the use of symmetry (with composites, you also have to make sure that the layup allows it).

When fixing only U2 (Y direction, which is load force direction), still on bottom edge nodes, there is still concentrated stresses. I also tried applying this same BC on a few nodes ob bottom of part mesh, but still the same result.
If I fixed U2 direction of all the nodes at bottom of part mesh (bottom horizontal edge + two left/right bottom vertical edges nodes ; see image), the stresses are now located on fillets, which is more expected (but large VM stress magnitude).
Thanks.

What are the stresses in Abaqus ? You can check different plies / section points there. And it’s possible to increase the number of section points (3 are used by default) while CalculiX always uses 2 integration points for each layer.

If you share the Abaqus .inp, I can have a closer look at it and check if there are any differences. I’m also Abaqus user.

Is this the source of the example ? https://www.youtube.com/watch?v=NIdXsNFRMDk

There are some good benchmarks in Abaqus documentation too.

With more relaxed BCs, I get below 400 MPa:

The same file converted and submitted in Abaqus shows slightly above 200 MPa.

With more layers in CalculiX (each 0.3 mm layer divided into 3 layers of 0.1 mm) to have more elements and integration points:

1 Like

Thanks for your analysis. Which kind of relaxed BC you used ?

But even if it, we still have a large difference with Abaqus (that will give to bad failure index, of course).
It seems that having more integration points through th thickness does not give significant accuracy.

Here are the CAE and INP files coming from Abaqus (R2024). I built it from scratch following the video link you mentioned.

tensile_coupon-ABQ.zip (270.3 KB)

I’ve tried a few options. Mostly fixing U2 for the edge opposite to the loaded one, then adding pseudo-symmetry (U1) to some side edges and finally preventing vertical displacement (U3) for one or more nodee.

But even with the BCs you have, the stresses at the fillets will be similar (Saint Venant’s principle). They just get lost in the colormap, but you can adjust it (e.g. set max to 400 MPa) to see them.

You could also try refining the mesh. CalculiX may need more elements in the plane to provide good results. Of course, you should especially refine it around the fillets.

1 Like

maybe some necking condition exists in model which Abaqus not consider, CalculiX use truly solid element in analysis and stress along thickness direction occurred.

I used a finder mesh (7392 elements and 22645 nodes).

I also changed my BC, putting the bottom free edge (horizontal line) blocked for U2 -load direction).
This finer mesh leads to better stress peak ( less than 400 MPa). I think it is because solid elements (generated by Calculix from shell mesh) have a better shape (hexagon elements are less thin).

But still too high compare to ABQ. It seems only interior 45deg plies show those large stresses.

With standard solids (obtained using the Thicken Shell Mesh tool):

This is one element per layer, we could try more.

1 Like

Three regular solid elements per layer:

1 Like

Thanks again for this analysis.

I am not so familiar with ‘Thickne Shell Mesh’ tool. Does it lead to generate multiple elements through the thickness for each layer (keeping same number of layers in the layup) ?
Anyway, the stress peak is unfortunately still high.
And max disp. (U2) is 0.26mm (Calculix), compared to 0.38mm with ABQ solver.

I also refined the shell mesh in Abaqus, to see impact on stress peak value, but still slighly above 200 MPa.

Maybe it is linked to different number of integration points (3 in ABQ, but 2 only in Calculix).

this can be sign Abaqus is less accurate, classical or convention shell element being used probably.

2026-03-22 16_06_11-tensile_coupon_ABQ.inp - SciTE

in CalculiX shell element with composite options activated, number of integrations double of layer. In this case three layer generates six integration point trough the thickness internally.

With this tool, you specify the total thickness and the number of layers having the same thickness. Then it extrudes the shell mesh symmetrically on both sides (unless offset is specified) to create solid element layers. Just like what CalculiX does internally, but it avoids the nonlinear (and often problematic) expansion procedure and gives you more control.

I think I have better agreement when it comes to displacement (something above 0.3), but I’ll need to check.

I checked that - set this number to 2 (using Gauss instead of Simpson integration) in Abaqus.

1 Like

I doubt it’s Abaqus inaccuracy (especially with a refined mesh), but we could try continuum shell elements just in case.

It might be better to find a benchmark problem with a validated reference solution (such as NAFEMS benchmarks or other examples from Abaqus documentation comparable with something).

2 Likes