找回密码
 注册
12
返回列表 发新帖
楼主: taiyangshen8029

求积分矩方法与Fluent耦合的算例源代码

[复制链接]
发表于 2012-2-2 11:21:39 | 显示全部楼层

回复 15# taiyangshen8029 的帖子

我也  来顶 啊  
那个代码 我也想要 啊
 楼主| 发表于 2012-2-3 20:19:46 | 显示全部楼层

回复 16# doctorwgc 的帖子

我可以把矩方法的代码贴出来,供参考。
#include "udf.h"
#include "mem.h"
#include "sg_udms.h"
#inlcude "math.h"

#define pi 3.141593
#define T 300.0
#define kB 1.38e-23
#define rou_air 1.225
#define rou_particle 950.0

double m_0,m_1,m_2;

enum
{
    M0,
    M1,
    M2,
    N_REQUIRED_UDS
};

double m_k(double k)
{
    return
        pow(m_0,( 1.0 / 2.0 ) * pow(k,2.0) - (3.0 / 2.0) * k + 1.0) *
    pow(m_1,-pow(k,2.0) + 2.0 * k) * pow(m_2,(1.0 / 2.0) * pow(k,2.0)
    - (1.0 / 2.0) * k);
}

/*DEFINE_ADJUST(adjust,domain)
{
    if(n_uds < N_REQUIRED_UDS)
        Internal_Error("not enough user-defined scalars allocated");
}*/

DEFINE_DIFFUSIVITY(Moment_diffusivity,c,t,i)
{
    double D_mol;
    double D_tur;
    double D_eff;

    double v_g;
    double d_p;
    double f;
    double C;
    double l = 6.91e-8;
    double mu = 1.86e-05;
    double A1 = 1.257,A2 = 0.4,A3 = 0.55;

    double Sct = 0.7;

    m_0 = C_UDSI(c,t,M0);
    m_1 = C_UDSI(c,t,M1);
    m_2 = C_UDSI(c,t,M2);

    v_g = pow(m_1,2.0) / (pow(m_0,3.0 / 3.0) * pow(m_2,1.0 / 2.0));
    d_p = pow((6.0 / pi) * v_g,1.0 / 3.0);
    C = 1.0 + 2.0 * l * (A1 + A2 * exp(-A3 * d_p / l)) / d_p;
    f = 3.0 * pi * mu * d_p / C;
    D_mol = kB * T / f;

    D_tur = C_MU_T(c,t) / rou_air * Sct;

    D_eff = D_mol + D_tur;

    return (float)D_eff;
}

DEFINE_SOURCE(M0_source,c,t,dS,eqn)
{
    double v_g,sigma_g;
    double A,b_0;
    double m_mix;

    m_0 = C_UDSI(c,t,M0);
    m_1 = C_UDSI(c,t,M1);
    m_2 = C_UDSI(c,t,M2);

    A = pow(3.0 / (4.0 * pi),1.0 / 6.0) * sqrt(6.0 * kB * T / rou_particle);

    m_mix = m_0 * m_2 / pow(m_1,2.0);
   
    if(m_mix < 1.0)
        m_mix = 1.0;

   sigma_g = exp((1.0 / 3.0) * sqrt(log(m_mix)));
   b_0 = 0.633 + 0.092 * pow(sigma_g,2.0) - 0.022 * pow(sigma_g,3.0);

   return (float)(-A * b_0 * (m_k(2.0 / 3.0) * m_k(-1.0 / 2.0) + 2.0 * m_k(1.0 / 3.0)
           * m_k(-1.0 / 6.0) + m_k(1.0 / 6.0) * m_0));
}

DEFINE_SOURCE(M1_source,c,t,dS,eqn)
{
    return 0.0;
}

DEFINE_SOURCE(M2_source,c,t,dS,eqn)
{
    double v_g,sigma_g;
    double A,b_2;
    double m_mix;

    m_0 = C_UDSI(c,t,M0);
    m_1 = C_UDSI(c,t,M1);
    m_2 = C_UDSI(c,t,M2);

    A = pow(3.0 / (4.0 * pi),1.0 / 6.0) * sqrt(6.0 * kB * T / rou_particle);

    m_mix = m_0 * m_2 / pow(m_1,2.0);
   
    if(m_mix < 1.0)
        m_mix = 1.0;

   sigma_g = exp((1.0 / 3.0) * sqrt(log(m_mix)));
   b_2 = 0.39 + 0.5 * sigma_g - 0.214 * pow(sigma_g,2.0) + 0.029 * pow(sigma_g,3.0);

   return (float)(2 * A * b_2 * (m_k(5.0 / 3.0) * m_k(1.0 / 2.0) + 2.0 * m_k(4.0 / 3.0)
           * m_k(5.0 / 6.0) + m_k(7.0 / 6.0) * m_1));
}
 楼主| 发表于 2012-2-3 20:20:56 | 显示全部楼层

回复 1# taiyangshen8029 的帖子

哎哟,看来还得自己出来顶了,嘿嘿!!!!!!!!!!!!!
 楼主| 发表于 2012-2-4 15:25:28 | 显示全部楼层

回复 17# taiyangshen8029 的帖子

引用上述矩方法代码,请标明参考文献:
[56] 刘淞. 基于三阶矩方法的纳米颗粒凝并与湍流扩散的数值模拟[D]. 浙江: 浙江大学, 2008.
 楼主| 发表于 2012-2-10 20:43:46 | 显示全部楼层

回复 19# taiyangshen8029 的帖子

哎呀,费了个劲,接着顶!!!!!!!!!!!!
 楼主| 发表于 2012-2-19 12:44:09 | 显示全部楼层

回复 17# taiyangshen8029 的帖子

哎呀,费了个劲,接着顶!!!!!!!!!!!!
 楼主| 发表于 2012-3-17 17:13:58 | 显示全部楼层

回复 1# taiyangshen8029 的帖子

http://www.cfluid.com/bbs/viewthread.php?tid=113726&extra=page%3D1
发表于 2012-4-7 16:57:37 | 显示全部楼层

回复 22# taiyangshen8029 的帖子

lz辛苦,帮顶!
发表于 2022-4-22 21:06:08 | 显示全部楼层
请问大佬们可以分享点标准矩和积分矩的学习案例不,自己刚开始学习。公式推导这些都没看明白,不知有大佬分享下学习笔记吗?感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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