c语言如何输入矩阵_如何在 COMSOL 软件中调试外部材料
生活随笔
收集整理的這篇文章主要介紹了
c语言如何输入矩阵_如何在 COMSOL 软件中调试外部材料
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述
我實現了一種用于“結構力學”的外部材料,但我的模型無法求解。解決方法
外部材料一般通過 C 語言編碼,然后被編譯到共享庫中,供 COMSOL Multiphysics 在運行時使用。如果您在編譯外部材料代碼時遇到問題,請參閱 COMSOL Multiphysics 安裝手冊中的如何編寫和連接外部材料模型一節。外部材料的用途有兩個方面:- 計算用于確定內力和外力是否達到平衡的機械應力。
- 計算應力對應變的導數(雅可比),從而使方程求解器可以迭代以建立力平衡。
- 建立一個盡可能小的模型,最好使用單一的網格單元。
- 對模型施加位移控制的載荷。這樣,您就可以精確控制輸入外部材料代碼中的應變。此外,如果您要實現的材料模型包含軟化,請務必使用位移控制的模型。
- 使用簡單的變形情況,例如單軸拉伸和純剪切。
應力計算
您需要對一些與應力計算有關的事項進行檢查:- 如果外部材料在單軸載荷下表現良好,但在其他變形模式下失效或產生不正確的結果,請確保在外部材料代碼中使用了正確的剪切應變分量定義和順序。
- 您的代碼中是否存在被零除的風險?在分析開始時,外部材料可能會調用零位移場(零應變),因此需要添加保護性代碼,以避免可能出現的問題。
- 許多非彈性材料模型都需要局部迭代來計算應力,這通常被稱為應力更新算法。COMSOL Multiphysics 不會去控制這些局部迭代,因此,密切關注您實現的迭代方法的健壯性非常重要。是否存在數值溢出的風險?在蠕變模型中,應力通常大于一次冪關系。在局部迭代過程中,未收斂的應力可能相當高,以至于提高到冪指數關系時產生溢出。在代碼中添加安全措施來識別這些類型的問題會很有幫助。
- 如果您認為應力更新算法有問題,可以使用 C 語言中的 fprintf 語句將局部迭代中的信息打印到單獨的文件中。但是要小心,這可能會產生大量的輸出。
雅可比矩陣計算
雅可比矩陣不正確的一個標志是,模型在分析過程中的一部分運行沒有問題,但隨后會出現收斂問題。這種現象表明雅可比矩陣的非彈性部分不正確,您可以使用以下幾種方法來識別并糾正與雅可比矩陣計算有關的問題:- 首先必須指出的是,在許多情況下,一個稍微偏離正確雅可比矩陣的近似雅可比矩陣通常足以達到收斂。這只會影響收斂速度,而不影響解的精度。
- 導致收斂問題的最常見原因是沒有正確定義雅可比矩陣。從形式上看,雅可比矩陣是第二類皮奧拉-基爾霍夫應力對格林-拉格朗日應變(或對變形梯度)的導數。必須計算導數,使其與計算應力所采用的應力更新算法一致。
- 和應力更新算法一樣,請密切關注剪切應變的定義和順序。
- 在求等效應力等物理量的微分時,一個常見的陷阱是忽略應力張量的對稱性。在使用壓縮的矢量格式處理應力和應變時,可能會出現問題。
- 應力對應變的微分可能相當復雜(且容易出錯),您可以嘗試對雅可比矩陣表達式進行受控簡化。
- 如果雅可比項的表達式非常復雜,您可以使用 fprintf 語句將值打印到單獨的文件中,然后與手動計算的值進行比較。但是請小心,這可能會產生大量的輸出。
一般建議
由于應力計算或雅可比矩陣計算存在問題,有時很難確定外部材料代碼是否失敗。基于應變場的數值擾動來實現雅可比矩陣可能是一種有效的做法。Miehe 于 1996 年提出了一種擾動技術,用六個額外的應力計算來代替雅可比矩陣計算。這項技術在計算上可能非常昂貴,但在外部材料開發過程中非常有用。此外,還請注意,本軟件針對本構建模中經常出現的許多張量和矢量運算提供了一個實用程序函數庫,可以幫助您減少自己編寫相應功能代碼所花費的時間。請參閱 Structural Mechanics Module User's Guide 中的 Using External Materials 一節。關于如何在 COMSOL Multiphysics 中實現外部材料的演示,我們提供了許多資料供您參考,例如:外部材料示例,結構力學?演示模型,COMSOL Multiphysics 軟件提供一個豐富的材料模型集合,在每個版本中,我們都會不斷添加更多的內置材料模型,當前版本中現在可能已經包含您正在作為外部材料編碼的材料特性。參考文獻
Miehe, C., "Numerical computation of algorithmic (consistent) tangent moduli in large-strain computational inelasticity", Comp. Meth. Appl. Mech. Engng., Vol 134, No. 3-4, pp. 223-240, Aug 1996.
本文內容來自 COMSOL 知識庫,點擊“”,獲取實現外部材料的演示的案例模型。
總結
以上是生活随笔為你收集整理的c语言如何输入矩阵_如何在 COMSOL 软件中调试外部材料的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: selenium python实例录制运
- 下一篇: LeetCode算法入门- Multip