24小时热门版块排行榜    

查看: 4309  |  回复: 8

guolianshun

金虫 (著名写手)

[交流] 用Origin画MS中电子云密度的技术!!!超漂亮已有8人参与

用Origin画MS中电子云密度的技术!!!超漂亮
有心人可以研究一下!!!

版主请加精啊,
费了好大力气的!
呵呵!
欢迎大家学习!

MATLAB程序用来处理MS电荷密度的等高线做法,分四步:
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);
一个牛人的总结,转自分子论坛。
回复此楼

» 收录本帖的淘帖专辑推荐

第一性原理 物理前沿 第一性原理计算 @个人收集@
Photochemistry 计算化学相关 精华帖子 第一性

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lushunqi

禁虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖
本帖内容被屏蔽

2楼2011-10-11 15:40:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

YUN杰2070

金虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖
以后要用,不知道LZ会不会用Origin做此图,望指点一二!呵呵
不求做的最好,只求做的更好!
3楼2011-10-28 21:20:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ustc

金虫 (著名写手)

不错,值得推广
4楼2011-10-28 21:27:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
送鲜花一朵
5楼2011-10-29 23:07:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

风之梦

木虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖
期待做差分密度的方法
6楼2011-10-31 09:27:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fanny0007

金虫 (小有名气)

引用回帖:
1楼: Originally posted by guolianshun at 2011-10-11 14:41:25:
用Origin画MS中电子云密度的技术!!!超漂亮
有心人可以研究一下!!!

版主请加精啊,
费了好大力气的!
呵呵!
欢迎大家学习!

MATLAB程序用来处理MS电荷密度的等高线做法,分四步:
1.找到电荷密度 ...

收藏,谢谢
Dowhatyousay,saywhatyoudo.
7楼2011-10-31 10:24:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

余昭福

新虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
楼主的程序几乎没有能够运行的。
8楼2015-11-09 11:12:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lywbanner

金虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
楼主的方法很麻烦,而且数据格式不对。我输出的电荷密度是四列而不是四行。楼主这句,data=fscanf(fp,'%f',[4,18*18*144]);,显然不对。应该为data=fscanf(fp,'%f',[18*18*144,4]);
9楼2019-01-03 13:14:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 guolianshun 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见