24小时热门版块排行榜    

CyRhmU.jpeg
查看: 4425  |  回复: 5

chongping

新虫 (初入文坛)

[求助] 进行非稳态计算时,UDF怎样输出数据到txt文件已有2人参与

我现在遇到了一个问题 我编译了一个函数
#include "udf.h"
#include "mem.h"
#include "dynamesh_tools.h"
real x_cg[ND_ND];
real f_glob[ND_ND];
real m_glob[ND_ND];
int i;
FILE *fp;
real time;
DEFINE_SDOF_PROPERTIES(li,prop,dt,time,dtime)
{

Thread *t;
Domain *domain=Get_Domain(1);
t=Lookup_Thread(domain,9);
time=RP_Get_Real("flow-time";

prop[SDOF_MASS]=3.89;
prop[SDOF_IXX]=0.00102;
prop[SDOF_IYY]=0.02709;
prop[SDOF_IZZ]=0.02709;
prop[SDOF_LOAD_F_X]=200;
for(i=0;i<=ND_ND;i++)
{
f_glob=0;
m_glob=0;
}
for(i=0;i<ND_ND;i++)
x_cg=DT_CG(dt);

Compute_Force_And_Moment(domain,t,x_cg,f_glob,m_glob,TRUE);
Message ("ntime=%f ,x=%.10lf ,y=%.10lf , z=%.10lf , force_x=%.1f ,force_y=%.1f ,force_z=%.1f moment_x=%f,moment_y=%f,moment_z=%f", time,x_cg[0],x_cg[1],x_cg[2],f_glob[0],f_glob[1],f_glob[2],m_glob[0],m_glob[1],m_glob[2]);
}

DEFINE_ADJUST(name,d)
{
Domain *domain;
domain=Get_Domain(1);
fp=fopen("shuju.txt","w";
for(i=0;i<ND_ND;i++)
{

fprintf(fp,"ntime=%f ,x=%.10lf ,y=%.10lf , z=%.10lf , force_x=%.1f ,force_y=%.1f ,force_z=%.1f moment_x=%f,moment_y=%f,moment_z=%f", time,x_cg[0],x_cg[1],x_cg[2],f_glob[0],f_glob[1],f_glob[2],m_glob[0],m_glob[1],m_glob[2]);
}
fclose(fp);
}
  我想输出txt文件,我创建的shuju.txt文件出现工作目录中  但是 fprintf输出的数据 只显示一次迭代结果,下一步迭代时间步时就会覆盖掉上一个时间步的计算结果  意思就是说shuju.txt始终只有一行数据   这是怎么回事 ?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huaixi0418

金虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
把fopen中的w换为a

[ 发自小木虫客户端 ]
走在学术的大道上
2楼2014-06-21 12:31:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chongping

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by huaixi0418 at 2014-06-21 12:31:23
把fopen中的w换为a

谢谢你  我试过了 是可行的  但是有一个问题我想问一下,
我的每步迭代结果都会出现三次 为什么呢  期盼解答
3楼2014-06-23 21:41:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huaixi0418

金虫 (初入文坛)

【答案】应助回帖

引用回帖:
3楼: Originally posted by chongping at 2014-06-23 21:41:52
谢谢你  我试过了 是可行的  但是有一个问题我想问一下,
我的每步迭代结果都会出现三次 为什么呢  期盼解答...

好像是循环的问题,你把最后一个循环for(i=0;i<ND_ND;i++)删掉,直接用fprintf
走在学术的大道上
4楼2014-06-24 00:38:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xwx1990

金虫 (正式写手)

【答案】应助回帖

每个计算节点都会调用一次程序,所以有多次输出
加宏(并行计算)
#if RP_HOST
#endif
努力工作
5楼2016-03-24 11:40:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjzhoujun

新虫 (小有名气)

想问一下,您提到的迭代三次我也遇到了,是在并行时遇到的还是串行也会出现同样的问题,请问您是怎样解决的?
6楼2016-09-28 20:54:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 学员4FH1YX 的主题更新
信息提示
请填处理意见