Fluent版本:19.0

究其原因,一般是因为我们编写的UDF当中指针错误,导致未能正确获取Fluent一些变量的值,从而造成该错误。

下面我们通过调试手段来为了重现该错误,直观查看错误原因。

我们编写如下示例代码:

调试步骤和算例参考《GCC编译UDF和gdb调试UDF》

链接:http://blog.sina.com.cn/s/blog_14d64daa10102xxlf.html

我们直接运行算例和UDF

则会出现Received signal SIGSEGV

然后我们在gdbgui当中添加断点来调试UDF,从而从而能够更加直观的看到Received signal SIGSEGV错误的原因

打开Fluent,加载UDF,运行算例

回到浏览器的gdbgui操作界面

然后停在gdbgui的断点处

说明21行断点以前的UDF程序都是没有问题的

gdbgui的控制台中就出现了gdbgui noticed a signal was recieved (Segmentation fault, SIGSEGV).的错误,说明我们的程序执行到UDF的21行出现了错误

继续执行程序,则会在Fluent当中出现Received signal SIGSEGV的错误

从上面的调试过程我们可以看出是我们的UDF代码的21行出现了问题,可是为什么会出现这个问题呢?问题应该出现在C_P_RG这一个宏上面。这是因为我们在前面的计算当中,求解器不断移走它不需要的数据,没有保留变量无法获取到C_P_RG的值,从而导致received signal SIGSEGV的错误。对于本算例我们可以采用下面的方式修正这个错误:

修改UDF源代码为:

重新编译UDF

我们再次打开Fluent,加载UDF

使用TUI命令:

/solve/set/expert

Save cell residuals for post-processing? [no]

Keep temporary solver memory from being freed? [no] yes

Allow selection of all applicable discretization schemes? [no]

来保留变量的梯度

运行算例,可见Received signal SIGSEGV已经消除,UDF程序可以正常运行,计算顺利完成

Fluent使用UDF遇见Received signal SIGSEGV的更多相关文章

  1. Program received signal SIGSEGV, Segmentation fault.

    GDB调试的时候出现了: Program received signal SIGSEGV, Segmentation fault.(程序收到信号SIGSEGV,分段故障) SIGSEGV:在POSIX ...

  2. Application received signal SIGSEGV

    Application received signal SIGSEGV (null) (( 0 CoreFoundation 0x0000000181037d50 <redacted> + ...

  3. 在Visual Studio中直接编译Fluent的UDF

    VS版本:Visual Studio 2013 Fluent版本:Fluent18.2 首先我们启动VS Studio中直接编译Fluent的UDF" title="在Visual ...

  4. Application received signal SIGABRT

    Application received signal SIGABRT (null) (( 0 CoreFoundation 0x0000000182bbadc8 <redacted> + ...

  5. Program received signal SIGILL, Illegal instruction

    Program received signal SIGILL, Illegal instruction 这个错误,发现是直接在printf 的%s中直接使用string类型,而没有使用c字符串格式造成 ...

  6. Ansys Student 2020R2中Fluent编译UDF简介

    使用内建编译器 在Ansys Fluent中编译UDF一般都需要额外安装相应版本的Visual Studio编译器,VS的缺点是体量大,占空间,安装后还需要额外进行相关设置才能正常使用.而新版本的An ...

  7. fluent中UDF环境变量问题的三种解决方法

    方法一: 这种方式最简便,首选这种,但是有时会因为不明原因而不好使,我自己电脑刚开始用这种方式是行得通的,但是后来中途装过很多乱七八糟的软件,估计环境变量改乱了,这时候只能用第二种或者第三种方法.先说 ...

  8. Fluent操作流程&&udf编译

    Fluent 操作流程 1, 读网格模型 2, Scale修改单位 3, Check检查网格是否符合要求,最小体积不能出现负数 4, Time 选择瞬态,重力设置 5, Models-Multipha ...

  9. 忽略“Signal: SIGSEGV (Segmentation fault)”

    1. touch ~/.gdbinit 2. 在.gdbinit文件中添加“handle SIGSEGV nostop noprint pass”

随机推荐

  1. 如何在.Net Mvc中让Get,Post请求访问同一个Action的方法

    [HttpPost] [ActionName("Index")] public ActionResult Post(Models.WeChatRequestModel model) ...

  2. react 使用的小建议

    使用pureRender,setState和Immutable.js来操作state Immutable 中文意思不可变. 不能直接修改state的值,要用setState 和Immutable re ...

  3. 看年薪50W的架构师如何手写一个SpringMVC框架

    前言 做 Java Web 开发的你,一定听说过SpringMVC的大名,作为现在运用最广泛的Java框架,它到目前为止依然保持着强大的活力和广泛的用户群. 本文介绍如何用eclipse一步一步搭建S ...

  4. Android编译系统中的Android.bp

    https://www.cnblogs.com/bluestorm/p/10895005.html Android.bp,是用来替换Android.mk的配置文件. 它使用Blueprint框架来解析 ...

  5. MongoDB 分片集群实战

    背景 在如今的互联网环境下,海量数据已随处可见并且还在不断增长,对于如何存储处理海量数据,比较常见的方法有两种: 垂直扩展:通过增加单台服务器的配置,例如使用更强悍的 CPU.更大的内存.更大容量的磁 ...

  6. Linux中Nginx中添加自签证书TLS

    创建自签证书TLS openssl req \ -newkey rsa: \ -x509 \ -nodes \ -keyout test.com.key \ -new \ -out test.com. ...

  7. Prometheus学习笔记(3)什么是node_exporter???

    目录 Node_exporter安装配置启动 Node_exporter安装配置启动 node_exporter安装在被监控端,安装方式也比较简单,直接下载解压安装即可,默认启动后监听9100端口. ...

  8. Django之auth认证

    Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的 ...

  9. WSGI——python web 服务器网关接口

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826084.html 一:服务器.服务器软件.应用程序(后台) 我们常说“服务器”,实际上服务器是一个很宽 ...

  10. Odoo XML中操作记录与函数

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826037.html 一:XML文件中定义记录 XML中定义记录: 每个<record>元素有 ...