Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. Fluent
  3. 【请教】边界条件udf编译失败,关于fatal signal (Segmentation fault)的错误

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

已定时 已固定 已锁定 已移动 Fluent
3 帖子 2 发布者 4.8k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 分 离线
    分 离线
    分子在运动
    写于 最后由 李东岳 编辑
    #1

    对入口处的指数率风剖面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 条回复 最后回复
  • 分 离线
    分 离线
    分子在运动
    写于 最后由 编辑
    #2

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

    纵 1 条回复 最后回复
  • 纵 离线
    纵 离线
    纵浪大化
    在 中回复了 分子在运动 最后由 编辑
    #3

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

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]