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

news2024/9/23 19:15:19

在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就行了。

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

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

相关文章

Vue学习笔记-自定义组件使用v-model

拆解实现 父组件 <template><div></div><Son :name"name" inputChange"inputChange"></Son>{{ name }} </template><script setup> import {ref} from vue import Son from ./son2.vueconst nameref("张…

戴尔笔记本(WIndows11)长时间睡眠后就会蓝屏或者死机必须重启问题解决

以下只是记录客服解决的过程&#xff0c;本人非专业人员&#xff0c;不能提供帮助。 戴尔笔记本&#xff08;游匣G15 5510&#xff09;长时间睡眠后&#xff0c;会出现蓝屏&#xff1a; 控制面板 -> 电源 -> 选择关闭计算机盖的功能 关闭快速启动&#xff1a; 关闭快速…

学习XDMA—20240709

概览&#xff1a; 在内部&#xff0c;子系统可以配置为实现多达8个独立的物理DMA引擎(最多4个H2C和4个C2H)。这些DMA引擎可以映射到单独的AXI4Stream接口&#xff0c;也可以将共享的AXI4内存映射(MM)接口映射到用户应用程序。在axis4 MM接口上&#xff0c;PCI Express的DMA/桥接…

Goby漏洞利用优化 | GeoServer远程代码执行漏洞(CVE-2024-36401)(支持回显命令执行、内存马)

漏洞名称&#xff1a;GeoServer /geoserver/wfs 远程代码执行漏洞&#xff08;CVE-2024-36401&#xff09; English Name&#xff1a;GeoServer /geoserver/wfs Code Execution Vulnerability(CVE-2024-36401) 漏洞描述及详情&#xff1a;&#xff08;见上篇&#xff09; Ge…

Linux -- 认识gcc/g++、代码的编译过程

目录 前言&#xff1a; 使用 gcc/g&#xff1a; 代码的编译过程&#xff1a; 预处理&#xff1a; 头文件展开&#xff1a; 宏替换去注释&#xff1a; ​编辑 条件编译&#xff1a; 编译&#xff1a; 汇编&#xff1a; 链接&#xff1a; 动态库&#xff08;动态链…

爬取天气数据,利用Pyecharts作轮播图

爬取网站链接&#xff1a;https://lishi.tianqi.com/xiamen/202312.html 爬取了厦门市2023年一整年的天气数据&#xff0c;包括最高温&#xff0c;最低温&#xff0c;天气&#xff0c;风力风向等 爬虫代码&#xff1a; import requests import pandas as pd import csv from…

新手怎么使用《藏文翻译词典》查藏文单词和藏语近义词反义词?手把手教你写藏文作文!

西藏地区的学生常常需要使用藏语写作业写作文&#xff0c;同时还需要学习汉语中文&#xff0c;在这种情况下&#xff0c;一款好用的藏语翻译和藏文词典工具&#xff0c;就显得非常重要了&#xff0c;在这里教大家使用《藏文翻译词典》工具&#xff0c;利用它学习汉语和写好藏文…

excel表格移动一整行或者移动一整列

首先选中一整行&#xff0c;将鼠标移动到边边上&#xff0c;知道出现黑色十字型箭头鼠标头然后按住shift键&#xff0c;同时移动到想去的地方就可以了 注意&#xff1a;mac和Windows都是shift键&#xff0c;mac的option键只是将列复制一份到移动到的地方&#xff0c;然后移动到…

带有子节点的树状表的父节点拖动排序#Vue3#Sortable插件

带有子节点的树状表的父节点拖动排序#Vue3#Sortable插件 使用Sortable插件这里要保证获取到的是父节点的下标&#xff0c;属性newDraggableIndex获取到的就是只有父节点的下标。设置子节点不能被拖动&#xff0c;最后在逐个调用接口进行数据库中顺序的更新。 <template>…

两名程序员与一名运维人员历经整整一天的时间,成功解决了 nacos 登录时出现“ERR CONNECTION RESET,用户名或密码错误”这一棘手问题

上图看页面报错 这是网页应用提示的信息&#xff0c;服务器日志没有明显的错误日志&#xff0c;检查了账号密码是正常的。 再上第二张图 把这个信息发到百度上查找 通过上图的信息大概知道网络层的原因&#xff0c;可能是在网络安全方面被重置了 下面我们就验证下 1、在服务…

谈面向任务的多轮对话系统(TOD)

面向任务对话系统&#xff08;Task-Oriented Dialogue (TOD) Systems)主要是为解决特定任务的&#xff0c;比如订票任务&#xff08;订机票&#xff0c;电影票等&#xff09;&#xff0c;预定饭店等。这种对话往往需要多轮对话才能够完成。 多轮对话的例子 客户预定一个餐厅的…

数字力量助西部职教全面提升——唯众品牌大数据、人工智能系列产品中标甘肃庆阳职院数字经济人才培养基地!

近日&#xff0c;唯众品牌凭借在大数据和人工智能领域深耕多年的技术积累和卓越产品&#xff0c;成功中标庆阳职业技术学院全国一体化算力网络国家枢纽节点数字经济人才培养基地项目&#xff0c;标志着唯众在助力西部职业教育与数字经济融合发展的新征程上迈出了坚实的一步。 …

构建Android studio版的CarSystemUI工程时因为包名一致导致BuildConfig问题

项目场景&#xff1a; 公司计划开发杰发AC8025-Android 12版本车载平台&#xff0c;前期预研需要构建Android studio版的CarSystemUI工程 问题描述 AAOS车载项目里面的CarSystemUI源码默认无Android studio版本&#xff0c;为了后期快速开发调试需要构建Android studio能直接…

JavaWeb__XML、http

目录 一 、XML1.1 常见配置文件类型1.1.1 properties配置文件1.1.2 xml配置文件 1.2 DOM4J进行XML解析1.2.1 DOM4J的使用步骤1.2.2 DOM4J的API介绍 二、 HTTP协议2.1 HTTP简介2.2 请求和响应报文2.2.1 报文的格式2.2.2 请求报文2.2.3 响应报文 一 、XML XML是EXtensible Markup…

使用Puppeteer进行数据抓取保存为JSON

Puppeteer简介 Puppeteer是由Google Chrome团队开发的一个Node库&#xff0c;它提供了一个高级API来控制Chrome或Chromium的无头版本。Puppeteer能够执行各种任务&#xff0c;包括页面导航、内容抓取、屏幕截图、PDF生成等。 主要特点 无头浏览器控制&#xff1a;无需打开浏…

HybridCLR + Addressable 热更新篇(一)

目录 前言一、HybridCLR 和 Addressable 是什么&#xff1f;1. HybridCLR2. Addressable 二、使用步骤1.HybridCLR导入2.HybridCLR配置3.Addressable导入4.Addressable配置 前言 随着移动互联网和游戏行业的快速发展&#xff0c;热更新技术变得越来越重要。热更新能够在不重新…

文华财经红绿多空趋势量化买卖点指标公式源码

LC:REF(CLOSE,1); RSI1:SMA(MAX(CLOSE-LC,0),13,1)/SMA(ABS(CLOSE-LC),13,1)*100; RSIF:90-RSI1,COLOR33DD33; A4:((C-LLV(L,33))/(HHV(H,33)-LLV(L,33)))*67; ABC22:LLV(LOW,10); ABC33:HHV(HIGH,25); 动力线:EMA((CLOSE-ABC22)/(ABC33-ABC22)*4,4); RSV:(C-LLV(L,9))/…

【Unity 实用技巧】为游戏截图添加自定义水印LOGO

1. 前言 大家好&#xff0c;我是Mark。在Unity开发中&#xff0c;屏幕截图功能是一项常用的功能&#xff0c;它常用于游戏分享而默认的截图往往缺乏辨识度。本文将介绍如何在Unity中实现带有自定义LOGO的屏幕截图&#xff0c;话不多说开搞~ 2. 最终效果 3. 示例代码 代码比较…

婴幼儿自闭症的六大警示前兆:家长需警惕的早期信号

婴幼儿自闭症是一种复杂的发育障碍&#xff0c;其早期症状往往较为微妙&#xff0c;但若能及早发现并干预&#xff0c;对孩子的成长至关重要。以下是婴幼儿自闭症的六个主要前兆&#xff1a; 首先&#xff0c;目光呆滞与反应迟钝。婴儿期&#xff0c;孩子应能对外界刺激如声音…

Java基础-组件及事件处理(中)

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 BorderLayout布局管理器 说明&#xff1a; 示例&#xff1a; FlowLayout布局管理器 说明&#xff1a; …