在批处理模式下运行客户端
大型模拟通常需要在本地机器上准备案例,然后将案例提交到远程机器或远程集群运行。在这些情况下,可以使用 Simcenter STAR-CCM+ 批处理客户端从宏文件执行一系列命令,而无需用户干预。
批量模拟由批处理 Java 客户端和服务器实例组成。批处理客户端通过预定义的指令('mesh'、'step' 或 'run')或使用用户提供的 Java 宏文件驱动服务器。批量模拟通常用于计算集群上,在这些集群上无法使用互动客户端驱动模拟,因为计算集群安排的模拟将来才能运行。批处理过程必须明确定义并且在启动后无需任何用户输入即可执行。
在批处理模式下运行时,需要从命令行执行 Simcenter STAR-CCM+,向其传递包含加载网格所需的所有命令的宏脚本名称,设置属性,运行一系列迭代并渲染场景和/或绘图的图像。在这种模式下,批处理客户端可编译并运行该脚本,将所有信息和说明传递到服务器。如果不希望使用宏,则可以将 -batch 命令选项附加到 mesh、run 或 step,Simcenter STAR-CCM+ 会执行相应的操作。
有关录制、编辑和运行宏文件的说明,请参见编制应用程序脚本一节。使用类似的宏录制技术,可以在通常不处理大型作业的小型机器上设置大型作业。通过使用额外命令行参数,还可以将这些批处理作业提交到批处理管理系统。
始终需要客户端才能在批处理模拟运行中包括硬拷贝图像输出。有关硬拷贝导出在批处理中的工作方式的详细信息,请参见管理批处理中的硬拷贝输出。
将互动式客户端连接到批量模拟
此外,由于多个客户端可以连接到同一台服务器,因此还可以访问正在进行的批处理作业。通过连接额外客户端,可以执行许多互动任务,例如,打开场景和调整求解器参数等。使用自动保存功能,可以在运行结束时自动保存。
批处理客户端保持对所生成服务器的控制,直到完成所有操作并断开所有互动式客户端。批处理客户端不会关闭其服务器,直到断开所有其他客户端。默认情况下,互动式客户端中会出现一个模式对话框自动断开,指示批处理客户端已完成。可以断开与服务器的连接(并允许关闭批量模拟),或选择取消断开并保持连接到服务器。如果您未在 60 秒内做出选择,则互动式客户端将自动断开与服务器的连接。
可以使用选项对话框(可从工具菜单访问)中的自动断开批量模拟选项停用自动断开行为。
准备大型模拟案例
对于那些不太适合您机器的较大问题,您可以准备批处理脚本。通常,如果机器内存不足,无法运行大型网格,则可采用此方法。
在这种情况下,首先设置一个较小的类似网格,并使用这一较小的网格录制宏。然后,编辑脚本并更改所导入网格文件的名称以表示原始问题。例如,相关代码可能如下所示:
getSimulation().getImportManager().importFile(resolvePath("smallMesh.ccm"));
除了需要对该文件所做的任何其他更改以外,还需更改引号中的文件名。
批处理总结报告
通过提供下列命令行选项,可以获取批处理模拟总结报告:
-batch-report
.html 格式的报告将提供模拟运行系统的详细信息以及模拟本身的系统信息,其中包括运行时间。它还包含在模拟过程中写入的 Simcenter STAR-CCM+ 控制台输出的副本。
输入行命令之后,默认浏览器中将生成该报告。
错误代码
批处理作业完成之后,Simcenter STAR-CCM+ 将返回已知的错误代码。可以使用适合操作系统的方法访问这些代码。在使用 Bash Shell 的 Linux 上,可以通过变量 $?
访问错误代码。在 Windows 上,可以使用环境变量 %errorlevel%
访问错误代码。
退出代码 | 描述 |
---|---|
0 |
无错误 |
1 |
一般性错误 |
2 |
使用错误 |
4 |
文件错误 |
8 |
许可错误 |
16 |
浮点错误 |
32 |
不可恢复的错误 |
如果遇到多种错误状况,则错误代码将会累积。例如,如果遇到文件错误和不可恢复的错误,则退出代码为 "4 + 32 = 36"。
在 Linux 中,Simcenter STAR-CCM+ 还会返回与已知信号关联的退出代码。例如,如果因向服务器进程发送 SIGTERM 而导致 Simcenter STAR-CCM+ 终止(其值通常为 15),则 Simcenter STAR-CCM+ 批处理模拟将返回退出代码 143(即 128 + 信号编号)。
使用并行模拟时,如果服务器进程终止,负责生成服务器进程的消息传递接口 (MPI) 可能会返回无法识别的非零错误代码。退出代码取决于使用的特定 MPI 以及操作系统。
如果一部分并行进程退出,MPI 可能会使用平台相关的方法显式终止剩余的进程。例如,在 Linux 上,MPI 可以向任何剩余的进程发送 SIGTERM,因此其退出代码为 143(这是与 SIGTERM 关联的退出代码)。