# Compression only support

**URL:** <https://prepomax.discourse.group/t/compression-only-support/558>\
**Category:** Feature Requests\
**Created:** [November 18, 2022, 8:55am UTC](https://prepomax.discourse.group/t/compression-only-support/558 "2022-11-18T08:55:36Z")\
**Posts on this page:** 19\
**Page:** 2

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [November 24, 2022, 8:02pm UTC](https://prepomax.discourse.group/t/compression-only-support/558/21 "2022-11-24T20:02:24Z")

</div>

Fot testing the time of the simulation I would use a larger model. But i know it takes time to prepare it. We should also not compare it to a normal boudary condition but to another compression only boundary condition like contact. I am also wondering if transversal displacement is possible.

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [November 24, 2022, 8:34pm UTC](https://prepomax.discourse.group/t/compression-only-support/558/22 "2022-11-24T20:34:49Z")

</div>

I tried with a bigger model (cube consisting of 200 C3D8R elements) and the difference is much lower. On average, analysis with gap elements is just 1.04 times slower. In some runs it’s even a bit faster.

I plan to compare it with contact with a rigid surface as well but for the first tests I wanted to see how gap elements themselves increase the calculation time and thus how many times longer the analysis will take if a user replaces standard fixed support with compression-only support.

---

<div class="post-metadata">

**Author:** ![ANYS](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/anys/32/7737_2.png) [@ANYS](https://prepomax.discourse.group/u/ANYS)\
**Post date:** [November 24, 2022, 9:16pm UTC](https://prepomax.discourse.group/t/compression-only-support/558/23 "2022-11-24T21:16:51Z")

</div>

As a reference I have set up a model with contact + plasticity:

-Slave surface 140 nodes  
-Master surface 187 nodes

Overall model :  
nodes: 878  
elements: 381

CalculiX Time: 4.81 sec

¿Is it possible to display the results in a different unit (MPa) than the one chosen at the beginning? Pa is not very friendly.

@Matej .The problem I see with the contact approach is that I’m not sure if you can automate this. You would need to generate a support surface against which to build the contact ¿isn’t it? . ¿Is that possible?.

> **[Only Compression PE.avi and 1 more file](https://wetransfer.com/downloads/df1f69c05073c0f09b796fc9bf823d1f20221124211546/6f0034)**
>
> 2 files sent via WeTransfer, the simplest way to send your files around the world

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [November 24, 2022, 9:31pm UTC](https://prepomax.discourse.group/t/compression-only-support/558/24 "2022-11-24T21:31:37Z")

</div>

I added contact with a rigid shell (1 or 4 S8 elements) to my cube model. I checked 2 different contact formulations (surface-to-surface with hard behavior and node-to-surface with linear behavior). On average, gap elements are 1.5 - 1.6 times faster than contact.

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [November 25, 2022, 7:32am UTC](https://prepomax.discourse.group/t/compression-only-support/558/25 "2022-11-25T07:32:13Z")

</div>

I was hoping the GAP elements would be faster. That is a good sign. Now I am only worried if they allow a transversal/slip movement which would be frictionless, I guess.

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [November 25, 2022, 7:37am UTC](https://prepomax.discourse.group/t/compression-only-support/558/26 "2022-11-25T07:37:52Z")

</div>

> [@ANYS](#):
>
> ¿Is it possible to display the results in a different unit (MPa) than the one chosen at the beginning? Pa is not very friendly.

No, PrePoMax doesn’t convert the values in the .frd files. It assumes a selected unit system and adds appropriate unit abbreviations to the .frd values.

> [@ANYS](#):
>
> The problem I see with the contact approach is that I’m not sure if you can automate this. You would need to generate a support surface against which to build the contact ¿isn’t it? . ¿Is that possible?.

I would not want to go with this approach. It would be possible to create a shell model of the surfaces selected for the boundary condition, but too much can go wrong if contacts are used for an inexperienced user. I want to add a method which is robust enough that the user can set it up and not worry about it later. The contact approach can always be done manually.

---

<div class="post-metadata">

**Author:** ![ANYS](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/anys/32/7737_2.png) [@ANYS](https://prepomax.discourse.group/u/ANYS)\
**Post date:** [November 25, 2022, 8:04am UTC](https://prepomax.discourse.group/t/compression-only-support/558/27 "2022-11-25T08:04:37Z")

</div>

> [@Matej](#):
>
> too much can go wrong

You are right. Only compression is often tricky and hard to set up. Would be nice to have other option.

@FEAnalyst . Seems you are progressing in the right direction. I’m curious how this GAPUNI elements are set up.  
👍

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [November 25, 2022, 8:43am UTC](https://prepomax.discourse.group/t/compression-only-support/558/28 "2022-11-25T08:43:52Z")

</div>

> [@Matej](#):
>
> Now I am only worried if they allow a transversal/slip movement which would be frictionless, I guess.

They impose constraints only in one direction so the model is free to move tangentially with no stresses. I tested it as well.

> [@ANYS](#):
>
> I’m curious how this GAPUNI elements are set up.

It’s similar to spring elements:

```auto
*NODE
number, coordinate_1, coordinate_2, coordinate_3
*ELEMENT, TYPE=GAPUNI, ELSET=elset_name
number, node_1, node_2
*GAP, ELSET=elset_name
initial_clearance, gap_direction_1, gap_direction_2, gap_direction_3, , compression_stiffness, tensile_force

```

Initial clearance will typically be zero, gap direction is specified using 3 components and stiffnesses can be set to extreme values (very high for compression and very low for tension) to simulate compression-only support. Gap elements connect the nodes belonging to the model’s face being supported with additional “ground” nodes. The latter will typically have the same coordinates as the former.

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [November 25, 2022, 9:56am UTC](https://prepomax.discourse.group/t/compression-only-support/558/29 "2022-11-25T09:56:39Z")

</div>

It seems the code of GAP element has been changes from previous versions. More useful since the stiffness can be set from default 10^12 in compression and 10^-3/-infinite in tension

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [November 25, 2022, 1:18pm UTC](https://prepomax.discourse.group/t/compression-only-support/558/31 "2022-11-25T13:18:02Z")

</div>

> [@FEAnalyst](#):
>
> They impose constraints only in one direction so the model is free to move tangentially with no stresses. I tested it as well.

That is great. I read about it in the manual but was unsure how it works.

> [@FEAnalyst](#):
>
> gap direction is specified using 3 components

I assume this direction does not change during the analysis, so it is useful only for small displacements on arbitrary geometry or larger displacements on a plane.

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [November 25, 2022, 1:48pm UTC](https://prepomax.discourse.group/t/compression-only-support/558/32 "2022-11-25T13:48:35Z")

</div>

> [@Matej](#):
>
> I assume this direction does not change during the analysis

Yes, the direction is fixed in space. Also in Abaqus.

---

<div class="post-metadata">

**Author:** ![arnie](https://avatars.discourse-cdn.com/v4/letter/a/ba9def/32.png) [@arnie](https://prepomax.discourse.group/u/arnie)\
**Post date:** [June 26, 2023, 11:27am UTC](https://prepomax.discourse.group/t/compression-only-support/558/33 "2023-06-26T11:27:43Z")

</div>

Hi all,

I have read the above GAP Keyword function and understood most, but just have a couple queries on how to apply it practically:

1. Do we need use both the \*NODE and the \*GAP Keywords (see below)?

2. If so, could someone elaborate a little more on what the \*NODE is for ? This part is a little confusing to me.

3. Then, if I have a common book shelf bracket that is bolted against wall, do I need to model the wall surface too OR is just the bracket back face (assigned in the ELSET) needed ?

![image](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/0/067dec29343379f60e0e8434ef394d71af84d16e.png)

 ![image](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/c/c58f76072561e017617cd272410d55bed9087626.png)

Otherwise, if a simple example could be shared in a .pmx file, that would be very usefule.

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [June 26, 2023, 11:43am UTC](https://prepomax.discourse.group/t/compression-only-support/558/34 "2023-06-26T11:43:43Z")

</div>

> [@arnie](#):
>
> - Do we need use both the \*NODE and the \*GAP Keywords (see below)?
> - If so, could someone elaborate a little more on what the \*NODE is for ? This part is a little confusing to me.

Yes, \*NODE is necessary because the GAP elements are defined just like other element types - based on nodes. The \*NODE keyword is used to define the nodes that form the element. So \*NODE defines nodes, \*ELEMENT defines elements of a particular type with those nodes and \*GAP serves as a property definition (like \*SOLID SECTION for solid elements).

> [@arnie](#):
>
> Then, if I have a common book shelf bracket that is bolted against wall, do I need to model the wall surface too OR is just the bracket back face (assigned in the ELSET) needed ?

The purpose of this approach with GAP elements is to avoid having to include rigid walls in contact with the model. But you will need GAP elements for all nodes that would normally be in contact with the wall so it can be really tedious unless some automation is introduced.

---

<div class="post-metadata">

**Author:** ![arnie](https://avatars.discourse-cdn.com/v4/letter/a/ba9def/32.png) [@arnie](https://prepomax.discourse.group/u/arnie)\
**Post date:** [June 26, 2023, 11:52am UTC](https://prepomax.discourse.group/t/compression-only-support/558/35 "2023-06-26T11:52:38Z")

</div>

Ahh, OK this helps. Thank you @FEAnalyst

In my example then it would be easier to model the wall as a very rigid component, perhaps one element thick, as proposed above by others.

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [June 26, 2023, 12:00pm UTC](https://prepomax.discourse.group/t/compression-only-support/558/36 "2023-06-26T12:00:41Z")

</div>

> [@arnie](#):
>
> In my example then it would be easier to model the wall as a very rigid component, perhaps one element thick, as proposed above by others.

Currently (until GAP elements are implemented in the future) yes. But you can model it as a shell and apply a rigid body constraint to it.

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [November 8, 2023, 8:38pm UTC](https://prepomax.discourse.group/t/compression-only-support/558/37 "2023-11-08T20:38:41Z")

</div>

I have added support for compression-only gap constraint in the new developer version of the PrePoMax: [A developer/preview PrePoMax version v1.5.1 has been released](https://prepomax.discourse.group/t/a-developer-preview-prepomax-version-v1-5-1-has-been-released/1233)

---

<div class="post-metadata">

**Author:** ![arnie](https://avatars.discourse-cdn.com/v4/letter/a/ba9def/32.png) [@arnie](https://prepomax.discourse.group/u/arnie)\
**Post date:** [November 9, 2023, 7:01am UTC](https://prepomax.discourse.group/t/compression-only-support/558/38 "2023-11-09T07:01:38Z")

</div>

Wow ! This is wonderful. Thank you @Matej

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [October 15, 2024, 9:36am UTC](https://prepomax.discourse.group/t/compression-only-support/558/39 "2024-10-15T09:36:36Z")

</div>

Closing as completed.

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [October 15, 2024, 9:36am UTC](https://prepomax.discourse.group/t/compression-only-support/558/40 "2024-10-15T09:36:38Z")

</div>

Closed on October 15, 2024, 9:36am UTC



[Previous page](https://prepomax.discourse.group/t/compression-only-support/558.md?page=1)
