宏 API 更改 9.06

Simcenter STAR-CCM+ 9.06 中,针对飞行中的 FW-H 模型、电路求解器、Dars-CFD 反应模型、风扇交界面模型和简单形状零部件进行了宏 API 的更改。

飞行中的 FW-H 模型更改

FW-H 场函数 FwhLoadingSurfaceTermFwhThicknessSurfaceTermFwhTotalSurfaceTermFwhQuadrupoleVolumeTerm 现在对每个接收器使用唯一的永久索引。 因此,任何设置这些飞行中的 FW-H 模型场函数的旧宏将无法编译。
以前发行版本 Simcenter STAR-CCM+ v9.06
((PrimitiveFieldFunction)
getSimulation().getFieldFunctionManager()
.getFunction("LoadingSurfaceTermstar.acoustics.PointReceiver_0"));

((PrimitiveFieldFunction)
getSimulation().getFieldFunctionManager()
.getFunction("ThicknessSurfaceTermstar.acoustics.PointReceiver_0"));

((PrimitiveFieldFunction)
getSimulation().getFieldFunctionManager()
.getFunction("TotalSurfaceTermstar.acoustics.PointReceiver_0"));

((PrimitiveFieldFunction)
getSimulation().getFieldFunctionManager()
.getFunction("QuadrupoleVolumeTermstar.acoustics.PointReceiver_0"));
((PrimitiveFieldFunction)
getSimulation().getFieldFunctionManager()
.getFunction("Receiver0::LoadingSurfaceTerm"));

((PrimitiveFieldFunction)
getSimulation().getFieldFunctionManager()
.getFunction("Receiver0::ThicknessSurfaceTerm"));

((PrimitiveFieldFunction)
getSimulation().getFieldFunctionManager()
.getFunction("Receiver0::TotalSurfaceTerm"));

((PrimitiveFieldFunction)
getSimulation().getFieldFunctionManager()
.getFunction("Receiver0::QuadrupoleVolumeTerm"));

电路求解器更改

Simcenter STAR-CCM+ v9.06 中,电路求解器已重新组织以具有其自己的库。 以前版本的 Simcenter STAR-CCM+ 中录制的宏必须进行修改才能导入电路求解器库:import star.circuit
以前发行版本 Simcenter STAR-CCM+ v9.06
package base.battery;

import star.common.MonitorPlot;
import star.common.Simulation;
import star.common.StarMacro;

import java.io.File;

import star.material.*;
import star.common.*;
import star.base.neo.*;
import star.segregatedenergy.*;
import star.base.report.*;
import star.battery.*;
import star.solidmesher.*;
import star.flow.*;
import star.meshing.*;
import star.metrics.*;
import star.energy.*;
package base.battery;

import star.common.MonitorPlot;
import star.common.Simulation;
import star.common.StarMacro;

import java.io.File;

import star.material.*;
import star.common.*;
import star.base.neo.*;
import star.segregatedenergy.*;
import star.base.report.*;
import star.battery.*;
import star.circuit.*;
import star.solidmesher.*;
import star.flow.*;
import star.meshing.*;
import star.metrics.*;
import star.energy.*;

DARS-CFD 反应模型更改

Simcenter STAR-CCM+ v9.06 中,已从 Dars-CFD 反应模型移除 Allow Switch to ASCII(允许切换到 ASCII) 属性。 从现有的宏移除对此属性的所有引用。
以前发行版本 Simcenter STAR-CCM+ v9.06
DarsCfdGasReactionModel darsCfdGasReactionModel_0 =
physicsContinuum_0.getModelManager().getModel(DarsCfdGasReactionModel.class);

darsCfdGasReactionModel_0.setModeSwitch(true);
DarsCfdGasReactionModel darsCfdGasReactionModel_0 =
physicsContinuum_0.getModelManager().getModel(DarsCfdGasReactionModel.class);

为风扇交界面模型引入风扇曲线比例缩放

Simcenter STAR-CCM+ v9.06 中,由于添加了风扇曲线比例缩放,用于在风扇交界面中设置旋转速率的方法已更改。 在以前版本的 Simcenter STAR-CCM+ 中,风扇交界面没有风扇曲线比例缩放。 在 v9.06 中,可以通过设置“工作旋转速率”和“旋转速率数据”这两个值来定义性能曲线上的风扇曲线比例缩放。 修改现有的宏以使用更新的方法来设置旋转速率。
以前发行版本 Simcenter STAR-CCM+ v9.06
Simulation simulation_0 = getActiveSimulation();

BoundaryInterface boundaryInterface_0 =
((BoundaryInterface) simulation_0.getInterfaceManager()
.getInterface("Block/Block 2"));

FanInterfaceSwirlProperties fanInterfaceSwirlProperties_0 =
boundaryInterface_0.getValues().get(FanInterfaceSwirlProperties.class);

fanInterfaceSwirlProperties_0.getRotationRate().setValue(50.0); 
Simulation simulation_0 = getActiveSimulation();

DirectBoundaryInterface directBoundaryInterface_0 =
((DirectBoundaryInterface) simulation_0.getInterfaceManager()
.getInterface("Block/Block 2"));

FanCurveTable fanCurveTable_0 =
directBoundaryInterface_0.getValues().get(FanCurveTable.class);

fanCurveTable_0.getOperatingRotationRate().setValue(50.0);
fanCurveTable_0.getDataRotationRate().setValue(50.0);

简单形状零部件的新方法

新创建的简单形状零部件现在与 CAD 对象关联。 使用 CAD 表面中的 ID 编号(而不是按顺序从 1)对面进行编号。

早期模拟中的简单形状零部件不与 CAD 对象关联。 如果更改旧模拟文件中与形状相关的任何参数(例如球体的半径),则 Simcenter STAR-CCM+ 生成零部件的 CAD 体,然后重新网格化零部件。

要执行“根据块分割”操作,使用以下某个函数获取特定面的块 ID,然后将它作为参数传递给 splitPartSurfaceByPatch 函数:

  • 对于方块零部件:
    • getMinXFace()
    • getMinYFace()
    • getMinZFace()
    • getMaxXFace()
    • getMaxYFace()
    • getMaxZFace()
  • 对于圆柱体/圆锥体零部件:
    • getStartFace() – 对应于靠近起点的面的块
    • getEndFace() – 对应于靠近终点的面的块
    • getSideFace() – 对应于圆柱面的块

以下是针对方块零部件和圆柱体的宏步骤示例。

方块零部件

此示例中使用的值为 minXFace

以前发行版本 Simcenter STAR-CCM+ v9.06
SimpleBlockPart simpleBlockPart_0 = 
      ((SimpleBlockPart) simulation_0.get(SimulationPartManager.class).getPart("Block"));

    PartSurface partSurface_0 = 
      ((PartSurface) simpleBlockPart_0.getPartSurfaceManager().getPartSurface("Block Surface"));

    simpleBlockPart_0.splitPartSurfaceByPatch(partSurface_0, new IntVector(new int[] {1}), "Block Surface");
SimpleBlockPart simpleBlockPart_0 = 
      ((SimpleBlockPart) simulation_0.get(SimulationPartManager.class).getPart("Block"));

    PartSurface partSurface_0 = 
      ((PartSurface) simpleBlockPart_0.getPartSurfaceManager().getPartSurface("Block Surface"));

    int minXFace = simpleBlockPart_0.getMinXFace();
    simpleBlockPart_0.splitPartSurfaceByPatch(partSurface_0, new IntVector(new int[] {minXFace}), "Block Surface");
圆柱体零部件

此示例中使用的值为 startFace

以前发行版本 Simcenter STAR-CCM+ v9.06
SimpleCylinderPart simpleCylinderPart_0 = 
      ((SimpleCylinderPart) simulation_0.get(SimulationPartManager.class).getPart("Cylinder"));

    PartSurface partSurface_0 = 
      ((PartSurface) simpleCylinderPart_0.getPartSurfaceManager().getPartSurface("Cylinder Surface"));

    simpleCylinderPart_0.splitPartSurfaceByPatch(partSurface_0, new IntVector(new int[] {1}), "Cylinder Surface");
SimpleCylinderPart simpleCylinderPart_0 = 
      ((SimpleCylinderPart) simulation_0.get(SimulationPartManager.class).getPart("Cylinder"));

    PartSurface partSurface_0 = 
      ((PartSurface) simpleCylinderPart_0.getPartSurfaceManager().getPartSurface("Cylinder Surface"));
    
    int startFace = simpleCylinderPart_0.getStartFace();
    
    simpleCylinderPart_0.splitPartSurfaceByPatch(partSurface_0, new IntVector(new int[] {startFace}), "Cylinder Surface");