找回密码
 注册
查看: 4014|回复: 5

如何使用UDF添加颗粒间相互作用力(dpm模型)

[复制链接]
发表于 2011-11-15 16:35:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请教:如何使用udf添加颗粒间相互作用力的项呢?有一个关于体积力的宏(DEFINE_DPM_BODY_FORCE),但是如何考虑被跟踪颗粒周围的多个颗粒间的相互作用呢,有些纠结~请问该从哪方面入手呢?
 楼主| 发表于 2011-11-17 08:47:37 | 显示全部楼层

回复 1# lgsh 的帖子

可有人做过附加体积力算例的?给点意见呗~~~~~~~
#include "udf.h"
#include "surf.h"
#define A  4.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[4]={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[j] = P_POS(pi)[j] - P_POS(p)[j];
                        coo = sqrt(pos[0]*pos[0] + pos[1]*pos[1] + pos[2]*pos[2]);
                        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[0]/coo;
                                bforce_y += bforce*pos[1]/coo;
                                bforce_z += bforce*pos[2]/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 不知道有没有问题 请高人看一下 帮帮小弟吧
发表于 2012-4-5 22:13:05 | 显示全部楼层

回复 2# lgsh 的帖子

这个帖子咋没人顶嘞?
发表于 2013-2-22 14:33:09 | 显示全部楼层

回复 3# Conany 的帖子

顶一下,我也想知道
发表于 2013-5-20 14:49:05 | 显示全部楼层

回复 2# lgsh 的帖子

我也用到           begin_particle_cell_loop(pi,c,t)
但是很容易出错。你解决了吗

点评

你好,请问解决了吗  详情 回复 发表于 2023-12-26 00:54
发表于 2023-12-26 00:54:31 | 显示全部楼层
他山有爱 发表于 2013-5-20 14:49
我也用到           begin_particle_cell_loop(pi,c,t)
但是很容易出错。你解决了吗

你好,请问解决了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表