rhoCentralFoam版本更替的交流



  • 最近使用文本比较工具对比了openfoam v2和v6两个版本的rhoCentralFoam.C代码,发现了两个明显的区别,不太理解。

      1. “=”变为了“==”。C++语法里面说=表示幅值,==表示判断,但是这里会不会有问题?
    v2版本是:
    rhoU.boundaryField() = rho.boundaryField()*U.boundaryField();  
    v6版本是:
    rhoU.boundaryFieldRef() == rho.boundaryField()*U.boundaryField();
    
      1. v6版本中少了下面的两项。
    + fvc::laplacian(turbulence->alpha(), e)
    - fvc::laplacian(k, T)
    

    具体的比较贴出如下:
    e1fbac45-3df2-4564-8581-bfa9c59b7c8e-image.png

    e675ecbc-744f-42b4-ab56-ac1b2e3c37d3-image.png



  • 因为在v4之后,

    boundaryField
    

    返回的是const,你不能直接assign value。所以定义了

    boundaryFieldRef
    
    

    它返回non-const object



  • @sibo :ok: 厉害厉害,第一个问题理解啦


 

Forest
Mountains