24小时热门版块排行榜    

查看: 1437  |  回复: 3

cdq007

新虫 (初入文坛)

[交流] 在fluent中直接模拟单泡的R-P方程程序求指导错误 已有3人参与

我想编写一个单泡R-P方程,在matlab中已经完全实现。但是我想通过fluent进行求解这个方程。
程序如下:但是加进去后气泡不发生任何变化,求大神们进行指导。
#include"udf.h"
#include"sg_mphase.h"                                                                 //包括体积分数宏CVOF(C,T)
#define Psa_t 2338                                                                    //定义理想饱和蒸汽压
DEFINE_SOURCE(liq_source,cell,pri_th,dS,eqn)                                          //液相质量源相
#define Pi 3.1415926
#define Pg0 101325
#define Pi 3.1415926
#define Pg0 101325
{
        Thread *mix_th,*sec_th;                                                           //定义混合相的指针和气相的指针线索
    real m_source_l;                                                                  //定义液相质量转移 kg/(m2.s)
        real rho_vap;                                                                     //蒸汽密度
        real rho_liq;                                                                     //液体密度
        real rho_mix;                                                                     //混合密度
        real Ce=0.02;                                                                     //生长相变率系数
        real Cc=0.01;                                                                     //溃灭相变率系数
        real mfv;                                                                         //蒸汽的质量分数
        real vfw;                                                                         //水的体积分数
        real vfv;                                                                         //蒸汽的体积分数
        real P_v;                                                                         //考虑湍动压力波动后的饱和蒸汽压
        real dpv;                                                                         //生长过程中计算公式的一部分
        real dpc;                                                                         //溃灭过程中计算公式的一部分
        real Vch;                                                                         //特征速度大约为湍流脉动速度
        real sigma=0.076;                                                                 //表面张力系数
        mix_th=THREAD_SUPER_THREAD(pri_th);                                               //指向混合区的主相即液相的指针
    sec_th=THREAD_SUB_THREAD(mix_th,1);                                               //指向单相控制区的气相的指针,气相为第二相
        rho_vap=C_R(cell,sec_th);                                                         //从气相中得到气体的密度
        rho_liq=C_R(cell,pri_th);                                                         //从液相中得到液体的密度
        vfv=C_VOF(cell,sec_th);                                                           //从气相中得到气体的体积分数
        vfw=1-vfv;                                                                        //水的体积分数
        rho_mix=vfv*rho_vap+(1-vfv)*rho_liq;                                              //液相与气相的混合密度
        mfv=rho_vap*vfv/rho_mix;                                                          //气体的质量分数
        P_v=Psa_t+(1/2)*0.39*rho_mix*C_K(cell,mix_th);                                    //考虑湍动压力波动后的饱和蒸汽压计算公式
        dpv=sqrt((2/3)*MAX((P_v-C_P(cell,mix_th))/rho_liq,0.0));                          //生长过程中的变化公式
        dpc=sqrt((2/3)*MAX((C_P(cell,mix_th)-P_v)/rho_liq,0.0));                          //溃灭过程中的变化公式
        Vch=MAX(sqrt(C_K(cell,mix_th)),1.0);                                              //特征速度等于湍流速度所转换的湍动能
        if(C_P(cell,mix_th)<=C_P(cell,sec_th))                                                         //混合区域的压力小于饱和蒸汽压
        {
                m_source_l=(-Ce*Vch*rho_liq*rho_vap*(1-mfv)*dpv)/sigma;                       //质量源相计算公式
                dS[eqn]=(-Ce*Vch*rho_liq*rho_vap*dpc)/sigma;                                  //当压力小于饱和蒸汽压时,液相向气相质量传递,此时液相对于质量分数的偏导
        }
        else
        {
                m_source_l=(Cc*Vch*rho_liq*rho_liq*mfv*dpc)/sigma;                            //质量源相计算公式
                dS[eqn]=0;                                                                    //当压力大于饱和蒸汽压时,液相不向气相质量传递,此时液相对于质量分数的偏导为0
        }
return m_source_l;
}



DEFINE_SOURCE(vap_source,cell,sec_th,dS,eqn)                                         //气相质量源相
{
        Thread *mix_th,*pri_th;                                                           //定义混合相的指针和液相的指针线索
    real m_source_v;                                                                  //定义液相质量转移 kg/(m2.s)
        real rho_vap;                                                                     //蒸汽密度
        real rho_liq;                                                                     //液体密度
        real rho_mix;                                                                     //混合密度
        real Ce=0.02;                                                                     //生长相变率系数
        real Cc=0.01;                                                                     //溃灭相变率系数
        real mfv;                                                                         //蒸汽的质量分数
        real vfw;                                                                         //水的体积分数
        real vfv;                                                                         //蒸汽的体积分数
        real P_v;                                                                         //考虑湍动压力波动后的饱和蒸汽压
        real dpv;                                                                         //生长过程中计算公式的一部分
        real dpc;                                                                         //溃灭过程中的变化公式
        real Vch;                                                                         //特征速度大约为湍流脉动速度
        real sigma=0.076;                                                                 //表面张力系数
        mix_th=THREAD_SUPER_THREAD(sec_th);                                               //指向混合区的主相即液相的指针  
        pri_th=THREAD_SUB_THREAD(mix_th,0);                                               //指向单相控制区的气相的指针,气相为第二相
        rho_vap=C_R(cell,sec_th);                                                         //从气相中得到气体的密度
        rho_liq=C_R(cell,pri_th);                                                         //从液相中得到液体的密度
        vfv=C_VOF(cell,sec_th);                                                           //从气相中得到气体的体积分数
        vfw=1-vfv;                                                                        //液相的体积分数
        rho_mix=vfv*rho_vap+(1-vfv)*rho_liq;                                              //液相与气相的混合密度
        mfv=rho_vap*vfv/rho_mix;                                                          //气体的质量分数
        P_v=Psa_t+(1/2)*0.39*rho_mix*C_K(cell,mix_th);                                    //考虑湍动压力波动后的饱和蒸汽压计算公式
        dpv=sqrt((2/3)*MAX((P_v-C_P(cell,mix_th))/rho_liq,0.0));                          //生长过程中的变化公式
        dpc=sqrt((2/3)*MAX((C_P(cell,mix_th)-P_v)/rho_liq,0.0));                          //溃灭过程中的变化公式
        Vch=MAX(sqrt(C_K(cell,mix_th)),1.0);                                              //特征速度等于湍流速度所转换的湍动能
    m_source_v=0.0;
        if(C_P(cell,mix_th)<=C_P(cell,sec_th))                                                         //混合区域的压力小于饱和蒸汽压
        {
                m_source_v=(Ce*Vch*rho_liq*rho_vap*(1-mfv)*dpv)/sigma;                        //质量源相计算公式
                dS[eqn]=0;                                                                    //当压力小于饱和蒸汽压时,气相不向液相质量传递,此时气相对于质量分数的偏导为0
        }
        else
        {
                m_source_v=(-Cc*Vch*rho_liq*rho_liq*mfv*dpc)/sigma;                            //质量源相计算公式
                dS[eqn]=(-Cc*Vch*rho_liq*rho_liq*dpc)/sigma;;                                  //当压力大于饱和蒸汽压时,气相向液相质量传递,此时气相对于质量分数的偏导
        }
return m_source_v;
}




DEFINE_ADJUST(water_pressure,d)
{
        real v;
    Thread *cell_thread;
    cell_t cell;
        Domain *liq_th;
        liq_th=DOMAIN_SUB_DOMAIN(d,0);
        thread_loop_c(cell_thread,liq_th)
        {
                begin_c_loop_all(cell,cell_thread)
                {
                        real t=RP_Get_Real("flow-time";
                        {
                        if(t>0)
                        {
                            v=(-3100*t)+14.97;
                         }
                        else
                        {
                            v=14.97;
                        }
                        C_P(cell,cell_thread)=102653-500*v*v;
                    }
                }
                end_c_loop_all(cell,cell_thread)
        }
}




DEFINE_ADJUST(bubble_pressure,d)
{
        real VOL;
        real R;
    Thread *cell_thread;
    cell_t cell;
        Domain *vap_th;
        vap_th=DOMAIN_SUB_DOMAIN(d,1);
        thread_loop_c(cell_thread,vap_th)
        {
        begin_c_loop_all(cell,cell_thread)
                {
                        VOL=C_VOLUME(cell,cell_thread);
                    R=pow(((3.0/4)*VOL/Pi),(1.0/3));
                    if(R>=0.4)
                    {
                            C_P(cell,cell_thread)=Pg0*pow((0.4/R),3.0);
                    }
                    else
                    {
                            C_P(cell,cell_thread)=Pg0*pow((0.4/R),4.23);
                    }
            }
                end_c_loop_all(cell,cell_thread)
        }
}
回复此楼

» 收录本帖的淘帖专辑推荐

博士科研新路历程

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
2楼2016-11-03 08:57:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mycc

专家顾问 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
你可以介绍一下R-P是什么吗?不是所有人都是做你这个课题的
项目汇总:http://www.cfluid.com/forum.php?mod=viewthread&amp;tid=114340&amp;extra=
3楼2016-11-03 09:15:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

聆听风声love

金虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
楼主写的这个不就是全空化模型吗?
努力!奋斗!
4楼2017-01-06 10:54:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cdq007 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见