如何學習程序結構力學?
01-08
題主土木本科在讀,對編程感興趣,想擼一個二維結構力學求解器。袁駟的《程序結構力學》是用的Fortran,我只學過C語言和MATLAB。有沒有使用C語言(或c艹)MATLAB的教學?或者大神前輩們有更好的方法和建議?
我覺得學一下Fortran然後再用Fortran寫最省事兒,因為袁老師的結力求解器的教學版中,已經幫你把前後處理都做好了,我們只需要寫核心的計算程序。我是學《程序結構力學》課才開始用Fortran的。如果想用C或者Matlab做,也可以看袁老師的書,書中的Fortran代碼很好懂啊,照著寫唄。
請先看一下鄙人做的結構力學求解器——結構大師HD介紹與操作視頻我只建議你寫結構力學的相關演算法,但不建議你去擼一個結構力學求解器。清華我不清楚,但就同濟來說,每一屆至少有五個團隊(或個人)會擼一個屬於自己的結構力學求解器。最好笑的是,我大三時參加我們學院的程序模擬比賽(這個比賽我每年都會參加,院級比賽刷不了學分,僅僅因為興趣),9個參賽項目里有6個是做結構力學求解器的。我當時做的是一個把測量和BIM相結合的一個App,看到那一群的求解器,我瞬間就無語了——難道我們土木的學生就真的那麼又土又木嗎?對編程感興趣的同濟學生難道只會做結構力學求解器嗎?作為全國土木學生中頂尖實力的我們,創造性就那麼差嗎?懷著這樣的想法,我。。。好吧,我還是做了一個結構力學求解器。如果你在學習《程序結構力學》並且還很感興趣,你可以自己寫一點演算法,用什麼語言其實都無所謂。因為就我看來,《程序結構力學》的那點演算法只要懂了基本原理,寫出來根本就不是事兒~教材的話,全國也沒有比袁老師的《程序結構力學》更好的教材了,雖然他用的語言是Fortran。
至於擼一個求解器,如果你覺得你擼出來的求解器在操作上能夠達到《結構大師》的高度,那你就擼吧。可我擼《結構大師》的時候,真的是每天15個小時在圖書館整整擼了一年,再加一個人的配合幫忙。如果想做一個簡單的,實在是沒這個必要。世界那麼大,又土又木的我們也應該發散一下自己的思維。基於雲的BIM平台、基於人工智慧的結構設計軟體、基於物聯網的結構監測……這麼多的東西等待你們的挑戰,何必做什麼結構力學求解器?因為做了這個,可能你最終會很自豪、很驕傲,但是真的很明確地告訴你,你用來做求解器的技術(一般是大學計算機課教的)真的只是幾十年前的老技術,是一個遠遠落後於整個科技圈的技術,是早就被淘汰的技術。
所以,做之前也請你開闊一下眼界吧~我想寫一個結構力學求解器 - 大貓和他的小夥伴們 - 知乎專欄一起擼
推薦閱讀:
※mathematica中pi (π)是如何做到是精確值的?
※在C#下有什麼好辦法可以替代if-else和switch-case?
※如何利用 Matlab實現矩陣相同元素的查找?