Navigation

    CFD中文网

    CFD中文网

    • Login
    • Search
    • 最新

    如何提取张量的某一个值

    OpenFOAM
    2
    6
    876
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 小
      小考拉 last edited by

      各位前辈们好!

      我现在定义了一个张量 volTensorField S,现在想输出其中的 S.xx()这个分量的值,查看了一些前辈之前的讨论帖子:链接文本

      请问对于 类型为volTensorField的张量S怎样输出它的分量S.xx()呢?

      1 Reply Last reply Reply Quote
      • bestucan
        bestucan 版主 副教授 last edited by bestucan

        看源代码
        https://cpp.openfoam.org/v8/volFieldsFwd_8H_source.html
        这里62行有 volTensorField 的定义,和 GeometricField 有关

        https://cpp.openfoam.org/v8/GeometricField_8H_source.html
        这里是 GeometricField 的定义,80行有三个形式参数的名字,对着上一个链接 volTensorField 的定义搜,vol 作为特征词搜到的结果最少,在538行,看起来是你要的。如果不是这个,那就在这里搜 return,找成员函数。或者猛啃C++,接着挖
        :xiezuoye:

        滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

        异步沟通方式(《posting style》from wiki)(下载后打开):
        https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
        提问的智慧(github在gitee的镜像):
        https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md

        1 Reply Last reply Reply Quote
        • bestucan
          bestucan 版主 副教授 last edited by bestucan

          https://cfd-china.com/topic/4128/修改湍流模型-定义表达式的问题

          他这个帖子刚好用到那个internal那个函数。

          两个示例用法

          ./utilities/postProcessing/postProcess/postProcess.C:    ReadFields(volTensorField);
          ./utilities/postProcessing/postProcess/postProcess.C:    ReadFields(volTensorField::Internal);
          

          滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

          异步沟通方式(《posting style》from wiki)(下载后打开):
          https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
          提问的智慧(github在gitee的镜像):
          https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md

          小 1 Reply Last reply Reply Quote
          • 小
            小考拉 last edited by

            哇,感谢前辈回复,我仔细去学习一下

            1 Reply Last reply Reply Quote
            • 小
              小考拉 @bestucan last edited by

              @bestucan 前辈您好!很抱歉再次打扰您,针对您之前的回复,我认真研读了一下,但还是存在一些困难,还希望您能够指点一个思路,感激不尽!

              我现在在用非线性SGS模型,为了防止计算崩掉,就要限制SGS模型计算的Tij,可是Tij是一个类型为 volTensorField的张量,我现在无法提取出来这个Tij的每一个分量,进行限制。

              我刚刚简单试验了一下如下代码:

              const volSymmTensorField S = symm(gradU);    
              
              const volScalarField Z = S.zz();
              

              ,报错如下:

              DNM.C: In member function ‘Foam::dimensionedVector Foam::compressible::LESNonlinearModels::DCNM::C(const volTensorField&) const’:
              DNM.C:83:28: error: ‘const volSymmTensorField’ has no member named ‘zz’
               const volScalarField Z = S.zz();
              

              我目前的思路是参考tensor的定义成员xx xy xz的思路,将volTensorField中也定义一个xx xy xz等9个分量,,但不知道这样可行否,,同时由于这个原始的湍流模型代码比较老(是2.4版本的),我如何能快速找到tensor 和 volTensorField的定义和代码呢?

              希望前辈百忙之中再指点一下,谢谢!

              bestucan 1 Reply Last reply Reply Quote
              • bestucan
                bestucan 版主 副教授 @小考拉 last edited by

                @小考拉

                不忙不忙,就是不太懂:mihu:
                但是探索不懂的东西的方法都是相通的。你要解决的问题我没解决过,所以要解决花费的时间比较多。思路就是看代码。你也在看,但我们看的版本对不上,开源软件有个特点,太自由了,所以版本间的差距特别大。

                在你的代码中找相关定义的方法:

                grep -R 'volTensorField' ./
                

                先用 cd 命令 切换到源代码所在的目录 ~/OpenFOAM/OpenFOAM-version/
                然后运行上面的那条命令。-R 是递归查找,包括子文件夹,'volTensorField' 是查找的内容,区别大小写, ./代表当前路径。

                另外,在 ~/OpenFOAM/OpenFOAM-version/里查,查的太多。可以分别去这个文件夹下的src或者applications下面查。如果还是太多,就把输出重定向到一个文件再看。不过没颜色不太好看。

                grep -R 'volTensorField' ./ > grep.log
                

                滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

                异步沟通方式(《posting style》from wiki)(下载后打开):
                https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
                提问的智慧(github在gitee的镜像):
                https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md

                1 Reply Last reply Reply Quote
                • First post
                  Last post

                CFD中文网 | 东岳流体 | 京ICP备15017992号-2