24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1654  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xiaowu787

木虫 (正式写手)

[交流] 【求助】如何根据cell文件写poscar已有3人参与

刚开始学ASP,看论坛上高手说过可以通过MS写OSCAR。从MS 导出cell文件,还是不知道该如何写出基矢?请高手指点一下。原子的个数就是BLOCK POSITIONS_FRAC中的原子个数吗?谢谢!!

Al2O3
PBC    4.7590    4.7590   12.9910   90.0000   90.0000  120.0000 (P1)

cell文件如下:

%BLOCK LATTICE_CART
       2.747609931073429       0.000000000000000       4.330333333333333
      -1.373804965536714       2.379500000000001       4.330333333333333
      -1.373804965536714      -2.379500000000000       4.330333333333333
%ENDBLOCK LATTICE_CART

%BLOCK POSITIONS_FRAC
  O   0.5559999999999998  -0.0559999999999999   0.2500000000000000
  O   0.2500000000000000   0.5559999999999998  -0.0559999999999999
  O  -0.0559999999999999   0.2500000000000000   0.5559999999999998
  O  -0.5559999999999998   0.0559999999999999  -0.2500000000000000
  O  -0.2500000000000000  -0.5559999999999998   0.0559999999999999
  O   0.0559999999999999  -0.2500000000000000  -0.5559999999999998
Al   0.3519999999999999   0.3519999999999999   0.3519999999999999
Al   0.1480000000000001   0.1480000000000001   0.1480000000000001
Al  -0.3519999999999999  -0.3519999999999999  -0.3519999999999999
Al   0.8520000000000000   0.8520000000000000   0.8520000000000000
%ENDBLOCK POSITIONS_FRAC
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cenwanglai

荣誉版主 (知名作家)

老和山猥琐派九段

优秀版主

★ ★ ★
bingmou(金币+3):感谢分享 2010-11-03 14:06:48
xiaowu787(金币+5):谢谢分享!! 2010-11-03 15:45:25
#Script for Linux. Font Code: UTF-8
#把该文件保存到/usr/bin/目录下,必要时运行dos2unix和chmod
#删除原有poscarfromcell,删除前询问
#*.cell为MS running后立即停止中生成的隐藏文件,显示隐藏文件夹后就可以看到。把该文件放到linux下工作目录内。
#运行本脚本前,需要删除.cell文件%ENDBLOCK POSITIONS_FRAC后面的所有内容,如有必要,运行dos2unix *.cell
#运行时确保当前目录下仅有一个*.cell文件。
#在命令提示符下输入cell2poscar回车,生成文件为poscarfromcell.
#有好的修改建议或脚本请发邮件给:cenwanglai@163.com

rm -i poscarfromcell

echo "SYSTEM COMMENTS">>poscarfromcell
echo 1 >>poscarfromcell

#查找并输出格矢坐标
cat *.cell | grep -e '^[ ]\+[0-9]\+'>>poscarfromcell

#数氧原子个数
L=$(grep -cw "O" *.cell)

#数铈原子个数
M=$(grep -cw "Ce" *.cell)

#数X原子个数,如果需要,删掉下一行开始的#,并替换“X”
#N=$(grep -cw "X" *.cell)

#输入各类原子个数,如果需要,下行中增加$N
echo $L $M >> poscarfromcell

echo "Selective Dynamic" >>poscarfromcell
echo "Direct" >>poscarfromcell

#找氧原子O坐标。根据实际情况替换"O"
cat *.cell | awk '$1=="O" {print $2,$3,$4,"T T T"}'>>poscarfromcell

#找Ce原子坐标。根据实际情况替换"Ce"
cat *.cell | awk '$1=="Ce" {print $2,$3,$4,"T T T"}'>>poscarfromcell

#找X原子坐标,如果需要,删掉下一行开头的#,根据实际情况替换"X"
#cat *.cell | awk '$1=="X" {print $2,$3,$4,"T T T"}'>>poscarfromcell
5楼2010-11-03 13:26:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cenwanglai

荣誉版主 (知名作家)

老和山猥琐派九段

优秀版主

读一下这个脚本,根据你的情况修改一下就可以。
6楼2010-11-03 13:28:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cenwanglai

荣誉版主 (知名作家)

老和山猥琐派九段

优秀版主


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by xiaowu787 at 2010-11-03 16:14:15:



这个脚本没有声明shell,脚本运行不必拷到/usr/bin/目录下,一般只需要更改一下运行权限就可以了。正准备测试一下,谢谢

呵呵,刚学习linux的时候编写的一个脚本,很久没有检查了。幸苦!你测试后帮修改再发一个吧。
9楼2010-11-03 16:17:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cenwanglai

荣誉版主 (知名作家)

老和山猥琐派九段

优秀版主

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
gzqdyouxia(金币+1): 谢谢交流 2011-01-16 18:33:58
负号的问题,我在生成模型的时候就处理了一下:cleave做面的时候重新调整坐标的。就没有负坐标了。
11楼2010-11-03 20:27:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiaowu787 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见