宏 API 更改 3.04

Simcenter STAR-CCM+ 3.04 中,针对反射率、体形状和网格化进行了宏 API 的更改。

  • 指定的反射率现在已自动计算为默认值

    指定的反射率已针对宏进行了更改。 显式设置反射率的旧宏需要进行修改。 在使用自动计算方法作为默认方法的情况下,不能在宏中设置恒定反射率,除非首先将方法类型更改为常数。 最简单的做法是从任何宏中移除反射率设置,然后自动计算反射率。

  • 体形状现在可识别局部坐标系

    体形状已得到增强,允许使用局部坐标系和用户指定的单位。

    为了适应这些更改,已设计新的坐标类,该类具有局部坐标系参考,并且知道其分量的单位。 此类替换预先存在的 VectorPhysicalQuantity 类。 此更改会影响每个体形状的以下数据:

    • BrickVolumeShape - Corner1Corner2
    • CylinderConeVolumeShape - 开始坐标结束坐标
    • SphereVolumeShape - 原点

    因此,当在宏中访问体形状的这些数据元素时,可能需要根据访问数据的方式在宏中进行更改:

    如果宏按如下所示访问数据,则不需要更改宏:brickVolumeShape_0.getCorner1().setVector(new DoubleVector(new double[] {0.1, 0.0108, 0.0}));

    如果宏访问数据,类型将它转换为 VectorPhysicalQuantity,并调用其方法 setVectorgetVector,则需要将 VectorPhysicalQuantity 的类型转换更换为 Coordinate 类:

    // old - ((VectorPhysicalQuantity) brickVolumeShape_0.getCorner2()).setVector(new DoubleVector(new double[] {0.2, 0.0, 0.0}));

    // new - ((Coordinate) brickVolumeShape_0.getCorner2()).setVector(new DoubleVector(new double[] {0.2, 0.0, 0.0}));

  • 可以为每个网格化模型启用体积控制

    体积控制(以前称为体积源)具有一个指定控制应用于的网格化模型的额外步骤,尺寸是控制的通用属性。

    3.02 宏类似如下:

    
    // create VolumeSource VolumeSource volumeSource_0 = meshContinuum_0.getVolumeSources().createVolumeSource();  
    // stick shape in the source SphereVolumeShape sphereVolumeShape_0 = ((SphereVolumeShape) simulation_0.get(VolumeShapeManager.class).getObject("Sphere 1")); volumeSource_0.getVolumeShapeGroup().setObjects(sphereVolumeShape_0);  
    // set the size of the volume source (applies to all meshers) VolumeSourceSize volumeSourceSize_0 = volumeSource_0.getSize(); GenericRelativeSize genericRelativeSize_0 = ((GenericRelativeSize) volumeSourceSize_0.getRelativeSize()); genericRelativeSize_0.setPercentage(20.0);

    另一方面,3.04 中完全相同的宏需要:

    
    // create volume source 
    VolumeSource volumeSource_1 = meshContinuum_0.getVolumeSources().createVolumeSource();  
    // enable volume source for poly mesher (new step) 
    VolumeSourceDualMesherSizeOption volumeSourceDualMesherSizeOption_0 = volumeSource_1.get(MeshConditionManager.class).get(VolumeSourceDualMesherSizeOption.class); volumeSourceDualMesherSizeOption_0.setVolumeSourceDualMesherSizeOption(true);  
    // enable volume source for surface remesher (new step) 
    VolumeSourceResurfacerSizeOption volumeSourceResurfacerSizeOption_0 = volumeSource_1.get(MeshConditionManager.class).get(VolumeSourceResurfacerSizeOption.class); volumeSourceResurfacerSizeOption_0.setVolumeSourceResurfacerSizeOption(true);  
    // enable volume source for wrapper (new step) 
    VolumeSourceSurfaceWrapperSizeOption volumeSourceSurfaceWrapperSizeOption_0 = volumeSource_1.get(MeshConditionManager.class).get(VolumeSourceSurfaceWrapperSizeOption.class); volumeSourceSurfaceWrapperSizeOption_0.setVolumeSourceSurfaceWrapperSizeOption(true);  
    // set the size for the source (now done through 
    // MeshValueManager not directly from the source) 
    VolumeSourceSize volumeSourceSize_0 = volumeSource_1.get(MeshValueManager.class).get(VolumeSourceSize.class); GenericRelativeSize genericRelativeSize_0 = ((GenericRelativeSize) volumeSourceSize_0.getRelativeSize()); genericRelativeSize_0.setPercentage(20.0);

    如果用户尝试通过 3.04 运行 3.02 宏,它将有效,但不是用户所期望的结果 — 将创建源且源与球体形状关联,但不会为任何网格模型激活源。 3.02 宏将在 3.04 中有效是因为保留了方法 VolumeSource::getSize() 以实现向后兼容性。