在Fluent中,可以利用Adjoint求解器实现壁面形状优化。本案例演示Fluent Adjoint求解器使用的基本流程。
本案例要计算的模型如下图所示,为典型的圆柱绕流问题。利用Adjoint求解器优化圆柱形状,以减小流体流经圆柱的阻力,同时增加流动升力。

计算域上壁面及下壁面均设置为对称边界,流动雷诺数约为40,采用层流计算。
-
以2D方式启动Fluent
-
选择双精度Double Precision模式
-
利用菜单File → Read → Case & Data…加载cylinder_tutorial.cas文件
采用默认设置。
默认设置。
修改Air的密度为1 kg/m3,粘度为1 kg/m-s。
-
双击模型树节点Materials > Fluid > Air弹出材料属性定义对话框
-
修改Density为1 kg/m3
-
修改Viscosity为 1 kg/m-s

-
双击模型树节点Boundary Conditions > inlet ,弹出入口边界设置对话框
-
设置Velocity Magnitude为40 m/s

-
其他参数保持默认设置,点击OK按钮关闭对话框
-
双击模型树节点Reference Values
-
右侧面板中设置Compute from为inlet

1、设置残差标准
-
双击模型树节点Monitors > Residual弹出残差检测对话框
-
设置所有残差标准为1e-5

2、设置Report Files
-
右键点击模型树节点Monitors > Report Files,选择菜单项New…,弹出报告文件定义对话框

-
定义名为cd-1-rset的report文件,如下图所示。

-
相同的方式定义另一个report file,命名为cl-1-rset
3、设置Report Plots
-
右键选中模型树节点Monitors > Report Plots,选择菜单项New…

-
创建两个plots,分布命名为cd-1-pset及cl-1-pset
定义升力和阻力。
此处内容在老版本的Fluent中,操作过程略有不同
-
右键选择模型树节点Report Definitions,选择弹出菜单New → Force Report → Drag…弹出阻力定义对话框

-
按下图所示进行设置

-
相同的方式定义升力系数监测,如下图所示。

-
右键点击模型树节点Solution > Initialization,选择菜单项Initialize进行初始化

-
双击模型树节点Run Calculation
-
设置右侧额面板中Number of Iterations为300
-
点击按钮Calculate进行计算

1、监测曲线
升力系数与阻力系数监测结果如下图所示。


2、速度分布

Adjoint求解器属于隐藏模型,需要通过TUI命令激活:
define/models/addon-module
出现如下图所示,选择Adjoint Solver。

激活Adjoint求解器后,Fluent的界面发生了改变,添加了一个Design标签页。

所谓的Observable其实就是目标物理量。
-
点击Design标签页下的Observable按钮,弹出Adjoint Observables对话框
-
点击对话框中按钮Manage…,弹出Manage Adjoint Observables对话框
-
点击按钮Create…,弹出Create New Observable对话框
-
选择对话框中的列表项force,输入名称Name为force-drag
-
点击OK按钮关闭对话框,并返回至Manage Adjoint Observables对话框

此时Manage Adjoint Observables对话框发生了改变。
-
选中wall zone下列表项wall
-
设置X Component为1, 设置Y Component为0
-
点击Apply按钮创建一个检测量

-
继续点击按钮Create…创建另一个观测量force-lift,如下图所示

-
在Manage Adjoint Observables对话框中,设置force-lift的X Component为0, 设置Y Component为1,如下图所示

-
点击OK按钮关闭对话框,返回至Adjoint Observables对话框中
-
设置force-drag下方的sensitivity Orientation为Minimize

-
点击Close按钮关闭对话框
此对话框中可以选中观测量,点击右侧按钮Evaluate在TUI窗口中显示此观测量当前值。
-
点击Design标签页下按钮Solver Controls…,弹出Adjoint Solution Controls对话框

-
取消选项Solution-Based Controls Initialization
-
激活选项Show Advancement Controls
-
激活选项Apply Preconditioning,设置参数采用默认

-
点击Close按钮关闭对话框
-
点击Design标签页下按钮Calculate…,弹出Run Adjoint Calculation对话框

-
点击对话框中按钮Initialize进行初始化

-
设置参数Number of Iterations为300
-
点击按钮Calculate进行计算
-
点击Desing标签页下按钮Reporting…,弹出Adjoint Reporting对话框

-
选择列表项inlet,点击按钮Report,在TUI窗口输出敏度信息

如下图所示,可以看到在入口速度40m/s情况下,阻力的敏度为54.5。

-
右键选中模型树节点Results > Contours,选择弹出菜单New…

-
在弹出对话框中,设置Contours of为Sensitivities…及Sensitivity to Body Force X-Component(Cell Values)
-
点击按钮Save/Display显示图像

图形如下图所示。

-
鼠标右键选择模型树节点Results > Graphics > Vectors,选择弹出菜单项New…定义新的矢量图

-
设置Vectors of为Sensitivity to Shape
-
选择surface列表框中的列表项wall
-
点击按钮Save/Display显示图像

矢量图如下图所示。

-
选择Design标签页下按钮Design Tools弹出设置对话框
-
进入对话框的Region标签页,按下图所示参数设置

-
点击按钮Update Region
-
点击按钮Export Sensitivities…,在弹出的文件保存对话框中保存敏度文件force-drag.s
-
点击Observable…按钮,进入Adjoint Observables对话框
-
选择列表项force-lift,设置其sensitivity Orientation为Maximize

-
点击Design标签页下按钮Calculate…,弹出Run Adjoint Calculation对话框

-
点击对话框中按钮Initialize进行初始化

-
设置参数Number of Iterations为300
-
点击按钮Calculate进行计算
-
进入Design Tools对话框的Objectives标签页
-
点击按钮Manage Data…,在弹出的对话框中,导入之前存储的force-drag.s文件
-
返回到Objectives标签页,设置force-drag的object为Target Change In Value
-
设置Target Change In Value为-10
-
激活选项As Percentage,点击Apply按钮

-
相同的方式,定义force-lift,如下图所示。

-
进入Region Conditions标签页
-
设置X Motion与Y Motion的Points均为30
-
点击Apply按钮

-
进入Design Change标签页
-
选择Zone To Be Modified下的列表项为wall
-
点击按钮Calculate Design Change
-
点击按钮Modify Mesh

-
双击模型树节点General
-
选择右侧面板中的Display按钮,显示网格
变形后的网格如下图所示。

本篇文章来源于微信公众号: CFD之道








评论前必须登录!
注册