【Star|【Star CCM+实例】开发一个简单的计算流程.md

流程开发在CAE过程中处于非常重要的地位。

主要的作用可能包括:
  • 将一些经过验证的模型隐藏在流程中,提高仿真的可靠性
  • 将流程封装成更友好的界面,降低软件的学习周期
流程开发实际上需要做非常多的工作,尤其是复杂的工程模型,这涉及到计算过程中模型的验证,如网格验证、物理模型验证、模型参数验证、计算结果验证等,而且还需要在验证的基础上对计算流程进行反复修正,最终形成较为标准化的模型用于流程开发。今天的案例比较简单,因此省略了前面的流程验证工作。
【【Star|【Star CCM+实例】开发一个简单的计算流程.md】本次流程开发工作在STAR CCM+ 1106版本下完成
1 案例描述 要计算的案例如图所示。
2 建立模型 本案例模型在STAR CCM+中创建。
  • step 1:启动STAR CCM+
    启动STAR CCM+,新建一个Simulation,保存工程。
  • 选择工具栏按钮中的录制宏按钮,保存宏文件为createGeometry.java
  • 右键选择树形节点Geometry > 3D-CAD Model,选择New打开几何创建界面,如下图所示
    【Star|【Star CCM+实例】开发一个简单的计算流程.md
    文章图片

  • 在几何操作模块中,右键选择节点Features > XY,选择菜单Create Sketch在XY平面上创建草图
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 在草图中创建一个半径0.01m的圆,如下图所示
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 关闭草图面板返回至模型操作,鼠标右键选择树形节点Sketch 1,选择弹出菜单Extrude进行草图拉伸
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 在弹出的参数设置界面中,设置拉伸长度Distant为1m,,如下图所示
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 点击按钮Close 3D-CAD关闭建模面板
  • 右键选择模型树节点Geometry > 3D-CAD Models > 3D-CAD Model 1,选择菜单New Geometry Part,在弹出对话框中采用默认参数,点击OK按钮关闭对话框。
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 右键选择树节点Geometry > Parts > Body 1> Surfaces > Default,选择菜单Split By Part Curves...
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 在弹出的对话框中,选择Part Curves为Default,如下图所示,点击OK按钮确认操作
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 更改模型树节点名称Default为wall,default 2为inlet,default 3为outlet
  • 右键选择模型树节点Geometry >Part > Body 1,选择菜单Assign Parts to Regions...
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 在弹出的菜单中,进行如下图所示选择,点击Apply及Close按钮确认并关闭对话框
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 结束宏的录制,至此几何创建完毕。
此时可以用文本编辑器打开之前创建的createGeometry.java文件,查看里面所记录的内容。删掉其中一些没有用的语句,并对程序进行重构整理,该整理成函数的整理成函数,该参数化的参数化。这里要参数化的变量很少,只有半径和长度两个物理量。
注意:由于每一步操作均会生成java语句,因此为避免生成过多没用的语句,建议在正式录制之前多练习几遍,务求尽可能少一些无用操作。
3 制作流程
  • 启动Netbean,选择菜单文件 > 新建项目,启动项目创建对话框,在 其中选择项目类别为Java,选择项目为Java应用程序,点击下一步按钮
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 设置项目名称为MacroDemo,取消创建主类前的复选框,点击完成按钮创建工程
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 右键选择树形节点默认包,选择菜单新建 > Java包...,创建Java包GUI,相同的步骤创建另一个包Macro
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

之所以创建不同的包,主要是为了方便文件管理,其实也可以不创建包的。
  • 右键选择节点GUI,选择菜单新建 > JFrame窗体...
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 如下图所示,设置类名为MacroWindows,点击完成按钮创建窗体
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 切换到设计视图,利用工具箱中的控件构建如图所示的GUI界面
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 修改管道长度后的文本框变量名称。右键选择该控件,选择更改变量名称...选项,设置名称为JTextField_PipeLength。相同的方法设置管道半径文本框名称为JTextField_PipeRadius,设置创建几何按钮的变量名称为JButton_CreateGeometry
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

变量名称很重要,后面创建事件时要用到。
  • 先添加STAR CCM+的java库。具体添加过程可参阅博文:创建带GUI的STAR CCM+ Macro
  • 双击创建几何按钮进入代码编辑,如下图所示,添加引用及代码:
import star.common.Simulation; private Simulation sim = null; public MacroWindows(Simulation Simlocal){ initComponents(); this.sim = Simlocal; }

【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 创建Macro类RunMacro。右键选择树形节点Macro,选择菜单创建 > Java类...,创建新的类取名为RunMacro
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • RunMacro类的内容如下:
package Macro; import GUI.MacroWindows; import javax.swing.JFrame; import star.common.Simulation; import star.common.StarMacro; public class RunMacro extends StarMacro{ @Override public void execute() { Simulation sim = this.getActiveSimulation(); MacroWindows mw = new MacroWindows(sim); mw.setVisible(true); mw.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } }

下面回到MacroWindows类中添加功能。录制的宏文件很长而且没有参数化,这里需要将其封装成一个函数,包含两个参数:管道的长度及管道的半径。
  • 在MacroWindows类中创建函数createPipe,将录制的java文件粘贴进去
privite void createPipe(double radius, double length) ... //创建半径为radius的圆 RadiusDimension radiusDimension_0 = sketch_0.createRadiusDimension(circleSketchPrimitive_0, radius, units_0); ... //设置拉伸长度为length extrusionMerge_0.getDistance().setValue(length);

  • 代码粘贴后可能会存在一些引用问题,如下图所示,利用netbeans消除这些引用错误
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 修改MainWindows类中的JButton_CreateGeometryActionPerformed函数
private void JButton_CreateGeometryActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: double radius; double length; try { radius = Double.valueOf(JTextField_PipeRadius.getText()); } catch (NumberFormatException e) { radius = 0.01; }try { length = Double.valueOf(JTextField_PipeLength.getText()); } catch (NumberFormatException e) { length = 0.1; } createPipe(radius, length); }

  • 构建工程。右键选择树节点MacroDemo,选择菜单清理并构建
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

4 流程测试
  • 启动STAR CCM+,新建一个工程文件
  • 选择菜单Tool> Options,选择Environment,设置User Macro ClassPath为前面创建工程的路径,如下图所示,点击Close按钮关闭对话框
【Star|【Star CCM+实例】开发一个简单的计算流程.md
文章图片

  • 选择启用宏文件按钮,打开宏文件RunMarco.java
    【Star|【Star CCM+实例】开发一个简单的计算流程.md
    文章图片

  • 点击按钮创建几何
转载于:https://www.cnblogs.com/LSCAX/p/6221086.html

    推荐阅读