poscar2qe.py, qeout2poscar.py by 바죠

poscar2qe.py
qeout2poscar.py

POSCAR  --> Quantum Espresso input files


예를 들어, 위의 스크립트를/home/ihlee/qe/ 설치했다고 가정합니다.

결정구조 정보를 담고 있는 POSCAR 파일이 있는 폴더에서 아래와 같이 실행합니다.  [파이썬 3]

python  /home/ihlee/qe/poscar2qe.py

가지 QE 인풋 파일들을 만들어 줍니다. [vc-relax.in_, scf.in_, rep.in_ ...QE 용 phonopy 입력 파일]

필요한 입력 파일들을 더 만들 수 있다. 프로그램을 계속해서 확장을 있다.

 

qeout2poscar.py 이 프로그램은 QE 출력물을 이용해서 CONTCAR  만들어 줍니다

당연하게도 poscar2qe.py 입력이 됩니다.  [cp  CONTCAR   POSCAR]

 

아래의 phonopy 프로그램은 단위셀을 "정제" 해 주는 기능을 합니다

[phonopy 의 원래 목적은 포논 밴드를 그리는 것입니다

원자간 힘 상수를 계산함으로써 수치적으로 포논 밴드를 그리는 방법입니다.

힘 계산만 정확하게 이루어 진다면 포논 밴드를 그려낼 수 있습니다. SCF 루프를 철저하게 수렴시키는 것이 핵심이다.]


결정구조들은 수치적으로 약간의 오류가 있을 있습니다

[symmetrizing and standardizing the atomic positions using PHONOPY]

이러한 오류들을 tolerance 라는 옵션을 이용하여 잡아줍니다

다시 말해서, POSCAR 파일을 "정제"해 줍니다. 결정을 정제하는 것과 같다고 볼 수 있습니다.

제일원리 계산을 하지 않고 정제를 해 줍니다. 수치적 오류를 잡아내고 수정해 줍니다.

제일원리 계산으로도 확보할 수 없는 수준의 수치적 오류를 잡아내 줍니다.  

이러한 POSCAR 파일의 정제가 제일원리 계산에서 매우 중요합니다

결정구조에서는 항상 대칭성이 강조되기 때문입니다.

 

물론, 단위셀, primitive cell 찾아 줍니다

공간군도 찾아 줍니다. 특히, tolerance 를 조절하면서 공간군을 찾을 수 있게 합니다.


많은 연구자들이 POSCAR 파일을 입력으로 이용해서 PLATON 프로그램을 많이 사용합니다. 

이러한 온라인 서비스를 제공하는 곳:

http://aflow.org/aflow_online/

이곳에서 VASP 프로그램용 KPOINTS 파일도 만들어 줍니다. [BZ 그림을 포함해서 일관된 양식을 제공합니다.]

이곳에서 단위셀도 찾아 줍니다.

이곳에서 Wyckoff positions도 찾아 줍니다. 

POSCAR --> Wyckoff positions, 이것의 역변환도 지원하고 있습니다.

 

phonopy   –tolerance  0.01   –symmetry    –c  POSCAR

find a primitive unit cell [space group] with phonopy

아래와 같은 간단한 스크립트를 이용할 수 있습니다.

마우스로 캡처해서 명령어 프롬프트에 입력하면 됩니다. 또는 스그립트에 넣어도 됩니다. 


--------------------------------------------------------------------------------------------------------------------

cp  POSCAR   POSCAR__

/TGM/Apps/PYTHON/3.6.8_intel_2019.0.075/bin/phonopy  --tolerance  0.01   --symmetry   -c  POSCAR    >/dev/null

head -n 1 POSCAR >z1

sed -e 1d PPOSCAR >>z1

rm BPOSCAR  PPOSCAR

mv z1 POSCAR

 

--------------------------------------------------------------------------------------------------------------------

make a supercell with phonopy

phonopy   -d   --dim="2 2 3"   -c  POSCAR


--------------------------------------------------------------------------------------------------------------------
cat QEIRREPS.pbs
#!/bin/bash
#SBATCH --partition=g1
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=8
##
#SBATCH -J "QEIRREPS"
#SBATCH -o STDOUT.%j.out
#SBATCH -e STDERR.%j.err
#SBATCH -t 10-24:00:00  # The job can take at most 10 days 24 wall-clock hours.

## don't touch
. /etc/profile.d/TMI.sh
##

if false; then
cp POSCAR    POSCAR__
/TGM/Apps/PYTHON/3.6.8_intel_2019.0.075/bin/phonopy  --tolerance 0.01  --symmetry  -c  POSCAR >/dev/null
sleep 0.1
head -n 1 POSCAR >z1
sed -e 1d PPOSCAR >>z1
rm BPOSCAR PPOSCAR
mv z1 POSCAR
sleep 0.1
fi

dirname='rlxallz4.save'
if [ -d "$dirname" ]; then
    rm -rf  "$dirname"
fi


/TGM/Apps/PYTHON/3.6.8_intel_2019.0.075/bin/python    /home/ihlee/qe/poscar2qe.py
sleep 0.1
if false;then
cp vc-relax.in_    vc-relax.in
mpirun -genv I_MPI_DEBUG 5 -np $SLURM_NTASKS /TGM/Apps/QE/6.5/bin/pw.x <vc-relax.in > vc-relax.out
sleep 0.1
/TGM/Apps/PYTHON/3.6.8_intel_2019.0.075/bin/python   /home/ihlee/qe/qeout2poscar.py
sleep 0.1
cp vc-relax.in_    vc-relax.in
mpirun -genv I_MPI_DEBUG 5 -np $SLURM_NTASKS /TGM/Apps/QE/6.5/bin/pw.x <vc-relax.in > vc-relax.out
sleep 0.1
/TGM/Apps/PYTHON/3.6.8_intel_2019.0.075/bin/python   /home/ihlee/qe/qeout2poscar.py
sleep 0.1
cp vc-relax.in_    vc-relax.in
mpirun -genv I_MPI_DEBUG 5 -np $SLURM_NTASKS /TGM/Apps/QE/6.5/bin/pw.x <vc-relax.in > vc-relax.out
sleep 0.1
/TGM/Apps/PYTHON/3.6.8_intel_2019.0.075/bin/python   /home/ihlee/qe/qeout2poscar.py
fi

if true;then
dirname='rlxallz4.save'
if [ -d "$dirname" ]; then
    rm -rf  "$dirname"
fi
dirname='dir-wfn'
if [ -d "$dirname" ]; then
    rm -rf  "$dirname"
fi
dirname='output'
if [ -d "$dirname" ]; then
    rm -rf  "$dirname"
fi
cp scf.in_    scf.in
mpirun -genv I_MPI_DEBUG 5 -np $SLURM_NTASKS /TGM/Apps/QE/6.3/bin/pw.x <scf.in > scf.out
sleep 0.1
cp rep.in_    rep.in
mpirun -genv I_MPI_DEBUG 5 -np $SLURM_NTASKS /TGM/Apps/QE/6.3/bin/pw.x <rep.in > rep.out
sleep 0.1
mkdir dir-wfn
mkdir output
sleep 0.1
/TGM/Apps/QE/6.3/bin/qe2respack     rlxallz4.save
sleep 0.1
int000=$( awk '/number of electrons/{printf("%.0f\n", $5)}' scf.out)
/TGM/Apps/QE/6.3/bin/qeirreps  .  $int000     > qeirreps.log
fi
--------------------------------------------------------------------------------------------------------------------
symmetrizing and standardizing the atomic positions using PHONOPY


--------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------



덧글

댓글 입력 영역

최근 포토로그