| 查看: 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"}}'>>poscarfromcellcp -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 ] |
» 收录本帖的淘帖专辑推荐
第一性原理相关文档 | 第一性原理计算辅助工具 |
» 猜你喜欢
国自然申请面上模板最新2026版出了吗?
已经有19人回复
拟解决的关键科学问题还要不要写
已经有7人回复
存款400万可以在学校里躺平吗
已经有17人回复
请教限项目规定
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
基金申报
已经有6人回复
推荐一本书
已经有13人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
(原创)MS4.4(LINUX版)详细安装步骤(同样适用于高版本)
已经有5人回复
在linux下编FORTRAN程序
已经有14人回复
【教程】Agilent 8960(WCDMA For SDA)操作说明(安捷伦科技)
已经有9人回复
【求助】linux 系统MS 如何运行
已经有11人回复
Informative diagnostics for personalized medicine
已经有1人回复
【求助】急切寻求gaussian03 for linux.
已经有18人回复
原创首发:Tips for Western Blot-一些小技巧而已
已经有13人回复
2楼2010-04-30 21:58:03
简单回复
2010-05-08 21:37
回复
















{print $2,$3,$4,"F F F"};if($1=="Ce"&& $4>"0.09"
回复此楼
