1. 用第一性原理完成標準的結構優化,靜態自洽計算
2. 可以先計算出沿著高對稱線的能帶。
3. 在布里淵區均勻打點
這裡有乙個技巧是直接使用到格式分數座標,然後沿著倒格矢等分就行。這樣便於後面的磁化率計算,python指令碼如下:
import numpy as np
import matplotlib.pyplot as plt
g1 = np.array([0 ,1]) # reciprocal lattice 1
g2 = np.array([1, 0]) # reciprocal lattice 2
n1 = 100 # reciprocal lattice 1 上的格點數
n2 = 100 # reciprocal lattice 2 上的格點數
n = n1*n2 # 總的格點數
e1 = g1/n1
e2 = g2/n2
kpos = np.zeros((n1,n2,2))
for i in range(n1):
for j in range(n2):
kpos[i][j][:] = i*e1 + j*e2
kpos = kpos.reshape(n,2)
output = open('kpoints.txt','w')
for i in range(n):
#plt.scatter(kpos[i][0],kpos[i][1])
output.write("%f %f %f %f\n" %(kpos[i][0],kpos[i][1],0.0,1.0))
#plt.show()
output.closed()
4. 需要用乙個指令碼將資料取出來,畫二維能帶,這裡用vaspkit 三維能帶功能。
5. 最後是乙個c++程式,計算磁化率,二維體系o(n^4),三維體系o(n^6)的時間複雜度,所以用c++
starttime = clock(); //計時開始
cout<
/*for(int i=0;i
}*/for(int i=0;i}}
}ofstream out("datachi.txt");
for(int i=0;i
out<
}endtime = clock();//計時結束
cout << "the run time is: " <
}
一維,二維,三維陣列,vector 初始化
1.用memset初始化陣列 1 按照位元組賦值 2 標頭檔案在中 注 由於memset函式是按照位元組賦值的,所以對int型陣列用該函式時,只能是0或 1,否則會出錯,這裡,不管陣列是多少維的,語法均為 int dp 84 84 84 2 memset dp,0,sizeof dp 只能賦值0或 ...
有關python中一維,二維,三維陣列的理解
假設某比賽分a,b,c三個組。每組有參賽者5名,分別來自15個不同的國家。對於a組來說,一維陣列相當於建立乙個姓名列表 name 參賽者a1 參賽者a2 參賽者a5 列表裡有5個元素,代表五個參賽者。接著上面的,對於a組來說,二維陣列相當於建立乙個 姓名 國籍 陣列 輸出的 5,2 表示,5行2列。...
C 中動態定義一維陣列,二維陣列,三維陣列
動態定義一維陣列 二維陣列 三維陣列 include includeusing namespace std int main int hight row col register int i j k srand unsigned time null cout 動態定義一維陣列 int p1 p1 n...