【小白的CFD之旅】17 需要編程?【轉發(fā)】
2017-01-18 by:CAE仿真在線 來源:互聯(lián)網(wǎng)
小白經(jīng)過大半個多月對于CFD的學習,終于對其大概輪廓有了初步的了解,尤其是在與小牛師兄交流之后。小牛師兄畢竟是專業(yè)學流體力學的,小白認為在流體力學理論方面自己與牛師兄至少存在5年的差距。不過小白并不氣餒,照黃師姐的話說,”內功需要自己慢慢積累,武俠電影中的那種灌頂大法是不存在的“。小白認為當前自己的主要任務是把軟件FLUENT用熟。
小白在網(wǎng)上找了一些學習FLUENT應用的論壇,也加了一些QQ群,不過他更習慣自己去思考去總結。這天小白被一個QQ群里爭論的話題引起了興趣。這話題是關于CFD軟件與計算機編程之間的關系,有人說”只有精通了編程才可能成為CFD高手“,也有人說”CFD只是工具,會不會編程都不重要“,也有中間派說”CFD是工具,但是熟悉編程會更有利于使用這一工具“,眾說紛紜吵得不亦樂乎。小白自認學CFD時日尚短,插不上話只好搬凳子圍觀。
中午在食堂吃飯的時候,小白碰到了小牛師兄,幾天沒見也不知道小牛師兄最近在忙些啥。
“牛師兄,這么巧啊”,小白端著飯碗坐到了牛師兄的對面。
“恩,最近在忙些啥呢?”牛師兄問道。
“還不是在學CFD軟件,照著實例依貓畫虎呢,進展很慢啊”小白很無奈的說。
“不用急,軟件這東西很容易學的,多練幾次就有感覺了?!迸熜职参康?。
“嗯,牛師兄,你說我需要學編程么?今天在網(wǎng)上看有人說要學CFD必須精通編程,也不知道是不是真的?!毙“讓⑷豪锏臓幷撜f給牛師兄聽。
“你以前學過編程沒有?”牛師兄問小白。
“讀本科的時候學過C語言,知道基本的語法編過小的練習程序,沒有真正用過?!毙“讚?jù)實回答。
“那還行?!毙∨熜终f。
接下來小牛師兄在飯桌上說起他對于軟件和編程之間關系的認識。
目錄
1關于編程
2 關于CFD的工具論
3 CFD編程到底有用沒?
4 利用編程來學習CFD
5 我需要學習編程么
6 學什么語言
7 總結
1關于編程
人們談起編程,總是認為這是一個高大上的職業(yè)。為什么會覺得高大上呢?無外乎這幾個原因:
- 編程人員(亦稱程序猿)拿的薪水很高。如果做的不是高大上的事情,憑什么拿這么高的薪水?
- 編程行當門檻比較高,一般人難以進入。
- 計算機程序能夠做很多人腦難以完成的工作,編程者自然就能做很多普通人難以完成的工作
說了那么多,這跟CFD有什么關系呢?
CFD離不開計算機,也離不開計算機程序。但是問題在于“使用別人的程序就真的很low么?”
我老家在南方農(nóng)村,小時候過年的時候家家戶戶要做年糕,就是那種用糯米蒸熟的餅餅。這玩意兒吃起來好吃,做起來卻特別的費勁,這些年基本上都沒什么人做了。去年寒假回家的時候突然發(fā)現(xiàn)市面上居然有賣,打聽之下才發(fā)現(xiàn)已經(jīng)有了做餅餅的機器了,當時還特別去參觀了一下,制作流程特別的簡單,將米放進料斗,餅餅分分鐘就從下料口出來了,特意買了些回去品嘗,雖然有人說口感沒有手工制作的好,但我卻沒感覺出來。實際上諸如此類的例子生活中比比皆是,比如說做飯,以前農(nóng)村用柴火煮飯,費時費力還一不留神把飯燒焦,現(xiàn)在用電飯鍋做飯,省時省力味道也不差。
之所以舉這些例子,只是想說明“工具的作用是為了解放我們的雙手,工具的特性是在使用工具的過程中不需要考慮工具的原理”,你在用機器做餅餅、用電飯鍋燒飯的時候,需要思考餅餅機和電飯鍋的工作原理么?
話說回來,程序的作用是幫助人們完成工作,而不需要在使用程序的過程中思考程序是如何編制的。
2 關于CFD的工具論
CFD是工具么?不同人群對這一說法可能存在不同的見解。有的人眼中CFD是一套理論,一套關于如何數(shù)值求解流體流動控制方程的理論,這些人分布在計算機和數(shù)學專業(yè),他們關注算法的實現(xiàn)和效率。而在工程師的眼中,CFD那就是一工具,他們關注的是工程問題,最多就是把工程問題抽象成控制方程,至于這方程如何求解則不必過多的考慮,因為有現(xiàn)成的工具可以做這一工作。
-
應當給予工具足夠的信任。要使用工具而又不信任工具是一件很痛苦的事情。
-
分清到底是人的問題還是工具的問題。很多人事情沒做好往往不從自己身上找原因,利用CFD軟件也一樣,算出來的結果不好通常都認為是軟件功能的缺陷,你要是問他有什么證據(jù)他又說不出來。在很多時候,計算結果不好往往是我們沒有將工具使用好,而不是工具本身的問題。
3 CFD編程到底有用沒?
肯定是有用的。毋庸置疑任何技能都是有用的。其實問題不在于編程有沒有用,而在于學習編程的時間成本對于CFD技能的提升是否劃算?對于將CFD當做工具的人群來說,其實只需要掌握少量的編程知識即可完成絕大多數(shù)工作了。編程在此體現(xiàn)為CFD工具軟件的二次開發(fā)上,而不是要我們從頭到尾的將CFD程序寫出來。
這些CFD工具的功能擴展通常采用用戶編程來實現(xiàn),不同的軟件采用的程序語言有較大差異。比如說FLUENT利用的C語言,CFX利用的是Fortran,STAR CCM+利用JAVA和Fortran,還有一些軟件利用腳本語言,如Python,TCL/TK、Lisp等等。其實在工作中軟件功能擴展工作進行得并不是特別多,更多的是做一個功能封裝,這可能是利用高級語言寫一個GUI再配合軟件腳本來實現(xiàn),其實很簡單。
4 利用編程來學習CFD
利用編程來學習CFD?當然是很好的做法,但是可能要消耗大量的時間,恐怕只有學生黨才玩得起。企業(yè)人員哪里有這功夫玩這個喲。不過也不排除工程上用一些開源CFD求解器,逼迫研發(fā)人員去學習這些求解器的內核源代碼,這可是個苦逼的工作,時間成本也很高。就好比說士兵為了提高射擊精度而花費大量時間研究槍炮原理一樣。
5 我需要學習編程么
這取決于幾點因素:
- 關注CFD算法更勝于利用CFD解決工程問題
- 對編程有強烈的興趣。沒有興趣的話可能會半途而廢
- 有大量的空余時間。計算機語言的學習需要花費大量的時間
6 學什么語言
如果真要學的話,有幾個語言可以推薦:
- C語言。學習C語言絕對不會吃虧,這玩意兒用途太廣泛了(數(shù)值計算、操作系統(tǒng)等),長期雄霸TOBIE編程語言排行榜前三
- Python語言。最近很火的動態(tài)語言,好多的CAE軟件都轉而支持此語言做二次開發(fā)了。
- JAVA語言。這個也可以學一學。
7 總結
- 先搞清楚自己感興趣的是CFD的哪個方面再來決定是否要學習編程
- 學習編程對于CFD來講是錦上添花,懂一些有好處,但不懂也可以用好CFD
- 有大把時間的學生黨可以學一門編程語言
轉自:流沙[胡坤]
相關標簽搜索:【小白的CFD之旅】17 需要編程?【轉發(fā)】 Fluent培訓 Fluent流體培訓 Fluent軟件培訓 fluent技術教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學反應 fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析