UDS Flux Function Problem
Hey all,
Recently I want to use Fluent's user define scalars(uds) to solve the nucleation of equiax grain in a ingot cast problem with Fluent Eulerian Mutiphase Model. The control equation for the nucleation of equiaxed grain as follow: http://www.cfd-online.com/Forums/vbL...9222c03b-1.gifN/http://www.cfd-online.com/Forums/vbL...9222c03b-1.gift+http://www.cfd-online.com/Forums/vbL...44659959-1.gifhttp://www.cfd-online.com/Forums/vbL...90bc5099-1.gif(uN)=source Therefor, for both the Unsteady Function and Flux Function should be defined by udf. My code is shown: DEFINE_UDS_UNSTEADY(unsteady_terms,cell_index,cell _thread,i,apu,su) { real cell_volume, physical_dt, RHO_cell, vof, vof_new, phi_old; cell_volume = C_VOLUME(cell_index,cell_thread); physical_dt = RP_Get_Real("physical-time-step"); RHO_cell = C_R(cell_index,cell_thread); vof = C_VOF_M1(cell_index,cell_thread); vof_new = C_VOF(cell_index,cell_thread); /* IMPLICIT PART OF THE TIME DERIVATIVE DISCRETIZATION */ *apu = -(cell_volume)/physical_dt; /* EXPLICIT PART OF THE TIME DERIVATIVE DISCRETIZATION */ phi_old = C_STORAGE_R(cell_index,cell_thread,SV_UDSI_M1(i)); *su = (cell_volume*phi_old)/physical_dt; } /*-------------------------*/ /* CONVECTIVE (FLUX) TERMS */ /*-------------------------*/ DEFINE_UDS_FLUX(convective_flux_terms,face_index,f ace_thread,i) { Thread *t0, *t1 = NULL; cell_t c0, c1 = -1; real NV_VEC(psi_vec), NV_VEC(A), vof, flux = 0.0, rho = 2; c0 = F_C0(face_index,face_thread); t0 = F_C0_THREAD(face_index,face_thread); vof = C_VOF(c0, t0); c0 = F_C0(face_index,face_thread); t0 = F_C0_THREAD(face_index,face_thread); /* if(PRINCIPAL_FACE_P(face_index,face_thread)) */ { F_AREA(A,face_index,face_thread); /* NORMAL VECTOR OF THE FACE */ if(BOUNDARY_FACE_THREAD_P(face_thread)) { NV_DS(psi_vec,=,F_U(face_index,face_thread),F_V(fa ce_index,face_thread),F_W(face_index,face_thread), *,1.0); flux = NV_DOT(psi_vec,A); /* FLUX THROUGH THE FACE */ } else { c1 = F_C1(face_index,face_thread); t1 = F_C1_THREAD(face_index,face_thread); NV_DS(psi_vec, =,C_U(c0,t0),C_V(c0,t0),C_W(c0,t0),*,1.0); NV_DS(psi_vec,+=,C_U(c1,t1),C_V(c1,t1),C_W(c1,t1), *,1.0); flux = NV_DOT(psi_vec,A)/2.0; /* AVERAGE FLUX THROUGH THE FACE */ } return (flux); } } Only momentum equation is solved. For these code I done two different cases: Case I, only the melt (liquid) region is considered. For this case the simulation result is reasonable; Case II, both the melt (liquid) and model (solid) are considered which means this is a liquid solid couple problem. For this case, the simulation cannot running. The error message emerged even at the first iteration: Error: FLUENT received fatal signal (ACCESS_VIOLATION) 1. Note exact events leading to error. 2. Save case/data under new name. 3. Exit program and restart to continue. 4. Report error to your distributor. Error Object: () I'd appreciate your help. Thanks in advance. |
:confused:
|
:confused::confused::confused::confused::confused: :confused::confused::confused:
|
Please help me!
|
:confused::confused::confused::confused:
|
sunbird04,
Did you use Windows? I often see such message on the Windows OS. It looks like on the Linux OS, this error message appears less frequently. |
This message is usually for a UDM number problem (for example). If you have 5 UDM-s in your UDF, but in the Fluent only 4 is set, you will have this error message. The UDF and UDS numbers are started with zero, so if your last UDM is "C_UDMI(c,t,4)", you have 5 UDMs. Check all the setups. Usually you can see the name of the desired UDF, which is providing the error.
|
All times are GMT -4. The time now is 02:31. |