CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    在openfoam对边界层的处理,为什么仅仅修正边界,而不是跟边界相邻的那一层网格?

    OpenFOAM
    4
    5
    3606
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Y
      yuan_neu 最后由 编辑

      比如说,对nut的边界问题,调用的是nutWallFunctionFvPatchScalarField.h

      
      void nutWallFunctionFvPatchScalarField::updateCoeffs()
      {
          if (updated())
          {
              return;
          }
      
          operator==(calcNut());
      
          fixedValueFvPatchScalarField::updateCoeffs();
      }
      

      其中
      operator==(calcNut());
      仅仅更新了fvPatch相对应的边界boundaryField,而不是跟边界相邻的那一层网格patchInternalField。 请问这样的处理是一种折衷吗?

      C W 2 条回复 最后回复 回复 引用
      • C
        CFD中文网 @yuan_neu 最后由 编辑

        @yuan_neu
        我觉得是更新对用壁面网格体心的值,对于固定值边界类型边界采用固定值边界。

        CFD中国标准用户测试帐号
        目前由徐笑笑登录

        1 条回复 最后回复 回复 引用
        • W
          wwzhao 教授 @yuan_neu 最后由 编辑

          @yuan_neu 由于不同湍流模型的nut计算方法不一样,因此OpenFOAM把对nut internalField的更新放在了各湍流模型的具体代码实现里面。

          可参考kOmegaSST模型的相关代码:
          src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C

          template<class TurbulenceModel, class BasicTurbulenceModel>
          void kOmegaSST<TurbulenceModel, BasicTurbulenceModel>::correctNut
          (
              const volScalarField& S2,
              const volScalarField& F2
          )
          {
              this->nut_ = a1_*k_/max(a1_*omega_, b1_*F2*sqrt(S2));
              this->nut_.correctBoundaryConditions();
              fv::options::New(this->mesh_).correct(this->nut_);
          
              BasicTurbulenceModel::correctNut();
          }
          

          计算完nut后再调用 this->nut_.correctBoundaryConditions() 更新边界条件。

          1 条回复 最后回复 回复 引用
          • H
            Him 最后由 Him 编辑

            不是折衷,是壁面的值不是由插值得出的。
            插值只是对内部场执行。你说的那个第一层网格上面的内部场里的面上的值,是插值得出的。
            边界值,是边界值。有的边界值的计算需要使用内部场的信息,有的是你自己定的。

            1 条回复 最后回复 回复 引用
            • W
              wwzhao 教授 最后由 编辑

              边界条件不直接修改patchInternalField,而是通过改变离散后的系数矩阵起作用。

              1 条回复 最后回复 回复 引用
              • First post
                Last post