解决OpenFOAM颗粒计算输出文件Paraview无法打开问题(二)

第二个方案的源是在CFD中文网上看到的一篇帖子,其具体链接忘了。这个帖子给了一个github的链接,就是将OpenFOAM输出的颗粒位置信息转变为真实的位置信息的脚本。其链接在此。

1. 背景

我们知道,paraview之所以打不开OF输出的颗粒文件,是因为OF输出的颗粒信息的位置文件中的内容并不是真实的颗粒坐标。
在这里插入图片描述
而上面那个脚本就是将这个坐标转换为真实的位置坐标。

2. 具体步骤

GitHub链接里其实给的比较清楚了,说明文件写的十分良心。
主要有两种方法,一是边算边转换,而是算完之后统一转换。
说明文件中以MPPICFoam下的一个案例文件作为说明

cp -r $FOAM_TUTORIALS/lagrangian/MPPICFoam/column MPPICFoam_column
cd MPPICFoam_column

第一种方式

1、在system/controlDic文件的最后添加

functions
{writeCloudOldStyle1{type        writeCloudOldStyle;libs        ("liblagrangianExtraFunctionObjects.so");writeControl writeTime;clouds(kinematicCloud);}
}

2、运行算例
3、执行命令

find -name positions | while read line; do mv $line $line.coord; mv $line.orig $line; done
find -name positions | while read line; do sed -i -e 's=^\(.*object.*\)positions.orig;=\1positions;=' $line; done

之后就能用paraview成功打开文件进行查看了。

第二种方式

第二种方式是再计算完成之后进行。
1、需要在`system文件夹下创建一个positionConvertDict文件。

 /*--------------------------------*- C++ -*----------------------------------*\| =========                 |                                                 || \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           ||  \\    /   O peration     | Version:  5.x                                   ||   \\  /    A nd           | Web:      www.OpenFOAM.org                      ||    \\/     M anipulation  |                                                 |\*---------------------------------------------------------------------------*/FoamFile{version     2.0;format      ascii;class       dictionary;location    "system";object      positionConvertDict;}// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //functions{writeCloudOldStyle1{type        writeCloudOldStyle;libs        ("liblagrangianExtraFunctionObjects.so");writeControl writeTime;clouds(kinematicCloud);}}

2、执行命令

MPPICFoam -postProcess -dict system/positionConvertDict

这里的命令也可以换成DPMFoam开头,对于自己整的求解器可能会显示没有该命令的情况,但是可以把自己求解器的文件格式改成DPMFoam一样,在用DPMFoam命令转换,亲测有效。
3、执行命令

find -name positions | while read line; do mv $line $line.coord; mv $line.orig $line; done
find -name positions | while read line; do sed -i -e 's=^\(.*object.*\)positions.orig;=\1positions;=' $line; done

bug

这两个方法在并行计算时会存在一点小bug,因为他这个流程是我先生成一个真实颗粒位置的文件positions.org(再合并后的文件夹里),然后再把原始的颗粒位置文件(paraview无法识别的)的内容替换成positions.org。第三步的命令就是这个操作会检索所有可能的position名称的文件,但是在proc文件中并不会出现positions.org,因此会报错。
解决办法是把proc
文件给删掉,然后再执行第三部命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/49129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘

写在前面 Python中有许多有趣和强大的模块,其中一个非常有趣的模块就是pynupt。pynupt是基于pynput模块的一个封装,用于控制鼠标和键盘。它可以实现自动化操作和游戏外挂等功能。 本文将详细介绍pynupt模块的使用方法和常见的功能。 1. 安装pynput模块…

Android 14新增复制粘贴方式,解析工作原理

安卓14为用户提供了一种更简单的方式来在应用程序之间复制和粘贴内容,这肯定是你现在想在安卓14测试版或未来几个月该软件在你的安卓手机上推出时尝试的。 一旦更新在你的手机上(无论是测试版还是其他版本),你只需点击并按住你想…

【Python机器学习】实验14 手写体卷积神经网络

文章目录 LeNet-5网络结构(1)卷积层C1(2)池化层S1(3)卷积层C2(4)池化层S2(5)卷积层C3(6)线性层F1(7)线性层F2 …

小程序中的全局配置以及常用的配置项(window,tabBar)

全局配置文件和常用的配置项 app.json: pages:是一个数组,用于记录当前小程序所有页面的存放路径,可以通过它来创建页面 window:全局设置小程序窗口的外观(导航栏,背景,页面的主体) tabBar:设置小程序底部的 tabBar效果 style:是否…

MySQL不停重启问题

MySQL不停的自动杀掉自动重启 看一下log日志 my.cnf 里配置的 log_error /var/log/mysqld.log vim /var/log/mysqld.log 报的错误只是 [ERROR] Cant start server: Bind on TCP/IP port: Address already in use [ERROR] Do you already have another mysqld server …

基于大语言模型知识问答应用落地实践 – 知识库构建(上)

01 背景介绍 随着大语言模型效果明显提升,其相关的应用不断涌现呈现出越来越火爆的趋势。其中一种比较被广泛关注的技术路线是大语言模型(LLM)知识召回(Knowledge Retrieval)的方式,在私域知识问答方面可以…

屏蔽软件,一个技术出生的小企业老板的灵感

我是技术出生,今年开始也带团队了。虽然 人不多,但是有的时候 人在外面出差,不知道办公室的情况。这个时候为了企业的安全考虑,灵感上就想到了开发出一款能屏蔽软件的工具。杜绝掉一些危害公司的一些事。软件后端采用的是JAVA服务…

【用于全变分去噪的分裂布雷格曼方法】实施拆分布雷格曼方法进行总变异去噪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

系统架构设计师之缓存技术:Redis与Memcache能力比较

系统架构设计师之缓存技术:Redis与Memcache能力比较

OpenCV使用CMake和MinGW-w64的编译安装

OpenCV使用CMake和MinGW-w64的编译安装中的问题 问题:gcc: error: long: No such file or directory** C:\PROGRA~2\Dev-Cpp\MinGW64\bin\windres.exe: preprocessing failed. modules\core\CMakeFiles\opencv_core.dir\build.make:1420: recipe for target ‘modul…

Git如何操作本地分支仓库?

基本使用TortoiseGit 操作本地仓库(分支) 分支的概念 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,避免影响开发主线。多线程开发,可以同时开启多个任务的开发,多个任务之间互不影响。 为何要…

无涯教程-PHP - 全局变量函数

全局变量 与局部变量相反,可以在程序的任何部分访问全局变量。通过将关键字 GLOBAL 放置在应被识别为全局变量的前面,可以很方便地实现这一目标。 <?php$somevar15;function addit() {GLOBAL $somevar;$somevar;print "Somevar is $somevar";}addit(); ?> …

测试框架pytest教程(9)跳过测试skip和xfail

skip无条件跳过 使用装饰器 pytest.mark.skip(reason"no way of currently testing this") def test_example(faker):print("nihao")print(faker.words()) 方法内部调用 满足条件时跳过 def test_example():a1if a>0:pytest.skip("unsupported …

基于Redis的BitMap实现签到、连续签到统计(含源码)

微信公众号访问地址&#xff1a;基于Redis的BitMap实现签到、连续签到统计(含源码) 推荐文章&#xff1a; 1、springBoot对接kafka,批量、并发、异步获取消息,并动态、批量插入库表; 2、SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据; 3、基于Redis的Geo实现附…

ORB-SLAM系列算法演进

ORB-SLAM算法是特征点法的代表&#xff0c;当前最新发展的ORB-SLAM3已经将相机模型抽象化&#xff0c;适用范围非常广&#xff0c;虽然ORB-SLAM在算法上的创新并不是很丰富&#xff0c;但是它在工程上的创新确实让人耳目一新&#xff0c;也能更好的为AR、机器人的算法实现落地。…

操作教程|通过1Panel开源Linux面板快速安装DataEase

DataEase开源数据可视化分析工具&#xff08;dataease.io&#xff09;的在线安装是通过在服务器命令行执行Linux命令来进行的。但是在实际的安装部署过程中&#xff0c;很多数据分析师或者业务人员经常会因为不熟悉Linux操作系统及命令行操作方式&#xff0c;在安装DataEase的过…

LeetCode42.接雨水

这道题呢可以按列来累加&#xff0c;就是先算第1列的水的高度然后再加上第2列水的高度……一直加到最后就是能加的水的高度&#xff0c;我想到了这里然后就想第i列的水其实就是第i-1列和i1列中最小的高度减去第i列的高度&#xff0c;但是其实并不是&#xff0c;比如示例中的第5…

【蓝桥杯】 [蓝桥杯 2015 省 A] 饮料换购

原题链接&#xff1a;https://www.luogu.com.cn/problem/P8627 1. 题目描述 2. 思路分析 小伙伴们可以看看这篇文章~ https://blog.csdn.net/m0_62531913/article/details/132385341?spm1001.2014.3001.5501 我们这里主要讲下方法二的推导过程&#xff1a; 列方程。 设最…

企业数字化转型需要解决哪些问题?

随着信息技术的不断发展和应用&#xff0c;企业数字化转型已成为提高竞争力和实现可持续发展的必经之路。合沃作为一家专注于为企业提供工业物联网产品与解决方案的企业&#xff0c;拥有丰富的经验和技术实力&#xff0c;正致力于助力企业实现数字化转型。本文将探讨企业数字化…

流的基本概念

流的基本概念 Streaming 101与Streaming 102原文网页 文章目录 流的基本概念术语什么是流无界数据无界数据处理有界数据批处理引擎流引擎低延迟、近似、推测结果正确性时间推理工具 数据处理模式使用经典批处理引擎进行有界数据处理用经典批处理引擎通过临时固定窗口进行无界数…