24小时热门版块排行榜    

查看: 685  |  回复: 1
【悬赏金币】回答本帖问题,作者王大大天将赠送您 15 个金币

王大大天

新虫 (小有名气)

[求助] 做CFD-PBM耦合的,不导入uDF的时候没有问题,导入以后出现了这样的问题,,万分感谢

导入以后初始化,开始计算还没计算一步,就出现了这个问题



received a fatal signal(segmentation fault)
    如果有大佬知道  请求大佬帮帮我 万分感谢:
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

王大大天

新虫 (小有名气)

程序如下#include "udf.h"
#include "math.h"
#include "stdio.h"
#include "mem.h"
#include "global.h"
#define total_N 31
#define delta_L 2.00E-06
#define Kvvv 0.866
#define Ka 5.196
#define Growth_Kg 21
#define Growth_Ea 41.6
#define Growth_R 0.008314          /*   k J/mol    */
#define Growth_g 1.9
#define minmod_theta 1.5
#define rho_c 1296                 /* 仅在拟均相下使用 */
#define rho_l 789
#define M_paracetamol 151.17       /* g/mol */
#define M_ethanol 46.07            /* g/mol */
#define Diffu  7.09e-10            /*  m2/s Stokes-Einstein assume constant T  */
#define Mean_L 0.0001              /* use for the calculation of mass transfer Kd */
#define Dynam_visc  0.001201       /* Dynamic  viscosity,    N*s/m2 or Pa*s  */
#define Nucleation_Kn  1.597e-10   /* primary  nucleation  kn     #/(min*m3) */
#define Nucleation_n 2.276         /* primary nucleation n     */
#define Nucleation_E  7e-20       /* can be regressed from later data(Ea,kg,g,e,gamma)*/
#define Nucleation_gamma 2.5e-3    /*   surface tension J       */
#define Diameter_molecular 7.18e-10                  /*       m        */
#define k_Boltzmann 1.381e-23                        /* J/K      */
#define diffu_m 0                  /* 扩散系数,此时为粒子,设为0       */
  real source;
  real G_j1;
  real G_j2;
  real S_eq;
  real delta_S;
  real delta_C;
  real relative_S;
  real Nucleation_rate1;             /*   primary  nucleation  rate              */
  real Nucleation_rate2;             /*   second  nucleation  rate              */
  real Kd;
  real Moment_2;   /*      uds kg/kg              */
  real crystal_L[total_N] = { 0, 2.00E-06,  4.00E-06,  6.00E-06,  8.00E-06,
           1.00E-05,  1.20E-05,  1.40E-05,  1.60E-05,  1.80E-05,  2.00E-05,
           2.20E-05,  2.40E-05,  2.60E-05,  2.80E-05,  3.00E-05,  3.20E-05,
           3.40E-05,  3.60E-05,  3.80E-05,  4.00E-05,  4.20E-05,  4.40E-05,
           4.60E-05,  4.80E-05,  5.00E-05,  5.20E-05,  5.40E-05,  5.60E-05,
           5.80E-05,  6.00E-05
                             };       /* 本udf平均离散*/
  real min22(real a,real b)
{
  if (a>b)
   return b;
  else return a;
}
real max22(real a,real b)
{
  if (a<b)
   return b;
  else return a;
}
real minmod(real minmod_0,real minmod_1,real minmod_2)
{  real c;
  if (minmod_0>0 && minmod_1>0 && minmod_2>0)
  {   c=min22(minmod_0,minmod_1);
   return min22(c,minmod_2);  
  }
  else if (minmod_0<0 && minmod_1<0 && minmod_2<0)
  {   c=max22(minmod_0,minmod_1);
       return max22(c,minmod_2);
  }
  else return 0;
}

DEFINE_SOURCE(fn_source,c,t,dS,eqn)
{  int i;
   real fdensitya;
   real fdensityb;
   real fdensityc;
   real fdensityd;
   real fdensitye;
   int  k;
   int  j=eqn-570+1;   
        S_eq=0.0002955*exp(0.02179*C_T(c,t));   
        relative_S=C_YI(c,t,0)/S_eq;
        delta_S=C_YI(c,t,0)-S_eq;
        delta_C=delta_S*rho_l/M_paracetamol;   
   if (delta_C>0)
    {
     G_j1=Growth_Kg*exp(-Growth_Ea/Growth_R/C_T(c,t))*pow(delta_C,Growth_g);
     G_j2=G_j1;
    }
   else  
    {
      Kd=Diffu/Mean_L*(2+0.8*pow(C_D(c,t)*Mean_L*Mean_L*Mean_L*Mean_L/Dynam_visc/Dynam_visc/Dynam_visc,0.2)*pow(Dynam_visc/Diffu/rho_l,1/3));   
      G_j1 = Kd*Ka*M_paracetamol/3/Kvvv/rho_c*delta_C;
      G_j2=G_j1;
    }
   if (j==0||j==1)
    {
      Moment_2=0;
      for (k=0;k<(total_N-1);k++)
       {Moment_2+=rho_l*C_UDSI(c,t,k)*4/rho_c/Kvvv/(pow(crystal_L[k+1],4)-pow(crystal_L[k],4))*pow(crystal_L[k],2)*delta_L;
       }
        if ((C_YI(c,t,0)-S_eq) > 0)
         {
          Nucleation_rate1  =  Nucleation_Kn*pow((C_YI(c,  t,  0)-S_eq),Nucleation_n)/60;      
          Nucleation_rate2  =  Nucleation_E*Ka*Moment_2*Diffu/pow(Diameter_molecular,4)*exp(-3.1415*pow(Nucleation_gamma*Diameter_molecular*Diameter_molecular/k_Boltzmann/C_T(c,t),2)/log(relative_S));  
         }
        else
         {
          Nucleation_rate2 = 0;                /* #/(m3*s)   */
          Nucleation_rate1 = 0;                /* #/(m3*s)   */
         }
    }
        else
         {
          Nucleation_rate2=0;
                  Nucleation_rate1=0;
         }
   if (j>=2 && j<=total_N-4)
    {
     fdensitya=C_UDSI(c,t,j-2)*4/rho_c/Kvvv/(pow(crystal_L[j-1],4)-pow(crystal_L[j-2],4));
     fdensityb=C_UDSI(c,t,j-1)*4/rho_c/Kvvv/(pow(crystal_L[j],4)-pow(crystal_L[j-1],4));
     fdensityc=C_UDSI(c,t,j)*4/rho_c/Kvvv/(pow(crystal_L[j+1],4)-pow(crystal_L[j],4));
     fdensityd=C_UDSI(c,t,j+1)*4/rho_c/Kvvv/(pow(crystal_L[j+2],4)-pow(crystal_L[j+1],4));
     fdensitye=C_UDSI(c,t,j+2)*4/rho_c/Kvvv/(pow(crystal_L[j+3],4)-pow(crystal_L[j+2],4));
    }
   else if (j==1)
    {  
     fdensitya=0;
     fdensityb=C_UDSI(c,t,j-1)*4/rho_c/Kvvv/(pow(crystal_L[j],4)-pow(crystal_L[j-1],4));
     fdensityc=C_UDSI(c,t,j)*4/rho_c/Kvvv/(pow(crystal_L[j+1],4)-pow(crystal_L[j],4));
     fdensityd=C_UDSI(c,t,j+1)*4/rho_c/Kvvv/(pow(crystal_L[j+2],4)-pow(crystal_L[j+1],4));
     fdensitye=C_UDSI(c,t,j+2)*4/rho_c/Kvvv/(pow(crystal_L[j+3],4)-pow(crystal_L[j+2],4));
    }
   else if (j==0)
    {  
     fdensitya=0;
     fdensityb=0;
     fdensityc=C_UDSI(c,t,j)*4/rho_c/Kvvv/(pow(crystal_L[j+1],4)-pow(crystal_L[j],4));
     fdensityd=C_UDSI(c,t,j+1)*4/rho_c/Kvvv/(pow(crystal_L[j+2],4)-pow(crystal_L[j+1],4));
     fdensitye=C_UDSI(c,t,j+2)*4/rho_c/Kvvv/(pow(crystal_L[j+3],4)-pow(crystal_L[j+2],4));
    }
   else if (j==total_N-3)
    {
     fdensitya=C_UDSI(c,t,j-2)*4/rho_c/Kvvv/(pow(crystal_L[j-1],4)-pow(crystal_L[j-2],4));
     fdensityb=C_UDSI(c,t,j-1)*4/rho_c/Kvvv/(pow(crystal_L[j],4)-pow(crystal_L[j-1],4));
     fdensityc=C_UDSI(c,t,j)*4/rho_c/Kvvv/(pow(crystal_L[j+1],4)-pow(crystal_L[j],4));
     fdensityd=C_UDSI(c,t,j+1)*4/rho_c/Kvvv/(pow(crystal_L[j+2],4)-pow(crystal_L[j+1],4));
     fdensitye=fdensityc;
    }
   else if (j==total_N-2)
    {
     fdensitya=C_UDSI(c,t,j-2)*4/rho_c/Kvvv/(pow(crystal_L[j-1],4)-pow(crystal_L[j-2],4));
     fdensityb=C_UDSI(c,t,j-1)*4/rho_c/Kvvv/(pow(crystal_L[j],4)-pow(crystal_L[j-1],4));
     fdensityc=C_UDSI(c,t,j)*4/rho_c/Kvvv/(pow(crystal_L[j+1],4)-pow(crystal_L[j],4));
     fdensityd=fdensityc;
     fdensitye=fdensityc;  
    }
   if (G_j1>=0)
           source=rho_l*rho_c*Kvvv/4/delta_L*(pow(crystal_L[j+1],4)-pow(crystal_L[j],4))* (-G_j2*(fdensityc+0.5*delta_L*minmod(minmod_theta/delta_L*(fdensityc-fdensityb),0.5/delta_L*(fdensityd - fdensityb), minmod_theta/delta_L*(fdensityd  -  fdensityc)))+G_j1*(fdensityb+0.5*delta_L*minmod(minmod_theta/delta_L*(fdensityb-fdensitya),0.5/delta_L*(fdensityc-fdensitya),  minmod_theta/delta_L*(fdensityc  - fdensityb)))+Nucleation_rate2/rho_l/2+Nucleation_rate1/rho_l/2);
   else if (G_j1<0)
       source=rho_l*rho_c*Kvvv/4/delta_L*(pow(crystal_L[j+1],4)-pow(crystal_L[j],4))* (-G_j2*(fdensityd-0.5*delta_L*minmod(minmod_theta/delta_L*(fdensityd-fdensityc),0.5/delta_L*(fdensitye  -fdensityc), minmod_theta/delta_L*(fdensitye  -  fdensityd)))+G_j1*(fdensityc-0.5*delta_L*minmod(minmod_theta/delta_L*(fdensityc-fdensityb),0.5/delta_L*(fdensityd-fdensityb), minmod_theta/delta_L*(fdensityd -fdensityc))));
       dS[eqn] = 0;
   return source;
2楼2020-07-23 10:59:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 王大大天 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见