我想編寫源項(xiàng)𝑆=∇(𝜌𝑣(ℎ_𝑙−𝐻 ),fluent里好像沒(méi)有對(duì)一堆式子求梯度的宏,那我想用C_UDSI=𝜌𝑣(ℎ_𝑙−𝐻 ,再用UDM=C_UDSI_G,最后用源項(xiàng)S=UDM,不知行得通嗎?或者直接把這個(gè)式子開出來(lái),但這樣又麻煩又難寫,且不知正確。如果可行,UDS如何設(shè)置。請(qǐng)各位前輩暢言,下面是我的UDF:
DEFINE_ADJUST(adjust_gradient, domain)
{
Thread *t;
real a,b,d;
cell_t c;
face_t f;
domain = Get_Domain(domain_ID);
/* Fill UDS with the variable. */
thread_loop_c (t,domain)
{
begin_c_loop (c,t)
{
a=C_U(c,t);
b=C_V(c,t);
d=sqrt(a*a+b*b);
C_UDSI(c,t,0) = C_R(c,t)*d*((C_H(c,t)-(1-C_LIQF(c,t))*g*C_T(c,t))/C_LIQF(c,t)-C_H(c,t));
}
end_c_loop (c,t)
}
}
#include"udf.h"
DEFINE_SOURCE(guye_source,cell,thread,dS,eqn)
{
real source;
cell_t c;
Thread *t;
C_UDMI(c,t,0)=NV_MAG(C_UDSI_G(c,t,0));
source=C_UDMI(c,t,0);
dS[eqn]=0.0;
return source;
}
![fluent中梯度UDF源項(xiàng)]()
1.png
![fluent中梯度UDF源項(xiàng)-1]()
2.png |