BeatNBBZ 发表于 2010-5-13 14:17:02

想不通一个openfoam的运算

fvScalarMatrix pEqn
                (
                  fvm::laplacian(rUA, p) == fvc::div(phi)
                );

                pEqn.setReference(pRefCell, pRefValue);
                pEqn.solve();

这里p是体积场,而phi是表面场, fvm::laplacian(rUA, p) == fvc::div(phi)为什么能运算的?难道体积场和表面场能混用吗

[ 本帖最后由 BeatNBBZ 于 2010-5-13 10:12 编辑 ]

liuhuafeifei 发表于 2010-5-17 09:09:53

原帖由 BeatNBBZ 于 2010-5-13 06:17 发表 http://www.cfluid.com/bbs/images/common/back.gif
fvScalarMatrix pEqn
                (
                  fvm::laplacian(rUA, p) == fvc::div(phi)
                );

                pEqn.setReference(pRefCell, pRefValue);
                pEqn ...

fvc::div(phi)的结果就是体积场,fvc::div(phi)的结果作为源项加入到系数矩阵中。


这是div的函数部分
template<class Type>
tmp<GeometricField<Type, fvPatchField, volMesh> >
div
(
    const GeometricField<Type, fvPatchField, surfaceMesh>& ssf
)
{
    return tmp<GeometricField<Type, fvPatchField, volMesh> >
    (
      new GeometricField<Type, fvPatchField, volMesh>
      (
            "div("+ssf.name()+')',
            fvc::surfaceIntegrate(ssf)
      )
    );
}
页: [1]
查看完整版本: 想不通一个openfoam的运算