动网格除了前面讲了很多的关于运动指定之外,另一个重要主题则为网格的更新。
在部件运动之后,不可避免的会造成网格形状的变化,如若不对网格加以控制,在持续运动的过程中,则可能造成网格极度变形、歪曲率过大,甚至产生负体积。因此必须对发生变形的网格进行矫正。
Fluent主要提供了三种方式控制网格:

  • Smoothing
  • Layering
  • Remeshing
    本文关注Fluent中的Smoothing方法。

    启用Smoothing方法

    Smoothing方法的启用非常简单,只需要在Dynamic Mesh中激活Smoothing选项即可,如图所示。

    之后可进入Setting...菜单项中进行参数设置。

    Smoothing设置面板

    Smoothing参数比较多,如图所示。

    其包含三种光顺方法:

  • Spring/Laplace/Boudary Layer
  • Diffusion
  • Linearly Elastic Solid
    通常选择:
  • 小幅度的网格运动,使用smoothing方法,此方法计算量较小
  • 大幅度的网格运动,建议使用Diffusion方法,此方法可以提供较好的网格质量
  • 对于存在旋转运动的边界,可以使用Linearly Elastic Solid方法,此方法计算量最大,但能够提供更好的网格质量。

弹簧光顺

弹簧光顺(Spring)是最基础的光顺方法,也是Fluent默认使用的光顺方法。
该方法的基本思路是将网格节点之间的连接线近似为弹簧,通过计算节点之间力平衡方程得到各节点光顺后的位置。
\[
\vec{F_{i}}=\sum_{j}^{n_i}{k_{ij}(\Delta\vec{x}_j-\Delta\vec{x}_i)}
\]

式中\(\Delta \vec{x}_i\)及\(\Delta \vec{x}_j\)分别为节点i与节点j的位移。\(n_i\)为与节点i相连的节点数量;\(k_{ij}\)为节点i与节点j之间的弹簧刚度。

弹簧刚度可定义为:
\[
k_{ij} = \frac{k_{fac}}{\sqrt{|\vec{x}_i-\vec{x}_j|}}
\]
式中\(k_{fac}\)为Spring Constant Factor,是一个需要用户输入的值。

当弹簧力达到平衡时,可计算得到:
\[
\Delta \vec{x}_i^{m+1}=\frac{\sum_{j}^{n_i}{k_{ij}\Delta \vec{x}_j^m}}{\sum_{j}^{n_i}{k_{ij}}}
\]
其中,m为迭代次数。

当节点i的位移计算得到之后,即可更新网格位置:
\[
\vec{x}_{i}^{n+1}=\vec{x}_i^n+\Delta \vec{x}_i^{converged}
\]

需要设置的参数包括:

  • Spring Constant Factor:弹簧常数因子。该参数控制了扩散阻尼,参数取值范围0~1,默认值为1。此参数越小,表示网格之间的阻尼越小,网格运动更容易扩散到更远的节点。当边界运动较为剧烈时,可适当减小此数值。
  • Convergence Tolerance:收敛精度。计算网格节点运动采用的是迭代法,这个迭代容差控制了迭代精度。默认值为0.001,通常不需要修改。
  • Number of Iterations:迭代次数。当迭代次数达到此设定值,停止迭代计算。默认值为20,通常不需要修改。
    这三个参数决定了弹簧光顺过程中网格节点的运动方式。
    Elements方式决定了更新的网格类型:
  • Tri in Tri Zones:只光顺三角形或四面体网格
  • Tri in Mixed Zones:光顺混合区域中的三角形或四面体网格

要点

对于弹簧光顺方法:

  • 光顺方法并不会改变网格拓扑关系。意思是说,不管部件如何运动,网格节点之间的链接关系不会发生改变,网格的数量也不会变化。因此光顺方法只适合于小幅度的运动
  • 可通过调整设置参数Spring Contant Factor来控制网格节点的运动幅度。当边界运动幅度很大时,可适当降低该参数值,从而利用更多的网格节点运动来消减边界运动造成的网格影响。
  • 光顺方法只要适用于三角形或四面体网格,虽然Fluent宣称smoothing方法可以用于所有网格,但其实在其他类型的网格上,smoothing并不会得到好的结果。
    ---
    更多关于CFD内容,可微信扫描下方二维码关注微信公众号。

Fluent动网格【11】:弹簧光顺的更多相关文章

  1. Fluent动网格【13】:网格光顺总结及实例

    光顺(Smoothing)方法是最基本的网格节点更新方法.Fluent提供了三种光顺方法: Spring弹簧光顺 Diffusion扩散光顺 Linearly Elastic Solid光顺 三种方法 ...

  2. Fluent动网格【1】:概述

    最近总有小伙伴向我询问Fluent中的动网格问题,因此决定做一期关于Fluent动网格技术的内容. 动网格技术在流体仿真中很特殊,应用也很广.生活中能够碰到形形色色的包含有部件运动的问题,比如说我现在 ...

  3. Fluent动网格【8】:网格节点运动案例

    Fluent动网格中的DEFINE_GRID_MOTION宏允许用户定义网格节点的运动.本案例演示采用DEFINE_GRID_MOTION宏指定边界节点的运动. 案例动网格效果如图所示. 案例描述 本 ...

  4. Fluent动网格【12】:扩散光顺

    扩散光顺是Fluent提供的另外一种常用的网格光顺方法.其基本原理是通过求解扩散方程得到网格节点的运动位移. 扩散光顺基本计算 扩散光顺通过求解 以下扩散方程来设置网格的节点位置. \[ \nabla ...

  5. Fluent动网格【9】:区域运动

    本文所述的区域运动并非动网格中的运动域,而是指在多参考系(MRF)或滑移网格中所涉及到的区域的运动. 在滑移网格中指定区域运动时,除了能够指定绝对运动外,还能指定某一区域与其他区域间的相对运动,如图所 ...

  6. Fluent动网格【7】:网格节点运动

    在动网格中,对于那些既包含了运动也包含了变形的区域,可以通过UDF来指定区域中每一个节点的位置.这给了用户最大的自由度来指定网格的运动.在其他的动网格技术中(如重叠网格)则很难做到这一点.定义网格节点 ...

  7. Fluent动网格【5】:部件变形

    在动网格中关于部件运动除了指定刚体运动外,有时还需要指定某些边界的变形,这种情况经常会遇到,尤其是与运动部件存在相连接边界的情况下,如下图中边界1运动导致与之相连的边界2和边界3发生变形. Fluen ...

  8. Fluent动网格【3】:DEFINE_CG_MOTION宏

    除了利用Profile进行运动指定之外,Fluent中还可以使用UDF宏来指定部件的运动.其中用于运动指定的宏主要有三个: DEFINE_CG_MOTION DEFINE_GEOM DEFINE_GR ...

  9. Fluent动网格【2】:Profile文件

    动网格中一个重要任务是部件运动方式的指定.在动网格中指定部件的运动,往往将部件的运动方式指定为其加速度.速度或位移与时间的相关关系,本文主要讲述如何在Fluent中利用瞬态Profile文件指定部件的 ...

随机推荐

  1. webstorm离线装载Material Theme UI

    首先说说需求,由于直接用webstorm听说VS挺火的,但是初恋的感觉是其他任何编辑器无法替代的 瞎说了一些话,新公司内网开发,用的是vscode,但是我还是喜欢用webstorm,连不上网,所以不能 ...

  2. 如何删除pagefile.sys

    经常使用电脑的用户就会发现系统自带了虚拟内存文件pagefile.sys,若是电脑出现内存不足情况,其就会调用虚拟内存来执行程序,以防止系统内存崩溃.不过,虚拟内存没有真实的内存读取速度快,而且会占用 ...

  3. Dotnet core结合jquery的前后端加密解密密码密文传输的实现

    在一个正常的项目中,登录注册的密码是密文传输到后台服务端的,也就是说,首先前端js对密码做处理,随后再传递到服务端,服务端解密再加密传出到数据库里面.Dotnet已经提供了RSA算法的加解密类库,我们 ...

  4. WPFToolkit DataGrid 使用介绍zz

      首先:这版本需要.NetFrameWork SP1的支持 WPF Toolkit - February 2010 Release 下载地址:http://wpf.codeplex.com/rele ...

  5. Android 简历 怎么写? 月薪10K,20K+, 怎么拿到面试?

    估计不少找Android工作的,技术还可以,就是投简历,没有面试通知.很有可能是简历的问题. 那么我这里有一些简历,可以参考. 其中也有我的, 月薪20K+的哦,  参考一下,会有你的面试的. 额, ...

  6. DataGridView修改数据并传到数据库

    1. 两个属性设置: 第一个:设置自动创建列,默认为True DataGridView1. AutoGenerateColumns = True; 虽然默认为True,但写下去总是好的!!! 第二个: ...

  7. MySQL firstmatch strategy

    在探讨subquery如 x IN (SELECT XX FROM TABLE)这样的形式的MATCH策略时,不是很清楚实现过程.在网上搜了一下, 地址:http://stackoverflow.co ...

  8. JAVA实现Word(doc)文件读写

    1.pom.xml依赖 <dependencies> <dependency> <groupId>org.apache.poi</groupId> &l ...

  9. Java 8 (二) 新的时间API

    新的时间API 一)时间线 Instant对象:表示时间轴上的一个点,原点为1970-1-1的午夜. Duration对象:表示一段时间. 注意Instant和Duration类都是final. 二) ...

  10. 潭州课堂25班:Ph201805201 爬虫高级 第十一课 Scrapy-redis分布 项目实战 (课堂笔