想深入學習計算力學(固體力學、結構工程、土力學等);從數學開始著手,還是從力學著手好?(本人土木出身)
謝邀。另一個受邀問題(如何系統學習固體力學)也就一併在這回答了。
力學知識往往需要依託於有限元等工具去解決實際工程問題。所以從大的方向來說,一方面要學好固體力學等力學知識,另一方面是有限元的相關知識。
固體力學方面,首先推薦一本書,Robert Asaro的 Mechanics of solids and materials。這本書從固體力學所需的數學知識,到線彈性,非線性彈性,塑性(包括晶體塑性)等都有介紹。
固體力學所需的數學知識主要包括張量計算,和一些微積分定理(如高斯定理,斯托克斯定理),基本就夠用了。然後可以從線彈性力學開始學習,有助於熟悉張量計算,應力應變,本構關係,應變能等基礎知識。另外線彈性力學有很多經典問題是可以不藉助有限元就可以手解出解析解的,所以選幾個經典問題加以練習是鞏固固體力學基礎的機會。再往後可以學習非線性彈性(比如大變形),個人覺得核心是引入了變形梯度(deformation gradient),在後面的晶體塑性也經常用到。再往後就是塑性力學,個人覺得有兩個階段,第一個是phenomenological plasticity,即只關注應力應變關係,或者說是彈塑性下的本構關係。需要學習一些屈服準則,和本構關係的模型。第二個是從更本質的物理意義去解釋塑性變形,如晶體塑性理論。核心是將變形梯度F分解為彈性變形梯度Fe和塑性變形梯度Fp. 而Fp可以由更微觀的位錯理論決定,這就更深了。
有限元方面,由於除了一些線彈性問題可以手解解析解,其他都不可避免的需要用到有限元求解近似解。有限元需要一些泛函數分析,變分等數學知識支持。如果不熟悉可能需要先補充相關數學知識。主要把握強弱形式的基本思想,畢竟關於求解的數值方法就是另一片領域了。
最後對於如何學習提一些個人建議。如果只是一直看書可能有時候會感到迷失,不知道自己有沒有真正掌握。所以可以嘗試用學到的知識去解決一些簡單的實際問題。個人對COMSOL軟體比較熟悉,就拿它來舉例。COMSOL有提供equation-based modeling模塊,也就是說用戶需要自己輸入求解所需要的微分方程(或對應的強弱形式),這種半開放式的方式是很有助於鞏固所學知識的。比如你可以將所學的線彈性問題的控制方程轉化成弱形式,輸入COMSOL求解,將結果和COMSOL內置固體力學模塊所得到的結果進行對比。這樣做的好處是你不用自己去編寫有限元求解器,同時也避免了使用內置模塊時對軟體所使用的方程不理解的處境。謝謝邀請。
個人覺得可以先學基礎的數學知識,考研水平的即可。然後可以學習一下力學的知識,如材料力學,彈性力學。學完這些,對數學和力學都有儲備之後,可以學習那種數學力學交叉的知識,如張量,虛功,變分等,最後是有限元。瀉藥。
計算力學是數值計算,軟體工程,和應用力學的交匯。所以如果真要「深入」,三者都要多少知道點。回答你的問題:既不是從數學入手,也不是從力學入手,而是從計算入手。從固體計算力學的角度,詳述如下。
經典意義上的數學和力學本質上是一家人。你是土木出身,那麼數學功底大致和其他工科專業看齊,微積分到微分方程到數值分析應該都已經掌握了。經典牛頓力學和材料理論也應該熟悉了。那麼從普通大學科目設置的角度,課程表上沒有或者不足需要自己加強的是下面這些。
固體力學:非線性材料,塑性強度理論,破壞準則,大變形,板殼理論。
應用數學:高等數值方法(牛頓迭代,穩定性理論,數值積分),誤差分析。軟體工程:c/c++/fortran,一種腳本語言,項目管理,演算法分析,並行計算。上面固體力學的那些科目是所有計算固體力學項目的開發者都應該知道的,至少基本概念要有。後面兩類的每一項都跟「算」相關,上場開發大型計算力學項目基本夠了。其他的可以在工作中鍛煉。如果想在理論上繼續深入,一個不錯的入口是有限元的泛函分析大背景,從那開始就沒有頭了。
補充:上面說的是針對從事計算力學開發,這是狹義的理解:我個人更傾向於把計算力學軟體的工業應用是歸到設計性質的工作,雖然二者關係緊密。用到啥補啥吧
贊同樓上某大神:最重要的,少上知乎扯淡,這裡面都是來看熱鬧的。小木蟲好點,但是專業性也不行,也就湊合著剛入門,我在上面問過n多次問題,最後都沒結論了,真到需要問問題的時候就發現這個世界上懂你想要知道的這個很specific的道理的人,也沒那麼多。
言歸正傳,計算力學是一種數字語言對物理世界的描述。最重要的是模型,各種模型,各種表達。不同的問題對應不同的模型,比如接觸,比如屈曲,比如疲勞,等等,等等,這種問題交叉起來的時候就更麻煩了。我曾經自己寫過單元,最開始覺得牛X的不行,簡單算例效率完爆aba,後來發現我對模型的理解好膚淺,遇到複雜問題,我的單元的實用性就是個渣渣。。。
第二,材料是一種數學模型,這個就簡單一點了,無非就是各種數學方程表達。邊界條件也都是大家總結好了的。固體力學大概來說就三個方程,本構方程,平衡方程,邊界條件。把邊界條件和材料放進平衡方程,就是控制方程,也就是最後的模型。求解,就得到了你所渴望的東西。
第三,解方程。一般來說,都被大型軟體代替了,我們以前自己寫求解器的日子一去不復返了,你也不用太在乎這個了。退一步說,就算你寫,也沒啥用,沒有花錢買的好用。不過,最後問題一般都卡在這個解方程的過程裡面,不收斂阿,不收斂!沒遇到不收斂的問題,卡個把月算不出結果的,你的計算力學生涯可以說都算不上起步過。
最後,別拘泥於哪一本教材,哪一本書。計算力學是個理念,他們給你推薦的都是連續介質力學的,如果碰到個子彈打鋼板,潮水沖大壩,難道我們就不算了?particle based method很多時候也挺好用的,加上納觀的分子動力學啦,第一原理啦,啦啦啦,原來用經典力學設計飛機大炮的時候都還沒出來呢。現在搞分子生物學,儲能材料裡面需要的計算力學東西也很多。力學,牛頓老爺子定義的可不僅僅是固體,或者流體介質的變形機理阿,但凡物體之間相互作用都叫力。。。
少年郎,好好學習,天天向上。建議先學習一下力學的東西,對力學了解一個大概,帶著問題去學習數學比較好
樓主,我也是土木出身,想轉力學,求交流
推薦閱讀:
※希臘字母的發音和手寫體到底是什麼樣的?
※如何看待那些研究數學的人,數學到底有沒有作用?
※優秀的程序員需要懂那些數學知識?
※如何證明這個關於π的方程?
※如何自學高數(同濟第六版)下?——以穩過期末考試(75分+)為目的?