Calculate thermal expansion from a temperature field

Hi,

I’m currently trying my hand at a thermal analysis, but unfortunately it’s not going as well as I’d expected. For the initial setup:

I have a model made up of C3D10 elements. A few nodes are fixed to prevent the model from moving in space. I have a temperature for each node that I would like to specify. CalculiX should then calculate the thermal strain (i.e., the displacement of all nodes) resulting from this temperature field.

My input file (solve_therm.inp) looks like this

*INCLUDE, INPUT=model.inp

*MATERIAL, NAME=generic
*ELASTIC, TYPE=ISO
525, 0.3
*EXPANSION, TYPE=ISO
0.4
*SOLID SECTION, ELSET=EALL, MATERIAL=generic

*STEP
*STATIC
*BOUNDARY
fixed, 1, 3, 0
*INCLUDE, INPUT=therm_boundary.inp
*NODE FILE
U
*END STEP

And the file content for the boundary conditions looks like this:

1,11,11, 5.643741273e+01
2,11,11, 5.414079499e+01
3,11,11, 1.761354130e+02
4,11,11, 4.460606464e+00
5,11,11, 7.423315814e+01
6,11,11, 8.601981278e+01
7,11,11, 3.460357794e+01
8,11,11, 4.604850232e+01
9,11,11, 5.263491499e+01
10,11,11, 9.986451767e+01
11,11,11, 7.811955094e+01
(...)

When I run this model with ccx -i solve_therm, the calculation completes without any error messages, but the displacements of all nodes are 0. Did I forget to define something? Or is the *STATIC environment not the right one for this type of problem?

When I replace the temperature boundary conditions with mechanical ones for testing purposes (e.g., applying a *CLOAD to some nodes), I get displacement solutions. The model itself (i.e., everything in the model.inp file) appears to be fault-free.

P.S.: I haven’t entered any actual material data yet. These are still dummy variables. There should still be some kind of (none zero) solution, though.

What’s the reference temperature? Did you intialize the field to a given temperature via *initial conditions, type=temperature?

You can use this type of step if you don’t need to model heat transfer, but temperatures have to be applied as a predefined field, not boundary condition in this case:

*TEMPERATURE
node, value