如何在OpenFOAM的案例文件夹中确定数据的点和面,确定点和网格之间的关系,从而用于深度学习预测和构建模型呢(分析数据格式及其含义)

在OpenFOAM中,点(points)和面(faces)的定义是通过不同的文件来进行的。在案例一级目录下面的constant/polyMesh目录下,会有points, faces, owner, neighbour等文件,来描述网格的几何和拓扑结构。时间文件夹下也会有constant/polyMesh/points文件和U文件等。

下面我将解释如何在OpenFOAM中确定点和面,以及它们之间的关系。

一、理解数据文件的含义 

1. points 文件

points文件包含了网格中所有顶点的坐标,每一行代表一个顶点的坐标

5967
(
(-1.524 0 -1.524)
(-1.29142 0 -1.524)
(-1.08194 0 -1.524)
(-0.893391 0 -1.524)
(-0.723545 0 -1.524)
...
)

代表该数据有5967个顶点,从第1行到5967行分别对应该顶点,从1开始正序排列。

2. faces 文件(在constant/polyMesh下面,该文件只有一个,用来确定点和面的相对关系,具体固体形变的文件在每个时间步下面的ployMesh的points里面

faces文件描述了网格中所有面的定义,每一行定义了一个面,由顶点的索引组成。索引从0开始,指向points文件中的顶点。例如:

999
(
(0 1 2 3)
(4 5 6 7)
...
)

 上面的999代表有999个面,意思是,第一个面( 0 1 2 3)由0、1、2、3四个points组成,也就是四个点确定一个面。

3. ownerneighbour 文件

ownerneighbour 文件描述了每个面所属的单元。owner文件表示每个面所属于的单元索引,而neighbour文件则表示每个面相邻的单元索引。

二、确定点和面的关系(数据U和p都在面cell上,不在点上

为了确定一个面由哪些点组成,你需要查看faces文件,该文件包含了组成每个面的顶点的索引。这些顶点的坐标可以在points文件中找到。

确定上面数据中第一个面由哪些点组成,你可以

  1. 先查看faces件中第一个条目(也就是第一个面)的顶点号为(0 1 2 3)
  2. 然后再在points文件中找到这些索引(顶点号)对应的坐标:

即可自己提取到下面的有效数据,也就是第一个面的四个顶点为

  • 第0个顶点: (-1.524 0 -1.524)
  • 第1个顶点: (-1.29142 0 -1.524)
  • 第2个顶点: (-1.08194 0 -1.524)
  • 第3个顶点: (-0.893391 0 -1.524)

因此,第一个面由上述四个顶点组成。以此类推,就能得到所有非均匀面的数据。

转换为openfoam的格式,就能在paraview中展示.

使用paraview命令如下:

​​​​​​​paraview Fluid.foam

三、分析数据格式 

通过下面这个案例

比如这个数据对应的文件结构如下:

文件结构重要结论 

这里案例里面Fluid/constant下面的数据是所有时间公用的,是不变得。变的是

1.polyMesh/points    控制网格的点的变化,从而完全直接控制网格大小的的非均匀变化。(但相相对位置和树数目是不变的,因为constant下面的faces、points等都没有变)

2.time文件夹下的/U,p文件   控制网格的值,比如U、p、cellDisplacements等

 通过自己控制变量测试,得到的结论:

这个流固耦合案例,非均匀自适应变化网格的数据:

1.控制弹性固体形状方面变化的:是时间文件夹下面的polyMesh/points文件,里面是5967个点points,所有时间步中的points都是固定的数目(也就是点全局数量一样),只不过偏移量会变化。

points文件
5967
(
(-1.524 0 -1.524)
(-1.29142 0 -1.524)
(-1.08194 0 -1.524)

2.控制U,p等网格值数据变化的:是时间步下面的U文件,所有时间步下面的U文件中的网格数目一致不变化,但是值会变。也就是网格一直是4928个,但该网格的大小和里面的值一直在变化。

U文件
internalField   nonuniform List<vector> 
4928
(
(-0.000350596 -1.31343e-06 -0.000315693)
(-0.0367326 0.000109503 -0.0520629)
(-2.64343 6.37449e-07 -6.04)
(-71.8074 -4.02119 -117.074)

四、如何预测数据并用这paraview可视化呢

思路:由于Fluid/constant下面的数据不变,也就是只用修改

  1. 时间文件夹下面的polyMesh/points文件
  2. 时间文件夹下面的U文件(或者其他想要预测的文件,比如e,p)

第一个文件是points坐标数据,对应5967个三元组,物理意义是5967个点,每个点用3元组表示,shape为(5967,3),加上多个时间,shape(time,5967,3)为这个可以直接用普通的神经网络来预测,或者图神经网络,或者NUNO(非均匀神经算子)。

第二个文件是U的值数据,4928个三元组,物理意义是4928个网格数据,每个网格表示的是U,速度矢量是一个三元组,shape为(4928,3)加上多个时间,shape为(time,4928,3)。这个可以直接用正常的神经网络来预测。

0、模型构建方法:

可以考虑

  1. 第一个文件用NUNO来预测
  2. 第二个文件用之前做过的预测流体的WNO(小波神经算子来预测,代码已写完)

也可以直接将 (time,5967,3)和(time,4928,3)合并成一个(time,5967+4928,3),然后用一个模型WNO(小波神经算子)来训练和推理,这样更方便和快捷。

结果1、文件结构处理后用paraview可视化

然后将两个预测的数据接入这个案例的文件格式中,就将times/polyMesh/points和time/U下面的数据更换一下,创建一些时间文件夹里面的内容就可以用paraview正常绘制了。

结果2、不可视化,只想算出error

那就可以直接从上面的文件中提取出两个(time,5967,3)和(time,4928,3)数据用来求error就行了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最新深度技术Win7精简版系统:免费下载!

在Win7电脑操作中&#xff0c;用户想要给电脑安装上深度技术Win7精简版系统&#xff0c;但不知道去哪里才能找到该系统版本&#xff1f;接下来系统之家小编给大家带来了深度技术Win7系统精简版本的下载地址&#xff0c;方便大家点击下载安装。系统安装步骤已简化&#xff0c;新…

数据解读加密世界的重新定位:全球流动性困境下的转型之痛

全球每一天将会产生50亿次以上的搜索&#xff0c;每一天有491EB的数据出现在我们的生活中&#xff0c;如果这些数据量全部以Email的形式展现&#xff0c;那相当于1个人1天需要处理36亿封电子邮件。随着区块链技术的不断发展&#xff0c;从链下到链上&#xff0c;链上数据构建的…

SVM - 径向基函数核 Radial Basis Function Kernel,简称RBF核或者高斯核

SVM - 径向基函数核 Radial Basis Function Kernel&#xff0c;简称RBF核或者高斯核 flyfish 径向基函数核&#xff08;Radial Basis Function Kernel&#xff0c;简称RBF核&#xff09;&#xff0c;也称为高斯核&#xff0c;是一种常用的核函数&#xff0c;用于支持向量机&a…

百度文心4.0 Turbo开放,领跑国内AI大模型赛道!

百度文心4.0 Turbo开放&#xff0c;领跑国内AI大模型赛道&#xff01; 前言 文心一言大模型 就在7月5日&#xff0c;在2024世界人工智能大会 (WAIC) 上&#xff0c;百度副总裁谢广军宣布文心大模型4.0 Turbo正式向企业客户全面开放&#xff01;这一举动直接引发了业界的关注。那…

国产PLC能否使用无线通讯终端来实现无线通讯?让我们一探究竟

在工业生产车间内&#xff0c;PLC被广泛应用于自动化控制的各个环节。随着智能化工厂的建设&#xff0c;许多PLC仍处于信息孤岛状态&#xff0c;现要将厂区内分散的PLC都建立通讯&#xff0c;如果重新布线工厂量大且不美观&#xff0c;此时就需要用到工业PLC无线通讯设备来解决…

Knife4j的介绍与使用

目录 一、简单介绍1.1 简介1.2 主要特点和功能&#xff1a; 二、使用步骤&#xff1a;2.1 添加依赖&#xff1a;2.2 yml数据源配置2.3 创建knife4j配置类2.4 注解的作用 最后 一、简单介绍 1.1 简介 Knife4j 是一款基于Swagger的开源文档管理工具&#xff0c;主要用于生成和管…

【Android应用】生成证书和打包

安卓生成证书和打包 &#x1f4d6;1. 生成自有证书&#x1f4d6;2. 安卓打包✅步骤一&#xff1a;导入签名文件✅步骤二&#xff1a;设置打包版本✅步骤三&#xff1a;生成签名包或APK &#x1f4d6;1. 生成自有证书 地址&#xff1a;https://www.yunedit.com/createcert 说明…

Cesium版本升级webgl问题,glsl代码关键字修改

简介 Cesium 从1.102.0 开始&#xff0c;Cesium 默认使用 WebGL2 上下文。一些webgl特效代码在webgl1中支持&#xff0c;但是在版本升级后&#xff0c;运行会报各种glsl代码错误。现在有两种解决方案。详细办法描述如下所示。 1、修改配置使用WebGL1 地球初始化配置如下&…

【计算机毕业设计】基于Springboot的IT技术交流和分享平台【源码+lw+部署文档】

包含论文源码的压缩包较大&#xff0c;请私信或者加我的绿色小软件获取 免责声明&#xff1a;资料部分来源于合法的互联网渠道收集和整理&#xff0c;部分自己学习积累成果&#xff0c;供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

20240709每日后端--------最优解决Invalid bound statement (not found)

目标 最优解决Invalid bound statement (not found) 步骤 1、打包 2、查看target下是否成双成对出现 3、核对无误后&#xff0c;即可解决问题。

开发者必看:MySQL主从复制与Laravel读写分离的完美搭配

介绍 主从同步配置的主要性不用多说&#xff0c;本文将详细介绍了如何在MySQL数据库中设置主从复制&#xff0c;以及如何在Laravel框架中实现数据库的读写分离。 通过一系列的步骤&#xff0c;包括修改MySQL配置、创建同步账户、获取二进制日志文件名和位置、导出主服务器数据…

原创作品—数据可视化大屏

设计数据可视化大屏时&#xff0c;用户体验方面需注重以下几点&#xff1a;首先&#xff0c;确保大屏信息层次分明&#xff0c;主要数据突出显示&#xff0c;次要信息适当弱化&#xff0c;帮助用户快速捕捉关键信息。其次&#xff0c;设计应直观易懂&#xff0c;避免复杂难懂的…

南方CASS:测绘工作者的得力助手

初识南方CASS 南方CASS&#xff0c;这款软件在我的工作和生活中扮演了不可或缺的角色。作为一名长期的使用者&#xff0c;我深感它的功能之强大与便捷。今天&#xff0c;我愿以季羡林先生的口吻&#xff0c;带大家走进南方CASS的世界&#xff0c;分享我与它的点滴故事。 功能…

GTK是如何加密WLAN组播和广播数据的?

1. References WLAN 4-Way Handshake如何生成GTK&#xff1f;_tk bigtk gtk igtk-CSDN博客 2. 概述 在Wi-Fi网络中&#xff0c;单播、组播和广播帧的加密算法是由AP决定的。其中组播帧和广播帧的加密使用GTK密钥&#xff0c;其PTK的密钥结构如下图所示&#xff1a; GTK的组成…

为何要进行算法备案?保障数据安全不容小觑!

在数字经济高速发展的今天&#xff0c;数据已成为企业运营的核心资产&#xff0c;而算法则是处理和利用这些数据的关键技术。随着大数据时代的来临&#xff0c;数据安全问题日益凸显&#xff0c;同时&#xff0c;国家对于数据安全和算法应用的监管也日趋严格。在这样的背景下&a…

第一个基于FISCOBCOS的前后端项目(发行转账)

本文旨在介绍一个简单的基于fiscobcos的前后端网站应用。Springbootjs前后端不分离。 所使用到的合约也是一个最基本的。首先您需要知道的是完整项目分为三部分&#xff0c;1是区块链平台webase搭建&#xff08;此项目使用节点前置webase-front即可&#xff09;&#xff0c;2是…

YOLOv8改进 | 注意力机制 | 对密集和小目标友好的EVAblock 【原理 + 完整代码】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

Object方法重写

这篇文章大家随意看看就好&#xff0c;只是一点理解的东西&#xff0c;当然你也可以认真调查。 我们需要知道Obecj是java中的一个类&#xff0c;是所有类的父类&#xff0c;即超类。对&#xff0c;超级赛亚人的那个超。 我们需要关注其中的equals、tostring这两个方法。 例如&…

在任何岗位都可以把自己当成一个项目经理

这几天跟一个刚入职场的姐妹交流的时候&#xff0c;她问了我一个问题&#xff0c;如果让你总结三年从助理升到经理的关键点&#xff0c;你觉得是什么&#xff1f;我思考了那么几秒钟&#xff0c;大概就是——在任何岗位都把自己当项目经理。 今天给大家介绍我的项目管理工具——…

AI自动生成PPT怎么用?5种提升演示效果的方法

随着#7月份我的同事一个个消失了#的话题热议&#xff0c;职场中的效率与变革再次成为焦点。 在忙碌的工作节奏中&#xff0c;AI自动生成PPT的软件悄然兴起&#xff0c;成为不少职场人的新宠。它们不仅简化了繁琐的PPT制作流程&#xff0c;更以高效、专业的姿态&#xff0c;助力…