2、瑞丽-伯纳德对流的拉格朗日拟序结构(FTLE场结果对比)

news2024/11/25 11:01:08

在上篇博客中,我简单比较了瑞丽伯纳德对流的FTLE场,但是因为粒子追踪采用的是欧拉方法,所以精度不是很高, 因此与文献中的结果还是有些差别。
下面放一张文献中的FTLE场,参数与上篇文章是一致的,Ra = 1e8;Pr = 1;

在这里插入图片描述
本文将详细的介绍如何得到这样的图片,好吧,其实也不是很详细。总之,先展示以下我个人的结果。
在这里插入图片描述

可以看出,上图基本上与文献是一致的,因为这里展示的是瞬时场,所以当然不可能是完全一致,至于提取的LCS结构,我在下面也会提及。

本着详细介绍的原则,所以这里我很良心的从流场计算开始介绍。粒子迁移需要时空离散的流场数据。流场的网格是很好确定的,我这里是DNS,所以网格尺度小于 η \eta η就行。比较重要的是时间步长应该取多少。

1、流场时间步长

首先,根据我的计算参数,我得到流场的无量纲时间 t f = 1.13 s t_f=1.13s tf=1.13s。根据文献, t E = 7 t f = 7.9 s t_E=7t_f=7.9s tE=7tf=7.9s
即一个turn over time(大涡转一圈的时间)。因为积分时间选取为 1 / 2 t E 1/2t_E 1/2tE,所以我这里就凑个整,总共计算8s,积分时间选择4s,然后又凑个整,时间步长分别选取为0.1和0.05,总共为80个和160个时间步,时间步肯定是越小越好,但是存储量也会迅速上升,这里后面会比较这两个时间步得到的结果。
上面我放的图是dt=0.05得到的结果,我们先来以这个为例。

2、积分时间

这个其实文献里已经比较清楚了,我这里还是啰嗦一句。讲一讲如何获得
turn ove time 大涡转一圈的时间, t E = 4 π / < w c > t t_E=4\pi/<w_c>_t tE=4π/<wc>t
我们知道,涡量,也就是速度的旋度,它还等于角速度的两倍,不会的可以去翻书,再不会放弃流体力学吧。这里的思想就是,将转动的大涡看成是一个刚体,所以用中心处的角速度来作为大涡整体的角速度。所以根据这个我们可以得到 t E t_E tE
注意,这里的 w c w_c wc,是有量纲的,即 T − 1 T^{-1} T1,我们需要对其乘以一个 t f t_f tf来对其进行无量纲化,这样才能得到无量纲的 t f t_f tf。这一点文献中没提,但基本上大家都是默认这样操作。

我这里也对文献中的数据进行了验证,分别计算了努塞尔数和 t E t_E tE。结果其实还行,因为本身统计时间太短了,没有考虑统计稳态,统计收敛这些问题。
结果放在这里,供大家参考。
计算0-8时刻内的努塞尔数
Nu:25.35 文献值:25.29
tE:7.202612960718049 文献值: 7.0;

2.1、积分时间的影响

文献中指出,积分时间大于tE时,FTLE场的差别其实不大,下面来看一下我的计算结果。
积分时间:3.6s,见下图
在这里插入图片描述
积分时间:4s:见第二张图。
积分时间:5s,见下图
在这里插入图片描述
可以看出基本的形状是没有发生什么变化的,只不过因为积分时间过长,FTLE的值会变小,这是由于计算FTLE时需要除以时间。

但是基本的结论与文献是保持一致的,这里通过比较发现其实t=3.6s和4s时的结果是比较好的,积分时间为5s能看到有些地方不是那么清晰,可能是由于粒子推进误差的问题。

3、粒子个数的问题

在计算FTLE场时,初始放置的粒子不一定要与网格数保持一致,是可以自由确定的。
我们固定积分时间为4s,即0.5tE,看一下粒子数对FTLE场计算的影响。
粒子数512*512,与流场网格保持一致,如下图
在这里插入图片描述

粒子数600600 如下:
在这里插入图片描述
粒子数700
700 如下(即第二张图):
在这里插入图片描述
可以看出,随着粒子数的增加,其实变化不大,这里粒子数主要影响的是FTLE场的光滑程度,如果粒子太少,可以明显看出场中许多粗糙的地方。我额外做了一组
粒子数:256*256,结果如下图

在这里插入图片描述
可以明显看出分辨率下降。

4、流场数据时间间隔的影响

流场数据的时间间隔直接决定了粒子追踪的精度。
这里我们对比dt = 0.1s和dt = 0.05s的结果
注意,上面展示的都是基于dt=0.05s的结果。
这部分我们依然固定FTLE(2),,积分时间:4s,粒子数固定为512*512;

dt = 0.1的结果,如下图:
在这里插入图片描述

dt=0.05的结果(依然是第二幅图),如下图:
在这里插入图片描述
好吧,其实dt=0.1s的结果还说的过去,我本来以为会很差的,结果基本上跟dt=0.05s是一致的,可以看出我编写的粒子追踪的程序精度还是可以的。那以后就按dt=0.1s算吧这样节省了一倍的内存。

5、提取LCS结构

最后的最后,我们在来讨论一下从FTLE场提取LCS结构,即拉格朗日脊。
这里主要有两种方法,我们就拿dt-0.1;FTLE(2),积分时间4s,粒子数目512*512的结果来讨论吧。

5.1 shadden方法

该方法是由shadden提出的。
简单粗暴。
F T L E > c FTLE>c FTLE>c
所有大于c的网格处的保留,其余的赋,即可得到LCS结构,其实我们的直觉也差不多是这样。
这个主要是根据经验需要调个参,但是效果其实还行。
下图是按这种方法提取的
在这里插入图片描述

5.1 文献方法

F T L E ( x , y ) − ⟨ F T L E ⟩ x > c F T L E r . m . s . . \mathrm{FTLE}(x,y)-\langle\mathrm{FTLE}\rangle_x>c\mathrm{FTLE}_{r.m.s.}. FTLE(x,y)FTLEx>cFTLEr.m.s..
也有个参数需要调,但是这里人家告诉你了,c=1,2时结果还行,至少在文献中。
并且放了一张对比图。
在这里插入图片描述
可以看出也确实还行。但是我对此图表示怀疑。因为文章下面的图就不是这样的了。
在这里插入图片描述
可以看出,明显侧壁的结构要粗很多,并且上下壁面也感觉有些缺失,这是因为与该课题组另一篇文章中的结果差别比较大。
在这里插入图片描述
上下两幅图仅有流场Pr一个是0.7,一个是1,其实对流场的影响不大,但是由同样的方法提取处的LCS差距却着实比较大,明显后一个要更好一点。

下面来看看我利用该方法提取的LCS.(c=0.7)
在这里插入图片描述
怎么说呢,我感觉是有问题的,侧壁明显多了一些FTLE场中看不出的结果。
我们来分析一下他这个方法,大于rms这一项没毛病,其实可以把这一项看成c也无妨,问题主要是在 ⟨ F T L E ⟩ x \langle\mathrm{FTLE}\rangle_x FTLEx,这个项上。
我的理解是在x方向的平均,也就是对于每个高度Y,取切片的平均,但是问题在于,FTLE场明显可以看出,中间高度位置处的FTLE平均明显是要小的,我们可以绘制 ⟨ F T L E ⟩ x \langle\mathrm{FTLE}\rangle_x FTLEx沿高度的变化。
在这里插入图片描述
确实是这样,那么在计算时,侧壁处的将会更容易被识别成LCS.。。。
所以造成了这种情况。我们当然可以提高c值。c=1.2时,即文献中的值时结果如下
在这里插入图片描述
可以看出,上下边界处的一些结果是被忽略掉的。这里我不知道是不是我理解有问题,反正确定怪怪的,这种方法。

插一句,如果我理解的x坐标和他的不一样,即我试了一下在y方向取平均的结果
结果是,平均场的分布是类似的,都是中间小,两头大。
在这里插入图片描述
并且提取的结果上下壁面会变多,侧壁会变少
在这里插入图片描述
对此,我很怀疑
在这里插入图片描述
这种方法能提取出这种结构,但是好像确实这个上下壁面有缺失。
哎呀。。。好烦。。。

感觉还是第一种更加使用,不知道这个单方向求平均的意义在哪。。。

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

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

相关文章

《面试1v1》SpringBean生命周期

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…

python:使用Scikit-image对遥感影像进行边缘检测(edges)

作者:CSDN @ _养乐多_ 本文将介绍使用Scikit-image库中用于边缘检测特征提取的一些方法及其代码。方法包括 Canny边缘检测(canny),Sobel边缘检测(sobel),Scharr边缘检测(scharr), Roberts边缘检测(roberts),Prewitt边缘检测(prewitt),Farid边缘检测(farid),…

HJ48 从单向链表中删除指定值的节点

描述 输入一个单向链表和一个节点的值&#xff0c;从单向链表中删除等于该值的节点&#xff0c;删除后如果链表中无节点则返回空指针。 链表的值不能重复。 构造过程&#xff0c;例如输入一行数据为: 6 2 1 2 3 2 5 1 4 5 7 2 2 则第一个参数6表示输入总共6个节点&am…

Day24 实战篇 ——Jmeter通过JDBC测试实战

Day24 实战篇 ——Jmeter通过JDBC测试实战 文章目录 Day24 实战篇 ——Jmeter通过JDBC测试实战1、**业务级脚本开发**2、**接口级脚本开发**3、**JDBC脚本开发**4、**JMS Point-to-Poibt脚本开发**5、**Jmeter轻量级接口自动化测试框架**(了解就行)1、业务级脚本开发 登录脚…

《2023 年 React 生态》

大家好&#xff0c;我是 Chocolate。 前不久看到一篇不错的内容&#xff0c;来自于 The React Ecosystem in 2023&#xff0c;也结合自己今年使用的 React 生态总结一下。 本文并非视频演讲稿&#xff0c;和视频内容还是有一点点区别&#xff0c;视频内容相对来说会更加详细一…

ffmpeg(一) ffmpeg+QT开发环境搭建

1、开发库的选择 &#xff08;1&#xff09;音视频开发库 每个主流平台基本都有自己的音视频开发库&#xff08;API&#xff09;&#xff0c;用以处理音视频数据&#xff0c;比如&#xff1a; iOS&#xff1a;AVFoundation、AudioUnit 等 Android&#xff1a;MediaPlayer、Me…

Flink 学习九 Flink 程序分布式运行部署

Flink 学习九 Flink 程序分布式运行部署 1.Job 执行计划 层级说明备注StreamGraph用户代码生成的最初的图程序的运行流程图JobGraph将多个符合条件的节点多个符合条件的节点合并,减少序列化和反序列化ExecutionGraphJobGraph 的并行化调度层的核心数据结构PhysicalGraphJobMa…

【计算机组成原理】信息编码与数据表示

目录 一、进位计数制 二、信息编码 三、定点数的表示 四、校验码 五、浮点数的表示 一、进位计数制 整数部分&#xff1a; 二进制、八进制、十六进制 ---> 十进制&#xff1a;加权求和二进制 ---> 八进制&#xff1a;每三位分为一组&#xff0c;转为八进制…

CloFormer实战:使用CloFormer实现图像分类任务(一)

文章目录 摘要安装包安装efficientnet_pytorch安装timm安装 grad-cam 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文翻译&#xff1a;https://blog.csdn.net/m0_47867638/article/details/131161083 官方源码&#xff1a;https://github.com/qhfan/CloF…

faceswap安装教程图文详解

Faceswap是一种人脸识别技术&#xff0c;可以将一个人的面部特征与另一个人的面部特征进行交换&#xff0c;从而创建出一个看起来像是两个人融合在一起的图像或视频。这项技术可以用于各种目的&#xff0c;包括艺术创作、电影制作、虚拟现实、安全监控等领域。Faceswap的实现方…

UE特效案例 —— 寒冰武器

一&#xff0c;环境配置 创建默认地形Landscape&#xff0c;如给地形上材质需确定比例&#xff1b;添加环境主光源DirectionalLight&#xff0c;设置相应的强度和颜色&#xff1b;PostProcessVolume设置曝光&#xff0c;设置Min/Max Brightness为1&#xff1b; 与关闭Game Sett…

怎样开始用selenium进行自动化测试?

如果您刚开始使用 Selenium 进行自动化测试&#xff0c;以下是建议的步骤。 1、安装 Selenium 首先&#xff0c;您需要安装 Selenium。Selenium 支持多种编程语言&#xff0c;如 Python、Java、C# 等。可以通过 pip 命令在 Python 中安装 Selenium&#xff1a; pip install …

CloFormer实战:使用CloFormer实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整算法设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试热力图可视化展示…

秀米编辑器(xiumi)+百度编辑器(Ueditor) 集成 :解决集成问题,秀米编辑器导出到百度编辑器格式问题,图片保存到自己的服务器(阿里云OSS)

1.集成前提条件&#xff1a; 1. 需要集成百度编辑器到环境中 2.https环境下才可以导出数据到百度编辑器&#xff0c;如果不是https环境&#xff0c;会出现错误 然后我们开始讲解如何集成&#xff1a; 2.引入资源&#xff1a; //百度编辑器需要修改的文件&#xff08;配置与原始…

测试入门第一步------编写接口测试用例

自动化始终只是辅助测试工作的一个手段&#xff0c;对于测试人员而言&#xff0c;测试基础和测试用例的设计才是核心。如果测试用例的覆盖率或者质量不高&#xff0c;那将这部分用例实现为自动化用例的意义也就不大了。 那么&#xff0c;接口测试用例应该怎么编写呢&#xff1…

Spring boot集成RabbitMq

Spring boot集成RabbitMq 一、搭建RabbitMq1.1 参考1.2 配置erlong的环境变量1.3 RabbitMQ对应的在注册表中的位置 二、使用教程2.1 打开服务端2.2 注意的问题2.3 Queue的包 三、git命令3.1 git remote3.2 git remote add origin "xxxx"3.3 git push -u origin maste…

使用esp32+micropython+microdot搭建web(http+websocket)服务器(超详细)第一部分

使用esp32micropythonmicrodot搭建web(httpwebsocket)服务器&#xff08;超详细&#xff09;第一部分 microdot文档速查 什么是Microdot?Microdot是一个可以在micropython中搭建物联网web服务器的框架micropyton文档api速查 Quick reference for the ESP32 先来个小demo先体…

数据仓库——原理+实战(一)

一、数据仓库概述 1. 数据仓库诞生原因 &#xff08;1&#xff09;历史数据积存&#xff08;存放在线上业务数据库中&#xff0c;当数据积压到一定程度会导致性能下降&#xff0c;所以需要将实用频率低的冷数据转移到数据仓库中&#xff09; &#xff08;2&#xff09;企业数…

【C++11】线程库

文章目录 1. get_idthis_thread 2. 锁1. 为什么要使用锁&#xff1f;2. 锁的使用并行 与 串行递归锁 recursive_mutextimed_mutexlock_guard 与 unique_lock 3. atomic4. 条件变量线程等待线程唤醒条件变量的应用问题1&#xff1a;如何保证 v1先运行&#xff0c;v2阻塞&#xf…

python的tqdm一些操作

主要参数 iterable: 可迭代的对象, 在手动更新时不需要进行设置 desc: str, 左边进度条的描述性文字 total: 总的项目数 leave: bool, 执行完成后是否保留进度条 file: 输出指向位置, 默认是终端, 一般不需要设置 ncols: 调整进度条宽度, 默认是根据环境自动调节长度, 如果设置…