吾生有涯 学海无涯
析模有界 知识无界

SU2案例|01 凸起通道无粘流动

本案例演示利用 SU2求解存在凸起的通道内的无粘流场分布。本案例为SU2自带的案例文件,本系列文章对其结构和内容进行了整理。

1 目标

案例展示SU2中的以下功能:

  • 稳态2D Euler方程
  • 多重网格
  • 空间 JST 对流格式(2阶中心差分)
  • Euler隐式时间积分
  • Inlet、Outlet和Euler壁面边界条件

2 问题背景

本案例几何模型如图所示,其为一个2D通道,下壁面上包含有一个圆形凸起。案例中采用无粘流动模型来模拟通道内的流动,进出口压力条件已知:

  • 入口滞止温度 = 288.6 K
  • 入口滞止压力 = 102010.0 N/m2
  • 入口流动方向,单位向量 (x,y,z) = (1.0, 0.0, 0.0)
  • 出口静压 = 101300.0 N/m2

3 求解设置

3.1 计算网格

通道长度为3 m,高度为1 m,沿下壁中心处有一个圆形凸起,其高度为0.1 m。计算网格由沿通道长度方向的256个节点和沿高度方向的128个节点组成。下图显示了网格拓扑的视图(为了清晰起见,这里显示较粗的网格)。

通道的边界条件如图所示,其中包括Inlet、Outlet及Euler Wall边界条件。Euler壁面边界条件强制流动沿切线方向。需要注意的是,亚音速可压缩流动的inlet和outlet边界条件是基于特征信息的,这意味着只能在入口和出口指定某些物理量。目前SU2中包含有两种Inlet类型,可以使用施加滞止条件的压力入口或质量流量入口。对于滞止压力入口,需要指定滞止温度、滞止压力和描述流入方向的单位向量。对于质量流量入口,需要指定密度和速度向量。在可压缩流动中,亚音速出口边界只需指定静压。这些选项在配置文件选项下面进一步详细说明。如果存在多个入口或出口边界,可以通过在MARKER_INLETMARKER_OUTLET为每个附加边界指定这些信息。

3.2 配置文件选项

这里强调了这个模拟的一些关键配置文件选项。关于标记和边界条件:

% -------------------- 边界条件定义--------------------------%
% Euler壁面边界。这里upper_wall与lower_wall被指定为避免
MARKER_EULER= ( upper_wall, lower_wall )
% 入口边界。可以指定为TOTAL_CONDITIONS或MASS_FLOW。这里采用TOTAL_CONDITION。
INLET_TYPE= TOTAL_CONDITIONS
% 指定入口边界为inlet,总温288.6 K,总压102010.0 Pa,流动方向为(1 0 0)
MARKER_INLET= ( inlet, 288.6102010.01.00.00.0 )
% 指定出口边界为outlet,出口静压为101300.0 Pa
MARKER_OUTLET= ( outlet, 101300.0 )

在计算网格中,不同的边界标记必须有相应的字符串名称。在本案例中这些标记名称(upper_wall、lower_wall、inlet和outlet)在配置文件中分别被赋予特定类型的边界条件。对于入口和出口边界条件,还需要在配置选项中指定额外的流动条件。

入口边界条件类型由INLET_TYPE选项控制,其默认条件为TOTAL_CONDITIONS,该边界条件格式为(标记名称,入口滞止温度,入口滞止压力,流动方向的x分量,流动方向的y分量,流动方向的z分量),其中最后三个分量组成一个单位方向向量。在本案例中,流动与坐标系的x方向完全一致,因此流动方向向量为(1.0, 0.0, 0.0)。出口边界的格式为(标记名称,出口静压)。

% ------------------------ 表面标记 ----------------------------%
% 要绘制或设计的表面的标记
MARKER_PLOTTING= ( lower_wall )
%  标记将要评估功能(如cd、cl等)的表面
MARKER_MONITORING= ( upper_wall, lower_wall )

MARKER_PLOTTING选项中列出将被写入表面求解可视化文件的边界标记。任何需要被用于计算(如力或力矩的表面)的表面,都必须包含在MARKER_MONITORING选项中。

一些与时间积分相关的基本选项:

% 时间离散 (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT)
TIME_DISCRE_FLOW= EULER_IMPLICIT
% 最精细网格的CFL条件
CFL_NUMBER= 50.0
% 多重网格的层数 (0 = no multi-grid)
MGLEVEL= 3

通常,用户可以选择使用显式或隐式的时间积分格式。对于大多数问题,隐式积分由于其更高的稳定性和更好的收敛性而被推荐,特别是对于稳态问题。隐式方法通常在更高的 CFL 数下提供稳定性,本案例选择了具有 CFL 数为50的欧拉隐式时间积分,并使用自动 CFL 自适应。通过三级多重网格加速计算收敛。

设定收敛准则:

% 收敛物理场 (可以在命令行中使用参数-d查看可用的物理场)
CONV_FIELD= RMS_DENSITY
% 残差最小值(残差的对数,以10为底)
CONV_RESIDUAL_MINVAL= -10
% 指定开始收敛准则时的迭代次数
CONV_STARTITER= 10

在SU2中,有三种不同类型的模拟终止准则:运行指定数量的迭代(ITER选项)、将所选方程的残差减小到指定数量级(或达到指定下限),或通过将特定输出量(如阻力)收敛到某个容差来终止。

在本教程中,最常用的收敛标准是残差减小选项,将 CONV_FIELD 设置为 RMS_DENSITY,表示将监测密度方程的均方根残差。CONV_RESIDUAL_MINVAL设置了在自动终止前允许残差达到的最小值。对于相对残差减少标准,可以设置 CONV_FIELD= REL_RMS_DENSITY来跟踪密度残差的相对下降。用户可以使用 CONV_STARTITER 选项为密度残差的初始值设置一个特定的迭代次数。有关控制收敛标准的更多信息,请参阅输出文档页面。

例如,一旦密度残差达到 -10,计算模拟就会终止。对于相对残差标准,请注意 SU2 将始终使用密度残差的最大值来计算相对残差,即使最大值出现在 CONV_STARTITER 中指定的迭代之后。

3.2 运行SU2

本案例网格数量为256x128 节点,模拟相对较小,因此将以串行方式运行。要运行此测试用例,可以在终端命令行中按照以下步骤操作:

  • 移动到包含配置文件 (inv_channel.cfg) 和网格文件 (mesh_channel_256x128.su2) 的目录。确保已编译、安装 SU2 工具,并将其安装位置添加到路径中。
  • 运行可执行文件,输入以下命令进行计算求解
$ SU2_CFD inv_channel.cfg

或者可以使用以下命令采用并行方式计算:

$ mpiexec -n 4 SU2_CFD inv_channel.cfg

SU2 将在流动求解器的每次迭代中更新输出残差,模拟将在达到指定的收敛标准后结束。

  • 退出 SU2 后将写入包含结果的文件。流动计算结果可在 ParaView (.vtk) 或 Tecplot (.dat for ASCII) 中实现可视化。要在 ParaView 中显示流动解,可以更新配置文件中的OUTPUT_FORMAT参数。

4 计算结果

计算完毕后会在文件夹中生成相应的vtk文件,可以利用paraview打开这些vtk文件进行结果查看。

下面的图片展示了一些针对无粘通道问题的 SU2 结果。

  • 马赫数分布
马赫数分布
马赫数分布
  • 压力分布
通道内压力分布
通道内压力分布

5 配置文件

本案例完整的配置文件如下:


% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------%
% 选择EULER表示求解无粘流动                              
SOLVER= EULER
% DIRECT表示直接数值求解
MATH_PROBLEM= DIRECT
% 重启动求解 (NO, YES)
RESTART_SOL= NO

% -------------------- 可压缩自由流定义--------------------------%
% 马赫数0.5
MACH_NUMBER= 0.5
% 攻角0°
AOA= 0.0
% 侧滑角0°
SIDESLIP_ANGLE= 0.0
% 自由流压力101300Pa
FREESTREAM_PRESSURE= 101300.0
% 自由流温度288K
FREESTREAM_TEMPERATURE= 288.0

% ---------------------- 定义参考值 ---------------------------%
% 力矩计算的参考原点
REF_ORIGIN_MOMENT_X = 0.25
REF_ORIGIN_MOMENT_Y = 0.00
REF_ORIGIN_MOMENT_Z = 0.00
% 用于俯仰、滚转和偏航无量纲力矩计算的参考长度
REF_LENGTH= 1.0
% 用于力系数计算的参考面积(0 表示自动计算)
REF_AREA= 1.0

% -------------------- 边界条件定义 --------------------------%
% Euler壁面边界标记
MARKER_EULER= ( upper_wall, lower_wall )
% 入口边界类型
INLET_TYPE= TOTAL_CONDITIONS
%
% 入口边界标记
% 格式: ( 入口标记, 总温, 总压, x方向, y方向, z方向) 
MARKER_INLET= ( inlet, 288.6102010.01.00.00.0 )

% 出口边界标记
% 格式: ( 出口标记, 背压(静压), ... )
MARKER_OUTLET= ( outlet, 101300.0 )

% ------------------------ 表面识别 ----------------------------%
% 要绘制或设计的表面的标记
MARKER_PLOTTING= ( lower_wall )
% 标记将评估功能(如cd、cl等)的表面
MARKER_MONITORING= ( upper_wall, lower_wall )

% ------------- 定义数值方法的通用参数 ---------------%
%
% 空间梯度的数值方法 (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES)
NUM_METHOD_GRAD= GREEN_GAUSS
%
% 最细网格的Courant-Friedrichs-Lewy条件
CFL_NUMBER= 50.0
%
% 自适应CFL数 (NO, YES)
CFL_ADAPT= YES
%
% CFL 数自适应参数 (factor down, factor up, CFL min value,
%                                        CFL max value )
CFL_ADAPT_PARAM= ( 0.12.050.01e10 )
%
% Runge-Kutta alpha参数
RK_ALPHA_COEFF= ( 0.666670.666671.000000 )
%
% 总迭代次数
ITER= 999999

% ------------------------ 线性求解器定义 ---------------------------%
%
% 隐式线性求解器 (BCGSTAB, FGMRES)
LINEAR_SOLVER= FGMRES
%
% Krylov线性求解器预处理器 (ILU, JACOBI, LINELET, LU_SGS)
LINEAR_SOLVER_PREC= ILU
%
% 隐式线性求解器的最小误差
LINEAR_SOLVER_ERROR= 1E-10
%
% 隐式线性求解器的最大迭代次数
LINEAR_SOLVER_ITER= 20

% -------------------------- 多重网格参数 -----------------------------%
%
% 多重网格级别(0=无多重网格)
MGLEVEL= 3
%
% 多重网格循环(V_CYCLE, W_CYCLE, FULLMG_CYCLE)
MGCYCLE= W_CYCLE
%
% 多重网格预平滑层级
MG_PRE_SMOOTH= ( 1233 )
%
% 多重网格后平滑层级
MG_POST_SMOOTH= ( 0000 )
%
% 雅可比隐式平滑修正
MG_CORRECTION_SMOOTH= ( 0000 )
%
% 残差制的阻尼因子
MG_DAMP_RESTRICTION= 1.0
%
% 校正延长的阻尼系数
MG_DAMP_PROLONGATION= 1.0

% --------------------流动数值方法定义 -----------------------%
%
% 对流数值方法 (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC,TURKEL_PREC, MSW)
CONV_NUM_METHOD_FLOW= JST
%
% 二阶和四阶人工耗散系数
JST_SENSOR_COEFF= ( 0.50.02 )
%
% 时间离散RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT)
TIME_DISCRE_FLOW= EULER_IMPLICIT

% --------------------------- 收敛参数------------------------%
%
% 收敛标准 UCHY, RESIDUAL)
CONV_FIELD= RMS_DENSITY
%
% 残差的最小值(残差的 log10)
CONV_RESIDUAL_MINVAL= -10
%
% 开始收敛准则时的迭代次数
CONV_STARTITER= 10
%
% 应用标准的单元数量
CONV_CAUCHY_ELEMS= 100
%
% 控制序列收敛的 Epsilon
CONV_CAUCHY_EPS= 1E-10

% ------------------------- 输入/输出信息 --------------------------%
%
% 网格输入文件
MESH_FILENAME= mesh_channel_256x128.su2
%
% 网格文件格式 (SU2, CGNS, NETCDF_ASCII)
MESH_FORMAT= SU2
%
% 网格输出文件
MESH_OUT_FILENAME= mesh_out.su2
%
% 重启动流动输入文件
SOLUTION_FILENAME= solution_flow.dat
%
% 重启动伴随输入条件
SOLUTION_ADJ_FILENAME= solution_adj.dat
%
% 输出文件格式 (PARAVIEW, TECPLOT, STL)
TABULAR_FORMAT= CSV
%
% 输出文件收敛历史(无扩展名)
CONV_FILENAME= history
%
% 输出重启动文件
RESTART_FILENAME= restart_flow.dat
%
% 输出伴随求解重启动文件
RESTART_ADJ_FILENAME= restart_adj.dat
%
% 流动变量输出文件(无扩展名)
VOLUME_FILENAME= flow
%
% 伴随变量输出文件(无扩展名)
VOLUME_ADJ_FILENAME= adjoint
%
% 输出目标函数梯度(使用连续伴随方法)
GRAD_OBJFUNC_FILENAME= of_grad.dat
%
% 表面流动系数输出文件(无扩展名)
SURFACE_FILENAME= surface_flow
%
% 表面伴随系数输出文件(无扩展名)
SURFACE_ADJ_FILENAME= surface_adjoint
%

% 屏幕输出
SCREEN_OUTPUT= (INNER_ITER, WALL_TIME, RMS_DENSITY, RMS_ENERGY, LIFT, DRAG)

(完)

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

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《SU2案例|01 凸起通道无粘流动》
文章链接:https://www.topcfd.cn/41286/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册