程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

非線性有限元:基本理論與算法及基於Python、Fortran程序實現與案例分析

編輯:Python

       有限單元法在巖土工程問題中應用非常廣泛,很多商業軟件如Plaxis/Abaqus/Comsol等都采用有限單元解法。盡管各類商業軟件使用方便,但其使用對用戶來說往往是一個“黑箱子”。相比而言,開源的有限元程序計算方法透明、計算過程可控,用戶可根據自己的需求進行必要的修改,這一點對於科研人員特別重要。然而,長期以來由於有限元開源程序的欠缺、教學方法以介紹理論為主,開源有限元的使用在國內相對較少。然而,科研領域的很多新的東西很難實現在商業軟件中(除非通過復雜的二次開發,而二次開發往往需要具備一些子程序編寫的能力,如Abaqus的Umat子程序、Plaxis的UDSM等),如果掌握一些開源有限元的基本流程及相應子程序的編寫方法,對基於自己開發程序或者商業軟件開發接口的科研等工作將大有益處。

        本次主要針對巖土工程中的材料非線性問題(應力變形分析中的各種彈塑性本構模型、滲流分析中的非線性滲透系數等),包括前處理輸入文件的准備、計算可執行文件的編譯生成、後處理輸出文件的可視化等,其中的編程模塊盡可能做到讓學員零基礎開始,通過提供標准程序庫使用搭積木、擺樂高的形式模塊化進行,加強大家的易上手、可操作性。您只需了解簡單的編程語句結構即可,甚至都不需要懂某種編程語言的具體語法。通過本次學習達到以下目標: 您會發現不經意間已經學會了某種編程語言(盡管沒有進行單獨的語言學習),發揮通過實例學習的益處。同時將介紹Paraview等後處理軟件的使用及其Fortran/Python等接口程序。實例包括非線性有限元方法在擋土牆、地基穩定、邊坡穩定等三大穩定性問題中的應用等。同時現場講解源程序的修改與重新編譯,方便各個領域可以更好地交叉融合、擴展應用。我們精選模型應用案例,全程干貨,讓您全面熟悉滲流模型,提高模型應用能力、數據分析和圖表制作技能

有限元編程基礎知識

有限單元法基礎簡介(離散化、存儲策略及方程解法、邊界條件的處理)

編程語言Fortran及編譯工具Intel Visual Fortran(IVF)簡介、Python開發環境Spyder簡介

Fortran/Matlab/Julia/Python等開源代碼及程序庫(geomlib/femlib)簡介

非線性有限元模型相關模塊及計算流程

巖土工程材料非線性問題介紹

非線性有限元常剛度法實現模塊

有限元分析數值基礎與常剛度法

天際線法等整體系數矩陣存儲與方程直接求解方法

整體系數矩陣免組裝(預條件)共轭梯度法方程求解方法

牛頓(-拉夫森)迭代求解基本原理與數值實現

應力不變量、屈服函數、塑性勢函數、幾種典型的破壞准則及未定義的奇異點處理

初應變常剛度法的實現方法(虛擬粘塑性算法)、初應力常剛度法的實現方法

 

 

 圖2 幾種破壞准則(米塞斯、屈雷斯卡、摩爾庫倫)

3 常剛度法(左)、變剛度法(右)示意圖 

 非線性有限元切線剛度法實現模塊

彈塑性應力應變關系的本構積分(前向歐拉法、後向歐拉法)

塑性流動准則、切線剛度法中的非一致和一致切線模量

應力積分算法之最近點投影法CPPM (Closest Point Projection Method) 實現

應力積分算法之切平面法CPA (Cutting Plane Algorithm) 實現

應力積分算法之徑向返回法RR (Radial Return)與各算法的收斂准則

 

5 CPPM和CPA算法示意

地基穩定性、擋土牆穩定性、邊坡穩定性實例應用模塊

應用實例

地基承載力問題(位移控制、力控制)

擋土牆穩定性問題(初應力法改進)

邊坡穩定性問題(強度折減法及安全系數自動搜索)

輸入文件准備、輸出文件IrfanView、Paraview可視化(手把手操作與講解)

Pyhton/Fortran90源代碼按需修改與重新編譯(應用於隨空間變異的巖土體參數)

 

  邊坡穩定性分析的強度折減法(直接解法與迭代解法)流程圖

 方形基礎承載力(三維及其部分剖面) 

圖地基土內應變不變量(破壞面) 

  擋土牆穩定性分析(主動土壓力)

圖 邊坡穩定性 (破壞面) 

 非線性有限元:基本理論與算法及基於Python、Fortran程序實現與案例分析


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved