了解宏的主要方法

宏的主要方法是 execute() 方法,在宏运行于 Simcenter STAR-CCM+ 中时执行。

在这里将每个嵌套类的对象实例化,并使用每个方法执行所需的任务。

描述 代码
  • try-catch 操作围绕整个 execute() 方法语句。当运行宏时,如果引发任何其他错误,try-catch 非常有用。。
public void execute() {
 
  try {
 
 
  } catch (Exception e) {
    jOptionPane.showMessageDialog(
      null, e.toString()
    );
  }
}

在 try-catch 操作内,您可将语句分为两个主要部分。第一部分包含执行一次的语句,例如:检索激活模拟。第二部分包含一个循环,可将为每组风数据重复的语句置于其中。

描述 代码
  • 在第一部分中,检索激活模拟并将 DataReader, DataWriterSimRunnerPostProcessor 实例化。此外,使用 DataReader 对象调用读取输入文件的 readInput() 方法,并创建一组 SimData 对象。调用 getFlowDetails() 方法,以获取 SimData 集合的基准,并会提供给循环。
Simulation theSim =
  getActiveSimulation();
 
DataReader reader =
  new DataReader();
reader.readInput(folder + “/trainInput.txt”);
 
List<SimData> listCases =
  reader.getFlowDetails();
 
 
PostProcessor postP =
  new PostProcessor(theSim);
  • 接下来,使用循环为每组风数据运行模拟。使用的语法是 for-each 循环的语法,并读取:用于集合中的每个 SimData 对象,请执行下列操作。此功能在 Java 5 中,并提供迭代阵列和其他集合的简便方法。使用 SimData 集的基准 listCases 定义 for-each 循环。
for (SimData sD : listCases) {
 
 
}
描述 代码
  • 在循环内,首个过程是要使用 SimRunner 对象执行各种任务,例如,设置各种条件,清除以前的求解或运行案例。请注意,这些方法在 runCase() 中进行定义。在案例 5 中,每次运行模拟时,调用此方法并将其传递到目前的 SimData 对象 sD 以及定义迭代次数的整数中。
runner.runCase(sD, 5);
  • 接下来,按照运行模拟的逻辑过程,提取曳力系数并保存场景和绘图的硬拷贝。和以前一样,调用相关嵌套类中已定义的方法。横风角度从 SimData 对象中检索,以合适的名称保存各个场景。
writer.writeDataLine(sD);
 
postP.saveVelMagScene(
  folder + “/velMag” + sD.getAngle() + “.png”
);
  • 最后,使用从录制宏复制的其他语句,以在模拟运行后将其保存。
theSim.saveState(
  folder + “/train” + sD.getAngle() + “.sim”
);