UDF中某截面压力梯度的面积分
求解1/ρ*dp/dx的面加权平均值。
#include “udf.h” //包含常用的数据类型以及常用的函数
#include “mem.h” //包含压力、温度、密度等变量的梯度函数
#include “metric.h” //包含与一些坐标相关的函数
DEFINE_ON_DEMAND(on_demand_cal) //on_demand_cal为函数名,用户可自定义
{
real x[ND_ND]; //ND_ND在三维坐标系下求解时为3,二维坐标系求解时为2
real A[ND_ND]; //存储面积向量
Thread *t;
real dp_dx; //压力梯度dp/dx
Domain *d;
real sum_A=0.0,sum_dpx=0.0; //存储截面面积以及dp/dx的面积分
real den,area;//单元密度和面积
real avg=0.0;//存储结果
face_t f;
cell_t c0,c1;//存储与f相邻的两个单元
Thread *tc0=NULL,*tc1=NULL;//存储与f相邻的两个单元线指针
d=Get_Domain(1);//单相流均为1
t=Lookup_Thread(d,11);//获取截面(11为fluent中待处理截面的ID号)所在的线指针
begin_f_loop(f,t)//循环面
{
tc0=Lookup_Thread(d,8);//一个截面往往连接两个区域(cell zone),但本案例中取的是边界截面,因此只有一个区域(fluent中的cell_zone ID为8)相连
//tc1=Lookup_Thread(d,8);//若不是边界截面,此时应该填写与之相连的另一个cell_zone 的ID
c0=F_C0(f,t);//获取当前f的相邻单元
//c1=F_C1(f,t); //