CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    怎么把一个标量写成一个标量场

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

      OpenFOAM怎么可以把一个标量写成一个标量场啊?

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

        volScalarField tauc_
        (
            IOobject
            (
                "tauc",
                mesh_.time().timeName(),
                mesh_,
                IOobject::NO_READ,
                IOobject::AUTO_WRITE
            ),
            mesh_,
            dimensionedScalar(dimTime, 1.0)
        ),
        
        

        线上CFD课程开始报名:http://www.dyfluid.com/class.html

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

        E 1 条回复 最后回复 回复 引用
        • win
          win 最后由 编辑

          谢谢教授

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

            @李东岳 老师,请问如果一个场量要与一个标量比较大小,该如何比较?

            if (this->nut() / this->transport_.nu() <  scalar(0.2))
            
            C 1 条回复 最后回复 回复 引用
            • C
              cresendo @Exthan 最后由 编辑

              @exthan 你这样将一个场除以一个场,得到的是一个新的场,是没有办法和一个标量比较的:papa:

              E 1 条回复 最后回复 回复 引用
              • E
                Exthan @cresendo 最后由 编辑

                @cresendo 是的,如何让场量里的对应值相除呢,就是取场量每个位置的值进行相除运算呢?

                 forAll(Prt_,celli){
                    if (this->nut()(celli)/ this->transport_.nu()(celli) <  scalar(0.2))
                    ...
                

                错误信息是个temp
                5648a781-2fa8-4aed-aa1e-4a03e2f23d3a-image.png.
                应该如何修改 才能进行比较?

                E 2 条回复 最后回复 回复 引用
                • E
                  Exthan @Exthan 最后由 编辑

                  @李东岳 老师,求指导

                  1 条回复 最后回复 回复 引用
                  • E
                    Exthan @Exthan 最后由 编辑

                    @exthan
                    50755b19-d8c9-4156-9489-a30c6d726e82-image.png

                    C 1 条回复 最后回复 回复 引用
                    • C
                      cresendo @Exthan 最后由 编辑

                      @exthan 尝试一下

                      this->nut()()[facei]
                      
                      E 1 条回复 最后回复 回复 引用
                      • E
                        Exthan @cresendo 最后由 编辑

                        @cresendo 是的,这部分修改已经完成了。将湍流普朗特数从标量改为场量之后,湍流模型调用好像并没有用这个新的湍流普朗特数?请问还需要修改其他地方吗?

                        C 1 条回复 最后回复 回复 引用
                        • C
                          cresendo @Exthan 最后由 编辑

                          @exthan 所以之前就是这边语法的问题,对吗?关于湍流普朗特数,本人不是太了解,可能没法给出有效的建议:135:

                          E 1 条回复 最后回复 回复 引用
                          • E
                            Exthan @cresendo 最后由 编辑

                            @cresendo 是的,之前调用值不正确?

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

                              @exthan 在 怎么把一个标量写成一个标量场 中说:

                              将湍流普朗特数从标量改为场量之后,湍流模型调用好像并没有用这个新的湍流普朗特数?请问还需要修改其他地方吗?

                              怎么看出来的

                              线上CFD课程开始报名:http://www.dyfluid.com/class.html

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

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

                                @李东岳 输出的最大最小Prt均为同一个值,并没有变化。存在情况1:新prt模型失效;2:流场刚好都在一个判断条件下。所以如何将Prt以一个文件形式输出?
                                39cbd356-81c5-4418-a033-4fe65e40a759-image.png
                                在solver里面加入可以输出吗?

                                Prt = tranport.Prt();
                                
                                1 条回复 最后回复 回复 引用
                                • First post
                                  Last post