如何在fvoptions 同时固定速度和压力?



  • 如题,如何在求解过程中,通过fvoptions源设定的方式,同时固定住计算域内某个网格上的速度和压力,各位CFDers,有什么想法吗?


  • 网格教授 OpenFOAM教授 管理员

    暂且讨论下面这个

    同时固定住计算域内某个网格上的速度和压力

    相邻网格怎么办?如何保证守恒?



  • “…通常情况下,一个边界上只会指定一个约束,否则就会出现所谓的过约束“”,即向模型文件引入了过多的约束条件,其后果往往是无解,然而,真实世界中,常常不可避免地会出现一些需要在某个边界指定多个约束,在对应的另一个边界取消约束。在数值模拟中,这需要经过特殊处理才能实现。以计算流体力学(CFD)为例,求解流体模型时最理想的边界约束条件时入口与出口分别指定速度和压力,例如入口指定层流流入的速度分布曲线,出口指定一个参考压力。但是,在某些情况下,我们不得不在同一个边界上同时约束两种边界条件,例如在入口既指定速度曲线,又约束必须满足指定的参考压力。COMSOL Multiphisics 采用弱约束的方式来实现这种多约束边界条件…”
    ---------摘自COMSOL Multiphisics工程实践与理论仿真-多物理场数值分析技术

    基于上述描述,实际仿真的对象,既然理论(或者实际需求)上存在“过约束”的情况,通过数值技术上也能实现。网格作为求解参数的载体,理论上应该和边界类似,通过一定的技术,也能固定速度与压力,把这个网格作为“体积源”,只是OpenFOAM中不知如何实现…


  • 网格教授 OpenFOAM教授 管理员

    当然是可能的,

    但是要考虑数值稳定性问题。我们考虑一个非常简单的情况,网格点12345,不认为给定网格单元约束条件的话,12345网格点的速度都是1米,通量守恒。如果认为给定3单元速度为5,3单元的进出口通量如何守恒?



  • @东岳 我用fireFoam试了一下,尝试同时固定某个网格速度压力,结果显示这个网格速度基本维持不变,压力变化


  • 网格教授 OpenFOAM教授 管理员

    但是要考虑数值稳定性问题。我们考虑一个非常简单的情况,网格点12345,不认为给定网格单元约束条件的话,12345网格点的速度都是1米,通量守恒。如果认为给定3单元速度为5,3单元的进出口通量如何守恒?

    重新考虑了一下,我之前说的不太对。也就是说我说的这个情况是可以实现的。实现的方法就是添加一个点源项,物理过程类似在计算域内部添加一个吹气孔进行吹气



  • @东岳 “…在计算域内部添加一个吹气孔进行吹气”
    现在是要实现类似的吹气过程,将网格作为温度、质量(化学组分)源项,且网格赋予固定的速度以及压力,求解结果中反查这个网格的速度值和设定值是有偏差的(怀疑和组分浓度扩散相关,扩散系数存在导致网格有一定的附加“扩散速度”),结果的压力值误差更大(大于100%,猜测openfoam中应该用特殊的方式去限定这个压力约束)。

    …BTW真正关心的问题来了,在fireFoam application源程序中没有找到质量运移的扩散系数D,也没找到施密特数Sc的设定位置(施密特数(Schmidt number, Sc)是一个无量纲的标量,定义为动黏滞系数和扩散系数的比值,用来描述同时有动量扩散及质量扩散的流体。施密特数的命名是为了纪念德国工程师 Ernst Heinrich Wilhelm Schmidt (1892-1975)。)