fluent_UDF學習筆記

UDF源代碼路徑

D:\Program Files\ANSYS Inc\v231\fluent\fluent23.1.0\src

關于顆粒反彈速度的計算

 /* 通過面法向單位向量計算速度的法向向量、切向向量,再通過法向、切向恢復系數重新計算反彈速度*//* Compute normal velocity.將顆粒速度向面法線方向投影,即計算顆粒速度與法線向量的點乘:V(V1,V2)·n(n1,n2)=V1n1+V2n2 */for(i=0; i<idim; i++)vn += TP_VEL(tp)[i]*normal[i];/* Subtract off normal velocity. 新的顆粒速度為切向速度,及原顆粒速度減去法向速度*/for(i=0; i<idim; i++)TP_VEL(tp)[i] -= vn*normal[i];/* Apply tangential coefficient of restitution. 使用切向恢復系數計算反彈后的切向速度*/for(i=0; i<idim; i++)TP_VEL(tp)[i] *= tan_coeff;/* Add reflected normal velocity.使用法向系數計算反彈后的法向速度,再計算合速度,反彈法向速度為法線反方向,即-n(n1,n2) */for(i=0; i<idim; i++)TP_VEL(tp)[i] -= nor_coeff*vn*normal[i];/* Store new velocity in TP_VEL0 of particle */for(i=0; i<idim; i++)TP_VEL0(tp)[i] = TP_VEL(tp)[i]

在這里插入圖片描述
在這里插入圖片描述

關于顆粒追蹤類型 gtpv_t gvtp;

typedef struct global_tracked_particle_vars_struct
{#if RP_DPM_CACHE/* avoids having to pass additional arguments to AddSources();* later should add extra function args to make clean */dpm_source_cache_t *source_cache;int source_cache_size;int source_cache_count;film_prop_cache_t *film_prop_cache;int film_prop_cache_size;int film_prop_cache_count;dpm_real_cache_t *real_cache;int real_cache_size;int real_cache_count;dpm_workpile_t *workpile;int workpile_size;int workpile_count;int next_particle;float *random_cache;         /* store precomputed random numbers */int random_cache_size;int next_random;float next_gauss_random;     /* save second random generated by gauss_random() */
#endif /* RP_DPM_CACHE *//** Current cell type and number of faces in current cell.  Don't use* cxfaces_per_cell[ctype] for number of faces as hanging nodes may* add additional faces.*/int path_ctype, path_n_faces, path_incl_test;int path_n_nodes;               /* number of nodes in current cell */int path_face_num;/* all of the following global data pertains to the cell in which the current* particle is currently located. Should be updated whenever we start a new* particle or the particle enters a new cell.*/real prevVel[3];                  /* velocity of particle in prev step. */double (*faceEq)[5];              /* faceEq[6*MAX_CELL_NODES][5];  MAX is 6*MAX_CELL_NODES -- polyhedral cell with hanging nodes.* last element holds magnitude of cross product of edges, e.g., for intersections */double (*faceEqV)[5];             /* face equation velocity - for face equations moving in time */
#if RP_3Ddouble (*faceEqA)[4];             /* face equation acceleration - for face equations moving in time */
#endifdouble (*facePts)[3][3];          /* facePts[6*MAX_CELL_NODES][3][3]; */double (*facePtV)[3][3];          /* facePtV[6*MAX_CELL_NODES][3][3]; */int *validEq;                     /* validEq[6*MAX_CELL_NODES];    */cxboolean validMovingEquations;   /* safeguard missuse of uninitialized variables */int *numFacePts;                  /* numFacePts[6*MAX_CELL_NODES]; */int *faceIndx;                    /* faceIndx[6*MAX_CELL_NODES];   */real zoneEq[3];int zoneEqSet;int numCellVisited;/* equations for perpendicular planes at each edge on the wall film face (max of 4 edges of physical face, not cortex face) */int  *edge_valid;                 /* edge_valid[MAX_FACE_NODES]; */double (*edgeEq)[4];              /* edgeEq[MAX_FACE_NODES][4]; */double (*edgeEqV)[5];             /* for edge equations moving in time */
#if RP_3Ddouble (*edgeEqA)[4];             /* for edge equations moving in time */
#endifdouble (*edgePts)[2][3];          /* for edges moving in time */double (*edgePtV)[2][3];          /* for edges moving in time *//* interpolation factors for function values at the current location of the particle. updated every step. */float *intFact;                 /* intFact[MAX_CELL_NODES]; */int n_tracked;int n_escaped;int n_aborted;int n_trapped;//被捕捉顆粒數,無論是aborted or stoppedint n_stripped;int n_separated;int n_filmrelease;
#if RP_3D && RP_WALL_FILMint n_absorbed;
#endifint n_transformed;int n_inserted;int n_evaporated;int n_incomplete;int n_incomplete_parallel;int n_coalesced;int n_collided;int n_splashed;int n_shed;int n_stick;int n_rebound;int n_spread;
#if RP_DPM_CACHEint n_source_cache_deposits;int n_cell_updates;int n_workpile_updates;
#endif /* RP_DPM_CACHE */int n_migrant;int n_tracked_migrants;double dpm_time;float fldmax[3], fldmin[3];        /* also part of c_par */struct particle_struct *p_spawned; /* list to carry spawned particles */struct particle_struct *p_impinging; /* list for impinging particles *//* subtet tracking */struct subtet_tracking_location_struct *subtet;int mc_convergence_failure;  /* to report when the RK solver does not converge for multicomponent particles */} gtpv_t; /* type for global tracked particle vars */

關于顆粒PATH類型 ;

typedef enum
{
PATH_END,//escape
PATH_FINAL_STEP,
PATH_ACTIVE,//繼續追蹤,track
PATH_BREAK,//
PATH_ABORT,//終止,不再追蹤
PATH_STOP,//停止,繼續追蹤
PATH_NON_LOCAL_PERIODIC,
PATH_NON_LOCAL_OVERSET,
PATH_NON_LOCAL_GTI,
PATH_NON_LOCAL,
PATH_REINJECT,
PATH_MAX_STATUS
} Path_Status;

PATH_STOP

在這里插入圖片描述
=**

表示顆粒停止移動,顆粒靜止在壁面上,不過顆粒軌跡仍參與計算,應該能用做顆粒的沉積再剝離

PATH_ABORT與n_aborted對應

在這里插入圖片描述
在這里插入圖片描述

顆粒中止計算,從后續計算中移除,不再存在于計算域中,減少計算負擔,方便后處理

PATH_END:與n_escaped對應

在這里插入圖片描述
在這里插入圖片描述

一般用于計算域的出入口,對于一些壁面也能用作顆粒壁面邊界條件的簡化處理。

PATH__BREAK

顆粒PATH類型之PATH


在這里插入圖片描述

顆粒在邊界面不斷破碎,意味著顆粒軌跡計算不會終止,陷入死循環

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/75883.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/75883.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/75883.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Go 語言標準庫中sort模塊詳細功能介紹與示例

Go語言的 sort 模塊提供了對切片和自定義數據結構的排序功能&#xff0c;支持基本類型排序、自定義排序規則、穩定排序和二分查找。以下是 sort 模塊的核心方法及示例說明&#xff1a; 1. 基本類型排序 sort.Ints、sort.Float64s、sort.Strings 直接對基本類型的切片進行排序…

第十六屆藍橋杯模擬二(串口通信)

由硬件框圖可以知道我們要配置LED 和按鍵 一.LED 先配置LED的八個引腳為GPIO_OutPut,鎖存器PD2也是,然后都設置為起始高電平,生成代碼時還要去解決引腳沖突問題 二.按鍵 按鍵配置,由原理圖按鍵所對引腳要GPIO_Input 生成代碼,在文件夾中添加code文件夾,code中添加fun.…

06-ADC

ADC簡介 Analog-Digital Converter 模擬-數字轉換器 ADC可以將引腳上連續變化的模擬電壓轉換為內存中存儲的數字變量&#xff0c;建立模擬電路到數字電路的橋梁。 12位逐次逼近型ADC&#xff0c;1us轉換時間&#xff1b;輸入電壓范圍&#xff1a;0-3.3V&#xff0c;轉換結果…

二層綜合實驗

拓撲圖 實驗要求 1.內網IP地址使用172.16.6.0/16分配 2.sw1和sW2之間互為備份 3.VRRP/STP/VLAN/Eth-trunk均使用 4.所有Pc均通過DHCP獲取IP地址 5.ISP只能配置IP地址 6.所有電腦可以正常訪問IsP路由器環回 實驗思路 這是一個二層綜合實驗每當拿到一個實驗看清楚要求之后都有…

Java實現pdf中動態插入圖片

今天接到一個需求&#xff0c;需要在pdf中的簽名處&#xff0c;插入簽名照片&#xff0c;但簽名位置不固定&#xff0c;話不多說上代碼&#xff1a; 1、首先引入itextpdf依賴包&#xff1a; <dependency><groupId>com.itextpdf</groupId><artifactId>…

OpenCV 圖形API(2)為什么需要圖形API?

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 G-API背后的動機 G-API模塊為OpenCV帶來了基于圖的執行模型。本章簡要描述了這種新模型如何在兩個方面幫助軟件開發者&#xff1a;優化和移植圖像處理算法…

基于Spring AI開發本地Jenkins MCP Server服務

前言 首先介紹下MCP是什么&#xff1f; MCP是由開發了 Claude 模型的 Anthropic 公司2024年12月提出并開源的一項開放標準&#xff0c;全稱&#xff1a;Model Context Protocol&#xff0c;它是一個開放協議&#xff0c;它使 LLM 應用與外部數據源和工具之間的無縫集成成為可能…

vcpkg安裝指定版本的庫

一.vcpkg安裝 使用git將vcpkg源碼克隆到本地制定目錄&#xff08;D:\vcpkg&#xff09;&#xff0c;并初始化 git clone https://github.com/microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh # Linux/macOS .\bootstrap-vcpkg.bat # Windows 如下圖&#xff1a; 二.安…

數據結構C語言練習(單雙鏈表)

本篇練習題(單鏈表)&#xff1a; 1.力扣 203. 移除鏈表元素 2.力扣 206. 反轉鏈表 3.力扣 876. 鏈表的中間結點 4.力扣 21. 合并兩個有序鏈表 5. 牛客 鏈表分割算法詳解 6.牛客 鏈表回文結構判斷 7. 力扣 160. 相交鏈表 8. 力扣 141 環形鏈表 9. 力扣 142 環形鏈表 II…

nginx部署前端項目(linux、docker)

引言 在CentOS 7系統上使用docker安裝nginx&#xff0c;使用nginx部署一個由Vue開發、打包的項目 docker安裝nginx 這里不多贅述&#xff0c;直接上docker-compose.yml代碼 nginx:container_name: nginximage: nginx:1.27.2ports:- "80:80"volumes:- /docker/ngin…

WPF ContentPresenter詳解2

ContentPresenter與ContentControl的區別 ContentControl 和 ContentPresenter 是 WPF 中兩個相關的控件&#xff0c;但它們在用途和功能上有一些關鍵的區別。理解這兩者的區別和聯系有助于更好地設計和開發用戶界面。 1. 類層次結構 ContentControl&#xff1a;位于 WPF 控件…

【HTML5游戲開發教程】零基礎入門合成大西瓜游戲實戰 | JS物理引擎+Canvas動畫+完整源碼詳解

《從咖啡杯到財務自由&#xff1a;一個程序員的合成之旅——當代碼遇上物理引擎的匠心之作》 &#x1f31f; 這是小游戲開發系列的第四篇送福利文章&#xff0c;感謝一路以來支持和關注這個項目的每一位朋友&#xff01; &#x1f4a1; 文章力求嚴謹&#xff0c;但難免有疏漏之…

鴻蒙OS 5.0 服務能力框架深入剖析

鴻蒙OS 5.0 服務能力框架中關鍵類的作用分析 1\. 鴻蒙OS 5.0 服務能力框架導論 鴻蒙OS 5.0&#xff0c;亦稱鴻蒙智聯 5 1&#xff0c;標志著華為在分布式操作系統領域邁出的重要一步。與早期版本采用兼容安卓的AOSP層、Linux內核以及LiteOS內核不同&#xff0c;鴻蒙OS 5.0 專注…

RTMP推流+EasyDSS云服務+邊緣AI分析的無人機監控系統設計

在現代科技不斷發展的背景下&#xff0c;無人機技術已經廣泛應用于各個領域&#xff0c;從航拍攝影到工業巡檢&#xff0c;從農業監測到應急救援&#xff0c;無人機以其高效的工作能力&#xff0c;為人們的生活和工作帶來了諸多便利與創新&#xff0c;而其視頻傳輸與分析系統更…

HCIP(VLAN綜合實驗)

實驗拓補圖 實驗分析 一、實驗目的 掌握VLAN的創建和配置方法理解VLAN在局域網中的作用學習如何通過VLAN實現網絡隔離和通信 二、實驗環境 交換機&#xff08;SW1、SW2、SW3&#xff09;個人電腦&#xff08;PC1、PC2、PC3、PC4、PC5、PC6&#xff09;路由器&#xff08;R1…

Linux系統編程 | 線程的基本概念

&#x1f493;個人主頁&#xff1a;mooridy &#x1f493;專欄地址&#xff1a;Linux 關注我&#x1f339;&#xff0c;和我一起學習更多計算機的知識! &#x1f51d;&#x1f51d;&#x1f51d; 什么是線程 程序中的一個執行路線就叫做線程 一個進程至少要有一個執行線程,單…

小林coding-12道Spring面試題

1.說一下你對 Spring 的理解?spring的核心思想說說你的理解&#xff1f; 2.Spring IoC和AOP 介紹一下?Spring的aop介紹一下?IOC和AOP是通過什么機制來實現的?怎么理解SpringIoc&#xff1f;依賴倒置&#xff0c;依賴注入&#xff0c;控制反轉分別是什么&#xff1f;依賴注…

第十二章——位運算

按位的與& 若x的第i位和y的第i位都是1&#xff0c;那么&#xff08;x&y&#xff09;1&#xff0c;否則&#xff08;x&y&#xff09; 0 應用&#xff1a;希望讓某一位或某些位為0 。取一個數中的一段。 按位的或| 若x的第i位1或y的第i位1&#xff0c;那么&…

計算機等級考試數據庫三級(筆記3)

插入 修改 現要創建一個具有如下功能的觸發器&#xff1a;每當在銷售表中插入一條銷售記錄時&#xff0c;修改商品表中對應商品的銷售總量&#xff0c;假設一次只插入一條銷售記錄。請補全下列代碼。CREATE TRIGGER tri insert on xx FOR xx AS xx 商品表 xx 銷售總量xx (SELEC…

【Leetcode 每日一題】2716. 最小化字符串長度

問題背景 給你一個下標從 0 0 0 開始的字符串 s s s&#xff0c;重復執行下述操作 任意 次&#xff1a; 在字符串中選出一個下標 i i i&#xff0c;并使 c c c 為字符串下標 i i i 處的字符。并在 i i i 左側&#xff08;如果有&#xff09;和 右側&#xff08;如果有&…