OpenFOAM Sharing

#updating

大多數(shù)新人會(huì)覺得 OpenFOAM 很難入門,特別是自學(xué)的勇士們。

本文對(duì)一些可能的問題和選擇,試圖給出明確的答案,而不是類似于“如果你有時(shí)間有能力,學(xué)習(xí)這個(gè)會(huì)對(duì)你有幫助。。。”“有時(shí)間的話你應(yīng)該看一下,會(huì)幫助你更好的理解。。。”這種模棱兩可讓人猶豫的建議。

總的來說,本文試圖指出一條“連續(xù)”“漸進(jìn)”“清晰”“明確”“沒有間斷”“沒有跳躍”的 OpenFOAM 入門學(xué)習(xí)路線。

關(guān)于系列

本相關(guān)系列參考了大量的開源資料,部分進(jìn)行了修改,大部分補(bǔ)充了個(gè)人理解和實(shí)踐。

如果讀者發(fā)現(xiàn)錯(cuò)誤,又或是覺得哪里銜接不夠連貫,歡迎在每篇下留言建議或者討論。也歡迎來 https://aerosand.cn/Cafe/ 留言討論。


前置知識(shí)

對(duì)于新人而言,微積分、線性代數(shù)、科學(xué)計(jì)算一般都是至少通過本科期末考試的水平,現(xiàn)階段也夠了,不需要系統(tǒng)復(fù)習(xí),以后遇到不明白的地方針對(duì)性補(bǔ)充即可。

很多人在大學(xué)里修的 C/C++ 課程都停留在勉強(qiáng)能用的程度,C++ 更是很少用到面向?qū)ο筇匦浴?/p>

但 OpenFOAM 卻是 C++ 編寫的。

建議提前完整過一遍 C++ 基礎(chǔ)知識(shí)。面向?qū)ο筇匦跃退憧赐昶鋵?shí)很難有深入的理解和使用心得。只能持續(xù)學(xué)習(xí),遇到問題再解決問題。

至于專業(yè)內(nèi)容,比如湍流、反應(yīng)、燃燒等等,每個(gè)人專業(yè)不同,不在此討論內(nèi),沒什么好說的。

OpenFOAM 第 0 步

環(huán)境準(zhǔn)備

OpenFOAM環(huán)境準(zhǔn)備 | ???????????????? (aerosand.cn)

常用指令

OpenFOAM常用指令 | ???????????????? (aerosand.cn)

OpenFOAM 第 1 步

OpenFOAM 第 1 步必不可少,特別是對(duì)于第一次接觸 OpenFOAM 的新人來說。請(qǐng)不要忽略它,請(qǐng)耐心走完。

User Guide

官方用戶指南 User Guide (openfoam.com)

  • 官方用戶指南無論如何都應(yīng)該是最先被閱讀的材料
  • 官方指南也許不是基于最新版本,但是并不影響閱讀和學(xué)習(xí)
  • 通過官方手冊(cè),可以對(duì) OpenFOAM 有一個(gè)最初的了解

Tutorial Guide

閱讀完官方手冊(cè)就應(yīng)該立即閱讀教程指南。鏈接如下

官方教程指南 Tutorial Guide (openfoam.com)

  • 官方教程指南是第二最先被閱讀的材料
  • 通過官方教程指南,可以對(duì) OpenFOAM 仿真計(jì)算的各個(gè)環(huán)節(jié)有清晰的認(rèn)識(shí)

學(xué)習(xí)建議

  • 學(xué)習(xí)過程中,如果遇到問題請(qǐng)?jiān)?obsidian、typora 之類的任意筆記軟件上詳細(xì)記錄下自己的困惑,有些問題其實(shí)并不需要馬上徹底搞清楚
  • 重點(diǎn)是達(dá)成閱讀的完整性,形成對(duì) OpenFOAM 使用的整體理解
  • 英語閱讀可能確實(shí)是一個(gè)障礙,但必須要克服
  • 請(qǐng)一頁一頁一行一行閱讀,需要的時(shí)候在 OpenFOAM 動(dòng)手嘗試
  • 必要的話,以上兩個(gè)材料,請(qǐng)閱讀第二遍

完成第 1 步后,case 類型的教程基本上就不需要繼續(xù)拓展了,需要進(jìn)入第 2 步補(bǔ)足理論。

OpenFOAM 第 2 步

計(jì)算流體力學(xué)基礎(chǔ)

搞懂計(jì)算流體力學(xué)基本方程

CFD理論基礎(chǔ)00 基本方程 | ???????????????? (aerosand.cn)

  • 現(xiàn)階段不需要面面俱到特別深入,隨著學(xué)習(xí)推進(jìn)再逐漸深入

有限體積法基礎(chǔ)

基礎(chǔ)入門只需要緊盯四大項(xiàng)的一般離散,旨在獲得一個(gè)對(duì)有限體積法思想的整體理解。

如果有人一點(diǎn)都不了解有限差分法,那應(yīng)該先簡(jiǎn)單了解有限差分思想

CFD理論基礎(chǔ)01 有限差分法初步 | ???????????????? (aerosand.cn)

然后看有限體積法初步

CFD理論基礎(chǔ)02 有限體積法初步 | ???????????????? (aerosand.cn)

有限體積法四大項(xiàng)離散

#updating

學(xué)習(xí)建議

  • 所有的公式都需要新人自己手推 2 遍以上
  • 最好的學(xué)習(xí)是輸出,強(qiáng)烈建議新人獨(dú)立的梳理一份自己的筆記

強(qiáng)烈推薦同時(shí)閱讀書籍

The Finite Volume Method in Computational Fluid Dynamics: An Advanced Introduction with OpenFOAM? and Matlab | SpringerLink

新人可能會(huì)感覺書中陌生的知識(shí)點(diǎn)有點(diǎn)多,英語文本加上符號(hào)系統(tǒng),讀起來很容易煩躁,這些都非常正常。本書的閱讀可以貫穿整個(gè)學(xué)習(xí)過程,所以不要著急,請(qǐng)耐心閱讀,慢慢閱讀,不要求所有部分都讀懂,可以暫時(shí)先跳過一些部分,或者在網(wǎng)上找一些視頻或者文章輔助閱讀,慢慢啃,會(huì)大有幫助。請(qǐng)做好閱讀兩遍以上的覺悟。

再次強(qiáng)調(diào),不要強(qiáng)求馬上看完本書,完成有限體積法初步之后,即可開始第 3 步。

OpenFOAM 第 3 步

迭代

后期的學(xué)習(xí)很多時(shí)候確實(shí)無法做到線性推進(jìn)。很多時(shí)候,學(xué)習(xí)了后面的知識(shí)才能補(bǔ)足對(duì)前面知識(shí)的理解,迭代是必不可少的。

在有了一定的理論基礎(chǔ)之后,強(qiáng)烈建議重新跟一個(gè) case 類教程。不僅能夠復(fù)習(xí)補(bǔ)充官方手冊(cè)的內(nèi)容,而且能結(jié)合有限體積法基礎(chǔ)對(duì)操作有更深入的理解。推薦 Wolf Dynamics 系列基礎(chǔ)教程,完全免費(fèi),配套完整,講解細(xì)致,材料翔實(shí)。

OpenFOAM Introductory Course Training Material (wolfdynamics.com)

深入

之后推薦下面的博士系列課程,有幾點(diǎn)需要注意

PhD course in CFD with OpenSource software (chalmers.se)

  • 請(qǐng)耐心的一步一步跟著做
  • 在 High-level programming 之后,因?yàn)樯婕?C++ 和算法實(shí)現(xiàn),可能會(huì)感覺困難,不理解的地方可以跳過,請(qǐng)不用擔(dān)心
  • 就算有些地方跳過也要完整跟完,有些地方讀不懂也要粗略掃一遍。

OpenFOAM 第 4 步

開發(fā)編程基礎(chǔ)

旨在補(bǔ)充有限體積法的數(shù)值原理和 OpenFOAM 求解器代碼實(shí)現(xiàn)之間的“跳躍”,補(bǔ)全學(xué)習(xí)過程中可能有困惑的點(diǎn),讓學(xué)習(xí)更加順暢。至于自定義邊界條件、utility 等內(nèi)容均在求解器主框架之后,以后會(huì)逐漸涉及,不用擔(dān)心。

  • OpenFOAM開發(fā)編程基礎(chǔ)00 基本實(shí)現(xiàn)和開發(fā) | ???????????????? (aerosand.cn)
  • OpenFOAM開發(fā)編程基礎(chǔ)01 輸入輸出 | ???????????????? (aerosand.cn)
  • OpenFOAM開發(fā)編程基礎(chǔ)02 主函數(shù)參數(shù)列表類初步 | ???????????????? (aerosand.cn)
  • OpenFOAM開發(fā)編程基礎(chǔ)03 時(shí)間類初步 | ???????????????? (aerosand.cn)
  • OpenFOAM開發(fā)編程基礎(chǔ)04 網(wǎng)格類初步 | ???????????????? (aerosand.cn)
  • OpenFOAM開發(fā)編程基礎(chǔ)05 場(chǎng)初步 | ???????????????? (aerosand.cn)
  • OpenFOAM開發(fā)編程基礎(chǔ)06 開發(fā)庫 | ???????????????? (aerosand.cn)
  • OpenFOAM開發(fā)編程基礎(chǔ)07 第一個(gè)求解器 | ???????????????? (aerosand.cn)
  • OpenFOAM開發(fā)編程基礎(chǔ)08 求解非定常波動(dòng) | ???????????????? (aerosand.cn)
  • OpenFOAM基礎(chǔ)算法 SIMPLE & PISO & PIMPLE | ???????????????? (aerosand.cn)
  • OpenFOAM開發(fā)編程基礎(chǔ)09 SIMPLE求解器 | ???????????????? (aerosand.cn)
  • OpenFOAM開發(fā)編程基礎(chǔ)10 結(jié)語 | ???????????????? (aerosand.cn)

跟完這個(gè)系列,對(duì) OpenFOAM 開發(fā)編程大概有了一個(gè)認(rèn)識(shí),包含代碼架構(gòu)、編程語法、SIMPLE 算法等內(nèi)容。

實(shí)際開發(fā)大多還是基于 OpenFOAM 標(biāo)準(zhǔn)求解器進(jìn)行修改。

學(xué)習(xí)建議

C++ 最晚也要從這一步開始學(xué)習(xí),至少該斷斷續(xù)續(xù)的查詢了解。

完成這個(gè)系列后,下一步從數(shù)學(xué)公式出發(fā),一點(diǎn)一點(diǎn)的啃 OpenFOAM 標(biāo)準(zhǔn)求解器。

OpenFOAM 第 5 步

基本求解器

開始 OpenFOAM 的求解器學(xué)習(xí)。

OpenFOAM 求解器學(xué)習(xí)系列 | ???????????????? (aerosand.cn)

這里的求解器學(xué)習(xí)并不是說要細(xì)挖每行代碼的實(shí)現(xiàn)。我們?nèi)匀槐3衷趹?yīng)用實(shí)現(xiàn)層面,重點(diǎn)學(xué)習(xí)如何利用 OpenFOAM 框架,學(xué)習(xí) OpenFOAM 是如何實(shí)現(xiàn)從物理方程到數(shù)值計(jì)算的。在理解原生求解器的過程中,會(huì)慢慢發(fā)現(xiàn)自己好像可以修改自己的求解器了。

學(xué)習(xí)建議

動(dòng)手實(shí)踐是最好的學(xué)習(xí)方式。理論推導(dǎo)和編程實(shí)現(xiàn),兩方面都要耐心去做。

OpenFOAM 最終步

大部分人的目的應(yīng)該就是這里,通過前面艱苦的學(xué)習(xí),終于要開發(fā)能夠解決自己專業(yè)問題的求解器。

OpenFOAM求解器開發(fā)系列 | ???????????????? (aerosand.cn) #todo


避免繞路

很大可能,新人在知道 OpenFOAM 后,第一步就是試圖安裝 OpenFOAM,想親眼看看 OpenFOAM 到底是什么。

開始

除去現(xiàn)在 windows 系統(tǒng)安裝 Linux 內(nèi)核的方案,新人很大可能還是通過虛擬機(jī)或者直接安裝 Linux 系統(tǒng)。

鑒于網(wǎng)絡(luò)環(huán)境,經(jīng)過折騰,新人終于安裝成功了 ubuntu 系統(tǒng)以及 OpenFOAM。新人也許此時(shí)會(huì)猶豫要不要找個(gè)教程系統(tǒng)學(xué)習(xí)一下 Linux 系統(tǒng),要不要學(xué)習(xí) Bash,要不要學(xué)習(xí) shell,要不要學(xué)習(xí)命令行,要不要學(xué)習(xí) vim?

不需要!現(xiàn)階段統(tǒng)統(tǒng)不需要!

對(duì)于新手,僅會(huì)安裝 Linux 系統(tǒng)和安裝 OpenFOAM 即可!

本相關(guān)系列會(huì)在討論中逐漸補(bǔ)充必要的腳本知識(shí)、命令行操作等,無需擔(dān)心。遇到特定的問題再特定的解決,不要投入時(shí)間系統(tǒng)學(xué)習(xí)。

起步

安裝 ubuntu 系統(tǒng) OK!安裝 OpenFOAM  OK!正式的學(xué)習(xí)從哪里開始呢?新人大概會(huì)很猶豫。

跟著網(wǎng)上的基礎(chǔ)教程,新人可能會(huì)急切的想把一個(gè)仿真完整的運(yùn)行起來。于是開始一步一步的跟學(xué) cavity 算例, elbow 算例,damBreak 算例等。

也許只需要經(jīng)過幾個(gè)標(biāo)準(zhǔn)算例,新人那種順利運(yùn)行算例的喜悅就會(huì)逐漸消失,取而代之的是越來越多的困惑。比如,網(wǎng)格是怎么關(guān)聯(lián)計(jì)算的?指定的離散格式到底什么意思?方程是怎么求解的?那些 Foam 到底有什么區(qū)別?并行計(jì)算是怎么回事?paraview 其他功能怎么用?怎么查看收斂曲線?等等大小不同的問題。

有的教程沒有給出解釋,有的教程給出了簡(jiǎn)明的解釋。新人也許會(huì)自己上網(wǎng)查詢相關(guān)解釋。要不要上網(wǎng)一個(gè)一個(gè)查詢這些問題的答案?

不需要!起步階段完全不需要!

新手在這個(gè)階段只需要熟悉 OpenFOAM 是什么,case 計(jì)算的流程應(yīng)該是什么樣子。

沒有更深層次的理論基礎(chǔ),即使查到這些問題的解答,其實(shí)也無法真正理解。

探索

新人在跟過幾個(gè)標(biāo)準(zhǔn)算例之后,理所當(dāng)然會(huì)想找到更深入的教程。比如官方文檔,比如網(wǎng)上的一些視頻教程等等。也許有些教程完整看完了,有些教程“跳著”也算是看完了。這類教程可以統(tǒng)稱為 case 類教程。

如果沒有自定義求解器的需求,其實(shí)沒有必要用 OpenFOAM,可以直接使用商業(yè)軟件,快速得到結(jié)果。

經(jīng)過一段時(shí)間的磕磕絆絆的模仿學(xué)習(xí),新人把每個(gè)教程都還算是學(xué)習(xí)了多遍。新人也許會(huì)總結(jié)感嘆一句,看起來本質(zhì)上也是修改參數(shù),這樣和 Fluent 商軟那種點(diǎn)擊鼠標(biāo)有什么本質(zhì)區(qū)別呢?。要不要繼續(xù) case 類教程的學(xué)習(xí)?

不需要!

這里是第一個(gè)感受比較“間斷”的地方,深入的知識(shí)點(diǎn)看不懂,算例看多了感覺流程都很相似。

完整跟過幾個(gè) case 其實(shí)就可以了,例如 blockMesh 的使用技巧之類的,暫時(shí)不用深究太多。我們需要投入時(shí)間快速建立對(duì) OpenFOAM 數(shù)值求解的整體架構(gòu)和思路的理解。

這里也是第一個(gè)可能會(huì)占用大量時(shí)間的地方。沒有前輩指點(diǎn)的話,新人不得不投入海量時(shí)間去閱讀遇到的教程、文檔、視頻,不得不經(jīng)歷這些教程中重復(fù)的部分,會(huì)覺得堅(jiān)持看完找到的教程就能更加理解 OpenFOAM。實(shí)際上,沒有對(duì)原理的學(xué)習(xí)是無法深入理解的。

徘徊

如果經(jīng)歷了上面這些探索的過程,也許幾個(gè)月甚至半年已經(jīng)過去了。新人會(huì)覺得自己了解 OpenFOAM 但是又不夠了解 OpenFOAM。新人反復(fù)學(xué)習(xí)后也許會(huì)意識(shí)到重點(diǎn)在求解器上。

和 case 教程類似的求解器教程太少了,在看完類似 icoFoam代碼解析 教程,icoFoam植入溫度方程 教程,interFoam植入溫度方法 教程,laplacianFoam求解器 教程,wolf dynamics 教程等內(nèi)容之后,新人會(huì)有短暫的恍然大悟的激動(dòng)。但是之后會(huì)感覺線索又?jǐn)嗔耍l(fā)現(xiàn)網(wǎng)上很難再找到其他的求解器教程。要么是求解器代碼語句的直白注釋,讀起來有種 是這樣子,但是我不知道為什么這樣寫 的感覺。要么是晦澀的求解數(shù)值算法,并不能完全看懂。甚至于,大家都在說要多查閱 Doxygen,新人連 Doxygen 具體怎么用其實(shí)也是不知道的。

這個(gè)階段出現(xiàn)一個(gè)非常浪費(fèi)時(shí)間的問題,當(dāng)新人找個(gè)一個(gè)系列教程,如果不從頭看,會(huì)擔(dān)心漏掉什么知識(shí)點(diǎn)而影響自己的理解;如果從頭看,發(fā)現(xiàn)它要么完全是 case 類型的教程,要么它是過于晦澀,無法銜接自己的學(xué)習(xí)流程。

也許有幸,新人能了解并學(xué)習(xí)到 chalmers cfd 系列教程,感慨自己終于找對(duì)了教程。即使有很多問題,反復(fù)學(xué)習(xí)多遍后試圖復(fù)現(xiàn)它的課后學(xué)生作業(yè),發(fā)現(xiàn)學(xué)生作業(yè)太難了,文檔和源文件不同,版本不同,說明又不夠細(xì)致。這些種種困惑,甚至足以讓人停下腳步陷入自我懷疑,我漏了哪一步,我該怎么到這一步?。要不要重復(fù)看這些教程,繼續(xù)找教程?

不需要!

這里是第二個(gè)會(huì)占用大量時(shí)間的階段。

我們還缺點(diǎn)東西。缺少的就是代碼背后的數(shù)學(xué)物理原理。

補(bǔ)足

在意識(shí)到 OpenFOAM 本質(zhì)上是求解偏微分方程組后,新人也許會(huì)聽從一些建議,轉(zhuǎn)頭去搞原理的“復(fù)習(xí)”和“補(bǔ)足”。

計(jì)算流體力學(xué)?數(shù)學(xué)物理方程?有限體積法?有限差分法?有限元法?數(shù)值計(jì)算方法?線性代數(shù)?

說實(shí)話,這些話題里,隨便拿出一個(gè)都可以是一本教科書,沒有月余難以看完理解,要做到熟練運(yùn)用,沒有時(shí)間和練習(xí)的沉淀,更是難上加難。這時(shí)我們就可以理解,為什么大學(xué)里一門課要延續(xù)那么久,我們?yōu)槭裁丛谌蘸筮€是會(huì)辜負(fù)那些在期末突擊通過的課程。

既然涉及到大量的矩陣運(yùn)算,新人也許會(huì)擔(dān)心自己的線性代數(shù)不夠好。要不要系統(tǒng)地復(fù)習(xí)一下線性代數(shù)呢?

不需要!

初期學(xué)習(xí),很少涉及到矩陣微妙的數(shù)學(xué)性質(zhì)。以后遇到困難了再針對(duì)性學(xué)習(xí)。

既然是數(shù)值計(jì)算,要不要復(fù)習(xí)一下數(shù)值計(jì)算方法呢?而且,要不要使用計(jì)算機(jī)語言去實(shí)現(xiàn)一下數(shù)值計(jì)算方法呢?

不需要!

線性代數(shù)方程的求解在 OpenFOAM 使用現(xiàn)成的求解器,初始階段并不需要顧慮。

大學(xué)里的數(shù)值方法課程很大一部分可能都是數(shù)學(xué)系老師授課,并不會(huì)緊密聯(lián)系代碼實(shí)現(xiàn)。新手如果執(zhí)意去補(bǔ),將會(huì)面臨很多的“間斷”感和困惑,也會(huì)耽誤大量的時(shí)間。而且,本科階段很多專業(yè)的數(shù)值方法課程大部分到常微分方程就戛然而止,反而物理中更常見的偏微分方程的數(shù)值方法極少提及。說到底,以后的線性方程組求解可以使用現(xiàn)成的高效率的線代求解器,不用管。

如果是要自己從零手碼程序跑計(jì)算,那么另當(dāng)別論,就不在這里討論的范圍之內(nèi)。

需不需要復(fù)習(xí)數(shù)學(xué)物理方程的教材?

不需要!

偏微分方程最后都是落在數(shù)值方法求解上,解析方法以及偏微分方程的數(shù)學(xué)性質(zhì)個(gè)人覺得暫時(shí)沒有必要深入。相反會(huì)擾亂主線推進(jìn)。

既然原理上是數(shù)值方法求偏微分方程組?要不要系統(tǒng)地看偏微分方程數(shù)值求解的教科書?

不需要!而是需要直接看有限體積法。

這里也很容易耽誤大量的時(shí)間。

舉個(gè)例子,比如 Sandip 的偏微分方程數(shù)值解法寫得非常好。但它不是基于 CFD 背景的,很多表述和實(shí)現(xiàn)對(duì)于新手很難去對(duì)應(yīng)到 OpenFOAM 中。線性代數(shù)方程求解和誤差分析等等內(nèi)容也不是現(xiàn)階段必須的。以后可以慢慢看,但是不需要現(xiàn)階段看,或者不需要現(xiàn)階段馬上看完。對(duì)英文材料閱讀所花費(fèi)的時(shí)間也是實(shí)實(shí)在在的肉眼可見。

同樣,如果要自己碼程序跑計(jì)算,另當(dāng)別論。

有一些新人在了解知道 OpenFOAM 是 C++ 編寫求解偏微分方程的程序,十分想找到相關(guān)教材。雖然不多,其實(shí)有那么幾本基于 C++ 面向?qū)ο蟮目茖W(xué)計(jì)算書籍和求解偏微分方程組的書籍,要不要看? 甚至想著要對(duì)數(shù)據(jù)后處理,找著找著,看到了一些涉及計(jì)算機(jī)圖形學(xué)的 C++ 編程書籍,要不要看?

不需要!

要確定自己是要用 C++ 完全從零寫求解器,還是使用 OpenFOAM 框架。如果準(zhǔn)備使用 C++ 面向?qū)ο筇匦酝耆珡牧銓懘笮颓蠼馄鳎瑹o師兄師姐指導(dǎo),自己課題組又沒有流傳下來的代碼參考,那真的要十分努力,且自求多福。 如果是使用 OpenFOAM 框架,至少暫時(shí)完全不需要。時(shí)間很寶貴,先把時(shí)間用在主要任務(wù)上。如果長(zhǎng)時(shí)間不能入門 OpenFOAM 求解器,真的很難向自己或者老師解釋。

小結(jié)

原諒我啰里啰唆的寫了這么多,上面說的那些可能也只是小部分人遇到的問題,描述可能也有所偏頗。誠(chéng)然,如果新人思路清晰,對(duì)上面的一部分選擇做了肯定,選擇性的做自我強(qiáng)化,而且自身基礎(chǔ)好,執(zhí)行力強(qiáng),領(lǐng)悟快,只花費(fèi)了一個(gè)暑假多的空余時(shí)間,那肯定是極好的。

對(duì)于普通人來說,看不懂、理解模糊,甚至看的昏昏欲睡都是再正常不過得學(xué)習(xí)狀態(tài),特別是對(duì)于那些獨(dú)自前進(jìn)的自學(xué)勇士們來說,更是如此。上述的任一個(gè)選擇作了展開,這個(gè)也投入幾天看看,那個(gè)也投入幾個(gè)星期試試,再來幾個(gè)小項(xiàng)目練習(xí)一下,都可能是月余以上的時(shí)間花銷。再遇到別的什么事情耽擱一下,也許兜兜轉(zhuǎn)轉(zhuǎn)走走停停花費(fèi)了超過一年的時(shí)間,新人仍然只會(huì)使用現(xiàn)成的求解器跑一下簡(jiǎn)單算例,還是沒能夠進(jìn)行針對(duì)自己專業(yè)的問題進(jìn)行求解器修改和開發(fā),對(duì) OpenFOAM 仍然很難有整體的概念,海量困惑仍然有待解決。這時(shí)既沒法對(duì)自己交代,也沒法對(duì)自己的老師解釋。這是極其沉重的時(shí)間成本,也是經(jīng)受不起的沉沒成本。

結(jié)語

不管生活還是學(xué)術(shù),時(shí)間都是最寶貴的財(cái)富。

親愛的朋友,希望你能在有限的時(shí)間和有限的空間內(nèi)盡可能地豐富。無論哪一條路,都能走的穩(wěn),走的快,走的遠(yuǎn),拿到自己人生的解。

文章來源: Aerosand

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

4
1
2