Scheme字典中各离散项指定与定位的问题



  • 最近在看扩散项的离散格式代码,看不太懂的表现是,理论和代码联系不上,有一些疑问整理如下:

    代码位置:

    /home/dong/OpenFOAM/OpenFOAM-v1606+/src/finiteVolume/finiteVolume
    
    1. 由于拉普拉斯项的关键词为 “Gauss + 插值格式 + 面向量格式”,对于面向量非正交修正项,在代码中我只看到了minimum correction approach,如下
    const surfaceVectorField SfGammaCorr(SfGamma - SfGammaSn*Sn);
    

    请问,其他两种方法,尤其是在计算中表现出优良性质的over-relax approach为什么没有呢?

    1. 对于snGradSchemes离散方法的指定,在GUIDE内给出了三个值,即0.333,0.5,1,我试过其他数也可以算。我的问题是,这个值对应理论中是哪个数呢?这个值在代码中具体位置在哪?它代表了什么意义?

    2. 回到拉普拉斯离散代码中,具体一些细节不明白指的是什么,比如:

    const GeometricField<Type, fvPatchField, volMesh>& **vf**
    const surfaceScalarField& **deltaCoeffs**
    

    再比如,对于拉普拉斯项fvm返回的fvMatrix格式的矩阵,只定义了对角和上三角项,请问这个矩阵一定就是对称矩阵么?

    fvm.upper() = deltaCoeffs.internalField()*gammaMagSf.internalField();
    fvm.negSumDiag();
    

    谢谢大家的关注与解答。



  • 对于snGradSchemes离散方法的指定,在GUIDE内给出了三个值,即0.333,0.5,1,我试过其他数也可以算。我的问题是,这个值对应理论中是哪个数呢?这个值在代码中具体位置在哪?它代表了什么意义?

    修正不修正只和精准度有关,snGradSchemes设定的是附加的非矩形修正。数值表示的是修正的大小或者强度,从0-1都可以,所以什么数值都可以算。0.333是一个温柔的开始。。。如果非正交比较狠,可以增加数值。



  • @cfd-china 谢谢回复,我研究了源码已经搞懂了,顺便附上我总结的链接laplacian项离散解码


登录后回复
 

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