Uncoupled thermal transient analysis

Hello,
i tried a uncoupled temperaturs-displacement analysis of an upsetting process..
When I set the temperature as a fixed value, the purely mechanical analysis converges successfully. However, in the sequential thermo-mechanical coupling analysis, it fails to converge. Then, I set the coefficient of thermal expansion to zero — theoretically, this should eliminate any thermal effect on the mechanical response — but the mechanical analysis still fails to converge, with the residuals diverging rapidly.
Any ideas?

Br,
Miles

inp.file

You have all kinds of nonlinearities in this model - plasticity, Nlgeom and contact with friction. Try simplifying the model until it starts converging. Also, try surface-to-surface contact and hexahedrons instead of C3D4 elements for the workpiece.

1 Like

I have a working example involving Nonlinear, Plasticity, contact and thermal expansion in a Uncoupled thermal transient analysis that works with aparent reasonable rsults and converge properly, but,…it fails if I add friction.

Another possible source of issues is that you have set up two rigid bodies without any chance to expand no matter how tiny the expansion is. Your model might be too rigid.

As a first step I would recomend you to reduce your model as much as possible untill it converges to save computation time and debug the problem.

ezgif-49e83acf37d3c9

1 Like

@tommow I don’t know if it only happens at my setup, but when I run your dataset, I get these strange warning refer to a material name IN1

 *WARNING in calinput: no specific heat 
          was assigned to material IN1 in a transient
          heat transfer calculation

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

for me it seems, either something is wrong in the dataset or alternate maybe a bug in ccx

I also get that warning.

That rises another question. ¿Is there heat transfer throught the contact?

Thank you for your reply. I’m not quite sure how to simplify the model — does that mean I need to remove some nonlinearities, such as contact with friction? But if I simplify the model, wouldn’t that prevent it from meeting my requirements

Thank you for your reply. I’ll first try removing the friction. In your working example, the analysis failed because of the inclusion of friction— is there any way to solve this issue? Does this mean friction can’t be included in the model?

This also happened in my setup — it seems that CCX recognized the contact pair name as a material name. This appears to be a bug in CCX.

7.65 GAP CONDUCTANCE
Keyword type: model definition, surface interaction
This option allows for the definition of the conductance across a contact
pair. The conductance is the ratio of the heat flow across the contact location
and the temperature difference between the corresponding slave and master
surface (unit: [energy]/([time]
[area]*[temperature])). The gap conductance
is a property of the nonlinear contact spring elements generated during con-
tact. This means that heat flow will only take place at those slave nodes, at
which a contact spring element was generated. Whether or not a contact spring
element is generated depends on the pressure-overclosure relationship on the
*SURFACE BEHAVIOR card.

surface behavior is treated as a material.

I mean mainly temporarily removing Nlgeom and friction to see which nonlinearity causes the issue, but also changing the contact type (especially since surface-to-surface is normally recommended).

Friction is really bad for convergence. Abaqus automatically enables unsymmetric matrix storage when the friction coefficient exceeds 0.2, but for lower coefficients, this is also recommended. It’s better to exclude friction when possible, but of course, sometimes it doesn’t make sense when the simulated process heavily relies on friction (as is the case with metal forming).

Sorry it was late and I was tired and lazy. I did not explained properly.

There are different problems going on but mainly the ones pin pointed yesterday. Your system is to stiff and Friction. Change the rigid body to only the upper surface.

It is also laterally unconstrained.

¿Why are you defining plasticity on a Rigid Body?

Fricion is clearly messing the convergence. Maybe a limitation. I have remove it.

Regarding to simplify the model I mean, appart from Calc_em suggestion, is to reduce the number of elements. Your main body could be two or three elements to speed up the analisys untill you find the set up.

Find a test that converge. I would say -50mm is way too much. I’m adding some internal heat generation to make the cubes expand.

@JuanP74 Hi Juan, Thanks,. That warning is also showing even if one includes the gap conductance to the contact. Test files is an example.

**
** Heading +++++++++++++++++++++++++++++++++++++++++++++++++
**
*Heading
Hash: tRLHqOkQ, Date: 10/23/2025, Unit system: MM_TON_S_C
**
** Nodes +++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Node
1, -1.00000000E+002, -9.00000000E+001, 2.10000000E+002
2, -1.00000000E+002, 9.00000000E+001, 2.10000000E+002
3, -1.00000000E+002, -9.00000000E+001, 2.00000000E+002
4, -1.00000000E+002, 9.00000000E+001, 2.00000000E+002
5, 1.00000000E+002, -9.00000000E+001, 2.10000000E+002
6, 1.00000000E+002, 9.00000000E+001, 2.10000000E+002
7, 1.00000000E+002, -9.00000000E+001, 2.00000000E+002
8, 1.00000000E+002, 9.00000000E+001, 2.00000000E+002
9, -1.00000000E+002, -9.00000000E+001, 0.00000000E+000
10, -1.00000000E+002, 9.00000000E+001, 0.00000000E+000
11, -1.00000000E+002, -9.00000000E+001, -1.00000000E+001
12, -1.00000000E+002, 9.00000000E+001, -1.00000000E+001
13, 1.00000000E+002, -9.00000000E+001, 0.00000000E+000
14, 1.00000000E+002, 9.00000000E+001, 0.00000000E+000
15, 1.00000000E+002, -9.00000000E+001, -1.00000000E+001
16, 1.00000000E+002, 9.00000000E+001, -1.00000000E+001
17, 0.00000000E+000, 0.00000000E+000, -5.00000000E+000
18, 0.00000000E+000, 0.00000000E+000, -5.00000000E+000
27, 5.00000000E+001, 5.00000000E+001, 0.00000000E+000
28, 0.00000000E+000, 0.00000000E+000, 2.05000000E+002
29, 0.00000000E+000, 0.00000000E+000, 2.05000000E+002
30, -5.00000000E+001, 5.00000000E+001, 2.00000000E+002
31, -5.00000000E+001, 5.00000000E+001, 0.00000000E+000
32, -5.00000000E+001, -5.00000000E+001, 2.00000000E+002
33, 5.00000000E+001, -5.00000000E+001, 2.00000000E+002
34, -5.00000000E+001, -5.00000000E+001, 1.00000000E+002
35, -5.00000000E+001, 5.00000000E+001, 1.00000000E+002
36, 5.00000000E+001, -5.00000000E+001, 1.00000000E+002
37, 5.00000000E+001, 5.00000000E+001, 1.00000000E+002
38, 5.00000000E+001, 5.00000000E+001, 2.00000000E+002
39, -5.00000000E+001, -5.00000000E+001, 0.00000000E+000
40, 5.00000000E+001, -5.00000000E+001, 0.00000000E+000
41, 5.00000000E+001, 5.00000000E+001, 0.00000000E+000
9908, 0.00000000E+000, 0.00000000E+000, 2.05000000E+002
9909, 0.00000000E+000, 0.00000000E+000, 2.05000000E+002
9910, 0.00000000E+000, 0.00000000E+000, -5.00000000E+000
9911, 0.00000000E+000, 0.00000000E+000, -5.00000000E+000
9912, 0.00000000E+000, 0.00000000E+000, 2.05000000E+002
9913, 0.00000000E+000, 0.00000000E+000, 2.05000000E+002
9914, 0.00000000E+000, 0.00000000E+000, -5.00000000E+000
9915, 0.00000000E+000, 0.00000000E+000, -5.00000000E+000
**
** Elements ++++++++++++++++++++++++++++++++++++++++++++++++
**
*Element, Type=C3D8, Elset=Solid_part-1
1, 5, 6, 8, 7, 1, 2, 4, 3
*Element, Type=C3D8, Elset=Solid_part-2
2, 13, 14, 16, 15, 9, 10, 12, 11
*Element, Type=C3D8, Elset=Solid_part-3
3, 39, 40, 41, 31, 34, 36, 37, 35
4, 34, 36, 37, 35, 32, 33, 38, 30
**
** Node sets +++++++++++++++++++++++++++++++++++++++++++++++
**
*Nset, Nset=Internal_9908-1
9908
*Nset, Nset=Internal_9908-2
9908
*Nset, Nset=Internal_9908-3
9908
*Nset, Nset=Internal_9909-1
9909
*Nset, Nset=Internal_9910-1
9910
*Nset, Nset=Internal_9911-1
9911
*Nset, Nset=Internal-1_SZX
3, 4, 7, 8
*Nset, Nset=Internal-1_XZS
9, 10, 13, 14
*Nset, Nset=Internal-1_SZX_Rigi
1, 2, 5, 6
*Nset, Nset=Internal-1_XZS_Rigi
11, 12, 15, 16
*Nset, Nset=Internal_Selection-1_Temperature-1
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41
*Nset, Nset=Internal-1_Internal_Selection-1_Solid_part-1_to_Solid_part-3_Slave
30, 32, 33, 38
*Nset, Nset=Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-3_Slave
31, 39, 40, 41
*Nset, Nset=Bc-Cylindr
34, 35, 36, 37
**
** Additional node sets ++++++++++++++++++++++++++++++++++++
**
*Nset, Nset=RP-1_Ref_99111
9912
*Nset, Nset=RP-1_Rot_99112
9913
*Nset, Nset=RP-2_Ref_99131
9914
*Nset, Nset=RP-2_Rot_99132
9915

**
** Element sets ++++++++++++++++++++++++++++++++++++++++++++
**
*Elset, Elset=SZHEN
1
*Elset, Elset=XZHEN
2
*Elset, Elset=DJ
3, 4
*Elset, Elset=Internal-1_SZX_S5
1
*Elset, Elset=Internal-1_XZS_S3
2
*Elset, Elset=Internal-1_SZX_Rigi_S3
1
*Elset, Elset=Internal-1_XZS_Rigi_S5
2
*Elset, Elset=Internal-1_Internal_Selection-1_Solid_part-1_to_Solid_part-3_Slave_S2
4
*Elset, Elset=Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-3_Slave_S1
3
*Elset, Elset=Internal_Selection-1_Body_Flux-1
Solid_part-3
**
** Surfaces ++++++++++++++++++++++++++++++++++++++++++++++++
**
*Surface, Name=SZX, Type=Element
Internal-1_SZX_S5, S5
*Surface, Name=XZS, Type=Element
Internal-1_XZS_S3, S3
*Surface, Name=SZX_Rigi, Type=Element
Internal-1_SZX_Rigi_S3, S3
*Surface, Name=XZS_Rigi, Type=Element
Internal-1_XZS_Rigi_S5, S5
*Surface, Name=Internal_Selection-1_Solid_part-1_to_Solid_part-3_Slave, Type=Element
Internal-1_Internal_Selection-1_Solid_part-1_to_Solid_part-3_Slave_S2, S2
*Surface, Name=Internal_Selection-1_Solid_part-2_to_Solid_part-3_Slave, Type=Element
Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-3_Slave_S1, S1
**
** Physical constants ++++++++++++++++++++++++++++++++++++++
**
*Physical constants, Absolute zero=-273.15, Stefan Boltzmann=5.6704E-11, Newton gravity=66.743
**
** Coordinate systems ++++++++++++++++++++++++++++++++++++++
**
*Transform, Nset=Bc-Cylindr, Type=C
0, 0, 0, 0, 0, 1
**
** Materials +++++++++++++++++++++++++++++++++++++++++++++++
**
*Material, Name=M1
*Elastic
210000, 0.3
*Density
7.85E-09
*Plastic
250, 0
300, 0.01
350, 0.02
400, 0.04
450, 0.06
500, 0.1
*Specific heat
470000000
*Expansion, Zero=20
1.2E-05
*Conductivity
25
*Material, Name=M2
*Elastic
71500, 0.33
*Plastic
20, 0
72.5, 0.02
94.7, 0.06
107.2, 0.1
116.8, 0.14
124.3, 0.18
130.7, 0.22
136.1, 0.26
140.8, 0.3
144.9, 0.34
148.5, 0.38
151.9, 0.42
155.1, 0.46
158.1, 0.5
161, 0.54
163.8, 0.58
*Density
2.83E-09
*Specific heat
900000000
*Expansion, Zero=20
2.3E-05
*Conductivity
25
**
** Sections ++++++++++++++++++++++++++++++++++++++++++++++++
**
*Solid section, Elset=XZHEN, Material=M1
*Solid section, Elset=SZHEN, Material=M1
*Solid section, Elset=DJ, Material=M2
**
** Pre-tension sections ++++++++++++++++++++++++++++++++++++
**
**
** Constraints +++++++++++++++++++++++++++++++++++++++++++++
**
*Rigid body, Nset=Internal-1_SZX_Rigi, Ref node=9912, Rot node=9913
*Rigid body, Nset=Internal-1_XZS_Rigi, Ref node=9914, Rot node=9915
**
** Surface interactions ++++++++++++++++++++++++++++++++++++
**
*Surface interaction, Name=IN1
*Surface behavior, Pressure-overclosure=Linear
10000000, 2.86
*Gap conductance
20
**
** Contact pairs +++++++++++++++++++++++++++++++++++++++++++
**
*Contact pair, Interaction=IN1, Type=Surface to surface
Internal_Selection-1_Solid_part-1_to_Solid_part-3_Slave, SZX
*Contact pair, Interaction=IN1, Type=Surface to surface
Internal_Selection-1_Solid_part-2_to_Solid_part-3_Slave, XZS
**
** Amplitudes ++++++++++++++++++++++++++++++++++++++++++++++
**
*Amplitude, Name=Displacement
0, 0, 0.5, 0, 1, 1
*Amplitude, Name=Temperature
0, 0, 1, 1
**
** Initial conditions ++++++++++++++++++++++++++++++++++++++
**
** Name: Temperature-1
*Initial conditions, Type=Temperature
Internal_Selection-1_Temperature-1, 200
**
** Steps +++++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Step-1 ++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Step, Nlgeom, Inc=2000
*Uncoupled temperature-displacement, Solver=Pardiso
0.01, 1, 1E-10, 0.1
**
** Controls ++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Output frequency ++++++++++++++++++++++++++++++++++++++++
**
**
** Boundary conditions +++++++++++++++++++++++++++++++++++++
**
*Boundary, op=New
** Name: Displacement_rotation-3
*Boundary, Amplitude=Displacement
9912, 1, 1, 0
9912, 2, 2, 0
9912, 3, 3, -1
9913, 1, 1, 0
9913, 2, 2, 0
9913, 3, 3, 0
** Name: Displacement_rotation-5
*Boundary
9914, 1, 1, 0
9914, 2, 2, 0
9914, 3, 3, 0
9915, 1, 1, 0
9915, 2, 2, 0
9915, 3, 3, 0
** Name: Displacement_Rotation-1
*Boundary
Bc-Cylindr, 2, 2, 0
**
** Loads +++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Cload, op=New
*Dload, op=New
*Cflux, op=New
** Name: Body_Flux-1
*Dflux, Amplitude=Temperature
Internal_Selection-1_Body_Flux-1, BF, 500
**
** Defined fields ++++++++++++++++++++++++++++++++++++++++++
**
**
** History outputs +++++++++++++++++++++++++++++++++++++++++
**
**
** Field outputs +++++++++++++++++++++++++++++++++++++++++++
**
*Node file
U, NT
*El file
S, E, PEEQ, NOE
*Contact file
CDIS, CSTR
**
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
**
*End step

you are right, same warnings are obtained by running test example ring3.inp so can be disregarded.

Speaking about solver warnings, I’ve noticed that the OP’s input file has an incorrect *HEADER keyword instead of *HEADING. Of course, it doesn’t affect the computations. But those warnings regarding missing thermal properties for contact elements should IMO be removed from CalculiX so I’ll probably post a GitHub issue regarding this.

1 Like

It depends on your requirements… You can probably get very decent results by removing certain nonlinearities, as pointed out by others. It’s all about making a reasonable engineering decision.

Is it better to not have a solution with all the nonlinearities? Or is it better to have results with reasonable engineering simplifications?