InterFoam: add a source term in alpha eq.
I'm try to simulate the growth of a cristal using,as a basis, interfoam.
As i'm at the beginning, i consider as a first case, a simple 2D circle that grows at a constant velocity "Uoo". Alpha=1 in the circle and 0 outside.
So what i want to "see" it's just a simple circle that grows in time in my square domain.
If the basic alpha transport equation is something like that:
in my case I add a "second" velocity that is the envelope growth:
So if I initialise my U=0 (I 've not motion of my circle) and I impose a constant Ug, how it's possible to integrate correctly this term "Ug*grad(alpha)" in the equation?
I tried to replace directly U=Ug BUT the calculation of the phi fluxes is quite complicated and realted to Ueqn so I cannot do that easily.
I know perhaps is a dummy question but it's 10 days I'm trying to figure out how to solve it and I don't see a clever solution to that.
Thank you in advance.
if i were you i would take a look at the alphaEqn.H of interPhaseChangeFoam and just tailor it to suite your needs.
Although i don't understand your reasons behind it, because the alpha transport equation reads somehow different from what you have posted here.
thank you I'm looking at it right now I guess I've to work on the "Su" term (I don't know exactly how yet!
Why I'm using the interfoam approach?
Cause I have two phases in my study (liquid and solid) and So I need a "marker" for the phase.
So as I need a method that allows me to transport phases without numerical diffusion I thought to interFoam where all the "tricks" in order to have a sharp interface during time are already developped.
So i tried rigid translations and roatation of a circle with success and now I was trying to add the term related to surface growth.
In the complete problem it will be function of Temperature and other thermodynamical parameters but for the moment I impose it.
Why so do you think my approach is not the good one?
So a good way to do that could be to write the "Su" term like that?
// Divergence term is handled explicitly to be
// consistent with the explicit transport solution
fvc::grad(alpha1) & Ug
where Ug is the "growth velocity" vector field (I already initalised in my code)?
Thank you again.
I think interFoam is not the best method in cristal grow, because usually the interface transition is very sharp, and with VOF method, you will get a "sharp but not enough" interface, + difficulties to set thermal source / density.
The best method may be Level set, but i don"t know how to deal with in OpenFoam (though i've seen a VOF/ level set coupling related to openFoam somewhere in a workshop pdf.)
Anyway, i would try to setup an hybrid buoyant+InterFoam, i.e thermal with variable properties and VOF, so if you go that way, we can share some part of the solver.
yes your Su looks fine, give it a try. From the point of view of OF it looks good :), if it makes sense from a point of view of the physics you'll see.
it worked in OF (compilation+running) but not under a phisical point of view...I don't know why, i also tried to solve explicitly the equation:
" alpha1=alpha1-runTime.deltaT()*(Ug_mod*mag(fvc::grad(alpha1))); "
with Ug_mod, module of the velocity vector
but I'm having strong oscillations close to the circle-interface and alpha that becomes higher than 1.
Do you think something is wrong?
(before I tried to put Su as supposed and i got the same kinda of results)
don't worry it never works at the first try:) Did you also implement source and sink terms to the pEqn and UEqn? Because it might be that you create some 1st phase but do not transport it away.
olivierG, the solid-liquid interface is sharp for pure materials, and diffuse for melting of alloys.
Nonetheless I agree interFoam is not the best choice for this problem. Instead, if not too late, I recommend having a look at phase-change solvers which other users have posted:
nice that my melting solver
made it into another thread of this forum. :)
I although tried using interFoam for melting and solidification problems. But as you have a solid phase, alpha cannot be transported as done in VOF. My solver uses the enthalpy-porosity-method proposed by Voller. The solver will be improved in the next months.
|All times are GMT -4. The time now is 09:00.|