如何使用UDF添加颗粒间相互作用力(dpm模型)
请教:如何使用udf添加颗粒间相互作用力的项呢?有一个关于体积力的宏(DEFINE_DPM_BODY_FORCE),但是如何考虑被跟踪颗粒周围的多个颗粒间的相互作用呢,有些纠结~请问该从哪方面入手呢?回复 1# lgsh 的帖子
可有人做过附加体积力算例的?给点意见呗~~~~~~~#include "udf.h"
#include "surf.h"
#define A4.e-19
DEFINE_DPM_BODY_FORCE(Van_der_waals_force,p,i)
{
cell_t c = RP_CELL(&(p -> cCell));
Thread *t = RP_THREAD(&(p -> cCell));
Particle *pi;
float bforce=0, bforce_x=0, bforce_y=0, bforce_z=0, coo=0, s=0;
int j=0, num=0;
float pos={0};
begin_particle_cell_loop(pi,c,t)
{
num++;
}
end_particle_cell_loop(pi,c,t)
if(num>0)
{
begin_particle_cell_loop(pi,c,t)
{
for(j=0; j<3; j++)
pos = P_POS(pi) - P_POS(p);
coo = sqrt(pos*pos + pos*pos + pos*pos);
s = coo-0.5*(P_DIAM(p)+P_DIAM(pi));
if(s <= 2.e-6)
{
bforce = A*P_DIAM(p)/(24*s*s);
bforce_x += bforce*pos/coo;
bforce_y += bforce*pos/coo;
bforce_z += bforce*pos/coo;
}
}
end_particle_cell_loop(pi,c,t)
}
if(i==0) bforce = bforce_x;
else if(i==1) bforce = bforce_y;
else
bforce = bforce_z;
/* an acceleration should be returned */
return (bforce/P_MASS(p));
}
这是我写的求单个网格内颗粒间相互作用力的UDF 不知道有没有问题 请高人看一下 帮帮小弟吧
回复 2# lgsh 的帖子
这个帖子咋没人顶嘞?回复 3# Conany 的帖子
顶一下,我也想知道回复 2# lgsh 的帖子
我也用到 begin_particle_cell_loop(pi,c,t)但是很容易出错。你解决了吗 他山有爱 发表于 2013-5-20 14:49
我也用到 begin_particle_cell_loop(pi,c,t)
但是很容易出错。你解决了吗
你好,请问解决了吗
页:
[1]