不知火舞的被虐|伊人天伊人天天综合网|博洛尼亚天气|任你懆这里只有精品4|久久美日韩精品久久|掌中之物漫画免费阅读观看|0丨d老妇

UDF編譯的案例

四十九、Fluent UDF編譯正確的流程
<p>很多同學會在群里面問一些UDF編譯的問題,特此寫一篇文章詳細說明一下對UDF進行編譯的正確流程。</p><p><br></p><p><strong>1. UDF正常編譯流程</strong></p><p><br></p><p>第一步:配置環境變量,參考公眾號文章<a href="http://mp.weixin.qq.com/s?__biz=MzkwMTAyNTc0Mw==&amp;mid=2247483827&amp;idx=1&amp;sn=29963c6a8bfa7b0b7abd7d490bc300f9&amp;chksm=c0ba5b13f7cdd2052f569bb77174b53946ae3d7cfbe119947caa07dbc9ec041b8bf2c3540cd1&amp;scene=21#wechat_redirect" rel="noopener noreferrer" target="_blank">十.Fluent環境變量的配置</a></p><p>第二步:驗證環境變量是否成功</p><p>第三步:進行UDF編譯</p><p>&nbsp;</p><p><strong>2. 配置環境變量</strong></p><p><br></p><p><strong>2.1 編譯型VS解釋型</strong></p><p><br></p><p>推薦大家使用編譯UDF</p><p>&nbsp;</p><p>有些同學為了方便省事,想直接用解釋型UDF,這樣就不用配置環境變量了。解釋型的UDF編譯UDFUDF的編寫上沒有任何不同,只是將UDF加載到Fluent中的方式有所不同。
展開
Fluent軟件的UDF編譯環境修改
Fluent軟件的UDF編譯環境修改 使用Fluent軟件的UDF前需安裝Ansys和Visual studio軟件。 此處以Ansys19.0 和Visual studio 2012為例,在Ansys19.0安裝位置找到udf.bat文件。 用記事本打開udf.bat,找到圖示位置: 在后面添加: set MSVC_DEFAULT=此處填Visual studio12.0安裝位置 if exist "%MSVC_DEFAULT%\vC\vcvarsall.bat" set MSVC=%MSVC_DEFAULT% if not "%MSVC%" == "" goto msvc_env120 :msvc_env120 set MSVC_VERSION=120 call "%MSVC%\VC\vcvarsall.bat" amd64 goto ms_c_end 保存即可在Fluent軟件中使用UDF。
展開
五十、UDF常見錯誤及報錯信息
但是基本都有一個特點,那就是編譯沒問題、load沒問題,但一點擊計算又出錯。</p><p>&nbsp;</p><p>&nbsp;</p><p><strong>2.6 常見錯誤6:UDF被其他cas占用</strong></p><p><br></p><p>&nbsp;</p><p>UDF編譯的過程:選擇UDF后,點擊build,會生成一個libudf文件夾。點擊load后,fluent會直接調用libudf文件夾下的已經編譯好的文件。</p><p><br></p><p><strong>此時源UDF文件與fluent沒有任何關系,即使刪除掉源UDF文件,fluent也可以正常運行。但是不能刪掉libudf文件,這個文件會一直被fluent占用。</strong></p><p>&nbsp;</p><p>注:libudf是編譯過程生成的文件夾名稱,可在點擊build之前,在Library Name處更改此名。</p><p>&nbsp;</p><p><img src="https://mmbiz.qpic.cn/mmbiz_png/8tJMdLVYZyib8OGrSVLN1D71GE8ia3iabYt9LadKLLLV80NX8eiacVUk7t4KRXuRybbEBSE3lt5sAO9rKbPBKc7YpQ/640?wx_fmt=png" width="100%"></p><p><br></p><p>正是由于上面的原因,又會引出一個UDF常見的問題。
展開
fluent 14.0 udf編譯問題
最近使用fluent14.0 udf的時候編譯總是出現問題,經過在網上查找資料,自己摸索終于解決了。
UDF編譯圖1
Fluent VOF罐體晃動(二)
具體的操作與上次推文的罐體晃動(一)一致,只是不再采用命名表達式的方式進行罐體晃動仿真,而是通過UDF編譯,本推文主要對UDF編譯和加載進行了介紹。該方法的缺點就是無法進行多工況的快速計算,優點則是在開啟能量方程等模型時,能夠通過UDF統一編譯進行處理,提高計算效率。 UDF 1.1 UDF編譯 部分編譯如下, 注意:使用時需檢查符號,因在錄入代碼時采用手敲,不能保證輸入法正確,因此大家錄入時所有代碼要確保全是英文字符。 DEFINE_ZONE_MOTION(vel,omega,axis,origin,velocity, time,dtime ) { real Am=0.2; real f=1; vel[0]=Am*f*2*PI*cos(2*PI*time); } 1.2 UDF加載 加載操作如下,首先選擇Build,待編譯成功后,選擇加載。加載成功后,在運動區域的設置中將命名表達式去掉,采用UDF定義運動。 其他設置與上一篇文章完全一致,因此不再闡述。 ?
展開
五十七、Fluent UDF自定義材料物性參數
3.2 表面張力系數定義 表面張力系數定義為溫度的函數,sur_ten=1.35 - 0.004*T + 5.0e-6*T*T UDF代碼如下: #include "udf.h" DEFINE_PROPERTY(sfc,c,t) { real T = C_T(c,t); return 1.35 - 0.004*T + 5.0e-6*T*T; } 直接以表達式的形式返回物性參數 3.3 密度和時間相關 這里僅僅是演示,實際上我們的物性更多是和壓力溫度有關,和時間沒有關系。這里為了說明UDF的靈活性,簡單演示。 假設當流動時間小于1s,密度為1000kg/m3;流動時間大于等于1s,密度為1kg/m3。 UDF代碼如下: #include "udf.h" DEFINE_PROPERTY(den_time,c,t) { real density; real current_time; current_time = CURRENT_TIME; if(current_time<1.0) { density=1000.0; } else { density=1.; } return density; } 邏輯很簡單,這里只說明一點。 current_time = CURRENT_TIME; //CURRENT_TIME是fluent中的一個宏,也可以認為是一個變量,返回當前的流動時間。 4. UDF編譯與加載 兩種UDF編譯的方式,參考文章四十九、Fluent UDF編譯正確的流程。
展開
Fluent_UDF環境配置
雖說fluent現在有了和comsol類似的表達式功能,但有些地方還是要用到UDF的(主要是別人的算例用的udf。。。) udf需要編譯,編譯udf源文件需要和算例文件在一個文件夾。但在編譯時,可能會出現奇怪的錯誤,分享一下我的踩坑經過。 1、visual c++位置不對,導致fluent編譯時找不到編譯器。 fluent只能用visual c++編譯UDF,所以編譯前需要安裝visual c++。但是,fluent默認visual c++裝在了c盤,所以如果你的visual c++裝在了D盤,fluent就會編譯錯誤,這時,你需要自己指定visual c++的位置,方法自己去b站搜就可以,這里還是建議把visual c++裝在默認位置,這樣不需要任何多余設置。 2、編譯時缺少.lib庫文件。 visual c++裝完后,fluent就可以編譯了,但編譯后控制臺會提示你缺少kernal32.lib文件,這可能是因為udf源文件對于編譯器來說只是個臨時文件,缺少visual c++中完善的引用設置。解決方法就是把所有庫文件都復制到編譯器的默認庫文件夾。 把以下文件夾的所有文件(都是.lib) C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64 復制到 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64 我們的版本號可能會有所差異,但大體差不多就OK。
展開
UDF程序編譯常見問題,以及解決辦法!
圖1 如何修改:設置好環境變量,再次編譯就可以成功加載。 環境變量設置目前較為成熟和成功方法,經過多次給網友調試,總結認為按路徑設置環境變量是最好的方法,成功率百分之百!這里切記修改環境變量不是在系統變量中修改?。?設置如下: 圖2 主要找到編譯器安裝路徑下得include\lib\path就可以設置成功。具體見教程vs2010、2013環境變量設置。 另外需要注意是:由于程序字符格式問題,這種情況多為復制黏貼幫助文檔或者其他地方程序,直接黏貼在編譯器或者text文本里得,導致沒有完全編譯,加載過程時報錯,找不到liubuf.dll文件。 解決辦法: 編譯不成功原因是由于程序本身格式問題,編譯器不識別,多為復制黏貼過來程序。這時候可以將其復制黏貼到可以編譯成功程序里,即可解決問題。 2編譯過程中,由于書寫有誤,導致程序報錯。 圖3 這樣錯誤要根據報錯提示進行修改,千萬要注意看報錯提示,再進行逐行修改,事半功倍。 例如:第13行缺少分號,增加分號 即可。 圖4 具體調整見技術鄰視頻。 3由于程序結構問題,導致報錯,received a fata segmental? 例如:在邊界上進行面循環時,我們卻想去獲得網格上參數值,例如C_U(c,t)網格速度值,這樣就是不合理得,會出現分割錯誤。同時,對于C_VOF(c,t)體積分數這樣宏,一定要注意它的指針問題,否則你會出現常見錯誤。 4由于程序函數宏格式問題,導致缺少“}”,size of“0”, 圖5 程序本身沒有錯誤,但是編譯就是報錯!這時比較讓人著急,找不到頭緒! 解決辦法:這時只需要找一個能編譯程序,復制黏貼過去。如果還不行,就說明你的函數是不是哪個地方寫錯了,要進行仔細檢查!
展開
SDK 解決FLUENT 中udf 編譯問題 終極大法
錯誤原因與解決方法:fluent udf在compiled時出現錯誤:'nmake' 不是內部或外部命令 對比了兩臺主機上的環境變量 Path、 lib 以及 include 之后發現可以正常運行udf的舊的主機(A)與新的主機(B)之間的差別,發現Path等并沒有太多異常,甚至A上幾乎沒有添加環境變量。于是采用下方案 解決方案: 從Microsoft 官網下載 軟件開發補?。?NET Framework 2.0 Software Development Kit (SDK) (x64) 安裝補丁 從開始快捷鍵中 以管理員身份運行 SDK 命令行,SDK Command Prompt 命令行中 切換至fluent 啟動項位置,運行fluent 切換fluent工作目錄至case 目錄,運行。 udf 可以成功運行 在SDK 運行代碼為: —————————————————— 隨后,刪除了libudf之后 以正常方式打開case之后仍然失敗。 不刪除libudf,正常方式打開case之后成功。 因此推斷 在編譯過程中有點問題,可能還是VS與 fluent 之間配合不好。 在編譯完成之后udf即可正常運行 附上一張圖片和參考方案來源 How can I manage to compile my UDF with Windows 7 64bit? This problem sometimes looks similar to the one concerning the missing 'nmake'.
展開
新手入門Fluent UDF較關注的幾個問題 附Fluent UDF中文教程下載
本人電腦系統為Windows10專業版,電腦上安裝了多個Fluent版本,皆能正常使用,將Fluent UDF環境變量設置好。接下來我將和大家分享如下一些Fluent版本它們具體的真串行和真并行情況,為新手入門UDF提供一些微不足道的幫助! 一 編譯UDF時常出現的問題 這個界面應該是許多入門UDF的新手熟悉的界面了。報錯可能有兩種原因,一種可能是你的UDF環境變量沒有設置好,另一種可能是Fluent串行或是并行的啟動方式不正確。 二 本人電腦系統及Fluent版本 環境變量設置操作是在所有Fluent安裝好后進行,并設置成功。 三 用于測試的簡單UDF程序 #include "udf.h" DEFINE_ON_DEMAND(my_udf) { Message("Welcome to Fluent!\n"); } 該C程序參考UDF幫助手冊編寫,將用于編譯UDF測試。 四 Fluent各版本串行與并行測試 下面將使用 Fluent 17.0/17.2/18.0/18.2/19.0/19.2/2019R3/2020R1 進行串行與并行下UDF編譯情況測試。
展開
fluent中udf無法編譯系列(part2)——basetsd.h文件
fluent中出現下圖的提示: 解決方法: 1.打開計算機->屬性->高級系統設置 2.新建變量VS110COMNTOOLS,屬性值設置為C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\ 3.打開編譯VC\bin目錄下的vcvars32.bat文件,在第一行添加下列語句: @echo Setting environment for using Microsoft Visual Studio 2012 x64 tools @SET VSINSTALLDIR=c:\Program Files\Microsoft Visual Studio 11.0 @SET VCINSTALLDIR=c:\Program Files\Microsoft Visual Studio 11.0\VC @SET FrameworkDir32=c:\Windows\Microsoft.NET\Framework @SET FrameworkVersion32=v4.0.30319 @SET Framework35Version=v3.5 并注釋掉下列語句: ::@call :GetVSCommonToolsDir ::@if "%VS110COMNTOOLS%"=="" goto error_no_VS110COMNTOOLSDIR ::@call "%VS110COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit
展開
UDF編譯圖2
fluent中udf無法編譯系列(part1)——xcopy和nmake
進行udf文件的build,初學者容易出現下面的提示: 那么,來解決一下這些問題吧~~ 1、fluent運行UDF時的出現'xcopy' 不是內部或外部命令..... 這是系統下面xcopy.exe文件丟失,只需要把xcopy復制到安裝目錄下面的bin文件夾里就行了 解決方法:從C:\Windows\System32拷貝到xcopy.exe 放到: D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin文件里面 (需要注意的是,每臺電腦的Microsoft Visual Studio 的安裝目錄和版本不同,xcopy.exe放在自己電腦的Microsoft Visual Studio 里面的vc下的bin文件里面就可以了) 2、 nmake不是內部命令或外部命令,也不是可運行程序.....
展開
fluent中udf無法編譯系列(part3)——kernel132.lib文件
LINK: fatal erro LNK1104: cannot open file 'kernel132.lib' 命令行下使用cl編譯的時候,竟然提示:fatal error LNK1104: 無法打開文件“kernel32.lib”,所幸在IDE里面運行沒有問題。 【問題解決】 Try1)查了一下環境變量的庫路徑(LIB),Program Files\Microsoft Visual Studio 9.0\VC\lib是在的;查lib目錄,果然找不到kernel32.lib文件。 Try2)vs2008的SDK路徑應該是這個:C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib。(注意:無論安裝目錄在哪里,都在C盤) Try3)在環境變量LIB添加上述SDK目錄,cl,成功!或者將kernel32.lib直接copy到vc的lib目錄下也是可以的 解決辦法還是修改環境變量,提示不能打開 'kernel132.lib',我們就想辦法找到他并把它添加到環境變量里lib里,我的電腦里'kernel132.lib'在C:\Program files\Microsoft SDKs\Windows\v6.0A\Lib\kernel32.lib,于是把這個路徑添加到lib這個環境變量里,問題就解決了
展開
fluent入門一般問題(六)
采用一個稱為Makefile的腳本來引導c 編譯器構造一個當地目標編碼庫(目標編碼庫包含有將高級c 語言源代碼轉換為機器語言。)這個共享庫在運行時通過“動態加載”過程載入到FLUENT 中。目標庫特指那些使用的計算機體系結構,和運行的特殊FLUENT 版本。因此,FLUENT 版本升級,計算機操作系統改變以及在另一臺不同類型的計算機上運行時,這個庫必須進行重構。 編譯UDF 通過用戶界面將原代碼進行編譯,分為兩個過程。這兩個過程是:訪問編譯UDF 面板,從源文件第一次構建共享庫的目標文件中;然后加載共享庫到FLUENT 中。 解釋型UDF: 解釋型UDF 同樣也是通過圖形用戶界面解釋原代碼,卻只有單一過程。這一過程伴隨著運行,包含對解釋型UDF 面板的訪問,這一面板位于源文件中的解釋函數。 在FLUENT內部,源代碼通過c 編譯器被編譯為即時的、體系結構獨立的機器語言。UDF 調用時,機器編碼通過內部模擬器或者解釋器執行。額外層次的代碼導致操作不利,但是允許解釋型UDF 在不同計算結構,操作系統和FLUENT 版本上很容易實現共享。如果迭代速度成為焦點時,解釋型UDF 可以不用修改就用編譯編碼直接運行。 解釋型UDF 使用的解釋器不需要有標準的c 編譯器的所有功能。特別是解釋型UDF 不含有下列C 程序語言部分: goto 語句聲明;無ANSI-C 語法原形;沒有直接數據結構引用;局部結構的聲明;聯合函數指針;函數陣列; 解釋型UDF編譯UDF的區別: 在解釋型與編譯UDF 之間的主要的不同之處是很重要的,例如當你想在UDF 中引進新的數據結構時。解釋型不能通過直接數據引用獲得FLUENT 解算器的數據;只能間接的通過FLUENT 預先提供的宏來獲取數據。具體請參考第7 章。
展開
十.Fluent環境變量的配置
</strong></p><p>2)&nbsp;Error: The UDF library you are trying to load (libudf) is not compiled for 2d on the current platform (win64)出現這個錯誤可能是由于VS版本是32位的原因</p><p>3)&nbsp;以上都不行時,卸載fluent,重新安裝之后嘗試以上步驟。</p><p><strong>4)&nbsp;以上步驟都不行時,重新安裝fluent和VS之后嘗試以上步驟</strong></p><p>5) UDF編譯不成功,可能是由于c文件命名錯誤,文件cu名不能出現空格。&nbsp;&nbsp;</p><p><strong>四、方法四</strong></p><p>1.&nbsp;使用編譯軟件,輸入ANSYS版本號,及VS的版本號,同時選擇源代碼的位置,選擇正確的維數、串行和精度,之后單擊編譯。</p><p class="ql-align-center"><img src="https://mmbiz.qpic.cn/mmbiz_png/8tJMdLVYZy9lhibYichCiaxqgYmvB4w57yjgM0AVeOXJrkQIsnPf11IqmanbYBVlhF1u72SXzWJhare3nV8KAZic3g/640?wx_fmt=png"></p><p class="ql-align-center">圖7.編譯軟件界面</p><p>2.&nbsp;如果編譯軟件界面沒有出現錯誤,則在源代碼文件位置會生成libudf文件,之后就可以直接在Fluent編譯UDF了。</p><p>&nbsp;</p><p class="ql-align-center"><strong>3.
展開