CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    动网格算例中,怎样提取结构物表面某点的位移pointDisplacement?

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

      求助 请教,在包含结构物运动的动网格算例中(例如floatingObject,DTCHullMoving此类),怎样提取结构物表面某一点的位移pointDisplacement?
      在controlDict文件中 用Probe尝试过,只能提取U p等,无法提取pointDisplacement。个人猜测原因是:U p是数据记录在网格的场,而pointDisplacement数据记录在节点。
      在网上也看了好多关于数据分析和后处理的资料,一直找不到方法。求大神指教!不胜感激!

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

        某一个网格点在某个时间步下的位置,相对于0时间步的位置?你直接看不同时间步下网格文件某个vertex的位置矢量不可以么?

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

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

          @李东岳 这是可以的。我想实现的是 某个位置的位移随每个计算时间步timeStep实时输出。就像controlDict里的function通过probe输出p和U一样。

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

            @wh3296 你在controlDict里面,写个function,实现类似下面的功能可以么:?

            functions
            {
                const point A = point[222];
                vector = A[222] - A[222].oldtime();
                Info<< vector;
            }
            

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

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

              @李东岳
              李老师,我试了下,controlDict文件里是这样写的:

              functions
              {
                  {                                                        // Line 57
                      const point A = point[222];
                      vector = A[222] - A[222].oldtime();
                      Info << vector;
                  }
              ........
              }
              
              

              运行报错:

              Create time
              
              [0] 
              [0] 
              [0] --> FOAM FATAL IO ERROR: 
              [0] Found { but expected }
              [0] 
              [0] file: /home/b408/OpenFOAM/b408-v1912/run_test/DTCHullMoving_t1222_0/system/controlDict at line 57.
              [0] 
              [0]     From function static bool Foam::entry::New(Foam::dictionary&, Foam::Istream&, Foam::entry::inputMode, int)
              [0]     in file db/dictionary/entry/entryIO.C at line 179.
              [0] 
              FOAM parallel run exiting
              [0] 
              --------------------------------------------------------------------------
              MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD 
              with errorcode 1.
              
              NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
              You may or may not see output from other processes, depending on
              exactly when Open MPI kills them.
              --------------------------------------------------------------------------
              
              
              1 条回复 最后回复 回复 引用
              • 李东岳
                李东岳 管理员 最后由 编辑

                这只是个范例 大体个思路 :zoule:

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

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

                  @李东岳 好的,我试试这个思路,多谢李老师了!

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