# Thermomechanical simulation with umat

**URL:** <https://calculix.discourse.group/t/thermomechanical-simulation-with-umat/2437>\
**Category:** Uncategorized\
**Created:** [October 14, 2024, 8:07am UTC](https://calculix.discourse.group/t/thermomechanical-simulation-with-umat/2437 "2024-10-14T08:07:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![shroud](https://avatars.discourse-cdn.com/v4/letter/s/58956e/32.png) [@shroud](https://calculix.discourse.group/u/shroud)\
**Post date:** [October 14, 2024, 8:07am UTC](https://calculix.discourse.group/t/thermomechanical-simulation-with-umat/2437/1 "2024-10-14T08:07:51Z")

</div>

Hello,

I have a user material law for a shape memory material. It somewhat works, but I am a little bit lost on how to tell ccx what I want to do. I would like to include a heating process as slow ambient heat, and with heat that gets applied on one some subset and then transfered through the body.

The ambient heat should rise incrementaly to a set temperature. I start with an \*INITIAL CONDITION,TYPE=TEMPERATURE card for this and raise the temperature in an \*UNCOUPLED TEMPERATURE-DISPLACEMENT, STEADY STATE - Step to my set temperature. I use the \*BOUNDARY-card for this.  
However, this does not look quite right… Do I need a umatht.f in this case, even If I only want to use the default heat transfer laws already implemented?

---

<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 14, 2024, 8:24am UTC](https://calculix.discourse.group/t/thermomechanical-simulation-with-umat/2437/2 "2024-10-14T08:24:07Z")

</div>

> [@shroud](#):
>
> I have a user material law for a shape memory material.

@lastsolidbender might be interested.

> [@shroud](#):
>
> Do I need a umatht.f in this case, even If I only want to use the default heat transfer laws already implemented?

umatht.f subroutine is needed only when modeling custom thermal constitutive behavior of the material.

---

<div class="post-metadata">

**Author:** ![shroud](https://avatars.discourse-cdn.com/v4/letter/s/58956e/32.png) [@shroud](https://calculix.discourse.group/u/shroud)\
**Post date:** [October 31, 2024, 2:35pm UTC](https://calculix.discourse.group/t/thermomechanical-simulation-with-umat/2437/3 "2024-10-31T14:35:26Z")

</div>

> [@Calc\_em](#):
>
> @lastsolidbender might be interested.

Noted, I might be able to share it at some point.

However, I do have a Umat now that should work, but I can’t manage to get Calculix to do what I want. I already went throught all the thermo-examples, but nothing seems to work for me or I am doing it wrong. Unfortunately, I cant share my umat at this point, but I think the issue is with the inp file and me defining the steps.

A Thermomechanical Cycle is defined with loading at a high temperature and cooling with the load/displacement applied. I tried doing this in 2 steps as follows.

```auto
*AMPLITUDE,NAME=A1
0.,0.,1.,1.

*INITIAL CONDITIONS,TYPE=TEMPERATURE
Nall,80.

********************
 ***STEP 1***
*STEP,NLGEOM,INC=100
*UNCOUPLED TEMPERATURE-DISPLACEMENT,STEADY STATE
0.1,1.0

*BOUNDARY,AMPLITUDE=A1
load1,3,3,0.1

*NODE FILE,FREQUENCY=1
U,NT
*EL FILE,FREQUENCY=1
S,E,SDV
*END STEP 
****END OF STEP***
 ********************
 **STEP 2***
*STEP,NLGEOM,INC=100
*UNCOUPLED TEMPERATURE-DISPLACEMENT,STEADY STATE
.1,1.
*BOUNDARY
nall,11,11,55.
*NODE FILE,FREQUENCY=1
U,NT
*EL FILE,FREQUENCY=1
S,E,SDV
***END STEP 
**END OF STEP***

```

For now, I want to ommit heat transfer itself, every point is heated/cooled equally slow. Depending on the temperature in a point, the stress changes according to my umat. However, the second step does not start at all, nothing happens. The first step works just fine.  
Am I doing something wrong with the step definitions?
