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中文网

  1. CFD中文网
  2. OpenFOAM
  3. 关于cyclic boundary condition

关于cyclic boundary condition

已定时 已固定 已锁定 已移动 OpenFOAM
11 帖子 4 发布者 11.3k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #2

    你用的六面体四面体?interFoam?库朗数多少?OpenFOAM哪个版本?

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    X 1 条回复 最后回复
  • X 离线
    X 离线
    xiaofenger
    在 中回复了 李东岳 最后由 编辑
    #3

    @李东岳 网格应该是长方体,interfoam,CoMax=0.3, OF41

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #4

    2D?

    不清楚,你的算例很简单,不应该出现问题 :confused:

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    X 2 条回复 最后回复
  • X 离线
    X 离线
    xiaofenger
    在 中回复了 李东岳 最后由 编辑
    #5

    @李东岳 东岳你好,我今天又研究了一下,好像又正常了,不过还是想知道generally你对这个边界条件有什么comments没有?我觉得这个比较实际,分多情况下跟实际物理模型比较接近,但很多人说这个不好用不推荐

    1 条回复 最后回复
  • 余正东余 离线
    余正东余 离线
    余正东
    写于 最后由 李东岳 编辑
    #6

    能不能帮我看一下这个问题?谢谢~
    http://www.cfd-china.com/topic/1150/openfoam中cyclic周期性边界的问题

    1 条回复 最后回复
  • X 离线
    X 离线
    xiaofenger
    在 中回复了 李东岳 最后由 编辑
    #7

    @李东岳 东岳你好,还想接着问个关于cyclic边界条件的问题,我的计算域是一段管子水,中间封了一个空气泡,入口出口cyclic,壁面是有速度(动参照系),但是这样的话气泡不是应该相对静止吗?但是有发现气泡有非常明显的相对移动。

    如果使用普通的边界条件,入口速度=0,出口速度zeroGradient,就正常,气泡固定在几乎同一个地方,想问一下这里的cyclic边界条件设置有什么技巧吗?

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #8

    我的计算域是一段管子水,中间封了一个空气泡,入口出口cyclic,壁面是有速度(动参照系),但是这样的话气泡不是应该相对静止吗?

    气泡不应该上浮么?

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    X 1 条回复 最后回复
  • X 离线
    X 离线
    xiaofenger
    在 中回复了 李东岳 最后由 编辑
    #9

    @李东岳 就是忽略重力,0.1毫米直径的毛细管,用的是interFoam,应该是没有相对位移的

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #10

    壁面是有速度(动参照系)

    这个怎么设置的?贴一下边界条件,和必要的dict

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • G 离线
    G 离线
    guoli
    写于 最后由 guoli 编辑
    #11

    关于cyclic boundary最近有一些发现,跟楼主和各位高手探讨一下,看看能否有所启发。

    本人的测试用例为大佬李东岳翻译的openfoam用户指南-9里面的顶盖驱动流,差别是左右边界设置为cyclic边界,设置方法为陈与论帖子(https://zhuanlan.zhihu.com/p/84137342 )前半段那个简单的方法,网格x和y两个方向各画了3个网格。openfoam版本用的是OpenFOAM-9.

    针对这个案例,在研究对流项的离散时,在gaussConvectionScheme.C中fvmDiv函数里发现,计算边界对矩阵A和源项的影响时,fvm.internalCoeffs()[patchi]和fvm.boundaryCoeffs()[patchi]的计算没有区分边界是否为coupled(),是否coupled()是通过调用不同类型的valueInternalCoeffs(pw)和valueBoundaryCoeffs(pw)实现的。通过valueInternalCoeffs(pw)和valueBoundaryCoeffs(pw)的返回值我们可以看到,对于cyclic的两个边界,这俩函数在coupledFvPatchField.C中计算,分别返回了

    Type(pTraits<Type>::one)*w;
    Type(pTraits<Type>::one)*(1.0 - w);
    

    由于

    fvm.internalCoeffs()[patchi] = patchFlux*psf.valueInternalCoeffs(pw); 
    fvm.boundaryCoeffs()[patchi] = -patchFlux*psf.valueBoundaryCoeffs(pw);
    

    结合phi_f = A*phi_c+B(https://zhuanlan.zhihu.com/p/609043262 )的理论,相当于在cyclic边界上fvm计算面心的值时,只用到了边界单元的体心值phi_c,而没有用到周期边界另一头的单元值。分析其原因,这可能是由于openfoam矩阵存储方式的限制不得已而为之,因为非对角元是由lduAddressing来定位的,对于本案例而言,非对角上的非零元个数与内部面数目相同,为12个,如果在cyclic边界上计算面心的值时用到两个体心的值,则会新增一个非零元(相当于这个面变成了内部面),那么就出现了13个内部面,没办法在当前体系下存储。openfoam在处理周期边界fvm对流项的离散时相当于有一个窟窿。

    那么,既然没有用到cyclic另一头的单元,OpenFOAM怎么实现周期边界的呢。在surfaceInterpolationScheme.C:287可以发现,在fvc类型计算插值时,对于coupled()的情况进行了分别处理,用到了patchNeighbourField(),相当于在计算通量时补上了前面的窟窿。但是感觉影响应该还是会有,因此我建议楼主考察一下,遇到的问题是否与openfoam这个窟窿有关。

    最后,想跟大家探讨一下,假如想补上这个窟窿,有没有什么办法能够存储由于周期边界带来的矩阵中多的这个非零元素?这个问题非常关键,一是可以解决周期边界现有的问题,二是有可能解除当前openfoam面心插值时只有owner和neighbour两个体心值可用的限制。以上是个人的一些粗浅理解,希望大佬们指正!

    1 条回复 最后回复

  • 登录

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