# RBE3 implementation

**URL:** <https://prepomax.discourse.group/t/rbe3-implementation/3596>\
**Category:** General Questions\
**Created:** [August 7, 2026, 1:07pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596 "2026-08-07T13:07:19Z")\
**Posts on this page:** 13\
**Page:** 2

<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:** [August 11, 2026, 8:36am UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/21 "2026-08-11T08:36:31Z")

</div>

So `*DISTRIBUTING COUPLING` indeed works properly with shells and it’s just a matter of setting the weights. For now, `*COUPLING` with `*DISTRIBUTING` seems unusable with shells, but maybe there are some workarounds. As I said above, I posted on the CalculiX forum to discuss it since it’s another limitation on the solver’s side: [Coupling constraints with shells - Analysis issues - CalculiX (official versions are on www.calculix.de, the official GitHub repository is at https://github.com/Dhondtguido/CalculiX).](https://calculix.discourse.group/t/coupling-constraints-with-shells/4084)

---

<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:** [August 11, 2026, 9:16am UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/22 "2026-08-11T09:16:57Z")

</div>

This is CASE 3 In Case they are useful as reference. Good agreement too.

 ![imagen](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/7/7f512b71d221ef52da56410d47eb62615028e4a0.png)

 ![imagen](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/0/0302f9f122b03c48ac2f8c1b497fb25bef9dc5d3.png)

```auto
*NODE
1,0,-0.127,0
2,0.254,-0.127,0
3,0.254,0.127,0
4,0,0.127,0
5,0.508,-0.127,0
6,0.762,0.127,0
7,0.762,-0.127,0
8,0.381,0,0
9,0.508,0.127,0
10,0.0635,-0.127,0
11,0.127,-0.127,0
12,0.1905,-0.127,0
13,0,-0.0635,0
14,0.0635,-0.0635,0
15,0.127,-0.0635,0
16,0.1905,-0.0635,0
17,0.254,-0.0635,0
18,0,0,0
19,0.0635,0,0
20,0.127,0,0
21,0.1905,0,0
22,0.254,0,0
23,0,0.0635,0
24,0.0635,0.0635,0
25,0.127,0.0635,0
26,0.1905,0.0635,0
27,0.254,0.0635,0
28,0.0635,0.127,0
29,0.127,0.127,0
30,0.1905,0.127,0
31,0.5715,-0.127,0
32,0.635,-0.127,0
33,0.6985,-0.127,0
34,0.508,-0.0635,0
35,0.5715,-0.0635,0
36,0.635,-0.0635,0
37,0.6985,-0.0635,0
38,0.762,-0.0635,0
39,0.508,0,0
40,0.5715,0,0
41,0.635,0,0
42,0.6985,0,0
43,0.762,0,0
44,0.508,0.0635,0
45,0.5715,0.0635,0
46,0.635,0.0635,0
47,0.6985,0.0635,0
48,0.762,0.0635,0
49,0.5715,0.127,0
50,0.635,0.127,0
51,0.6985,0.127,0
*ELEMENT,TYPE=S4
1,26,30,3,27
2,47,51,6,48
3,1,13,14,10
4,10,14,15,11
5,11,15,16,12
6,12,16,17,2
7,13,18,19,14
8,14,19,20,15
9,15,20,21,16
10,16,21,22,17
11,18,23,24,19
12,19,24,25,20
13,20,25,26,21
14,21,26,27,22
15,23,4,28,24
16,24,28,29,25
17,25,29,30,26
18,5,34,35,31
19,31,35,36,32
20,32,36,37,33
21,33,37,38,7
22,34,39,40,35
23,35,40,41,36
24,36,41,42,37
25,37,42,43,38
26,39,44,45,40
27,40,45,46,41
28,41,46,47,42
29,42,47,48,43
30,44,9,49,45
31,45,49,50,46
32,46,50,51,47
*NSET,NSET=NSET_DCOUP
2
3
5
8
9
17
22
27
34
39
44
*NSET,NSET=NODE_SELECTION
2
3
5
9
17
22
27
34
39
44
*ELSET,ELSET=DEFAULT
2
3
4
5
7
8
9
11
12
13
15
16
17
19
20
21
23
24
25
27
28
29
31
32
*ELSET,ELSET=COMPONENT
1
6
10
14
18
22
26
30
*SURFACE,NAME=LEFT
3,S3
7,S3
11,S3
15,S3
*SURFACE,NAME=RIGHT
2,S5
21,S5
25,S5
29,S5
*SURFACE,NAME=INNER_LEFT
1,S5
6,S5
14,S5
10,S5
*SURFACE,NAME=INNER_RIGHT
18,S3
22,S3
30,S3
26,S3
*SURFACE,NAME=SSET_DCOUP
1,S5
6,S5
10,S5
14,S5
18,S3
22,S3
26,S3
30,S3
*MATERIAL,NAME=MATERIAL
*ELASTIC,TYPE=ISOTROPIC
68947572931.68,0.3
*DENSITY
7850
*MATERIAL,NAME=MATERIAL(2)
*ELASTIC,TYPE=ISOTROPIC
68947572931.68,0.28
*DENSITY
7850
*SHELL SECTION,ELSET=DEFAULT,MATERIAL=MATERIAL
0.00508
*SHELL SECTION,ELSET=COMPONENT,MATERIAL=MATERIAL(2)
0.00508
*BOUNDARY
1,2,,0
1,1,,0
1,3,,0
1,5,,0
4,2,,0
4,1,,0
4,3,,0
4,5,,0
6,2,,0
6,1,,0
6,3,,0
6,5,,0
7,2,,0
7,1,,0
7,3,,0
7,5,,0
8,3,,0
13,1,,0
13,2,,0
13,5,,0
18,1,,0
18,2,,0
18,5,,0
23,1,,0
23,2,,0
23,5,,0
38,1,,0
38,2,,0
38,5,,0
43,1,,0
43,2,,0
43,5,,0
48,1,,0
48,2,,0
48,5,,0
*AMPLITUDE,NAME=Ax_8_1
0,0
1,444.8221615261
*ELEMENT,TYPE=DCOUP3D
40,8
*ELSET,ELSET=E1
40
*DISTRIBUTING COUPLING,ELSET=E1
3,1
27,2
22,3
17,2
2,1
9,1
44,2
39,3
34,2
5,1
8,15
**3,-0.25
**27,-0.5
**22,-0.5
**17,-0.5
**2,-0.25
**9,-0.25
**44,-0.5
**39,-0.5
**34,-0.5
**5,-0.25
**8,4
*STEP,NLGEOM=YES,INC=100,AMPLITUDE=STEP
*STATIC
0.1,1,0,0.1
*CLOAD,AMPLITUDE=Ax_8_1
8,1,1
*NODE FILE,GLOBAL=YES,OUTPUT=2D
U,RF
*EL FILE
S,NOE,E,ENER
*CONTACT FILE
CDIS,CSTR
*END STEP

```

Deactivated weight on the inp refer to the surface based distribution.

---

<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:** [August 11, 2026, 9:30am UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/23 "2026-08-11T09:30:17Z")

</div>

@Matej Perhaps PrePoMax could have `*DISTRIBUTING COUPLING` (helpful since the surface-based version doesn’t work with shells) implemented with some predefined weight distributions automatically handled internally. Like the 3 options (linear, quadratic, etc.) in Abaqus listed [here](https://prepomax.discourse.group/t/rbe3-implementation/3596/13). But it might be better to make (or split) a new thread in Feature Requests.

---

<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:** [August 11, 2026, 12:05pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/24 "2026-08-11T12:05:47Z")

</div>

as i understand, distributing coupling keyword is low level of coupling type distributing and lack of rotational moment loads feature. it seems current feature of coupling type distributing in PrePoMax not to be mixed or replaced by distributing coupling for only specific case of translation loads problem in shell of CalculiX. When some work around using weight factors applied, may not really needed since surface/edge traction is available internally in PrePoMax and it can be extended to support rotational moment loads.

---

<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:** [August 11, 2026, 12:13pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/25 "2026-08-11T12:13:32Z")

</div>

Both types of distributing couplings have some limitations in terms of what can be applied and to which DOFs

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

> **[Different coupling constraints and their limitations](https://calculix.discourse.group/t/different-coupling-constraints-and-their-limitations/2586/3)**
>
> Just adding a short summary of the most important aspect (what can be applied to the reference node):

So it would be good to have a switch in PrePoMax.

---

<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:** [August 11, 2026, 12:39pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/26 "2026-08-11T12:39:37Z")

</div>

separated feature still okay probably, it can be useful and more appropriates using Dcoup3D element as hinged connector instead of playing around in weight factor to fit load or displacement (translation/rotation) compared to coupling type distributing/kinematic currently available.

---

<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:** [August 11, 2026, 12:47pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/27 "2026-08-11T12:47:37Z")

</div>

The simplest version would be a switch and automatically determined weight factors. This would be useful just to bypass the limitations of surface-based coupling. Ultimately, it could be a separate advanced coupling type with a way to set weights manually, but I guess that it would be rarely used and GUI wouldn’t add much with respect to using Keyword Editor.

---

<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:** [August 11, 2026, 2:31pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/28 "2026-08-11T14:31:54Z")

</div>

indeed, event limited to translational only it’s have similarly with surface traction available internally and user may expect to be extended to support rotational also for both load and displacement. Direct assigned force or displacement as nodal by precalculated of weight distribution instead of using coupling feature can be useful in defining load follower or not, eliminating conflict and convergence issue in large deformations analysis.

---

<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:** [August 11, 2026, 2:43pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/29 "2026-08-11T14:43:12Z")

</div>

Couplings + Nlgeom is also interesting, but was discussed a few times on the CalculiX forum. Anyway, we got the proposed implementation so maybe let’s stop on that for now and wait for eventual feedback regarding distributing couplings with shells on the ccx forum.

---

<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:** [August 12, 2026, 1:16pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/30 "2026-08-12T13:16:42Z")

</div>

probably it’s a limitation of CalculiX due to beam or shell expansion and knots. General constraint using equation can be a solution since using linear ones as i tested in beam end release and point mass (rigid links) available in their forum.

---

<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:** [August 12, 2026, 1:22pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/31 "2026-08-12T13:22:48Z")

</div>

There might be a different reason here since kinematic coupling is nonlinear eliminative constraint like rigid body, while distributing couplings are enforced in a completely different way. Perhaps I will ask Guido if he doesn’t reply on the CalculiX forum.

---

<div class="post-metadata">

**Author:** ![oneSable](https://avatars.discourse-cdn.com/v4/letter/o/59ef9b/32.png) [@oneSable](https://prepomax.discourse.group/u/oneSable)\
**Post date:** [September 5, 2026, 4:17pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/32 "2026-09-05T16:17:32Z")

</div>

Reading this as a migration question rather than an implementation one: since the distributing coupling here takes translational loads only, a source model that applied a moment at that reference node cannot be carried over at all. When a model you had to move used a moment at such a node, what did you replace it with?

---

<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:** [September 5, 2026, 4:20pm UTC](https://prepomax.discourse.group/t/rbe3-implementation/3596/33 "2026-09-05T16:20:53Z")

</div>

Check the table in this reply and the CalculiX forum thread referenced there: [RBE3 implementation - #25 by FEAnalyst](https://prepomax.discourse.group/t/rbe3-implementation/3596/25)

PrePoMax has `*COUPLING` with `*DISTRIBUTING`, so you can apply moment, but not prescribed rotation BC. For that, you could use `*COUPLING` with `*KINEMATIC` or `*RIGID BODY` (both also available in PrePoMax), but they make the surface rigid.

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

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

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

[Previous page](https://prepomax.discourse.group/t/rbe3-implementation/3596.md?page=1)
