626426821 发表于 2017-12-5 15:19:42

UDF添加uds计算电流密度

泊松方程和电流密度方程联立求解电势分布与电流密度分布,本人写的udf单独计算电势时候可以的到电势分布,但电势和电流密度联立计算就会发散,怀疑是电流密度中对流项编写的有问题,现把程序粘贴如下,大神们帮帮忙吧,卡了好久了。。。
DEFINE_UDS_FLUX(p_uds_flux, f, t, i)
{
        cell_t c0, c1 = -1;
        Thread *t0, *t1 = NULL;
        real NV_VEC(psi_vec), NV_VEC(A), flux = 0.0,tt,yy,uu;
        c0 = F_C0(f, t);
        t0 = F_C0_THREAD(f, t);
    tt=-C_UDSI_G(c0, t0, 0);
    yy=-C_UDSI_G(c0, t0, 0);
    uu=-C_UDSI_G(c0, t0, 0);
        F_AREA(A, f, t);
if (BOUNDARY_FACE_THREAD_P(t))
                real dens;
                if (NNULLP(THREAD_STORAGE(t, SV_DENSITY)))
                        dens = F_R(f, t);
                        dens = C_R(c0, t0);
                NV_DS(psi_vec, = , F_U(f, t)+kion*tt, F_V(f, t)+kion*yy, F_W(f, t)+kion*uu, *, dens);
                flux = NV_DOT(psi_vec, A);
        }
        else
        {
                c1 = F_C1(f, t);
                t1 = F_C1_THREAD(f, t);
                NV_DS(psi_vec, = , C_U(c0, t0)+kion*tt, C_V(c0, t0)+kion*yy, C_W(c0, t0)+kion*uu, *, C_R(c0, t0));
                NV_DS(psi_vec, += , C_U(c1, t1)+kion*tt, C_V(c1, t1)+kion*yy, C_W(c1, t1)+kion*uu, *, C_R(c1, t1));
                flux = NV_DOT(psi_vec, A) / 2.0;
        return flux;
}

龙傲天表弟 发表于 2019-6-30 20:56:46

您好!我看到您发的udf添加uds计算电流密度的帖子,想请问您做的是电除尘器的两相流吗?您这种做法和运用dpm添加电场力两者之间有什么区别吗?或者是哪个是对的还是两个都可以?求解答,十分感谢!

gearboy 发表于 2019-7-2 17:26:35

UDS涉及到对流项,扩散项,源项,边界条件,如果非稳态还有时间项,可没这么简单,可以先看看我的教程。百度搜索《一个简单而完整的UDS例子》,调试建议用VC++ Udf Studio,同样百度搜,主页上有QQ群,有问题有专家回答。
页: [1]
查看完整版本: UDF添加uds计算电流密度