• 最新
  • 版块
  • 热门
  • 东岳流体
皮肤
  • 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中文网

adjustPhi的作用是检查边界条件?

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

    从代码看这个函数只修正了边界上的流量,没有碰内部场,这样有什么意义吗?就是为了强制边界上总的通量是守恒的?

    它好像还起到检查边界条件的作用,感觉主要目的是这个?就是检查这个算例有没有可能最终达到边界上通量的守恒。

    它不检查存在给定压力边界(p.needReference()为false)的算例,是默认这种算例能最终达到边界通量的守恒?

    Blog: http://blog.sina.com.cn/multiphyzks
    RG:https://www.researchgate.net/profile/Yan_Wang154

    1 条回复 最后回复
  • C 离线
    C 离线
    CFD中文网
    写于 最后由 李东岳 编辑
    #2

    泊松方程如果给定Neumann边界条件,需要给定一个附加条件。在NS方程中,这个附加条件就是就是要保证速度边界条件是守恒的。

    例如:我们有1D压力方程:
    \begin{equation}
    \frac{\partial }{\partial x} \frac{\partial p}{\partial x}=k
    \end{equation}
    其解为:
    \begin{equation}
    p=\frac{1}{2}kx^2+C_1 x+C_2
    \end{equation}
    如果给定Neumann条件,$p'(0)=\alpha$,$p'(1)=\beta$
    带入后我们有:
    \begin{equation}
    C_1=\alpha, C_1=\beta-k
    \end{equation}
    这个就是附加条件,在此情况下,$C_2$无解,因此在压力均为Neumann边界条件的时候,需要设定参考压力,并且满足公式3. 公式3在NS方程中即为adjustphi()的目的。

    从代码看这个函数只修正了边界上的流量,没有碰内部场,这样有什么意义吗?就是为了强制边界上总的通量是守恒的

    修正边界条件确保压力泊松方程有解。

    它不检查存在给定压力边界(p.needReference()为false)的算例,是默认这种算例能最终达到边界通量的守恒?

    如果存在Dirichlet边界条件,则p.needReference()为false,因此不需要满足附加条件。

    CFD中国标准用户测试帐号
    目前由徐笑笑登录

    金石为开金 J 程 3 条回复 最后回复
  • 金石为开金 离线
    金石为开金 离线
    金石为开
    写于 最后由 编辑
    #3

    请问一下adjustPhi源代码在哪个文件里面呢?我想看看找找~谢谢

    1 条回复 最后回复
  • 金石为开金 离线
    金石为开金 离线
    金石为开
    replied to CFD中文网 on 最后由 编辑
    #4

    @cfd-china 请问一下adjustPhi源代码在哪个文件里面呢?我想看看找找~谢谢

    WayneW 1 条回复 最后回复
  • WayneW 离线
    WayneW 离线
    Wayne
    replied to 金石为开 on 最后由 编辑
    #5

    @金石为开 adjustPhi.H

    Blog: http://blog.sina.com.cn/multiphyzks
    RG:https://www.researchgate.net/profile/Yan_Wang154

    金石为开金 1 条回复 最后回复
  • 金石为开金 离线
    金石为开金 离线
    金石为开
    replied to Wayne on 最后由 编辑
    #6

    @Wayne 知道了谢谢,我还以为是某个代码里面adjustPhi是某个函数呢,所以才这么问。。。我不该偷懒的。。。

    1 条回复 最后回复
  • J 离线
    J 离线
    jzheng
    replied to CFD中文网 on 最后由 jzheng 编辑
    #7

    @cfd-china 楼主给定的两个Neumann条件是不是有笔误,应该是
    \begin{equation}
    p'(0)=\alpha, p'(1)=\beta
    \end{equation}

    如果给定, $p(0)=\alpha$, $p(1)=\beta$,就是Dirichlet边界条件了

    C 1 条回复 最后回复
  • C 离线
    C 离线
    CFD中文网
    replied to jzheng on 最后由 编辑
    #8

    @jzheng
    赞,火眼金睛:sunglasses:

    CFD中国标准用户测试帐号
    目前由徐笑笑登录

    1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    replied to CFD中文网 on 最后由 编辑
    #9

    @cfd-china
    我觉得你这个问题解释得有问题。

    pRef是解决双Neumann条件无法确定$C_2$的问题
    而adjustPhi解决的是$C_1=\alpha=k-\beta$的问题,因为$\alpha+\beta=k$,所以两个Neumann条件不独立,并不是任意设置$\alpha$和$\beta$都能得到解的。这个关系数学上叫相容性关系。

    参考http://cfd-china.com/topic/501/%E5%85%B3%E4%BA%8Ecorrectphi-h%E8%BF%99%E4%B8%AA%E5%87%BD%E6%95%B0/9

    p.s. 其实不调用adjustPhi应该也能得到线性代数问题的解。只是这个解不对。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    1 条回复 最后回复

CFD中文网2016-2023 | 京ICP备15017992号-2

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 热门
  • 东岳流体
  • 登录

  • 登录或注册以进行搜索。