6
A
回答
3
下面是一些閱讀列表。不知道它對你來說是否太基礎:
Writing Scientific Software:一個很好的後續基本的「學習在C++程序」或其他。
Parallel Scientific Computing in C++ and MPI:如果你不打算平行你的應用程序,你應該。
Engineering and Scientific C++:一個很好的,特定領域的C++編程入門。語言細節有點過時,但整體方法還沒有老化。
我建議你閱讀所有答案,例如'我應該如何設計一個大型C++程序?'。爲其他可能感興趣的書提供建議。
至於最佳做法,這裏有一些建議。再次,我不確定你的出發點,所以有些可能太基本了:
- 正如我上面寫的,你應該從一開始就計劃開發一個並行程序。如果羣集上的消息傳遞不是你的一杯茶,那麼至少應該考慮爲多核桌面共享內存編程。 OpenMP值得調查。
- 讓自己熟悉現有的工作。 BOOST庫可能是必不可少的。雖然我讚賞你打算自己製作的意圖,但不要忽略現有的已建立的數字圖書館,例如你會在Netlib找到的BLAS和LAPACK。根據您的開發平臺和工具集,您可能會發現它們已經安裝。
- 如果您來自科學背景,您可能想要提高您對軟件工程的知識和技能。問題如:源代碼管理;測試;代碼剖析和優化;深入瞭解你的編譯器可以做什麼。根據我的經驗,許多計算科學家在所有這些東西中都有薄弱的背景。
- 您應該計劃花費(大約)儘可能多的時間來設計和測試程序,而不是實際編碼它。即使在你自己工作之前,在你開始編碼之前,有一個很好的行動計劃是很重要的。沒有理由爲什麼它必須在開始時的每一個細節都完整,但沒有地圖就不會進入領土。
- 你對你想模擬的物理世界的方面保持沉默。在各種物理模擬中有很多現有技術,如果你更具體一些,SO可能會提供一些更具體的建議。
1
開始Numerical recipes: the art of scientific computing。一個相當全面的內容。但是,請記住兩件事:
- 它包含C++和Fortran 90代碼示例。
- 實際上忘記了使用您的項目中的任何代碼示例 - AFAIK它們都是受版權保護的,必須單獨獲得許可才能重用。
不過,如果您需要它用於教育目的,這本書是強烈推薦閱讀。
+0
那麼,當然,如果您爲許可證付費,您可以使用來自Numerical Recipes的代碼。這樣的許可證並不昂貴。 – 2010-09-30 18:13:38
1
看看OpenModelica。
相關問題
- 1. 從頭開始實施LinkedList方法
- 2. 實施IModelBinder時的最佳實踐
- 3. 最佳實踐:iAds到iPhone的實施
- 4. 實施哈希的最佳實踐?
- 5. 緩存實施的最佳實踐
- 6. 學習.NET/OOP最佳實踐的最佳方法?
- 7. 最佳實施方法has_n
- 8. X509證書實施最佳實踐
- 9. NoSql/Raven DB實施最佳實踐
- 10. AES-256最佳實踐實施
- 11. Azure ACS - 最佳實踐實施
- 12. 最佳實踐實施時copyWithZone:
- 13. 多貨幣最佳實踐與實施
- 14. 學習Git最佳實踐
- 15. Ember和國際化:請求最佳實踐和實施方法
- 16. 最佳實踐request.method方法
- 17. Zend模型最佳實踐 - 學說?
- 18. GWT:單元測試/模擬JSNI方法的最佳實踐?
- 19. Mockito中模擬方法的單元測試最佳實踐
- 20. 最佳實踐從一個const-方法
- 21. 從頭開始實施互斥鎖
- 22. JMS開發最佳實踐
- 23. Django開發最佳實踐
- 24. Android開發最佳實踐
- 25. ASP最佳實踐開銷
- 26. 學習新技術的最佳實踐
- 27. java中mutator方法的最佳實踐
- 28. 最佳實踐CodeIgniter模板
- 29. Rails模型最佳實踐
- 30. 從迭代實現django OR查詢的最佳實踐方法?
嗨。非常感謝您的幫助和廣泛的答覆。關於你的最後一點,這個想法是開發一些新的分子動力學代碼。一些建議在這裏?謝謝 – flow 2010-10-01 09:51:08
分子動力學超出了我的肯定,但我看到維基百科文章有一些指向軟件的指針。如果您無法找到開放源代碼進行檢查,那麼我會感到非常驚訝,並且文獻非常廣泛。 – 2010-10-01 11:12:55