怎么编写法向二阶梯度为0的边界条件



  • 在计算中需要用到连续性边界条件,即法向二阶梯度为0。在常用的边界条件中能看到gradientInternalCoeffs()和gradientBoundaryCoeffs(),应该能够通过将这个一阶梯度变为二阶梯度来实现这个边界条件,但是不知道这个函数在哪定义?或者有没有其他的实现这个边界的方法?谢谢


  • 网格教授 OpenFOAM教授 管理员

    法向二阶梯度为0

    这不就是法向一阶梯度为固定值么?试试fixedGradient边界条件?已经有了。



  • @李东岳 并不是一阶为固定值啊,因为在每个网格上是定梯度,但是在整个边界上并不是所有网格都是相同的梯度。


  • 网格教授 OpenFOAM教授 管理员

    嗯,好像是。好吧,我们缕一缕。

    考虑下面这个方程:
    \begin{equation}
    \frac{\rd}{\rd x}\left(\frac{\rd T}{\rd x}\right)=0
    \end{equation}
    离散后有:
    \begin{equation}
    \left(A\frac{\rd T}{\rd x}\right)_e-\left(A\frac{\rd T}{\rd x}\right)_p=0
    \end{equation}
    考虑边界点$p$,如果是fixedGradient,那么就是
    \begin{equation}
    \left(A\frac{\rd T}{\rd x}\right)_p=A*\mathrm{someValue}
    \end{equation}
    如果是二阶fixedGradient,那么就是
    \begin{equation}
    \left(A\frac{\rd T}{\rd x}\right)_p=A*\mathrm{someValueSec}
    \end{equation}
    其中$\mathrm{someValue}$ (fixedValue)在所有边界面初都一样,$\mathrm{someValueSec}$在每个边界面上都不一样,是这样的吧?



  • @李东岳 根据方程来看,是这样的。从物理上可以认为是一个内边界。



  • @李东岳 您认为如果在边界周围将网格密度增大,然后使用zeroGradient边界条件能近似看成连续性边界吗?


  • 网格教授 OpenFOAM教授 管理员

    在每个网格上是定梯度

    你可以试试修改fixedGradient边界条件,这里面有一个gradient_成员,默认是均一的需要用户给定,按照你的定义,好像是应该把这个成员设置为和网格边界毗连网格单元的定梯度。