**Discussion Closed** This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

## Help modeling supercooling effect in water to ice transition

Posted 2012. 10. 4. 오전 9시 33분 57초 GMT-04:00 Fluid, Materials, Modeling Tools, Parameters, Variables, & Functions 13 Replies

Nikolaos Kokorakis

Hello everyone, relatively new to COMSOL here, I am trying to create a model

describing a simulation that took place in a climate chamber. I have attached a

graph describing the temperature on the water container surface. I want help modeling

that step-up near the 1600s mark, how should I "make the water warmer" before it starts

cooling again? I have looked into the continuous casting model for guidance and I have

used some methods described in it but I am stuck...

The physics I use is heat transfer in solids and the custom water I have

has a Cp = 4200 - (2120*(T<T_freeze)) +exp(-(T-T_freeze)^2/((dT)^2))/sqrt(pi*(dT)^2)*333000

where dT=1[K] and T_freeze = 0[degC]

Any help would be welcome!

Thank you!

describing a simulation that took place in a climate chamber. I have attached a

graph describing the temperature on the water container surface. I want help modeling

that step-up near the 1600s mark, how should I "make the water warmer" before it starts

cooling again? I have looked into the continuous casting model for guidance and I have

used some methods described in it but I am stuck...

The physics I use is heat transfer in solids and the custom water I have

has a Cp = 4200 - (2120*(T<T_freeze)) +exp(-(T-T_freeze)^2/((dT)^2))/sqrt(pi*(dT)^2)*333000

where dT=1[K] and T_freeze = 0[degC]

Any help would be welcome!

Thank you!

Attachments:

13 Replies Last Post 2012. 10. 22. 오전 9시 43분 59초 GMT-04:00

Ivar Kjelberg

Posted:
5 years ago
2012. 10. 5. 오전 1시 18분 47초 GMT-04:00

Hi

I would suspect some difficulties to make it a true "step" but if you use a combination with the v4 "step" function and use smooth corners, I believe you could manage, but you would need to find a way to tweak your solver to detect the step and take "small" solver steps to resolve the steep gradients

--

Good luck

Ivar

I would suspect some difficulties to make it a true "step" but if you use a combination with the v4 "step" function and use smooth corners, I believe you could manage, but you would need to find a way to tweak your solver to detect the step and take "small" solver steps to resolve the steep gradients

--

Good luck

Ivar

Hi
I would suspect some difficulties to make it a true "step" but if you use a combination with the v4 "step" function and use smooth corners, I believe you could manage, but you would need to find a way to tweak your solver to detect the step and take "small" solver steps to resolve the steep gradients
--
Good luck
Ivar

Nikolaos Kokorakis

Posted:
5 years ago
2012. 10. 5. 오전 2시 30분 34초 GMT-04:00

Thank you for your reply, I have used flc2sh to produce a smooth "step" but it

gets smoothed or averaged over instead of having that relatively steep step.

I don't mind so much at the moment because the final result is "close enough"

but, you know how it is, wanting to get it precisely right ;)I tweaked the solver to

take 0.5 sec steps around the step area but it did not do any difference.

I am starting to believe that if the water is treated as a solid, the moment of

crystallization isn't simulated correctly.

Again, thank you for your time Mr. Kjelberg

gets smoothed or averaged over instead of having that relatively steep step.

I don't mind so much at the moment because the final result is "close enough"

but, you know how it is, wanting to get it precisely right ;)I tweaked the solver to

take 0.5 sec steps around the step area but it did not do any difference.

I am starting to believe that if the water is treated as a solid, the moment of

crystallization isn't simulated correctly.

Again, thank you for your time Mr. Kjelberg

Thank you for your reply, I have used flc2sh to produce a smooth "step" but it
gets smoothed or averaged over instead of having that relatively steep step.
I don't mind so much at the moment because the final result is "close enough"
but, you know how it is, wanting to get it precisely right ;)I tweaked the solver to
take 0.5 sec steps around the step area but it did not do any difference.
I am starting to believe that if the water is treated as a solid, the moment of
crystallization isn't simulated correctly.
Again, thank you for your time Mr. Kjelberg

Ivar Kjelberg

Posted:
5 years ago
2012. 10. 5. 오전 6시 55분 13초 GMT-04:00

Hi

in V4 you can use the predefined "STEP()" which is a variant but perhaps with less parameters to tweak

--

Good luck

Ivar

in V4 you can use the predefined "STEP()" which is a variant but perhaps with less parameters to tweak

--

Good luck

Ivar

Hi
in V4 you can use the predefined "STEP()" which is a variant but perhaps with less parameters to tweak
--
Good luck
Ivar

Nikolaos Kokorakis

Posted:
5 years ago
2012. 10. 5. 오전 7시 17분 42초 GMT-04:00

Can I make the internal temperature of the mass of water rise that way?

Can I make the internal temperature of the mass of water rise that way?

Ivar Kjelberg

Posted:
5 years ago
2012. 10. 6. 오후 4시 11분 59초 GMT-04:00

Hi

In COMSOL most entry fields accept full equations (including function calls) so you can define variable densties, temperatures etc. But depending on how you set these up, you might make your model very non-linear, hence the solver might start to have issues to converge.

But be sure you are defining "physical" cases, else the results might be bizarre, or non physical too ;)

--

Good luck

Ivar

In COMSOL most entry fields accept full equations (including function calls) so you can define variable densties, temperatures etc. But depending on how you set these up, you might make your model very non-linear, hence the solver might start to have issues to converge.

But be sure you are defining "physical" cases, else the results might be bizarre, or non physical too ;)

--

Good luck

Ivar

Hi
In COMSOL most entry fields accept full equations (including function calls) so you can define variable densties, temperatures etc. But depending on how you set these up, you might make your model very non-linear, hence the solver might start to have issues to converge.
But be sure you are defining "physical" cases, else the results might be bizarre, or non physical too ;)
--
Good luck
Ivar

Nikolaos Kokorakis

Posted:
5 years ago
2012. 10. 8. 오전 3시 36분 9초 GMT-04:00

I have concluded now that modeling the supercooling effect itself, isn't that useful for

the scope of the simulation and an "averaged" behavior is more fitting.

The question remains but this time for philosophical reasons.

the scope of the simulation and an "averaged" behavior is more fitting.

The question remains but this time for philosophical reasons.

I have concluded now that modeling the supercooling effect itself, isn't that useful for
the scope of the simulation and an "averaged" behavior is more fitting.
The question remains but this time for philosophical reasons.

Jesus Lucio

Posted:
5 years ago
2012. 10. 8. 오전 5시 2분 12초 GMT-04:00

Hi, Nikolaos,

Ivar's help has been very valuable, as always. And perhaps you can receive more help if you describe your model basically, or attach a simplified (if possible 2D) version of it: which physics do you use? (you mention "Heat transfer in solids", but you you try to simulate heat in a liquid?), which boundary conditions? (how do you heat the water), etc.

Have you considered the coexistence of two phases?

And about the general question: "how to simulate supercooling in water", have you taken into account that the phase trasition would be a function not only of the temperature, but also of the velocity magnitude? (and hence, you should simulate the fluid with a moving mesh, I think).

Bye,

Jesus.

Ivar's help has been very valuable, as always. And perhaps you can receive more help if you describe your model basically, or attach a simplified (if possible 2D) version of it: which physics do you use? (you mention "Heat transfer in solids", but you you try to simulate heat in a liquid?), which boundary conditions? (how do you heat the water), etc.

Have you considered the coexistence of two phases?

And about the general question: "how to simulate supercooling in water", have you taken into account that the phase trasition would be a function not only of the temperature, but also of the velocity magnitude? (and hence, you should simulate the fluid with a moving mesh, I think).

Bye,

Jesus.

Hi, Nikolaos,
Ivar's help has been very valuable, as always. And perhaps you can receive more help if you describe your model basically, or attach a simplified (if possible 2D) version of it: which physics do you use? (you mention "Heat transfer in solids", but you you try to simulate heat in a liquid?), which boundary conditions? (how do you heat the water), etc.
Have you considered the coexistence of two phases?
And about the general question: "how to simulate supercooling in water", have you taken into account that the phase trasition would be a function not only of the temperature, but also of the velocity magnitude? (and hence, you should simulate the fluid with a moving mesh, I think).
Bye,
Jesus.

Nikolaos Kokorakis

Posted:
5 years ago
2012. 10. 8. 오전 7시 53분 23초 GMT-04:00

Hello Jesus and thank you for your reply. The water in this simulation acts only as a heat storage medium.

The "problem" is that in during the climate chamber simulations the water is standing still and thus allowed

to be supercooled before turning into ice. I might have to repeat the simulations trying to force the phase transition

(by jiggling the container maybe?) around the 0°C point in order to get a smoother behavior.

The water is cooled and warmed by a "Temperature" boundary condition applied on a plate

underneath the container.

By phase coexistence do you mean a "mushy" state? I don't think that is necessary at the moment.

I have considered making the model a bit more complex to account for movement in the liquid but again

I think that is too complex for what I am trying to simulate.

Thank you for your time and advice!!

The "problem" is that in during the climate chamber simulations the water is standing still and thus allowed

to be supercooled before turning into ice. I might have to repeat the simulations trying to force the phase transition

(by jiggling the container maybe?) around the 0°C point in order to get a smoother behavior.

The water is cooled and warmed by a "Temperature" boundary condition applied on a plate

underneath the container.

By phase coexistence do you mean a "mushy" state? I don't think that is necessary at the moment.

I have considered making the model a bit more complex to account for movement in the liquid but again

I think that is too complex for what I am trying to simulate.

Thank you for your time and advice!!

Hello Jesus and thank you for your reply. The water in this simulation acts only as a heat storage medium.
The "problem" is that in during the climate chamber simulations the water is standing still and thus allowed
to be supercooled before turning into ice. I might have to repeat the simulations trying to force the phase transition
(by jiggling the container maybe?) around the 0°C point in order to get a smoother behavior.
The water is cooled and warmed by a "Temperature" boundary condition applied on a plate
underneath the container.
By phase coexistence do you mean a "mushy" state? I don't think that is necessary at the moment.
I have considered making the model a bit more complex to account for movement in the liquid but again
I think that is too complex for what I am trying to simulate.
Thank you for your time and advice!!

Jesus Lucio

Posted:
5 years ago
2012. 10. 8. 오전 11시 56분 46초 GMT-04:00

Hello, Nikolaos,

Sorry, but I still don't make an idea of your model and why you are unconfortable with the graphics T vs. t. If you could provide a simple (better 1D or 2D) version of the model, perhaps we would be able to help you more.

Nevertheless, I have inspected your Cp function, and it has a sudden and strong peak at T about 273[K] (Cp reaches 1.92075e5 at T = 0[degC]!!!). Is that what you intend? How do you distinguish water from ice? Why don't you take into account the difference in k (thermal conductivity) and rho (density) between both phases? Could you go without any geometry, and thus use only an ODE?

Jesus.

Sorry, but I still don't make an idea of your model and why you are unconfortable with the graphics T vs. t. If you could provide a simple (better 1D or 2D) version of the model, perhaps we would be able to help you more.

Nevertheless, I have inspected your Cp function, and it has a sudden and strong peak at T about 273[K] (Cp reaches 1.92075e5 at T = 0[degC]!!!). Is that what you intend? How do you distinguish water from ice? Why don't you take into account the difference in k (thermal conductivity) and rho (density) between both phases? Could you go without any geometry, and thus use only an ODE?

Jesus.

Hello, Nikolaos,
Sorry, but I still don't make an idea of your model and why you are unconfortable with the graphics T vs. t. If you could provide a simple (better 1D or 2D) version of the model, perhaps we would be able to help you more.
Nevertheless, I have inspected your Cp function, and it has a sudden and strong peak at T about 273[K] (Cp reaches 1.92075e5 at T = 0[degC]!!!). Is that what you intend? How do you distinguish water from ice? Why don't you take into account the difference in k (thermal conductivity) and rho (density) between both phases? Could you go without any geometry, and thus use only an ODE?
Jesus.

Nikolaos Kokorakis

Posted:
5 years ago
2012. 10. 9. 오전 2시 15분 35초 GMT-04:00

Taking inspiration from the continuous casting model, the Cp function simulates, or is supposed to simulate,

the latent heat of the water, 333kJ/kg, smoothed over a couple of degrees (I played with the dT value a bit from

0.5 to 3 K)

I will provide you with a simple model as soon as possible so that you can have a look.

the latent heat of the water, 333kJ/kg, smoothed over a couple of degrees (I played with the dT value a bit from

0.5 to 3 K)

I will provide you with a simple model as soon as possible so that you can have a look.

Taking inspiration from the continuous casting model, the Cp function simulates, or is supposed to simulate,
the latent heat of the water, 333kJ/kg, smoothed over a couple of degrees (I played with the dT value a bit from
0.5 to 3 K)
I will provide you with a simple model as soon as possible so that you can have a look.

Nikolaos Kokorakis

Posted:
5 years ago
2012. 10. 19. 오전 7시 18분 23초 GMT-04:00

Hello again everybody! Here is a very simple model of what

I am trying to model, a mass of water and a small plate of aluminum

exposed to a temperature. Functions for the temperature profile and

for the characteristics

I am open to suggestions!!

Thank you for your time!

I am trying to model, a mass of water and a small plate of aluminum

exposed to a temperature. Functions for the temperature profile and

for the characteristics

I am open to suggestions!!

Thank you for your time!

Hello again everybody! Here is a very simple model of what
I am trying to model, a mass of water and a small plate of aluminum
exposed to a temperature. Functions for the temperature profile and
for the characteristics
I am open to suggestions!!
Thank you for your time!

Attachments:

Ivar Kjelberg

Posted:
5 years ago
2012. 10. 19. 오전 8시 59분 21초 GMT-04:00

Hi

a few suggestions:

Use rather the analytical functions to define your full variable and material expressions, as then, with a click, you can check them, and make a plot to see how they behave, then call your variables or material parameters to use the analytical functions you have defined.

A variable useful to help you set up your thermal models is the alpa heat diffusivity, as when you have a very different heat diffusivity its worth to have a fine mesh at the interfaces to resolve correctly the high gradients you develop here.

define a model variable alpha = material.k11/material.rho/material.Cp

in fact there is a relation to respect between average mesh size "h" alpha and the smallest time stepping dt

then when you are ready to run your solver, start running only the initial conditions and set up a surface plot for alpha, at the common boundaries with large alpha difference, check that you have a dense(r) mesh

Then only run your model

In your case you consider your fluid is a "solid" no convection, which is often a perfectly valuable simplification hypothesis,

for such diffusion problems often a power of 2 time stepping is good, but as you have changes in temperature and slope variations you must ensure that these are also well followed. Then you must set the solver time stepping node to "intermediate, or strict to ensure that COMSOL does not jump over one of your time transitions

And while running long time solving, turn on the plot while solving FOR all Steps to see how it behaves, time is shorter like that and you learn how physics behave

And have you checked that your total integrated Cp variation corresponds to the latent heat of melting/solidification ?

--

Good luck

Ivar

a few suggestions:

Use rather the analytical functions to define your full variable and material expressions, as then, with a click, you can check them, and make a plot to see how they behave, then call your variables or material parameters to use the analytical functions you have defined.

A variable useful to help you set up your thermal models is the alpa heat diffusivity, as when you have a very different heat diffusivity its worth to have a fine mesh at the interfaces to resolve correctly the high gradients you develop here.

define a model variable alpha = material.k11/material.rho/material.Cp

in fact there is a relation to respect between average mesh size "h" alpha and the smallest time stepping dt

then when you are ready to run your solver, start running only the initial conditions and set up a surface plot for alpha, at the common boundaries with large alpha difference, check that you have a dense(r) mesh

Then only run your model

In your case you consider your fluid is a "solid" no convection, which is often a perfectly valuable simplification hypothesis,

for such diffusion problems often a power of 2 time stepping is good, but as you have changes in temperature and slope variations you must ensure that these are also well followed. Then you must set the solver time stepping node to "intermediate, or strict to ensure that COMSOL does not jump over one of your time transitions

And while running long time solving, turn on the plot while solving FOR all Steps to see how it behaves, time is shorter like that and you learn how physics behave

And have you checked that your total integrated Cp variation corresponds to the latent heat of melting/solidification ?

--

Good luck

Ivar

Hi
a few suggestions:
Use rather the analytical functions to define your full variable and material expressions, as then, with a click, you can check them, and make a plot to see how they behave, then call your variables or material parameters to use the analytical functions you have defined.
A variable useful to help you set up your thermal models is the alpa heat diffusivity, as when you have a very different heat diffusivity its worth to have a fine mesh at the interfaces to resolve correctly the high gradients you develop here.
define a model variable alpha = material.k11/material.rho/material.Cp
in fact there is a relation to respect between average mesh size "h" alpha and the smallest time stepping dt
then when you are ready to run your solver, start running only the initial conditions and set up a surface plot for alpha, at the common boundaries with large alpha difference, check that you have a dense(r) mesh
Then only run your model
In your case you consider your fluid is a "solid" no convection, which is often a perfectly valuable simplification hypothesis,
for such diffusion problems often a power of 2 time stepping is good, but as you have changes in temperature and slope variations you must ensure that these are also well followed. Then you must set the solver time stepping node to "intermediate, or strict to ensure that COMSOL does not jump over one of your time transitions
And while running long time solving, turn on the plot while solving FOR all Steps to see how it behaves, time is shorter like that and you learn how physics behave
And have you checked that your total integrated Cp variation corresponds to the latent heat of melting/solidification ?
--
Good luck
Ivar

Erik Esveld

Posted:
5 years ago
2012. 10. 22. 오전 9시 43분 59초 GMT-04:00

In the discussion about supercooling and freezing it is my feeling that a more apropiate model can be obtained by modelling the change of enthalpy and not the temperature. During cooling you continuously remove enthalpy and the temperature follows. The temperature is a function of the enthalpy content and the percentage of ice. The latter lags behind during super cooling.

If you make a plot of H versus T for an equilibrium process, and take the derivative dH/dT, then you can smear the latent heat of fusion peak a bit and put it in a Cp(T) function. That is a 'normal' trick.

But with supercooling this will not work. See the picture www.esveld.org/Comsol/HvsT%20and%20TvsH.png

dH/dT is not a unique function of T. You can define dT/dH as function of H. Or even directly T als function of H(H)

Thus you need to solve a system dH/dt = PDE (T) with T=F(H) or dT/dt = f(H). Will that work in Comsol?

More physically correct would be to model the two phases ice and water and their transition reactions with entalpy change, like you can do for drying. This is a very stiff system as the local melt / freeze reactionrates are very fast. The system does not deviate from equilibrium, except when the crystallisation rate is low because of lack of nuclii.

Erik

If you make a plot of H versus T for an equilibrium process, and take the derivative dH/dT, then you can smear the latent heat of fusion peak a bit and put it in a Cp(T) function. That is a 'normal' trick.

But with supercooling this will not work. See the picture www.esveld.org/Comsol/HvsT%20and%20TvsH.png

dH/dT is not a unique function of T. You can define dT/dH as function of H. Or even directly T als function of H(H)

Thus you need to solve a system dH/dt = PDE (T) with T=F(H) or dT/dt = f(H). Will that work in Comsol?

More physically correct would be to model the two phases ice and water and their transition reactions with entalpy change, like you can do for drying. This is a very stiff system as the local melt / freeze reactionrates are very fast. The system does not deviate from equilibrium, except when the crystallisation rate is low because of lack of nuclii.

Erik

In the discussion about supercooling and freezing it is my feeling that a more apropiate model can be obtained by modelling the change of enthalpy and not the temperature. During cooling you continuously remove enthalpy and the temperature follows. The temperature is a function of the enthalpy content and the percentage of ice. The latter lags behind during super cooling.
If you make a plot of H versus T for an equilibrium process, and take the derivative dH/dT, then you can smear the latent heat of fusion peak a bit and put it in a Cp(T) function. That is a 'normal' trick.
But with supercooling this will not work. See the picture http://www.esveld.org/Comsol/HvsT%20and%20TvsH.png
dH/dT is not a unique function of T. You can define dT/dH as function of H. Or even directly T als function of H(H)
Thus you need to solve a system dH/dt = PDE (T) with T=F(H) or dT/dt = f(H). Will that work in Comsol?
More physically correct would be to model the two phases ice and water and their transition reactions with entalpy change, like you can do for drying. This is a very stiff system as the local melt / freeze reactionrates are very fast. The system does not deviate from equilibrium, except when the crystallisation rate is low because of lack of nuclii.
Erik

Note that while COMSOL employees may participate in the discussion forum, COMSOL^{®} software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.