《icoFoam解析》中压力修正的代码问题



  • 请教各位大神个问题,在《icoFoam解析》中求第一次修正压力场pr的公式是~~~~
    0_1460585812668_upload-8c420251-9d6f-4774-bf54-65666c8b960a

    但是,在pEqn的代码是
    0_1460585883662_upload-7c158693-0e6e-4365-8af1-76759d27e3fe

    我的问题是,把fvc::div(phiHbyA)代码还原成公式的话是∇∙(phiHbyA),它是怎么和修正公式里面的∇∙(HbyA)对应上的呢?



  • @jzheng 说:

    ∇∙(phiHbyA)

    Hi,

    HbyA是矢量,phiHbyA是面标量。fvc::div(phiHbyA)表示的就是$\nabla \cdot HbyA$。再比如fvc::div(phi)就是$\nabla \cdot U$。这个div被操作符重载了。


  • 版主

    竟然和我有一样的疑惑,当时这里一直不理解,现在还是不太理解。东岳兄那个乱码了,可以改改。



  • @李东岳 明白了,谢谢东岳兄,厉害



  • 补充一下。

    公式乱码刷新一下就行。

    fvc::div代码如下:

    template<class Type>
    tmp<GeometricField<Type, fvPatchField, volMesh> >
    div
    (
        const GeometricField<Type, fvsPatchField, surfaceMesh>& ssf
    )
    {
        return tmp<GeometricField<Type, fvPatchField, volMesh> >
        (
            new GeometricField<Type, fvPatchField, volMesh>
            (
                "div("+ssf.name()+')',
                fvc::surfaceIntegrate(ssf)
            )
        );
    }
    
    

    fvc::div(phiHbyA) 就是对单元体表面的phiHbyA进行求和。这个依据高斯定理,相当于对 ∇∙(HbyA) 在单元体上进行积分。

    所以这个问题的关键是,divlaplacian等操作符是对
    \begin{equation}
    \nabla \cdot (HbyA^r) = \nabla \cdot(\frac{1}{A_{\mathrm{p},f}} \nabla p^r)
    \end{equation}
    这个半离散方程进行进一步的离散,即积分。



  • 另外,
    参考
    fvc::div(u)=fvc::div(phi)

    对应的代码如下:

    template<class Type>
    tmp
    <
        GeometricField
        <typename innerProduct<vector, Type>::type, fvPatchField, volMesh>
    >
    gaussDivScheme<Type>::fvcDiv
    (
        const GeometricField<Type, fvPatchField, volMesh>& vf
    )
    {
        tmp
        <
            GeometricField
            <typename innerProduct<vector, Type>::type, fvPatchField, volMesh>
        > tDiv
        (
            fvc::surfaceIntegrate
            (
                this->mesh_.Sf() & this->tinterpScheme_().interpolate(vf)
            )
        );
    
        tDiv().rename("div(" + vf.name() + ')');
    
        return tDiv;
    }
    

    div(U)的计算方法也是先插值到单元体表面上,然后进行求和。



  • @Wayne

    Updated. 非常感谢。


登录后回复
 

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