使用动态网格的流体动画 Fluid Animation with Dynamic Meshes 论文阅读笔记

目录

  • 引言
  • 背景
  • 方法
    • 离散化
      • 离散化的导数算子
      • 速度插值
    • 广义的半拉格朗日步
    • 重新网格化
    • 双向流固耦合和质量守恒

原文:

Klingner, Bryan M., et al. “Fluid animation with dynamic meshes.” ACM SIGGRAPH 2006 Papers. 2006. 820-825.

引言

使用 [Alliez et al., 2005] 的方法动态生成不规则的四面体网格

根据边界的位置、边界的形状、基于流体和速度场的视觉重点部分的标准来构建一个尺寸场。这个尺寸场表明要生成的四面体网格在某点处的尺寸

使用不规则的网格,而不是轴对称的,因为不规则的网格更加适应弯曲边界和不规则边界

并且不规则的网格允许控制网格细分

推广半拉格朗日平流,将物理量从旧网格传输到新网格,不会造成额外的平滑

然后执行质量守恒步,这步被拓展为流固双向耦合

背景

[Feldman et al., 2005a] 使用基于速度的非结构化四面体网格

[Elcott et al., 2005] 使用基于涡度的非结构化西面体网格

[Feldman et al., 2005b] 提出的半拉格朗日平流的拓展,不会造成额外的平滑

这个文章综合以上论文的思想

任意拉格朗日-欧拉法 arbitrary Lagrangian-Eulerian (ALE) 就是用于处理固定坐标系下的移动网格,它能够有效地处理高度可变形的弹性材料

使用 [Alliez et al., 2005] 的方法动态生成不规则的四面体网格

该方法是 Delaunay,提供了改进的梯度估计;简化了网格中的速度插值的表达式

方法

[Feldman et al., 2005b] 提出的半拉格朗日平流的拓展,它被用于将状态在变形域之间转移。现在这个文章将他用在将物理量从旧网格传输到新网格,不会造成额外的平滑

[Alliez et al., 2005] 的方法使得在每个时间步生成四面体网格的时间成本可以接受

离散化

交错网格推广到四面体,得到交错四面体法

压力定义在四面体的体心

面法线速度定义在四面体的外心

离散化的导数算子

使用 [Losasso et al., 2004] 和 [Elcott et al., 2005] 中的公式

散度近似为面法线速度的,以面积为权重的加权平均

面的外心处的沿着面法向的梯度使用有限差分计算

在 Delaunay 网格中,连接两个相邻四面体的体心的线穿过它们的公共面的外心

这个特性自然地引出了将速度存储在面的外心处的策略

因为梯度估计相当于对外心值进行插值的分段线性函数的梯度

“对外心值进行插值的分段线性函数的梯度”不知道是什么

速度插值

现在我们只是对于一个四面体定义了存储在面的外心处的面法线速度

但是使用半拉格朗日平流的时候,我们需要在网格的任意位置得到完整的速度矢量

使用 [Elcott et al., 2005] 的两步法

第一步,计算四面体的每个面的外心处的速度矢量

第二步,使用顶点处的速度矢量插值得到网格中任意位置的速度矢量

不知道为什么从面的外心处的速度矢量跳到了顶点处的速度矢量?

求解四面体的速度 u t u_t ut 需要求解一个小型的线性方程组

N t u t = z t N_t u_t = z_t Ntut=zt

其中 N t N_t Nt 是 4 行面的法向, z t z_t zt 是 4 个面法向速度标量排成一列,

其实这个就是,把四面体的速度向四个面法向投影,得到四个面法向速度的意思

如果是无散的话,那么这个投影就是精确的

那么 u t u_t ut z t z_t zt 就可以来回转换

我在想象一个极端情况,一个正四面体,三个面的法向速度都是正无穷大, 那么最后一个面应该是负无穷大才能无散。但是我又想把这个“精确”和线性方程组的解的存在性联系起来。因为 N t N_t Nt 是 4 * 3, u t u_t ut 是 3 * 1, z t z_t zt 是 4 * 1。也就是至少有一个多余的方程。四个法向因为都定义在三维空间,所以最后应该能化简为三个自由度。也就是系数矩阵的秩为 3,增广矩阵的秩不一定是 3,可能是 4,所以我想用解的存在性来解释的话。就是,如果增广矩阵的秩是 4,说明无解,如果为 3 说明有唯一解。增广矩阵是 3 对应着“精确”?

得到四面体的速度之后,要得到任意位置的速度,使用 [Warren et al., 2004] 的方法在四面体的速度之间加权平均

在这里插入图片描述

σ t \sigma_t σt 是与插值位置所在的四面体相交的四面体的集合

x x x 是从插值位置到 σ t \sigma_t σt 中的四面体的面的距离, n f n_f nf 是对应的四面体的面的法向

d f d_f df 是平面偏差,我没理解

∣ N t ∣ \vert N_t \vert Nt 是插值位置所在的四面体的面法向组成的矩阵的行列式

为了简化计算,利用了“在 Delaunay 网格中,连接两个相邻四面体的体心的线穿过它们的公共面的外心”的性质

在这里插入图片描述

Vol(t) 是插值位置所在的四面体的体积

广义的半拉格朗日步

利用 [Feldman et al., 2005b] 的方法

在这里插入图片描述

重新网格化

[Alliez et al., 2005] 的划分网格的方法

网格的细化由一个函数控制

在这里插入图片描述

k0 是一个偏移,提供最小值

d(x) 是点 x 到最近的障碍物的距离

s(x) 是烟雾的密度

w(x) 是速度场的涡度

这就达成了在视觉重点的部分细化网格的结果

网格划分方法是迭代的。因为每一个时间步之间流体状态应该不会变化太快,所以用上一个时刻的值作为下一个时刻的初始值,以加速迭代

在优化节点位置时,我们将节点移动到周围四面体重心的平均值,而不是外心。我们发现,虽然这往往会稍微降低网格中四面体的平均质量,但它通常会导致网格中最差元素的质量显着提高,这是数值模拟更关心的

双向流固耦合和质量守恒

流固耦合和质量守恒的条件罗列到一起:

  1. 界面处的法向与速度的法向相同

  2. 速度场无散(质量守恒),固体刚性

  3. 线动量和角动量守恒

依次执行这些条件时,后执行的条件可能破坏以前的条件

现在这个文章同时执行这些条件

将质量守恒扩展到包括动态刚体,这是通过求解流体和刚体的加速度,忽略两者的压力来实现的(看不懂)。然后再求解满足流体无散条件和刚体边界条件的压力

就是说,先求两者的加速度,然后再求满足这两者的加速度的压力?这样就能求得兼顾两者的压力?

刚体的加速度时通过 R 乘以刚体周围一圈的压力组成的向量而得到的

在这里插入图片描述

在这里插入图片描述

很好,之后的看不懂了,要是需要再看吧

总结来说,感觉他就是把各个方法组合在了一起而已……

他把别人生成不规则四面体网格和半拉格朗日平流的算法结合了起来,然后自己稍微修改了一下,修改了西画网格的控制函数,流固耦合的方法

虽然我看不懂具体在说什么,因为我没看过他使用的别人的方法的源论文

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

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

相关文章

SpringBoot+Kafka

文章目录 一、依赖二、配置文件三、API1、生产者2、消费者 一、依赖 <!-- spring-kafka&#xff08;与kafka的版本一致&#xff09; --> <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId>…

openai公司的chatgpt-3.5参数库内还未增加sora的语料信息

openai公司的chatgpt-3.5参数库内还未增加sora的语料信息&#xff01;我想通过openai公司的chatgpt3.5来了解一下关于sora的技术信息&#xff0c;结果呢&#xff0c;它竟然回答不知道sora是什么。看来&#xff0c;sora的语料库信息还未来得及加入chatgpt3.5的训练模型中。 如图…

每日学习总结20240219

每日总结 20240219 1.文件类型.csv CSV文件是一种以逗号分隔值&#xff08;Comma-Separated Values&#xff09;为标记的文本文件&#xff0c;它可以用来存储表格数据。每一行表示一条记录&#xff0c;而每一条记录中的字段则使用逗号或其他特定的分隔符进行分隔。 常用场景…

HTTP特性

大家好我是苏麟 , 今天说说HTTP特性. 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 到目前为止&#xff0c;HTTP 常见到版本有 HTTP/1.1&#xff0c;HTTP/2.0,HTTP/3.0&#xff0c;不同版本的 HTTP 特性是不一样的。 这里先用 HTTP/1.1 版本给大家介…

二级 C 语言笔试-16

一、选择题 1. 程序流程图中带有箭头的线段表示的是( )。 A) 图元关系 B) 数据流 C) 控制流 D) 调用关系 2. 下列描述中正确的是( )。 A) 程序就是软件 B) 软件开发不受计算机系统的限制 C) 软件既是逻辑实体&#xff0c;又是物理实体 D) 软件是程序、数据与相关文档的集合 3. …

Nginx https反向代理

接前一篇文章&#xff0c;今天看看https的反向代理怎么配置。 生成自签名证书和私钥 要使用https&#xff0c;首先需要有证书和私钥&#xff0c;这里创建一个测试用的自签名证书和私钥。 使用 openssl 命令生成服务器私钥文件 openssl genrsa -out server.key 2048生成证书…

Golang - 使用CentOS 7 安装Golang环境

文章目录 操作步骤 操作步骤 为在CentOS 7上安装Go语言环境&#xff0c;可以按照以下步骤进行操作&#xff1a; 下载Go语言包&#xff1a; 从官方网站 https://golang.org/dl/ 下载适用于Linux的Go语言包。 解压缩Go语言包&#xff1a; 使用以下命令解压缩下载的Go语言包 […

CyberDAO:web3时代的引领者

Web3.0正在改写着世界运行的规则&#xff0c;AGI将为人类未来的生产效率、工作方式与目标带来改变&#xff0c;区块链经过十余年发展开启了去中心化新格局&#xff0c;带来生产关系的变革。人类正在从过往以时间换取收入、听命完成工作&#xff0c;转变为以个性化、自主追求人生…

OpenAI Sora视频模型技术原理报告解读

▌01. OpenAI Sora 视频生成模型技术报告总结 •不管是在视频的保真度、长度、稳定性、一致性、分辨率、文字理解等方面。 •技术细节写得比较泛&#xff08;防止别人模仿&#xff09;大概就是用视觉块编码&#xff08;visual patch&#xff09;的方式&#xff0c;把不同格…

数据采集三防平板丨三防平板电脑丨停车场应用

随着现代科技的不断发展&#xff0c;三防平板已经成为许多人工作和生活的必备工具。在停车场这个场景中&#xff0c;三防平板的应用可以大大提高停车场管理的效率和安全性。 停车场是现代城市交通管理的重要组成部分&#xff0c;它直接关系到城市交通的流畅和公共安全。停车场…

RK3588平台开发系列讲解(视频篇)ffmpeg 的移植

文章目录 一、ffmpeg 介绍二、ffmpeg 的组成三、ffmpeg 依赖库沉淀、分享、成长,让自己和他人都能有所收获!😄 📢ffmpeg 是一种多媒体音视频处理工具,具备视频采集功能、视频抓取图像、视频格式转换、给视频加水印并能将视频转化为流等诸多强大的功能。它采用 LGPL 或 G…

C++知识点总结(16):结构体排序

课程大纲 一、常见排序方法1. 桶排序2. 冒泡排序3. 选择排序4. 插入排序 二、结构体排序1. 融入实际2. 认识结构体2.1 概念2.2 框架2.2.1 存储2.2.2 输入输出2.2.3 结构体数组2.2.4 例题2.2.4.1 结构体读写2.2.4.2 结构体交换 三、sort函数1. 使用方法2. 固定格式 四、结构体和…

Rofin罗芬Laser激光DQ80设备操作说明书

Rofin罗芬Laser激光DQ80设备操作说明书

计算机视觉的应用23-OpenAI发布的文本生成视频大模型Sora的原理解密

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用23-OpenAI发布的文本生成视频大模型Sora的原理解密。本文概况性地将Sora模型生成视频主要分为三个步骤&#xff1a;视频压缩网络、空间时间潜在补丁提取以及视频生成的Transformer模型。 文章目录…

【lesson62】网络通信UdpSocket版

文章目录 UdpSocketUdpServer.hppUdpServer类成员变量解释成员函数解释 UdpServer的实现ServerIinit的实现socketbindhtonsinet_addr具体实现 ServerStart的实现recvfromsendtontohsinet_ntoa具体实现 ~UdpServer函数实现UdpServer.hpp整体完整代码 UdpServer.ccUdpClient.ccTh…

CDP和Chrome

CDP和Chrome CDP和WebDriver Protocol WebDriver和 Chrome DevTools Protocol&#xff08;CDP&#xff09; 是用于自动化浏览器的两个主要协议&#xff0c;大多数的浏览器自动化工具都是基于上述其中之一来实现的。可以通过这两种形式来和浏览器交互&#xff0c;通过代码来控…

拉链表的概念设计与实现

拉链表 一、概念 拉链表是针对数据仓库设计中表存储数据的方式而定义的&#xff0c;所谓拉链&#xff0c;就是记录历史。记录一个事物从开始&#xff0c;一直到当前状态的所有变化的信息。 用处&#xff1a; 解决持续增长且存在一定时间时间范围内重复的数据 场景&#xff1…

ElementUI +++ Echarts面试题答案汇总

官网地址&#xff1a;http://element-cn.eleme.io/#/zh-CN ElementUI是一套基于VUE2.0的桌面端组件库&#xff0c;ElementUI提供了丰富的组件帮助开发人员快速构建功能强大、风格统一的页面。 ElementUi是怎么做表单验证的&#xff1f;在循环里对每个input验证怎么做呢&#x…

探索海洋世界,基于DETR(DEtection TRansformer)模型开发构建海洋场景下海洋生物检测识别分析系统

前面的博文中&#xff0c;开发实践过海底相关生物检测识别的项目&#xff0c;对于海洋场景下的海洋生物检测则很少有所涉及&#xff0c;这里本文的主要目的就是想要开发构建基于DETR的海洋场景下的海洋生物检测识别系统。 首先看下实例效果&#xff1a; DETR (DEtection TRans…

【机器学习笔记】 15 机器学习项目流程

机器学习的一般步骤 数据清洗 数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序&#xff0c;包括检查数据一致性&#xff0c;处理无效值和缺失值等。与问卷审核不同&#xff0c;录入后的数据清理一般是由计算机而不是人工完成。 探索性数据分析(EDA 探索性数据…