24小时热门版块排行榜    

查看: 1544  |  回复: 17
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

sss3012

银虫 (正式写手)

[交流] 【讨论】电子结构图的制作

我看了一篇文献,该文章也是用castep做的,文章的电子结构图很漂亮,请高手指点该图是否是用castep做的.如何做?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meimeidyh

铁杆木虫 (著名写手)

进城务工人员

★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
wuchenwf(金币+5,VIP+0):谢谢 7-2 22:28
转一个好帖给你看看(用matlab做电荷密度等高线):
1.找到电荷密度图的存储文件,一般是在自己所建的计算project中,隐藏的,castep模块是.charg_frm格式的,可以用txt打开后另存为txt格式。
2.读取数据,在matlab命令里输入一下命令:
[path,fn]=uigetfile('*.txt','Open');
fp=fopen([fn,path],'r');
head=fscanf(fp,'%s',4);
data=fscanf(fp,'%f',[4,18*18*144]);
fclose(fp);
这是读取刚才保存的txt数据的,其中18*18*144是可以改的,分别对应a,b,c的重复单元。
3.作矩阵。
a=reshape(data(1,,[18,18,144]);
b=reshape(data(2,,[18,18,144]);
c=reshape(data(3,,[18,18,144]);
d=reshape(data(4,,[18,18,144]);
其中18*18*144是可以改的,分别对应a,b,c的重复单元,即长宽高的值。
4.作等高线图
layer=1;
contour(reshape(a(:,layer,,[18,144]),reshape(c(:,layer,,[18,144]),reshape(d(:,layer,,[18,144]),8);
layer=1(2,3,4....) 可以修改作图的层数,分别是从前面到后面。最后的8表示显示线条数目,可以自己修改成9,10或其它。
hold on 表示累积作图,hold off表示清空前面的 作图
举例;做表面层和第九层的等高线图
>> layer=9;
contour(reshape(a(:,layer,,[18,144]),reshape(c(:,layer,,[18,144]),reshape(d(:,layer,,[18,144]),8);
>> hold on
>> layer=1;
contour(reshape(a(:,layer,,[18,144]),reshape(c(:,layer,,[18,144]),reshape(d(:,layer,,[18,144]),8);

这是沿侧面做等高线(即xz平面),其它方向作图类似。只要修改其中的参数就可以了,如把a(:,layer,,[18,144]),reshape(c(:,layer,,[18,144]),reshape(d(:,layer,,[18,144]),8);
改为a(layer,:,,[18,144]),reshape(c(layer,l:,,[18,144]),reshape(d(layer,:,,[18,144]),8);

[ Last edited by meimeidyh on 2009-7-2 at 13:17 ]
14楼2009-07-02 13:14:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 18 个回答

liuxiaocunde

铁杆木虫 (著名写手)

古德里安将军

CASTEP应该做不出来吧
新征途
2楼2009-06-25 21:24:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kuner

铁虫 (正式写手)

我也不知道,同问,请高手指教
3楼2009-06-25 23:50:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tcwzb168

新虫 (正式写手)


freshgirl(金币+1,VIP+0):如果你能问到他们是怎么作出来的,那就更好了 6-26 11:28
可以做的,我组的牛人曾经做过类似的电子结构图!
4楼2009-06-26 00:01:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见