24小时热门版块排行榜    

查看: 1125  |  回复: 2
【奖励】 本帖被评价2次,作者cenwanglai增加金币 1.5

[资源] 【原创】Linux script cell2poscar.new for MS.cell to POSCAR

#把该文件与*.cell文件保存在linux系统下同一目录中,命名为cell2poscar.new.运行dos2unix cell2poscar.new和chmod 777 cell2poscar.new.
#*.cell为MS running后立即停止中生成的隐藏文件,显示隐藏文件夹后就可以看到。
#运行本脚本前,需要删除.cell文件%ENDBLOCK POSITIONS_FRAC后面的所有内容,运行dos2unix *.cell.
#运行时确保当前目录下仅有一个.cell文件。
#在命令提示符下输入"./cell2poscar.new"(引号内部分为命令)回车,生成文件为poscarfromcell.并询问生成POSCAR.
#有好的修改建议或脚本请发邮件给: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坐标。高于0.09的原子三个方向弛豫;低于0.09的原子固定。
cat *.cell | awk '{if($1=="O" && $4 <=0.09)  {print $2,$3,$4,"F F F"};if($1=="O"&& $4>0.09){print $2,$3,$4,"T T T"}}'>>poscarfromcell
#找Ce原子坐标。根据实际情况替换"Ce"
cat *.cell | awk '{if($1=="Ce" && $4 <="0.09"  {print $2,$3,$4,"F F F"};if($1=="Ce"&& $4>"0.09"{print $2,$3,$4,"T T T"}}'>>poscarfromcell
cp -i poscarfromcell POSCAR
#找X原子坐标,如果需要,删掉下一行开头的#,根据实际情况替换"X"
#cat *.cell | awk '$1=="X" {print $2,$3,$4,"T T T"}'>>poscarfromcell

[ Last edited by cenwanglai on 2010-4-30 at 20:19 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

marklau

银虫 (小有名气)


★★★ 三星级,支持鼓励



great post.
2楼2010-04-30 21:58:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
2010-05-08 21:37   回复  
 
相关版块跳转 我要订阅楼主 cenwanglai 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见