第一原理計算常用指令和 qe 小提示

底下寫的東西,如果有錯誤請和我說 *d98222003@gmail.com 目前的大型計算機器幾乎都是用 qsub job-script 來當 submit job 的指令,那當你有很多工作的時候該怎麼辦? (testing E_cut, kpoints, PPs, spin states … etc) 假設你不會寫迴圈,這時就可以用以下兩個指令來代替。 舉例來說,第一個送出去的 job id: 15243 qsub -W depend=afterok:15243 next_job_script (指的是 15243 必須完整的計算成功,才會把 next_job_script 送進去 queue) qsub -W depend=afterany:15243 next_job_script (指的是 15243 不管結果如何,都會把 next_job_script 送進去 queue) 基本上就是可以和自己實驗室的人互相配合,大家都可以有研究進度  !!! next !!! 那現在知道可以排計算工作之後,在編譯所需文件時,是不是會遇到只需要變更文件中的某一個指令這種時候? 假設在同一目錄下有 10 個在不同的 INCAR,只想要改 IBRION = 2  to IBRION = 3, 4, 5, 6, 7 … 用 vi INCAR* , 然後到那一行去改完之後 :w and :n  , 這樣應該花很多時間吧? 這時可以用 sed sed -i ‘s/IBRION= 2/IBRION= 11/g’ INCAR_001 (把 INCAR_001 這文件中的 IBRION = 2 改成 IBRION = 11) 那如果有一個以上的文件需要改,那就在指令後面加上分號就好 sed -i ‘s/IBRION= 2/IBRION= 11/g’ INCAR_001; sed -i ‘s/IBRION= 2/IBRION= 11/g’ INCAR_002; … 那如果是 10 個不同目錄下 (001-010),你想改這 10 個 INCAR,那要怎麼改? for aa in 001 002 003 004 005 006 007 008 009 010; do sed -i ‘s/IBRION= 2/IBRION= 11/g’ ./$aa’/’INCAR; done 這兩種最後可以利用 grep IBRION INCAR* 來看目錄中所有的 INCAR 文件是不是都有改好 !!! next !!!