Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. openfoam 流向做空间平均

openfoam 流向做空间平均

已定时 已固定 已锁定 已移动 OpenFOAM
3 帖子 2 发布者 2.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 氕 离线
    氕 离线
    氕氘-川
    写于 最后由 编辑
    #1

    问一下大家,我下面这个图,如何把流向(x方向)的速度叠加起来成一条线的数据,再做平均啊?有没有处理它的脚本或者paraview处理方法啊?
    f8adc4c6-02c4-4bd7-996d-bbb6c215ef6a-a.0007.png

    X 1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    在 中回复了 氕氘-川 最后由 编辑
    #2

    @氕氘-川
    提供一个思路:

    cat U.csv | cut -d ',' -f1,4 | awk -F ',' '{a[$2] += $1}END{for (i in a) print  i, a[i]/101}' | sort  -k  -n > result.dat
    

    解释:这个命令只适合用于完全结构化的网格,在运行之前,先把面的数据在paraview 里面用 save data 保存为 csv 格式,得到比如 U.csv 文件,文件的格式大概会是这样:

    "U:0","U:1","U:2","Points:0","Points:1","Points:2"
    -1.4689,3.6702e-06,0.050816,0.48,-2.0363e-18,0
    -1.4798,-1.5563e-05,0.053272,0.484,-2.0363e-18,0
    -1.4552,-1.7582e-06,0.047285,0.476,-2.0363e-18,0
    -1.4735,-3.2403e-05,0.054114,0.48572,-2.0363e-18,0
    -1.4647,-3.2213e-05,0.054475,0.488,-2.0363e-18,0
    -1.4418,-2.5745e-05,0.043431,0.472,-2.0363e-18,0
    -1.4301,-3.9025e-05,0.039604,0.468,-2.0363e-18,0
    -1.343,-4.6674e-06,0.053974,0.428,-4.1301e-18,0
    
    

    6 列分别是 Ux Uy Uz,x,y,z。

    命令是用shell管道来写的,cut -d ',' -f1,4 表示提取 U.csv 的第1列和第4列,列的分隔符由 -d 选项决定,这里是 ,。 然后重头戏是 awk 部分,刚才提到,cut 命令把 csv 文件的第1列和第4列提取出来了,得到了一个新的有两列的数据,第1列是 Ux,第2列是 x,所以 a[$2] += $1 表示创建一个数组 a,然后把第2列(也就是x)相同的第1列的值(Ux)加在一起,通过这种方式,就实现了x方向上的 Ux 的叠加。再后面,print i, a[i]/101 里面的 i 代表 x 的值,a[i] 是每个 x 对应的相同 x 坐标下的所有 Ux 的叠加值,101 这个数字代表x 方向上的格点数量,所以 a[i]/101 就是 Ux 在 x 方向的平均值了。101 这个数值需要根据实际情况来修改。
    最后的 sort 是一个排序,把最终得到的数据按照x从小到大的顺序排序。

    写了这么多,其实最重要的就是理解导出来的 csv 数据的结构,只要明白了里面的结构,就有很多方法可以写出来简单的沿某个方向计算平均的小程序了。

    氕 1 条回复 最后回复
  • 氕 离线
    氕 离线
    氕氘-川
    在 中回复了 xpqiu 最后由 编辑
    #3

    @xpqiu 太感谢您了 您教的好细, 非常感谢 ,对我帮助非常大 ,谢谢您:140:

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]