Navigation

    CFD中文网

    CFD中文网

    • Login
    • Search
    • 最新

    【请教】边界条件udf编译失败,关于fatal signal (Segmentation fault)的错误

    Fluent
    2
    3
    2746
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 分
      分子在运动 last edited by 李东岳

      对入口处的指数率风剖面u、湍动能k、耗散率e写了udf

      第一次编译,报错如下

      *cpp -I"D:\Program Files\ANSYS Inc\v170\fluent\fluent17.0.0/………… -DUDFCONFIG_H="<udfconfig.h>" "C:\Users\fenzi\Desktop\cfd\noHatchSingle\prep\UDF\inlet.c"
      Error: udfconfig.h: line 16: parse error.*
      

      重试,报错信息不同如下

      *cpp -I"D:\Program Files\ANSYS Inc\v170\fluent\fluent17.0.0/…………-DUDFCONFIG_H="<udfconfig.h>" "C:\Users\fenzi\Desktop\cfd\noHatchSingle\prep\UDF\inlet.c"
      Error:  received a fatal signal (Segmentation fault).
      Error Object: #f*
      

      我的网格质量(222行列式 )如下

      0_1505971450527_微信截图_20170921131509.png

      udf源文件如下

      *#include "udf.h"
      /*来流速度u*/
      DEFINE_PROFILE(u_expinlet,t,i)                    /*定义边界,名为u_expinlet,线程名t,位置i */     
      {
        float x[3];                                       /*3维数组,对应三个坐标 */
        float u;                                         /*浮点数u,对应来流速度 */                         
        float y;                                          /*浮点数y,对应y坐标  */                            
        face_t f;                                        /*声明面f */                                       
        begin_f_loop(f,t)                               /*开始线程t内的逐面循环 */                          
       {
         F_CENTROID(x,f,t);                               /*取得此面质心的三个坐标,赋给三位数组x */              
         y=x[1];                                         /*将三维数组第三个值赋给y */                              
         u=10.*pow(y/10.,0.16);                              /*用y表达u */                                          
         F_PROFILE(f,t,i)=u;                              /*把u赋给F_PROFILE*/                                     
       }
       end_f_loop(f,t)                                 
      }                         
      /*湍动能k*/
      DEFINE_PROFILE(kinetic,t,i)                    /*定义边界,名为kinetic,线程名t,位置i*/     
      {                                    
       float x[3];                                       /*3维数组,对应三个坐标*/                            
       float u;                                        /*浮点数u,对应来流速度 */                          
       float y;                                          /*浮点数y,对应y坐标  */                           
       float k;                                          /*浮点数k,对应湍流强度 */
       float I;                                           /*声明浮点数I,对应湍流强度  */
       face_t f;                                         /*声明面f         */
       begin_f_loop(f,t)                                 /*  开始线程t内的逐面循环    */                          
       {
        F_CENTROID(x,f,t);                                 /*  取得此面质心的三个坐标,赋给三位数组x */           
        y=x[1];                                             /*   将三维数组第三个值赋给y   */       
        u=10.*pow((y/10.),0.16);                                 /*   用y表达u     */                   
         if (y<=5.)                                          /*用y表达I    */
            I=0.23;                                         
         else
            I=0.094*pow(y/350.,0.21); 
            k=1.5*pow(u*I,2.)                             /*用I表达k*/
            F_PROFILE(f,t,i)=k                             /* 赋k的值给F_PROFILE*/      
       }
       end_f_loop(f,t)                                 
      }
      /*耗散率epsilon */
      DEFINE_PROFILE(epsilon,t,i)                    /* 定义边界,名为epsilon,线程名t,位置i  */  
      {                                                                        
       face_t f;                                         /*声明面f   */                                     
       float x[3];                                        /*3维数组,对应三个坐标   */                           
       float u;                                         /*浮点数u,对应来流速度    */                      
       float y;                                          /*浮点数y,对应y坐标      */                        
       float L;                                         /*浮点数L,对应湍流尺度     */
       float I;                                           /*声明浮点数I,对应湍流强度   */
       float k;                                          /*浮点数k,对应湍流强度/*      */
       float e;                                          /*浮点数e,对应耗散率/*         */
       begin_f_loop(f,t)                                 /*  1开始线程t内的逐面循环  */                            
       {
        F_CENTROID(x,f,t);                                 /*  取得此面质心的三个坐标,赋给三位数组x   */
        y=x[1];                                             /*   将三维数组第三个值赋给y   */  
        u=10.*pow((y/10.),0.16);                                 /*   用y表达u */                                 
         if (y<=5.)                                          /*用y表达I*/     
            I=0.23;                                         
         else
            I=0.094*pow(z/350.,0.21); 
        k=1.5*pow(u*I,2.)                                  /*用I表达k*/
        L=100.*POW(y/30.,0.5);                                /*用y表达L*/
        e=1/L*pow(0.09,0.75)*pow(k,1.5)                    /*用L和k表达e */
        F_PROFILE(f,t,i)=e                                 /* 赋e的值给F_PROFILE*/      
       }
       end_f_loop(f,t)                                 
      }*
      
      1 Reply Last reply Reply Quote
      • 分
        分子在运动 last edited by

        已解决,原因是代码里有几行没加分号和一些手误
        需要新代码可以找我

        纵 1 Reply Last reply Reply Quote
        • 纵
          纵浪大化 @分子在运动 last edited by

          @分子在运动 705718754@qq.com,谢大神。 我也在做UDF, 但是老是报错。。。很头疼

          1 Reply Last reply Reply Quote
          • First post
            Last post

          CFD中文网 | 东岳流体 | 京ICP备15017992号-2
          论坛登录问题反馈可联系 li.dy@dyfluid.com