|
[Sponsors] |
Hello, everyone. I'd like to ask a question about the parallelization of DEFINE_GRID_ |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
March 27, 2023, 22:39 |
Hello, everyone. I'd like to ask a question about the parallelization of DEFINE_GRID_
|
#1 |
New Member
rabbit-sun
Join Date: Mar 2023
Posts: 1
Rep Power: 0 |
#include "udf.h"
#include <stdio.h> #include "dynamesh_tools.h" static int thread_I=13; #define NUM_USED_UDM 7 DEFINE_GRID_MOTION(cshadow, domain, dt, time, dtime) { #if !RP_HOST Thread *tf = DT_THREAD(dt); Thread *tf_shadow = THREAD_SHADOW(tf); Thread *t2,*t0; Node *v; face_t face,f,f_shadow; cell_t c2,cell,c0; real tui,tui1,tui2,e1,midu,p; real ee,ee1; real area,wall_shear_force; real ct0,ct1,x,reliu,wendu; real NV_VEC(V), NV_VEC(A); int n,i=0,j=0; SET_DEFORMING_THREAD_FLAG (THREAD_T0 (tf)); // set deforming flag on adjacent cell zone begin_f_loop(f, tf) { if(PRINCIPAL_FACE_P(f,tf)) { f_shadow=F_SHADOW(f,tf); /*get the corresponding face in the shadow thread */ ct0=C_T(F_C0(f,tf),THREAD_T0(tf)); p=C_P(F_C0(f,tf),THREAD_T0(tf)); ct1=C_T(F_C0(f_shadow,tf_shadow),THREAD_T0(tf_shad ow));//固体侧温度 F_AREA(A,f,tf); reliu=-1.0*BOUNDARY_HEAT_FLUX(f,tf)/NV_MAG(A); f_node_loop(f, tf, n) { v=F_NODE(f, tf, n); if(NODE_POS_NEED_UPDATE(v)) { NODE_POS_UPDATED(v); //异相化学反应:r=(A*T的0次方*e幂(-E/RT)Pj的0.5次方)/midu,j是氧化物组分co2和h20 //tui=1500*pow(2.718,-290000/8.314/ct1)*pow(p*F_YI(f,tf,0)/18,0.5)/2000+28.3*pow(2.718,-280000/8.314/ct1)*pow(p*F_YI(f,tf,1)/44,0.5)/2000;温度指的是壁温 if(C_YI(F_C0(f,tf),THREAD_T0(tf),2)>0.0&&time<=4) //C_YI(c,t,i):species mass fraction宏,此处表示有co(i=2)生成时,开始计算壁面退移速率 { tui1=0.75*pow(2.718,(-34880.92/ct1))*pow((p*C_YI(F_C0(f,tf),THREAD_T0(tf),0)/18.0),0.5)+0.01415*pow(2.718,(-33678.133/ct1))*pow((p*C_YI(F_C0(f,tf),THREAD_T0(tf),1)/44.0),0.5); if(NODE_X(v)>0.124) //本案例对机械侵蚀发生区域进行限制(忽略收敛段的机械侵蚀,只考虑扩张段机械侵蚀) { ee=1.0*NODE_Y(v); ee1=-1.0*pow(1.0*27.3399/23.7052,2)+1000000*ee*ee/pow(1.0*23.7052,2);//计算截面膨胀比与喷吼出口膨胀比之差 tui2=1.5*pow(ee1,0.49)*pow(2.718,-1.0*ee1)*0.001;//机械侵蚀计算公式 } tui=tui1+tui2; NODE_Y(v)=NODE_Y(v)+(tui1+tui2)*dtime; } else { tui=0.0; NODE_Y(v)=NODE_Y(v)+tui*dtime; } } } C_UDMI(F_C0(f,tf),THREAD_T0(tf),2)=reliu; C_UDMI(F_C0(f,tf),THREAD_T0(tf),3)=ct1; //存储固体侧温度 C_UDMI(F_C0(f,tf),THREAD_T0(tf),4)=ct0-ct1; //存储流体和固体侧温度差 C_UDMI(F_C0(f,tf),THREAD_T0(tf),5)=tui*1000.0; } } end_f_loop(f, tf) #endif } DEFINE_GRID_MOTION(c, domain, dt, time, dtime) //加载在画网格时建立的wall上 固体 { #if !RP_HOST Thread *tf=Lookup_Thread(domain, thread_I); //thread_I获取流体侧线指针 Thread *tf_shadow = THREAD_SHADOW(tf); //然后把指针传给固体,控制固体侧节点移动 Thread *t2,*t0; Node *v; Node *v_shadow; face_t face,f,f_shadow; cell_t c2,cell,c0; real A[ND_ND]; real tui,tui1,tui2,ct1,ct0,p,ee,ee1; int n,i=0; SET_DEFORMING_THREAD_FLAG (THREAD_T0 (tf_shadow)); begin_f_loop(f, tf) { if(PRINCIPAL_FACE_P(f,tf)) { p=C_P(F_C0(f,tf),THREAD_T0(tf)); f_shadow=F_SHADOW(f,tf); ct0=C_T(F_C0(f,tf),THREAD_T0(tf)); ct1=C_T(F_C0(f_shadow,tf_shadow),THREAD_T0(tf_shad ow)); f_node_loop(f_shadow, tf_shadow, n) { v_shadow = F_NODE (f_shadow,tf_shadow, n); if(NODE_POS_NEED_UPDATE(v_shadow)) { NODE_POS_UPDATED(v_shadow); if(C_YI(F_C0(f,tf),THREAD_T0(tf),2)>0.0&&time<=4) { tui1=0.75*pow(2.718,(-34880.92/ct1))*sqrt(p*C_YI(F_C0(f,tf),THREAD_T0(tf),0)/18.0)+0.01415*pow(2.718,(-33678.133/ct1))*sqrt(p*C_YI(F_C0(f,tf),THREAD_T0(tf),1)/44.0); if(NODE_X(v_shadow)>0.124) //本案例对机械侵蚀发生区域进行限制(忽略收敛段的机械侵蚀,只考虑扩张段机械侵蚀) { ee=1.0*NODE_Y(v_shadow); ee1=-1.0*pow(27.3399/23.7052,2)+1000000*ee*ee/pow(23.7052,2);//计算截面膨胀比与喷吼出口膨胀比之差 tui2=1.5*pow(ee1,0.49)*pow(2.718,-1.0*ee1)*0.001;//机械侵蚀计算公式 } NODE_Y(v_shadow)=NODE_Y(v_shadow)+(tui1+tui2)*dtim e; } else { tui=0.0; NODE_Y(v_shadow)=NODE_Y(v_shadow)+tui*dtime; } } } } } end_f_loop(f, tf) #endif } Can you help me see what's wrong with this udf parallelization? Thank you very much! |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Question about symmetry in Autodesk Cfd 2016 | ecto | Autodesk Simulation CFD | 0 | October 20, 2015 04:16 |
small question about the functionalities of topological changes in OpenFoam | ngj | OpenFOAM Running, Solving & CFD | 2 | February 28, 2013 10:02 |
Question Re Engineering Data Source | imnull | ANSYS | 0 | March 5, 2012 13:51 |
internal field question - PitzDaily Case | atareen64 | OpenFOAM Running, Solving & CFD | 2 | January 26, 2011 15:26 |
Poisson Solver question | Suresh | Main CFD Forum | 3 | August 12, 2005 04:37 |