【小白的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ǔ)言



來(lái)自為知筆記(Wiz)




轉(zhuǎn)自:流沙[胡坤]

開(kāi)放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(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電磁分析 

編輯
在線報(bào)名:
  • 客服在線請(qǐng)直接聯(lián)系我們的客服,您也可以通過(guò)下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國(guó)服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號(hào)金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com