0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

自己寫一個(gè)CFD軟件很容易嗎?

冬至子 ? 來源:CFD界 ? 作者:從 ? 2023-05-18 10:21 ? 次閱讀

簡單說來。一個(gè)好的CFD軟件,或者說一個(gè)能往外推的CFD軟件,應(yīng)該經(jīng)過千錘百煉!

這種千錘百煉,對軟件的編寫、算法的植入的要求,是非常高的。

給你們舉個(gè)例子,看看OpenFOAM這面怎么搞的。

最近在看化學(xué)反應(yīng)。因?yàn)榛瘜W(xué)反應(yīng)里面的雅克比矩陣一般是密集矩陣。因此求解一般都是直接算。就涉及到了LU分解啥的東西。

然后就看到一個(gè)有意思的東西。OpenFOAM-4.0曾經(jīng)對LU直接求解做了代碼上的改動。改動很少。帶來了15%的性能提升。

**對于服務(wù)器來說,這15%的提成,可能是一代CPU的差異。**比如老的CPU可能是100秒。新的CPU跑85秒。

OpenFOAM-4之前的代碼中的矩陣是定義了一個(gè)指向指針的指針。在4.0版本之后,只定義了一層指針。出發(fā)點(diǎn)是:

The row-start pointer array provided performance benefits on old computers but now that computation is often cache-miss limited the benefit of avoiding a integer multiply is more than offset by the addition memory access into a separately allocated array. With the new addressing scheme LUsolve is 15% faster.

在老版本的代碼中,矩陣元素的訪問不需要計(jì)算。OpenFOAM認(rèn)為這對于比較老的計(jì)算機(jī)是有效的。

圖片

但是都2023年了,現(xiàn)在的服務(wù)器cache miss的現(xiàn)象很常見。之前在定義比較復(fù)雜的指針的時(shí)候,可以避免計(jì)算來尋址,但是這種避免計(jì)算尋址帶來的好處,被內(nèi)存訪問抵消掉了。

因此OpenFOAM-4之后,把這種指向指針的指針給取消了。不這么搞了。要尋址,就相乘。

簡直是人才。這OpenFOAM簡直就是一個(gè)大的知識庫。 知識太多了。

再看下面這個(gè)。之前OpenFOAM里面有一個(gè)操作,就是fvc & 這一行。后來全部改成了flux()函數(shù)。

那為啥這么改呢?

圖片

OpenFOAM說通過dotInterpolate()函數(shù)可以減少內(nèi)存占用。

圖片

在這里我不會做詳細(xì)的介紹了。不做OpenFOAM的老鐵們早就懵掉了。

總之,就是簡單舉例。類似的編程/算法處理。OpenFOAM這30多年一直在更新。

是的,就是為了提高速度、增加穩(wěn)定性,OpenFOAM搞了30多年。

我們說要做一個(gè)CFD軟件。不是做個(gè)教育版本。而是要寫出來一個(gè):工業(yè)界能用的CFD軟件

當(dāng)然了。我看到過很多教育版本的CFD軟件。人家直接就說了。我們這個(gè)CFD軟件主要就是教育意義。

教育版本與工程應(yīng)用那個(gè)區(qū)別是非常大的。教育版本的CFD軟件應(yīng)該是碩士生課程的大作業(yè)。

你們覺得,寫出來一個(gè)可以用在工業(yè)界的CFD軟件,容易么?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • CFD
    CFD
    +關(guān)注

    關(guān)注

    1

    文章

    98

    瀏覽量

    18231
  • cfd軟件
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5495
收藏 人收藏

    評論

    相關(guān)推薦

    基于CFD領(lǐng)域的GPU加速設(shè)計(jì)解決方案

    CFD始終向處理更高精確度、更復(fù)雜的幾何結(jié)構(gòu)方向發(fā)展。但現(xiàn)階段,CFD軟件應(yīng)用于復(fù)雜流體問題方面還有待拓展,受到的阻礙主要源自以下三個(gè)方面。
    的頭像 發(fā)表于 03-27 12:18 ?8809次閱讀

    計(jì)算流體力學(xué)(CFD)的通用軟件

    計(jì)算流體力學(xué)(CFD)的通用軟件摘要:對化學(xué)工程領(lǐng)域中的通用CFD(Computational Fluid Dynamics)模擬軟件Phoenics,F(xiàn)lu—ent,CFX等的具體特
    發(fā)表于 03-18 22:24

    電源行業(yè)是個(gè)容易被他人山寨的行業(yè)?

    在市場上買個(gè)產(chǎn)品,拆開來,記下所有元件,再抄下PCB,打上自己品牌,就成了自己產(chǎn)品,款好不容易做出來電源,被人這么抄就完了,請問這種情況
    發(fā)表于 12-06 17:13

    為什么我的AD軟件容易死掉呢?

    我安裝了Altium Designer (in AD13) ,為什么容易死了,有時(shí)候用右上角的叉關(guān)掉,直有運(yùn)行,關(guān)不掉,但在FILE里面關(guān)掉,就下關(guān)掉了,有時(shí)候加元件庫,也
    發(fā)表于 09-04 10:35

    自己個(gè)常用的工具小軟件,歡迎使用!

    自己個(gè)常用的工具小軟件,歡迎使用!因?yàn)樽鲩_發(fā),有的時(shí)候經(jīng)常會打開任務(wù)管理器,WORD,計(jì)算器等使用,這樣
    發(fā)表于 11-08 09:03

    不懂技術(shù)的人不要對懂技術(shù)的人說這容易實(shí)現(xiàn)

    籌莫展。如果連我自己都做不好,我何必對那些人惱怒呢?   真正讓我郁悶的不是他們預(yù)估的錯(cuò)誤。問題在于他們竟然認(rèn)為自己可以做出正確的估計(jì)。作為開發(fā)人員,我們經(jīng)常會發(fā)現(xiàn),在軟件開發(fā)的問題上,
    發(fā)表于 11-12 17:55

    如果自己個(gè)flashburn類似的軟件,請問有參考資料可以提供嗎?

    如果自己個(gè)flashburn類似的軟件,有參考資料可以提供嗎?謝謝!
    發(fā)表于 08-01 07:24

    STC燒軟件

    STC燒軟件,自己大學(xué)整理收集的文檔等相關(guān)資料,大家有需要的,就下載吧。
    發(fā)表于 10-29 10:55 ?14次下載

    環(huán)路補(bǔ)償容易

    環(huán)路補(bǔ)償容易 有需要的看看,不收積分。
    發(fā)表于 11-20 17:05 ?0次下載

    CFD軟件開發(fā)的三個(gè)階段

    本白皮書結(jié)合歷史背景分析探討了產(chǎn)品開發(fā)用商業(yè) CFD 軟件開發(fā)所經(jīng)歷的三個(gè)階段,并討論和展望了未來開發(fā)所面臨的挑戰(zhàn)和機(jī)遇。
    發(fā)表于 09-11 14:53 ?11次下載
    <b class='flag-5'>CFD</b><b class='flag-5'>軟件</b>開發(fā)的三<b class='flag-5'>個(gè)</b>階段

    有51基礎(chǔ)容易入門ARM是真的嗎

    有51基礎(chǔ)容易入門ARM是真的嗎?從51到ARM,這路怎么走?
    的頭像 發(fā)表于 03-01 16:55 ?6355次閱讀

    如何個(gè)會講笑話的Python程序

    笑話從哪里來?自己肯定是不現(xiàn)實(shí)的。在這個(gè)“云”的時(shí)代,各種云都有,自然是不缺開放API的。下面個(gè)用Python
    的頭像 發(fā)表于 01-11 16:47 ?2981次閱讀
    如何<b class='flag-5'>寫</b><b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>會講笑話的Python程序

    如何個(gè)Solidity智能合約

    想象下,你正在個(gè)Solidity智能合約,其中個(gè)屬性可以被描述為類型或狀態(tài)。換句話說,來
    發(fā)表于 09-05 11:17 ?2450次閱讀

    非流體力學(xué)專業(yè)如何快速掌握CFD?

    CFD基礎(chǔ)入門如果之前學(xué)過流體力學(xué)、傳熱學(xué)、計(jì)算方法等課程,入門CFD是比較容易的。
    的頭像 發(fā)表于 06-23 16:31 ?2022次閱讀

    基礎(chǔ)通用CFD軟件開發(fā)的五個(gè)難點(diǎn)

    答案非常簡單:基礎(chǔ)通用CFD工具研發(fā)是屬于國家工業(yè)基礎(chǔ)技術(shù),代表了個(gè)國家工業(yè)實(shí)力的重要環(huán)。從重要性上來說,類似于全民醫(yī)保,國家電網(wǎng)等重要基礎(chǔ)民生項(xiàng)目建設(shè)。同時(shí)它是
    的頭像 發(fā)表于 12-08 20:33 ?2108次閱讀