小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

力學性質繪圖代碼:楊氏模量 泊松比

 taotao_2016 2023-07-19 發(fā)布于北京

動機

寫這篇推文,本意是介紹matplotlib的polar plot, 順便重復一篇文章里的圖給讀者看一下,有需要的讀者可以復制代碼用于繪圖。

彈性常數(shù)計算方法

見下面推文

計算2D彈性常數(shù)(楊氏模量)的兩種方法對比[直接法|Vs|vaspkit]

楊氏模量和泊松比的計算公式

參照Phys. Rev. B 82, 235414里面的公式:

圖片
簡化參數(shù)
圖片
楊氏模量
圖片
泊松比

對于二維材料這里對應的應該是我們計算得到的, 這篇文章就是這么處理的 (Nanoscale Horiz., 2020, 5, 1386-1393) (這個地方我還不確定是不是對的,至少這篇文章是這么做的,這里如果有問題,我后續(xù)推文會更正)

圖片
圖片
圖片
Nanoscale Horiz., 2020, 5, 1386-1393

效果圖

先展示文獻中的效果圖

圖片
楊氏模量 Nanoscale Horiz., 2020, 5, 1386-1393
圖片
泊松比 Nanoscale Horiz., 2020, 5, 1386-1393

繪圖代碼

  • 數(shù)據(jù)取自這篇Nanoscale Horiz.的數(shù)據(jù),代碼如下

楊氏模量

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib import rc
import matplotlib.colors as colors
rc('text', usetex=True)
plt.rc('font',family='Times New Roman',size=11)
d = np.arange(0, 1, 0.001)
theta = 2 * np.pi * d

C11 = 36.2
C22 = 6.65
C12 = 5.3
C44 = 7.61
delta = C11*C22 - C12**2
c = np.cos(theta)
s = np.sin(theta)

Y = delta/(C11*s**4 + C22*c**4 + (delta/C44 -2*C12) *c**2*s**2)

fig, ax = plt.subplots(subplot_kw={'projection''polar'})
#fig, ax = plt.subplots()
po=ax.scatter(theta, Y,c=Y,cmap=cm.coolwarm)
#ax.set_rmax(2)
#ax.set_rticks([0.5, 1, 1.5, 2])  # Less radial ticks
#ax.set_rlabel_position(-22.5)  # Move radial labels away from plotted line
ax.grid(True)
cbar = plt.colorbar(po, ax=ax, pad=0.15)
#cbar.ax.set_title('Young\'s modulus' + r'$N/m^2', pad=20)
cbar.set_label('Young\'s modulus ' + r'$(N/m)$')
#cbar.ax.title.set_rotation(90)
#ax.set_title('Young\'s modulus')
plt.savefig('Young.pdf')
  • 結果
圖片

泊松比

v_a = (C11+C22-delta/C44)*c**2*s**2-C12*(c**4+s**4)
v_b = C11*s**4 + C22 * c**4 + (delta/C44 - 2*C12)*c**2 * s**2
v = -v_a/v_b
fig, ax = plt.subplots(subplot_kw={'projection''polar'})
#fig, ax = plt.subplots()
po=ax.scatter(theta, v,c=Y,cmap=cm.coolwarm)
#ax.set_rmax(2)
#ax.set_rticks([0.5, 1, 1.5, 2])  # Less radial ticks
#ax.set_rlabel_position(-22.5)  # Move radial labels away from plotted line
ax.grid(True)
cbar = plt.colorbar(po, ax=ax, pad=0.15)
#cbar.ax.set_title('Poisson ratio', pad=20)
cbar.set_label('Poisson ratio')
#cbar.ax.title.set_rotation(90)
#ax.set_title('Young\'s modulus')
plt.savefig('Poisson.pdf')
  • 結果
圖片

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多