Compression only support

Hi everybody,
It’s my first post, and I hope I don’t screw up.
I don’t know if Calculix allows to use “Compression only support” like constraint.
I know it’s possible with Code Aster as a contact type and non-linear behavior. Other proprietary software such as Ansys, for example, also allow it.
If Calculix allows it, it would be possible to incorporate it into Prepomax
Thank you very much


CalculiX supports tension-only and compression-only materials. The definition for the latter looks like this:

Young's_modulus, max_allowed_tension

For now, you can define this using the keyword editor.

A layer of such a material with a very high Young’s modulus could serve as a compression-only support for the structure.

Hi @VictorJota , @FEAnalyst

I have done this with calculix but slightly different. I prepared a suporting base (just one element per thickness solid) and set up contact betweeen surfaces that allows separation. Analisys should be nonlinear.

1 Like

A base plate with a very stiff compression-only material bonded to the actual structure would be one way to go. Another way would be to model contact with a rigid foundation like you did. And there are also classic gap elements but those require keyword edits too.

it’s possible with spring element by activated nonlinear keywords.

this can be an improvement of PrePoMax spring support features currently available.

This limitation of nonlinear springs can be problematic here:

The elongation can be negative, however, it should not be smaller than the initial length of the spring.

right, t can not easily to set and run, need some adjustment but it seems to be possible. I’ll look back of my personal test examples were it done in several years before.

Hey, just quickly want to share my experience:

In the beginning I also tried with the nonlinear springs through keyword editiing. Exactly regarding the remark in the manual I couldn’t build up enough trust after playing around with it for some time. After some reading I discovered the GAP Element which worked really good and I was able to set it up quite fast. The idea of “A base plate with a very stiff compression-only material bonded to the actual structure” is really good to know. Thanks for pointing it out. I will try it next time. From my experience I would recommend to avoid contact where possible…

Would be great to have one or both of these options (tension-only, compression-only or gap elements) in one of the next PrePoMax releases! As there is already a material library probably the first options is easy to integrate?!



Thanks, Hyp, that’s new to me.
Seems like the GAPUNI elements used to set up the gap condition are internally simulated by a nonlinear spring of the same type used in node-to-face contact with a linear pressure-overclosure curve.

Only compression is most of the times challenging. Mainly because of the doubts on how to apply the rest of the BC.

@FEAnalyst . In the approach with only compression material my main concern is that the compression may emerge in the tangential direction which maybe would not allow the model to slip on top of the only compression support. In a test of a simple T bending on top of an only compression material, ¿Are you able to make the T slip like in the picture (Right interface corner)?

I was thinking about supporting the GAP element boundary condition for this purpose a while ago but did not have enough time to test how it works. What is the computational cost of such an approach?

1 Like

Hello Matej, I would like to propose a collaboration between the users in this forum and PrePoMax development. Is there any way we can help you so you become less overloaded? In this case, for example, we could test the GAP element and bring you some performance reports so you could decide whether or not to implement it, the limitations involved, etc.

I know your time is very scarce and precious for the development of this community, and not just me but many people would like to help you in some way. If successful, we could extend this collaboration to other feature requests as well. What do you think?

GAP element is good alternate even not the same behavior as compression only spring. These assumption are in contact with infinite stiffness.

some pre calculation are needed to define element local axes, can be cumbersome for non alignment axes each others. two node spring element does not required the pre calculation, make it less complicated.

I will try to do some testing, possibly comparing with other approaches to compression-only supports that were mentioned in this thread. The performance of GAP elements should be similar or somewhat better than that of regular contact since they use equivalent formulation.

Very nice, @FEAnalyst. In many cases, I think we could help Matej when it comes to prospecting new features.

I would be very happy for such help. Any help is always welcome and appreciated no matter what it is about. It would be useful when support for features is planned and the same features are unknown to me and thus would require testing from my side.

So maybe the first thig I should do is to create a road map of the features to be added or developed in the feature versions of the PrePoMax. Then I could determine where exactly I would need some help and ask for it.

So maybe we would need a new category for that?


Such roadmap could also have a form of a text file in the source code repository. When it comes to putting it on the forum, adding new category is a good idea but I would suggest creating a pinned post in the Feature Requests subforum so that everyone can see a list of what is already planned before asking for new features. Posts with requests for help/testing could be placed in the current category as well (like it was with hydrostatic and imported pressure features where we discussed the development).


I think this roadmap would be useful for this purpose.

I think FEAnalyst’s idea is a good one, we could use this category to centralize the help and tests in dedicated threads.

1 Like

For now, I made a simple test with a single C3D8 element. Its bottom nodes were fixed directly in one case and via compression-only GAP elements in the other case. The cube was subjected to compression (using prescribed displacement applied to the top nodes). Interestingly, the analysis with gap elements took around 2.4 times longer to complete. But it’s still likely the least computationally expensive approach to model compression-only support in CalculiX.

I will check with more solid elements so that gaps add relatively less DOFs.

¿How long did it take in sec?

It varies with each run, now it’s closer to 2.1 times longer for gap elements (around 0.141 s and 0.303 s). Sometimes it almost reaches 3 times longer. But I will try with larger model and maybe variation will be smaller.