连续运行多个模拟

可以使用一个宏连续加载和运行多个模拟文件。不需要单独的 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();
  }
}

要使用该样本宏:

  1. 将宏保存到 Java 文件并将其命名为 runMultiple.java
  2. 在该宏中,提供正确的工作目录路径。即,将 "C:\\users\\john\\documents\\testMultiple" 替换为实际工作目录的路径。工作目录包含要按顺序运行的模拟文件。
  3. 在工作目录中,发出以下命令:

    Windows:

    [INSTALL_DIR]\star\bin\starccm+ -batch runMultiple.java

    Linux:

    [INSTALL_DIR]/star/bin/starccm+ -batch runMultiple.java