Initial conditions in transient heat transfer

I’m running a 3d transient heat transfer simulation of a hollow cube, internal surface heat flux and external convective film. As you can see in the file attached, i’ve set initial temperature of 30C for the whole part. Looking at the results, i see the initial temperature results nowhere close to what i’ve set.


(As you can see, it starts around 45C)
Here is the file teste 2 certo.pmx - Google Drive
Am i missing something here?

You can use some hosting website like Dropbox, Google Drive or WeTransfer to share the files. Are you sure that the initial condition is applied to all nodes ? You can visualize the node set used for this definition to check that.

Thanks, here it is. teste 2 certo.pmx - Google Drive

The initial condition is working properly. If you remove the loads, the temperature in the whole model will stay at 25 degrees. If you apply a ramp amplitude (linear increase) to the surface flux (so that it’s not applied immediately in the analysis), you will also see that the initial condition is respected.

1 Like

Thank you a lot! I love your videos, btw.

Yet another way would be to refine the mesh significantly and measure the temperatures at a node in the middle of the wall, away from the thermal loads.

Great to hear that. I do my best to make them helpful.

How do you do the thing that you said? I did not see any option like that when configuring the surface flux or any load type
I think I am facing the same problem but I could not resolve it yet.
In my simulation, I am trying to simulate thermal transient on a PCB, so I add an initial temperature to the PCB and the Heat source.
All convection was set to have a sink temperature of 25 deg C.
but the temperature on the heat source body can be below that sink temperature even though I deactivate the Body flux or any heat Power source.


In conclusion, the initial temperature setup worked fine with other parts, except for the body of the Heat source (with or without body flux, and I chose the Part to assign initial temperature to it just like what I did with other part)

this is so strange, I did the same actions, and the PCB part seems to have internal temperature defined, but for the small heat source part, the temperature is only on its surface, did anyone get this problem before?

When it comes to ramp amplitude definition, you have to create an amplitude first (there is a separate option for that in the model tree), define something like:

t A
0 0
x 1

where x is the step/total time of your simulation and assign the amplitude to boundary condition or load definition (an option for that will appear when you create an amplitude).

I wouldn’t rely on those symbols too much. Better remove all loads and BCs and keep only the initial temperatures. Unfortunately, CalculiX doesn’t write the results for the t=0 frame so you need workarounds like the ones mentioned above.

So I removed all BCs and Loads definitions, only the Initial temperature remained.
The initial temperature still tended to be near 0 on the same Part as before


Do you have any other suggestions for me?

Try separating the parts by some distance so there’s no conduction between them.

It turns out, I previousy tried to assigned to only surface to see if there was any difference and forgot to change the Initial temperature back to all part. I changed it back, now the initial value seems correct.
Then I added some convection definitions with sink temperature value of 25 deg C and I noticed the temperature value on the PCB part which I assigned initial temperature of 50 deg C is wrong, it can reach the value lower than the sink temperature value (23 deg C)


is there anyway that program automatically see some face with sink temperature of 0 deg C by default?

Such effects are often caused by too coarse meshes. Sometimes there can be even negative temperatures out of nowhere. Try significantly refining the mesh on the PCB part. I would use hexahedral elements instead of tetrahedrons too.

Where can I use this hexahedral option? I do not see it in Mesh refine, and I can only find the tetrahedral Gmsh, is it some type of configuration in the Tetrahedral Gmsh menu?

When you add a new mesh item (such as Mesh Refinement or Tetrahedral Gmsh), you can choose Extrude Mesh, Revolve Mesh, Sweep Mesh and Transfinite Mesh. They can all generate hexahedrons (if recombination is enabled). In this case, Extrude Mesh should suffice but you can also try Transfinite Mesh.

T tried use different types of Mesh but that negative temperature still remained. but I tried some cases with initial temperature assigned to the Heatsource part:

  1. Assign Initial temperature to PCB part (not the copper Part) (the setup I was talking about) → negative temperature happened
  2. Assign Initial temperature to PCB part & Copper Part in an initial condition definition → negative temperature happened
  3. Assign Initial temperature to PCB part & Copper Part in two individual condition definitions (I tried same Initial temperature Value on two definitions and two different values case) → Result seems reasonable

    So, I am not sure, do you know about difference betwwen those cases?
    Also, now when I added amplitude to simulation the intial temperature of the Heatsource remained 0, that’s why you see in the picture, I set the temperature on PCB begin from 50 deg C but it showed a not clearly change after a while.

I would say your problem comes from the selection method when defining the initial conditions. If you use the default method some of the internal parts do not receive initial condition. Change to parts and be sure to select the whole model.


I would also suspect this common mistake but the OP mentioned it’s not the case:

@fiinfi Can you share the .pmx file to check ?

Silly me, I kept in my mind that I tried using choose by surfaces edges and vertices, and choose by part, and later I decided to use the choose by part option, but forgot to re-assign all of them.
I guess while I was trying to change definitions, I used the other option without being aware.
I re-assigned the initial temperature using choose by part to all my parts in the model, and it worked!


It is a bit strange when you configure them, and later you re-open it, it always shows the default option, not the one you chose. Now I noted that in my memo. Hope this simple but useful feature will be updated in the future, you know, it will be easier for a beginner to get used to if they can examine models by others.
Anyway, thank you, you guys helped me a lot.

1 Like