作為即將成為天體物理的研究生的大四狗,如何準備未來的研究?
計算方面的演算法應該要掌握吧,SPH,ARM等,還有哪些基礎的。
模擬的話流行什麼語言編寫邏輯,用什麼展示模擬的結果,openGL還是其他?
看來這位是想做模擬的。
除了 SPH 之外,模擬的 code 有很多。無所謂也沒必要掌握:若非從事開發或者二次開發,你不可能像所謂掌握一門語言一樣,真正掌握它們中的任何一個,因為它們都實在太大了——我定義「掌握」為能夠自如進行中等規模的二次開發。
在你老闆讓你用某一個之前,你大概沒有必要花費太多精力在「掌握」上。比如,假如你們組和 Jim Stone 組有競爭,你卻學了半年的 Athena++,這難道不是自找悲劇么……
提一下 Enzo:在它上頭搞了一年半的二次開發,簡直是讓我無語透頂——當大小聰明的教授博後和學生們遇上無政府主義的工程,便會拋棄一切眼光和節制,誕出一個龐大而醜陋的怪物:有好幾次,我給它抓蟲,抓得我摔了鍵盤滑鼠。
以及,如果你堅定了決心,想做一個 Data visualization specialist,好好學 OpenGL 才是有前途的;否則,若你還想多做些物理,則不要動它:絕大部分成熟的 code 都有相應的數據分析軟體包。我目前在用(號稱 Enzo、Athena、SPH 通吃的)基於 Python 的 YT——這是一幫聰明而不顧別人感受的工程師弄出來的東西,經常在小升級後更換了幾個不痛不癢的關鍵詞,導致你的幾乎所有代碼都失效;遑論大升級,如 YT-3.0——這本就是所謂「屠宰式升級」的典範。
那麼多廢話,其實就一個意思:與其將自己過早地綁定在一門具體的技術上,不如做一些更通用的事情。比如,學好 Python 和 C/C++/Fortran 是絕對有必要的。如果可能,也看一看 IDL,但我不看好這門語言本身及其未來發展。在不久的將來,GPU 將擔負起更大的模擬任務,所以好好學一下 GPU 編程可能會有幫助。以及,好好研究一下有限體積方法,最好還能看一下偏微分方程教材(比如 Taylor 的那三本 Springer 黃皮),以豐富知識儲備。
當然,最應該做的,是好好學物理——你只要看一下天文里某些特定領域的人們處理問題的方法,就會發現,其實他們早就跟物理前沿脫節太遠了……
另外,騷年,乃確定乃真的喜歡做模擬,而不只是被 fancy 的動畫所吸引了么?
推薦閱讀:
※為什麼黑洞會射出高能射線?即使黑洞引力大到光都無法從中逃脫
※引力波推動了宇宙的膨脹?
※如果黃赤交角發生大幅變化,會對氣候產生什麼樣的影響?
※如何評價開普勒望遠鏡在可見光波段捕捉到超新星爆炸的激波暴?
※宇宙在膨脹,距離越遠的星系或空間遠離我們的速度越快,那麼在足夠遠處是否有超過光速遠離我們的星系或空間?