lgsh 发表于 2011-11-15 16:35:25

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

请教:如何使用udf添加颗粒间相互作用力的项呢?有一个关于体积力的宏(DEFINE_DPM_BODY_FORCE),但是如何考虑被跟踪颗粒周围的多个颗粒间的相互作用呢,有些纠结~请问该从哪方面入手呢?

lgsh 发表于 2011-11-17 08:47:37

回复 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 不知道有没有问题 请高人看一下 帮帮小弟吧

Conany 发表于 2012-4-5 22:13:05

回复 2# lgsh 的帖子

这个帖子咋没人顶嘞?

83136715 发表于 2013-2-22 14:33:09

回复 3# Conany 的帖子

顶一下,我也想知道

他山有爱 发表于 2013-5-20 14:49:05

回复 2# lgsh 的帖子

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

newcfd123 发表于 2023-12-26 00:54:31

他山有爱 发表于 2013-5-20 14:49
我也用到         begin_particle_cell_loop(pi,c,t)
但是很容易出错。你解决了吗

你好,请问解决了吗
页: [1]
查看完整版本: 如何使用UDF添加颗粒间相互作用力(dpm模型)