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