了解 SimRunner 嵌套类

SimRunner 类中,应用在录制宏后获取的语句。

描述 代码
  • 声明在模拟中设置为 SimRunner 类的成员变量的属性。仅包括使用输入数据(如入口速度)和提取的变量(如曳力系数)设置的变量。每个成员变量的类型可参照macroRecording.java 文件和了解录制的宏部分进行查找,
private VelocityProfile m_inflowVel = null;
  • Simcenter STAR-CCM+ 中的对象定位遵循与展开对象树节点相同的路径。因此,要执行设置初始速度等操作,首先要确定每个上部对象的位置。此处,由于对象位置没有改变,并且您要为每个已创建的 SimRunner 对象查找对象,在构造函数中执行此项操作。
  • 确定每个对象位置的语句可从录制的宏中复制,如必要,请小心更改变量名称。
public SimRunner(Simulation theSim) {
 
  m_sim = theSim;
 
  PhysicsContinuum physics =
    ((PhysicsContinuum) m_sim
    .getContinuumManager()
    .getContinuum(“Physics 1”));
 
  m_initVel =
    ((VelocityProfile) physics
    .getInitialConditions()
    .get(VelocityProfile.class));
  
}
  • 在下一个 runCase() 方法中,应用设置模拟必要属性的语句。首先从 SimData 对象提取值;然后您使用该数据设置各个属性值。请注意,使用 SimData 嵌套类中定义的 getter 方法来提取数据。
public void runCase(SimData sD, int iterations) {
 
  double initX =
    sD.getInitVelX();
  
  double velY =
    sD.getVelY();
描述 代码
  • 变量已插入 setComponents() 方法的 xy 位置,用于流入和初始速度;变量已标有下划线。
((ConstantVectorProfileMethod) m_initVel
  .getMethod())
  .getQuantity()
  .setComponents(initX, initY, 0.0);
 
((ConstantVectorProfileMethod) m_inflowVel
  .getMethod())
  .getQuantity()
  .setComponents(velX, velY, 0.0);
  • 按顺序执行方法中的每个语句。设置完新值后,确保已清除所有以前的求解。
m_sim.clearSolution();
  • 此时可运行模拟。将一个整数传递到 run() 方法可指定迭代次数,并在调用 runCase() 方法时设置该方法的值。
m_sim.getSimulationIterator()
  .run(iterations);
  • 最后得到曳力系数并使用之前定义的 setter 方法将其存储于 SimData 对象。
  double cdValue =
    m_forceReport.getReportMonitorValue();
 
    sD.setDrag(cdValue);
}

继续进行下个部分,以检查 PostProcessor 类。