PATH
by calling critic2
, but it is trivial to install on any of the supercomputers. The Critic2 code can be run interactively or with an input file that has a .cri
extension (i.e. critic2 filename.cri
)..cri
file is shown below that will integrate the charge density in all ELF basins with non-nuclear maxima that are at least 2.5 bohr units away from the nearest atom. It will also output a criticals.xyz
file showing where all the non-nuclear maxima are located. You may need to tune the value of ratom
to only get critical points in the void spaces of interest, or you can simply manually pick out the entries of interest in the output as needed. For more information, read the YT keyword documentation .crystal CONTCARload ELFCAR id elfload CHGCAR id rhoreference elfintegrable rhoyt nnm ratom 2.5cpreport criticals.xyz
$rho
column in the output will show the integrated charge in each basin. The basins marked with ??
are not associated with a given atom. If you're unsure which basin corresponds to what, add wcube
to the yt
command to output .cube
files for each basin that can be viewed in a program like VESTA.criticals.xyz
file can be rewritten as a .cif
with periodic boundary conditions as follows:from ase.io import read, writewith open("criticals.xyz", "r") as f:content = f.read()content = content.replace("Xn", "X")with open("criticals.xyz", 'w') as f:f.write(content)atoms = read("CONTCAR")criticals = read("criticals.xyz")criticals.pbc = Truecriticals.cell = atoms.cellwrite("criticals.cif", criticals)