Star CCM+使用Java宏实现批处理
本帖最后由 蓝血儿 于 2012-10-29 21:57 编辑Star CCM+使用Java宏实现批处理Star ccm+是流体分析的一款神器,便捷人性化的图形用户界面讨人喜欢,窃以为这款神器有以下优势:1) 完全集成化的前后处理和求解,使GUI操作极为便利;2) 强大的网格功能更加适合工程上的需要;3) 简便快捷的用户自定义函数;4) 强大的多物理场耦合分析功能(部分功能盗版软件似乎用不了);5) Java宏与批处理。这里仅对上述第五个功能做一简要说明,以起抛砖引玉之效,当然也欢迎拍砖。1. 录制Java宏用来记录用户的操作,并以程序的形式将其记录下来,其它的功能暂时不很清楚,在批处理上是个关键角色。当你的模型文件一切设置ok了,保存sim文件到一个单独的文件夹(方便处理),这时候开始点击录制宏 ,设置宏文件的保存路径与名称(这里为air1.java,注意一旦开始录制宏则下面的 所有操作与修改都会被记录到宏文件中,所以在录制之前最好想清楚都有哪些参数需要修改,以便再次计算。比如下图中的翼型将入口的速度改为120m/s,迭代步数为5(这么少?下面叙述),那么这些被修改过的参数将作为变量记录在了宏文件中,当用Ultraedit打开宏文件时候可清楚看到用红色显式出来的既是变量。注意这时候还不能停止宏的录制,因为还有一个变量即计算后的保存文件名还没有记录下来,点击计算,很快5个迭代步就完成了,然后将文件另存为results_1,这时候results_1作为变量记录在了宏文件中,正因为此前面设置了一个小的迭代步,至此可以点击stop recording,这样宏文件录制完毕。2. 修改宏文件宏文件的修改建议使用Ultraedit,这是文本编辑器的一款神器,这时便可以修改其中的参数了,例如这里将入口的速度设为100,将迭代步设为1000,结果文件名称改为results_2,将宏文件另存为air2.java,这里还要注意另存为的名称要与文件中的一个名称一致,如图3中的air1改成air2,这是C语言的规矩,不是很懂,照做就行。按照自己的需要可以多保存几个,比如这里的入口速度可以再次修改。当然如果有其它的参数需要修改,在录制宏文件的时候要改动一下将其作为变量保存在宏文件中。3. 执行宏文件至此宏文件的录制和修改创建已经完成了,下面的工作就是使用它进行计算了。最简单的执行宏文件计算的方法是在CCM+界面下执行,点击play Marco,选择前面建立的宏文件,就可以直接计算了,但是这还算不上批处理。这里主要说明批处理的步骤;所谓的批处理一般就是运用Dos命令窗口进行后台运算了,点击开始>运行,输入cmd,回车,便进入了windows的命令窗口。这里可以查看一下ccm+的版本输入starccm+ -version,回车便出现了版本,这一步纯属蛋疼了。下面首先进入前面的文件所在的文件夹,这纯属Dos命令的问题了,例如这里d: 回车,进入了d盘cd ccm+_work/java,便进入了我的文件夹了,进入后执行batch计算:starccm+ airfoil.sim –batch air1.java如下图,注意这里的airfoil.sim是我的原始计算文件,即录制宏用的那个模型文件。当然这样还是一次执行一个,下面说明如何一次执行多个:先在该文件夹中建立一个文本文件(run.txt),在里面分别输入前面创建的Java文件名,如下图,注意前面要有原始模型sim文件。然后将文件的名修改为run.bat,然后再windows命令窗口输入,即将前面的指向单个java文件的命令改成指向该bat文件即可, 例如:starccm+ airfoil.sim –batch run.bat 这样就完全实现了批处理,让你的计算机尽情展现吧,你可以度过一个愉快的周末,而大量的计算任务又神奇般的完成了!
恩,我再加一句吧,如果要多核运行可以这样:-batch np 4 XXXX.java
其中4就是指4核 楼主,能不能在网格变化后采取宏操作,就是要反复优化的时候只有一小部分几何变动,但还要把所有的函数,监视,plot重行定义一遍,能不能直接调用啊 楼主,fluent能不能使用java来调用 很想学习一下,谢谢楼主分享! 感谢楼主分享 学习ing 发表于 2018-5-30 09:37
楼主,fluent能不能使用java来调用
fluent直接用journal文件实现批处理很方便,建议尝试一下
页:
[1]