Skip to content

Algorithm

基本理论区

416 主题 2.1k 帖子
  • 自适应网格优化 求助!!!

    1
    1 帖子
    2k 浏览

    基于2011年发表在Journal of Computational Physics的文章Adaptive mesh refinement based on high order finite difference WENO scheme for multi-scale simulations,并根据您文章的网格自适应算法编写了一套计算程序,在计算双马赫反射算例过程中,遇到了一些问题,受困许久,希望大神指点迷津~ 在此诚挚感谢
    遇到的问题具体问题如下:
    在计算双马赫反射问题时,在Kelvin-Helmholtz rolls两侧流场出现较大的震荡,局部密度云图及网格自适应加密情况如图1所示,震荡区域存在粗细网格过渡,故怀疑在粗细网格过渡中存在算法错误或者代码错误(我已多次检查代码,未发现代码错误,但不能完全排除仍有代码错误存在)。
    0_1536922532180_9e8d3f5c-b1c2-4828-bec3-8e472986a4d2-image.png
    (a)局部密度云图(红框处为存在流场震荡处)
    0_1536922552890_10e26979-d84c-4d89-956b-e81584a6adb5-image.png
    (b)局部网格生成
    0_1536922574620_04fd03c7-eca8-4851-a7e4-3c342cae3939-image.png
    (c)总体密度云图
    0_1536922591916_530a5e07-8d83-41c6-b1e3-338c5acb0b3a-image.png
    (d)总体网格生成(黑色区域表示网格加密)
    图1 局部密度云图及网格自适应加密情况
    该程序采用C++语言编写,流场计算使用有限差分法,五阶WENO格式,Steger-Warming通量分裂,2D欧拉方程,时间推进采用3阶Runge-Kutta方法;网格自适应加密方法和加密准则与您的论文有所不同,采用基于原始根网格进行加密,每个网格单元生成3×3个子网格单元,加密准则使用密度梯度(∂ρ⁄(∂x+∂ρ⁄∂y))。一共使用三层网格,在计算域[0,3]×[0,1]中,原始根网格单元数量为300×100。Layer 0表示原始根网格,Layer 2表示最密的网格。Layer 2比Layer 1略大,覆盖Layer 1,两层网格的间隙为3个根网格单元的尺度,如图2所示。以此希望精准捕捉激波,并适当减少网格生成数量。子网格层的时间步长为父网格层的1/3。
    父网格层每计算完一步,对父网格节守恒量(ρ,ρu,ρv,E)和守恒量对时间的导数[ρ’,(ρu)’,(ρv)’,E’]进行五阶加权(类似WENO加权)空间插值,求解出子网格层边界的虚网格节点的相应守恒量及其导数。并将前一时间步和本时间步插值出的通量及通量导数使用Hermite插值,以获得三个子时间步的相应变量,作为加密网格层的边界条件,并使用式(1)作为Runge-Kutta时间推进的中间步的边界条件。
    0_1536922724975_5a02e4bb-a1eb-4fce-884b-9d73584cc27c-image.png
    在子网格层三个时间步计算完成后,父网格层被子网格层覆盖的节点数值被子网格对应同位置节点更新。每一或两个根网格时间步重新生成一次加密网格。
    0_1536922743488_5f7e9dc2-9e8c-44f9-88fb-73083e652ec1-image.png
    (a)粗网格和细网格
    0_1536922779864_ecb19b47-59e2-4210-97fb-4d0f9de2d195-image.png
    b)不同层次网格
    图2 网格加密示意图
    其他相关的情况介绍:
    在一次测试中使网格只加密,不减少,结果显示流场基本没有前述震荡,结果如图3所示。此算例应该可以证明该程序计算格式是正确的。然而,由于生成网格实在太多,不具实际应用意义。
    0_1536922795688_29716dff-e9d7-4afb-a475-b7a750cebe66-image.png
    (a)密度云图
    0_1536922809856_e6bd76e2-af3b-4966-9f15-c3e59d18ea3b-image.png
    (b)网格生成情况(黑色为加密区域)
    图3 网格只加密不减少的计算结果

    不知大家在调试程序过程中,是否遇到过类似的情况。
    希望大家能够指出
    (1)我对算法的理解是否存在错误,特别是粗细网格过渡部分的算法;
    (2)解决该问题有何建议;
    (3)能够告知粗细网格过渡区域,造成的流场震荡的原因可能有哪些;

    再次感谢大家!

  • OpenFOAM里面有热通量heat flux的边界条件吗?

    4
    4 帖子
    6k 浏览

    @东岳 这个边界条件已经整合到exteranlHeatFluxTemperature里面了,算的也是温度梯度,也就是$q=-\kappa \frac{\partial T}{\partial n}$,这种边界按照FDS技术手册里面应该是DNS的计算方法。
    LES计算时给定的方法是$q=h \Delta T$,$h$是对流换热系数。openfoam里面的边界条件要么是固定值要么是梯度,这种差值不知道在of里面能不能实现

  • 关于气液分离的采出分率问题

    2
    2 帖子
    3k 浏览
    C

    补充一下,不知道这些图中的这些数据点是如何提取的,谢谢大家

  • 均匀各项同性湍流的初场设置问题

    4
    4 帖子
    4k 浏览
    B

    @shifc 不知道你现在解决了没有,我最近做格栅湍流也碰到了同样的问题,我的解决方法是谱空间的复速度对三个坐标轴必须都是共轭对称的。

  • Hill vortex是怎么产生的?

    2
    2 帖子
    3k 浏览
    S

    你好👋

  • 数值传热学P94,关于内节点法的离散过程。

    4
    4 帖子
    4k 浏览
    李东岳

    额,自问自答?

  • 计算对流扩散方程没有扩散效果?

    8
    8 帖子
    8k 浏览
    李东岳

    不好意思,那个算例里面求解器我这面编译不了(openfoam-4.x and 5.x).. 估计后来问题已经解决了吧

  • 压力方程和解

    2
    2 帖子
    3k 浏览

    这个是理论大坑啊。

    如果压力基的求解器,求解的是速度和压力场,那么得用连续性方程来求压力。
    如果是密度基的,连续性可以求密度,然后用状态方程求压力。

  • 有意思的CFD算法类研究

    9
    9 帖子
    15k 浏览
    李东岳

    可压缩PBE方程形式的比较

    咦、之前写的这个研究方向已经发出去了

    SuperBee好像就会锐化界面。

    Yes, SUPERBEE加了下风格式,是叫下风么?Down-wind

    哈哈,东岳大神,感谢你做了这个平台 ... 感觉学习CFD就是要不断地重复才能领悟其中的真谛,当然有通俗易懂的资料会更为便捷。

    @mohui 多谢支持,CFD任重道远比较耐玩!只要有兴趣,是能研究一辈子的,不像王者荣耀,玩几年到头了 哈哈 :mihu: 资料以后会持续更新,精力有限,稍微慢点

  • LES一个方程

    5
    5 帖子
    4k 浏览
    李东岳

    此问题同类于湍流动能耗散率的定义。湍流动能耗散率的定义为:
    \begin{equation}
    \varepsilon=2\nu_t\overline{S_{ij}S_{ij}}
    \end{equation}
    经过各向同性假定后有:
    \begin{equation}
    \varepsilon=\nu_t\overline{\frac{\p u_i'}{\p x_k}\frac{\p u_i'}{\p x_k}}
    \end{equation}

  • 高等数学的CFD相关问题

    1
    1 帖子
    2k 浏览
    李东岳

    页数按照pdf的页数,不是书上的页数

    上册:

    https://www.jianguoyun.com/p/DVcobNoQ9s3ZBhjejV8

    73页【直线运动的速度】:导数的直观描述,CFD方程这面全是导数,大部分为偏导数,后面会介绍 75页、76页【公式1-4】 138页【公式3-3】:泰勒公式,CFD很多方程都是基于泰勒公式推导出来的

    下册

    https://www.jianguoyun.com/p/DQnanmcQ9s3ZBhjijV8

    23页:流量计算公式 71-75页:偏导数,CFD这面都是偏导,重点看一下,理解一下 77页提到了个拉普拉斯方程,随便扫一眼 78页全微分,跟CFD的物质导数关联 79页3-3 81页有个例子 112页介绍了梯度,但是感觉描述的不是很简单,可以看看 141-144页 重积分,为之后理解有限体积法做准备 224-225页 曲面积分的定义,为之后理解有限体积法做准备。其中225页有个图,比较形象 230-231页,看高数中对通量的定义 243-245页,高数中明确的对速度散度的定义
  • 升力模型

    1
    1 帖子
    2k 浏览
    李东岳

    为什么我这个推导的反了?应该是大于0 。

    0_1529644803725_微信图片_20180622131807.jpg

  • ANSYS Fluent中QMOM的植入缺陷

    4
    4 帖子
    5k 浏览
    S

    @东岳 谢谢:baobao:

  • 一些CFD的方程

    1
    1 帖子
    2k 浏览
    李东岳
    张量标识预习测验

    下面的方程取自各个不同的CFD教材。方程并没有采用代码的形式而是直接截图,这样更加直观的可以感受到文献里面方程这种多样性的书写方式。各位老师和同学需要能够拆分为分量形式。

    0_1529193840362_1.JPG

    0_1529193880752_2.JPG

    0_1529194030583_3.JPG

    0_1529194061311_4.JPG

    0_1529194127887_5.JPG

    0_1529195669196_6.JPG

    0_1529195734307_7.JPG

    0_1529195783721_8.JPG

    0_1529196217099_9.JPG

    0_1529196245498_10.JPG

    0_1529196323392_11.JPG

    0_1529196403565_12.JPG

    0_1529196500098_13.JPG

    0_1529197325295_14.JPG

  • 动量方程为什么要忽略重力项?

    2
    2 帖子
    4k 浏览
    李东岳

    大都忽略重力源项,哪位大神给解释下为什么忽略重力源项

    重力对流体的作用就是引起水动力学压力,如果是密闭的流体,其不会引起流动变化。因此可以忽略重力项,这样压力边界条件也可以好给出。

    一般考虑重力的主要是重力为一种重要的体积力,如密度不均引起的浮力,其中密度不均进一步由温度导致。

    还有一种情况要考虑重力是模拟流体的自由落体。

    其他情况可能跟具体的应用有关,如旋转系、海洋热风那种普遍都添加重力。

    如果不忽略,怎样恰当的处理?

    如果考虑重力,通常求解的压力不是先前的压力p,而是压力p减去水力学压力$\rho g h$。从算法层面理解,重力引致下落,压力对这种效果抵消,采用这种压力计算的时候,可以省去这种来回下落-抵消的求解过程。求解出$p-\rho gh$之后,真实的压力即为$p-\rho gh+\rho gh$

  • 求助帖:关于高阶Boussinesq方程的推导

    5
    5 帖子
    5k 浏览

    @东岳 好的,麻烦您啦!我在一点一点仔细研究下。如果能研究明白,万一以后也有人问,我再做个帖子出来♪(^∇^*)

  • 7 帖子
    10k 浏览
    李东岳
    今天上到了4.4G,也还行

    0_1528170382541_捕获.JPG

  • 湍流的尺度的计算

    2
    2 帖子
    5k 浏览
    李东岳

    是否是真实的流场中湍流长度尺度呢?

    Kolmogorov是一种假说:所有雷诺数足够高的湍流中,最小的尺度由一个普适性方程来决定,其参数为粘度和耗散率。这个假说建立在若干的假定基础之上,如各向同性。随后,有了Kolmogorov尺度。所以针对你的问题,至少各大教材都认为Kolmogorov尺度是最小尺度。

    这个泰勒湍流尺度能否代表RANS求解中的尺度信息呢?

    是的

    在大涡模拟中的湍流长度如何让计算?

    LES里面的湍流长度通过$\Delta$控制。大于$\Delta$被解析,小于$\Delta$被模化。不确定是否可以通过$\Delta$定义LES的湍流长度。

  • 关于努塞尔数问题请教

    10
    10 帖子
    10k 浏览
    I

    @lsprxd

    $h=\frac{q}{T_w - T_b}$

    其中:$q$为热流密度,$T_w$为壁面温度,$T_b$为参考温度

    这样可以吗?

  • 4 帖子
    4k 浏览
    L

    @东岳 是的,我看的文献大多数是关注速度,温度和涡量场变化,几乎没有涉及压力场变化,于是我编程计算的时候也没有考虑,结果老师问我为什么,我都不知道如何回答了:xinlei: