計算應力應變曲線腳本idealdeform.sh使用指南

2021-01-08 學術之友

本文版權歸ponychen所有,請關注他的GitHub的主頁獲取腳本!

在材料力學強度的表徵測試中,理想拉伸曲線是其中典型的一種方式。從拉伸曲線中我們可以獲得彈性模量,屈服強度等等有用的力學係數。使用第一性原理模擬理想拉伸(不局限於拉伸,但要注意,不要將宏觀應力應變與DFT計算的理想應力應變混淆)曲線當然是一種很fancy的方法,但是目前我沒有看到一個自動化實現這個過程的腳本。我用bash寫了一個idealdeform.sh腳本,可以自動化實現理想拉伸或者剪切過程,目前主要用於VASP。

Nanoscale, 2017, 9, 850–855

還是先講講原理吧。腳本原理相當簡單,我主要先講一下兩類應變和應力。我們知道,我們平時主要用的是工程應變和工程應力。這類應變應力定義如下

各項符號我就不過多解讀了,這個應該是基礎的東西。我們注意到,l_0 和A_0都是樣品在未拉伸時的初始狀態,這也就導致工程應變和工程應力並非材料實際所受的狀態,因此我們日常看到的實際樣品的工程應力應變曲線往往都是這種低碳鋼形狀的1。

材料在B點開始屈服,D點開始發生頸縮,E點發生斷裂。但實際上材料發生頸縮後,材料繼續加工硬化,真實應力實際上是繼續上升,直到斷裂。為了更加準確地描述這個過程,有時候大家也會使用真實應變和真實應力來繪製曲線。下面我們來簡單推導一下兩者得表達式。

考慮塑性變形的不可壓縮性,我們有:

我們將當前面積A的定義代入到真實應力的定義式中即得真實應力和工程應力的換算關係。

真實應變就更加簡單了,我們只需要對每個瞬時應變進行積分即可

但實際上這種真實應變與工程應變的換算關係僅存在於頸縮初期之前,因為後期的時候材料的不可壓縮的假設已經崩潰。因此實際材料變形曲線還需進一步校正,不過本文就不再過多討論了。再次強調,我只是介紹了兩類應力應變,請不要將宏觀應力應變和理想應力應變聯繫起來。

下面我開始講一下腳本的使用方法,原理就不細講了,根本在於假設應變過程足夠慢,可以看作準靜態應變,這樣我們只需按一定應變間隔施加應變矩陣,優化晶胞和原子即可。首先我們需要準備優化晶胞所需要的VASP四個輸入文件。注意,POSCAR的原子坐標必須是分數坐標 。INCAR中ISIF可以用4,但請在OPTCELL中關閉你變形方向的弛豫 (OPTCELL是什麼?自己去DET群文件搜搜吧)。最好不要用3,晶格的體積發生變化會導致曲線失真。然後將idealdeform.sh放到同一文件夾。我測試的體系是fcc Ni, a為3.5058。

現在我們來修改腳本中相關參數。

orientation表示施加應變的方式,你可以選擇XX, YY, ZZ, XY, XZ, YZ六種變形方式中的一種,前三種為拉伸,後三種為剪切。initial為施加的初始應變,step表示每一步應變的間隔,num表示從初始應變開始按照step間隔一共連續施加了多少次應變。圖中的例子就表示對fcc Ni沿著X軸拉伸,初始應變為0,每隔0.01施加應變進行一次拉伸,一共施加了100次應變,最後施加的應變為1.000(100%)。mpiexec表示你的運行語句,由你的系統決定。最後直接運行腳本即可。

腳本會告訴你目前進行的進度,我們只需靜待完成。計算完成後,程序默認會用gnuplot畫一個工程應力應變曲線。

單位為GPa。我已經重新修改過單位,證號就表示拉應力。如果你覺得這樣子看很辣眼睛,你可以將plot.sh也複製到當前文件夾,然後運行。

腳本運行完後,工程應力應變曲線的數據會被保存到engineeringstressstrain.all中,真實應力應變曲線的數據會被保存到truestressstrain.all中。如果某一步中出現無法收斂的情況,程序會停止。你應該在OUTCAR中查找原因,並從當前階段繼續運算。

下面說幾個注意事項,非常重要:

大部分時間你並不需要用到真實應變,尤其當你的體系存在表面的時候,你不用去管真實應力應變曲線DFT獲得的應力應變曲線跟宏觀應力應變曲線沒有任何可比性,使用者應該清楚自己使用這個腳本獲得的應力應變曲線到底應該如何理解。宏觀應力應變來源於位錯運動,跟DFT結果完全不是一個概念,我之所以在開頭描述了一堆主要是為了介紹真實應力應變

相關焦點

  • 一文讀懂應力應變以及應力應變曲線
    相信大家在學習材料力學的時候,都會做一個低碳鋼的應力應變實驗,然後得出其載荷/伸長量 曲線,從而得出其應力應變曲線。
  • VASP高級教程[6]計算並繪製三維能帶圖腳本分享
    VASP計算並繪製三維能帶圖腳本分享有時候大家需要就算某一能量區間的三維能帶圖,來了解某一區域的能帶色散情況,比如Dirac cone
  • 不用寫腳本,自由式表格動態計算使用指南來了
    在舊版本中的自由式表格中,各種計算都需要藉助於腳本才能實現,而在永洪BI 8.6之後,列的計算就可以直接使用動態計算來實現了,將寫腳本帶來的煩惱拋之腦後,接下來我們就一起看一下自由式表格的動態計算的介紹以及使用吧~動態計算器指每個格子的數值是動態計算出來的,也可以稱為是格間計算。主要解決在表格中沿著特定的方向來動態計算出數值。
  • 使用腳本繪製吸附勢能面
    其實手動撒點,再採集數據也是可行的,但是會比較麻煩,因此作者根據實際需要開發了一款腳本scan_adsorption_energy用於自動完成這個過程。腳本使用Python編寫,需要numpy和matplotlib第三方庫。 我們首先算好一個吸附例子得到CONTCAR,這個可以讓我們得到吸附分子的元素信息和理想的吸附高度。
  • 將Docker與pipeline一起使用
    許多組織使用Docker統一其跨機器的構建和測試環境,並提供一種用於部署應用程式的有效機制。從Pipeline 2.5及更高版本開始,Pipeline內置支持從內與Docker進行交互 Jenkinsfile。雖然本節將介紹從a到Docker的使用基礎知識 Jenkinsfile,但不會涵蓋Docker的基礎知識,可以在Docker入門指南中進行閱讀 。
  • VASP高級教程[4]快速計算並繪製能帶圖
    (含自旋極化的)或者ns.py(不含自旋極化的) 1靜態計算後,將能帶計算的輸入文件做好(記得把CHGCAR複製到能帶計算的目錄),準備計算能帶。3 提交能帶計算4 計算完成後運行total.sh提取數據。其中total.sh內容如下,如果是沒有自旋極化或者SOC的計算中,需要去掉下面標出來的一行。
  • C100混凝土的力學性能及應力-應變曲線
    他們中的絕大多數採用上升段和下降段曲線統一的方程,按其數學函數的形式可分為多項式、指數式、三角函數式和有理分式等。應力應變曲線的上升段和下降段採用統一的方程表達,優點是參數少、形式簡單和計算方便,但是其曲線形狀很難滿足試驗曲線的全部幾何特點。
  • 基於DEFORM刀具磨損有限元仿真分析
    關鍵詞:deform;有限元;刀具磨損不同切削用量之間的交互作用對刀具耐用度的影響各不相同,通過對優化的三組數據分析,不難發現,優化切削參數的取值整體比經驗參數要大。為進一步驗證優化後切削參數組合的合理性,把刀具磨損作為一個測量點,分別採用優化後切削參數和經驗切削參數對刀具的磨損情況,進行二者之間的比較。
  • 豎曲線高程計算
    1、縱斷面認識在縱斷面設計線上兩個坡段的轉折處,為了便於行車用一段曲線來緩和,這條曲線稱為豎曲線。豎曲線的形式可採用拋物線或圓曲線,在使用範圍內二者幾乎沒有差別,但在設計和計算上,拋物線比圓曲線更方便。這裡只介紹二次拋物線型豎曲線。
  • 嵌入式Linux啟動時間優化的秘密之四-啟動腳本
    Linux啟動時間優化方法,本文主要會講啟動腳本。   簡化shell腳本   可以嘗試執行啟動腳本之前啟動應用程式   1.1.bootchart   如果想更詳細地了解用戶區的引導順序,則可以使用使用grabserial中的bootchart來實現,例如:
  • MindSpore可視化工具使用指南
    5 月12 日,機器之心聯合華為昇騰學院開設的線上公開課《輕鬆上手開源框架MindSpore》第 6 課完成,王越講師為大家帶來了主題分享《MindSpore可視化工具使用指南
  • AE腳本的安裝使用技巧大全,值得收藏
    在AE中文版的大環境下,個別插件會出現奇怪BUG,只有靠使用經驗避免。AE腳本的安裝一般是拷貝安裝,有些事安裝程序安裝。部分拷貝安裝後不能使用,就說明這個腳本需要用原始安裝程序安裝。部分收費腳本首次使用需要註冊碼激活。(類似AE插件)可以自己給腳本改名字,不會影響腳本使用。改成中文名,可以方便後期管理使用。
  • 如何計算曲線長度?
    對於一條連續的、光滑的曲線,根據定積分的幾何意義,很容易計算曲線與x軸所圍成的區域的面積,但如何計算曲線的長度呢?1.直角坐標曲線曲線f(x)為一條在區間[a,b]上連續且光滑的曲線,如圖1所示。,可以得出曲線弧長與定積分的關係,如圖4所示。
  • Scratch3.0編程小課堂42(神奇的斐波那契曲線)
    神奇的斐波那契曲線神奇的斐波那契曲線在我們的生活中隨處可見,海螺,樓梯,圖案……自製積木參數2、編輯自製積木腳本:自製積木模塊實現的功能是生成斐波那契數;通過分析斐波那契數列的定義,我們可以迭代法來完成腳本;知識普及2:迭代法——也稱輾轉法,是一種不斷用變量的舊值遞推新值的過程
  • Liunx 應急響應信息腳本收集
    0x01關於一直想寫一個應急響應信息收集的腳本,畢竟人比較懶,不想敲那些命令。
  • 按鍵精靈的使用-安裝並製作第一個小腳本
    按鍵精靈的使用,以按鍵精靈2014為例首先從官網或本人從提供的連結下載按鍵精靈,下載後雙擊安裝包,出現的界面如下:然後點擊自定義安裝,可以更改安裝路徑,還可以同時安裝按鍵精靈(安卓版),我們講的PC端的,所以我們把這個鉤去掉,路徑設置好就直接點擊開始安裝,然後等待一小會
  • 使用Django 項目中的 ORM 編寫偽造測試數據腳本
    解決方案是我們可以寫一個腳本,自動生成任意數量的測試數據。腳本寫好後,只需運行腳本就可以往資料庫填充大量測試數據。腳本就是一段普通的 Python 代碼,非常簡單,但是通過這個腳本你將學會如何在 django 外使用 ORM,而不僅僅在 django 應用的內部模塊使用。
  • 語義分割標註工具Semantic Segmentation Editor 快速安裝指南
    它是使用React, Paper.js和three.js開發的Meteor應用程式。meteor(連結:https://github.com/Hitachi-Automotive-And-Industry-Lab/semantic-segmentation-editor)curl https://install.meteor.com/ | sh
  • mac版Unity Pro遊戲開發工具如何創建和使用腳本
    Unity允許您使用腳本創建自己的組件。這些使您可以觸發遊戲事件,隨時間修改組件屬性並以您喜歡的任何方式響應用戶輸入。mac版Unity Pro遊戲開發工具如何創建和使用腳本創建腳本與大多數其他資產不同,腳本通常直接在Unity中創建。您可以從「項目」面板左上角的「創建」菜單中創建新腳本,也可以從主菜單中選擇「資產」>「創建」>「C#腳本」。