我实现了二维稳态热方程的求解器(没有热量产生和均质材料),使用有限体积法,但是,我对通量方向和面法线有些困惑。
首先,使用散度定理(应用于网格元素):
其中是垂直于的向外指向单位向量。并且该方程可以进一步离散化为(使用具有单个积分点的高斯求积):
我的 Python 求解器导入一个简单的笛卡尔 (100 x 100 x 1) OpenFOAM 网格(边界、点、面、所有者和邻居),将离散方程应用于每个单元并生成稀疏系数矩阵使得。
最初,我得到了错误的结果,因为我发现我正在执行以下操作:
每个内部单元格有四个相邻的单元格(:北,:南,:东,:西)
- 当通过假设和任意相邻细胞 )之间线性变化时:
第一个错误:我对所有相邻的单元格都使用了这个公式,这对于东面和北面的单元格都是正确的,但是在评估西面和南面时,它应该是。
第一个问题:我认为减法的顺序无关紧要,因为它会被通量方向校正(下一个问题)。那么为什么减法的顺序很重要呢?
- 导入所有者-邻居 OpenFOAM 网格关系后,我假设通量始终是从所有者到邻居的方向,因此基本上指向单元外,而对于相邻面,n 基本上是指向内部。
第二个错误:这也导致了错误的系数矩阵,当我纠正为始终指向单元面外时,一切正常。
第二个问题: 我应该总是让面法线指向元素之外吗?如果,那么假设通量总是离开细胞,这在物理上是正确的吗?(以及为什么首先要有业主邻居关系)。
抱歉,这个问题很长,但我认为通过提供我的完整方法,我的困惑对读者来说会很清楚。