本書(shū)在前幾版的基礎(chǔ)上進(jìn)行了全面的修訂,主要圍繞三個(gè)方面的問(wèn)題展開(kāi)有限元程序設(shè)計(jì),即固體力學(xué)問(wèn)題、流體力學(xué)(包括熱力學(xué))問(wèn)題及固體與流體的耦合問(wèn)題(如土力學(xué)中的問(wèn)題),涉及到的方程主要有靜力平衡方程、傳導(dǎo)方程和特征值方程。本書(shū)致力于幫助讀者通過(guò)有限元技術(shù)來(lái)使用為算法設(shè)計(jì)的“構(gòu)件塊”。其重點(diǎn)并不在于程序,而在于過(guò)程或子程序的集合。目的在于教會(huì)讀者編寫(xiě)智能程序并使用它們。
譯者序
隨著計(jì)算機(jī)硬件技術(shù)的巨大改進(jìn),有限元技術(shù)在各個(gè)工程領(lǐng)域正日益顯示出強(qiáng)大的生命力。有限元技術(shù)是一種數(shù)值計(jì)算技術(shù),它對(duì)不能用解析方法求解的問(wèn)題,有著獨(dú)特的應(yīng)用能力。但是,掌握有限元技術(shù)又不僅僅是一個(gè)純粹的理論問(wèn)題,它要求應(yīng)用人員有一定的程序設(shè)計(jì)能力,才能將它們應(yīng)用于工程領(lǐng)域?qū)嵺`,否則只能“望洋興嘆”。本書(shū)就是在這樣一種背景之下翻譯出版的,使讀者真正具有編制結(jié)構(gòu)清晰可見(jiàn)、閱讀性強(qiáng)的有限元程序。
本書(shū)的特點(diǎn)之一是提供了相當(dāng)多的源程序供讀者參考,真正地“站在巨人的肩膀上”。本書(shū)提供的各個(gè)程序都利用了FORTRAN2003的強(qiáng)大功能,采用模塊化編程技術(shù)實(shí)現(xiàn),有利于讀者閱讀。同時(shí),結(jié)合具體的工程應(yīng)用實(shí)例,對(duì)本書(shū)中各個(gè)程序的應(yīng)用原理、變量含義等做了簡(jiǎn)明扼要的說(shuō)明。本書(shū)的另一特點(diǎn)是,對(duì)每一類問(wèn)題都提供了不同的求解技術(shù),如高斯直接消元法、迭代法、隱式積分法、顯式積分法、混合顯式/隱式積分法、共軛梯度法等。通常情況下,有限元分析對(duì)計(jì)算機(jī)的存儲(chǔ)要求和運(yùn)行速度要求都是很高的,尤其是對(duì)大型問(wèn)題而言。因此,本書(shū)除了提供通常采用的單元組裝技術(shù)之外,還提供了有關(guān)“逐個(gè)單元”法或“自由網(wǎng)格”法等求解技術(shù),它們不需要存儲(chǔ)大型的總剛度矩陣。
此外,本書(shū)的這一版本中,還特別關(guān)注與其他開(kāi)放軟件的接口,例如,ParaView用于計(jì)算結(jié)果的可視化,ABAQUS用戶子程序用于一些材料本構(gòu)模型,ARPACK用于大型特征值分析,METIS用于網(wǎng)格劃分等。本書(shū)涉及的知識(shí)面相對(duì)較廣,但主要圍繞三個(gè)方面的問(wèn)題展開(kāi)有限元程序設(shè)計(jì),即固體力學(xué)問(wèn)題、流體力學(xué)(包括熱力學(xué))問(wèn)題、固體與流體的耦合問(wèn)題(如土力學(xué)中的問(wèn)題),涉及的方程主要有靜力平衡方程、傳導(dǎo)方程和特征值方程。本書(shū)中,第2章和第3章是以后各章的基礎(chǔ);第4章至第6章是針對(duì)彈、塑性問(wèn)題的靜力分析,應(yīng)用的主要是靜力平衡方程;第7章至第9章主要是針對(duì)流體問(wèn)題,或者流體與固體的耦合問(wèn)題,應(yīng)用的主要是傳導(dǎo)方程;第10章至第11章是彈、塑性實(shí)體的動(dòng)力響應(yīng)分析,應(yīng)用的主要是特征值方程;第12章是有限元分析的并行處理。當(dāng)然,其有限元分析過(guò)程都是類似的,這有利于讀者針對(duì)不同問(wèn)題擴(kuò)展現(xiàn)有程序。
本書(shū)作為一本教材,主要針對(duì)學(xué)習(xí)有限元編程技術(shù)的本科生和研究生。另外,對(duì)相關(guān)領(lǐng)域內(nèi)從事有關(guān)有限元程序設(shè)計(jì)及應(yīng)用的工程技術(shù)人員也有指導(dǎo)作用。
翻譯國(guó)外的教材是一個(gè)再創(chuàng)作過(guò)程,本書(shū)的翻譯過(guò)程得到了很多人的幫助和參與,沒(méi)有他們?yōu)榇烁冻龅男羷,就不?huì)在如此短的時(shí)間內(nèi)順利地翻譯這本書(shū),在此衷心感謝為本書(shū)翻譯付出努力的每一個(gè)人!除了本人之外,慈鐵軍副教授、范偉麗副教授、葉鋒副教授和楊文剛博士等也參與了本書(shū)的翻譯工作。另外,韓春雨、曹應(yīng)平、白云燦、鄭朝陽(yáng)、張軍磊、李賽賽、李先超和張晨陽(yáng)等研究生也參與了本書(shū)翻譯的相關(guān)工作,在此對(duì)他們的工作表示衷心感謝。全書(shū)由張新春副教授統(tǒng)一校核。
由于譯者自身的知識(shí)局限性和精力有限,譯文難免有錯(cuò)漏之處,謹(jǐn)向原書(shū)作者和讀者表示歉意,并歡迎讀者批評(píng)指正。
華北電力大學(xué)機(jī)械工程系
張新春
2016年10月于保定
第五版前言
這個(gè)版本保持了先前版本成功的主題,即模塊化程序設(shè)計(jì)風(fēng)格,該風(fēng)格簡(jiǎn)潔,易于讀取計(jì)算機(jī)程序,通過(guò)求解偏微分方程而解決廣泛的工程和科學(xué)問(wèn)題。
盡管在計(jì)算機(jī)硬件上有了巨大的改進(jìn),但編程風(fēng)格本質(zhì)上是相同的。本書(shū)既適合首次接觸有限元方法的初學(xué)者閱讀,也可供使用最新一代并行超級(jí)計(jì)算機(jī)求解大型工程問(wèn)題的專家參考。
在這一版本中,特別關(guān)注的是與其他開(kāi)放軟件的接口,例如,ParaView用于結(jié)果的可視化,ABAQUS用戶子程序用于一些材料本構(gòu)模型,ARPACK用于大型特征值分析,METIS用于網(wǎng)格劃分。
考慮到計(jì)算機(jī)硬件的快速發(fā)展,第1章已經(jīng)重新改寫(xiě),例如,GPU的可用性和云計(jì)算環(huán)境。在第2章到第11章中,增加了大量附件用于提高分析選項(xiàng)。例如,新回歸算法用于彈、塑性分析,更多的一般邊界條件規(guī)范和動(dòng)態(tài)分析的復(fù)雜響應(yīng)選項(xiàng)。
第12章已經(jīng)更新,說(shuō)明有限元分析在并行計(jì)算環(huán)境中快速發(fā)展的可能性。在第四版中,并行“進(jìn)程”的最大數(shù)目是64,而在本版本中,這個(gè)數(shù)目已經(jīng)增加到64000。本書(shū)還講述了加速計(jì)算GPU的使用。
致謝
非常感謝許多個(gè)人和機(jī)構(gòu)對(duì)本書(shū)所做的貢獻(xiàn)。感謝澳大利亞研究理事會(huì)對(duì)紐卡斯?fàn)?NSW)大學(xué)巖土科學(xué)與工程研究中心(CGSE)的大力支持,尤其是黃勁松(JinsongHuang)對(duì)第6章、第8章和第9章中幾個(gè)新的和改進(jìn)的程序開(kāi)發(fā)與驗(yàn)證所做的貢獻(xiàn)。路易斯(曼徹斯特大學(xué))是ParaFEM的主要開(kāi)發(fā)者之一,提供了第1章、第5章、第6章和第12章中ParaView使用的練習(xí)題,并建立了社團(tuán)網(wǎng)站http://parafem.org.uk。
有許多人對(duì)第12章做出了貢獻(xiàn)。LlionEvans,PaulMummery,PhilipManning,GrahamHall和DimitrisChristias(曼徹斯特大學(xué))提供了科學(xué)案例研究。FlorentLebeau和FrancoisBodin(CAPS公司)評(píng)估了GPU的使用,PhilippeYoung(Simpleware有限公司)提供了基于圖像模型的大力支持。
第12章中的程序標(biāo)記利用超級(jí)計(jì)算機(jī)來(lái)完成,這些超級(jí)計(jì)算機(jī)屬于英國(guó)國(guó)家高性能計(jì)算服務(wù)“HECToR”(e107,e254)和英國(guó)區(qū)域服務(wù)“N8HPC”(EP/K000225/1)。歐盟FP7項(xiàng)目“Venus-C”和(西班牙)巴塞羅那超級(jí)計(jì)算中心提供了使用微軟Azure的通道、資源和培訓(xùn)。
在本書(shū)的準(zhǔn)備過(guò)程中,我們也要感謝我們的家庭成員對(duì)本書(shū)的大力支持,包括ValerieGriffiths,LauraSanchez和NathanMargetts。
目 錄
第1章 預(yù)備知識(shí):計(jì)算機(jī)策略 1
1.1 引言 1
1.2 計(jì)算機(jī)硬件 1
1.3 存儲(chǔ)管理 2
1.4 向量處理器 2
1.5 多核處理器 3
1.6 協(xié)處理器 3
1.7 并行處理器 3
1.8 應(yīng)用軟件 4
1.8.1 編譯器 5
1.8.2 算術(shù)精度 5
1.8.3 條件語(yǔ)句 6
1.8.4 循環(huán)語(yǔ)句 6
1.9 數(shù)組 7
1.9.1 動(dòng)態(tài)數(shù)組 7
1.9.2 數(shù)組“廣播” 8
1.9.3 數(shù)組賦值 8
1.9.4 向量下標(biāo) 8
1.9.5 子數(shù)組 9
1.9.6 數(shù)組的整體操作 9
1.9.7 進(jìn)行數(shù)組運(yùn)算的內(nèi)部函數(shù) 9
1.9.8 模塊 10
1.9.9 子程序庫(kù) 10
1.9.10 結(jié)構(gòu)化編程 13
1.10 第三方函數(shù)庫(kù) 14
1.10.1 BLAS函數(shù)庫(kù) 14
1.10.2 數(shù)學(xué)函數(shù)庫(kù) 14
1.10.3 用戶子函數(shù) 14
1.10.4 MPI函數(shù)庫(kù) 14
1.11 可視化 15
1.11.1 啟動(dòng)ParaView 15
1.11.2 顯示約束節(jié)點(diǎn) 16
1.11.3 顯示施加荷載 17
1.11.4 顯示變形的網(wǎng)格 17
1.12 本章小結(jié) 18
參考文獻(xiàn) 19
第2章 有限元的空間離散化 20
2.1 引言 20
2.2 桿單元 20
2.2.1 桿單元?jiǎng)偠染仃?20
2.2.2 桿的慣性矩陣 22
2.3 特征值方程 23
2.4 梁?jiǎn)卧?23
2.4.1 梁?jiǎn)卧獎(jiǎng)偠染仃?23
2.4.2 梁?jiǎn)卧獞T性矩陣 25
2.5 具有軸向力作用的梁 25
2.6 彈性地基梁 26
2.7 離散化處理概述 27
2.8 推導(dǎo)單元?jiǎng)偠鹊牧硪环N方法 27
2.9 二維單元:平面應(yīng)力單元 28
2.10 能量法和平面應(yīng)變 31
2.11 平面單元的慣性矩陣 33
2.12 軸對(duì)稱應(yīng)力與應(yīng)變 33
2.13 三維應(yīng)力與應(yīng)變 34
2.14 平面彎曲單元 36
2.15 固體單元方程小結(jié) 39
2.16 流體流動(dòng):納維-斯托克斯方程 39
2.17 流動(dòng)方程的簡(jiǎn)化 42
2.17.1 穩(wěn)態(tài)問(wèn)題 42
2.17.2 瞬態(tài)問(wèn)題 43
2.17.3 對(duì)流問(wèn)題 44
2.18 畢奧固結(jié)耦合方程 45
2.19 本章小結(jié) 46
參考文獻(xiàn) 47
第3章 有限元的編程實(shí)現(xiàn) 48
3.1 引言 48
3.2 四邊形單元的局部坐標(biāo) 48
3.2.1 四邊形單元上的數(shù)值積分 50
3.2.2 四邊形單元上的解析積分 51
3.3 三角形單元的局部坐標(biāo) 52
3.3.1 三角形單元的數(shù)值積分 52
3.3.2 三角形單元的解析積分 53
3.4 多單元組裝 53
3.5 逐個(gè)單元法 55
3.5.1 求解線性方程組的共軛梯度法 55
3.5.2 前置法 56
3.5.3 非對(duì)稱系統(tǒng) 57
3.5.4 對(duì)稱的非正定方程 58
3.5.5 特征值系統(tǒng) 58
3.6 邊界條件的引入 58
3.7 模塊化編程 61
3.7.1 黑盒子程序 62
3.7.2 專用子程序 63
3.7.3 使用四邊形單元對(duì)彈性實(shí)體的平面應(yīng)變(應(yīng)力)分析 63
3.7.4 使用三角形單元對(duì)彈性實(shí)體的平面應(yīng)變(應(yīng)力)分析 66
3.7.5 彈性實(shí)體的軸對(duì)稱應(yīng)變分析 66
3.7.6 平面穩(wěn)態(tài)流層 67
3.7.7 質(zhì)量矩陣 67
3.7.8 高階二維單元 68
3.7.9 三維塊單元 69
3.7.10 單元?jiǎng)偠染仃嚨慕M裝 73
3.8 平衡方程的求解 77
3.9 特征值和特征向量的計(jì)算 78
3.9.1 雅可比算法 78
3.9.2 Lanczos和Arnoldi算法 79
3.10 一階率相關(guān)問(wèn)題的求解 79
3.11 耦合納維-斯托克斯問(wèn)題的求解 82
3.12 耦合瞬態(tài)問(wèn)題的求解 84
3.12.1 完全載荷法 84
3.12.2 載荷增量法 85
3.13 二階偏導(dǎo)率相關(guān)問(wèn)題的求解 85
3.13.1 模態(tài)疊加 86
3.13.2 紐馬克或克蘭克-尼科爾森法 88
3.13.3 威爾遜法 89
3.13.4 復(fù)合響應(yīng)法 89
3.13.5 顯式積分法和其他方法的概述 90
參考文獻(xiàn) 91
第4章 結(jié)構(gòu)的靜力平衡 93
4.1 引言 93
4.2 本章小結(jié) 127
4.3 變量名稱術(shù)語(yǔ) 127
4.4 習(xí)題 129
參考文獻(xiàn) 135
第5章 線彈性實(shí)體的靜力平衡 136
5.1 引言 136
5.2 變量名稱術(shù)語(yǔ) 178
5.3 習(xí)題 182
參考文獻(xiàn) 187
第6章 材料非線性 188
6.1 引言 188
6.2 材料的應(yīng)力-應(yīng)變關(guān)系 189
6.3 應(yīng)力不變量 190
6.4 破壞準(zhǔn)則 192
6.4.1 米澤斯破壞準(zhǔn)則 192
6.4.2 莫爾-庫(kù)侖和特雷斯卡破壞準(zhǔn)則 193
6.5 體荷載的生成方法 193
6.6 黏塑性法 194
6.7 初始應(yīng)力法 195
6.8 破壞面和塑性勢(shì)面的拐點(diǎn) 196
6.9 彈塑性率相關(guān)的積分 220
6.9.1 正向歐拉積分法 222
6.9.2 后向歐拉積分法 222
6.10 切線剛度法 223
6.10.1 非一致切線模量矩陣 223
6.10.2 一致切線模量矩陣 224
6.10.3 收斂性判斷準(zhǔn)則 224
6.11 堤防結(jié)構(gòu)構(gòu)筑與土方開(kāi)挖的土工技術(shù)處理方法 236
6.11.1 筑堤防護(hù) 236
6.11.2 開(kāi)挖技術(shù) 242
6.12 不排水剪分析 249
6.13 變量名稱術(shù)語(yǔ) 262
6.14 習(xí)題 268
參考文獻(xiàn) 270
第7章 恒定流 272
7.1 引言 272
7.2 變量名稱術(shù)語(yǔ) 292
7.3 習(xí)題 295
參考文獻(xiàn) 298
第8章 一階瞬態(tài)問(wèn)題(非耦合) 299
8.1 引言 299
8.2 程序8.4,程序8.5,程序8.6和程序8.7的比較 320
8.3 變量名稱術(shù)語(yǔ) 337
8.4 習(xí)題 340
參考文獻(xiàn) 342
第9章 耦合問(wèn)題 343
9.1 引言 343
9.2 變量名稱術(shù)語(yǔ) 369
9.3 習(xí)題 374
參考文獻(xiàn) 374
第10章 特征值問(wèn)題 375
10.1 引言 375
10.2 變量名稱術(shù)語(yǔ) 387
10.3 習(xí)題 390
參考文獻(xiàn) 392
第11章 受迫振動(dòng) 393
11.1 引言 393
11.2 變量名稱術(shù)語(yǔ) 421
11.3 習(xí)題 425
參考文獻(xiàn) 426
第12章 有限元分析的并行處理 427
12.1 引言 427
12.2 并行和串行程序間的差異 428
12.2.1 并行庫(kù) 428
12.2.2 全局變量 429
12.2.3 MPI庫(kù)常規(guī) 429
12.2.4 _pp附屬 430
12.2.5 簡(jiǎn)單的測(cè)試問(wèn)題 430
12.2.6 讀入和輸出 433
12.2.7 rest取代nf 433
12.2.8 聚與散 433
12.2.9 重新索引 434
12.2.10 域組成 434
12.2.11 第三方網(wǎng)格劃分工具 434
12.2.12 加載平衡 436
12.3 圖形處理器 480
12.4 云計(jì)算 485
12.5 本章小結(jié) 486
12.6 變量名稱術(shù)語(yǔ) 487
參考文獻(xiàn) 493
附錄A 等效節(jié)點(diǎn)荷載 495
附錄B 形函數(shù)和單元節(jié)點(diǎn)編號(hào) 499
附錄C 塑性應(yīng)力-應(yīng)變矩陣及塑性勢(shì)偏導(dǎo)數(shù) 505
附錄D main庫(kù)子程序 508
附錄E 幾何庫(kù)子程序 512
附錄F 并行庫(kù)子程序 513
附錄G 外部子程序