五十、UDF常见错误及报错信息_udf常见报错-程序员宅基地

技术标签: CFD  Fluent  fluent  

1 UDF报错

UDF错误主要分为两类:

第一类:UDF代码错误

这类错误非常常见,但是也非常容易解决,因为Build过程,控制台会提示有问题的代码行数。只要根据提示更改源代码即可。

第二类:UDF设置出错

这类错误原因非常多,基本特点就是Build能顺利通过,load也没问题。但是一计算或者初始化就有直接报错。

常见的原因:UDM未开启或数量不对;UDF中的thread、cell、face等数据结构使用不当。

正确的UDF总是千篇一律,但错误的UDF却各有各的错误。使用的多了会发现常见的错误基本就这么几个,要注意排查。

以下介绍几种常见的错误及对应的报错信息,以便大家进行UDF错误排查。

2 常见错误

2.1 常见错误1:UDF代码存在问题

将UDF编译Build之后,先不要点击load,此时会出现如下图一堆乱码信息,我们需要从中找到有用的信息。如图出现了下图框出的部分

上图中有warning行,当出现了warning行,不必理会,UDF可以正常进行计算

.....\.....\src\original.c: warning C4819: ??????????????????

但是当出现了error行,则说明UDF代码出现了问题。下面的报错信息c(17)表明UDF的第17行代码出现了问题,可针对此行进行修改。

....\....\src\original.c (17): error C2065: ??ter??:???????????

注:

1. 有时候报错信息会很多,很多行都有问题。但是可能只修改一行代码,错误完全消失。比如忘记声明变量i,但是下面很多行都使用到了此变量,报错信息就会很多。只要声明了这个变量,错误信息都会消失。

2. 常见的代码错误:

忘记写分号;

使用全角符号()和;

没有声明变量

多了或者缺少{   }

2.2 常见错误2:环境变量配置失败

UDF代码没问题的情况下,build也没有报错信息。但是点击load,会弹出下图窗口,说明环境变量配置不成功,需要重新配置环境变量。

The UDF library you are trying to load (libudf) is not compiled forparallel use on the current platform (win64).

注:

1. 下图表示的是UDF没有编译成功。如果UDF代码有误,build后出现报错信息,没有修改UDF直接点击load,也会弹出下面的窗口。

2. 一般环境变量配置不成功的话,点击build会很快编译完成,说明没有编译成功;而环境变量配置成功,点击build,编译过程会有一段时间,说明正在进行编译。

2.3常见错误3:UDF命名出错

UDF命名是有要求的,不能出现中文字符这一点大家都知道。

同时UDF的文件名中不能出现空格,这一点很容易被大家忽视。只要文件名中包含空格或者全角符号,那点击build之后,就会出现下面的报错信息。

此时报错信息不会出现多少行代码(类似c(17))出现问题,因此难以排查。报错信息的最后一个\后就是UDF的文件名,表示UDF 命名有问题。

2.4 常见错误4:UDM未开启或数量不够

当UDF中使用用户自定义变量UDM时,必须开启UDM,并且设置足够多的数量,否则UDF会出错。

这种情况下UDF编译build通过,load也没问题。

但是只要一点击Calculate就立马报错。这时会出现下图的报错信息,Received signal SIGSEGV

SIGSEGV:SIG是信号名的通用前缀, SEGV是segmentation violation存储器区段错误。这里就是指UDF中的UDM没有分配内存导致的错误。

只需要打开UDM,或者把UDM的数量调多就行,多了可以,但少了不行。

2.5 常见错误5:UDF数据结构错误

UDF自定义内部的数据结构有很多,我们经常用到的主要是三个:线程Thread、网格cell和面face。如果在UDF对这些数据结构错误的使用,那么UDF编译能正常通过,load也没问题,但一点计算就会报错。

比如thread1线程只进行了声明,但并没有从fluent获取。如果直接使用thread1,则编译通过,load通过,但点击计算,可能会报下图错误:Received signal SIGSEGV

这种问题,报错的信息可能有很多种。但是基本都有一个特点,那就是编译没问题、load没问题,但一点击计算又出错。

2.6 常见错误6:UDF被其他cas占用

UDF编译的过程:选择UDF后,点击build,会生成一个libudf文件夹。点击load后,fluent会直接调用libudf文件夹下的已经编译好的文件。

此时源UDF文件与fluent没有任何关系,即使删除掉源UDF文件,fluent也可以正常运行。但是不能删掉libudf文件,这个文件会一直被fluent占用。

注:libudf是编译过程生成的文件夹名称,可在点击build之前,在Library Name处更改此名。

正是由于上面的原因,又会引出一个UDF常见的问题。正常情况下,udf会被一个cas所使用,但如果两个cas想同时使用一个udf,在cas1已经使用此UDF进行计算的情况下,cas2如果仍然选择这个UDF,点击build之后,可能出现如下图的报错:

错误的原因:cas1已经生成了libudf,并且已经将这个libudf加载进fluent中了,也就是说libudf已经被cas1占用了。此时cas2想再生成libudf,应该要覆盖掉之前的libudf文件夹,但由于libudf被占用,因此无法覆盖,也就无法生成。

也就是说,这种错误和udf无关,同一个文件夹下两个完全不同的udf被两个cas调用,如果这两个cas编译udf时生成的文件夹名称相同,仍然会报上图的错误。

解决办法:解决办法很简单,两个cas的Library Name取不同的名称即可消除此错误。

2.7 常见错误7:libudf未正常更新

这种错误偶尔才会出现。

正常情况下,当UDF更改之后,需要重新对其编译,如果不编译,那还是使用原来的UDF进行计算。

但是在有些情况下,重新编译UDF可能会不成功,但是控制台不会出现进行报错信息,计算也能够正常进行。

怎么知道UDF是否正常更新呢?一方面如果计算残差和原来一模一样,没有突变,那可能就有问题。

另一方面,查看libudf文件夹下的src文件夹,里面是fluent真正加载的UDF文件,打开这个文件,看看是否和新的UDF是否相同。

3 UDF正常编译信息

什么样的信息说明build没有问题??

首先build加载时间比较长,其次文本控制台没有任何error的信息。可能会出现很多???或者乱码,只要没有error就行。比如下图,尽管出现乱码,但是没有error,说明编译正常。

4 UDF乱码正常显示

在windows平台下,UDF编译之后控制台信息是乱码的。可通过对电脑进行设置,使其正常显示。

打开控制面板

点进去时钟和区域--管理---更改系统区域设置

勾选Beta版,点击确定,然后重启电脑,此时fluent编译UDF就不会出现乱码了。但是UDF的一些中文注释,可能会变成乱码。

 以上案例的cas和dat文件均可以免费获取,需要的朋友,只需要点赞关注收藏一键三连后私信我即可哦 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45560646/article/details/130894633

智能推荐

出现Limited tf.compat.v2.summary API due to missing TensorBoard installation错误anaconda下tensorflow卸载 安装_limited api missing tensorboard installation-程序员宅基地

文章浏览阅读4.4k次。本来是一个tensorboard查看log出现的问题,结果由于参考内容与本人并不完全相符,但是自己又根据提示一不小心删除了tensorboard相关内容。之后不仅原问题没解决,还在import tensorflow时出现下述问题Limited tf.compat.v2.summary API due to missing TensorBoard installation经过多方查阅最后说需要卸载tensorflow并重新下载以下为卸载tensorflow并重新安装的过程、遇到的问题以及解决方_limited api missing tensorboard installation

建筑工程施工许可_办理建筑工程施工许可费用 inurl:blog-程序员宅基地

文章浏览阅读1.2k次。 网下申报 事项名称begin-->建筑工程施工许可(海曙、江东、江北)end-->事项编号X1401事项性质许可类法定实施主体名称宁波市建设委员会实际实施主体名称宁波市建设委员会受理地点宁波市行政服务中心建设委员会窗口(老实巷70号5楼)_办理建筑工程施工许可费用 inurl:blog

python delphi通信_python + delphi dll 混合编程-程序员宅基地

文章浏览阅读304次。本文为作者原创作品,转载请注明出处。作者:汉学实践中需要在 python 中生成报表,开始尝试使用 PIL 库向空报表图片中插入所需的文字,可是后插入的文字与原有文字不太和谐,后来想到可以使用 delphi 开发 DLL,在DLL中实现报表生成,并由 python 调用 DLL,实践结果如下:一、用 delphi 开发 DLLlibraryfr;usesSysUtils,Classes,frxCl..._delphi python 发布dll

阿里-paraformer论文详解_paraformer模型-程序员宅基地

文章浏览阅读167次。转发:https://zhuanlan.zhihu.com/p/547497094论文:https://link.zhihu.com/?背景:近年来,随着端到端语音识别的流行,基于 Transformer 结构的语音识别系统逐渐成为了主流。然而,由于 Transformer 是一种自回归模型,需要逐个生成目标文字,计算复杂度随着目标文字数量而呈线性增加,限制了其在工业生产中的应用。_paraformer模型

View的事件体系(一)view基础和view的几种滑动方式_viewvelocity.view方法-程序员宅基地

文章浏览阅读251次。View的事件体系一_viewvelocity.view方法

linux命令打错了怎么办,如何快速纠正错误的linux命令?-程序员宅基地

文章浏览阅读4.7k次,点赞3次,收藏18次。如何快速纠正你的linux命令?我们在输入命令的时候,难免会出现输入命令错误,或者输入过多,过少的情况,那么除了各种按方向键退回之外,还有什么快速纠正命令的方法?本文用|表示光标位置。移动到命令开头举个例子,你准备执行一个命令:./test-axxx-bbbb|但是你输入的时候,少了前面的./(为什么执行程序的时候前面要加./)test-axxx-bbbb这个时候你一般会怎么办?使用方向键将光标移..._linux命令输错了,咋移回去

随便推点

request.getSession().getServletContext().getRealPath() // 虚拟目录映射为实际目录_spring boot request.getsession().getservletcontext-程序员宅基地

文章浏览阅读1k次。request.getSession().getServletContext().getRealPath() // 虚拟目录映射为实际目录_spring boot request.getsession().getservletcontext().getrealpath

使用Oauth2: 报错 org.springframework.web.client.HttpClientErrorException$Unauthorized: 401 null-程序员宅基地

文章浏览阅读3.7k次。模拟 postman 向 授权服务器请求令牌中,报错 401 ,检查client 和 clientSecret加一个空格 就不报错了在这里加 空格_org.springframework.web.client.httpclienterrorexception: 401 null

Ext Grid实现增删改查的例子_ext grid 增删改-程序员宅基地

文章浏览阅读1.6k次。一:new Ext.grid.EditorGridPanel实现行内增删改查var stationLineStore=new Ext.data.JsonStore({ url:"../../../addByShowStationLine.do?lineCode="+myCjxx.lineCode, // 数据源 fields:[ 'stationCod_ext grid 增删改

log4cplus在VS项目中的使用-程序员宅基地

文章浏览阅读593次。log4cplus是C++编写的开源的日志系统,宣称具有线程安全、灵活、以及多粒度控制的特点,通过将日志划分优先级使其可以面向程序调试、运行、测试、和维护等全生命周期。你可以选择将日志输出到屏幕、文件、甚至是远程服务器;通过指定策略对日志进行定期备份等等(该段为引用其他文章)。1.编译log4cplus库在网上下载log4cplus库(我下载了 log4cplus-1.2.1.zip) ,..._log4cplus-1.2.1.zip

sql中的模糊匹配与正则表达式_sql 模糊匹配-程序员宅基地

文章浏览阅读2.4k次。sql中的模糊匹配与正则表达式_sql 模糊匹配

Shp格式详解与在线打开、查看-程序员宅基地

文章浏览阅读7.6k次,点赞33次,收藏36次。使用3D模型在线转换网站进行shp格式在线打开、查看和转换,NSDT 3dconvert支持将shp格式在线转换为glb、gltf、obj、stl、dae、ply、off等格式。_shp

推荐文章

热门文章

相关标签