24小时热门版块排行榜    

查看: 1132  |  回复: 0

三肇小霸王

新虫 (初入文坛)

[求助] 导入UDF后显示P_USER_REAL undeclare variable

请教一下关于DEFINE_DPM_SCALAR_UPDATE函数的问题:刚刚接触静电除尘方面的数值模拟,按照帮助文档上的内容编写UDF,可是导入后总是显示“P_USER_REAL undeclare variable”,P_USER_REAL不是已有的DPM变量宏吗?怎么回未声明,还望大佬予以帮助,小弟感激不尽,在此奉上全部家当
代码如下:
DEFINE_DPM_SCALAR_UPDATE(E_Q,c,t,initialize,p)
{
        if(initialize)
        {
                P_USER_REAL(p,0)=0;
                P_USER_REAL(p,1)=3*PI*DIELECTRIC_CONSTANT*dp*dp*C_UDMI(c,t,3)*C_CONSTANT/(C_CONSTANT+2);
                P_USER_REAL(p,2)=4*DIELECTRIC_CONSTANT*C_UDMI(c,t,3)/C_UDMI(c,t,4);
                P_USER_REAL(p,3)=C_UDMI(c,t,0);
                P_USER_REAL(p,4)=C_UDMI(c,t,1);
                P_USER_REAL(p,5)=C_UDMI(c,t,2);
        }
        else
        {
                P_USER_REAL(p,1)=3*PI*DIELECTRIC_CONSTANT*dp*dp*C_UDMI(c,t,3)*C_CONSTANT/(C_CONSTANT+2);
                P_USER_REAL(p,2)=4*DIELECTRIC_CONSTANT*C_UDMI(c,t,3)/C_UDMI(c,t,4);
                P_USER_REAL(p,3)=C_UDMI(c,t,0);
                P_USER_REAL(p,4)=C_UDMI(c,t,1);
                P_USER_REAL(p,5)=C_UDMI(c,t,2);
                if(P_USER_REAL(p,0)<P_USER_REAL(p,1))
                {
                        P_USER_REAL(p,0)+=(P_USER_REAL(p,1)-P_USER_REAL(p,0))*(P_USER_REAL(p,1)-P_USER_REAL(p,0))/(P_USER_REAL(p,2)*P_USER_REAL(p,1))*P_DT(p);
                }
                else
                {
                        P_USER_REAL(p,0)+=0;
                }
        }
}

DEFINE_DPM_BODY_FORCE(E_force,p,i)
{
        real bforce=0;
        if(P_TIME(p)>=TSTART)
        {
                if(i==0) bforce=P_USER_REAL(p,3)*P_USER_REAL(p,0);
                else if(i==1) bforce=P_USER_REAL(p,4)*P_USER_REAL(p,0);
                else if(i==2) bforce=P_USER_REAL(p,5)*P_USER_REAL(p,0);
        }
        else
        bforce=0.0;
        return (bforce/P_MASS(p));
}

@月只蓝 发自小木虫Android客户端
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 三肇小霸王 的主题更新
信息提示
请填处理意见