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



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

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

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



  • 泊松方程如果给定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,因此不需要满足附加条件。



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



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



  • @金石为开 adjustPhi.H



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



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

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



  • @jzheng
    赞,火眼金睛:sunglasses:



  • @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应该也能得到线性代数问题的解。只是这个解不对。


登录后回复
 

与 CFD 中国 的连接断开,我们正在尝试重连,请耐心等待