SPH算法简介(五):表面张力的计算-腾讯游戏学堂 (qq.com)

转载上述链接,以便于后续科研过程中回看使用,如涉及侵权,私聊告知,立刻删除!

著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

所谓表面张力,正如前面所讲,就是由于流体“试图减小表面积”而产生的力,这种力产生的效果非常有趣,它会使肥皂膜紧绷,使水滴变成球形,但在大部分SPH应用场合中,和其他力相比,表面张力产生的效果其实是微乎其微的,所以常常忽律表面张力的计算。
        如果要想计算表面张力,就要考虑它的特殊性质,首先只有位于流体表面的粒子才会受到表面张力的影响,所以第一个问题就是如何找到那些处于“表面”的粒子。
        首先构造这么一个标量场,在有流体粒子的位置都染上一个“颜色值”1,其他位置的”颜色值”都是0,针对二维情况说明,这就好像构造了类似于一个“高度图”的标量场。

根据光滑核原理,流体内任意一点r所在位置的“颜色”值为

(5.1)

对这个标量场做哈密顿运算,回想一下我们以前提到的梯度的概念,所得到的梯度场∇cs可以给我们两个信息,第一,由于梯度反应的是标量场中“变化的程度”,所以只有在流体的边界部分才会有比较大的梯度值,而内部的梯度值几乎为0,根据这个特性可以用来判断粒子是否处于表面,第二,梯度场的方向指向大值部分,也就是流体的内部,而这正是表面张力的方向。

而表面张力的大小,则跟流体表面的“曲率”有关,这个值可以根据颜色值的拉普拉辛算子计算

(5.2)

最终的表面张力还需要乘上一个系数和方向矢量:

(5.3)

其中σ被称为表面张力系数,跟流体的材质有关,所使用的光滑核函数和计算密度时的一样,都是Poly6,在3D情形下,它的哈密顿形式和拉普拉辛形式分别是:

(5.4)

(5.5)

最后可以求出受表面张力影响,粒子产生的加速度部分

(5.6)

SPH方法计算流体表面张力相关推荐

  1. 使用overlap-add方法计算两个信号的卷积示例(在频域计算卷积)

    之前已经写过一篇使用overlap-add方法计算两个信号的卷积示例 本篇将卷积部分的计算从时域改为频域,基本操作步骤不变 示例代码如下: import numpy as npdef get_bloc ...

  2. JavaScript实现动态规划方法计算特定位置的斐波那契数fibonacciNth算法(附完整源码)

    JavaScript实现动态规划方法计算特定位置的斐波那契数fibonacciNth算法(附完整源码) fibonacciNth.js完整源代码 fibonacciNth.js完整源代码 export ...

  3. Java黑皮书课后题第6章:6.11(金融应用:计算酬金)编写方法,利用编程练习题5.39中的方法计算酬金。方法头如下所示。编写程序,显示下面表格

    6.11(金融应用:计算酬金)编写方法,利用编程练习题5.39中的方法计算酬金.方法头如下所示.编写程序,显示下面表格 题目 题目描述与运行示例 编程练习题5.39(非本题) 破题 5.39处理 主方 ...

  4. pkpm板按弹性计算还是塑性_双向板按弹性方法还是按塑性方法计算

    双向板按弹性方法还是按塑性方法计算 茅老师您好!想请教您个问题,PKPM计算双向板时一般都是按弹性算吧,可我去年刚进设计院的时候有一个项目是按塑性算的,这样影响大不大啊,支座与跨中弯矩比值系数取得默认 ...

  5. Python---利用蒙特.卡罗方法计算圆周率近似值

    利用蒙特.卡罗方法计算圆周率近似值 什么是蒙特.卡罗方法? 答:蒙特卡罗方法是一种计算方法.原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值. 正方形内部有一个相切的圆,它们的面积之比是π ...

  6. 桩筏有限元中的弹性板计算_采用PKPM系列JCCAD软件桩筏筏板有限元方法计算的模型参数 -...

    *****采用PKPM系列JCCAD软件桩筏筏板有限元方法计算的模型参数****** 计算模型: 弹性地基梁板模型 (桩和土按WINKLER模型) 地基基础形式及参照规范: 天然地基(地基规范).常规 ...

  7. 【例1】 给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n。

    /* [例1] 给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n. [算法分析]本题可以用递归方法求解,其原因在于它符合递归的三个条件:(1)本题是累加问题:当前和=前 ...

  8. linux中date使用方法,linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)...

    linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例) 发布于 2016-02-07 15:58:40 | 108 次阅读 | 评论: 0 | 来源: 网友投递 LinuxLinux是一 ...

  9. dfa matlab用法,关于使用MF-DFA方法计算广义Hurst指数的MATLAB操作问题

    我在论坛上复制了一个代码,是使用MF-DFA方法计算广义Hurst指数的,但不知道需填入的各个变量的名称,我是零基础,但任务时间很紧,来不及现学,所以想先用来算个数,请各位高手指教,不胜感激! 请问括 ...

最新文章

  1. 【转】Word2007中不连续页码设置 多种页码设置
  2. 前端开发时间格式的转换方法_开发人员投资时间而不浪费时间的10种方法
  3. 有线电视网(洛谷-P1273)
  4. 高德地图车道级导航适配OPPO Find N折叠屏手机
  5. JavaScript中一些常用的方法整理
  6. Java之导入Excel 后端篇
  7. 51单片机多种方式点亮LED
  8. TurboCAD Mac Pro 12(CAD设计绘图软件)
  9. 微信网页第三方登录原理
  10. retrofit简单的网络请求
  11. 苦涩又难理解的IO<1>
  12. 在el-form-item 重置label宽度
  13. 算法笔记_110:第四届蓝桥杯软件类省赛真题(JAVA软件开发高职高专组部分习题)试题解答...
  14. (Modern Family S01E04) Part 2 PhilClaire Luke和Haley玩游戏 Haley想去音乐会父母不同意
  15. 安利几本好看的书给你
  16. Axure 初学者必看:自学 Axure 需要花多长时间?
  17. 2.5 C语言入职例程二:指针
  18. 如何提交项目到git
  19. Hive 客户端工具
  20. mysql表中文字段提取拼音首字母最便捷实现,中文按拼音首字母排序

热门文章

  1. Android自定义View实现三角到八角的属性分布图-雷达图(蜘蛛网图)
  2. Extjs——初步学习
  3. postfix中间件--Amavisd-new--反垃圾和反病毒配置
  4. function的用法()
  5. Android开发入门 - 简易开心消消乐界面设计
  6. 2008 r2服务器日志文件,Windows2008R2共享文件访问日志查询的设置方法
  7. mysql函数名称顿号,快速统计一个单元格内有多少个名字,你不会是一个一个数的吧...
  8. 【今日CV 计算机视觉论文速览 第128期】Mon, 10 Jun 2019
  9. java中输入日期_Java中的日期操作
  10. 计算机统考多媒体技术操作题,2020年9月网络教育统考《计算机应用基础》多媒体技术模拟题试卷操作题...