【流体模拟】第一章 流体方程

坐标假设:y向上,x-z水平面。

不可压缩流体的斯托克斯方程:

速度场u,时间t,密度(density)ρ,压力p(the force per unit area that the fluid

exerts on anything.),g重力加速度,v动力学粘滞系数(kinematic viscosity)(it measures how much the fluid resists deforming while it flows (or more intuitively, how difficult it is to stir))。

方程1.1可以拆成各个基向量的分量方程。

动量方程

这个方程说到底就是牛顿第二定律。他告诉我们流体如何在力的作用下运动。

我们先将一团流体考虑成一个粒子,考虑每个例子上的作用力,首先是重力mg,然后是净压力- ∇p,然后是粘滞力,一个粘滞流体会抵抗变形,这个力将会使粒子具有相邻粒子的平均速度,也就是最小化粒子之间速度的差异。所以我们使用拉普拉斯微分算子∇ · ∇(*),这个算子度量一个量距离平均有多远(考虑图像处理中边缘检测的应用),如果我们对这一团粒子积分就能得到粘滞力,我们将使用η来表示粘滞系数,所以有η∇ ·∇u。

现在我们引出一个新的概念叫做material导数,并以此求出加速度(具体的以后会提及):

于是根据牛顿第二定律我们有:

我们将这团流体体积取极限,V变成了无穷小,我们先把他约掉得到:

现在这个粒子假设已经不存在了,然后两边同时除以密度得:

定义动力学粘滞系数为v = η/ρ有:

material导数

为了理解material导数我们先要理解两种观点——拉格朗日观点和欧拉观点。

拉格朗日观点将流体看成移动的粒子来处理,而欧拉观点则关注空间中的固定点。数值上,拉格朗日观点对应粒子,欧拉观点则对应固定的网格。

Material导数可以连接这两种观点。

在拉格朗日观点下描述t时刻在位置x的一个粒子的某一个量q时,有q(t,x)函数,作全微分可以求出此q的变化率:

这就是material导数。

在<<Fluid Simulation Computer Graphics>>中P9例子中的temperature profile T(x)=10x描述了在静止坐标系的T,而x则可能是t的函数。这样一来,两种观点就可以结合了。

最后我们将式子展开就有:

这就是动量公式。

∇ · ∇=0被称为拉普拉斯方程,而∇ · ∇=0则被称为泊松方程。

不可压缩性

取任意一戳流体体积V,DV是其边界表面,通过下列式子来度量体积变化快慢(对表面法向速度积分)

对于不可压缩流体,体积是常数,所以:

可以使用散度定理将其变换为体积分:

所以有下式:

然而这个方程应该对于任何的V(任何区域的流体)都成立,所以对于连续函数有下式:

∇ · u = 0

这就是不可压缩纳威斯托克斯方程的不可压缩条件。满足这个条件的向量场就叫做divergence-free的。

保持这个条件是模拟不可压缩流体棘手的地方之一。同是这也是压力的由来。

考虑压力的一个方法就是保持流体速度的divergence-free。

压力只出现在动量方程之中,所以我们需要想个方法把他和速度的散度联系起来。

我们在动量方程两边取散度:

第一项∇放到u前面跟不不可压缩条件有:

丢弃粘滞力

在一些情况下粘滞力很重要,比如蜂蜜或者小规模流体流。但是大多数情况下,他还是次要角色,所以我们丢了他。但事实上,多数数值方法的流体模拟都不可避免的会导致可以被解释为粘滞力的错误,所以即使我们丢了粘滞力,我们在模拟中依然会有一些类似的效果。实际上,尽可能的消除粘滞错误是CFD的一个巨大挑战。我们在以后会谈及搞粘性流体和多粘性流体,但是除此之外,我们都将假设已经丢弃了粘滞力。

没有粘滞力项的流体方程叫做欧拉方程,也叫做非粘滞流体(inviscid)。下面是不可压缩的欧拉方程:

这将是我们用的最多的方程。

边界条件

本文只会涉及两种边界条件——实体边界墙和自由表面。并且不会涉及到两种不同的流体交界,如果你感兴趣请参考[Hong and Kim 05]。

实体边界墙

速度:

前者流体不会流入或者流出它,所以:

如果边界还在移动,那么令相对速度等于0.

注意:其中法向是朝向边界的。这种情况有时被称为无粘性(no-stick)边界。因为流体可以在边界切向自由滑动,所以很重要的一点是:流体的切向速度和边界实体的切线速度没有任何联系。

压力:

项会应用到边界上,所以压力会在边界墙上控制,即

自由表面:

P=0

注意:

小规模水体的表面张力,空气与流体交界,交界处压力跳跃,流体解体。这些不仔细说明了。参考相关文献。

时间: 2024-10-08 01:12:17

【流体模拟】第一章 流体方程的相关文章

特效模拟:SPH流体模拟及液面重构问题

这里是关于特效模拟算法的一些叙述,主要是流体模拟部分的研究. 目前动画领域内的流体模拟主要是拉格朗日法无网格法和欧拉网格法,两种方法更有利弊. 我研究的主要是拉格朗日法中的SPH模型,即光滑粒子流体动力学模型. 粒子方法非常适合模拟大形变流体.液滴飞溅等复杂场景. 现今SPH算法已经有了很多改进,包括对流体真实感.时间复杂度以及并行方案的改进等,在去年的SIGGRAPH,清华大学发表了一篇关于SPH流固耦合的文章,时至今日SPH已经在很多领域进行了研究和应用. 我准备实现的是PCISPH(Pre

2014年软考-信息技术处理员-模拟试题及答案【第一章】

51CTO学院,在软考备考季特别整理了"2014年软考信息技术处理员模拟试题及答案[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考-信息技术处理员-模拟试题及答案[汇总篇]  ●在计算机内部用来传送.存储.加工处理的数据或指令都是以____(1)_B___形式进行的. A. 十进制码 B.二进制码 C.八进制码 D.十六进制码 ●如果一个存储单元能存放一个字节,那么一个32KB的存储器共有____(2)_B__

数据结构第一章

证明数据结构分析中的结论的两个常用的方法时归纳法和反证法 归纳法:第一步是证明基准情形,就是确定定理对于某个小的值的正确性,(这一步几乎是很简单的 第二部,进行归纳假设,一般来说,这意味着假设定理对直到某个有限数k的所有的情况都成立的,然后使用这个假设证明定理对于下一个值也是成立的. 反证法:通过假设定理不成立,然后证明该假设导致某一个已知性质不成立,从而说明原假设是错误的. 反证法和归纳法不同处,归纳发从基础出发,反证法从结论出发. 什么是递归:当一个函数用他自己来定义时就称为是递归. 不是所

第一章 快速入门

C++ Primer 中文版,第4版 /* 第一章 快速入门第二章 变量和基本类型第三章 标准库类型第四章 数组和指针第五章 表达式第六章 语句第七章 函数第八章 标准IO库第九章 顺序容器第十章 关联容器第11章 泛型算法 第12章 类 第13章 复制控制 第14章 重载操作符与转换第15章 面向对象编程第16章 模板和泛型编程第17章 用于大型程序的工具第18章 特殊工具与技术 */ /* 第一部分:基本语言------------------------------------------

《Deep Learning》译文 第一章 前言(中) 神经网络的变迁与称谓的更迭

转载请注明出处! 第一章 前言(中) 1.1 本书适合哪些人阅读? 可以说本书的受众目标比较广泛,但是本书可能更适合于如下的两类人群,一类是学习过与机器学习相关课程的大学生们(本科生或者研究生),这包括了那些刚刚开始深度学习和AI研究的同学们:另一类是有机器学习或统计学背景的,想快速将深度学习应用在其产品或平台中的软件开发者们.深度学习早已被证实可以在许多软件应用中发挥光和热,比如:计算机视觉.语音与视频处理.自然语言理解.机器人学.生物学与化学.电视游戏.搜索引擎.在线广告与金融学等等. 为了

Pro ASP.NET Core MVC 第6版 第一章

第一章 ASP.NET Core MVC 的前世今生 ASP.NET Core MVC 是一个微软公司开发的Web应用程序开发框架,它结合了MVC架构的高效性和简洁性,敏捷开发的思想和技术,和.NET 平台的最好的部分.在本章,我们将学习为什么微软创建ASP.NET Core MVC, 看看他和他的前辈的比较以及和其他类似框架的比较,最后,大概讲一下ASP.NET core MVC里面有什么新东西,还有本书中包括哪些内容. 了解ASP.NET Core MVC的历史 最开始的ASP.NET 诞生

Android开发艺术探索——第一章:Activity的生命周期和启动模式

Android开发艺术探索--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activity搬上来了,也确实,和Activity打交道的次数基本上是最多的,而且他的内容和知识点也是很多的,非常值得我们优先把他掌握,Activity中文翻译过来就是"活动"的意思,但是主席觉得这样翻译有些生硬,直接翻译成"界面"可能更好,的确,Activity主要也是用于UI效

[MOOC笔记]第一章 绪论(数据结构)

1.  计算 学习DSA的目的是实现有效的和高效的计算,同时在资源消耗的方面做到足够的低廉. 计算 = 信息处理:借助某些工具,遵照一定规则,以明确而机械的形式进行. 计算模型 = 计算机 = 信息处理工具 算法:在特定的计算模型下,旨在解决特定问题的指令序列. 算法的要素: 输入 待处理的信息(问题) 输出 经处理的信息(答案) 正确性 的确可以解决指定的问题 确定性 任一算法都可以描述为一个由基本操作组成的序列 可行性 每一基本操作都可实现,且在常数时间内完成 有穷性 对于任何输入,经有穷次

第一章线程管理

Java 7 并发编程实战手册目录 代码下载(https://github.com/Wang-Jun-Chao/java-concurrency) 第一章线程管理 1.1简介 在计算机领域中,我们说的并发(Concurrency)是指一系列任务的同时运行.如果一 台电脑有多个处理器或者有一个多核处理器,这个同时性(Simultaneity)是真正意义的并 发:但是一台电脑只有一个单核处理器,这个同时性并不是真正的并发 与并发相关的另一个概念是并行(Parallelism).与并发有不同的定义一样