# Thermo-mechanical modeling using 2 modelling (pure thermal + mechanical)

**URL:** <https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453>\
**Category:** General Questions\
**Created:** [February 10, 2025, 8:31am UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453 "2025-02-10T08:31:02Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Paul18fr](https://avatars.discourse-cdn.com/v4/letter/p/35a633/32.png) [@Paul18fr](https://prepomax.discourse.group/u/Paul18fr)\
**Post date:** [February 10, 2025, 8:31am UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/1 "2025-02-10T08:31:02Z")

</div>

Hi,

In the following test case, i’m using 2 files:

1. pure thermal simulation
2. mechanical calculation including the thermal expansion

The temperature increases from the room temperature up to 600°C between t=1s to t=2s; i’m not figuring out why in the mechanical simulation, T=600°C at 1s =\> what i’m missing (maybe be in the step definition)?

Thanks

Paul

Following screenshots follows data from the “spy” node

 ![screenshot_purethermal](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/f/f876ee2669c56db4a4a733c7a2dc9a45f4fa6423.png)  
 ![screenshot_thermomeca](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/8/8622752fb60957870a2f9cfe0549acb7d8ea2ca2.png)

[pure\_thermal.pmx](https://prepomax.discourse.group/uploads/short-url/aKyN30dO7kwr0lK2zoNTG3ASlWH.pmx) (3.7 MB)  
[thermo-mechanical.pmx](https://prepomax.discourse.group/uploads/short-url/kMEMqhjaGVl3tD2UIhpfuiwfpZF.pmx) (7.5 MB)

---

<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:** [February 10, 2025, 10:18am UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/2 "2025-02-10T10:18:06Z")

</div>

I guess CalculiX wants to apply 600°C at the end of the step. Your static step ends at 1 s. If you extend it to last 2 or 3 s then 600°C will be applied at 2 or 3 s:

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

P.S. I would test it on a simple cube first.

---

<div class="post-metadata">

**Author:** ![Paul18fr](https://avatars.discourse-cdn.com/v4/letter/p/35a633/32.png) [@Paul18fr](https://prepomax.discourse.group/u/Paul18fr)\
**Post date:** [February 10, 2025, 10:46am UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/3 "2025-02-10T10:46:12Z")

</div>

But as in the thermal modelling, i want to have 20°C at t=1s …

---

<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:** [February 10, 2025, 1:07pm UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/4 "2025-02-10T13:07:26Z")

</div>

> [@FEAnalyst](#):
>
> P.S. I would test it on a simple cube first.

I did such a simple test and compared it with Abaqus. The behavior is different. Abaqus maps the whole time variation of the temperature and sets 20°C at 1 s while CalculiX simply takes the value from the last increment (there’s no BINC parameter here) and applies it to the last increment of the mechanical analysis.

---

<div class="post-metadata">

**Author:** ![Paul18fr](https://avatars.discourse-cdn.com/v4/letter/p/35a633/32.png) [@Paul18fr](https://prepomax.discourse.group/u/Paul18fr)\
**Post date:** [February 10, 2025, 6:35pm UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/5 "2025-02-10T18:35:49Z")

</div>

whatever i’m doing, I cannot apply the correct loading at 20°C 😫 in practice the preloadinf is performed at 600°c and not 20°C 😱

I also testec “AMPLITUDE=STEP” feature to “\*Step”, but it failed as well (.inp file run with ccx in standalone)

Link (available until 03/12/2025): [link](https://transfert.free.fr/ayVuETA)

---

<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:** [February 10, 2025, 7:55pm UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/6 "2025-02-10T19:55:10Z")

</div>

Do you really need that thermal analysis here ? You could apply the temperature directly in the mechanical analysis:

```auto
*Amplitude, Name=amp
0, 20, 1, 20, 2, 600
*Temperature, Amplitude=amp 
All_nodes, 1

```

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [February 10, 2025, 8:40pm UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/7 "2025-02-10T20:40:59Z")

</div>

If I understand correctly, would it help to split the step into two? Step1 until 1s/20°C, Step2 until 10s/600°C?

---

<div class="post-metadata">

**Author:** ![Paul18fr](https://avatars.discourse-cdn.com/v4/letter/p/35a633/32.png) [@Paul18fr](https://prepomax.discourse.group/u/Paul18fr)\
**Post date:** [February 10, 2025, 9:20pm UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/8 "2025-02-10T21:20:41Z")

</div>

I tried to split into 2 steps … but with no sucess after several trials; i’m missing something …

---

<div class="post-metadata">

**Author:** ![Paul18fr](https://avatars.discourse-cdn.com/v4/letter/p/35a633/32.png) [@Paul18fr](https://prepomax.discourse.group/u/Paul18fr)\
**Post date:** [February 11, 2025, 7:43am UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/9 "2025-02-11T07:43:54Z")

</div>

Hi

If i set aside thes issue in using thermal .frd files, i’ve modified the model using “Coupled temperature-displacement step”; i think all inputs have been defined (including the gap conductance) but the FEA does not start and i do not understand why?

I’ve the following warning but i’m wondering if the issue comes from: any suggestion?

```auto
 *WARNING in calinput: no conductivity 
          constants were assigned to material SURFACE_INTERACTION
          in a thermo(mechanical) calculation

```

[thermo-mechanical3.pmx](https://prepomax.discourse.group/uploads/short-url/runAHue9ftvoubdidh8GF0bhBVF.pmx) (685.7 KB)

Thanks

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [February 11, 2025, 8:55am UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/10 "2025-02-11T08:55:17Z")

</div>

hmm… i never tried this before but I have the feeling that no matter what step number is entered for the temperature field, always the results of the first step will be used.  
At least I would have expected an error if the entered step number cannot be found in the .frd file:

 ![t](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/b/bfbd346b647a0238ffe57eabde177ced3e06a8f7.png)

---

<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:** [February 11, 2025, 9:02am UTC](https://prepomax.discourse.group/t/thermo-mechanical-modeling-using-2-modelling-pure-thermal-mechanical/2453/11 "2025-02-11T09:02:25Z")

</div>

There’s a generic error message “Job failed - no results exist”. It usually means some modeling error. I would simplify the model to find which feature causes it. As I said before, such tests should be done on simple models first before proceeding to the actual usecase.

Btw. your pre-tension is applied incorrectly. It should be applied to interior face of a bolt split into two parts with boundary layer defined: [https://www.youtube.com/watch?v=7ucoBTqCcWE](https://www.youtube.com/watch?v=7ucoBTqCcWE)
