CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    yPlus在openfoam代码里面的实现

    OpenFOAM
    7
    44
    7537
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • C
      Calf.Z-DNS 最后由 编辑

      大家好,

      我想在openfoam里面植入y+的公式。
      我看到在nutLowReWallFunciton.C里面有关于yPlus的定义:

      tmp<scalarField> nutLowReWallFunctionFvPatchScalarField::yPlus() const
      {
          const label patchi = patch().index();
          const turbulenceModel& turbModel = db().lookupObject<turbulenceModel>
          (
              IOobject::groupName
              (
                  turbulenceModel::propertiesName,
                  internalField().group()
              )
          );
          const scalarField& y = turbModel.y()[patchi];
          const tmp<scalarField> tnuw = turbModel.nu(patchi);
          const scalarField& nuw = tnuw();
          const fvPatchVectorField& Uw = turbModel.U().boundaryField()[patchi];
      
          return y*sqrt(nuw*mag(Uw.snGrad()))/nuw;
      }
      

      我目前在改湍流模型,里面需要用到yPlus,所以就想着引用这里面yPlus()的定义到自己的代码里,但编译一直会报错。
      不知道正确的操作应该是怎么样的?谢谢。

      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

        这个思路是正确的。你这段代码来自在类里面,你在程序里面做的时候,需要把必要的成员都定义一下。比如

        const turbulenceModel& turbModel = db().lookupObject<turbulenceModel>
            (
                IOobject::groupName
                (
                    turbulenceModel::propertiesName,
                    internalField().group()
                )
            );
        

        里面的turbulenceModel就需要定义一下,加点代码。以此类推。

        CFD高性能服务器 http://dyfluid.com/servers.html

        C 1 条回复 最后回复 回复 引用
        • C
          Calf.Z-DNS @李东岳 最后由 编辑

          @东岳 老师您可以再提示下吗?
          错误里面汇总就是:

          there are no arguments to ‘patch’ that depend on a template parameter, so a declaration of ‘patch’ 或‘internalField’或‘db’ must be available
          

          不好意思代码功底有点差:zoule:

          1 条回复 最后回复 回复 引用
          • 李东岳
            李东岳 管理员 最后由 编辑

            there are no arguments to ‘patch’ that depend on a template parameter, so a declaration of ‘patch’ 或‘internalField’或‘db’ must be available
            

            错误提示patch没有生命,你需要声明一下。你需要系统学一下。一时半会估计整不出来

            我想在openfoam里面植入y+的公式。

            你直接计算yPlus不就可以了?

            postProcess -func yPlus
            

            CFD高性能服务器 http://dyfluid.com/servers.html

            C 1 条回复 最后回复 回复 引用
            • C
              Calf.Z-DNS @李东岳 最后由 编辑

              @东岳 我想在湍流模型中植入fMu,公式是:
              FMU.png
              里面有y+,所以想引用yPlus
              用后处理工具算出来的y+是定值吧,直接简化成定值带进去吗?

              1 条回复 最后回复 回复 引用
              • 李东岳
                李东岳 管理员 最后由 编辑

                @Calf-Z-DNS 在 yPlus在openfoam代码里面的实现 中说:

                fMu

                这个是体场?

                CFD高性能服务器 http://dyfluid.com/servers.html

                C 1 条回复 最后回复 回复 引用
                • C
                  Calf.Z-DNS @李东岳 最后由 编辑

                  @东岳 是的,体标量场

                  1 条回复 最后回复 回复 引用
                  • 李东岳
                    李东岳 管理员 最后由 编辑

                    y+在体场的计算公式你那有么

                    CFD高性能服务器 http://dyfluid.com/servers.html

                    C 1 条回复 最后回复 回复 引用
                    • C
                      Calf.Z-DNS @李东岳 最后由 编辑

                      @东岳 代码里面公式在nutLowReWallFunciton.C的yPlus()体现
                      计算公式就是:y+.png

                      1 条回复 最后回复 回复 引用
                      • 李东岳
                        李东岳 管理员 最后由 编辑

                        $\tau_w$是壁面剪切力,只有在壁面才有值

                        CFD高性能服务器 http://dyfluid.com/servers.html

                        C 1 条回复 最后回复 回复 引用
                        • C
                          Calf.Z-DNS @李东岳 最后由 编辑

                          @东岳 那从一个壁面函数的代码里面引用yplus到湍流模型的代码里不知道怎么操作

                          李东岳 1 条回复 最后回复 回复 引用
                          • 李东岳
                            李东岳 管理员 @Calf.Z-DNS 最后由 编辑

                            @Calf-Z-DNS

                            那从一个壁面函数的代码里面引用yplus到湍流模型的代码里不知道怎么操作

                            代码倒不是问题。我觉得构成问题的,是如何在非壁面处求yPlus,目前我还没找到相应的公式,有公式就不难处理

                            不知道有没有人见到过如何在非壁面处求yPlus的数学公式?

                            CFD高性能服务器 http://dyfluid.com/servers.html

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

                              湍流模型中的yPlus一般是算wall边界网格高度的,你这种可能需要用 wallDistData 来计算,具体可以参考 vanDriestDelta 的源码。

                              C 1 条回复 最后回复 回复 引用
                              • C
                                Calf.Z-DNS @wwzhao 最后由 编辑

                                @wwzhao 谢谢!我看了vanDriestDelta.C,里面好像是计算yStar?不知道要怎么参考

                                W 1 条回复 最后回复 回复 引用
                                • W
                                  wwzhao 教授 @Calf.Z-DNS 最后由 编辑

                                  @Calf-Z-DNS

                                  van Driest 也是施加 damping function,跟你这个比较类似,van Driest damping function 的定义可以参考这里。

                                  1 条回复 最后回复 回复 引用
                                  • 李东岳
                                    李东岳 管理员 最后由 编辑

                                    最近算了几个验证壁面函书的LES,可能加van Driest会更准。有空把这个算立整理整理发上来

                                    捕获.JPG

                                    另外得知:

                                    @东岳 在 yPlus在openfoam代码里面的实现 中说:

                                    如何在非壁面处求yPlus的数学公式?

                                    自我回答,跟常规方法一样。程序里:

                                    #include "wallDist.H"
                                    
                                    int main()
                                    {
                                        volScalarField Dist(wallDist::New(mesh).y());
                                        dimensionedScalar uTau("uTau", dimVelocity, 1.003);
                                        volScalarField yPlus(Dist*uTau/turbulence->nu());
                                    }
                                    

                                    CFD高性能服务器 http://dyfluid.com/servers.html

                                    C 1 条回复 最后回复 回复 引用
                                    • C
                                      Calf.Z-DNS @李东岳 最后由 编辑

                                      @东岳 谢谢老师!这里面的uTau为何直接取1.003呢?不需要植入它的公式吗?

                                      1 条回复 最后回复 回复 引用
                                      • C
                                        Calf.Z-DNS 最后由 编辑

                                        如果要植入MK湍流模型的话,里面有一项47d6d46e-cba6-433f-89c2-6c135a81e936-图片.png
                                        其中y+我按照了东岳老师提供的方法,那就是如下图:
                                        42c137f7-26e2-4923-9c61-23be23c53c16-图片.png
                                        编译成功,但按这个湍流模型跑的结果不对。

                                        uTau为何设成1.003呢?如果要植入uTau的公式,那tauw这个如何得到呢?源代码里面相关的有tauw跟wallshearstress,但是不知道怎么引用。还望赐教。

                                        李东岳 1 条回复 最后回复 回复 引用
                                        • 李东岳
                                          李东岳 管理员 @Calf.Z-DNS 最后由 编辑

                                          @Calf-Z-DNS 我那个是我自己写哒,计算出来之后是1.0003,具体我有点忘了下周回办公室给你看看

                                          CFD高性能服务器 http://dyfluid.com/servers.html

                                          C 2 条回复 最后回复 回复 引用
                                          • C
                                            Calf.Z-DNS @李东岳 最后由 编辑

                                            @东岳 好的谢谢!

                                            1 条回复 最后回复 回复 引用
                                            • C
                                              Calf.Z-DNS @李东岳 最后由 编辑

                                              @东岳 老师 ,请问uTau不应该用公式植入吗?在沿管方向的壁面上,uTau应该是变化的吧。如果用初始值计算出来的uTau定值植入,我试了下,湍流模型没有达到自己预想的效果。

                                              李东岳 1 条回复 最后回复 回复 引用
                                              • 李东岳
                                                李东岳 管理员 @Calf.Z-DNS 最后由 编辑

                                                @Calf-Z-DNS 对,是用公式计算的,明天去办公室给你看看

                                                CFD高性能服务器 http://dyfluid.com/servers.html

                                                1 条回复 最后回复 回复 引用
                                                • 李东岳
                                                  李东岳 管理员 最后由 李东岳 编辑

                                                  $u_\tau=\sqrt{\nu_t \frac{\rd u}{\rd y}}$

                                                  我在几年前看过有人做管道流动的温度DNS,非常酷炫,一直在关注你的结果,有好结果了发上来炫一波啊

                                                  CFD高性能服务器 http://dyfluid.com/servers.html

                                                  C vbcwl 2 条回复 最后回复 回复 引用
                                                  • C
                                                    Calf.Z-DNS @李东岳 最后由 编辑

                                                    @东岳 谢谢老师。uTau的公式我知道,但不用把这个公式植入代码里面吗?如果需要的话,有点不太清楚怎么写入代码,还望赐教。
                                                    DNS圆管的算例目前还在算呢,所需要的资源太大了,算比较慢。

                                                    李东岳 S 2 条回复 最后回复 回复 引用
                                                    • 李东岳
                                                      李东岳 管理员 @Calf.Z-DNS 最后由 编辑

                                                      @Calf-Z-DNS

                                                      forAll(xxx, patchi)
                                                      {
                                                          utau.boundaryFieldRef()[patchi] = 
                                                              sqrt(nut.boundaryField()[patchi]*u.boundaryField()[patchi].snGrad());
                                                      }
                                                      

                                                      CFD高性能服务器 http://dyfluid.com/servers.html

                                                      F 1 条回复 最后回复 回复 引用
                                                      • 李东岳
                                                        李东岳 管理员 最后由 编辑

                                                        我之前见过一个视频,DNS模拟这种平板之间的浮力驱动流,最终里面的流体呈现这种弯曲的流线,这叫什么现象?最近打算复现一下这个东西

                                                        捕获.JPG

                                                        CFD高性能服务器 http://dyfluid.com/servers.html

                                                        李东岳 1 条回复 最后回复 回复 引用
                                                        • 李东岳
                                                          李东岳 管理员 @李东岳 最后由 编辑

                                                          @东岳 https://arxiv.org/pdf/1904.11400.pdf

                                                          CFD高性能服务器 http://dyfluid.com/servers.html

                                                          1 条回复 最后回复 回复 引用
                                                          • C
                                                            Calf.Z-DNS 最后由 编辑

                                                            我做的压力驱动流,也是两个平板间的channel flow,上下有温差,但不考虑浮力。瞬时温度场长这样:
                                                            a6d9271b-0225-473d-9fa9-3d2938ba4216-图片.png

                                                            1 条回复 最后回复 回复 引用
                                                            • 李东岳
                                                              李东岳 管理员 最后由 编辑

                                                              你这个有弯曲的形状出来么?

                                                              本来打算这次OKS准备下这个模拟时间不够了,下次OKS准备一下,https://arxiv.org/pdf/1904.11400.pdf 主要是这个工况里面的流动感觉很有意思

                                                              CFD高性能服务器 http://dyfluid.com/servers.html

                                                              1 条回复 最后回复 回复 引用
                                                              • C
                                                                Calf.Z-DNS 最后由 编辑

                                                                没有具体看流线,但我觉得应该是弯曲的,不过不清楚是否是规律弯曲的。

                                                                1 条回复 最后回复 回复 引用
                                                                • F
                                                                  fangyuanaza @李东岳 最后由 编辑

                                                                  @李东岳 请教下李老师~对于这里计算uTau,我用dimensionedScalar 是可以运算的,但是用这块代码计算uTau会报错,可能理解不太对。对于forAll中的×××,认为是uTau, 在这之前,我先定义了uTau是一个体标量场,初始值给的0,您代码中的u.boundary中的u认为是U.component(0)(), 这样代码能编译成功,但是运行几步会报错,请老师指教一下,万分感激(Ps 我在湍流模型里面实现这几个量,离壁面距离已经给出了,就是y_):

                                                                      volScalarField u(U.component(0)());
                                                                      volScalarField uTau(0*sqrt(k_));
                                                                      //dimensionedScalar uTau("uTau", dimVelocity, 1.003);
                                                                      dimensionedScalar uTausmall(
                                                                         "0", dimensionSet(0, 1, -1, 0, 0, 0, 0), 1e-20
                                                                      );
                                                                      forAll(uTau,patchi)
                                                                      {
                                                                          uTau.boundaryFieldRef()[patchi] = sqrt(nut.boundaryField()[patchi]*u.boundaryField()[patchi].snGrad());
                                                                      }
                                                                      uadd_ = u/(uTau + uTausmall);
                                                                      yadd_ = y_*uTau/((this->mu()/this->rho_));
                                                                  

                                                                  运行报错为:

                                                                  #0  Foam::error::printStack(Foam::Ostream&) at ??:?
                                                                  #1  Foam::sigFpe::sigHandler(int) at ??:?
                                                                  #2  ? in "/lib/x86_64-linux-gnu/libc.so.6"
                                                                  #3  Foam::sqrt(Foam::Field<double>&, Foam::UList<double> const&) at ??:?
                                                                  #4  Foam::sqrt(Foam::tmp<Foam::Field<double> > const&) at ??:?
                                                                  #5  Foam::RASModels::kOmegaSSTyuPlus<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:?
                                                                  #6  ? in "/home/dyfluid/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/bin/rhoSimpleFoam"
                                                                  #7  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
                                                                  #8  ? in "/home/dyfluid/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/bin/rhoSimpleFoam"
                                                                  Floating point exception (core dumped)
                                                                  

                                                                  说是这个里面的sqrt传入变量不对?

                                                                  X 1 条回复 最后回复 回复 引用
                                                                  • X
                                                                    xpqiu 教授 @fangyuanaza 最后由 编辑

                                                                    @fangyuanaza 在 yPlus在openfoam代码里面的实现 中说:

                                                                    u.boundaryField()[patchi].snGrad()

                                                                    u.boundaryField()[patchi].snGrad()
                                                                    

                                                                    加上 mag 试试,也就是改成

                                                                    mag(u.boundaryField()[patchi].snGrad())
                                                                    
                                                                    F 1 条回复 最后回复 回复 引用
                                                                    • F
                                                                      fangyuanaza @xpqiu 最后由 编辑

                                                                      @xpqiu 谢谢老师~按您这样修改以后,确实没有sqrt的错误了,但是还有错误没有解决:

                                                                      #0  Foam::error::printStack(Foam::Ostream&) at ??:?
                                                                      #1  Foam::sigSegv::sigHandler(int) at ??:?
                                                                      #2  ? in "/lib/x86_64-linux-gnu/libc.so.6"
                                                                      #3  Foam::RASModels::kOmegaSSTyuPlus<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::CompressibleTurbulenceModel<Foam::fluidThermo> > > >::correct() at ??:?
                                                                      #4  ? in "/home/dyfluid/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/bin/rhoSimpleFoam"
                                                                      #5  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
                                                                      #6  ? in "/home/dyfluid/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/bin/rhoSimpleFoam"
                                                                      Segmentation fault (core dumped)
                                                                      

                                                                      #3应该是最关键的,但是学生不太理解的是编译的时候仅仅是在基本的kOmegaSST湍流模型修改的BasicTurbulencemodel,这里为什么会出现fluidThermo名称空间下的错误?

                                                                      X 1 条回复 最后回复 回复 引用
                                                                      • X
                                                                        xpqiu 教授 @fangyuanaza 最后由 编辑

                                                                        @fangyuanaza

                                                                            forAll(uTau,patchi)
                                                                        

                                                                        这里有问题,按照这样遍历,你其实遍历的是每一个体网格,假设你有1000个体网格,那么 patchi 的范围是0-999,但是你接下来的代码是把 patchi 当成边界的编号来用,肯定不行的。至于为什么出现 fluidThermo下面的报错,那个是因为湍流模型有着一个复杂的继承关系,可压缩的计算所使用的湍流模型就会用到 fluidThermo 类相关的东西。

                                                                        F 2 条回复 最后回复 回复 引用
                                                                        • F
                                                                          fangyuanaza @xpqiu 最后由 编辑

                                                                          @xpqiu 理解了,因此我应该取uTau的边界网格进行遍历

                                                                              forAll(uTau.boundaryFieldRef(),patchi)
                                                                          

                                                                          或者

                                                                              forAll(uTau.boundaryField(),patchi)
                                                                          

                                                                          可以运行成功!但是这里对这种编程思路不太理解:
                                                                          由李老师提供的公式来看,这里7758ee8d-b273-46f2-a6b7-1f9fb9197592-image.png
                                                                          uTau应该是一个体标量场,这个值应该在近壁面是较大的,因为速度梯度较大,也就是边界层内部值比较大。那么为什么仅给网格边界赋值呢?而且,壁面上nut为零。如果只对边界进行赋值的话,uTau在壁面也是零。我输出uTau对比过了,uTau模拟出来结果在远场上边界才有值,其余地方为零,这是因为壁面nut为零,而场内部初始话赋予的零为初始值。

                                                                          所以学生认为应该直接对整个网格场赋值。不知道理解对不对,请老师指点一下。

                                                                          1 条回复 最后回复 回复 引用
                                                                          • F
                                                                            fangyuanaza @xpqiu 最后由 编辑

                                                                            @xpqiu 请教老师,为什么不写成这样呢:

                                                                                forAll(uTau_, celli){
                                                                                    uTau_[celli] = sqrt(nut[celli] * mag(tgradU()[celli].yx()));
                                                                                }
                                                                                uadd_ = u/(uTau_ + uTausmall);
                                                                                yadd_ = y_*uTau_/((this->mu()/this->rho_));
                                                                            

                                                                            此处uTau定义为一个标量场。
                                                                            是学生对这个公式理解不对吗?

                                                                            X 1 条回复 最后回复 回复 引用
                                                                            • X
                                                                              xpqiu 教授 @fangyuanaza 最后由 编辑

                                                                              @fangyuanaza
                                                                              $u_{\tau}$ 应该是定义在壁面上的一个量,因为这个量跟壁面剪应力紧密关联,内部网格是没有壁面剪应力的。
                                                                              首先,壁面剪应力的定义为
                                                                              $$
                                                                              \tau_w = \nu\frac{\partial u}{\partial y}
                                                                              $$
                                                                              $\nu$ 是分子粘度。
                                                                              使用有限体积方法进行计算时,所有的计算都是离散的,因此
                                                                              $$
                                                                              \frac{\partial u}{\partial y} \approx \frac{u_{internal}-u_w}{\Delta y}
                                                                              $$
                                                                              $u_{internal}$ 表示第一层网格的速度,$u_w$ 是壁面速度,一般是0。
                                                                              如果壁面附近网格画得很密(yPlus < 1),那么 $\frac{\partial u}{\partial y}$ 与 $\frac{u_{internal} - u_w}{\Delta y}$ 足够接近,因此这种情况下,壁面剪应力可以用
                                                                              $$
                                                                              \tau_w = \nu \frac{u_{internal}-u_w}{\Delta y}
                                                                              $$

                                                                              但是如果壁面网格画得粗,那么 $\frac{\partial u}{\partial y}$ 与 $\frac{u_{internal} - u_w}{\Delta y}$ 之间的差异就会很大。 OpenFOAM 的做法是利用 $\nu_t$ 来修正分子粘度,从而使得
                                                                              $$
                                                                              \tau_w \approx (\nu+\nu_t) \frac{u_{internal}-u_w}{\Delta y}
                                                                              $$

                                                                              回过头来看,其实不管是近壁网格画得粗还是细,都可以用上一个公式来计算 $\tau_w$ ,只不过壁面网格很细( yPlus<1)时,可以认为 $\nu_t = 0$(但是 $\nu$ 不会等于0,所以壁面剪应力不可能为0,$u_{\tau}$ 也不可能为0)。而对于比较粗的网格,$\nu_t$ 比 $\nu$ 大得多,所以也可以认为 $(\nu_t + \nu) \approx \nu_t$,这应该也就是李老师写的公式的来源。

                                                                              F vbcwl 2 条回复 最后回复 回复 引用
                                                                              • F
                                                                                fangyuanaza @xpqiu 最后由 编辑

                                                                                @xpqiu 感谢老师这么详细的指导!我这个算例是二维平板流动的,第一层y+<1,在粘性底层,所以nut为零,应该用nu。所以其实我根本不需要编程计算uTau,因为它可以由壁面监测的壁面摩擦力除以密度然后开根号得到。因为对于u+, y+曲线图来说,uTau在壁面固定地方是固定的。我也对比了这两个值,在边界上编程用nu代替nut,壁面摩擦速度数值是2.5657. 而用监测的壁面摩擦力及密度计算的壁面摩擦速度值是2.5734. 非常接近。再次感谢老师的指导,也感觉到看书的时候认为理解的概念,实际操作发现其实根本没懂,还是要多实践啊。谢谢老师~

                                                                                1 条回复 最后回复 回复 引用
                                                                                • vbcwl
                                                                                  vbcwl @李东岳 最后由 编辑

                                                                                  @李东岳 东岳老师我在做和这个前辈类似的东西,请问您有他的论文或者算例文件可以给我学习下么?

                                                                                  LBE

                                                                                  1 条回复 最后回复 回复 引用
                                                                                  • vbcwl
                                                                                    vbcwl @xpqiu 最后由 编辑

                                                                                    @xpqiu 您好,请问下我想利用utau来对距壁面距离和流体速度做无量纲化的,utau=sqrt(nuu0/y0) u0是壁面上方第一个网格的速度,y0是writeCellCentre命令写出的第一个网格的中心坐标,然后由于yPlus小于1,直接用mu来求解壁面剪应力,yPlus=utauy/nu,这样子算出来的yPlus与postProcess写出的yPlus有较大差距是什么原因?

                                                                                    LBE

                                                                                    X 1 条回复 最后回复 回复 引用
                                                                                    • X
                                                                                      xpqiu 教授 @vbcwl 最后由 编辑

                                                                                      @vbcwl
                                                                                      请问你计算的时候,nut 的壁面边界条件设置的是什么?
                                                                                      postProcess 算出来的 yPlus 是调用 nut 的边界条件里面定义的 yPlus 函数算出来的。

                                                                                      vbcwl 1 条回复 最后回复 回复 引用
                                                                                      • vbcwl
                                                                                        vbcwl @xpqiu 最后由 编辑

                                                                                        @xpqiu 感谢前辈的回复,我用的laminar做qDNS,没有用到nut这些,只用到了p p_rgh U T。请问您了解过没有nut文件的情况么?

                                                                                        LBE

                                                                                        X 1 条回复 最后回复 回复 引用
                                                                                        • X
                                                                                          xpqiu 教授 @vbcwl 最后由 编辑

                                                                                          @vbcwl
                                                                                          哦,如果是这样的话,那只能通过你描述的
                                                                                          $$
                                                                                          y^+ = \frac{y u_\tau}{\nu}
                                                                                          $$
                                                                                          的方式来算 $y^+$ 了。postProcess 这种计算方式调用的是湍流模型的东西,适合用湍流模型的场景。

                                                                                          1 条回复 最后回复 回复 引用
                                                                                          • S
                                                                                            shiyu @Calf.Z-DNS 最后由 编辑

                                                                                            @Calf-Z-DNS 你好,看到你提的这个问题,请问你解决了吗?
                                                                                            我也想计算整个流动区域近壁面好几层网格的yPlus,而不是仅仅贴壁面的一层网格的yPlus,暂时我看到的wallShearStress和yPlus的计算都是贴壁面一层的值;
                                                                                            或者像东岳老师的示例代码那样直接给定了不变的uTau,而其实2维流动中,沿着流线方向uTau是变化的,所以我觉得比较复杂的是,怎么用某一壁面网格上的wallShearStress(或uTau)确定 对应法线方向上的多层网格yPlus,这个对应关系不知道如何寻找。
                                                                                            希望我表达清楚了,非常感谢!

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