木虫 (著名写手)
做人要开心 ![]()
|
转载的
★ ★ ★ suntao1982(金币+3,VIP+0):谢谢交流!
老问题再度提出!--二维电子密度图
----------------------
前面已经有人提出了,但是已经沉底了,懒得去翻,再重新提出,斑竹不要删喔!
闲话少说,言归正传。
-------------
1、首先计算出电子密度,这个不用讲了;
2、然后,选中3D原子文件,分析,选电子密度,同时选上等值面;
3、先save-->好像和acridine兄说的不同,没有发现有.grd文件,但是目录中会多出一个.charg_frm文件。我想这个就应该是了。
它的文件格式为:
a b c Charge
1 1 1 20.4291333179468
2 1 1 21.703304660858524
3 1 1 25.528902136817084
4 1 1 31.530000049221105
5 1 1 39.074431775541491
6 1 1 46.869700929673286
....................................................
这里我发现,无论是单胞还是原胞,其存的文件内容完全相同,但是名字不同。
4、这时候你如果import的话,就会看见电子密度图了。
5、下面就到问题的关键了,用MATLAB转换绘图。
1)从上面的文件内容我们可以知道,其内容格式十分整齐,就是a b c 坐标然后跟着该点上的电荷密度,而且坐标都是整数。
我计算的材料是正交系的,三个角都是直角,而且a b c的值都是1到45,于是可以偷懒。
2)数据的输入及转换
在MATLAB中,用csvread先读入电子密度,设为V;
再重整:V=RESHAPE(v,45,45,45);
格式我对了,没有问题;
3)坐标点的整理
先在MS中确定用a面,就是b,c面,和a轴垂直的,那个面(100),得到一组
normal和 position属性,position假定为3.17
然后mesh格点:
[sy,sz]=meshgrid(1:45,1:45)
sx=zeros(45,45)+3.17
这样数据就整理好了。
4)绘图
绘图:
contourslice(V,sx,sy,sz)
我用contourslice(V,sx,sy,sz)去画,结果和想想的一点都不一样。
呵呵,结果不是那样的。
哪儿出问题了?
请教!
请做过的师兄指教,谢谢! |
|