# \*BOUNDARY on DOF 8 in a structural model silently fixes the rotation about x (DOF 4) instead of giving an error

**URL:** <https://calculix.discourse.group/t/boundary-on-dof-8-in-a-structural-model-silently-fixes-the-rotation-about-x-dof-4-instead-of-giving-an-error/4191>\
**Category:** Analysis issues\
**Created:** [October 19, 2026, 7:32am UTC](https://calculix.discourse.group/t/boundary-on-dof-8-in-a-structural-model-silently-fixes-the-rotation-about-x-dof-4-instead-of-giving-an-error/4191 "2026-10-19T07:32:14Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sandervdb](https://avatars.discourse-cdn.com/v4/letter/s/49beb7/32.png) [@Sandervdb](https://calculix.discourse.group/u/Sandervdb)\
**Post date:** [October 19, 2026, 7:32am UTC](https://calculix.discourse.group/t/boundary-on-dof-8-in-a-structural-model-silently-fixes-the-rotation-about-x-dof-4-instead-of-giving-an-error/4191/1 "2026-10-19T07:32:14Z")

</div>

**Summary**

The manual documents DOF 8 in only two places:

- as the static pressure in 3-D CFD (§6.9.19);
- as the electric potential in electromagnetic calculations (§6.9.22).

For structures, \*BOUNDARY (§7.4) lists DOFs 1–6 and 11. Internally ccx maps 8 onto its DOF 4 (§10.2.1), the slot that a structural node uses for the rotation about x.

In a structural model ccx accepts a \*BOUNDARY on DOF 8 without any message, and the result depends on the node:

- **Shell or beam node:** the rotation about x is held, or prescribed if a value is given.
- **Solid node:** the line is ignored.
- **Plane-stress, plane-strain or axisymmetric node:** ccx usually crashes. The outcome varies from run to run.

### Version

ccx 2.23 (conda-forge build pl5321h484372f\_2, macOS arm64). The DOF 8 mapping in bounadd.f is unchanged on master (9ba5d76c).

### Already reported or fixed?

Not reported: there is no matching GitHub issue (open or closed) or open pull request in Dhondtguido/CalculiX, and no calculix.discourse.group topic (searched 17 Oct 2026). Not fixed: unchanged on master. conda-forge’s latest 2.23 build (pl5321hd17ca8b\_8) gives the same results on shell, beam and solid nodes. On plane and axisymmetric nodes it no longer crashes (its fix-2d-rotational-dofs patch; open PR #200 covers that crash upstream).

### Minimal input

`job.inp`:

```auto
** One S4 shell, clamped along the edge x=0 (nodes 1 and 4), corner load at node 3.
** The rotation about x at nodes 1 and 4 is given as DOF 8 instead of DOF 4.
*NODE
1,0.,0.,0.
2,1.,0.,0.
3,1.,1.,0.
4,0.,1.,0.
*NSET,NSET=NALL
1,2,3,4
*ELEMENT,TYPE=S4,ELSET=EALL
1,1,2,3,4
*MATERIAL,NAME=STEEL
*ELASTIC
210000.,0.3
*SHELL SECTION,ELSET=EALL,MATERIAL=STEEL
0.1
*BOUNDARY
1,1,3
1,5,6
1,8
4,1,3
4,5,6
4,8
*STEP
*STATIC
*CLOAD
3,3,1.
*NODE PRINT,NSET=NALL
U
*END STEP

```

### How to run

```auto
OMP_NUM_THREADS=1 ccx job

```

### Expected

An \*ERROR, since DOF 8 has no meaning in a structural analysis. For example:

```auto
*ERROR reading *BOUNDARY: degree of freedom 8 can only be used
       in CFD and electromagnetic calculations

```

At the least there should be a \*WARNING that the line is ignored. The solution would then be that of the deck without the two DOF 8 lines: U3 = 1.569850E-02 at node 3.

### Actual

The job finishes with exit code 0 and no warning:

```auto
 STEP 1

 Static analysis was selected

 Job finished

```

The .dat file is byte-identical to that of the same deck with DOF 4 in place of DOF 8:

| \*BOUNDARY lines at nodes 1 and 4 | U3 at node 3 |
| --- | --- |
| `1,8` / `4,8` (this deck) | 1.450110E-02 |
| `1,4` / `4,4` | 1.450110E-02 |
| no DOF 4 or DOF 8 line | 1.569850E-02 |
| `1,8,8,0.01` / `4,8,8,0.01` | 1.494961E-02, the same as `1,4,4,0.01` / `4,4,4,0.01` |

Other element types:

- **B31:** DOF 8 acts like DOF 4. An L-frame of two B31 elements is a torsional mechanism without a DOF 4 constraint at its support, yet it solves when DOF 8 is given, with the same .dat as with DOF 4.
- **C3D8:** `7,8,8,0.5` on a node changes nothing and gives no message.
- **CPS4, CPE4, CAX4:** `4,8` on a node ends differently from run to run. Over 6 runs of the CPS4 deck there were 5 bus errors (exit code 138) and 1 normal finish. Other runs gave a segmentation fault (139) or `*ERROR in usermpc: mpc of type ... is unknown` (201). This is the uninitialised mean-rotation path that DOFs 4–6 take on plane nodes, which open PR #200 addresses.

### Where it goes wrong

bounadd.f maps DOF 8 onto DOF 4 for every node (master lines 109–110). It does not check the type of analysis or the elements at the node.

### Workaround

Do not use DOF 8 in structural \*BOUNDARY cards. If the rotation about x is meant, use DOF 4.

---

<div class="post-metadata">

**Author:** ![Calc\_em](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@Calc\_em](https://calculix.discourse.group/u/Calc_em)\
**Post date:** [October 19, 2026, 8:42am UTC](https://calculix.discourse.group/t/boundary-on-dof-8-in-a-structural-model-silently-fixes-the-rotation-about-x-dof-4-instead-of-giving-an-error/4191/2 "2026-10-19T08:42:34Z")

</div>

Confirmed (using official build of ccx 2.23 on Windows), needs a GitHub ticket.

```auto
CSC Conversion Time: 0.005352
Init Time: 0.064804
Factorize Time: 0.006282
Solve Time: 0.086747
Clean up Time: 0.000000
---------------------------------
Sum: 0.163185

Total PaStiX Time: 0.163185
CCX without PaStiX Time: 0.039652
Share of PaStiX Time: 0.804514
Total Time: 0.202836
Reusability: 0 : 1
________________________________________

 Using up to 1 cpu(s) for the stress calculation.

 Job finished

________________________________________

Total CalculiX Time: 0.218138
________________________________________

```

---

<div class="post-metadata">

**Author:** ![Calc\_em](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@Calc\_em](https://calculix.discourse.group/u/Calc_em)\
**Post date:** [October 19, 2026, 9:25am UTC](https://calculix.discourse.group/t/boundary-on-dof-8-in-a-structural-model-silently-fixes-the-rotation-about-x-dof-4-instead-of-giving-an-error/4191/3 "2026-10-19T09:25:46Z")

</div>

@Sandervdb This one is left to report on GitHub.

---

<div class="post-metadata">

**Author:** ![Sandervdb](https://avatars.discourse-cdn.com/v4/letter/s/49beb7/32.png) [@Sandervdb](https://calculix.discourse.group/u/Sandervdb)\
**Post date:** [October 19, 2026, 9:27am UTC](https://calculix.discourse.group/t/boundary-on-dof-8-in-a-structural-model-silently-fixes-the-rotation-about-x-dof-4-instead-of-giving-an-error/4191/4 "2026-10-19T09:27:54Z")

</div>

Sorry, I posted it on github but forgot to report it back here 😃 [\*BOUNDARY on DOF 8 in a structural model silently fixes the rotation about x (DOF 4) instead of giving an error · Issue #219 · Dhondtguido/CalculiX · GitHub](https://github.com/Dhondtguido/CalculiX/issues/219)
