SPH方法计算流体表面张力
SPH算法简介(五):表面张力的计算-腾讯游戏学堂 (qq.com)
转载上述链接,以便于后续科研过程中回看使用,如涉及侵权,私聊告知,立刻删除!
著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
所谓表面张力,正如前面所讲,就是由于流体“试图减小表面积”而产生的力,这种力产生的效果非常有趣,它会使肥皂膜紧绷,使水滴变成球形,但在大部分SPH应用场合中,和其他力相比,表面张力产生的效果其实是微乎其微的,所以常常忽律表面张力的计算。
如果要想计算表面张力,就要考虑它的特殊性质,首先只有位于流体表面的粒子才会受到表面张力的影响,所以第一个问题就是如何找到那些处于“表面”的粒子。
首先构造这么一个标量场,在有流体粒子的位置都染上一个“颜色值”1,其他位置的”颜色值”都是0,针对二维情况说明,这就好像构造了类似于一个“高度图”的标量场。
根据光滑核原理,流体内任意一点r所在位置的“颜色”值为
(5.1) |
---|
对这个标量场做哈密顿运算,回想一下我们以前提到的梯度的概念,所得到的梯度场∇cs可以给我们两个信息,第一,由于梯度反应的是标量场中“变化的程度”,所以只有在流体的边界部分才会有比较大的梯度值,而内部的梯度值几乎为0,根据这个特性可以用来判断粒子是否处于表面,第二,梯度场的方向指向大值部分,也就是流体的内部,而这正是表面张力的方向。
而表面张力的大小,则跟流体表面的“曲率”有关,这个值可以根据颜色值的拉普拉辛算子计算
(5.2) |
---|
最终的表面张力还需要乘上一个系数和方向矢量:
(5.3) |
---|
其中σ被称为表面张力系数,跟流体的材质有关,所使用的光滑核函数和计算密度时的一样,都是Poly6,在3D情形下,它的哈密顿形式和拉普拉辛形式分别是:
(5.4) |
---|
(5.5) |
---|
最后可以求出受表面张力影响,粒子产生的加速度部分
(5.6) |
---|
SPH方法计算流体表面张力相关推荐
- 使用overlap-add方法计算两个信号的卷积示例(在频域计算卷积)
之前已经写过一篇使用overlap-add方法计算两个信号的卷积示例 本篇将卷积部分的计算从时域改为频域,基本操作步骤不变 示例代码如下: import numpy as npdef get_bloc ...
- JavaScript实现动态规划方法计算特定位置的斐波那契数fibonacciNth算法(附完整源码)
JavaScript实现动态规划方法计算特定位置的斐波那契数fibonacciNth算法(附完整源码) fibonacciNth.js完整源代码 fibonacciNth.js完整源代码 export ...
- Java黑皮书课后题第6章:6.11(金融应用:计算酬金)编写方法,利用编程练习题5.39中的方法计算酬金。方法头如下所示。编写程序,显示下面表格
6.11(金融应用:计算酬金)编写方法,利用编程练习题5.39中的方法计算酬金.方法头如下所示.编写程序,显示下面表格 题目 题目描述与运行示例 编程练习题5.39(非本题) 破题 5.39处理 主方 ...
- pkpm板按弹性计算还是塑性_双向板按弹性方法还是按塑性方法计算
双向板按弹性方法还是按塑性方法计算 茅老师您好!想请教您个问题,PKPM计算双向板时一般都是按弹性算吧,可我去年刚进设计院的时候有一个项目是按塑性算的,这样影响大不大啊,支座与跨中弯矩比值系数取得默认 ...
- Python---利用蒙特.卡罗方法计算圆周率近似值
利用蒙特.卡罗方法计算圆周率近似值 什么是蒙特.卡罗方法? 答:蒙特卡罗方法是一种计算方法.原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值. 正方形内部有一个相切的圆,它们的面积之比是π ...
- 桩筏有限元中的弹性板计算_采用PKPM系列JCCAD软件桩筏筏板有限元方法计算的模型参数 -...
*****采用PKPM系列JCCAD软件桩筏筏板有限元方法计算的模型参数****** 计算模型: 弹性地基梁板模型 (桩和土按WINKLER模型) 地基基础形式及参照规范: 天然地基(地基规范).常规 ...
- 【例1】 给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n。
/* [例1] 给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n. [算法分析]本题可以用递归方法求解,其原因在于它符合递归的三个条件:(1)本题是累加问题:当前和=前 ...
- linux中date使用方法,linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)...
linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例) 发布于 2016-02-07 15:58:40 | 108 次阅读 | 评论: 0 | 来源: 网友投递 LinuxLinux是一 ...
- dfa matlab用法,关于使用MF-DFA方法计算广义Hurst指数的MATLAB操作问题
我在论坛上复制了一个代码,是使用MF-DFA方法计算广义Hurst指数的,但不知道需填入的各个变量的名称,我是零基础,但任务时间很紧,来不及现学,所以想先用来算个数,请各位高手指教,不胜感激! 请问括 ...
最新文章
- 【转】Word2007中不连续页码设置 多种页码设置
- 前端开发时间格式的转换方法_开发人员投资时间而不浪费时间的10种方法
- 有线电视网(洛谷-P1273)
- 高德地图车道级导航适配OPPO Find N折叠屏手机
- JavaScript中一些常用的方法整理
- Java之导入Excel 后端篇
- 51单片机多种方式点亮LED
- TurboCAD Mac Pro 12(CAD设计绘图软件)
- 微信网页第三方登录原理
- retrofit简单的网络请求
- 苦涩又难理解的IO<1>
- 在el-form-item 重置label宽度
- 算法笔记_110:第四届蓝桥杯软件类省赛真题(JAVA软件开发高职高专组部分习题)试题解答...
- (Modern Family S01E04) Part 2 PhilClaire Luke和Haley玩游戏 Haley想去音乐会父母不同意
- 安利几本好看的书给你
- Axure 初学者必看:自学 Axure 需要花多长时间?
- 2.5 C语言入职例程二:指针
- 如何提交项目到git
- Hive 客户端工具
- mysql表中文字段提取拼音首字母最便捷实现,中文按拼音首字母排序
热门文章
- Android自定义View实现三角到八角的属性分布图-雷达图(蜘蛛网图)
- Extjs——初步学习
- postfix中间件--Amavisd-new--反垃圾和反病毒配置
- function的用法()
- Android开发入门 - 简易开心消消乐界面设计
- 2008 r2服务器日志文件,Windows2008R2共享文件访问日志查询的设置方法
- mysql函数名称顿号,快速统计一个单元格内有多少个名字,你不会是一个一个数的吧...
- 【今日CV 计算机视觉论文速览 第128期】Mon, 10 Jun 2019
- java中输入日期_Java中的日期操作
- 计算机统考多媒体技术操作题,2020年9月网络教育统考《计算机应用基础》多媒体技术模拟题试卷操作题...