|
发表于 2015-7-2 15:07:44
|
显示全部楼层
#include"udf.h"
#include"mem.h"
//#include"dynamesh_tools.h"
//定义流场参考值,
#define R2D 180./M_PI
#define A 0.7532
#define L 0.64607
#define rou 1.163357
#define velocity 291.5743
#define alpha 3.06
#define beta 0
#define ZONE_ID 15
static int j=1;//迭代次数
DEFINE_ADJUST(cal_CL,d)
{
FILE *file_diag;
real af_body[ND_ND];
real m_body[ND_ND];
real af_wind[ND_ND];
real m_wind[ND_ND];
real x_cg[ND_ND];
real q=0.5*rou*velocity*velocity;//动压
///质心位置,自己指定,力矩产考点。
x_cg[0]=0.0;
x_cg[1]=0.0;
x_cg[2]=0.0;
Domain *d1=Get_Domain(1);
Thread *dt=Lookup_Thread(d1,15);
Compute_Force_And_Moment(d1,dt,x_cg,af_body,m_body,TRUE);
//定义体轴到风轴的转换矩阵
real jz[3][3];
jz[0][0]=cos(alpha/R2D)*cos(beta/R2D);
jz[0][1]=-sin(alpha/R2D)*cos(beta/R2D);
jz[0][2]=sin(beta/R2D);
jz[1][0]=sin(alpha/R2D);
jz[1][1]=cos(alpha/R2D);
jz[1][2]=0;
jz[2][0]=-cos(alpha/R2D)*sin(beta/R2D);
jz[2][1]=sin(alpha/R2D)*sin(beta/R2D);
jz[2][2]=sin(beta/R2D);
NV_ROTN_V (af_wind, = ,af_body, jz);
NV_ROTN_V (m_wind, = , m_body, jz);
file_diag = fopen ("force.txt", "a");
if(j==1)
fprintf(file_diag,"NO\t\t CL\t\t CD\t\t Cz\t\t Mz\t\t My\t\t Mx\n");
j=j+1;//j<=2位初始化步骤
if(j>2)
{
fprintf (file_diag, "%d\t\t\t" , j-2);//迭代次数
fprintf (file_diag, "%f\t %f\t\t\t%f\t\t ", af_wind[1]/q/A, af_wind[0]/q/A, af_wind[2]/q/A);
fprintf (file_diag, "%f\t\t %f\t\t %f\n", m_body[2]/q/A/L, m_body[1]/q/A/L, m_body[0]/q/A/L);
}
fclose(file_diag);
}
|
|