Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

王

王大力

@王大力
关于
帖子
4
主题
1
群组
0
粉丝
0
关注
0

帖子

最新

  • 利用wsl2在非系统盘中安装Ubuntu20.04并安装图形界面和配置OpenFOAM
    王 王大力

    @hurricane007 这样做的确可以用。相当于使用linux的命令行,windows的UI。


  • reconstructPar合并问题
    王 王大力

    @Yu_Tian 在 reconstructPar合并问题 中说:

    reconstructParMesh

    我也遇到过这个问题,用 reconstructParMesh -constant 就解决了。


  • 求一篇关于 VOF 方法 MULES 的文章
    王 王大力

    An extended mixture model for the simultaneous treatment of short and long scale interfaces, 2013.

    这篇文章里有一些interFoam的实施细节。


  • fvc::reconstruct()操作
    王 王大力

    在开发算法时,发现interFoam的速度方程中用了fvc::reconstruct()。这个函数输入的是面心值,输出的是体心值。
    打开fvcReconstruct.C, 重要的代码有两句,摘抄在这里:

    • surfaceVectorField SfHat( mesh.Sf()/mesh.magSf() );

    • inv(surfaceSum( SfHat*mesh.Sf() ))&surfaceSum( SfHat*ssf );
      SfHat是网格面的单位法向量,SfHat*mesh.Sf()是每个网格面的面积大小,等价于mesh.magSf()。那么,surfaceSum( SfHat*mesh.Sf() )就给出了每个网格单元的总表面积。
      令人费解的是这里为什么有个取逆矩阵的运算inv()。为了简洁,把式子这样写:

    • reconField = inv( surfaceSum1 ) & surfaceSum2

    也就是:

    • surfaceSum1 & reconField = surfaceSum2

    上式的变量都是场量,我们可以以一个网格单元为例,更好理解。假设网格单元是四边形,面的面积分别为S0, S1, S2, S3,对应的值分别为F1, F2, F3, F4。那么有,

    • (S1+S2+S3+S4)*volValue = S1*F1+S2*F2+S3*F3+S4*F4

    到这里就很明显了,fvc::reconstruct()的想法是通过对面心值加权平均,得到体心值。据说这样做可以让非结构网格上的计算更稳定,为什么呢?是不是结构网格就不需要加这个语句呢?
    欢迎大家指正、讨论。

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]