interface of directional solidification
I am modeling a system of multicrystal silicon growth. I disabled the flow equation to solve only the energy one, starting from an clear solidmelt interface and I found during the crystal growth, the melt temperature goes to the melting point and so the whole melt gives out latent heat at the same time and results an wide liquidsolid mushy zone as well as an obscure solidmelt interface. That is not right for reality. anybody know how to fix it? my settings of liquidius and solidus temperature are same, the material is pure silicon, but that does not seem to work.

Re: interface of directional solidification
Hi,
Is it czochralski crystal growth? 
Re: interface of directional solidification
no, it is DSS furnace

Re: interface of directional solidification
Try to set one temp for solid and let say 0.001 K more for liquid ... maybe this will help

Re: interface of directional solidification
R u modeling it in steady state or transient?

Re: interface of directional solidification
Transient, the steady state will never reach even in physics consideration. there is no use setting delta T to 0.00001. I have tossed the model and write my own udf and, tackled the problem.

Re: interface of directional solidification
By steady state I mean looking at a perticular instant.
Would be interesting to know how u tossed the model and written your own UDF 
Re: interface of directional solidification
Yes, I agree it would be better to see what you have already estimated? If you could post your udf then it would be more clear what we are talking about.

Re: interface of directional solidification
below is my udf. the hypothesis is, the temperature gradient in melt is very small. I neglect the fluid flow and set a large thermal conductivity above the melt point.
#include "udf.h" #include "mem.h" #define Enthalpy 1317507.48 #define Latent_heat 72368.3 #define ID 8 static int last_ts = 1; /* Global variable. Time step is never <0 */ DEFINE_ADJUST(my_adjust5,d) { cell_t c,C0,C1; Thread *tf; Thread *t = Lookup_Thread(d,ID); int curr_ts,n,allow; face_t f; curr_ts = N_TIME; if (last_ts != curr_ts) { last_ts = curr_ts; /* things to be done only on first iteration of each time step can be put here */ begin_c_loop(c,t) { /*分辨是否有新的液"单元�� 入到固液界面，0表示液"，1表示固" ，2表示界面*/ if(C_H(c,t)<=Enthalpy100 && C_UDMI(c,t,0)==0) { /*Message("New boundary: C_H=%f,C_T=%f\n",C_H(c,t),C_T(c,t));*/ allow=0; c_face_loop(c,t,n) { f = C_FACE(c,t,n); tf = C_FACE_THREAD(c,t,n); C0=F_C0(f,tf); C1=F_C1(f,tf); if(C0==c) { if(C_UDMI(C1,t,0)==1) {allow=1;} } else { if(C_UDMI(C0,t,0)==1) {allow=1;} } } if(allow==1) { C_UDMI(c,t,0) = 2; C_UDMI(c,t,1) = Latent_heat; } } if(C_H(c,t)>Enthalpy+10 && C_UDMI(c,t,0)==1) { C_UDMI(c,t,0) = 2; C_UDMI(c,t,1) = 0; } /*handle latent heat, 决定是否要退出界面*/ if(C_UDMI(c,t,0)==2) { if(C_UDMI(c,t,1)>Latent_heat+100) {C_UDMI(c,t,0)=0;} if(C_UDMI(c,t,1)<10) {C_UDMI(c,t,0)=1;} if(C_UDMI(c,t,1)>=0 && C_UDMI(c,t,1)<=Latent_heat) { C_UDMI(c,t,1)+=C_H(c,t)Enthalpy; Message("the enthalpy is %f\n",C_H(c,t)); } } } end_c_loop(c,t) } begin_c_loop(c,t) { /*handle latent heat, 决定是否要退出界面*/ if(C_UDMI(c,t,0)==2) { C_H(c,t)=Enthalpy; C_T(c,t)=1685; } } end_c_loop(c,t) /*printf("%f\n",temppp);*/ } /***********************************************/ DEFINE_ON_DEMAND(init_udm) { Domain *d; /* declare domain pointer since it is not passed as an argument to the DEFINE macro */ Thread *t; Thread *tr; cell_t c; d = Get_Domain(1); /* Get the domain using Fluent utility */ tr = Lookup_Thread(d,ID); /* Loop over all cell threads in the domain */ thread_loop_c(t,d) { begin_c_loop(c,t) { C_UDMI(c,t,0) = 0; C_UDMI(c,t,1) = 0; if(t==tr) { if(C_T(c,t)>1684.5 && C_T(c,t)<1685.5) { C_UDMI(c,t,0) = 2; C_UDMI(c,t,1) = Latent_heat; } else { if(C_T(c,t)<=1684.5) {C_UDMI(c,t,0) = 1;} } } } end_c_loop(c,t) } /* begin_c_loop(c,tr) { if(C_T(c,tr)>1684.6 && C_T(c,tr)<1685.4) {C_UDMI(c,tr,1) = Latent_heat;} } end_c_loop(c,tr) */ } 
All times are GMT 4. The time now is 03:07. 