| 查看: 1995 | 回复: 0 | ||
[求助]
并行计算udf
|
|
昨天下午开始着手并行计算,遇到很多问题,从64位系统编译udf,到单机多核计算的设置,晚上终于能算了。但是上午一看结果,动网格在动了一个周期之后就没有运动了。这个udf是单核计算的udf,并行计算下需要修改吗?udf如下: #include <stdio.h> #include "udf.h" //调用fluent udf头文件 //udf.h中的运动控制子程序 DEFINE_CG_MOTION(finright, dt, vel, omega, time, dtime) // finright在udf里的名字 { //# define PI 3.1415926 real freq=0.3; real T = 1.0/freq; //定义上下摇翼前后平均值(初值) real faiLC=0.0*M_PI/180; real faiFEC=0.0*M_PI/180; real faiFLC=0.0*M_PI/180; //定义上下摇翼前后幅值 real faiLA=20.0*M_PI/180; real faiFEA=32.4406*M_PI/180; real faiFLA=0.0*M_PI/180; //上下相对摇翼的相位差 real dfaiL=0.0*M_PI/180; //前后相对摇翼的相位差 real dfaiFL=0.0*M_PI/180; //前后相对摇翼的相位差 real dfaiFE=90.0*M_PI/180; //35度的角fai,翼型初始时y*轴与固定坐标系y轴的夹角 real fai=0.0*M_PI/180; //faiL=faiLC-faiLAcos(w*t+dfaiL)当t=0时的faiL用faiLini表示 real faiLini; //faiFL=faiFLC-faiFLAcos(w*t+dfaiFL)当t=0时的faiFL用faiFLini表示 real faiFLini; //摇翼角速度 real omegaFE; //上下拍翼角速度 real omegaL; //前后拍翼角速度 real omegaFL; //上下拍翼角度 // real faiL; //摇翼角度 real faiFE; //前后拍翼角度 real faiFL; /* reset velocities */ //初始化速度和角速度 NV_S (vel, =, 0.0); NV_S (omega, =, 0.0); // 定义 /*faiFE=faiFEC-faiFEA*cos(2*M_PI*freq*time+dfaiFE); omegaFE=faiFEA*2*M_PI*freq*cos(2*M_PI*freq*time+dfaiFE); omegaL=faiLA*2*M_PI*freq*cos(2*M_PI*freq*time+ dfaiL);*/ // //faiLini=faiLC-faiLA*cos(dfaiL); if (!Data_Valid_P ()) return; // 在0~T/4时间内将faiL转到faiLini,即先将翼转到初始的位置 // 这里实际就是绕x星转faiLini角,下面的程序就是要找出在固定坐标系下怎么转得到这个结果 // x星=cosfai*x+sinfai*y // x星的单位矢量=cosfai*i+sinfai*j // w=wx星*x星的单位矢量 // 现在未知的是wx星,需要wx星在0~T/4内积分=faiLini // 试凑出wx星=faiLini*w*coswt // 所以w=faiLini*w*coswt*cosfai*i+faiLini*w*coswt*sinfai*j // 实际上认为t=0时,faiL=faiLini,但模型初始不是的 // T周期w=2pi/T if (time >=0 && time<0.25*T) { //x轴omega[0],y轴omega[1],z轴omega[2] faiFEini= faiFEC+faiFEA*sin(dfaiFE); faiFLini=faiFLC+faiFLA*sin(dfaiFL); omega[0]= faiFLini*2.0*M_PI*freq*cos(2.0*M_PI*freq*time)*sin(faiFEini); omega[1]= faiFEini*2.0*M_PI*freq*cos(2.0*M_PI*freq*time); omega[2]= faiFLini*2.0*M_PI*freq*cos(2.0*M_PI*freq*time)*cos(faiFEini); } // 运动控制 if (time >=0.25*T) { faiFE=faiFEC+faiFEA*sin(2*M_PI*freq*(time-0.25*T)+ dfaiFE); faiFL=faiFLC-faiFLA*sin(2*M_PI*freq*(time-0.25*T)+dfaiFL); omegaFE=faiFEA*2*M_PI*freq*cos(2*M_PI*freq*(time-0.25*T) + dfaiFE); omegaFL=faiFLA*2*M_PI*freq*cos(2*M_PI*freq*(time-0.25*T)+dfaiFL); omegaL=faiLA*2*M_PI*freq*cos(2*M_PI*freq*(time-0.25*T)); omega[0]=-omegaFE*sin(fai)+omegaFL*cos(fai)*sin(faiFE)+omegaL*cos(faiFL)*cos(faiFE)*cos(fai)-omegaL*sin(faiFL)*sin(fai); omega[1]=omegaFE*cos(fai)+omegaFL*sin(faiFE)*sin(fai)+omegaL*cos(faiFL)*cos(faiFE)*sin(fai)+omegaL*sin(faiFL)*cos(fai); omega[2]=omegaFL*cos(faiFE)-omegaL*cos(faiFL)*sin(faiFE); } } |
» 猜你喜欢
基金申报
已经有5人回复
基金委咋了?2026年的指南还没有出来?
已经有7人回复
国自然申请面上模板最新2026版出了吗?
已经有17人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
Materials Today Chemistry审稿周期
已经有5人回复
溴的反应液脱色
已经有7人回复
推荐一本书
已经有12人回复
常年博士招收(双一流,工科)
已经有4人回复
找到一些相关的精华帖子,希望有用哦~
fluent12.0单机并行计算
已经有10人回复
UDF并行编译求助-附程序段
已经有3人回复
动网格的UDF问题
已经有21人回复
udf在非host节点下并行计算message
已经有11人回复
open_udf_library:the system cannot find the file specified.如何解决?
已经有6人回复
关于fluentUDF的一个小问题!
已经有5人回复
单机多核并行计算下UDF的问题
已经有9人回复
一个UDF并行报错
已经有17人回复
64位ANSYS FLUENT不能compile UDF的问题
已经有20人回复
UDF 改为并行计算
已经有9人回复
并行计算没有输出?怎么回事
已经有16人回复
单机多核一个cpu的串行并行求助
已经有26人回复
FLUENT读取并行case自动删除文件
已经有3人回复
【求助】ms5.5单机多核并行问题
已经有9人回复
【求助】单机多核UDF怎么并行计算
已经有15人回复
【讨论】fluent12.0和12.1的并行速度
已经有9人回复
【求助】udf出错
已经有13人回复
科研从小木虫开始,人人为我,我为人人











回复此楼
点击这里搜索更多相关资源