🌱 🦤 🌱

vasp

geo opt

1

bader电荷

1
2
3
4
5
mkdir chg
cp KPOINTS POTCAR chg/
cp CONTCAR chg/
cp ../INCAR_CHG chg/INCAR
cp ../sub.vasp chg/
1
chgsum.pl AECCAR0 AECCAR2
1
bader CHGCAR -ref CHGCAR_sum

dos

1
2
3
4
5
mkdir dos
cp CONTCAR dos/POSCAR
cp KPOINTS POTCAR WAVECAR CHGCAR dos/
cp ../INCAR_DOS dos/INCAR
cp ../sub.vasp dos/
  • 用python绘图
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# iil:
# conda install -n chem_py39 pymatgen
#
def get_element_d_pdos(e_num:int, f_name:str, x_lim:tuple, y_lim:tuple,
lb_loc:str = "upper right", lb_fontsize:str = "xx-large",
lb_borderpad:int = 0.3, lb_labelspacing:int = 0.3,
lb_handlelength:int = 1.8, lb_handletextpad:int = 0.6) -> None:
"""
Args:
e_num:int :in CONTCAR
lb_loc:str :xx-small, x-small, small, medium, large, x-large, xx-large
"""
from pymatgen.io.vasp.outputs import Vasprun
from pymatgen.electronic_structure.plotter import DosPlotter
from pymatgen.electronic_structure.core import Orbital

dos_vasprun = Vasprun("./vasprun.xml")
complete_dos = dos_vasprun.complete_dos

periodic_site = complete_dos.structure.sites[e_num]
pdos_dxy = complete_dos.get_site_orbital_dos(periodic_site, Orbital.dxy)
pdos_dyz = complete_dos.get_site_orbital_dos(periodic_site, Orbital.dyz)
pdos_dxz = complete_dos.get_site_orbital_dos(periodic_site, Orbital.dxz)
pdos_dz2 = complete_dos.get_site_orbital_dos(periodic_site, Orbital.dz2)
pdos_dx2_y2 = complete_dos.get_site_orbital_dos(periodic_site, Orbital.dx2)

plt_d = DosPlotter(stack=False)
plt_d.add_dos("dxy", pdos_dxy)
plt_d.add_dos("dyz", pdos_dyz)
plt_d.add_dos("dxz", pdos_dxz)
plt_d.add_dos("dz2", pdos_dz2)
plt_d.add_dos("dx2-y2", pdos_dx2_y2)

axes = plt_d.get_plot(xlim=x_lim, ylim=y_lim)

handles, labels = axes.get_legend_handles_labels()
unique_dict = {label: handle for handle, label in zip(handles, labels)}
unique_handles = list(unique_dict.values())
unique_labels = list(unique_dict.keys())

axes.legend(
unique_handles, unique_labels, loc = lb_loc, fontsize = lb_fontsize,
borderpad = lb_borderpad, labelspacing = lb_labelspacing,
handlelength = lb_handlelength, handletextpad = lb_handletextpad
)

fig = axes.get_figure()
fig.savefig(f_name, dpi = 300)

return



if __name__ == "__main__":
get_element_d_pdos(121, "Ru_d_pdos.png", (-2, 5), (-8.5, 8))
get_element_d_pdos(122, "La_d_pdos.png", (-10, 10), (-2.5, 3.5))

DIMER

  • 行数保持一致
1
modemake.pl r1_CONTCAR POSCAR
1
less DIMCAR
1
dimmode.pl CENTCAR NEWMODECAR 32 0.5
1
grep converged OUTCAR

CINEB

1
dist.pl r1_CONTCAR r2_CONTCAR
1
nebmake.pl r1_CONTCAR r2_CONTCAR 1
1
python iddp.py r1_CONTCAR r2_CONTCAR 1
1
2
cp r1_OUTCAR 00/OUTCAR
cp r2_OUTCAR 02/OUTCAR
1
2
nebmovie.pl 0
cat 00/POSCAR.xyz 01/POSCAR.xyz 02/POSCAR.xyz 03/POSCAR.xyz 04/POSCAR.xyz > movie.xyz
  • 预收敛
1
2
nebresults.pl
gunzip 0*/OUTCAR.gz
1
neb2dim.pl

freq

1
2
3
4
5
6
mkdir freq
cp KPOINTS POTCAR freq/
cp CONTCAR freq/POSCAR
cp 01/CONTCAR freq/POSCAR
cp ../INCAR_FREQ freq/INCAR
cp ../sub.vasp freq/
1
2
vaspkit
402

vmd

  • cpk, position Z

1753163596808

  • 正交视角

1753163910018

  • rep Hbonds

1753164730559

  • -X image

1753164964198

  • 不同区域显示

1753173092209

  • 第一帧和最后一帧叠加

1753173263163

VESTA

  • 旋转晶格

1753171471942

  • 自定义等值面数值

1753866364832

MS

  • 左边小窗口