1. 程式人生 > >SPH演算法初探(一)

SPH演算法初探(一)

    SPH(光滑粒子流體動力學)演算法是現今運用最廣泛的流體模擬演算法。該演算法的主要思想是通過模擬流體中每一個微元的受力情況以及其運動規律,來對流體進行模擬。

    流體微元所受合力是重力、壓力等。重力自然無須贅述。流體所受其他力來源於周圍的微元對它的影響。

    假設被作用的那個羽毛叫F,所有影響那個羽毛分別為F0 F1 F2...FN。那麼羽毛Fj對羽毛F的A屬性的影響是這麼計算的:

F.Aj=Fj.A*Fj.M/Fj.Ro*W(dist,range)
其中M屬性為質量,Ro屬性為密度,dist為兩個羽毛之間的距離,range為影響範圍的半徑,W函式為光滑核函式。

    光滑核函式的意義在於它可以描述一個粒子對周圍的影響和它與周圍粒子的距離的關係。

    同時,應該注意,光滑核函式並不是唯一的。它是一類函式的統稱。它的值隨dist的增大而減小,當dist等於range時,函式值為零。光滑核函式含有一些其他性質。比如:它是偶函式;它的積分值為1等等。


光滑核函式的影象

相關推薦

SPH演算法初探

    SPH(光滑粒子流體動力學)演算法是現今運用最廣泛的流體模擬演算法。該演算法的主要思想是通過模擬流體中每一個微元的受力情況以及其運動規律,來對流體進行模擬。     流體微元所受合力是重力、壓力等。重力自然無須贅述。流體所受其他力來源於周圍的微元對它的影響。  

Java之集合初探

lin 數據改變 排序。 方法 規則 找不到 集合 回收 for循環 一、集合概述、區別 集合是一種容器,數組也是一種容器 在Java編程中,裝各種各樣的對象(引用類型)的叫做容器。 為什麽出現集合類? 面向對象語言對事物的體現都是以對象的形式,所以為了方便對多個對象的操作

Python Web框架之Django初探

python django easy_install pip Python Web框架之Django初探 Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MVC的框架模式,即模型M,視圖V和控制器C。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站

13.Django之數據庫models&orm初探

try api 示例 mar 叠代 交互 reverse 一行 gre 一、使用django orm的準備操作。django 默認支持sqlite,mysql, oracle,postgresql數據庫。在默認情況下django的項目中會默認使用sqlite數據庫,在打開s

Spark RDD初探

serializa 只有一個 broadcast each函數 flat -s cover med 溢出 本文概要 本文主要從以下幾點闡述RDD,了解RDD 什麽是RDD? 兩種RDD創建方式 向給spark傳遞函數Passing Functions to Spark 兩

基於深度學習的目標檢測演算法綜述截止20180821

參考:https://zhuanlan.zhihu.com/p/40047760 目標檢測(Object Detection)是計算機視覺領域的基本任務之一,學術界已有將近二十年的研究歷史。近些年隨著深度學習技術的火熱發展,目標檢測演算法也從基於手工特徵的傳統演算法轉向了基於深度神經網路的檢測技

基本演算法學習—— 排序

排序 一、氣泡排序   演算法思想: 在每一次對比排序中將大的數放在後面,整個排下來後,就變成有序的數列了   演算法實現:       1.(範圍為整個陣列),從前向後兩兩比較,如果前面比後面大就交換位置。第一遍後就將大的放在了最後       2.(縮小範圍),從頭再次重

SOAR平臺初探

1.前言        Security Orchestration, Automation and Response(SOAR)安全編排和自動化響應,是Gartner2017年提出的新概念。Gartner預計到2019年,大概30%的大中型企業會進行SOAR平臺的建

劍指offer演算法二維陣列中的查詢

劍指offer演算法題(一) 題目1:二維陣列中的查詢 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路分析:  從左上往右下方來解決這個問題  例如在

spring原始碼學習之路---IOC初探

首先把spring原始碼匯入,怎麼匯入百度下。 首先我們來說一下IOC,IOC是spring最核心的理念,包括AOP也要屈居第二,那麼IOC到底是什麼呢,四個字,控制反轉。 網上有不少是這麼解釋IOC的,說IOC是將物件的建立和依賴關係交給容器,這句話我相信不少人都知道,在我個人的理解

開源電子書專案FBReader初探

FBReader簡介和包功能淺析 簡介 專案官網:fbreader.org/android FBReader是一個開源電子書閱讀器,如今已經支援很多裝置。不僅有PC版,支援的作業系統有GNU/Linux,MicrosoftWindows,也支援移動終端裝置,比如NokiaInternetTable

容錯分散式一致性演算法——totem

  第一次接觸分散式一致性演算法是通過totem,現在開始研究paxos和raft之類,後面也是會做筆記的,便先將totem演算法先寫下來,用於對比學習。   totem協議,全稱是The Totem Single-Ring Ordering and Membership Protoco

演算法學習揹包佇列和棧

揹包類bag public class My_Bag<T> { public My_Bag() { array = null; } private T[] array;

演算法訓練

1.zoj-4049 簡單的程序模擬,大部分情況下可以直接出答案,當進入死迴圈的時候,不難發現,迴圈中所得值會出現重複,因此可視重複為死迴圈的標誌,使用一個bool陣列進行標記即可,程式碼如下: #include <iostream> #include<cstrin

【精選】JAVA入門演算法

跌倒了,一定要爬起來。不爬起來,別人會看不起你,你也會失去機會。 1.題目:打印出楊輝三角形(要求打印出10行) 什麼是楊輝三角呢?下面這個就是 楊輝三角最大的特性就是每個數字都是該數字肩上的兩個數字之和,這道題經常在學習二維陣列和迴圈控制中出現 我們可以假設

演算法學習揹包佇列和棧優化

以棧為例,之前是增加一個元素就要重新new一個比原來大1的陣列出來替換原始陣列。 public void Push(T item) { int size = Size(); T[] newarray = new T[size + 1]; for (int i =

java多執行緒-初探

啥是多執行緒?跟程序又是啥關係?   比方說:我去洗手,洗完手去吃飯。 程序(Processor) 洗手跟吃飯是兩個程序。 執行緒(Thread) 在洗手的程序裡,我同時聽歌,還唱歌。那這裡洗手是一個程序,聽歌跟唱歌是兩個執行緒。 在吃飯的程序裡,我同時聽歌,還

比較全面的Adaboost演算法總結

目錄: 1. Boosting演算法基本原理 2. Boosting演算法的權重理解 3. AdaBoost的演算法流程 4. AdaBoost演算法的訓練誤差分析 5. AdaBoost演算法的解釋 6. AdaBoost演算法的正則化 7. AdaBoost演算法的過

GIS演算法基礎 計算幾何基礎

最近在學習GIS演算法,在學習過程中,想把一些經典的演算法或者思想記錄下來,分享給大家   計算幾何基礎本來是計算機圖形學的內容,但是GIS在影象處理中是離不開計算機處理的,所以GIS演算法基礎第一個應該是計算幾何基礎。 如何把空間實體的點線面以及他們之間的關係(例如,相交,包

基於深度學習的目標檢測演算法綜述

前言 目標檢測(Object Detection)是計算機視覺領域的基本任務之一,學術界已有將近二十年的研究歷史。近些年隨著深度學習技術的火熱發展,目標檢測演算法也從基於手工特徵的傳統演算法轉向了基於深度神經網路的檢測技術。從最初2013年提出的R-CNN、OverFeat