24小时热门版块排行榜    

查看: 1932  |  回复: 17
当前主题已经存档。

laohaoren2802

银虫 (正式写手)

期待高手指点。
11楼2009-06-28 18:42:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meimeidyh

铁杆木虫 (著名写手)

进城务工人员

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
spur(金币+1,VIP+0): 3Q!!谢谢参与!欢迎常来! 7-1 12:24
是用castep做的。
先做好彩色的电荷密度切面,然后选择color maps,在color mapping上选取合适的具有代表性的值,就会出现如图所示的等高线了,再在spectrum栏选择black-white就可以了。不过还是建议用matlab做电荷密度等高线,更直观。
12楼2009-07-01 09:18:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sss3012

银虫 (正式写手)

zhfuchun  朋友,能否介绍一下你是如何用MATLAB 画出电荷密度的,如何从CASTEP电荷密度计算中获得数据,谢谢
13楼2009-07-01 11:30:13
已阅   回复此楼   关注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的回帖

positron

木虫 (职业作家)

★
小木虫(金币+0.5):给个红包,谢谢回帖交流
很好啊,初学者路过学习啦
15楼2009-07-04 13:10:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zi_shu

木虫 (小有名气)

★
小木虫(金币+0.5):给个红包,谢谢回帖交流
还没见过这样的图,学习了。
16楼2009-07-07 14:35:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mink

至尊木虫 (著名写手)

呵呵,只要会编程,处理数据不难,只是细心点。不过要多摸索,我用matla做过
╱�?█◣要厚道!!
17楼2009-07-08 08:37:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qli0218

木虫 (小有名气)

问问楼上的

★
小木虫(金币+0.5):给个红包,谢谢回帖交流
我从dmol算的结果里也画出了电子图,不过先在也只是把数据导出来了,没有进行切面,想问一下用matlab如何进行切面阿?怎么改变画出的电荷密度图线的疏密程度?
谢谢
18楼2009-07-08 08:56:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sss3012 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
信息提示
请填处理意见