仿真在线:有限元分析咨询与培训中心——Ansys|Fluent|Abaqus|HFSS|SolidWorks|课程培训

[轉(zhuǎn)載]fluent學(xué)習(xí)----關(guān)于six dof的神作求解釋

2017-01-14  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

原文地址:fluent學(xué)習(xí)----關(guān)于six dof的神作求解釋作者:松松
本人在中文流體網(wǎng)上見了一篇6dof的資料,但對里面的last_call代表什么意思不能理解,還有在編譯時出錯是怎么回事?好像不認(rèn)識boolean這個運(yùn)算符 ,我算的是單剛體,是否可以把last_call去掉
....src6dof.c(195) : error C2146: syntax error : missing ';' before identifier 'last_call'
....src6dof.c(195) : error C2065: 'last_call' : undeclared identifier
望大蝦不吝賜教
程序如下:
#include "udf.h"
#define ZONE_ID1 8

#define MASS 907.185
#define IXX 27.116
#define IYY 488.094
#define IZZ 488.094
#define IXZ 0.0
#define IXY 0.0
#define IYZ 0.0
#define NUM_CALLS 2
#define R2D 180./M_PI

#if !RP_NODE
static void
write_velocities (real *v_old, real *om_old, real *euler)
{
FILE *file_velo;
register int i;
if ((file_velo = fopen ("velocities_3d", "w")) == NULL)
Message ("nCannot open velocities_3d file");
for (i = 0; i < ND_ND; i++)
fprintf (file_velo, "%e ", v_old);
for (i = 0; i < 3; i++)
fprintf (file_velo, "%e ", om_old);
for (i = 0; i < 3; i++)
fprintf (file_velo, "%e ", euler);
fclose(file_velo);
}
#endif
static void
read_velocities (real *v_old, real *om_old, real *euler)
{
float read_v_old[3], read_om_old[3], read_euler[3];
register int i;
#if !RP_NODE
FILE *file_velo;
if ((file_velo = fopen ("velocities_3d", "r")) == NULL)
{
Message ("nCannot open velocities_3d file...creating one!");
if ((file_velo = fopen ("velocities_3d", "w")) == NULL)
Message ("nCannot create velocities_3d file...dying!");
else
{
for (i = 0; i < 9; i++)
fprintf (file_velo, "%e ", 0.0);
fclose (file_velo);
file_velo = fopen ("velocities_3d", "r");
}
}
for (i = 0; i < ND_ND; i++)
fscanf(file_velo, "%e", &read_v_old);
# if RP_2D
read_v_old[2] = 0.0;
# endif
for (i = 0; i < 3; i++)
fscanf(file_velo, "%e", &read_om_old);
for (i = 0; i < 3; i++)
fscanf(file_velo, "%e", &read_euler);
fclose(file_velo);
#endif
#if PARALLEL
{
real exchange[9];
# if RP_HOST
for (i = 0; i < 3; i++)
{
exchange= (real)read_v_old;
exchange[i + 3] = (real)read_om_old;
exchange[i + 6] = (real)read_euler;
}
# endif
host_to_node_real (exchange, 9);
# if RP_NODE
for (i = 0; i < 3; i++)
{
read_v_old= (float)exchange;
read_om_old= (float)exchange[i + 3];
read_euler= (float)exchange[i + 6];
}
# endif
}
#endif
for (i = 0; i < 3; i++)
{
v_old= (real)read_v_old;
om_old= (real)read_om_old;
euler= (real)read_euler;
}
}

DEFINE_CG_MOTION(six_dof, dt, cg_vel, cg_omega, time, dtime)

{
real f_glob[3];
real af_glob[3];
real af_body[3];
real m_glob[3];
real m_body[3];
real v_old_glob[3];
real om_old_body[3];
real om_body[3];
real al_body[3];
real x_cg[3];
real euler_angle[3];
real euler_angle_old[3];
real euler_rate[3];
real grav_acc[3];
real cf, ct, cs;
real sf, st, ss;
real RC[3][3];
real RD[3][3];

real wx, wy, wz;
real r1, r2, r3;
real s1, s2, s3;
real D;
real a11, a21, a31, a12, a22, a32, a13, a23, a33;
register int i;
Domain *domain = Get_Domain (1);
Thread *tf1 = Lookup_Thread (domain, ZONE_ID1);
static int calls = 0;
static boolean last_call = FALSE;

grav_acc[0] = 0.0;
grav_acc[1] = 0.0;
grav_acc[2] = 9.81;

read_velocities (v_old_glob, om_old_body, euler_angle);

for (i = 0; i < ND_ND; i++)
x_cg= DT_CG(dt);

if ((++calls) == NUM_CALLS)
last_call = TRUE;

Compute_Force_And_Moment (domain, tf1, x_cg, f_glob, m_glob, TRUE);
for (i = 0; i < ND_ND; i++)
af_glob= f_glob;

for (i = 0; i < ND_ND; i++)
f_glob+= grav_acc*MASS;
add_injector_forces (x_cg, euler_angle, f_glob, m_glob);

for (i = 0; i < ND_ND; i++)
cg_vel= f_glob* dtime / MASS + v_old_glob;

for (i = 0; i < ND_ND; i++)
x_cg= x_cg+ cg_vel* dtime;


cf = cos(euler_angle[0]);
ct = cos(euler_angle[1]);
cs = cos(euler_angle[2]);
sf = sin(euler_angle[0]);
st = sin(euler_angle[1]);
ss = sin(euler_angle[2]);
RC[0][0] = ct*cs;
RC[0][1] = sf*st*cs-cf*ss;
RC[0][2] = cf*st*cs+sf*ss;
RC[1][0] = ct*ss;
RC[1][1] = sf*st*ss+cf*cs;
RC[1][2] = cf*st*ss-sf*cs;
RC[2][0] = -st;
RC[2][1] = sf*ct;
RC[2][2] = cf*ct;
RD[0][0] = 1.0;
RD[0][1] = sf*st/ct;
RD[0][2] = cf*st/ct;
RD[1][0] = 0.0;
RD[1][1] = cf;
RD[1][2] = -sf;
RD[2][0] = 0.0;
RD[2][1] = sf/ct;
RD[2][2] = cf/ct;

NV_ROTN_V (m_body, = , m_glob, RC);
NV_ROTN_V (af_body, = , af_glob, RC);

wx = om_old_body[0];
wy = om_old_body[1];
wz = om_old_body[2];
r1 = IXX * wx - IXY * wy - IXZ * wz;
r2 = -IXY * wx + IYY * wy - IYZ * wz;
r3 = -IXZ * wx - IYZ * wy + IZZ * wz;
s1 = m_body[0] - (wy*r3-wz*r2);
s2 = m_body[1] - (wz*r1-wx*r3);
s3 = m_body[2] - (wx*r2-wy*r1);
D = IXX * IYY * IZZ - IXX * IYZ * IYZ -
IYY * IXZ * IXZ - IZZ * IXY * IXY -
2.* IXY * IXZ * IYZ;
a11 = IYY * IZZ - IYZ * IYZ;
a12 = IXY * IZZ + IYZ * IXZ;
a13 = IXY * IYZ + IXZ * IYY;
a21 = IXY * IZZ + IYZ * IXZ;
a22 = IXX * IZZ - IXZ * IXZ;
a23 = IXX * IYZ + IXZ * IXY;
a31 = IXY * IYZ + IXZ * IYY;
a32 = IXX * IYZ + IXZ * IXY;
a33 = IXX * IYY - IXY * IXY;

al_body[0] = (a11 * s1 + a12 * s2 + a13 * s3) / D;
al_body[1] = (a21 * s1 + a22 * s2 + a23 * s3) / D;
al_body[2] = (a31 * s1 + a32 * s2 + a33 * s3) / D;


for (i = 0; i < 3; i++)
om_body= om_old_body+ al_body* dtime;


NV_ROTP_V (cg_omega, = ,om_body, RC);


for (i = 0; i < 3; i++)
euler_angle_old= euler_angle;
NV_ROTP_V (euler_rate, =, om_body, RD);
N3V_S (euler_rate, *=, dtime);
N3V_V (euler_angle, +=, euler_rate);

#if !RP_NODE

if (last_call)
{
FILE *file_diag;

if ((file_diag = fopen ("diagnostics_3d", "a")) == NULL)
Message ("nCannot open output file");
fprintf (file_diag, "%ft" , time);
fprintf (file_diag, "%ft%ft%ft", x_cg[0], x_cg[1], x_cg[2]);
fprintf (file_diag, "%ft%ft%ft", cg_vel[0], cg_vel[1], cg_vel[2]);
fprintf (file_diag, "%ft%ft%ft", om_body[0], om_body[1], om_body[2]);
fprintf (file_diag, "%ft%ft%ft",
euler_angle[0], euler_angle[1], euler_angle[2]);
fprintf (file_diag, "%ft%ft%ft", af_body[0], af_body[1], af_body[2]);
fprintf (file_diag, "%ft%ft%fn", m_body[0], m_body[1], m_body[2]);
fclose(file_diag);

write_velocities (cg_vel, om_body, euler_angle);

calls = 0;
last_call = FALSE;
}
#endif
}
來自http://www.baisi.net/thread-2278951-1-1.html
http://www.efluid.com.cn/bbs/showtopic-4153.aspx
學(xué)習(xí)six-dof其他資料
http://http://forums.caenet.cn/showtopic-531777.aspx
http://forums.caenet.cn/showtopic-532886.aspx



開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:[轉(zhuǎn)載]fluent學(xué)習(xí)----關(guān)于six dof的神作求解釋 Fluent培訓(xùn) Fluent流體培訓(xùn) Fluent軟件培訓(xùn) fluent技術(shù)教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學(xué)反應(yīng) fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進(jìn)行在線報名,我們會及時給您回復(fù)電話,謝謝!
驗證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com




主站蜘蛛池模板: 装盒机|全自动封盒机|纸盒子包装机|高速装盒机定制-温州胜泰机械有限公司 | 转炉挡渣机构,转炉滑板挡渣,滑动水口生产厂家-河北瑞华冶金科技有限公司 | 猴脑立体定位仪-无菌动物隔离器-格罗贝尔百科| 西安西雷脉冲功率技术有限公司-高压调制器/加速器与脉冲功率系统的研发/生产/应用推广/高压脉冲电源的应用研究/设计/生产和销售/高功率脉冲器件/材料与仪器设备的研发/生产和销售/高电压/大电流/强磁场环境的模拟及测试服务/会议会展服务/货物及进出口的业务/脉冲功率技术领域类的技术转让 | 污水处理控制系统设计_plc编程控制柜_电气成套设备生产厂家_合肥鸿昇自动化 | 宿迁网站建设-宿迁做网站-宿迁网站制作-宿迁网络公司-宿迁网页设计-宿迁软件开发-宿迁新动力软件开发有限公司 | 邮政纸箱_淘宝纸箱_抗压纸箱,盐城纸箱,盐城纸箱厂家,盐城承重纸箱-盐城君雅纸箱 | 消防服_防化服_灭火防护服_消防装备生产厂家-泰州市华通消防装备厂有限公司 | 偏光显微镜-金相抛光机|预磨机|磨抛机|镶嵌机|切割机-上海蔡康光学仪器厂 | 暖通家-中国暖通空调及热泵产业资讯平台,专业为厂家和商家提供价值服务 | 小程序开发,网站建设,APP开发,商城系统开发,社区团购系统开发,区块链溯源,互联网资质办理-软多信息技术有限公司_河南软多信息技术有限公司 | 昆明护栏网厂家_隔离栅_围栏网_石笼网「13年生产经验」-云南北辛商贸 | 深圳汽车贴膜_深圳全车车身改色贴膜|UPPF隐形车衣官网 | 泊头市天一泵业有限公司_齿轮泵,高粘度齿轮泵,螺杆泵,三螺杆泵 | 增压泵-离心泵-管道泵-排污泵-上海渤泉泵业制造有限公司 【官方网站】 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 深圳市泰美乐纸制品有限公司-纸杯厂,一次性纸杯,广告纸杯,奶茶纸杯,试饮纸杯定做 | 真空机器人维修_晶圆机械手保养_半导体机械臂维修_面板机器人保养_AMHS改造-广州市广科智能技术有限公司 | 企业宣传片制作公司-广告宣传片拍摄-专题片,tvc广告制作-拍摄微电影影视公司-艺虎文化 | 廊坊微信营销,廊坊小程序开发,廊坊APP开发(安卓_苹果ios开发),微信朋友圈广告,百度推广,廊坊网络公司品牌服务商-河北盛秋网络科技有限公司 | 振动筛|不锈钢振动筛|振动筛生产厂家-新乡市大汉振动机械有限公司 | 新洲际教育-一站式留学解决方案领航者【官网】 | 思源医疗器械网,雾化器厂家,医用床生产厂家,医疗器械厂家,医疗器械代加工 | 烟台广告公司-烟台仁和图文广告制作有限公司 | 网站建设|外贸网站建设|做网站公司-济南超越互联-推荐 | 山东亮化工程_亮化公司_亮化资质-山东星汇照明工程有限公司 | 仪器校准,校验,校正,检定选值得托付的第三方法定计量检测机构! 铱金供应-上海钌合金-氯铱酸厂家-上海庞势新材料科技有限公司 | 厦门公司注册-提供工商登记记账代理服务和营业执照代办地址与注册流程及费用 | 泰安兴润建材有限公司,泰安井盖定做,泰安警示桩定做,泰安雨水篦子定做,泰安操场篦子定做,泰安标志牌定做 | 思达测试|山东思达高科机械设备有限公司 | 密集架,密集柜,智能密集架,档案密集架,智慧档案馆(室)一体化建设 | 湖南长沙手术室、实验室、无尘室、洁净室、无尘车间的净化工程装修公司-福临建设 | 吸污车|吸粪车|冷藏车|消防车|清障车|环卫垃圾车价格|湖北程力汽车集团厂家销售公司 | 龙淼环保-旋流-喷淋塔,高温布袋,脉冲布袋-单机-滤筒除尘器,活性炭吸附箱,催化燃烧设备,除尘器配件-沧州龙淼环保设备制造有限公司 | 混凝土布料机,隧道布料机,衬砌台车布料装置 - 河北聚力智能装备有限公司 | 泥浆振动筛|卧式泥浆搅拌器|泥浆离心机|泥浆处理固控设备_沧州宏宇石油机械有限公司 | 消防服_防化服_灭火防护服_消防装备生产厂家-泰州市华通消防装备厂有限公司 | 廊坊保安公司_廊坊市万帮保安服务有限公司 | 实验升降炉-箱式管式炉- 台车真空炉-熔块旋转炉-推板隧道窑-洛阳鲁威窑炉有限公司 | 呼吸家官网|肺功能检测仪生产厂家|国产肺功能仪知名品牌|肺功能检测仪|肺功能测试仪|婴幼儿肺功能仪|弥散残气肺功能仪|肺功能测试系统|广州红象医疗科技有限公司|便携式肺功能仪|大肺功能仪|呼吸康复一体机|儿童肺功能仪|肺活量计|医用简易肺功能仪|呼吸康复系统|肺功能仪|弥散肺功能仪(大肺)|便携式肺功能检测仪|肺康复|呼吸肌力测定肺功能仪|肺功能测定仪|呼吸神经肌肉刺激仪|便携式肺功能 | 威海牙科,威海种植牙,威海人工种植牙-威海经济开发区姚晓艺口腔诊所 |