UDF程序编译常见问题,以及解决办法!
1由于环境变量没有设置好,没法生成liubuf.dll文件,这时你加载时liubu.dll时报错!
图1
如何修改:设置好环境变量,再次编译就可以成功加载。
环境变量设置目前较为成熟和成功方法,经过多次给网友调试,总结认为按路径设置环境变量是最好的方法,成功率百分之百!这里切记修改环境变量不是在系统变量中修改!!
设置如下:
图2
主要找到编译器安装路径下得include\lib\path就可以设置成功。具体见教程vs2010、2013环境变量设置。
另外需要注意是:由于程序字符格式问题,这种情况多为复制黏贴帮助文档或者其他地方程序,直接黏贴在编译器或者text文本里得,导致没有完全编译,加载过程时报错,找不到liubuf.dll文件。
解决办法:
编译不成功原因是由于程序本身格式问题,编译器不识别,多为复制黏贴过来程序。这时候可以将其复制黏贴到可以编译成功程序里,即可解决问题。
2编译过程中,由于书写有误,导致程序报错。
图3
这样错误要根据报错提示进行修改,千万要注意看报错提示,再进行逐行修改,事半功倍。
例如:第13行缺少分号,增加分号 即可。
图4
具体调整见技术邻视频。
3由于程序结构问题,导致报错,received a fata segmental?
例如:在边界上进行面循环时,我们却想去获得网格上参数值,例如C_U(c,t)网格速度值,这样就是不合理得,会出现分割错误。同时,对于C_VOF(c,t)体积分数这样宏,一定要注意它的指针问题,否则你会出现常见错误。
4由于程序函数宏格式问题,导致缺少“}”,size of“0”,
图5
程序本身没有错误,但是编译就是报错!这时比较让人着急,找不到头绪!
解决办法:这时只需要找一个能编译程序,复制黏贴过去。如果还不行,就说明你的函数是不是哪个地方写错了,要进行仔细检查!
5、程序本身没问题,编译加载都成功,但是导入case时,初始化报错或计算报错,出现segmental,或者获取数据为空错误等。
举例:下列程序,对区域内定义温度。
图6
图7
6、定义源项时 导致方程发散。
答:由于增加了define source宏导致计算发散,这时要考虑加载源项方式是否符合物理模型,仔细思考后修改程序即可避免错误。