首页/文章/ 详情

175、一文讲透大涡模拟LES的基本原理-与RANS方法的本质区别

1月前浏览733
湍流系列文章我们已经沿着 RANS 这条主线走了很远:101 篇讲了一方程 Spalart-Allmaras 模型(一百零一、Fluent湍流模型详解-雷诺平均方法:Spalart-Allmaras模型(一方程)),163 篇讲了二方程 k-ε 模型(163、一文讲透k-ε湍流模型的底层逻辑与设置依据),164 篇讲了 k-ω 模型(164、一文讲透k-ω湍流模型的底层逻辑:它和k-ε到底有什么本质不同?),167 篇又讲了对雷诺应力直接建方程的 RSM(167、一文讲透雷诺应力模型RSM的核心原理和设置依据,它和k-ε模型、k-ω模型有什么本质不同?)。











 

 
它们的共同逻辑是:把瞬时量分解成平均值和脉动值,只解平均场,而对于脉动则用“模型”来估算它们对平均流场的影响。  

图片

本文讲另一条主线,大涡模拟 LES(Large Eddy Simulation)


湍流系列文章,这篇文章写的是最费劲的,也是耗时最长的,全文7500字,反复修改琢磨了一周多的时间,所以发布时间晚了一些,望大家见谅。如果觉得有点帮助,希望点赞图片+推荐图片支持下。

 


1. LES的由来:为什么需要它

1.1 先看RANS的天花板

 

RANS 把湍流的全部脉动都交给模型估算,换来的是:网格可以很粗、时间步长可以很大、还能做定常计算,所以成为工程主流。但这是有代价的,对于三类问题,RANS显得力不从心:

  1. 关心脉动本身的场合

     气动噪声源于压力脉动,燃烧效率受湍流混合脉动支配,结构疲劳载荷来自流固耦合的脉动压力。但平均场里根本没有这些信息,因此RANS模型只保证了平均得对,不保证脉动得对;  
     

     
  2. 大尺度非定常主导的场合

     钝体绕流的涡脱落、大分离流动,流动本身的大尺度运动就是最重要的物理,平均化处理把这些都抹掉了,只能靠模型艰难的估计;  
    图片  
  3. 模化误差不可控的场合

     RANS 模型的经验常数在特定流动中会失效(163 篇讲过 k-ε 预测射流扩张偏宽约 40% 的经典问题),而且误差多大、偏向哪里,事先并不清楚。  
     

这三类问题共同指向一个念头:能不能少模化一点、多解一点?解到什么程度呢?最彻底的方案是把所有尺度全部直接解出来,那就变成DNS了。

1.2 最彻底的方案:DNS

 

直接数值模拟(DNS)对原始NS方程不做任何模化,从最大涡到最小涡全部直接解析,物理上最"干净"。但官方文档给出了明确的结论:解析整个尺度谱的代价正比于湍流雷诺数的三次方:

为什么是三次方这么苛刻?直观理解:雷诺数越高,需要解析的最小涡越小,网格必须跟着加密;同时最大涡与最小涡的时间尺度之比也越拉越大,时间步长必须跟着缩小。网格量与时间步数两头同时恶化,叠乘起来就是三次方增长。对高雷诺数的工程问题,这是天文数字,因此DNS 不具备工程可行性。

1.3 LES大涡模拟:分而治之

 

DNS 算不起、RANS 不够用,LES 在两者之间给出了一个务实的折中:大涡直接算,小涡才模化。这建立在四条理由上:

  1. 动量、质量、能量以及其它被动标量,主要由大涡输运

     大涡是主角:它算错了,整个流场的输运就全错,所以必须直接算;  
  2. 大涡与具体问题强相关,由流动的几何形状和边界条件决定

     管道里的大涡、机翼后的大涡长得完全不同,因此没有哪个通用模型能提前写出来,只能靠算;  
  3. 小涡对几何的依赖弱,更接近各向同性,因而更具普适性

     不管外部几何多复杂,传到小尺度上的湍流都被"搅拌"得差不多了,长得都相似;  
  4. 在小涡尺度上找到普适湍流模型的几率大得多

     既然小涡天下大同,一个简单模型就能通吃。  


便于理解,可以类比一下:大涡是主演,台词和走位全由剧本(几何)决定,必须真演;小涡是群众演员,动作高度程式化,排练一次(建一个模型)到处能用。因为只计算大涡,LES 的网格和时间步长都比 DNS 粗得多,所以LES具备工程可行性。

1.4 代价账单与近壁短板

 

但 LES 也存在一些必须要关注的问题:


  • 网格仍显著细于 RANS:LES的网格比DNS粗,但和RANS相比还是要细的多,计算资源自然也要耗费更多;

  • 必须算足够长的物理时间: LES 输出的是瞬时场,而工程最终要的是平均量、统计量——平均需要样本,样本就是时间;

  • 内存与 CPU 开销比定常 RANS 高几个数量级: 因此官方明确LES工程应用必须依托高性能并行计算。

更麻烦的是最大短板:近壁。越靠近壁面,连"大涡"本身也变小了,所需分辨率随雷诺数增长。经典壁面 LES 只适用于雷诺数很低的流动(Reτ 约 10⁴~10⁵ 量级以下)和有限的计算域。后面的WMLES 系列模型就是为了解决这个问题而产生的。

到这里,LES 的立场已经清楚:只算大涡、模化小涡。但这还是一句口号,要在方程里落地,第一个问题是:数学上怎么把"大"和"小"分开?这就是下一节的滤波。

2. LES数学框架:滤波与亚格子应力

2.1 滤波:把流场一分为二

 

LES在数学上的核心操作叫滤波。就是在每个空间点周围取一个特征尺寸为Δ的小邻域,对邻域内的脉动做加权平均,比Δ大的涡被保留下来,比Δ小的涡被抹平。这个Δ称为滤波宽度。

这里有一个最容易混淆、也最关键的区别:滤波不是平均。

RANS的(时间)平均把脉动彻底移除,解出来的是平滑的平均场;即使做非定常RANS,解出的也只是缓慢变化的大尺度平均运动;

 LES 的滤波只是虚化:滤波后的量仍然是随时间、空间变化的瞬态量,只是去掉了小尺度的抖动。正因为滤波后的场还是非定常场的,LES 才能输出脉动信息

那滤波宽度Δ取多大?取多大取决于网格能分辨多细,Fluent让Δ跟随网格走,按单元体积的立方根计算,本质就是能计算多细由网格决定。

2.2 被滤掉的部分不会消失:SGS应力

 

对NS方程做滤波,线性项(时间导数、压力梯度、粘性项)都能顺利通过,麻烦出在非线性对流项上:乘积的滤波不等于滤波的乘积,于是方程里多出一项:亚格子应力(SGS 应力)。

这个场景似曾相识:101、167 篇讲过,雷诺平均的非线性项产生了雷诺应力;


现在,滤波的非线性项产生了亚格子应力。数学结构如出一辙,只是"平均"换成了"滤波"。物理意义也类似:被滤掉的小涡虽然不再直接出现在方程里,但它们对大涡的"集体作用"必须留下来,否则大涡的演化就是错的。

怎么封闭这项?Fluent 的所有 SGS 模型沿用与 RANS 相同的 Boussinesq 假设,用亚格子湍流粘度μt与可解尺度应变率张量来构造:

其中可解尺度应变率张量定义为:

注:亚格子应力的各向同性部分不做模化,直接并入滤波后的静压项,所以上式只管偏量部分。

2.3 全部问题归结为一个:μt怎么算

 

把RANS和LES的涡粘封闭并排放在一起看:结构完全同构,唯一的区别是RANS的μt要代偿脉动,LES 的μt只负责"滤掉"的那部分小尺度脉动。LES 的 μt 公式比较简单,简单到不需要解任何附加的微分方程。

有多简单?后面相应的模型会给出答案:

  1. Smagorinsky-Lilly:奠基模型,最简单;缺陷--常数 Cs 不普适;

  2. Dynamic Smagorinsky-Lilly:让常数自己算,修复Smagorinsky-Lilly的缺陷;但公式骨架的近壁与层流问题没解决;

  3. WALE:重写公式骨架,修复Dynamic Smagorinsky-Lilly的问题;成为 Fluent 默认;但近壁分辨率仍存在问题;

  4. WMLES / WMLES S-Omega:近壁交给RANS,修复近壁代价;S-Omega 再补分离剪切层与转捩两块短板;

  5. Generic Algebraic WMLES:把WMLES / WMLES S-Omega的"近壁 RANS 层"开放给任意代数 LES 模型;

  6. Kinetic-Energy Transport:跳出代数框架,给亚格子湍动能建输运方程。

下面我们来逐步看这几种模型


3. 五种SGS模型

3.1 Smagorinsky-Lilly:奠基模型

 

最早的 SGS 模型由 Smagorinsky 提出。物理直觉是:小涡的随机搅拌对大涡的作用,就像分子热运动对宏观流动的作用,都是一种"粘性"。既然是粘性,量纲就是 m²/s,而"长度²×应变率"正好是这个量纲,于是涡粘写成:

剩下的问题只有一个:混合长度Ls取多大?Fluent按下式计算:

这个min里的两项各有分工:

Cs·Δ 是基准:小涡尺寸不会超过滤波宽度(网格),所以混合长度以 Δ 为上限,系数 Cs 做修正;

κd 是近壁保险:d 是到最近壁面的距离,κ 是冯·卡门常数。物理上壁面会压制脉动,离壁越近,允许的混合长度越小,这一项保证近壁涡粘不会虚高。

其中 Δ 为当地网格尺度,按单元体积计算,即取单元体积的立方根:

最后只剩常数 Cs。Lilly 在均匀各向同性湍流的惯性子区推导出 Cs=0.23。但这个值很快暴露出问题:在存在平均剪切、转捩流动以及近壁区的流动中,0.23 会过度阻尼大尺度脉动。


研究发现,对于不同的流动,Cs并不是一个固定的常数,这也是这个简单模型最严重的缺陷。实践表明 Cs 取 0.1 左右对很宽范围的流动效果最好,Fluent 默认值即 0.1。


3.2 Dynamic Smagorinsky-Lilly:让常数自己算

 

既然 Cs 取多少取决于具体流动,最自然的想法就是:让程序根据当下流场把常数自己算出来。这就是 Germano 与 Lilly 的动态过程。

它怎么自己算?已经解析出来的大涡本身就是最好的信息来源。具体做法是给解再套一层更宽的测试滤波(宽度取网格滤波宽度的两倍),得到第二套可解流场。两套场的差,恰好对应"网格滤波与测试滤波之间"那一段尺度的贡献——用这段尺度的能量信息,就能反解出常数 C。打个比方:同一份湍流,用两把不同粗细的筛子各过一遍,两次筛出量的差异里藏着正确答案。

数学上分四步走。第一步,在测试滤波场层面把 SGS 应力写成下式,假设尺度相似性,两式用同一个系数 C:

第二步,网格滤波 SGS 与测试滤波 SGS 之间靠Germano恒等式关联:粗滤波层的 SGS 应力等于细滤波层的 SGS 应力加上两层之间尺度的贡献,其中能直接计算的部分来自可解大涡场:

第三步,把网格滤波层的 Smagorinsky-Lilly 模型代入恒等式,经 Lilly的最小二乘收缩,得到 C 的表达式:

第四步,处理数值稳健性。动态求出的C随时间、空间在相当大的范围内波动,Fluent 默认把 C 截断在0与 0.23 之间,下限保证涡粘不为负,上限来自 Lilly 的理论值。这使得我们无需预设常数,剪切流和转捩区里 Cs会自动降低。

但动态过程公式骨架仍然是 Smagorinsky 的。因此仍然存在两个问题:近壁渐近行为不对;层流剪切流照样产生非零涡粘,即层流区会被人为掺进假湍流。要解决它们,必须换公式骨架。


对于Fluent,在 Subgrid-Scale Model 下选择 Smagorinsky-Lilly。下方的 Dynamic Stress 选项会变为可用,勾选它,Fluent 就会自动启用 Dynamic Smagorinsky-Lilly 模型


3.3 WALE:重写骨架

 

WALE(Wall-Adapting Local Eddy-Viscosity,壁面自适应局部涡粘)模型从公式结构入手,只有同时具备旋转与变形特征、真正参与亚格子能量交换的涡结构,才会产生涡粘。涡粘表达式:

其中滤波宽度与有效应变项分别定义:

新公式的优点:

  • 近壁渐近行为正确(y³ 标度)。  
    壁面附近的脉动被无滑移条件强烈压制,理论上涡粘应以 y³ 的速率衰减,WALE 的数学结构自动满足这一点,不需要额外打补丁;  

     
  • 层流剪切流中涡粘为零。  
    纯剪切、无旋转的区域(层流区)里有效应变项为零,不产生假涡粘,层流区得到正确处理;对比之下,Smagorinsky 家族在层流剪切流中照样给出非零涡粘,相当于往层流里掺假湍流。  

     

常数Cw文献发表值为 0.5,但 Fluent 与原模型开发者在欧盟研究项目中做了系统验证,Cw=0.325一致给出更优结果,因此 Fluent 默认 0.325,也就是界面上的 Cwale 输入框。

Fluent帮助文档明确 WALE 优于 Smagorinsky-Lilly,Fluent 也把它设为 LES 的默认 SGS 模型。

但是WALE 再优秀,也仍是经典 LES:它默认你要解析所有大涡,包括近壁那些几何上很小的。因此它在近壁面处仍然存在问题:

  1. 壁面附近谱中最大的涡在几何上也很小,既要加密网格,又要缩小时间步长;
  2. 与 RANS 不同,网格不能只沿壁面法向加密,壁面平行平面内的湍流也必须解析,网格量因此爆炸;
  3. LES 区域沿壁面方向的尺寸不能超过边界层厚度的10~100 倍,算大域想都别想;
  4. 只有雷诺数很低、边界层因低 Re 保持层流的流动才适合经典 LES。

近壁这一层,真的没有捷径吗?有一个务实的观察:对数律区的近壁湍流结构其实高度标准化。既然标准化,何必将它逐涡解析?直接将近壁薄层交给 RANS,外区交给 LES。这就是 WMLES。

3.4 WMLES与WMLES S-Omega:近壁交给RANS

 

(1)核心思想

代数 WMLES(Shur 等提出):内层对数层以内用 RANS,外层边界层用改进的 LES 公式。这个分工的妙处在于:边界层内层正是经典 LES 雷诺数依赖性的来源。把它交给 RANS 后,相同的网格分辨率可以直接用于越来越高的雷诺数(槽道流验证)。

注:雷诺数依赖并没有被完全消除,边界层厚度会随雷诺数升高而相对物面变薄,"每个边界层体积"的网格量不变,但边界层体积的总量仍在增加。


(2)公式原理

yShur 模型把三个部件组合起来:混合长度模型、修正 Smagorinsky 模型、Piomelli 壁面阻尼函数。涡粘表达式:

这个公式信息量大,逐项拆开:

  •  min[(κdw)², (C·Δ)²]:自动切换开关。dw 为到壁面的距离——离壁近时 κdw 这一项更小,模型走 RANS 混合长度路线;离壁远时 C·Δ 更小,模型走修正 Smagorinsky(LES)路线。一个 min 完成内外层切换,不需要人为划界;


  • |S|:涡粘由可解应变率驱动,只在流动真正变形的地方出现;


  • (1−exp[−(y+/25)³]):近壁把 LES 部分平滑压零,y+ 小于约 25 的区域退化为纯 RANS 行为,且过渡是指数光滑的,不产生数值跳变。

还有一个配套修正:LES 区的网格尺度不再取体积立方根,由单元最大边长 Δmax(直角六面体;其它单元类型有推广形式)与壁面法向间距 Δw 组合而成:

为什么要这样修改?因为壁面模化网格在近壁是"薄长条":法向很细、流向展向很粗。体积立方根 Δ=V^(1/3) 会把这种网格的可解析尺度估得过于乐观,修正后的取法更保守、更符合真实解析能力。

(3)网格分辨率

壁面解析 LES(WRLES)的经典分辨率要求见式:

即流向Δx+≈40、边界层法向约30个网格(Ny)、展向 Δz+≈20(带+号的量表示以壁面摩擦速度无量纲化;Ny 为边界层内的法向网格层数;h 为边界层厚度,槽道流取半槽道高)。WMLES 的要求:

即 Δx≈h/10、法向 30~40 层、Δz≈h/20。注意关键区别:WRLES 的要求以"壁面单位"计,雷诺数越高,同样的 + 号间距对应的物理尺寸越小、网格越密;WMLES 的要求以"边界层厚度"计,不管雷诺数多高,比例不变。

按周期槽道流算:WRLES 的网格量随摩擦雷诺数平方增长,Reτ=1.8×10⁴ 时约需 1.8×10¹⁰ 单元;WMLES 在同样的雷诺数下始终维持约5×10⁵ 单元,相差四个数量级。

但 WMLES 仍然远贵于RANS,一个壁面边界层体积,WMLES 要铺 10×(30-40)×20 ≈ 6000~8000 个网格(流向×法向×展向),RANS 只要1×(30-40)×1 ≈ 30~40 个;RANS 可以做定常,WMLES 必须做非定常且 CFL 控制在 0.3 左右。

(4)WMLES S-Omega:再补两块短板

原始 WMLES 在LES区使用修正 Smagorinsky 模型,有两个已知缺陷:其一,常剪切流中 |S| 不为零,涡粘也就不为零,于是无法计算转捩效应;


其二,在分离剪切层(如后台阶)中会产生过大的涡粘。S-Omega 版本的改法是:把 LES 区中使用的量由应变率 S 换成由应变率与涡量模 Ω 共同构造的量,使常剪切流动的涡粘归零,上述两个缺陷随之消除。


(5)与ELES联用

官方特别推荐的用法:把 WMLES 与嵌入式 LES(ELES)结合——ELES 把 LES 区限制在少数关键区域、其余用 RANS 覆盖;WMLES 则把这种组合扩展到高雷诺数的 LES 区。两者配合,LES 才真正具备工业实用性。


WMLES 的近壁 RANS是搭配固定。如果想继续用自己喜欢的SGS模型(比如 WALE),再给它外挂一个近壁 RANS 层呢?这就是 Generic Algebraic WMLES。

3.5 Generic Algebraic WMLES:可外挂的近壁RANS层

 

Generic Algebraic WMLES 是 S-Omega WMLES 的扩展,思想是:不动 SGS 模型本身,在外面乘一个混合,近壁区用代数 RANS 模型的涡粘,外区用所选 LES 模型的涡粘,两者按混合函数融合:

混合函数定义为式:

这个混合函数有个性质:它只依赖壁面距离 d 与网格量 Δmax,不依赖流场解,几何和网格定了,混合函数就定了,不会因流场波动而抖动,非常稳健。其中常数 Cw1 与 Cw2 控制 RANS 层的厚度与切换的陡峭程度,默认 Cw1=2.45、Cw2=2。验证表明,这组默认值在宽雷诺数范围、WMLES 可接受的网格上几乎完全消除了对数层失配。


注:对数层失配是 WMLES 类模型的经典毛病,内层 RANS 与外层 LES 的衔接处,速度剖面偏离对数律、鼓出一个包。判断一个近壁处理好不好,看速度剖面贴不贴对数律最直观,见图:

近壁 RANS 区内采用带壁面阻尼函数的混合长度模型,常数取 17、κ=0.41。网格建议:流向 Δx≈h/10、展向 Δz≈h/20;第一层网格尺寸的要求比较灵活,但一般应避免第一层单元中心落在缓冲区。缓冲区指 y+ 约 5~30 的过渡区域,那里的平均剖面既不遵循粘性底层规律、也不遵循对数律,是最难模化的高度,第一层网格中心落进去会让近壁 RANS 层很尴尬。


界面上对应的开关就是 Viscous Model 对话框中的 Near Wall RANS Layer (WMLES) 复选框。


注:用户手册列明该选项对 Smagorinsky-Lilly 与 WALE 子模型可用,理论手册补充说明 Dynamic Smagorinsky-Lilly 亦适用;不支持与 ELES、SBES 联用。



至此,从 Smagorinsky 到 Generic 模型全是代数模型,公式里没有任何微分方程,μt 由当地量直接算出。代数模型的共同隐含假设是局部平衡,这个假设在强非平衡流动中会成为软肋。

3.6 Kinetic-Energy Transport:放弃局部平衡假设

 

先解释局部平衡是什么:前面所有模型都默认通过网格滤波尺度传下来的能量,在亚格子尺度上当场全部耗散掉,不多不少。后果是μt 只由当地的瞬时状态决定,模型没有记忆,上游发生了什么、能量是正在积累还是正在衰减,模型一概不知。

在强非平衡流动(剧烈分离、快速应变区)中,这个假设明显失真。Kim 与 Menon 的动力亚格子动能模型给出了另一条路线:给亚格子湍动能 ksgs 建立输运方程,让亚格子能量有生成、有输运、有耗散,携带历史信息。Fluent 的实现中,ksgs 定义为:

亚格子涡粘由 ksgs 计算:

ksgs 通过求解其输运方程得到,形式上与 RANS 的 k 方程(163 篇)相似,但尺度是亚格子的:

模型常数由动态过程确定,其中 Cε 被硬编码为 1.0。界面上这个模型叫 Kinetic-Energy Transport(动能输运),并可启用 Dynamic Energy Flux 与 Dynamic Scalar Flux 选项。

至此,小涡怎么模化有了完整答案。但 LES 与 RANS 还有一件事本质不同没有处理:RANS 从不操心入口,平均量给进去就行;LES 解的是瞬时场,湍流脉动从哪里进来?


关于LES模型入口边界条件湍流脉动怎么给,我们下一篇文章再详细讲解。下面我们来看看FLuent LES模型的界面设置

4. Fluent界面设置:LES怎么开、怎么选

打开 Setup → Models → Viscous → Viscous Model 对话框,选择 Large Eddy (LES):

对照上图逐项说明,每一项都与前面的内容对应:

  • Viscous Model 中选择 Large Eddy:启用 LES;

  • Subgrid-Scale Model 下拉框:五选一,默认 WALE。

    选型参考:  

    Smagorinsky-Lilly 适合教学与对比基准(常数需人工调);

    WALE 是通用首选(Fluent 默认);

    WMLES 适合高雷诺数壁面流动;

    WMLES S-Omega 在关注分离剪切层与转捩时更合适;

    Kinetic-Energy Transport 适合强非平衡流动;


  • Near Wall RANS Layer (WMLES) 复选框

    即 Generic Algebraic WMLES,仅 Smagorinsky-Lilly 与 WALE 子模型可用;  

     
  • Near-Wall Treatment 近壁处理

    三选一:Kader blending Wall Functions(当前默认)、Harmonic blending Wall Functions based on r+(文档推荐)、Werner-Wengle Wall Treatment负责粘性底层与对数律之间的近壁衔接;  

     
  • Cwale 输入框:选 WALE 时出现,默认 0.325。


注:启用非预混或部分预混燃烧模型时,所有 SGS 子模型都会出现 Dynamic Fvar 选项。

5. LES与RANS的本质区别及怎么选

(1)求解的结果不同:RANS 解平均场,无法求解脉动;LES 解滤波后的瞬态场,大涡真实演化。LES 能给出脉动、湍流结构、声源信息,RANS 只能给出平均量。

(2)代价不同,且差距悬殊:网格方面,LES每个边界层体积 WMLES需要000~8000 个 vs RANS需要30~40 个;时间方面,LES 必须非定常、CFL≈0.3、还要累计足够长的统计时间,RANS 可定常一步到位;LES内存与 CPU 高出几个数量级,必须并行。

(3)入口要求不同:RANS 给平均量加两个湍流参数即可;LES 需要生成真实的入口脉动,入口剖面要靠前置 RANS 提供。

具体怎么选择,这里给大家一些建议:

  • 只要平均量、预算有限:RANS (k-ε、k-ω、RSM),最划算的选择;


  • 如果必须LES,则:

    壁面不重要或边界层为层流,经典 LES + WALE(默认模型);

    高雷诺数壁面流动、关注分离与脉动,WMLES / WMLES S-Omega,或 WALE 加 Near Wall RANS Layer;

    只有局部区域需要 LES → ELES 与 WMLES 联用,把 LES 区限制在关键区域;

    强非平衡流动、需要亚格子能量历史 → Kinetic-Energy Transport;


6. 后记

湍流系列文章,这篇文章写的是最费劲的,也是耗时最长的,全文7500字,反复修改琢磨了一周多的时间,所以发布时间晚了一些,望大家见谅


来源:Fluent学习笔记
FluentFlux疲劳非线性燃烧气动噪声湍流通用理论DAP
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-09-15
最近编辑:1月前
Fluent学习笔记
博士 签名征集中
获赞 183粉丝 598文章 239课程 5
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈