CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   FLUENT (https://www.cfd-online.com/Forums/fluent/)
-   -   student need your help (https://www.cfd-online.com/Forums/fluent/217541-student-need-your-help.html)

Ya Hong May 16, 2019 00:29

student need your help
 
When I ran my UDF, the following question came up. Can anyone tell me how to solve it
https://www.cfd-online.com/Forums/at...1&d=1557980543
there is my code.
/*ErosionTabakoff.C*/
#include "udf.h"
#include "dpm.h"
#define bv 2.41
Domain *domain;
enum{
NUM_OF_HITS,AVG_DIAMETER,AVG_ALPHA,AVG_VMAG,AVG_MD OT, MAX_ALPHA, MIN_ALPHA, NUM_OF_USED_UDM
};
int UDM_checked=0;
void reset_UDM_s(void);
int check_for_UDM(void)
{
Thread *t;
if(UDM_checked)
return UDM_checked;
thread_loop_c(t,domain)
{
if(FLUID_THREAD_P(t))
if(NULLP(THREAD_STORAGE(t,SV_UDM_I)))
return 0;
}
UDM_checked=1;
reset_UDM_s();
return UDM_checked;
}
void reset_UDM_s(void)
{
Thread *t;cell_t c;
face_t f;
int i;
if (!check_for_UDM())
return;
Message ("Resetting User Defined Memory...\n");
thread_loop_f(t,domain)
{
if(NNULLP(THREAD_STORAGE(t,SV_UDM_I)))
{
begin_f_loop(f,t)
{
for(i=0;i<NUM_OF_USED_UDM;i++)
F_UDMI(f,t,i)=0.;
}
end_f_loop(f,t)
}
else
{
Message("Skipping FACE thread no. %d..\n",THREAD_ID(t));
}
}
thread_loop_c(t,domain)
{
if(NNULLP(THREAD_STORAGE(t,SV_UDM_I)))
{
begin_c_loop(c,t)
{
for(i=0;i<NUM_OF_USED_UDM;i++)C_UDMI(c,t,i)=0.;
}
end_c_loop(c,t)
}
else
{
Message("Skipping CELL thread no. %d..\n",THREAD_ID(t));
}
}
Message("---Done.\n");
}
DEFINE_DPM_SCALAR_UPDATE(dpm_scalup,c,t,if_init,p)
{
if(if_init)
P_USER_REAL(p,0)=0;
}
DEFINE_DPM_EROSION(dpm_erosion,p,t,f,normal,alpha, Vmag,Mdot)
{
real A[ND_ND],area;
int num_in_data;
Thread *t0;cell_t c0;
real R;
if(!UDM_checked)
if(!check_for_UDM())
return;c0=F_C0(f,t);
t0=THREAD_T0(t);
num_in_data=F_UDMI(f,t,NUM_OF_HITS);
if(num_in_data==0)
{
F_UDMI(f,t,MAX_ALPHA)=alpha;C_UDMI(c0,t0,MAX_ALPHA )=F_UDMI(f,t,MAX_ALPHA);
F_UDMI(f,t,MIN_ALPHA)=alpha;C_UDMI(c0,t0,MIN_ALPHA )=F_UDMI(f,t,MIN_ALPHA);
}
if(num_in_data>0)
{
if(alpha>F_UDMI(f,t,MAX_ALPHA))
{
F_UDMI(f,t,MAX_ALPHA)=alpha;C_UDMI(c0,t0,MAX_ALPHA )=F_UDMI(f,t,MAX_ALPHA);
}
if(alpha<F_UDMI(f,t,MIN_ALPHA))
{
F_UDMI(f,t,MIN_ALPHA)=alpha;C_UDMI(c0,t0,MIN_ALPHA )=F_UDMI(f,t,MIN_ALPHA);
}
}
F_UDMI(f,t,AVG_DIAMETER)=(P_DIAM(p)+num_in_data*F_ UDMI(f,t,AVG_DIAMETER))/(num_in_data+1);C_UDMI(c0,t0,AVG_DIAMETER)=F_UDMI( f,t,AVG_DIAMETER);
F_UDMI(f,t,AVG_ALPHA)=(alpha+num_in_data*F_UDMI(f, t,AVG_ALPHA))/(num_in_data+1);C_UDMI(c0,t0,AVG_ALPHA)=F_UDMI(f,t ,AVG_ALPHA);
F_UDMI(f,t,AVG_VMAG)=(Vmag+num_in_data*F_UDMI(f,t, AVG_VMAG))/(num_in_data+1);C_UDMI(c0,t0,AVG_VMAG)=F_UDMI(f,t, AVG_VMAG);
F_UDMI(f,t,AVG_MDOT)=(Mdot+num_in_data*F_UDMI(f,t, AVG_MDOT))/(num_in_data+1);C_UDMI(c0,t0,AVG_MDOT)=F_UDMI(f,t, AVG_MDOT);
F_UDMI(f,t,NUM_OF_HITS)=num_in_data+1;C_UDMI(c0,t0 ,NUM_OF_HITS)=num_in_data+1;
R=1-0.0016* Vmag*sin(alpha);
if(alpha<=60)
F_STORAGE_R(f,t,SV_DPMS_EROSION)+=1.505*pow(10,-6)*pow((1+0.296*sin(4.5*alpha)),2)*pow(Vmag,2)*cos (1-R*R)+5.0*pow(10,-12)*pow(Vmag,4)*pow(sin(alpha),4);
else
F_STORAGE_R(f,t,SV_DPMS_EROSION)+=1.505*pow(10,-6)*pow(Vmag,2)*cos(1-R*R)+5.0*pow(10,-12)*pow(Vmag,4)*pow(sin(alpha),4);
P_USER_REAL(p,0)=1.;
}
DEFINE_DPM_LAW(stop_dpm_law,p,if_cpld)
{
if(0.<P_USER_REAL(p,0))
P_MASS(p)=0.;
}
DEFINE_ON_DEMAND(reset_UDM)
{
domain=Get_Domain(1);
reset_UDM_s();
}


All times are GMT -4. The time now is 02:00.