Heat Transfer with Phase Change


I"m trying to simulate the transient heat transfer behavior of a BGA package surface mounted on a board. The board is heated from the bottom on a simple hot plate. The objective of the model is to compute transient behavior of the melting of solder. I’m unable to figure out how to incorporate phase change along with the heat of fusion of the solder into the simulation.


Hi @ferozma, from what I can see this isnt currently possible with current settings. I have this post in the request for features:

However I think this is over kill for your application, I think all you want is to be able to define melt temperature and melt band and be able to see the phase change fraction as a feild?

Maybe if you should start a new post with that request as I feel that what your asking for is much simpler than my request.

But unfortunately, for now its not officially possible ho[efully if there is a known work around someone will post here.

Kind regards,


Hi @ferozma, @1318980,
in a nonlinear heat transfer analysis you can take into account the melting heat by defining a temperature dependent heat capacity. There has been recently a workshop on thermal analysis for cold chain where this was used to model PCM packs in a thermal shipper, you can access the project here: https://www.simscale.com/projects/bdelatti/thermal_packaging_-_test/

You can find the recording with some more explanation on the model here: https://www.simscale.com/thermal-packaging-cold-chain/

Hope this helps.


Awesome! @rszoeke I was looking at CHT! glad this is possible :slight_smile:


Thank you both. I’ll give this a shot.


I tried this but the model wont converge.


Hi @ferozma,
phase change is usually highly nonlinear and thus not easy to converge. A few hints:

  • enable line search in the numerics settings. The default setup should be ok, maybe you could increase the max number of iterations a little
  • reduce the time step size. As we don’t have automatic time step subdivision enabled for thermal analyses, you would need to provide a little more refined time stepping list manually

You can also share your project with me, so I can have a look if the above mentioned options won’t help.



Hi @ferozma,
I saw that you already enabled line search in the project. I reduced the time step size to 0.1s and chose another solver (MUMPS) on an 8-core machine to speed the run up a little (20min vs 60min with the iterative GCPC solver):

Convergence worked just fine.

Project link: https://www.simscale.com/projects/rszoeke/assy100via/