Melting using icoReactingMultiPhaseInterFoam
Dear Foamers,
I am trying to simulate the melting process of a solid body (phase change material) in 3D using icoReactingMultiPhaseInterFoam (first question: is this the best solver for melting? :confused:). I included the buoyant melted movement by Boussinesq as the equation of state for the liquid. The problem is that when I run the simulation, it goes fine until towards the end of melting when suddenly the Courant number goes higher and higher until the alpha value becomes negative... I tried this in 2D and it never happened. But in 3D despite using a relatively fine mesh this happens... I also tried with adjustableRunTime which went down to 10^-6... I also checked the mesh quality: Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Code:
/*--------------------------------*- C++ -*----------------------------------*\ Code:
/*--------------------------------*- C++ -*----------------------------------*\ Thanks, MJ PS: Now I am trying to further refine the mesh, hoping it is possible to do so... |
same problem i have....
|
Hi,
I think this is the right kind of solver. I am working with icoReactingMultiphaseInterFoam as well but on a different topic. A Laser melts my material. You said "towards the end" and "same problem" so this happens when both of your solids are melted completely and there is only liquid left? Regards, Teresa |
Quote:
I also try to simulate laser melting. but at the same time liquid metal evaporation. When I added liquid to gas evaporation, simulation diverges. |
Liquid to gas is my next goal and I just startet the first simulation with it included. I first wanted to see that melting works fine.
I will see if my case will diverge too. |
Thanks for replying :)
Mine is pure melting of a solid. It runs well let's say up to 60% liquid (this value changes based on mesh quality, etc.) and then Courant number begins increasing until it messes everything (alpha becomes negative and divergence happens...) Have tried everything that might affect this (changing settings in fvSolutions, very fine mesh, etc.) still getting the same error... Any idea/input is appreciated... Regards, MJ |
You probably have checked the quality of your mesh and if it crashes when liquid flows to a particular area?
Checking the timesteps prior to crashing for high velocities or pressure jumps could help with this. In my case with adjustable timeSteps I have a deltaT of 2e-7, but my mesh is about a factor of 1000 smaller. Does your case crash at some point and do you have the error message at the end of the log at hand? |
5 Attachment(s)
Quote:
I always check the quality of the mesh before running the simulations. Indeed, they have a very good quality but refining it has not resulted in convergence yet :confused: I also ran the simulations with/without adjustableTimeStep. With it, the timestep goes down to 10^-100 :confused: I tried several meshes, every time refining it further, same error appears every time :mad: Attached you can find the results I got from one of the simulations. BTW, I ran these simulations on an HPC cluster. They only error that I got is: Code:
=================================================================================== Regards, MJ |
Quote:
|
Hi MJ,
I have a gridwidth of 2.5 µm, I think a grid study will show that I am still to big. The over all domain is about 1x0.2x0.175 mm during my tests. That's was what I meant with mine beeing smaller. The error code of MPI is not very helpful, at least not for me - doesn't spark any ideas. What about your log file? The legends of your plots aren't always visible you might want to change that for better understanding. Have you checked if there are high velocity gradients somewhere? Something happens between the 1500th and the 2000th Iteration and looking there might spark some ideas. Regards, Teresa Edit: One more thing: What Boundary Conditions do you use? |
5 Attachment(s)
Quote:
Thanks for the clarification. My simulation domain is a quarter of a cylinder with 0.5 m height and 0.35 m in diameter. The error code is not helpful at all. That is the only error that I have at the end of the log file... :confused: I am terribly sorry for the legends. Attached please find the new plots with updated legends and titles. I tried to access the files (from the server) to verify if there are high velocity gradients. But the server seems to be down... I will check this as soon as I can. Regarding boundary conditions, there is no inlet or outlet to the domain, it is a confined solid material undergoing phase change, so I am using the following simple boundaries at the walls: U: fixedValue uniform (0 0 0) T: one side is fixedValue, the rest are zeroGradient alpha.liquid: zeroGradient alpha.solid: zeroGradient p_rgh: fixedFluxPressure I really appreciate your help. Regards, MJ |
Hi MJ,
thanks for the new plots! Maybe I only suggest the following because I don't understand you case completely but without an inlet/outlet or atmospheric boundary condition you might want to look at your pressure as well. I hope looking at velocity/pressure and temperature fields will give some hints. Good luck Teresa |
Quote:
kineticGasEvaporation does not exist.... Found out that these: (solid to liquid) with positive model constant c (liquid to solid) with negative model constant c (liquid to gas) with positive model constant c work fine and I see the corresponding effects But as soon as i try to add (gas to liquid) with negative model constant c kineticGasEvaporation becomes unknown. However,: (liquid to gas) with negative model constant c works fine again. Now I just have to find out if the condensation really works. No, condensation does not work yet. I see lot's of vapour with temperatures between 364.3 and 587.3 Kelvin while condensation should take place at 2743. |
increasing Co
I also had some problems with a suddenly increasing Co number. I recognized that the problem comes from the interface between two phases. It seems as if this is a common problem of some solvers, that instabilities may arise at the interface between two phases. I could solve the problem by adding some porosity to the interface through something like this in the phaseProperties file:
interfacePorous ( (solid and gas) { type VollerPrakash; solidPhase alpha.solid; Cu 1e7; } ); |
All times are GMT -4. The time now is 00:05. |