zoukankan      html  css  js  c++  java
  • Fluent动网格【11】:弹簧光顺

    动网格除了前面讲了很多的关于运动指定之外,另一个重要主题则为网格的更新。
    在部件运动之后,不可避免的会造成网格形状的变化,如若不对网格加以控制,在持续运动的过程中,则可能造成网格极度变形、歪曲率过大,甚至产生负体积。因此必须对发生变形的网格进行矫正。
    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}(Deltavec{x}_j-Deltavec{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内容,可微信扫描下方二维码关注微信公众号。

  • 相关阅读:
    获取SqlServer数据库、表(字段、索引..)、视图、存储过程等信息脚本
    C# 资源Resources.resx中文件的获取、读取及复制
    C# 解锁从互联网下载的需要右键属性“解除锁定”的文件
    SqlServer根据生日计算年龄,精确到年(岁)月日小时分秒
    PHP设计模式—模板方法模式
    YII2中beforeSave和TimestampBehavior的使用,自动更新创建时间,更新时间
    YII2中like查询单边匹配%
    开发中 利用 spring利用扩展点 applicationContextAware,BeanNameAware实现模板+策略模式
    Spring RestTemplate调用接口乱码解决
    设计模式学习
  • 原文地址:https://www.cnblogs.com/LSCAX/p/7016996.html
Copyright © 2011-2022 走看看