【小白的CFD之旅】17 需要編程?【轉(zhuǎn)發(fā)】

2017-01-18  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

小白經(jīng)過大半個(gè)多月對(duì)于CFD的學(xué)習(xí),終于對(duì)其大概輪廓有了初步的了解,尤其是在與小牛師兄交流之后。小牛師兄畢竟是專業(yè)學(xué)流體力學(xué)的,小白認(rèn)為在流體力學(xué)理論方面自己與牛師兄至少存在5年的差距。不過小白并不氣餒,照黃師姐的話說,”內(nèi)功需要自己慢慢積累,武俠電影中的那種灌頂大法是不存在的“。小白認(rèn)為當(dāng)前自己的主要任務(wù)是把軟件FLUENT用熟。

小白在網(wǎng)上找了一些學(xué)習(xí)FLUENT應(yīng)用的論壇,也加了一些QQ群,不過他更習(xí)慣自己去思考去總結(jié)。這天小白被一個(gè)QQ群里爭(zhēng)論的話題引起了興趣。這話題是關(guān)于CFD軟件與計(jì)算機(jī)編程之間的關(guān)系,有人說”只有精通了編程才可能成為CFD高手“,也有人說”CFD只是工具,會(huì)不會(huì)編程都不重要“,也有中間派說”CFD是工具,但是熟悉編程會(huì)更有利于使用這一工具“,眾說紛紜吵得不亦樂乎。小白自認(rèn)學(xué)CFD時(shí)日尚短,插不上話只好搬凳子圍觀。

中午在食堂吃飯的時(shí)候,小白碰到了小牛師兄,幾天沒見也不知道小牛師兄最近在忙些啥。
“牛師兄,這么巧啊”,小白端著飯碗坐到了牛師兄的對(duì)面。
“恩,最近在忙些啥呢?”牛師兄問道。
“還不是在學(xué)CFD軟件,照著實(shí)例依貓畫虎呢,進(jìn)展很慢啊”小白很無奈的說。
“不用急,軟件這東西很容易學(xué)的,多練幾次就有感覺了?!迸熜职参康?。
“嗯,牛師兄,你說我需要學(xué)編程么?今天在網(wǎng)上看有人說要學(xué)CFD必須精通編程,也不知道是不是真的?!毙“讓⑷豪锏臓?zhēng)論說給牛師兄聽。
“你以前學(xué)過編程沒有?”牛師兄問小白。
“讀本科的時(shí)候?qū)W過C語言,知道基本的語法編過小的練習(xí)程序,沒有真正用過。”小白據(jù)實(shí)回答。
“那還行。”小牛師兄說。

接下來小牛師兄在飯桌上說起他對(duì)于軟件和編程之間關(guān)系的認(rèn)識(shí)。

目錄

1關(guān)于編程
2 關(guān)于CFD的工具論
3 CFD編程到底有用沒?
4 利用編程來學(xué)習(xí)CFD
5 我需要學(xué)習(xí)編程么
6 學(xué)什么語言
7 總結(jié)

1關(guān)于編程

人們談起編程,總是認(rèn)為這是一個(gè)高大上的職業(yè)。為什么會(huì)覺得高大上呢?無外乎這幾個(gè)原因:

  • 編程人員(亦稱程序猿)拿的薪水很高。如果做的不是高大上的事情,憑什么拿這么高的薪水?
  • 編程行當(dāng)門檻比較高,一般人難以進(jìn)入。
  • 計(jì)算機(jī)程序能夠做很多人腦難以完成的工作,編程者自然就能做很多普通人難以完成的工作

說了那么多,這跟CFD有什么關(guān)系呢?
CFD離不開計(jì)算機(jī),也離不開計(jì)算機(jī)程序。但是問題在于“使用別人的程序就真的很low么?

我老家在南方農(nóng)村,小時(shí)候過年的時(shí)候家家戶戶要做年糕,就是那種用糯米蒸熟的餅餅。這玩意兒吃起來好吃,做起來卻特別的費(fèi)勁,這些年基本上都沒什么人做了。去年寒假回家的時(shí)候突然發(fā)現(xiàn)市面上居然有賣,打聽之下才發(fā)現(xiàn)已經(jīng)有了做餅餅的機(jī)器了,當(dāng)時(shí)還特別去參觀了一下,制作流程特別的簡(jiǎn)單,將米放進(jìn)料斗,餅餅分分鐘就從下料口出來了,特意買了些回去品嘗,雖然有人說口感沒有手工制作的好,但我卻沒感覺出來。實(shí)際上諸如此類的例子生活中比比皆是,比如說做飯,以前農(nóng)村用柴火煮飯,費(fèi)時(shí)費(fèi)力還一不留神把飯燒焦,現(xiàn)在用電飯鍋?zhàn)鲲?省時(shí)省力味道也不差。

之所以舉這些例子,只是想說明“工具的作用是為了解放我們的雙手,工具的特性是在使用工具的過程中不需要考慮工具的原理”,你在用機(jī)器做餅餅、用電飯鍋燒飯的時(shí)候,需要思考餅餅機(jī)和電飯鍋的工作原理么?

話說回來,程序的作用是幫助人們完成工作,而不需要在使用程序的過程中思考程序是如何編制的。

2 關(guān)于CFD的工具論

CFD是工具么?不同人群對(duì)這一說法可能存在不同的見解。有的人眼中CFD是一套理論,一套關(guān)于如何數(shù)值求解流體流動(dòng)控制方程的理論,這些人分布在計(jì)算機(jī)和數(shù)學(xué)專業(yè),他們關(guān)注算法的實(shí)現(xiàn)和效率。而在工程師的眼中,CFD那就是一工具,他們關(guān)注的是工程問題,最多就是把工程問題抽象成控制方程,至于這方程如何求解則不必過多的考慮,因?yàn)橛鞋F(xiàn)成的工具可以做這一工作。

  • 應(yīng)當(dāng)給予工具足夠的信任。要使用工具而又不信任工具是一件很痛苦的事情。

  • 分清到底是人的問題還是工具的問題。很多人事情沒做好往往不從自己身上找原因,利用CFD軟件也一樣,算出來的結(jié)果不好通常都認(rèn)為是軟件功能的缺陷,你要是問他有什么證據(jù)他又說不出來。在很多時(shí)候,計(jì)算結(jié)果不好往往是我們沒有將工具使用好,而不是工具本身的問題。

3 CFD編程到底有用沒?

肯定是有用的。毋庸置疑任何技能都是有用的。其實(shí)問題不在于編程有沒有用,而在于學(xué)習(xí)編程的時(shí)間成本對(duì)于CFD技能的提升是否劃算?對(duì)于將CFD當(dāng)做工具的人群來說,其實(shí)只需要掌握少量的編程知識(shí)即可完成絕大多數(shù)工作了。編程在此體現(xiàn)為CFD工具軟件的二次開發(fā)上,而不是要我們從頭到尾的將CFD程序?qū)懗鰜怼?

這些CFD工具的功能擴(kuò)展通常采用用戶編程來實(shí)現(xiàn),不同的軟件采用的程序語言有較大差異。比如說FLUENT利用的C語言,CFX利用的是Fortran,STAR CCM+利用JAVA和Fortran,還有一些軟件利用腳本語言,如Python,TCL/TK、Lisp等等。其實(shí)在工作中軟件功能擴(kuò)展工作進(jìn)行得并不是特別多,更多的是做一個(gè)功能封裝,這可能是利用高級(jí)語言寫一個(gè)GUI再配合軟件腳本來實(shí)現(xiàn),其實(shí)很簡(jiǎn)單。

4 利用編程來學(xué)習(xí)CFD

利用編程來學(xué)習(xí)CFD?當(dāng)然是很好的做法,但是可能要消耗大量的時(shí)間,恐怕只有學(xué)生黨才玩得起。企業(yè)人員哪里有這功夫玩這個(gè)喲。不過也不排除工程上用一些開源CFD求解器,逼迫研發(fā)人員去學(xué)習(xí)這些求解器的內(nèi)核源代碼,這可是個(gè)苦逼的工作,時(shí)間成本也很高。就好比說士兵為了提高射擊精度而花費(fèi)大量時(shí)間研究槍炮原理一樣。

5 我需要學(xué)習(xí)編程么

這取決于幾點(diǎn)因素:

  • 關(guān)注CFD算法更勝于利用CFD解決工程問題
  • 對(duì)編程有強(qiáng)烈的興趣。沒有興趣的話可能會(huì)半途而廢
  • 有大量的空余時(shí)間。計(jì)算機(jī)語言的學(xué)習(xí)需要花費(fèi)大量的時(shí)間

6 學(xué)什么語言

如果真要學(xué)的話,有幾個(gè)語言可以推薦:

  • C語言。學(xué)習(xí)C語言絕對(duì)不會(huì)吃虧,這玩意兒用途太廣泛了(數(shù)值計(jì)算、操作系統(tǒng)等),長(zhǎng)期雄霸TOBIE編程語言排行榜前三
  • Python語言。最近很火的動(dòng)態(tài)語言,好多的CAE軟件都轉(zhuǎn)而支持此語言做二次開發(fā)了。
  • JAVA語言。這個(gè)也可以學(xué)一學(xué)。

7 總結(jié)

  • 先搞清楚自己感興趣的是CFD的哪個(gè)方面再來決定是否要學(xué)習(xí)編程
  • 學(xué)習(xí)編程對(duì)于CFD來講是錦上添花,懂一些有好處,但不懂也可以用好CFD
  • 有大把時(shí)間的學(xué)生黨可以學(xué)一門編程語言



來自為知筆記(Wiz)




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

開放分享:優(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)系我們的客服,您也可以通過下面的方式進(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