1. The f1 process could not be started介绍
出现文本The f1 process could not be started,不要怀疑,你肯定做了非常过分的事情,直接让Fluent罢工了。
这里的罢工和浮点溢出不一样,浮点溢出是发散了,你还可以操作Fluent重新计算。这里是Fluent软件崩溃了,只能关闭Fluent后重新启动,你之前的cas和dat也无法保存。
类似于,浮点溢出是情侣闹矛盾了,而The f1 process could not be started是直接分手了,而且一声招呼都不打就消失了。
2. 出现The f1 process could not be started的原因
我所遇到的出现这个问题,一般有四种情况:
2.1 网络变化导致
比如在联网的情况下打开Fluent的cas后,某个时间点,网络断掉或者发生其他变化,可能会出现这个问题。
因此我们计算的时候,要保持网络连接的稳定,很多同学喜欢长时间计算时,直接断网。
2.2 电脑睡眠导致
如果我们打开Fluent,想让它一直计算,但由于长时间没有操作电脑,电脑睡眠了,那么此时Fluent可能会出现The f1 process could not be started.
解决办法很简单,就是不让电脑进行睡眠状态。具体方法如下:
控制面板--系统和安全
使计算机进入睡眠状态改为:从不
2.3 Fluent内存分配问题
如果使用了UDF,并且在UDF中使用了UDM(用户自定义内存),而在Fluent中没有对UDM进行设置,那么调用UDF时就会出现The f1 process could not be started.
比如在UDF中使用了5个UDM,而在Fluent界面只分配了4个UDM内存,此时编译UDF不会有任何的错误提示,但只要一使用这个UDF,就会直接崩溃。
因此Fluent界面中的UDM数量要大于等于UDF中使用的UDM个数。
2.4 UDF数据结构问题
还是UDF的问题,我们都知道如果在UDF中写错了代码,在Fluent编译时会出现错误提示,以便我们检查UDF代码。
但是如果UDF涉及到数据结构的问题,即使代码有问题,Fluent也不会进行任何的提示,而是编译完全通过。但是只要你一使用这个UDF(如初始化UDF,点击初始化后),Fluent就会立刻崩溃掉,并出现The f1 process could not be started。
什么算是数据结构问题??
比如对于多相流问题,DEFINE_ADJUST(name,d)宏中的d返回的是混合计算域,你现在想要获取主相的体积分数,使用C_VOF宏,C_VOF(c,t)宏中的参数t应该是主相的t,但是如果你使用d来获取t,获取到的是混合计算域的t。而混合相是没有体积分数的概念的,那么数据结构就产生了问题,软件会崩溃掉。
麻烦之处就在于整个代码没有任何的问题,Fluent也无法识别哪里出现了错误,但是就是不能使用。
如何解决呢??只能自己慢慢理解UDF的数据结构,尤其涉及到多相流和多组分问题时,很容易出现这样的错误