
[Sponsors] 
June 12, 2012, 08:06 
isothermal phase change

#21 
Senior Member
Fabian Roesler
Join Date: Mar 2009
Location: Bad Friedrichshall, Germany
Posts: 154
Rep Power: 8 
Hi
Sorry, I messed up the two solvers and thought that David needed my solver for OF_2.1. I once compiled the meltFoam solver for isothermal phase change problems for OF_1.7. I remember the problem you are talking about. You can go for icoFoam but I would suggest using the buoyantBoussinesPimpleFoam. You can use pimpleControls instead simpleControls in the old solver. However syntax changed a little bit during the years. Regards Fabian 

June 13, 2012, 04:06 

#22 
Member
Anja Miehe
Join Date: Dec 2009
Location: Freiberg / Germany
Posts: 48
Rep Power: 7 
Hi,
I have absolutely no idea which of the solvers David meant but know he has both and you additional ideas. Thanks for the like. Regards, Anja 

August 15, 2012, 13:45 

#23 
New Member
David
Join Date: May 2012
Location: Canada
Posts: 12
Rep Power: 5 
Thanks Fabian and Anja , this had been helpful to me and I agree , i think that buoyantboussinesqFoam is more suitable


November 7, 2012, 09:29 

#24 
New Member
Chad
Join Date: Sep 2011
Posts: 16
Rep Power: 5 
Hello, AnjaI also modified meltFoam, instead of using enthalpy based update like yours I used temperature based update for my liquid fraction. All the others are similar to yours. But my results are not correct, do you have any suggestions? Thanks in advance.


November 8, 2012, 04:09 
linear step and continuous liquid fraction function

#25 
Senior Member
Fabian Roesler
Join Date: Mar 2009
Location: Bad Friedrichshall, Germany
Posts: 154
Rep Power: 8 
Hi Chaolian
Nice that somebody else then Anja and I are interested into solid/liquid phase change problems. As you already know, the linear liquid fraction is the standard case from literature as proposed by many authors. There are some predictor corrector methods to update temperature to be consistent with the enthalpytemperaturecurve. This is necessary as the enthalpy equation is nonlinear. In the case of a continuous liquid fraction function, you can substitute the function into the energy conservation equation. The drawback is that you still have a nonlinear function. But as you do not solve for the liquid fraction anymore, the nonlinear behavior is quite small. The error is small and so no or only a few iterations are necessary to solve the equation. I once programed a solver for the linear function using the Brent et al. corrector method and some newer method by Voller. However the solver was not very stable and still 20 and more iterations for the temperature were necessary for solving. Hope this helps Best wishes Fabian 

November 8, 2012, 04:37 

#26  
New Member
Chad
Join Date: Sep 2011
Posts: 16
Rep Power: 5 
Quote:
It's very nice to get your reply. I totally agree with you that your erf fitting approach, and some other predictor corrector method are better than classical linear approach. What I want to do is just try to implement the classical approach as a good practice to learn OpenFOAM structure and coding syntax, etc. Many thanks for your reply and comments, Best, Chao 

February 8, 2013, 12:05 

#27  
New Member
Tim Vincent
Join Date: Jan 2013
Posts: 2
Rep Power: 0 
Quote:
Now I'm wondering if you have made any progress on adding motion to the solid region. It seems like it is a little more complicated than simply adding a DC*(volVectorField solidVelocity) term to the explicit terms of the momentum equation. I tried that and the solution won't converge. Any ideas? 

February 13, 2013, 08:09 

#28 
Member
Anja Miehe
Join Date: Dec 2009
Location: Freiberg / Germany
Posts: 48
Rep Power: 7 
Hello Tim,
nice to see that this thread does put together people interested in solving for solidification with OpenFOAM. As far as your question is concerned, I do not know why your code does not converge. I started from the updated code I posted, everything is still transient although I am dealing with continuous casting and do have quasi steadystate conditions as well. Then I added in the "createFields.H" the following field: Code:
Info<< "Reading field Us\n" << endl; volVectorField Us ( IOobject ( "Us", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh ); Code:
fvVectorMatrix UEqn ( fvm::ddt(U) + fvm::div(phi, U)  fvm::laplacian(nu, U) + fvm::Sp(DC, U) // since DC=>0, all time implicit is possible  DC*Us // additional term for moving solidified shell << continuous casting >> ); UEqn.relax(); The Us field, you first copy the U file, then you change for your velocities  if they are that easy to be got. I am dealing with a curvilinear geometry, so I do produce my Us velocity field using a Stokes solution, that means I do use simpleFoam with the exact same region and boundaries but very high viscosity. Then, I do copy the final velocity field to be my Us. I hope that will help you. Regards, Anja 

February 13, 2013, 11:45 

#29 
New Member
Tim Vincent
Join Date: Jan 2013
Posts: 2
Rep Power: 0 
Thanks Anja! It looks like that is basically the same thing that I was trying. I did a little more investigating and found that my problem was related to need for greater relaxation. I had my T relaxationFactor set to 0.5 but I needed it at 0.2 for my problem. I am guessing this is related to the interaction between the complex temperature/velocity boundary condition that I am using and the constant velocity of the solid region. Happily my solution is converging now.


February 13, 2013, 12:52 
closecontact melting

#30 
Senior Member
Fabian Roesler
Join Date: Mar 2009
Location: Bad Friedrichshall, Germany
Posts: 154
Rep Power: 8 
Hi Anja,
hi Tim I can just confirm your steps to include solid movement into the solver. I used the following: Code:
fvVectorMatrix UEqn ( fvm::ddt(rho, U) + fvm::div(rhoPhi, U)  fvm::laplacian(mu, U) + rho*fvm::Sp(DC, U)  rho*DC*Us ); Best wishes Fabian 

March 4, 2013, 00:35 

#31 
New Member
Chad
Join Date: Sep 2011
Posts: 16
Rep Power: 5 
Thanks for your work. But why don't you have U solver in system/fvSolution file? Don't you solve UEqn?


March 4, 2013, 03:24 
momentumPredictor

#32 
Senior Member
Fabian Roesler
Join Date: Mar 2009
Location: Bad Friedrichshall, Germany
Posts: 154
Rep Power: 8 
Hi,
the U solver is only necessary when using a momentumPredictor step in PISO or PIMPLE. I don't do the predictor step as it does not help convergence for the melting case. Without predictor step, U is corrected after the pressure equation. Regards Fabian 

March 4, 2013, 13:07 
Concentration equation

#33 
New Member
Join Date: Apr 2012
Posts: 21
Rep Power: 5 
It is good to see people are working on melting problem. Have you guys ever tries to include species equation in your codes? That is what I am working on right now. Any comments?


March 4, 2013, 13:11 

#34  
New Member
Chad
Join Date: Sep 2011
Posts: 16
Rep Power: 5 
Quote:


March 5, 2013, 03:45 
Species

#35 
Senior Member
Fabian Roesler
Join Date: Mar 2009
Location: Bad Friedrichshall, Germany
Posts: 154
Rep Power: 8 
Hi there
No, never tried that. But it should not be that hard to implement it. Just add another volScalarField C and solve for it after the energy conservation equation. You also have to use another liquid fraction function and an additional one for the concentration. As all melting solvers here in the thread refer to the enthalpy porosity method by Voller and Prakash you could have a look for their solver. They wrote an article on the method for additional species transport. Regards Fabian 

March 5, 2013, 12:55 

#36 
New Member
Join Date: Apr 2012
Posts: 21
Rep Power: 5 
Fabian:
Thanks for your answer, I really appreciate it. However, the problem I am working on is somehow different so I am not sure I can use your solver. In your paper you have updated liquid fraction by an error function (equation (6) in the paper), but I want to use Lever Microsegregation rule for liquid fraction, and since it is numerical very unstable so I have implemented the liquid fraction updating scheme by C. Prakash and V. Voller. in "ON THE NUMERICAL SOLUTION OF CONTINUUM MIXTURE MODEL EQUATIONS DESCRIBING BINARY SOLIDLIQUID PHASE CHANG, Numerical Heat Transfer, Part B:Volume 15, Issue 2, 1989" I will updated you guys in this thread if i find sth interesting. 

April 8, 2013, 18:30 

#37 
New Member
Join Date: Apr 2012
Posts: 21
Rep Power: 5 
Hi Fabian
Would you please let me know why you have used "mesh.solver( .select(finalIter))" in your code? What does this statement do? 

April 13, 2013, 02:47 
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.fin alInnerIter())))

#38 
Senior Member
Fabian Roesler
Join Date: Mar 2009
Location: Bad Friedrichshall, Germany
Posts: 154
Rep Power: 8 
Hi Yahoo
Have a look into pisoFoam solver. There you have this statement split up. In most solvers, you specify two different tolerances. One for the last iteration and the other for all previous iterations. An example: Code:
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter()))) Code:
p_rgh { solver PCG; preconditioner DIC; tolerance 1e8; relTol 0.01; } p_rghFinal { $p_rgh; relTol 0; } Regards Fabian 

April 17, 2013, 13:35 

#39 
New Member
Join Date: Apr 2012
Posts: 21
Rep Power: 5 
Hi Guys
Have you tried to compile erfConvectiveMeltingPimpleFoam.C (Fabian's code for melting) on OpenFOAM 2.2.0? I am getting this compile error: make: *** No rule to make target `/opt/OpenFOAM2.2.0/src/finiteVolume/lnInclude/newFvPatchField.C', needed by `erfConvectiveMeltingPimpleFoam.dep'. Stop. 

April 18, 2013, 03:00 
OF2.1 meltFoam

#40 
Senior Member
Fabian Roesler
Join Date: Mar 2009
Location: Bad Friedrichshall, Germany
Posts: 154
Rep Power: 8 

Tags 
melting openfoam 
Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
conduction problem  venkataramana  OpenFOAM  3  December 1, 2013 08:30 
natural convection problem for a CHT problem  SeHee  CFX  2  June 10, 2007 06:29 
Adiabatic and Rotating wall (Convection problem)  ParodDav  CFX  5  April 29, 2007 19:13 
Melting Problem  M  FLUENT  0  April 29, 2007 16:07 
Is this problem well posed?  Thomas P. Abraham  Main CFD Forum  5  September 8, 1999 14:52 