蓝血儿 发表于 2012-10-29 21:45:13

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       这样就完全实现了批处理,让你的计算机尽情展现吧,你可以度过一个愉快的周末,而大量的计算任务又神奇般的完成了!

goupsun 发表于 2012-10-29 22:15:38

恩,我再加一句吧,如果要多核运行可以这样:-batch np 4 XXXX.java
其中4就是指4核

木子不言 发表于 2013-2-4 23:51:47

楼主,能不能在网格变化后采取宏操作,就是要反复优化的时候只有一小部分几何变动,但还要把所有的函数,监视,plot重行定义一遍,能不能直接调用啊

学习ing 发表于 2018-5-30 09:37:35

楼主,fluent能不能使用java来调用

robin_fb 发表于 2018-7-29 00:15:01

很想学习一下,谢谢楼主分享!

疯狂国内外 发表于 2018-8-22 10:07:25

感谢楼主分享

戴明然 发表于 2018-10-19 09:30:58

学习ing 发表于 2018-5-30 09:37
楼主,fluent能不能使用java来调用

fluent直接用journal文件实现批处理很方便,建议尝试一下
页: [1]
查看完整版本: Star CCM+使用Java宏实现批处理