五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

這是一個(gè)自娛自樂的FLUENT udf分享

2023-02-16 14:12 作者:hhhappyending  | 我要投稿

自制udf分享(以及尋求幫助)

Warning?。。。。。。。。。。。。。。。。。。?!!屎山代碼警告,意義不明的變量定義警告

Udf功能:粘性函數(shù)1,2通過控制流體粘性略微增加了歐拉多相流計(jì)算流體注入容器時(shí)的穩(wěn)定性(出現(xiàn)發(fā)散跡象時(shí)能救回來,但過于離譜的邊界條件該發(fā)散還是會(huì)發(fā)散)

速度邊界函數(shù):根據(jù)第二相流體體積變化率實(shí)時(shí)調(diào)整速度邊界入口速度。

迭代結(jié)束執(zhí)行函數(shù):當(dāng)某一參數(shù)滿足設(shè)定標(biāo)準(zhǔn)時(shí)直接中斷計(jì)算,這里設(shè)置的是當(dāng)出口質(zhì)量流大于0.05kg/s時(shí)停止計(jì)算。

#include?"udf.h"

#include?"math.h"

#include?"sg_udms.h"

#include?"unsteady.h"

#include?"sg_mphase.h"

#define?standard 20

#define?inlet_zone 9049

#define?mass_rate 0.5

#define?acc 0.001

#define?dec 0.0001

#define?outlet_zone1 19

#define?outlet_zone2 20

#define?flux_standard 0.05

?

DEFINE_PROPERTY(pp_viscosity,c,t)

{

real SR=C_STRAIN_RATE_MAG(c,t);

real n=0.511;

real k=1800;

real YSR;

real PV=500;

real YP=300;

real EV;

real MAG=0;

YSR=YP/(k-PV);

EV=1;

MAG=sqrt(pow(C_U(c,t),2)+pow(C_V(c,t),2)+pow(C_W(c,t),2));

YSR=YP/(k-PV);

if?(SR<YSR)

{EV=YP*((2*YSR-SR)/(YSR*YSR))+k*((2-n)+(n-1)*(SR/YSR));}

else

{EV=(YP/SR)+k*(exp((n-1)*log(SR/YSR)));}

if(MAG>standard)

{EV=MAG/standard*mu*EV;}

return?EV;

}

?

Pp材料的粘性系數(shù)函數(shù),本體為非牛頓流體材料的粘性系數(shù),最后增加了一個(gè)判定標(biāo)準(zhǔn),所有速度大于standard變量的pp材料粘性都會(huì)隨速度線性增大,standard變量已在函數(shù)頂部列出可以手動(dòng)修改。

?

DEFINE_PROPERTY(air_viscosity,c,t)

{real EV;

real MAG=0;

EV=0.0017894;

MAG=sqrt(pow(C_U(c,t),2)+pow(C_V(c,t),2)+pow(C_W(c,t),2));

if(MAG>standard)

{EV=MAG/standard*mu*EV*3;}

return?EV;

}

Air材料的粘性系數(shù)函數(shù),同pp材料,對standard變量的修改同樣會(huì)對本函數(shù)生效。

???????????

DEFINE_PROFILE(inlet_v_eular,t,i)

{Domain *d;

Thread *tt;

cell_t c;

face_t f;

real a=0;

real b=0.72;

real v=0.00373;

real h=0;

d=Get_Domain(3);

tt=Lookup_Thread(d,inlet_zone);

begin_c_loop(c,tt)

a+=C_VOLUME(c,tt)*C_VOF(c,tt);

end_c_loop(c,tt)

?

#if?RP_NODE

a=PRF_GRSUM1(a);

#endif

?

begin_c_loop(c,tt)

?

if(C_UDMI(c,tt,0)==0)

{C_UDMI(c,tt,0)=a;}

if(C_UDMI(c,tt,1)==0)

{C_UDMI(c,tt,1)=a;}

?

if(C_UDMI(c,tt,2)<0.72)

{C_UDMI(c,tt,2)=b;}

?

if(N_TIME>3)

{if(N_TIME%2)

{v=2000*(a-C_UDMI(c,tt,0))/PREVIOUS_TIMESTEP;

v=sqrt(pow(v,2));

if(v<mass_rate&v!=0)

{C_UDMI(c,tt,2)=acc+C_UDMI(c,tt,2);}

if(v>mass_rate)

{C_UDMI(c,tt,2)=-dec+C_UDMI(c,tt,2);}

C_UDMI(c,tt,1)=a;}

?

if(N_TIME%2==0)

{v=2000*(a-C_UDMI(c,tt,1))/PREVIOUS_TIMESTEP;

v=sqrt(pow(v,2));

if(v<mass_rate&v!=0)

{C_UDMI(c,tt,2)=acc+C_UDMI(c,tt,2);}

if(v> mass_rate)

{C_UDMI(c,tt,2)=-dec+C_UDMI(c,tt,2);}

C_UDMI(c,tt,0)=a;}}

?

b=C_UDMI(c,tt,2);

?

end_c_loop(c,tt)

?

b=PRF_GRHIGH1(b);

begin_f_loop(f,t)

F_PROFILE(f,t,i)=b;

end_f_loop(f,t)}

?

Inlet_v_eluar函數(shù)主要通過監(jiān)控流場域中pp材料的質(zhì)量實(shí)時(shí)變化率修改進(jìn)出口流速,使質(zhì)量變化率保持恒定,重要的變量為inlet_zone,mass_rate,acc,dec,這些變量均在頂部中列出,其中在更換不同模型的算例時(shí)inlet_zone必須改為對應(yīng)模型的流場域ID,錯(cuò)誤的ID將導(dǎo)致算例崩潰,算例ID可在cell_room_condition選項(xiàng)下,對應(yīng)域名字后面查看。mass_rate變量為目標(biāo)質(zhì)量變化率,如果流場中材料變化率低于mass_rate,則入口速度每次迭代都會(huì)加上acc的值,直至變化率等于mass_rate,相反若高于mass_rate,則每次迭代會(huì)減去dec的值。

?

DEFINE_EXECUTE_AT_END(execute_vof_calculate)

{Domain *d;

Thread *t1;

Thread *t2;

cell_t c;

real a=0;

real flux=0;

real flag=0;

face_t f;

real area=0;

real farea[ND_ND];

int?outlet_zone1=19;

int?zone_ID2=20;

d=Get_Domain(3);

t1=Lookup_Thread(d,outlet_zone1);

t2=Lookup_Thread(d,zone_ID2);

?

begin_f_loop(f,t1)

F_AREA(farea,f,t1);

area+=NV_MAG(farea);

a+=F_FLUX(f,t1);

end_f_loop(f,t1)

?

begin_f_loop(f,t2)

F_AREA(farea,f,t2);

area+=NV_MAG(farea);

a+=F_FLUX(f,t2);

end_f_loop(f,t2)

?

#if?RP_NODE

flux=PRF_GRSUM1(a)*1e9/2000*CURRENT_TIMESTEP;

area=PRF_GRSUM1(area)*1e6;

#endif

node_to_host_real_1(flux);

#if?RP_HOST

if(flux>flux_standard)

{RP_Set_Integer("interruptflag",9);}

#endif

}

?

execute_vof_calculate函數(shù)為vof法的定量停止函數(shù),需要配合Fluent的command指令和TUI命令一同使用,具體指令會(huì)在底部列出。execute_vof_calculate函數(shù)的重要變量是outlet_zone1,outlet_zone2和flux_standard,均在頂部列出。該函數(shù)具體作用是當(dāng)單位時(shí)間內(nèi)流出指定邊界的體積流量高于flux_standard時(shí),會(huì)更改interruptflag變量值將其置為9,然后Fluent內(nèi)部指令檢測到interruptflag變量變化會(huì)立即終止計(jì)算,從而達(dá)到定量停止的目的。當(dāng)更換不同模型時(shí)必須將outlet_zone1和outlet_zone2改為對應(yīng)出口邊界的ID,具體ID可在Fluent中boundary?condition選下下出口邊界名后部查看。

Command指令如下所示:

(if(>(%rpgetvar 'interruptflag) 0)(set! mstop? #t))

TUI命令如下所示:

(rp-var-define 'interruptflag 0 'interger #f)

其中TUI命令每次啟動(dòng)都需要在console指令框中重新輸入。

?

關(guān)于速度入口函數(shù),因?yàn)檎也坏襟w積關(guān)于時(shí)間的導(dǎo)數(shù)宏從而足足定義了三個(gè)udmi位輔助計(jì)算,從而使得計(jì)算效率奇低,如果哪個(gè)大佬有辦法改進(jìn)的話麻煩私我一下,非常感謝,另外如果看的人多的話,或許可能也許。。會(huì)出一個(gè)實(shí)際操作教學(xué)?如果懶病不犯的話(笑)


這是一個(gè)自娛自樂的FLUENT udf分享的評論 (共 條)

分享到微博請遵守國家法律
边坝县| 邛崃市| 大渡口区| 武汉市| 朝阳县| 临湘市| 鄯善县| 临安市| 大余县| 宕昌县| 交城县| 宜春市| 和静县| 太谷县| 金溪县| 句容市| 弥渡县| 卫辉市| 洛阳市| 雅安市| 太康县| 上杭县| 伊川县| 兖州市| 新民市| 兴和县| 兴隆县| 阜南县| 浏阳市| 漳浦县| 侯马市| 桃园县| 贵阳市| 定陶县| 珲春市| 娱乐| 平果县| 榆树市| 云龙县| 内江市| 沂水县|