# 2d steady state heat transfer

**URL:** <https://calculix.discourse.group/t/2d-steady-state-heat-transfer/2873>\
**Category:** Model setup\
**Created:** [September 14, 2025, 9:32pm UTC](https://calculix.discourse.group/t/2d-steady-state-heat-transfer/2873 "2025-09-14T21:32:44Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![JulesMazari](https://avatars.discourse-cdn.com/v4/letter/j/94ad74/32.png) [@JulesMazari](https://calculix.discourse.group/u/JulesMazari)\
**Post date:** [September 14, 2025, 9:32pm UTC](https://calculix.discourse.group/t/2d-steady-state-heat-transfer/2873/1 "2025-09-14T21:32:44Z")

</div>

Hi,

I just starting to learn & use CalculiX. The problem I want to solve is a very simple 2d steady state heat transfer problem.

From gmsh, I exported the mesh as inp file and I start completing the file to describe the problem, but when running calculix I get the following error message :

```auto
*ERROR in gen3delem: first thickness
        in node 1 of element 1
        is zero

```

I’d really appreciate any help to fix the problem

The files can be found here : [drive](https://drive.google.com/drive/folders/1MKmXCjR9G6fjstE8qLZO9KxKyGtZ5UCQ?usp=sharing)

Thanks.

PS : I’m not sure about the element types (T3D2 & CPS3) for 2d thermal

---

<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:** [September 15, 2025, 6:58am UTC](https://calculix.discourse.group/t/2d-steady-state-heat-transfer/2873/2 "2025-09-15T06:58:53Z")

</div>

Do you really need those truss (T3D2) elements or are they only leftovers from mesh export without physical groups in Gmsh? If you need them, you have to assign a solid section to them as well. But you shouldn’t combine 2D plane stress and 3D truss elements in the same model.

If those truss elements serve as lines for boundary condition assignment, they should be replaced by node sets on the corresponding edges of plane stress elements.

---

<div class="post-metadata">

**Author:** ![JulesMazari](https://avatars.discourse-cdn.com/v4/letter/j/94ad74/32.png) [@JulesMazari](https://calculix.discourse.group/u/JulesMazari)\
**Post date:** [September 15, 2025, 9:33am UTC](https://calculix.discourse.group/t/2d-steady-state-heat-transfer/2873/3 "2025-09-15T09:33:45Z")

</div>

Hello @Calc_em

I just exported the inp file from Gmsh. What element type should I use for triangle (3 dof) and line ( 2 dof) for a 2d heat simulation ?

---

<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:** [September 15, 2025, 9:49am UTC](https://calculix.discourse.group/t/2d-steady-state-heat-transfer/2873/4 "2025-09-15T09:49:26Z")

</div>

> [@JulesMazari](#):
>
> What element type should I use for triangle (3 dof) and line ( 2 dof) for a 2d heat simulation ?

CPS3 is ok, but you should use 2D truss (T2D2) instead of 3D (T3D2) one.

---

<div class="post-metadata">

**Author:** ![JulesMazari](https://avatars.discourse-cdn.com/v4/letter/j/94ad74/32.png) [@JulesMazari](https://calculix.discourse.group/u/JulesMazari)\
**Post date:** [September 15, 2025, 9:59am UTC](https://calculix.discourse.group/t/2d-steady-state-heat-transfer/2873/5 "2025-09-15T09:59:12Z")

</div>

> [@Calc\_em](#):
>
> T2D2

I just updated the inp file (in the drive also), i still get the same error.

I’m not sure to get what you mean “they should be replaced by node sets” ? I can’t define a node set using element line names. I’m lost…

---

<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:** [September 15, 2025, 10:14am UTC](https://calculix.discourse.group/t/2d-steady-state-heat-transfer/2873/6 "2025-09-15T10:14:35Z")

</div>

> [@JulesMazari](#):
>
> I just updated the inp file (in the drive also), i still get the same error.

Because you also have to assign a solid section to those line (truss) elements.

> [@JulesMazari](#):
>
> I’m not sure to get what you mean “they should be replaced by node sets” ? I can’t define a node set using element line names. I’m lost…

My suggestion applies only if you use line (truss) elements just to apply boundary conditions or loads to 2D (plane stress) elements. In such a case, you could remove the line elements and define node sets or surfaces from nodes or faces belonging to boundaries of 2D elements using a preprocessor. In Gmsh, I guess you would have to use physical groups and maybe SaveGroupsOfNodes to avoid writing line elements not needed by CalculiX (other solvers may need it so that’s the major difference between them and CalculiX).
