Get Zone ID by Name
利用 thread_loop_f 和 thread_loop_c 遍历 face 和 cell 的 threads
DEFINE_ADJUST(FUDM_T_interface_melt,d)
{
int WALLID = GetZoneIdByName("interface-melt"); //call GetZoneIDByName macro
face_t f;
Thread *tf = Lookup_Thread(d,WALLID);
begin_f_loop(f,tf)
{
......
}
end_f_loop(f,tf)
}
int GetZoneIdByName(char *zoneName)
{
int zoneID=-1;
Domain *domain=Get_Domain(1);
Thread *tf;
thread_loop_f(tf, domain) // loop all face threads
{
if(strcmp(zoneName,THREAD_NAME(tf)) == 0) //using strcmp to compare thread name
{
zoneID=THREAD_ID(tf);
break;
}
}
if(-1==zoneID) //if name not same
{
Thread *tc;
thread_loop_c(tc, domain) //loop all cell threads
{
if(strcmp(zoneName,THREAD_NAME(tf)) == 0) //compare thread name
{
zoneID=THREAD_ID(tc);
break;
}
}
}
return zoneID;
}
————————————————
转载自:https://blog.csdn.net/SuperUDF/article/details/128140287