Fluent在服务器上的并行

          由于需要更加精确的结果,所以想将以前计算的一个算例网格加密放到服务器上进行计算,在查找了很多教程后,发现就是一个在没有图形界面的情况下写.jou文件的问题。本来发现fluent能够记录.jou文件,但是试了一下后才发现记录下来的也是基于图形界面的,完全没法用,这样看Tecplot的宏记录真好用2333。不过好在fluent保存的case文件里面本来已经含有了很多设置,诸如湍流模型、边界条件之类的,所以可以先在图形界面调试好,然后在将cas、dat文件上传到服务器,这样我们需要的写的.jou文件就相对很简单了,而那些需要写入.jou文件的比如udf,则可以在fluent的控制台进行尝试,然后大致可以得到应该写什么样的语句。下面就是我写的一个简单的例子

        /define/user-defined/compiled-functions/compile
        libraryName
        yes
        sourcefilename.c


       /define/user-defined/compiled-functions/load
       libraryName

;#编译并载入UDF


       /file read-case
       yourcasename.cas
       /file read-data
       yourdatname.dat

;#读入调试好的case、data文件


       /define/user-defined/function-hooks/adjust "youradjustname::libraryName"""

;#hook像诸如init adjust这些需要hook的udf,不知道为何除了udf里定义的DEFINE_ADJUST(youradjustname,d)外,还会有一个名字""为空的,并且三个"要连写,两者之间不能有空格,不知道代表什么

       /solve/patch

       phase-2

       12


       mp

       1

;#我计算的是一个液面晃荡的问题,所以是两相流,要Patch一下,选择phase-2作为我们的domain,然后我要patch的zone的编号是12,然后要空格一下进入下一步,然后选择mp即体积分数,令其为1
       /file/auto-save/root-name yourrootname
       /file/auto-save/data-frequency 10000

       /file/auto-save/case-frequency 10000

;#自动保存data,case,每10000个时间步或是10000迭代步
       /solve/iterate
       200000

;#如果是稳态问题,迭代200000次

       /solve/set/time-step 0.0001
       /solve/dual-time-iterate 
       50000
       200

;#如果是非稳态问题,时间步为0.0001,时间步数50000,每步迭代200次
       /file/write-case-data
       yourfinalname.out
       exit
       yes

;#最后导出最后的case与data文件

然后最后提交任务可以用lsf、pbs啥的,但是我不会,不过直接用命令提交貌似也麻烦不了多少。

新建一个文件new

然后文件里面写

node9

node9

node9

....

node9

这样共n列代表你使用节点9,里面的n个核。

nohup fluent 3d -t12 -cnf=new -g -i yourjouname.jou >&youroutname.out&

其实-t12表示一共12个核,-cnf=new使用node9的12核,然后运行过程输出到youroutname.out中,这是使用一个节点的命令,使用多个节点只需对命令作些许修改如下 只需加入-pethernet 和 -ssh

nohup fluent 3ddp -pethernet -cnf=myhosts -t36 -ssh -g -i f30.jou>&out.out & 






你可能感兴趣的:(fluent)