宏的主要方法是 execute() 方法,在宏运行于 Simcenter STAR-CCM+ 中时执行。
在这里将每个嵌套类的对象实例化,并使用每个方法执行所需的任务。
描述 |
代码 |
- try-catch 操作围绕整个
execute() 方法语句。当运行宏时,如果引发任何其他错误,try-catch 非常有用。。
|
public void execute() {
try {
} catch (Exception e) {
jOptionPane.showMessageDialog(
null, e.toString()
);
}
}
|
在 try-catch 操作内,您可将语句分为两个主要部分。第一部分包含执行一次的语句,例如:检索激活模拟。第二部分包含一个循环,可将为每组风数据重复的语句置于其中。
描述 |
代码 |
- 在第一部分中,检索激活模拟并将
DataReader , DataWriter 、SimRunner 和 PostProcessor 实例化。此外,使用 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”
);
|