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

news2025/1/8 5:19:31

第二个方案的源是在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.coloradmin.cn/o/916307.html

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

相关文章

轻松玩转70亿参数大模型!借助Walrus在AWS上部署Llama2

Llama 2 是 Meta 的下一代开源大语言模型。它是一系列经过预训练和微调的模型,参数范围从 70 亿到 700 亿个。Meta Llama 2 可免费用于研究和商业用途并且提供了一系列具有不同大小和功能的模型,因此一经发布备受关注。在之前的文章中,我们详…

Spring 为什么使用三级缓存解决循环依赖

文章目录 前言1. 什么是循环依赖1.1 互相依赖1.2 递归依赖 2. Sping中循环依赖有什么问题?3. 什么是三级缓存4. Spring 可以解决哪些情况的循环依赖? 二级缓存作用——普通循环依赖实操环节1. 实例化类A对象2. 实例化类B对象3. B对象完成创建4.继续创建A…

Python自动化小技巧21——实现PDF转word功能(程序制作)

案例背景 为什么这个年代PDF转word,某wps居然还要收费.....很多软件都可以实现这个功能,但是效果都有好有坏,而且有的还付费,很麻烦。 那就用python实现这个功能吧,然后把代码打包为.exe的程序,这样随便在…

SOLIDWORKS提高装配效率的方法:配合参考

SOLIDWORKS装配功能比较强大,但是如果产品中有较多的标准件、企业通用件等,由于这类零件一般量较大,所以装配起来费时费力。同时标准件、企业通用件等相对比较固定,装配方式也相对固定,那有没有办法让SOLIDWORKS自动装…

一文读懂设备管理系统:是什么、谁需要、怎样选

工业的迅猛发展让人类向前迈出了史无前例的步伐,工业4.0将我们又带入了一个信息化技术促进工业变革的新时代——智能化时代。一台台机器设备是工业发展史上必不可少的参与者,但企业对设备的管理存在种种痛点,比如生产设备多,但备件…

ui设计师年终总结精选五篇

2019ui设计师年终总结一 工作一年了,结合我自身谈谈UI设计的重要性。现在主流的论坛建站程序有两种 Phpwind 和Discuz (Phpwind被阿里巴巴收购 Discuz被腾讯收购这两个论坛程序都是开源免费的),利用这两种程序我都分别建立过论坛,我第一次用…

拼多多app商品详情接口 获取pdd商品主图价格销量库存信息

拼多多是中国一家知名的电商平台,以"社交团购新零售"的商业模式闻名,通过手机app和微信小程序等渠道提供商品销售和购物体验。平台上的商品种类丰富多样,涵盖了服装、家居、美妆、食品、数码电子等各个领域。 拼多多的商业模式主要…

Java 中使用 ES 高级客户端库 RestHighLevelClient 清理百万级规模历史数据

🎉工作中遇到这样一个需求场景:由于ES数据库中历史数据过多,占用太多的磁盘空间,需要定期地进行清理,在一定程度上可以释放磁盘空间,减轻磁盘空间压力。 🎈在经过调研之后发现,某服务…

qq windows版客户端0day复现——远程代码执行(七夕小礼物)

##ps:本文章仅用来分享,请勿将文章内的相关技术用于非法目的,请勿将文章内的相关技术用于非法目的,请勿将文章内的相关技术用于非法目的!!如有非法行为与本文章作者无任何关系。一切行为以遵守《中华人民共…

电力巡检三维数字化管理的新方案:图新地球电力版

电力工业是国民经济发展的重要基础能源产业,是世界各国经济发展战略中的优先发展重点。当前中国电力行业运行平稳,电力消费持续增长,电力装机结构延续绿色低碳发展态势,同时投资规模日益扩大。随着全民用电量持续快速增长&#xf…

从头到尾说一次 Spring 事务管理(器) | 京东云技术团队

事务管理,一个被说烂的也被看烂的话题,还是八股文中的基础股之一。​ 本文会从设计角度,一步步的剖析 Spring 事务管理的设计思路(都会设计事务管理器了,还能玩不转?) 为什么需要事务管理&…

隐秘的角落:Java连接Oracle提示Connection timed out

前言 这个报错相信各位后端开发都不陌生,大体的原因就那么几种: 检查网络连接:确保您的计算机与数据库服务器之间的网络连接正常。尝试通过其他方式验证您的网络连接是否正常。 检查数据库服务器状态:确保数据库服务器正在运行&…

如何快速了解一家企业的各类信息?

我们在生活和工作会遇到一些情形,需要我们去查找一些企业的信息来推进。这时候如何快速查找到企业的信息呢? 根据场景不同,所需要的企业信息也是不同的,有的可能只需要企业的基本信息,有的情况需要企业的多维度信息&a…

Linux需要掌握哪些?

Linux运维工程师的基本工作之一是搭建相关编程语言的运行环境,使程序能够高效、稳定、安全地在服务器上运行。优秀的Linux运维工程师不但需要拥有架设服务器集群的能力,还需要拥有使用不同的编程语言开发常用的自动化运维工具或平台的能力,从…

SciencePub学术 | 计算机及交叉类重点SCIE征稿中

SciencePub学术 刊源推荐: 计算机及交叉类重点SCIE征稿中!信息如下,录满为止: 一、期刊概况: 计算机土地类重点SCIE 【期刊简介】IF:1.0-1.5,JCR4区,中科院4区; 【版面类型】正刊…

LTDC之存储器映射闪存

对于大多数项目,建议使用外部闪存,因为这允许应用程序使用多个大型图像。 即便最普通的应用程序,内部闪存也可能会很快被占用完。 1.配置QSPI(嵌入式基础知识,此处不做分析) 2.编写W25Q256配置代码&#xf…

django+MySQL购物商城系统(含源码+论文)

对购物商城管理的流程进行科学整理、归纳和功能的精简,通过软件工程的研究方法,结合当下流行的互联网技术,最终设计并实现了一个简单、易操作的购物商城系统。内容包括系统的设计思路、系统模块和实现方法。系统使用过程主要涉及到管理员和用…

[JavaWeb]【九】web后端开发-SpringBootWeb案例(菜单)

目录 一、准备工作 1.1 需求 1.2 环境搭建 1.2.1 准备数据库&表 1.2.2 创建springboot工程 1.2.3 配置application.properties & 准备对应实体类 1.2.3.1 application.properties 1.2.3.2 实体类 1.2.3.2.1 Emp类 1.2.3.2.2 Dept类 1.2.4 准备对应的Mapper、…

[C#][原创]操作注册表一些注意点

C#注册表只需要引入 using Microsoft.Win32; C#注册表操作都是通过2个类Registry和RegistryKey进行所有操作。但是有些基本注意事项经常忘记,不常用就很容易忘记。 第一,打开注册表,第2个bool参数问题: RegistryKey key Regi…

算法与数据结构(九)--并查集

并查集是一种树型的数据结构,并查集可以高校地进行如下操作: *查询元素p和元素q是否在同一组 *合并元素p和元素q所在的组 一.并查集结构 并查集也是一种树型结构,这种树的要求比较简单:1.每个元素都唯一的对应一个结点&#xff…