连续运行多个模拟
可以使用一个宏连续加载和运行多个模拟文件。不需要单独的 shell 或 DOS 脚本。
下面的样本宏可在指定的目录中查找所有 .sim 文件,然后它将为每个模拟文件启动服务器、进行迭代并将其另存为新文件名。启动新模拟需要适当的许可证。
// STAR-CCM+ macro: runMultiple.java
package macro;
import java.io.*;
import star.base.neo.*;
import star.common.*;
public class runMultiple extends StarMacro {
public class SimFileFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return name.endsWith(".sim");
}
}
public void execute() {
File simDir = new File("c:\\users\\john\\documents\\testMultiple");
Simulation sim_0 = getActiveSimulation();
sim_0.kill();
for (File f : simDir.listFiles(new SimFileFilter())) {
startAndRun(f);
}
}
public void startAndRun(File f) {
System.out.println("\n Starting "+f);
String fileName = f.getAbsolutePath();
Simulation sim = new Simulation(fileName);
// Uncomment next line to clear simulation before running
// sim.getSolution().clearSolution();
sim.getSimulationIterator().run();
String newFileName = fileName.replaceAll("\\.sim","-new.sim");
sim.saveState(newFileName);
sim.kill();
}
}
要使用该样本宏:
- 将宏保存到 Java 文件并将其命名为 runMultiple.java。
- 在该宏中,提供正确的工作目录路径。即,将 "C:\\users\\john\\documents\\testMultiple" 替换为实际工作目录的路径。工作目录包含要按顺序运行的模拟文件。
- 在工作目录中,发出以下命令:
Windows:
[INSTALL_DIR]\star\bin\starccm+ -batch runMultiple.java
Linux:
[INSTALL_DIR]/star/bin/starccm+ -batch runMultiple.java